Repository: AdAstra-LD/DS-Pokemon-Rom-Editor Branch: main Commit: f95ab36b4290 Files: 294 Total size: 9.7 MB Directory structure: gitextract_awlkqn2b/ ├── .gitattributes ├── .github/ │ └── workflows/ │ └── base-build-nightly.yaml ├── .gitignore ├── DS_Map/ │ ├── App.config │ ├── BuildingEditor.Designer.cs │ ├── BuildingEditor.cs │ ├── BuildingEditor.resx │ ├── DSPRE.csproj │ ├── DSUtils/ │ │ ├── ARM9.cs │ │ ├── DSUtils.cs │ │ ├── ModelUtils.cs │ │ ├── NSBUtils.cs │ │ └── OverlayUtils.cs │ ├── DVCalculator/ │ │ ├── DVCalc.Designer.cs │ │ ├── DVCalc.cs │ │ ├── DVCalc.resx │ │ ├── DVCalcNatureViewerForm.Designer.cs │ │ ├── DVCalcNatureViewerForm.cs │ │ ├── DVCalcNatureViewerForm.resx │ │ └── DVCalculator.cs │ ├── EditorPanels.cs │ ├── Editors/ │ │ ├── EncountersEditor.Designer.cs │ │ ├── EncountersEditor.cs │ │ ├── EncountersEditor.resx │ │ ├── HeadbuttEncounterEditor.Designer.cs │ │ ├── HeadbuttEncounterEditor.cs │ │ ├── HeadbuttEncounterEditor.resx │ │ ├── HeadbuttEncounterEditorTab.Designer.cs │ │ ├── HeadbuttEncounterEditorTab.cs │ │ ├── HeadbuttEncounterEditorTab.resx │ │ ├── LevelScriptEditor.Designer.cs │ │ ├── LevelScriptEditor.cs │ │ ├── LevelScriptEditor.resx │ │ ├── MoveDataEditor.Designer.cs │ │ ├── MoveDataEditor.cs │ │ ├── MoveDataEditor.resx │ │ ├── SafariZoneEditor.Designer.cs │ │ ├── SafariZoneEditor.cs │ │ ├── SafariZoneEditor.resx │ │ ├── SafariZoneEncounterEditorTab.Designer.cs │ │ ├── SafariZoneEncounterEditorTab.cs │ │ ├── SafariZoneEncounterEditorTab.resx │ │ ├── SafariZoneEncounterGroupEditor.Designer.cs │ │ ├── SafariZoneEncounterGroupEditor.cs │ │ ├── SafariZoneEncounterGroupEditor.resx │ │ ├── ScriptEditor.Designer.cs │ │ ├── ScriptEditor.cs │ │ └── ScriptEditor.resx │ ├── EventFileImport.Designer.cs │ ├── EventFileImport.cs │ ├── EventFileImport.resx │ ├── EvolutionsEditor.cs │ ├── EvolutionsEditor.designer.cs │ ├── EvolutionsEditor.resx │ ├── ExtensionMethods.cs │ ├── Extensions.cs │ ├── Filesystem.cs │ ├── GameCamera.cs │ ├── HeaderSearch.Designer.cs │ ├── HeaderSearch.cs │ ├── HeaderSearch.resx │ ├── Helpers.cs │ ├── InputComboBox.cs │ ├── LearnsetEditor.Designer.cs │ ├── LearnsetEditor.cs │ ├── LearnsetEditor.resx │ ├── LibNDSFormats/ │ │ ├── EndianBinaryReader.cs │ │ ├── Export3DTools/ │ │ │ ├── Face.cs │ │ │ ├── Group.cs │ │ │ ├── OBJWriter.cs │ │ │ ├── Polygon.cs │ │ │ ├── PolygonType.cs │ │ │ ├── Quad.cs │ │ │ ├── QuadStrip.cs │ │ │ ├── Triangle.cs │ │ │ └── TriangleStrip.cs │ │ ├── Helper.cs │ │ ├── NSBCA/ │ │ │ ├── NSBCA.cs │ │ │ └── NSBCALoader.cs │ │ ├── NSBMD/ │ │ │ ├── MTX44.cs │ │ │ ├── NSBMD.cs │ │ │ ├── NSBMDAnimation.cs │ │ │ ├── NSBMDGlRenderer.cs │ │ │ ├── NSBMDLoader.cs │ │ │ ├── NSBMDMaterial.cs │ │ │ ├── NSBMDModel.cs │ │ │ ├── NSBMDObject.cs │ │ │ ├── NSBMDPalette.cs │ │ │ ├── NSBMDPolygon.cs │ │ │ └── NSBMDTexture.cs │ │ ├── NSBTA.cs │ │ ├── NSBTP.cs │ │ ├── NSBTX/ │ │ │ ├── File.cs │ │ │ ├── Filepallete.cs │ │ │ ├── NSBTXLoader.cs │ │ │ ├── Rom.cs │ │ │ ├── bytearrayinputstream.cs │ │ │ ├── directory.cs │ │ │ ├── externalfilesystemsource.cs │ │ │ ├── filesystem2.cs │ │ │ ├── filesystemsource.cs │ │ │ ├── image3d.cs │ │ │ ├── image3dformat5.cs │ │ │ ├── imageindexer.cs │ │ │ ├── imagetexeler.cs │ │ │ ├── imagetiler.cs │ │ │ ├── inlinefile.cs │ │ │ ├── nsbmetileset.cs │ │ │ ├── nsbtx.cs │ │ │ ├── palettedimage.cs │ │ │ ├── pallete2.cs │ │ │ └── pixelpalletedimage.cs │ │ ├── StreamExt.cs │ │ ├── Utils.cs │ │ ├── bytearrayoutputstream.cs │ │ ├── convertir.cs │ │ └── nclr_e.cs │ ├── Main Window.Designer.cs │ ├── Main Window.cs │ ├── Main Window.resx │ ├── MessageEnc/ │ │ └── EncryptText.cs │ ├── Narc.cs │ ├── OffsetPictureBox.cs │ ├── OverlayEditor.Designer.cs │ ├── OverlayEditor.cs │ ├── OverlayEditor.resx │ ├── PatchToolboxDialog.Designer.cs │ ├── PatchToolboxDialog.cs │ ├── PatchToolboxDialog.resx │ ├── PersonalDataEditor.Designer.cs │ ├── PersonalDataEditor.cs │ ├── PersonalDataEditor.resx │ ├── PokemonEditor.Designer.cs │ ├── PokemonEditor.cs │ ├── PokemonEditor.resx │ ├── Program.cs │ ├── Properties/ │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── ROMFiles/ │ │ ├── AreaData.cs │ │ ├── EncounterFile.cs │ │ ├── EventFile.cs │ │ ├── EvolutionFile.cs │ │ ├── GameMatrix.cs │ │ ├── HeadbuttEncounter.cs │ │ ├── HeadbuttEncounterFile.cs │ │ ├── HeadbuttEncounterMap.cs │ │ ├── HeadbuttTree.cs │ │ ├── HeadbuttTreeGroup.cs │ │ ├── LearnsetData.cs │ │ ├── LevelScriptFile.cs │ │ ├── LevelScriptTrigger.cs │ │ ├── MapFile.cs │ │ ├── MapHeader.cs │ │ ├── MapScreenLoadTrigger.cs │ │ ├── MoveData.cs │ │ ├── PokemonPersonalData.cs │ │ ├── RomFile.cs │ │ ├── SafariZoneEncounter.cs │ │ ├── SafariZoneEncounterFile.cs │ │ ├── SafariZoneEncounterGroup.cs │ │ ├── SafariZoneObjectRequirement.cs │ │ ├── ScriptAction.cs │ │ ├── ScriptActionContainer.cs │ │ ├── ScriptCommand.cs │ │ ├── ScriptCommandContainer.cs │ │ ├── ScriptFile.cs │ │ ├── ScriptReference.cs │ │ ├── SpeciesFile.cs │ │ ├── TextArchive.cs │ │ ├── TrainerFile.cs │ │ └── VariableValueTrigger.cs │ ├── Resources/ │ │ ├── ColorTable.txt │ │ ├── CommandsDatabase.Designer.cs │ │ ├── CommandsDatabase.cs │ │ ├── CommandsDatabase.resx │ │ ├── HGSSCommands.md │ │ ├── MovementNamesW.Designer.cs │ │ ├── MovementNamesW.resx │ │ ├── PokeDatabase.cs │ │ ├── ROMToolboxDB/ │ │ │ ├── BDHCAMPatchDB.Designer.cs │ │ │ ├── BDHCAMPatchDB.resx │ │ │ ├── CustomScrCmdDB.resx │ │ │ └── ToolboxDB.cs │ │ ├── ScriptDatabase.cs │ │ ├── ScriptsV/ │ │ │ ├── ScriptNamesB2W2.Designer.cs │ │ │ ├── ScriptNamesB2W2.resx │ │ │ ├── ScriptNamesB2W2J.Designer.cs │ │ │ ├── ScriptNamesB2W2J.resx │ │ │ ├── ScriptNamesBW.Designer.cs │ │ │ ├── ScriptNamesBW.resx │ │ │ ├── ScriptNamesBWJ.Designer.cs │ │ │ ├── ScriptNamesBWJ.resx │ │ │ ├── ScriptNamesWBW.Designer.cs │ │ │ ├── ScriptNamesWBW.resx │ │ │ ├── ScriptNamesWBWJ.Designer.cs │ │ │ ├── ScriptNamesWBWJ.resx │ │ │ ├── ScriptsB2W2.Designer.cs │ │ │ ├── ScriptsB2W2.resx │ │ │ ├── ScriptsB2W2J.Designer.cs │ │ │ ├── ScriptsB2W2J.resx │ │ │ ├── ScriptsBW.Designer.cs │ │ │ ├── ScriptsBW.resx │ │ │ ├── ScriptsBWJ.Designer.cs │ │ │ └── ScriptsBWJ.resx │ │ ├── TextDatabase.cs │ │ ├── writeText.Designer.cs │ │ └── writeText.resx │ ├── RomInfo.cs │ ├── ScintillaUtils/ │ │ ├── HotKeyManager.cs │ │ ├── ScriptTooltip.Designer.cs │ │ ├── ScriptTooltip.cs │ │ ├── ScriptTooltip.resx │ │ └── SearchManager.cs │ ├── SpawnEditor.Designer.cs │ ├── SpawnEditor.cs │ ├── SpawnEditor.resx │ ├── Themes/ │ │ └── .gitkeep │ ├── UniqueList.cs │ ├── WildEditorDPPt.Designer.cs │ ├── WildEditorDPPt.cs │ ├── WildEditorDPPt.resx │ ├── WildEditorHGSS.Designer.cs │ ├── WildEditorHGSS.cs │ └── WildEditorHGSS.resx ├── DS_Map.sln ├── Ekona/ │ ├── Ekona.csproj │ ├── EkonaLang.xml │ ├── Helper/ │ │ ├── BinaryReaderBE.cs │ │ ├── BinaryWriterBE.cs │ │ ├── BitsConverter.cs │ │ ├── CRC.cs │ │ ├── IOutil.cs │ │ ├── LNK.cs │ │ └── Translation.cs │ ├── IGamePlugin.cs │ ├── IPlugin.cs │ ├── IPluginHost.cs │ ├── Images/ │ │ ├── Actions.cs │ │ ├── Dialogs/ │ │ │ ├── OAMEditor.Designer.cs │ │ │ ├── OAMEditor.cs │ │ │ └── OAMEditor.resx │ │ ├── Formats/ │ │ │ ├── ACO.cs │ │ │ ├── APNG.cs │ │ │ ├── Bitmap.cs │ │ │ └── PaletteWin.cs │ │ ├── ImageBase.cs │ │ ├── ImageControl.cs │ │ ├── ImageControl.designer.cs │ │ ├── ImageControl.resx │ │ ├── MapBase.cs │ │ ├── NitroTextureCompressor.cs │ │ ├── PaletteBase.cs │ │ ├── PaletteControl.cs │ │ ├── PaletteControl.designer.cs │ │ ├── PaletteControl.resx │ │ ├── RawData.cs │ │ ├── SpriteBase.cs │ │ ├── SpriteControl.cs │ │ ├── SpriteControl.designer.cs │ │ └── SpriteControl.resx │ ├── Licence.txt │ ├── Mathematics/ │ │ ├── NvMath.cs │ │ └── Vector3.cs │ ├── Properties/ │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ └── Structures.cs ├── Images/ │ ├── Images/ │ │ ├── AnimationControl.cs │ │ ├── AnimationControl.designer.cs │ │ ├── AnimationControl.resx │ │ ├── DSIG.cs │ │ ├── Images.csproj │ │ ├── Images.xml │ │ ├── ImagesLang.xml │ │ ├── Licence.txt │ │ ├── Main.cs │ │ ├── NANR.cs │ │ ├── NCCG.cs │ │ ├── NCCL.cs │ │ ├── NCE.cs │ │ ├── NCER.cs │ │ ├── NCGR.cs │ │ ├── NCLR.cs │ │ ├── NCOB.cs │ │ ├── NCSC.cs │ │ ├── NSCR.cs │ │ └── Properties/ │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ └── Images.sln └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ ############################################################################### # Set default behavior to automatically normalize line endings. ############################################################################### * text=auto ############################################################################### # Set default behavior for command prompt diff. # # This is need for earlier builds of msysgit that does not have it on by # default for csharp files. # Note: This is only used by command line ############################################################################### #*.cs diff=csharp ############################################################################### # Set the merge driver for project and solution files # # Merging from the command prompt will add diff markers to the files if there # are conflicts (Merging from VS is not affected by the settings below, in VS # the diff markers are never inserted). Diff markers may cause the following # file extensions to fail to load in VS. An alternative would be to treat # these files as binary and thus will always conflict and require user # intervention with every merge. To do so, just uncomment the entries below ############################################################################### #*.sln merge=binary #*.csproj merge=binary #*.vbproj merge=binary #*.vcxproj merge=binary #*.vcproj merge=binary #*.dbproj merge=binary #*.fsproj merge=binary #*.lsproj merge=binary #*.wixproj merge=binary #*.modelproj merge=binary #*.sqlproj merge=binary #*.wwaproj merge=binary ############################################################################### # behavior for image files # # image files are treated as binary by default. ############################################################################### #*.jpg binary #*.png binary #*.gif binary ############################################################################### # diff behavior for common document formats # # Convert binary document formats to text before diffing them. This feature # is only available from the command line. Turn it on by uncommenting the # entries below. ############################################################################### #*.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: .github/workflows/base-build-nightly.yaml ================================================ name: DSPRE Canary Build on: push: branches: - main # Trigger only on pushes to the main branch permissions: contents: write env: SOLUTION_FILE_PATH: DS_Map.sln BUILD_CONFIGURATION: Release jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.0.2 - name: Restore NuGet packages working-directory: ${{env.GITHUB_WORKSPACE}} run: nuget restore ${{env.SOLUTION_FILE_PATH}} - name: Build DSPRE working-directory: ${{env.GITHUB_WORKSPACE}} run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} - name: Zip Release Files run: Compress-Archive -Path ${{env.GITHUB_WORKSPACE}}DS_Map\bin\Release -DestinationPath DSPRE-canary.zip - name: Fetch tags run: git fetch --prune --unshallow --tags - name: Delete previous release run: | gh release delete --yes canary env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Get current date id: date run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - name: Create new release uses: softprops/action-gh-release@v2 with: tag_name: canary name: DSPRE Canary Build ${{ steps.date.outputs.date }} files: DSPRE-canary.zip token: ${{ secrets.GITHUB_TOKEN }} prerelease: true generate_release_notes: true ================================================ 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 # Mono auto generated files mono_crash.* # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Ww][Ii][Nn]32/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ [Ll]ogs/ # 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 nunit-*.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/ # ASP.NET Scaffolding ScaffoldingReadMe.txt # 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 # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Coverlet is a free, cross platform Code Coverage Tool coverage*.json coverage*.xml coverage*.info # 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 # NuGet Symbol Packages *.snupkg # 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 *.appxbundle *.appxupload # 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 *- [Bb]ackup.rdl *- [Bb]ackup ([0-9]).rdl *- [Bb]ackup ([0-9][0-9]).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/ # 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 # Backup folder for Package Reference Convert tool in Visual Studio 2017 MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ # Fody - auto-generated XML schema FodyWeavers.xsd ================================================ FILE: DS_Map/App.config ================================================
2 False 0 True True True True ================================================ FILE: DS_Map/BuildingEditor.Designer.cs ================================================ namespace DSPRE { partial class BuildingEditor { /// /// 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(); this.textureComboBox = new System.Windows.Forms.ComboBox(); this.importButton = new System.Windows.Forms.Button(); this.exportButton = new System.Windows.Forms.Button(); this.buildingOpenGLControl = new Tao.Platform.Windows.SimpleOpenGlControl(); this.interiorCheckBox = new System.Windows.Forms.CheckBox(); this.buildingEditorBldListBox = new System.Windows.Forms.ListBox(); this.panel1 = new System.Windows.Forms.Panel(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); this.label1 = new System.Windows.Forms.Label(); this.button1 = new System.Windows.Forms.Button(); this.panel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); this.SuspendLayout(); // // textureComboBox // this.textureComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.textureComboBox.FormattingEnabled = true; this.textureComboBox.Location = new System.Drawing.Point(657, 520); this.textureComboBox.Name = "textureComboBox"; this.textureComboBox.Size = new System.Drawing.Size(158, 21); this.textureComboBox.TabIndex = 25; this.textureComboBox.SelectedIndexChanged += new System.EventHandler(this.textureComboBox_SelectedIndexChanged); // // importButton // this.importButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.importButton.Location = new System.Drawing.Point(12, 505); this.importButton.Name = "importButton"; this.importButton.Size = new System.Drawing.Size(111, 36); this.importButton.TabIndex = 23; this.importButton.Text = "Import NSBMD"; this.importButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importButton.UseVisualStyleBackColor = true; this.importButton.Click += new System.EventHandler(this.importButton_Click); // // exportButton // this.exportButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.exportButton.Location = new System.Drawing.Point(124, 505); this.exportButton.Name = "exportButton"; this.exportButton.Size = new System.Drawing.Size(111, 36); this.exportButton.TabIndex = 22; this.exportButton.Text = "Export NSBMD"; this.exportButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportButton.UseVisualStyleBackColor = true; this.exportButton.Click += new System.EventHandler(this.exportButton_Click); // // buildingOpenGLControl // this.buildingOpenGLControl.AccumBits = ((byte)(0)); this.buildingOpenGLControl.AutoCheckErrors = false; this.buildingOpenGLControl.AutoFinish = false; this.buildingOpenGLControl.AutoMakeCurrent = true; this.buildingOpenGLControl.AutoSwapBuffers = true; this.buildingOpenGLControl.BackColor = System.Drawing.Color.Black; this.buildingOpenGLControl.ColorBits = ((byte)(32)); this.buildingOpenGLControl.DepthBits = ((byte)(24)); this.buildingOpenGLControl.Location = new System.Drawing.Point(3, 7); this.buildingOpenGLControl.Name = "buildingOpenGLControl"; this.buildingOpenGLControl.Size = new System.Drawing.Size(500, 500); this.buildingOpenGLControl.StencilBits = ((byte)(0)); this.buildingOpenGLControl.TabIndex = 21; this.buildingOpenGLControl.KeyUp += new System.Windows.Forms.KeyEventHandler(this.buildingOpenGLControl_KeyUp); this.buildingOpenGLControl.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.buildingOpenGLControl_PreviewKeyDown); // // interiorCheckBox // this.interiorCheckBox.AutoSize = true; this.interiorCheckBox.Enabled = false; this.interiorCheckBox.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.interiorCheckBox.Location = new System.Drawing.Point(312, 522); this.interiorCheckBox.Name = "interiorCheckBox"; this.interiorCheckBox.Size = new System.Drawing.Size(114, 17); this.interiorCheckBox.TabIndex = 20; this.interiorCheckBox.Text = "Interior Models List"; this.interiorCheckBox.UseVisualStyleBackColor = true; this.interiorCheckBox.CheckedChanged += new System.EventHandler(this.interiorCheckBox_CheckedChanged); // // buildingEditorBldListBox // this.buildingEditorBldListBox.FormattingEnabled = true; this.buildingEditorBldListBox.Location = new System.Drawing.Point(12, 12); this.buildingEditorBldListBox.Name = "buildingEditorBldListBox"; this.buildingEditorBldListBox.Size = new System.Drawing.Size(291, 485); this.buildingEditorBldListBox.TabIndex = 19; this.buildingEditorBldListBox.SelectedIndexChanged += new System.EventHandler(this.buildingEditorListBox_SelectedIndexChanged); // // panel1 // this.panel1.Controls.Add(this.buildingOpenGLControl); this.panel1.Location = new System.Drawing.Point(309, 4); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(507, 512); this.panel1.TabIndex = 26; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(538, 524); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(113, 13); this.label1.TabIndex = 27; this.label1.Text = "Texture Pack Selector"; // // button1 // this.button1.Image = global::DSPRE.Properties.Resources.exportArrow; this.button1.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.button1.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.button1.Location = new System.Drawing.Point(236, 505); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(67, 36); this.button1.TabIndex = 28; this.button1.Text = "DAE"; this.button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.bldExportDAEbutton_Click); // // BuildingEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(825, 545); this.Controls.Add(this.button1); this.Controls.Add(this.label1); this.Controls.Add(this.panel1); this.Controls.Add(this.textureComboBox); this.Controls.Add(this.importButton); this.Controls.Add(this.exportButton); this.Controls.Add(this.interiorCheckBox); this.Controls.Add(this.buildingEditorBldListBox); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; this.Name = "BuildingEditor"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Building Editor"; this.panel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.ComboBox textureComboBox; private System.Windows.Forms.Button importButton; private System.Windows.Forms.Button exportButton; private Tao.Platform.Windows.SimpleOpenGlControl buildingOpenGLControl; private System.Windows.Forms.CheckBox interiorCheckBox; private System.Windows.Forms.ListBox buildingEditorBldListBox; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.BindingSource bindingSource1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button button1; } } ================================================ FILE: DS_Map/BuildingEditor.cs ================================================ using System; using System.IO; using System.Text; using System.Windows.Forms; using LibNDSFormats.NSBMD; using LibNDSFormats.NSBTX; using Microsoft.WindowsAPICodePack.Dialogs; using Tao.OpenGl; using static DSPRE.RomInfo; namespace DSPRE { public partial class BuildingEditor : Form { #region Variables public static string temp_btxname = "BLDtexture.nsbtx"; private readonly string folder; bool disableHandlers = new bool(); readonly RomInfo rom; NSBMD currentNSBMD; byte[] currentModelData; readonly NSBMDGlRenderer renderer = new NSBMDGlRenderer(); public static float ang = 0.0f; public static float dist = 12.8f; public static float elev = 50.0f; public static float tempAng = 0.0f; public static float tempDist = 0.0f; public static float tempElev = 0.0f; public float perspective = 45f; /* Bld Rotation vars */ public bool lRot; public bool rRot; public bool uRot; public bool dRot; #endregion public BuildingEditor(RomInfo romInfo) { InitializeComponent(); rom = romInfo; buildingOpenGLControl.InitializeContexts(); buildingOpenGLControl.MakeCurrent(); buildingOpenGLControl.MouseWheel += new MouseEventHandler(buildingOpenGLControl_MouseWheel); Gl.glEnable(Gl.GL_TEXTURE_2D); if (RomInfo.gameFamily == GameFamilies.HGSS) { interiorCheckBox.Enabled = true; } Helpers.DisableHandlers(); FillListBox(false); FillTexturesBox(); textureComboBox.SelectedIndex = 0; Helpers.EnableHandlers(); buildingEditorBldListBox.SelectedIndex = 0; } #region Subroutines private void CreateEmbeddedTexturesFile(int modelID, bool interior) { string readingPath = folder + rom.GetBuildingModelsDirPath(interior) + "\\" + modelID.ToString("D4"); byte[] txFile = File.ReadAllBytes(readingPath); byte[] texData = NSBUtils.GetTexturesFromTexturedNSBMD(txFile); if (texData.Length <= 4) { Console.WriteLine("No textures found"); return; } DSUtils.WriteToFile(Path.GetTempPath() + temp_btxname, texData, fmode: FileMode.Create); } private void FillListBox(bool interior) { int modelCount = Directory.GetFiles(folder + rom.GetBuildingModelsDirPath(interior)).Length; for (int currentIndex = 0; currentIndex < modelCount; currentIndex++) { string filePath = folder + rom.GetBuildingModelsDirPath(interior) + "\\" + currentIndex.ToString("D4"); using (DSUtils.EasyReader reader = new DSUtils.EasyReader(filePath, 0x14)) { string nsbmdName = NSBUtils.ReadNSBMDname(reader); buildingEditorBldListBox.Items.Add("[" + currentIndex.ToString("D3") + "] " + nsbmdName); } } } private void FillTexturesBox() { int texturesCount = Directory.GetFiles(folder + RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir).Length; textureComboBox.Items.Add("Embedded textures"); for (int i = 0; i < texturesCount; i++) { textureComboBox.Items.Add("Texture " + i); } } private void LoadModelTextures(int fileID) { string path; if (fileID > -1) { path = folder + RomInfo.gameDirs[RomInfo.DirNames.buildingTextures].unpackedDir + "\\" + fileID.ToString("D4"); } else { path = Path.GetTempPath() + temp_btxname; // Load Embedded textures if the argument passed to this function is -1 } try { currentNSBMD.materials = NSBTXLoader.LoadNsbtx(new MemoryStream(File.ReadAllBytes(path)), out currentNSBMD.Textures, out currentNSBMD.Palettes); currentNSBMD.MatchTextures(); } catch { } } private void RenderModel() { MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File bta = new MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File(); MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File btp = new MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File(); MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File bca = new MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File(); int[] aniframeS = new int[0]; buildingOpenGLControl.Invalidate(); // Invalidate drawing surface SetupRenderer(ang, dist, elev, perspective); // Adjust rendering settings /* Render the building model */ renderer.Model = currentNSBMD.models[0]; Gl.glScalef(currentNSBMD.models[0].modelScale / 32, currentNSBMD.models[0].modelScale / 32, currentNSBMD.models[0].modelScale / 32); renderer.RenderModel("", bta, aniframeS, aniframeS, aniframeS, aniframeS, aniframeS, bca, false, -1, 0.0f, 0.0f, dist, elev, ang, true, btp, currentNSBMD); } private void SetupRenderer(float ang, float dist, float elev, float perspective) { Gl.glEnable(Gl.GL_RESCALE_NORMAL); Gl.glEnable(Gl.GL_COLOR_MATERIAL); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glEnable(Gl.GL_NORMALIZE); Gl.glDisable(Gl.GL_CULL_FACE); Gl.glFrontFace(Gl.GL_CCW); Gl.glClearDepth(1); Gl.glEnable(Gl.GL_ALPHA_TEST); Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA); Gl.glEnable(Gl.GL_BLEND); Gl.glAlphaFunc(Gl.GL_GREATER, 0f); Gl.glClearColor(51f / 255f, 51f / 255f, 51f / 255f, 1f); float aspect; Gl.glViewport(0, 0, buildingOpenGLControl.Width, buildingOpenGLControl.Height); aspect = buildingOpenGLControl.Width / buildingOpenGLControl.Height;//(vp[2] - vp[0]) / (vp[3] - vp[1]); Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(perspective, aspect, 0.2f, 500.0f);//0.02f, 32.0f); Gl.glTranslatef(0, 0, -dist); Gl.glRotatef(elev, 1, 0, 0); Gl.glRotatef(ang, 0, 1, 0); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glTranslatef(0, 0, -dist); Gl.glRotatef(elev, 1, 0, 0); Gl.glRotatef(-ang, 0, 1, 0); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLoadIdentity(); Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); Gl.glColor3f(1.0f, 1.0f, 1.0f); Gl.glDepthMask(Gl.GL_TRUE); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); } #endregion private void buildingOpenGLControl_MouseWheel(object sender, MouseEventArgs e) { // Zoom In/Out float val = (float)e.Delta / 200; if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) { dist += val; } else { dist -= val; } RenderModel(); } private void buildingEditorListBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || buildingEditorBldListBox.SelectedIndex < 0) { return; } string path = folder + rom.GetBuildingModelsDirPath(interiorCheckBox.Checked) + "\\" + buildingEditorBldListBox.SelectedIndex.ToString("D4"); currentModelData = File.ReadAllBytes(path); currentNSBMD = NSBMDLoader.LoadNSBMD(new MemoryStream(currentModelData)); CreateEmbeddedTexturesFile(buildingEditorBldListBox.SelectedIndex, interiorCheckBox.Checked); LoadModelTextures(textureComboBox.SelectedIndex - 1); RenderModel(); } private void exportButton_Click(object sender, EventArgs e) { SaveFileDialog em = new SaveFileDialog { Filter = "NSBMD model (*.nsbmd)|*.nsbmd", FileName = buildingEditorBldListBox.SelectedItem.ToString() }; if (em.ShowDialog(this) != DialogResult.OK) { return; } File.Copy(folder + rom.GetBuildingModelsDirPath(interiorCheckBox.Checked) + "\\" + buildingEditorBldListBox.SelectedIndex.ToString("D4"), em.FileName, true); } private void importButton_Click(object sender, EventArgs e) { OpenFileDialog im = new OpenFileDialog { Filter = "NSBMD model (*.nsbmd)|*.nsbmd" }; if (im.ShowDialog(this) != DialogResult.OK) { return; } using (DSUtils.EasyReader reader = new DSUtils.EasyReader(im.FileName)) { if (reader.ReadUInt32() != NSBMD.NDS_TYPE_BMD0) { MessageBox.Show("Please select an NSBMD file.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { int currentIndex = buildingEditorBldListBox.SelectedIndex; File.Copy(im.FileName, folder + rom.GetBuildingModelsDirPath(interiorCheckBox.Checked) + "\\" + currentIndex.ToString("D4"), true); buildingEditorBldListBox.Items[currentIndex] = "[" + currentIndex.ToString("D3") + "] " + NSBUtils.ReadNSBMDname(reader, 0x14); buildingEditorListBox_SelectedIndexChanged(null, null); } } } private void interiorCheckBox_CheckedChanged(object sender, EventArgs e) { Helpers.DisableHandlers(); buildingEditorBldListBox.Items.Clear(); FillListBox(interiorCheckBox.Checked); Helpers.EnableHandlers(); buildingEditorBldListBox.SelectedIndex = 0; } private void textureComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } LoadModelTextures(textureComboBox.SelectedIndex - 1); RenderModel(); } private void buildingOpenGLControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { byte multiplier = 2; if (e.Modifiers == Keys.Shift) { multiplier = 1; } else if (e.Modifiers == Keys.Control) { multiplier = 4; } switch (e.KeyCode) { case Keys.Right: rRot = true; lRot = false; break; case Keys.Left: rRot = false; lRot = true; break; case Keys.Up: dRot = false; uRot = true; break; case Keys.Down: dRot = true; uRot = false; break; } if (rRot ^ lRot) { if (rRot) { ang += 1 * multiplier; } else if (lRot) { ang -= 1 * multiplier; } } if (uRot ^ dRot) { if (uRot) { elev -= 1 * multiplier; } else if (dRot) { elev += 1 * multiplier; } } RenderModel(); } private void bldExportDAEbutton_Click(object sender, EventArgs e) { ModelUtils.ModelToDAE( modelName: buildingEditorBldListBox.SelectedItem.ToString().TrimEnd('\0'), modelData: currentModelData, textureData: textureComboBox.SelectedIndex < 1 ? null : File.ReadAllBytes(RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + (textureComboBox.SelectedIndex - 1).ToString("D4")) ); } private void buildingOpenGLControl_KeyUp(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Right: rRot = false; break; case Keys.Left: lRot = false; break; case Keys.Up: uRot = false; break; case Keys.Down: dRot = false; break; } } } } ================================================ FILE: DS_Map/BuildingEditor.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 25 ================================================ FILE: DS_Map/DSPRE.csproj ================================================  Debug AnyCPU {E3C66521-EE89-4406-92C4-FC1D40DC4200} WinExe DSPRE DSPRE v4.8 512 true false publish\ true Disk false Foreground 7 Days false false true 0 1.4.1.%2a false true AnyCPU true full false bin\Debug\ DEBUG;TRACE prompt 4 true false false AnyCPU none true bin\Release\ TRACE prompt 4 true true false false app.ico False .\HelixToolkit.dll False ..\..\..\..\..\Desktop\sdsme\Map_Editor\OpenTK.dll False ..\..\..\..\..\Desktop\sdsme\Map_Editor\Tao.OpenGl.dll False ..\..\..\..\..\Desktop\sdsme\Map_Editor\Tao.Platform.Windows.dll Form Form UserControl EncountersEditor.cs UserControl HeadbuttEncounterEditor.cs UserControl HeadbuttEncounterEditorTab.cs UserControl LevelScriptEditor.cs Form MoveDataEditor.cs UserControl SafariZoneEditor.cs UserControl SafariZoneEncounterEditorTab.cs UserControl SafariZoneEncounterGroupEditor.cs UserControl ScriptEditor.cs Form EventFileImport.cs Form EvolutionsEditor.cs Component Form LearnsetEditor.cs Form OverlayEditor.cs Form PersonalDataEditor.cs Form PokemonEditor.cs True True Resources.resx Form CommandsDatabase.cs True True BDHCAMPatchDB.resx Form HeaderSearch.cs Component Form PatchToolboxDialog.cs Form BuildingEditor.cs Form ScriptTooltip.cs Form SpawnEditor.cs Form WildEditorHGSS.cs Form WildEditorDPPt.cs Form Form Main Window.cs EncountersEditor.cs HeadbuttEncounterEditor.cs HeadbuttEncounterEditorTab.cs LevelScriptEditor.cs MoveDataEditor.cs SafariZoneEditor.cs SafariZoneEncounterEditorTab.cs SafariZoneEncounterGroupEditor.cs ScriptEditor.cs EventFileImport.cs EvolutionsEditor.cs HeaderSearch.cs LearnsetEditor.cs OverlayEditor.cs PersonalDataEditor.cs PokemonEditor.cs ResXFileCodeGenerator BDHCAMPatchDB.Designer.cs Designer CommandsDatabase.cs Designer PatchToolboxDialog.cs BuildingEditor.cs ScriptTooltip.cs SpawnEditor.cs WildEditorHGSS.cs Main Window.cs Designer ResXFileCodeGenerator Designer Resources.Designer.cs WildEditorDPPt.cs SettingsSingleFileGenerator Settings.Designer.cs True Settings.settings True Always Always Always False Microsoft .NET Framework 4.5.2 %28x86 e x64%29 true False .NET Framework 3.5 SP1 false {736010d3-f72f-4c56-b8d2-2edd1b8f3a87} Ekona {8bb5da4b-5b71-4993-8941-4f38d4e6c81b} Images 3.6.3 1.1.0.2 1.1.0 4.3.0 ================================================ FILE: DS_Map/DSUtils/ARM9.cs ================================================ using System; using System.Diagnostics; using System.IO; using static DSPRE.RomInfo; namespace DSPRE { public static class ARM9 { private const int MAX_SIZE = 0xBC000; public static readonly uint address = 0x02000000; public class Reader : DSUtils.EasyReader { public Reader(long pos = 0) : base(arm9Path, pos) { this.BaseStream.Position = pos; } } public class Writer : DSUtils.EasyWriter { public Writer(long pos = 0) : base(arm9Path, pos) { this.BaseStream.Position = pos; } } public static void EditSize(int increment) { using (Writer w = new Writer()) { w.EditSize(increment); } } public static bool Decompress(string path) { Process decompress = DSUtils.CreateDecompressProcess(path); decompress.Start(); decompress.WaitForExit(); return new FileInfo(path).Length > MAX_SIZE; } public static bool Compress(string path) { Process compress = new Process(); compress.StartInfo.FileName = @"Tools\blz.exe"; compress.StartInfo.Arguments = @" -en9 " + '"' + path + '"'; compress.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; compress.StartInfo.CreateNoWindow = true; compress.Start(); compress.WaitForExit(); return new FileInfo(path).Length <= MAX_SIZE; } public static bool CheckCompressionMark() { return BitConverter.ToInt32(ReadBytes((uint)(RomInfo.gameFamily == GameFamilies.DP ? 0xB7C : 0xBB4), 4), 0) != 0; } public static byte[] ReadBytes(uint startOffset, long numberOfBytes = 0) { return DSUtils.ReadFromFile(RomInfo.arm9Path, startOffset, numberOfBytes); } public static void WriteBytes(byte[] bytesToWrite, uint destOffset, int indexFirstByteToWrite = 0, int? indexLastByteToWrite = null) { DSUtils.WriteToFile(RomInfo.arm9Path, bytesToWrite, destOffset, indexFirstByteToWrite, indexLastByteToWrite); } public static byte ReadByte(uint startOffset) { return DSUtils.ReadFromFile(RomInfo.arm9Path, startOffset, 1)[0]; } public static void WriteByte(byte value, uint destOffset) { DSUtils.WriteToFile(RomInfo.arm9Path, BitConverter.GetBytes(value), destOffset, 0); } } } ================================================ FILE: DS_Map/DSUtils/DSUtils.cs ================================================ using Ekona.Images; using Images; using LibNDSFormats.NSBMD; using Microsoft.WindowsAPICodePack.Dialogs; using NarcAPI; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE { public static class DSUtils { public const int ERR_OVERLAY_NOTFOUND = -1; public const int ERR_OVERLAY_ALREADY_UNCOMPRESSED = -2; public const string backupSuffix = ".backup"; public static readonly string NDSRomFilter = "NDS File (*.nds)|*.nds"; public class EasyReader : BinaryReader { public EasyReader(string path, long pos = 0) : base(File.OpenRead(path)) { this.BaseStream.Position = pos; } } public class EasyWriter : BinaryWriter { public EasyWriter(string path, long pos = 0, FileMode fmode = FileMode.OpenOrCreate) : base(new FileStream(path, fmode, FileAccess.Write, FileShare.None)) { this.BaseStream.Position = pos; } public void EditSize(int increment) { this.BaseStream.SetLength(this.BaseStream.Length + increment); } } public static void WriteToFile(string filepath, byte[] toOutput, uint writeAt = 0, int indexFirstByteToWrite = 0, int? indexLastByteToWrite = null, FileMode fmode = FileMode.OpenOrCreate) { using (EasyWriter writer = new EasyWriter(filepath, writeAt, fmode)) { writer.Write(toOutput, indexFirstByteToWrite, indexLastByteToWrite is null ? toOutput.Length - indexFirstByteToWrite : (int)indexLastByteToWrite); } } public static byte[] ReadFromFile(string filepath, long startOffset = 0, long numberOfBytes = 0) { byte[] buffer = null; using (EasyReader reader = new EasyReader(filepath, startOffset)) { try { buffer = reader.ReadBytes(numberOfBytes == 0 ? (int)(reader.BaseStream.Length - reader.BaseStream.Position) : (int)numberOfBytes); } catch (EndOfStreamException) { Console.WriteLine("Stream ended"); } } return buffer; } public static byte[] ReadFromByteArray(byte[] input, long readFrom = 0, long numberOfBytes = 0) { byte[] buffer = null; using (BinaryReader reader = new BinaryReader(new MemoryStream(input))) { reader.BaseStream.Position = readFrom; try { if (numberOfBytes == 0) { buffer = reader.ReadBytes((int)(input.Length - reader.BaseStream.Position)); } else { buffer = reader.ReadBytes((int)numberOfBytes); } } catch (EndOfStreamException) { Console.WriteLine("Stream ended"); } } return buffer; } public static Process CreateDecompressProcess(string path) { Process decompress = new Process(); decompress.StartInfo.FileName = @"Tools\blz.exe"; decompress.StartInfo.Arguments = @" -d " + '"' + path + '"'; decompress.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; decompress.StartInfo.CreateNoWindow = true; return decompress; } public static void RepackROM(string ndsFileName) { Process repack = new Process(); repack.StartInfo.FileName = @"Tools\ndstool.exe"; repack.StartInfo.Arguments = "-c " + '"' + ndsFileName + '"' + " -9 " + '"' + RomInfo.arm9Path + '"' + " -7 " + '"' + RomInfo.workDir + "arm7.bin" + '"' + " -y9 " + '"' + RomInfo.workDir + "y9.bin" + '"' + " -y7 " + '"' + RomInfo.workDir + "y7.bin" + '"' + " -d " + '"' + RomInfo.workDir + "data" + '"' + " -y " + '"' + RomInfo.workDir + "overlay" + '"' + " -t " + '"' + RomInfo.workDir + "banner.bin" + '"' + " -h " + '"' + RomInfo.workDir + "header.bin" + '"'; Application.DoEvents(); repack.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; repack.StartInfo.CreateNoWindow = true; repack.Start(); repack.WaitForExit(); } public static byte[] StringToByteArray(String hex) { //Ummm what? int NumberChars = hex.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); return bytes; } public static byte[] HexStringToByteArray(string hexString) { //FC B5 05 48 C0 46 41 21 //09 22 02 4D A8 47 00 20 //03 21 FC BD F1 64 00 02 //00 80 3C 02 if (hexString is null) return null; hexString = hexString.Trim(); byte[] b = new byte[hexString.Length / 3 + 1]; for (int i = 0; i < hexString.Length; i += 2) { if (hexString[i] == ' ') { hexString = hexString.Substring(1, hexString.Length - 1); } b[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16); } return b; } public static void TryUnpackNarcs(List IDs) { if (gameDirs == null || gameDirs.Count == 0) { return; } Parallel.ForEach(IDs, id => { if (gameDirs.TryGetValue(id, out (string packedPath, string unpackedPath) paths)) { DirectoryInfo di = new DirectoryInfo(paths.unpackedPath); if (!di.Exists || di.GetFiles().Length == 0) { Narc opened = Narc.Open(paths.packedPath) ?? throw new NullReferenceException(); opened.ExtractToFolder(paths.unpackedPath); } } }); } public static void ForceUnpackNarcs(List IDs) { Parallel.ForEach(IDs, id => { if (gameDirs.TryGetValue(id, out (string packedPath, string unpackedPath) paths)) { Narc opened = Narc.Open(paths.packedPath); if (opened is null) { throw new NullReferenceException(); } opened.ExtractToFolder(paths.unpackedPath); } }); } public static Image GetPokePic(int species, int w, int h) { PaletteBase paletteBase; bool fiveDigits = false; // some extreme future proofing string filename = "0000"; try { paletteBase = new NCLR(gameDirs[DirNames.monIcons].unpackedDir + "\\" + filename, 0, filename); } catch (FileNotFoundException) { filename += '0'; paletteBase = new NCLR(gameDirs[DirNames.monIcons].unpackedDir + "\\" + filename, 0, filename); fiveDigits = true; } // read arm9 table to grab pal ID int paletteId = 0; string iconTablePath; int iconPalTableOffsetFromFileStart; string ov129path = OverlayUtils.GetPath(129); if (File.Exists(ov129path)) { // if overlay 129 exists, read it from there iconPalTableOffsetFromFileStart = (int)(RomInfo.monIconPalTableAddress - OverlayUtils.OverlayTable.GetRAMAddress(129)); iconTablePath = ov129path; } else if ((int)(RomInfo.monIconPalTableAddress - RomInfo.synthOverlayLoadAddress) >= 0) { // if there is a synthetic overlay, read it from there iconPalTableOffsetFromFileStart = (int)(RomInfo.monIconPalTableAddress - RomInfo.synthOverlayLoadAddress); iconTablePath = gameDirs[DirNames.synthOverlay].unpackedDir + "\\" + PatchToolboxDialog.expandedARMfileID.ToString("D4"); } else { // default handling iconPalTableOffsetFromFileStart = (int)(RomInfo.monIconPalTableAddress - ARM9.address); iconTablePath = RomInfo.arm9Path; } using (DSUtils.EasyReader idReader = new DSUtils.EasyReader(iconTablePath, iconPalTableOffsetFromFileStart + species)) { paletteId = idReader.ReadByte(); } if (paletteId != 0) { paletteBase.Palette[0] = paletteBase.Palette[paletteId]; // update pal 0 to be the new pal } // grab tiles int spriteFileID = species + 7; string spriteFilename = spriteFileID.ToString("D" + (fiveDigits ? "5" : "4")); ImageBase imageBase = new NCGR(gameDirs[DirNames.monIcons].unpackedDir + "\\" + spriteFilename, spriteFileID, spriteFilename); // grab sprite int ncerFileId = 2; string ncerFileName = ncerFileId.ToString("D" + (fiveDigits ? "5" : "4")); SpriteBase spriteBase = new NCER(gameDirs[DirNames.monIcons].unpackedDir + "\\" + ncerFileName, 2, ncerFileName); // copy this from the trainer int bank0OAMcount = spriteBase.Banks[0].oams.Length; int[] OAMenabled = new int[bank0OAMcount]; for (int i = 0; i < OAMenabled.Length; i++) { OAMenabled[i] = i; } // finally compose image try { return spriteBase.Get_Image(imageBase, paletteBase, 0, w, h, false, false, false, true, true, -1, OAMenabled); } catch (FormatException) { return Properties.Resources.IconPokeball; } } } } ================================================ FILE: DS_Map/DSUtils/ModelUtils.cs ================================================ using Microsoft.WindowsAPICodePack.Dialogs; using System.Diagnostics; using System.IO; using System.Windows.Forms; namespace DSPRE { public static class ModelUtils { public static void ModelToDAE(string modelName, byte[] modelData, byte[] textureData) { MessageBox.Show("Choose output folder.\nDSPRE will automatically create a sub-folder in it.", "Awaiting user input", MessageBoxButtons.OK, MessageBoxIcon.Information); CommonOpenFileDialog cofd = new CommonOpenFileDialog { IsFolderPicker = true, Multiselect = false }; if (cofd.ShowDialog() != CommonFileDialogResult.Ok) { return; } string outDir = Path.Combine(cofd.FileName, modelName); if (Directory.Exists(outDir)) { if (Directory.GetFiles(outDir).Length > 0) { DialogResult d = MessageBox.Show($"Directory \"{outDir}\" already exists and is not empty.\nIts contents will be lost.\n\nDo you want to proceed?", "Directory not empty", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.No)) { return; } else { Directory.Delete(outDir, recursive: true); } } else { Directory.Delete(outDir, recursive: true); } } string tempNSBMDPath = outDir + "_temp.nsbmd"; if (textureData != null && textureData.Length > 0) { modelData = NSBUtils.BuildNSBMDwithTextures(modelData, textureData); } File.WriteAllBytes(tempNSBMDPath, modelData); /* Check correct creation of temp NSBMD file*/ if (!File.Exists(tempNSBMDPath)) { MessageBox.Show("Expected NSBMD file could not be found.\nAborting", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Process apicula = new Process(); apicula.StartInfo.FileName = @"Tools\apicula.exe"; apicula.StartInfo.Arguments = $" convert \"{tempNSBMDPath}\" --output \"{outDir}\""; apicula.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; apicula.StartInfo.CreateNoWindow = true; apicula.Start(); apicula.WaitForExit(); if (File.Exists(tempNSBMDPath)) { File.Delete(tempNSBMDPath); if (File.Exists(tempNSBMDPath)) { MessageBox.Show("Temporary NSBMD file deletion failed.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("Temporary NSBMD file corresponding to this map disappeared.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } if (apicula.ExitCode == 0) { MessageBox.Show("NSBMD was exported and converted successfully!", "Operation successful", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("NSBMD to DAE conversion failed.", "Apicula error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } public static void ModelToGLB(string modelName, byte[] modelData, byte[] textureData) { MessageBox.Show("Choose output folder.\nDSPRE will automatically create a sub-folder in it.", "Awaiting user input", MessageBoxButtons.OK, MessageBoxIcon.Information); CommonOpenFileDialog cofd = new CommonOpenFileDialog { IsFolderPicker = true, Multiselect = false }; if (cofd.ShowDialog() != CommonFileDialogResult.Ok) { return; } string outDir = Path.Combine(cofd.FileName, modelName); if (Directory.Exists(outDir)) { if (Directory.GetFiles(outDir).Length > 0) { DialogResult d = MessageBox.Show($"Directory \"{outDir}\" already exists and is not empty.\nIts contents will be lost.\n\nDo you want to proceed?", "Directory not empty", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.No)) { return; } else { Directory.Delete(outDir, recursive: true); } } else { Directory.Delete(outDir, recursive: true); } } string tempNSBMDPath = outDir + "_temp.nsbmd"; if (textureData != null && textureData.Length > 0) { modelData = NSBUtils.BuildNSBMDwithTextures(modelData, textureData); } File.WriteAllBytes(tempNSBMDPath, modelData); /* Check correct creation of temp NSBMD file*/ if (!File.Exists(tempNSBMDPath)) { MessageBox.Show("NSBMD file corresponding to this map could not be found.\nAborting", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Process apicula = new Process(); apicula.StartInfo.FileName = @"Tools\apicula.exe"; apicula.StartInfo.Arguments = $" convert \"{tempNSBMDPath}\" -f glb --output \"{outDir}\""; apicula.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; apicula.StartInfo.CreateNoWindow = true; apicula.Start(); apicula.WaitForExit(); if (File.Exists(tempNSBMDPath)) { File.Delete(tempNSBMDPath); if (File.Exists(tempNSBMDPath)) { MessageBox.Show("Temporary NSBMD file deletion failed.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("Temporary NSBMD file corresponding to this map disappeared.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } if (apicula.ExitCode == 0) { MessageBox.Show("NSBMD was exported and converted successfully!", "Operation successful", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("NSBMD to GLB conversion failed.", "Apicula error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } ================================================ FILE: DS_Map/DSUtils/NSBUtils.cs ================================================ using LibNDSFormats.NSBMD; using System; using System.IO; using System.Text; using System.Windows.Forms; namespace DSPRE { public static class NSBUtils { public const int NSBMD_DOESNTHAVE_TEXTURE = 0; public const int NSBMD_HAS_TEXTURE = 1; public static string ReadNSBMDname(BinaryReader reader, long? startPos = null) { if (startPos != null) { reader.BaseStream.Position = (long)startPos; } if (reader.ReadUInt32() == NSBMD.NDS_TYPE_MDL0) { //MDL0 reader.BaseStream.Position += 0x1c; } else { reader.BaseStream.Position += 0x1c + 4; } return Encoding.UTF8.GetString(reader.ReadBytes(16)); } public static byte[] BuildNSBMDwithTextures(byte[] nsbmd, byte[] nsbtx) { byte[] wholeMDL0 = GetFirstBlock(nsbmd); byte[] wholeTEX0 = GetFirstBlock(nsbtx); MemoryStream ms = new MemoryStream(); using (BinaryWriter msWriter = new BinaryWriter(ms)) { msWriter.Write(NSBMD.NDS_TYPE_BMD0); msWriter.Write(NSBMD.NDS_TYPE_BYTEORDER); msWriter.Write(NSBMD.NDS_TYPE_UNK2); ushort nBlocks = 2; uint modelLength = (uint)(wholeMDL0.Length + NSBMD.HEADERSIZE + 4 * nBlocks); msWriter.Write((uint)(modelLength + wholeTEX0.Length)); msWriter.Write(NSBMD.HEADERSIZE); //Header size, always 16 msWriter.Write(nBlocks); //Number of blocks, now it's 2 because we are inserting textures msWriter.Write((uint)(msWriter.BaseStream.Position + 4 * nBlocks)); //Absolute offset to model data. We are gonna have to write two offsets msWriter.Write(modelLength); //Copy offset to TEX0 msWriter.Write(wholeMDL0); msWriter.Write(wholeTEX0); } return ms.ToArray(); } public static byte[] BuildNSBTXHeader(uint texturesSize) { MemoryStream ms = new MemoryStream(); using (BinaryWriter bw = new BinaryWriter(ms)) { bw.Write(Encoding.UTF8.GetBytes("BTX0")); // Write magic code BTX0 bw.Write((ushort)0xFEFF); // Byte order bw.Write((ushort)0x0001); // ??? bw.Write(texturesSize); // Write size of textures block bw.Write((short)0x10); //Header size bw.Write((short)0x01); //Number of sub-files??? bw.Write((uint)0x14); // Offset to sub-file } return ms.ToArray(); } public static int CheckNSBMDHeader(byte[] modelFile) { using (BinaryReader byteArrReader = new BinaryReader(new MemoryStream(modelFile))) { if (byteArrReader.ReadUInt32() != NSBMD.NDS_TYPE_BMD0) { MessageBox.Show("Please select an NSBMD file.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); return -1; } byteArrReader.BaseStream.Position = 0xE; return byteArrReader.ReadInt16() >= 2 ? NSBMD_HAS_TEXTURE : NSBMD_DOESNTHAVE_TEXTURE; } } public static byte[] GetModelWithoutTextures(byte[] modelFile) { byte[] nsbmdHeaderData; uint mdl0Size; byte[] mdl0Data; using (BinaryReader modelReader = new BinaryReader(new MemoryStream(modelFile))) { modelReader.BaseStream.Position = 0x0; nsbmdHeaderData = modelReader.ReadBytes(0x8); modelReader.BaseStream.Position = 0x1C; mdl0Size = modelReader.ReadUInt32(); // Read mdl0 file size modelReader.BaseStream.Position = 0x18; mdl0Data = modelReader.ReadBytes((int)mdl0Size); } MemoryStream output = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(output)) { writer.Write(nsbmdHeaderData); // Write first header bytes, same for all NSBMD. writer.Write(mdl0Size + 0x14); writer.Write((short)0x10); // Writes BMD0 header size (always 16) writer.Write((short)0x1); // Write new number of sub-files, since embedded textures are removed writer.Write((uint)0x14); // Writes new start offset of MDL0 writer.Write(mdl0Data); // Writes MDL0; } return output.ToArray(); } public static byte[] GetTexturesFromTexturedNSBMD(byte[] modelFile) { using (BinaryReader byteArrReader = new BinaryReader(new MemoryStream(modelFile))) { byteArrReader.BaseStream.Position = 14; if (byteArrReader.ReadUInt16() < 2) //No textures return new byte[0]; byteArrReader.BaseStream.Position = 20; int texAbsoluteOffset = byteArrReader.ReadInt32(); byteArrReader.BaseStream.Position = texAbsoluteOffset + 4; uint textureSize = byteArrReader.ReadUInt32(); byte[] nsbtxHeader = NSBUtils.BuildNSBTXHeader(20 + textureSize); byte[] texData = DSUtils.ReadFromByteArray(modelFile, readFrom: texAbsoluteOffset); byte[] output = new byte[nsbtxHeader.Length + texData.Length]; Buffer.BlockCopy(nsbtxHeader, 0, output, 0, nsbtxHeader.Length); Buffer.BlockCopy(texData, 0, output, nsbtxHeader.Length, texData.Length); return output; } } private static byte[] GetFirstBlock(byte[] NSBFile) { int blockSize; uint offsetToMainBlock; using (BinaryReader reader = new BinaryReader(new MemoryStream(NSBFile))) { reader.BaseStream.Position = 16; offsetToMainBlock = reader.ReadUInt32(); reader.BaseStream.Position = offsetToMainBlock + 4; blockSize = reader.ReadInt32(); } byte[] blockData = new byte[blockSize]; Buffer.BlockCopy(NSBFile, (int)offsetToMainBlock, blockData, 0, blockSize); return blockData; } } } ================================================ FILE: DS_Map/DSUtils/OverlayUtils.cs ================================================ using System; using System.Diagnostics; using System.IO; using System.Windows.Forms; using static DSPRE.DSUtils; using static DSPRE.RomInfo; namespace DSPRE { public static class OverlayUtils { public static class OverlayTable { private const int ENTRY_LEN = 32; /** * Only checks if the overlay is CONFIGURED as compressed **/ public static bool IsDefaultCompressed(int ovNumber) { using (DSUtils.EasyReader f = new EasyReader(RomInfo.overlayTablePath, ovNumber * ENTRY_LEN + 31)) { return (f.ReadByte() & 1) == 1; } } public static void SetDefaultCompressed(int ovNumber, bool compressStatus) { DSUtils.WriteToFile(RomInfo.overlayTablePath, new byte[] { compressStatus ? (byte)1 : (byte)0 }, (uint)(ovNumber * ENTRY_LEN + 31)); //overlayNumber * size of entry + offset } public static uint GetRAMAddress(int ovNumber) { using (DSUtils.EasyReader f = new EasyReader(RomInfo.overlayTablePath, ovNumber * ENTRY_LEN + 4)) { return f.ReadUInt32(); } } public static uint GetUncompressedSize(int ovNumber) { using (DSUtils.EasyReader f = new EasyReader(RomInfo.overlayTablePath, ovNumber * ENTRY_LEN + 8)) { return f.ReadUInt32(); } } /** * Gets number of overlays **/ public static int GetNumberOfOverlays() { using (FileStream fileStream = File.OpenRead(RomInfo.overlayTablePath)) { // Get the length of the file in bytes return (int)(fileStream.Length / ENTRY_LEN); } } } public static string GetPath(int overlayNumber) { return $"{workDir}overlay\\overlay_{overlayNumber:D4}.bin"; } /** * Checks the actual size of the overlay file **/ public static bool IsCompressed(int ovNumber) { return (new FileInfo(GetPath(ovNumber)).Length < OverlayTable.GetUncompressedSize(ovNumber)); } public static void RestoreFromCompressedBackup(int overlayNumber, bool eventEditorIsReady) { String overlayFilePath = GetPath(overlayNumber); if (File.Exists(overlayFilePath + DSUtils.backupSuffix)) { if (new FileInfo(overlayFilePath).Length <= new FileInfo(overlayFilePath + DSUtils.backupSuffix).Length) { //if overlay is bigger than its backup Console.WriteLine($"Overlay {overlayNumber} is already compressed."); return; } else { File.Delete(overlayFilePath); File.Move(overlayFilePath + DSUtils.backupSuffix, overlayFilePath); } } else { string msg = $"Overlay File {overlayFilePath}{DSUtils.backupSuffix} couldn't be found and restored."; Console.WriteLine(msg); if (eventEditorIsReady) { MessageBox.Show(msg, "Can't restore overlay from backup", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public static int Compress(int overlayNumber) { string overlayFilePath = GetPath(overlayNumber); if (!File.Exists(overlayFilePath)) { MessageBox.Show("Overlay to decompress #" + overlayNumber + " doesn't exist", "Overlay not found", MessageBoxButtons.OK, MessageBoxIcon.Error); return ERR_OVERLAY_NOTFOUND; } Process compress = new Process(); compress.StartInfo.FileName = @"Tools\blz.exe"; compress.StartInfo.Arguments = "-en " + '"' + overlayFilePath + '"'; Application.DoEvents(); compress.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; compress.StartInfo.CreateNoWindow = true; compress.Start(); compress.WaitForExit(); return compress.ExitCode; } public static int Decompress(string overlayFilePath, bool makeBackup = true) { if (!File.Exists(overlayFilePath)) { MessageBox.Show($"File to decompress \"{overlayFilePath}\" doesn't exist", "Overlay not found", MessageBoxButtons.OK, MessageBoxIcon.Error); return ERR_OVERLAY_NOTFOUND; } if (makeBackup) { if (File.Exists(overlayFilePath + backupSuffix)) { File.Delete(overlayFilePath + backupSuffix); } File.Copy(overlayFilePath, overlayFilePath + backupSuffix); } Process decompress = DSUtils.CreateDecompressProcess(overlayFilePath); decompress.Start(); decompress.WaitForExit(); return decompress.ExitCode; } public static int Decompress(int overlayNumber, bool makeBackup = true) { return Decompress(GetPath(overlayNumber), makeBackup); } } } ================================================ FILE: DS_Map/DVCalculator/DVCalc.Designer.cs ================================================ using System.Windows.Forms; namespace DSPRE { partial class DVCalc { /// /// 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. /// #endregion private Label poke_label; private Label trainerClassIdx_label; private Label trainerIdx_label; private Label pokeLVL_label; private NumericUpDown pokeLevel; private NumericUpDown trainerClassIdx; private NumericUpDown trainerIdx; private ComboBox natureSelect; private Label nature_label; private Label DV_label; private Button calcButton; private CheckBox maleCheck; private Label maxDVNature_label; private Label IV_label; private ComboBox pokemonSelector; private Button showAllButton; private Button helpButton; } } ================================================ FILE: DS_Map/DVCalculator/DVCalc.cs ================================================ using System; using System.Collections.Generic; using System.Windows.Forms; using System.Xml.Linq; namespace DSPRE { public partial class DVCalc : Form { public DVCalc(int TrainerIndex, int TrainerClassIndex) { InitializeComponent(); PopulateComboBox(); SetTrainerData(TrainerIndex, TrainerClassIndex); //make Pokemon searchable pokemonSelector.TextChanged += PokemonSelector_TextChanged; pokemonSelector.AutoCompleteMode = AutoCompleteMode.Suggest; pokemonSelector.AutoCompleteSource = AutoCompleteSource.CustomSource; AutoCompleteStringCollection autoCompleteSource = new AutoCompleteStringCollection(); foreach (KeyValuePair item in pokemonSelector.Items) { autoCompleteSource.Add(item.Value); } pokemonSelector.AutoCompleteCustomSource = autoCompleteSource; } private void MainForm_Load(object sender, EventArgs e) { } private void InitializeComponent() { this.poke_label = new System.Windows.Forms.Label(); this.trainerClassIdx_label = new System.Windows.Forms.Label(); this.trainerIdx_label = new System.Windows.Forms.Label(); this.pokeLVL_label = new System.Windows.Forms.Label(); this.pokeLevel = new System.Windows.Forms.NumericUpDown(); this.trainerClassIdx = new System.Windows.Forms.NumericUpDown(); this.trainerIdx = new System.Windows.Forms.NumericUpDown(); this.natureSelect = new System.Windows.Forms.ComboBox(); this.nature_label = new System.Windows.Forms.Label(); this.DV_label = new System.Windows.Forms.Label(); this.calcButton = new System.Windows.Forms.Button(); this.maleCheck = new System.Windows.Forms.CheckBox(); this.maxDVNature_label = new System.Windows.Forms.Label(); this.IV_label = new System.Windows.Forms.Label(); this.pokemonSelector = new System.Windows.Forms.ComboBox(); this.showAllButton = new System.Windows.Forms.Button(); this.helpButton = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.pokeLevel)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trainerClassIdx)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trainerIdx)).BeginInit(); this.SuspendLayout(); // // poke_label // this.poke_label.AutoSize = true; this.poke_label.Location = new System.Drawing.Point(28, 154); this.poke_label.Name = "poke_label"; this.poke_label.Size = new System.Drawing.Size(65, 16); this.poke_label.TabIndex = 3; this.poke_label.Text = "Pokmon"; // // trainerClassIdx_label // this.trainerClassIdx_label.AutoSize = true; this.trainerClassIdx_label.Location = new System.Drawing.Point(28, 87); this.trainerClassIdx_label.Name = "trainerClassIdx_label"; this.trainerClassIdx_label.Size = new System.Drawing.Size(122, 16); this.trainerClassIdx_label.TabIndex = 4; this.trainerClassIdx_label.Text = "Trainer Class Index"; // // trainerIdx_label // this.trainerIdx_label.AutoSize = true; this.trainerIdx_label.Location = new System.Drawing.Point(28, 21); this.trainerIdx_label.Name = "trainerIdx_label"; this.trainerIdx_label.Size = new System.Drawing.Size(85, 16); this.trainerIdx_label.TabIndex = 5; this.trainerIdx_label.Text = "Trainer Index"; // // pokeLVL_label // this.pokeLVL_label.AutoSize = true; this.pokeLVL_label.Location = new System.Drawing.Point(278, 179); this.pokeLVL_label.Name = "pokeLVL_label"; this.pokeLVL_label.Size = new System.Drawing.Size(33, 16); this.pokeLVL_label.TabIndex = 6; this.pokeLVL_label.Text = "LVL."; // // pokeLevel // this.pokeLevel.Location = new System.Drawing.Point(318, 177); this.pokeLevel.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.pokeLevel.Name = "pokeLevel"; this.pokeLevel.Size = new System.Drawing.Size(46, 22); this.pokeLevel.TabIndex = 7; this.pokeLevel.Value = new decimal(new int[] { 50, 0, 0, 0}); // // trainerClassIdx // this.trainerClassIdx.Location = new System.Drawing.Point(28, 110); this.trainerClassIdx.Maximum = new decimal(new int[] { 120, 0, 0, 0}); this.trainerClassIdx.Name = "trainerClassIdx"; this.trainerClassIdx.Size = new System.Drawing.Size(125, 22); this.trainerClassIdx.TabIndex = 9; // // trainerIdx // this.trainerIdx.Location = new System.Drawing.Point(28, 44); this.trainerIdx.Maximum = new decimal(new int[] { 1000, 0, 0, 0}); this.trainerIdx.Name = "trainerIdx"; this.trainerIdx.Size = new System.Drawing.Size(125, 22); this.trainerIdx.TabIndex = 10; // // natureSelect // this.natureSelect.FormattingEnabled = true; this.natureSelect.Location = new System.Drawing.Point(192, 44); this.natureSelect.Name = "natureSelect"; this.natureSelect.Size = new System.Drawing.Size(207, 24); this.natureSelect.TabIndex = 11; // // nature_label // this.nature_label.AutoSize = true; this.nature_label.Location = new System.Drawing.Point(192, 21); this.nature_label.Name = "nature_label"; this.nature_label.Size = new System.Drawing.Size(47, 16); this.nature_label.TabIndex = 12; this.nature_label.Text = "Nature"; // // DV_label // this.DV_label.AutoSize = true; this.DV_label.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.DV_label.Location = new System.Drawing.Point(443, 44); this.DV_label.Name = "DV_label"; this.DV_label.Size = new System.Drawing.Size(162, 25); this.DV_label.TabIndex = 13; this.DV_label.Text = "Difficulty Value: 0"; // // calcButton // this.calcButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.calcButton.Location = new System.Drawing.Point(491, 179); this.calcButton.Name = "calcButton"; this.calcButton.Size = new System.Drawing.Size(114, 51); this.calcButton.TabIndex = 14; this.calcButton.Text = "Calculate"; this.calcButton.UseVisualStyleBackColor = true; this.calcButton.Click += new System.EventHandler(this.CalcButton_Click); // // maleCheck // this.maleCheck.AutoSize = true; this.maleCheck.Checked = true; this.maleCheck.CheckState = System.Windows.Forms.CheckState.Checked; this.maleCheck.Location = new System.Drawing.Point(192, 111); this.maleCheck.Name = "maleCheck"; this.maleCheck.Size = new System.Drawing.Size(112, 20); this.maleCheck.TabIndex = 15; this.maleCheck.Text = "Trainer Male?"; this.maleCheck.UseVisualStyleBackColor = true; // // maxDVNature_label // this.maxDVNature_label.AutoSize = true; this.maxDVNature_label.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.maxDVNature_label.Location = new System.Drawing.Point(323, 127); this.maxDVNature_label.Name = "maxDVNature_label"; this.maxDVNature_label.Size = new System.Drawing.Size(125, 20); this.maxDVNature_label.TabIndex = 16; this.maxDVNature_label.Text = "DV 255 Nature:"; // // IV_label // this.IV_label.AutoSize = true; this.IV_label.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.IV_label.Location = new System.Drawing.Point(323, 87); this.IV_label.Name = "IV_label"; this.IV_label.Size = new System.Drawing.Size(113, 20); this.IV_label.TabIndex = 17; this.IV_label.Text = "Resulting IVs:"; // // pokemonSelector // this.pokemonSelector.FormattingEnabled = true; this.pokemonSelector.Location = new System.Drawing.Point(28, 176); this.pokemonSelector.Name = "pokemonSelector"; this.pokemonSelector.Size = new System.Drawing.Size(244, 24); this.pokemonSelector.TabIndex = 18; // // showAllButton // this.showAllButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.showAllButton.Location = new System.Drawing.Point(391, 192); this.showAllButton.Name = "showAllButton"; this.showAllButton.Size = new System.Drawing.Size(94, 29); this.showAllButton.TabIndex = 19; this.showAllButton.Text = "Show All"; this.showAllButton.UseVisualStyleBackColor = true; this.showAllButton.Click += new System.EventHandler(this.ShowAllButton_Click); // // helpButton // this.helpButton.Location = new System.Drawing.Point(541, 2); this.helpButton.Name = "helpButton"; this.helpButton.Size = new System.Drawing.Size(75, 23); this.helpButton.TabIndex = 20; this.helpButton.Text = "Help"; this.helpButton.UseVisualStyleBackColor = true; this.helpButton.Click += new System.EventHandler(this.buttonHelp_Click); // // DVCalc // this.ClientSize = new System.Drawing.Size(628, 242); this.Controls.Add(this.helpButton); this.Controls.Add(this.showAllButton); this.Controls.Add(this.pokemonSelector); this.Controls.Add(this.IV_label); this.Controls.Add(this.maxDVNature_label); this.Controls.Add(this.maleCheck); this.Controls.Add(this.calcButton); this.Controls.Add(this.DV_label); this.Controls.Add(this.nature_label); this.Controls.Add(this.natureSelect); this.Controls.Add(this.trainerIdx); this.Controls.Add(this.trainerClassIdx); this.Controls.Add(this.pokeLevel); this.Controls.Add(this.pokeLVL_label); this.Controls.Add(this.trainerIdx_label); this.Controls.Add(this.trainerClassIdx_label); this.Controls.Add(this.poke_label); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; this.Name = "DVCalc"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "DVCalc"; ((System.ComponentModel.ISupportInitialize)(this.pokeLevel)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trainerClassIdx)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trainerIdx)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } private void PopulateComboBox() { // Populate Nature ComboBox (static readonly List) natureSelect.DataSource = DVCalculator.Natures; // Fill the pokemon selector combo box with pokemon names from the ROM string[] pokeNames = RomInfo.GetPokemonNames(); pokemonSelector.Items.Clear(); for (int id = 0; id < pokeNames.Length; id++) { pokemonSelector.Items.Add(new KeyValuePair(id, pokeNames[id])); } pokemonSelector.SelectedIndex = 0; } private void SetTrainerData(int TrainerIndex, int TrainerClassIndex) { trainerIdx.Value = TrainerIndex; trainerClassIdx.Value = TrainerClassIndex; } private void CalcButton_Click(object sender, EventArgs e) { // Natures are sorted by their index so this works uint nature = (uint)natureSelect.SelectedIndex; int pokemonIndex = 1; if (pokemonSelector.SelectedItem != null) { KeyValuePair selectedPokemon = (KeyValuePair)pokemonSelector.SelectedItem; pokemonIndex = (int)selectedPokemon.Key; } int DV = DVCalculator.findHighestDV((int)trainerIdx.Value, (int)trainerClassIdx.Value, maleCheck.Checked, pokemonIndex, (int)pokeLevel.Value, nature); // Determine nature for max DV (max IV) for convenience uint maxDVNature = DVCalculator.getNatureFromPID(DVCalculator.generatePID((int)trainerIdx.Value, (int)trainerClassIdx.Value, maleCheck.Checked, pokemonIndex, (int)pokeLevel.Value, 255)); // Display results DV_label.Text = "Difficulty Value: " + DV; IV_label.Text = "Resulting IVs: " + (DV * 31 / 255); maxDVNature_label.Text = "DV 255 Nature: " + DVCalculator.Natures[(int)maxDVNature]; } private void ShowAllButton_Click(object sender, EventArgs e) { int pokemonIndex = 1; if (pokemonSelector.SelectedItem != null) { KeyValuePair selectedPokemon = (KeyValuePair)pokemonSelector.SelectedItem; pokemonIndex = (int)selectedPokemon.Key; } // Create a list of DV-IV-Nature Triplets List natureDict = DVCalculator.getAllNatures((int)trainerIdx.Value, (int)trainerClassIdx.Value, maleCheck.Checked, pokemonIndex, (int)pokeLevel.Value); // Create an instance of the view form and pass the data // There might be a better way to do this? DVCalcNatureViewerForm natureViewer = new DVCalcNatureViewerForm(natureDict); natureViewer.ShowDialog(); } private void PokemonSelector_TextChanged(object sender, EventArgs e) { if (sender == null || !(sender is ComboBox)){ { return; } } ComboBox comboBox = (ComboBox)sender; string enteredText = comboBox.Text.ToLower(); // If name of pokemon is typed select that item foreach (KeyValuePair item in comboBox.Items) { if (item.Value.ToLower().Equals(enteredText)) { comboBox.SelectedItem = item; return; } } } private void buttonHelp_Click(object sender, EventArgs e) { MessageBox.Show("DV, or \"Difficulty Value\", is used by the game engine to calculate how tough an opponent Pokemon should be.\n" + "The DV affects a Pokemon's Nature and IVs - the higher the value, the stronger the Pokemon.\n" + "DVs will go from 0 (0 IVs) to 255 (31 IVs). Natures are chosen semi-randomly." + "\nIVs will be the same value for all Stats at any DV, so Hidden Power will only be Fighting or Dark Type." + "\nThis calculator allows you to choose a desired Nature and then find the highest possible DV that will yield that Nature." + "\nIf you want a specific combination of IVs and Nature instead, please click the \"Show All\" button and find the one you want." , "Difficulty Value", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } ================================================ FILE: DS_Map/DVCalculator/DVCalc.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: DS_Map/DVCalculator/DVCalcNatureViewerForm.Designer.cs ================================================ using System.Drawing; using System.Windows.Forms; namespace DSPRE { partial class DVCalcNatureViewerForm { /// /// 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.natureGridView = new System.Windows.Forms.DataGridView(); ((System.ComponentModel.ISupportInitialize)(this.natureGridView)).BeginInit(); this.SuspendLayout(); // // natureGridView // this.natureGridView.AllowUserToAddRows = false; this.natureGridView.AllowUserToDeleteRows = false; this.natureGridView.AllowUserToOrderColumns = true; this.natureGridView.AllowUserToResizeRows = false; this.natureGridView.BackgroundColor = System.Drawing.SystemColors.Menu; this.natureGridView.BorderStyle = System.Windows.Forms.BorderStyle.None; this.natureGridView.ColumnHeadersHeight = 29; this.natureGridView.Location = new System.Drawing.Point(16, 10); this.natureGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.natureGridView.Name = "natureGridView"; this.natureGridView.ReadOnly = true; this.natureGridView.RowHeadersWidth = 51; this.natureGridView.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.natureGridView.Size = new System.Drawing.Size(387, 333); this.natureGridView.TabIndex = 0; // // DVCalcNatureViewerForm // this.AllowDrop = true; this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(415, 352); this.Controls.Add(this.natureGridView); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.MaximizeBox = false; this.Name = "DVCalcNatureViewerForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Full List"; ((System.ComponentModel.ISupportInitialize)(this.natureGridView)).EndInit(); this.ResumeLayout(false); } #endregion private DataGridView natureGridView; } } ================================================ FILE: DS_Map/DVCalculator/DVCalcNatureViewerForm.cs ================================================ using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Windows.Forms; namespace DSPRE { public partial class DVCalcNatureViewerForm : Form { private List data; public DVCalcNatureViewerForm(List data) { InitializeComponent(); this.data = data; PopulateDataGridView(); } private void PopulateDataGridView() { // Create a BindingList to bind to the DataGridView var bindingList = new BindingList(data.ToList()); // Set the DataSource of the DataGridView natureGridView.DataSource = bindingList; // Set the columns natureGridView.Columns[0].HeaderText = "IV"; natureGridView.Columns[0].DataPropertyName = "IV"; natureGridView.Columns[1].HeaderText = "Nature"; natureGridView.Columns[1].DataPropertyName = "Nature"; natureGridView.Columns[2].HeaderText = "DV"; natureGridView.Columns[2].DataPropertyName = "DV"; // Adjust column widths natureGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; } } } ================================================ FILE: DS_Map/DVCalculator/DVCalcNatureViewerForm.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: DS_Map/DVCalculator/DVCalculator.cs ================================================ using System.Collections.Generic; namespace DSPRE { // Putting this class here is bad practice, however it's just a really small utility class public class DVIVNatureTriplet { public int DV { get; set; } public int IV { get; set; } public string Nature { get; set; } public DVIVNatureTriplet(int DV, int IV, string Nature) { this.DV = DV; this.IV = IV; this.Nature = Nature; } } internal static class DVCalculator { private static long seed; public static void setSeed(long seed) { DVCalculator.seed = seed; } public static long getSeed() { return DVCalculator.seed; } // This function is lifted from turtleisaac's Pokeditor (with permission) // See https://github.com/turtleisaac/PokEditor-v2/blob/72ca6ab641f616b8be9a87624b81896baa45f947/src/com/turtleisaac/pokeditor/utilities/TrainerPersonalityCalculator.java public static long getNextRandom() { long random = 0x41c64e6d * seed + 0x6073; //last 32 bits is new seed seed = random & 0xFFFFFFFFL; return random; } public static int findHighestDV(int trainerIdx, int trainerClassIdx, bool trainerClassMale, int pokeIdx, int pokeLevel, uint nature) { int DV; // Iterate over all possible PIDs and return highest DV that yields the desired nature for (DV = 255; DV >= 0; DV--) { if (getNatureFromPID(generatePID(trainerIdx, trainerClassIdx, trainerClassMale, pokeIdx, pokeLevel, DV)) == nature) { return DV; } } return -1; } // this function is lifted from turtleisaac's Pokeditor (with permission) // See https://github.com/turtleisaac/PokEditor-v2/blob/72ca6ab641f616b8be9a87624b81896baa45f947/src/com/turtleisaac/pokeditor/utilities/TrainerPersonalityCalculator.java public static uint generatePID(int trainerIdx, int trainerClassIdx, bool trainerClassMale, int pokeIdx, int pokeLevel, int difficultyValue) { long newSeed = trainerIdx + pokeIdx + pokeLevel + difficultyValue; long random = 0; setSeed(newSeed); while (trainerClassIdx > 0) { trainerClassIdx--; random = getNextRandom(); } // Don't really get this part? Why are we shifting to the right then left again? long PID = (random >> 16) & 0xffff; PID = PID * 256; // This seems super arbitrary (wtf GameFreak?) PID += trainerClassMale ? 136 : 120; return (uint)PID; } public static uint getNatureFromPID(uint PID) { return (PID % 100) % 25; } public static List getAllNatures(int trainerIdx, int trainerClassIdx, bool trainerClassMale, int pokeIdx, int pokeLevel) { List natureList = new List(); int DV; uint natureIdx; // Iterate over all possible PIDs and store the DV IV and Nature String in the custom data type for (DV = 255; DV >= 0; DV--) { natureIdx = getNatureFromPID(generatePID(trainerIdx, trainerClassIdx, trainerClassMale, pokeIdx, pokeLevel, DV)); natureList.Add(new DVIVNatureTriplet(DV, DV*31/255 , Natures[(int)natureIdx])); } return natureList; } public static readonly List Natures = new List { "Hardy: Neutral", "Lonely: +Atk, -Def", "Brave: +Atk, -Spe", "Adamant: +Atk, -SpA", "Naughty: +Atk, -SpD", "Bold: +Def, -Atk", "Docile: Neutral", "Relaxed: +Def, -Spe", "Impish: +Def, -SpA", "Lax: +Def, -SpD", "Timid: +Spe, -Atk", "Hasty: +Spe, -Def", "Serious: Neutral", "Jolly: +Spe, -SpA", "Naive: +Spe, -SpD", "Modest: +SpA, -Atk", "Mild: +SpA, -Def", "Quiet: +SpA, -Spe", "Bashful: Neutral", "Rash: +SpA, -SpD", "Calm: +SpD, -Atk", "Gentle: +SpD, -Def", "Sassy: +SpD, -Spe", "Careful: +SpD, -SpA", "Quirky: Neutral" }; } } ================================================ FILE: DS_Map/EditorPanels.cs ================================================ using System.Windows.Forms; using DSPRE.Editors; namespace DSPRE { public static class EditorPanels { public static MainProgram MainProgram; public static void Initialize(MainProgram mainProgram) { MainProgram = mainProgram; } public static TabControl mainTabControl { get { return MainProgram.mainTabControl; } } public static ScriptEditor scriptEditor { get { return MainProgram.scriptEditor; } } public static LevelScriptEditor levelScriptEditor { get { return MainProgram.levelScriptEditor; } } public static EncountersEditor encountersEditor { get { return MainProgram.encountersEditor; } } public static TabPage scriptEditorTabPage { get { return MainProgram.tabPageScriptEditor; } } public static TabPage levelScriptEditorTabPage { get { return MainProgram.tabPageLevelScriptEditor; } } public static TabPage tabPageEncountersEditor { get { return MainProgram.tabPageEncountersEditor; } } } } ================================================ FILE: DS_Map/Editors/EncountersEditor.Designer.cs ================================================  namespace DSPRE.Editors { partial class EncountersEditor { /// /// 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.tabControl = new System.Windows.Forms.TabControl(); this.tabPageHeadbuttEditor = new System.Windows.Forms.TabPage(); this.headbuttEncounterEditor = new DSPRE.Editors.HeadbuttEncounterEditor(); this.tabPageSafariZoneEditor = new System.Windows.Forms.TabPage(); this.safariZoneEditor = new DSPRE.Editors.SafariZoneEditor(); this.tabControl.SuspendLayout(); this.tabPageHeadbuttEditor.SuspendLayout(); this.tabPageSafariZoneEditor.SuspendLayout(); this.SuspendLayout(); // // tabControl // this.tabControl.Controls.Add(this.tabPageHeadbuttEditor); this.tabControl.Controls.Add(this.tabPageSafariZoneEditor); this.tabControl.Location = new System.Drawing.Point(4, 4); this.tabControl.Name = "tabControl"; this.tabControl.SelectedIndex = 0; this.tabControl.Size = new System.Drawing.Size(1103, 654); this.tabControl.TabIndex = 2; // // tabPageHeadbuttEditor // this.tabPageHeadbuttEditor.Controls.Add(this.headbuttEncounterEditor); this.tabPageHeadbuttEditor.Location = new System.Drawing.Point(4, 22); this.tabPageHeadbuttEditor.Name = "tabPageHeadbuttEditor"; this.tabPageHeadbuttEditor.Padding = new System.Windows.Forms.Padding(3); this.tabPageHeadbuttEditor.Size = new System.Drawing.Size(1095, 628); this.tabPageHeadbuttEditor.TabIndex = 0; this.tabPageHeadbuttEditor.Text = "Headbutt"; this.tabPageHeadbuttEditor.UseVisualStyleBackColor = true; this.tabPageHeadbuttEditor.Enter += new System.EventHandler(this.tabPageHeadbuttEditor_Enter); // // headbuttEncounterEditor // this.headbuttEncounterEditor.BackColor = System.Drawing.SystemColors.Control; this.headbuttEncounterEditor.headbuttEncounterEditorIsReady = false; this.headbuttEncounterEditor.Location = new System.Drawing.Point(6, 6); this.headbuttEncounterEditor.Name = "headbuttEncounterEditor"; this.headbuttEncounterEditor.Size = new System.Drawing.Size(1081, 621); this.headbuttEncounterEditor.TabIndex = 1; // // tabPageSafariZoneEditor // this.tabPageSafariZoneEditor.Controls.Add(this.safariZoneEditor); this.tabPageSafariZoneEditor.Location = new System.Drawing.Point(4, 22); this.tabPageSafariZoneEditor.Name = "tabPageSafariZoneEditor"; this.tabPageSafariZoneEditor.Padding = new System.Windows.Forms.Padding(3); this.tabPageSafariZoneEditor.Size = new System.Drawing.Size(1095, 628); this.tabPageSafariZoneEditor.TabIndex = 1; this.tabPageSafariZoneEditor.Text = "Safari Zone"; this.tabPageSafariZoneEditor.UseVisualStyleBackColor = true; this.tabPageSafariZoneEditor.Enter += new System.EventHandler(this.tabPageSafariZoneEditor_Enter); // // safariZoneEditor // this.safariZoneEditor.Location = new System.Drawing.Point(6, 6); this.safariZoneEditor.Name = "safariZoneEditor"; this.safariZoneEditor.safariZoneEditorIsReady = false; this.safariZoneEditor.Size = new System.Drawing.Size(996, 341); this.safariZoneEditor.TabIndex = 1; // // EncountersEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.tabControl); this.Name = "EncountersEditor"; this.Size = new System.Drawing.Size(1111, 664); this.tabControl.ResumeLayout(false); this.tabPageHeadbuttEditor.ResumeLayout(false); this.tabPageSafariZoneEditor.ResumeLayout(false); this.ResumeLayout(false); } #endregion public HeadbuttEncounterEditor headbuttEncounterEditor; private System.Windows.Forms.TabControl tabControl; private System.Windows.Forms.TabPage tabPageHeadbuttEditor; private System.Windows.Forms.TabPage tabPageSafariZoneEditor; public SafariZoneEditor safariZoneEditor; } } ================================================ FILE: DS_Map/Editors/EncountersEditor.cs ================================================ using System.Windows.Forms; namespace DSPRE.Editors { public partial class EncountersEditor : UserControl { public EncountersEditor() { InitializeComponent(); } public void SetupEncountersEditor() { tabPageHeadbuttEditor_Enter(null, null); } private void tabPageHeadbuttEditor_Enter(object sender, System.EventArgs e) { headbuttEncounterEditor.SetupHeadbuttEncounterEditor(); headbuttEncounterEditor.makeCurrent(); } private void tabPageSafariZoneEditor_Enter(object sender, System.EventArgs e) { safariZoneEditor.SetupSafariZoneEditor(); } } } ================================================ FILE: DS_Map/Editors/EncountersEditor.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: DS_Map/Editors/HeadbuttEncounterEditor.Designer.cs ================================================ using System.ComponentModel; namespace DSPRE.Editors { partial class HeadbuttEncounterEditor { /// /// Required designer variable. /// private 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.buttonSaveAs = new System.Windows.Forms.Button(); this.buttonSave = new System.Windows.Forms.Button(); this.tabControl = new System.Windows.Forms.TabControl(); this.tabPageNormal = new System.Windows.Forms.TabPage(); this.headbuttEncounterEditorTabNormal = new DSPRE.Editors.HeadbuttEncounterEditorTab(); this.tabPageSpecial = new System.Windows.Forms.TabPage(); this.headbuttEncounterEditorTabSpecial = new DSPRE.Editors.HeadbuttEncounterEditorTab(); this.mapRenderPanel = new System.Windows.Forms.Panel(); this.openGlPictureBox = new System.Windows.Forms.PictureBox(); this.mapScreenshotButton = new System.Windows.Forms.Button(); this.headbuttFileComboBox = new System.Windows.Forms.ComboBox(); this.comboBoxMapFile = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.labelLocationName = new System.Windows.Forms.Label(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.numericUpDownTreeGlobalX = new System.Windows.Forms.NumericUpDown(); this.numericUpDownTreeGlobalY = new System.Windows.Forms.NumericUpDown(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.numericUpDownTreeMatrixX = new System.Windows.Forms.NumericUpDown(); this.numericUpDownTreeMatrixY = new System.Windows.Forms.NumericUpDown(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.numericUpDownTreeMapX = new System.Windows.Forms.NumericUpDown(); this.numericUpDownTreeMapY = new System.Windows.Forms.NumericUpDown(); this.RightClickLabel = new System.Windows.Forms.Label(); this.LeftClickLabel = new System.Windows.Forms.Label(); this.LeftClickPicture = new System.Windows.Forms.PictureBox(); this.rightClickPicture = new System.Windows.Forms.PictureBox(); this.buttonImport = new System.Windows.Forms.Button(); this.tabControl.SuspendLayout(); this.tabPageNormal.SuspendLayout(); this.tabPageSpecial.SuspendLayout(); this.mapRenderPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.openGlPictureBox)).BeginInit(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeGlobalX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeGlobalY)).BeginInit(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMatrixX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMatrixY)).BeginInit(); this.groupBox3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMapX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMapY)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.LeftClickPicture)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rightClickPicture)).BeginInit(); this.SuspendLayout(); // // buttonSaveAs // this.buttonSaveAs.Image = global::DSPRE.Properties.Resources.exportArrow; this.buttonSaveAs.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonSaveAs.Location = new System.Drawing.Point(278, 3); this.buttonSaveAs.Name = "buttonSaveAs"; this.buttonSaveAs.Size = new System.Drawing.Size(71, 23); this.buttonSaveAs.TabIndex = 9; this.buttonSaveAs.Text = "Export"; this.buttonSaveAs.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonSaveAs.UseVisualStyleBackColor = true; this.buttonSaveAs.Click += new System.EventHandler(this.buttonSaveAs_Click); // // buttonSave // this.buttonSave.Image = global::DSPRE.Properties.Resources.saveButton; this.buttonSave.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonSave.Location = new System.Drawing.Point(215, 3); this.buttonSave.Name = "buttonSave"; this.buttonSave.Size = new System.Drawing.Size(62, 23); this.buttonSave.TabIndex = 10; this.buttonSave.Text = "Save"; this.buttonSave.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonSave.UseVisualStyleBackColor = true; this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); // // tabControl // this.tabControl.Controls.Add(this.tabPageNormal); this.tabControl.Controls.Add(this.tabPageSpecial); this.tabControl.Location = new System.Drawing.Point(3, 71); this.tabControl.Name = "tabControl"; this.tabControl.SelectedIndex = 0; this.tabControl.Size = new System.Drawing.Size(274, 544); this.tabControl.TabIndex = 21; // // tabPageNormal // this.tabPageNormal.Controls.Add(this.headbuttEncounterEditorTabNormal); this.tabPageNormal.Location = new System.Drawing.Point(4, 22); this.tabPageNormal.Name = "tabPageNormal"; this.tabPageNormal.Padding = new System.Windows.Forms.Padding(3); this.tabPageNormal.Size = new System.Drawing.Size(266, 518); this.tabPageNormal.TabIndex = 0; this.tabPageNormal.Text = "Normal"; this.tabPageNormal.UseVisualStyleBackColor = true; // // headbuttEncounterEditorTabNormal // this.headbuttEncounterEditorTabNormal.Location = new System.Drawing.Point(2, 2); this.headbuttEncounterEditorTabNormal.Name = "headbuttEncounterEditorTabNormal"; this.headbuttEncounterEditorTabNormal.Size = new System.Drawing.Size(264, 519); this.headbuttEncounterEditorTabNormal.TabIndex = 0; // // tabPageSpecial // this.tabPageSpecial.Controls.Add(this.headbuttEncounterEditorTabSpecial); this.tabPageSpecial.Location = new System.Drawing.Point(4, 22); this.tabPageSpecial.Name = "tabPageSpecial"; this.tabPageSpecial.Padding = new System.Windows.Forms.Padding(3); this.tabPageSpecial.Size = new System.Drawing.Size(266, 518); this.tabPageSpecial.TabIndex = 1; this.tabPageSpecial.Text = "Special"; this.tabPageSpecial.UseVisualStyleBackColor = true; // // headbuttEncounterEditorTabSpecial // this.headbuttEncounterEditorTabSpecial.Location = new System.Drawing.Point(2, 2); this.headbuttEncounterEditorTabSpecial.Name = "headbuttEncounterEditorTabSpecial"; this.headbuttEncounterEditorTabSpecial.Size = new System.Drawing.Size(402, 518); this.headbuttEncounterEditorTabSpecial.TabIndex = 0; // // mapRenderPanel // this.mapRenderPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.mapRenderPanel.Controls.Add(this.openGlPictureBox); this.mapRenderPanel.Location = new System.Drawing.Point(423, 4); this.mapRenderPanel.Name = "mapRenderPanel"; this.mapRenderPanel.Size = new System.Drawing.Size(610, 610); this.mapRenderPanel.TabIndex = 24; // // openGlPictureBox // this.openGlPictureBox.BackColor = System.Drawing.Color.White; this.openGlPictureBox.Location = new System.Drawing.Point(0, 0); this.openGlPictureBox.Name = "openGlPictureBox"; this.openGlPictureBox.Size = new System.Drawing.Size(608, 608); this.openGlPictureBox.TabIndex = 3; this.openGlPictureBox.TabStop = false; this.openGlPictureBox.Click += new System.EventHandler(this.openGlPictureBox_Click); // // mapScreenshotButton // this.mapScreenshotButton.Image = global::DSPRE.Properties.Resources.cameraIcon; this.mapScreenshotButton.Location = new System.Drawing.Point(1036, 574); this.mapScreenshotButton.Name = "mapScreenshotButton"; this.mapScreenshotButton.Size = new System.Drawing.Size(41, 40); this.mapScreenshotButton.TabIndex = 39; this.mapScreenshotButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.mapScreenshotButton.UseVisualStyleBackColor = true; this.mapScreenshotButton.Click += new System.EventHandler(this.mapScreenshotButton_Click); // // headbuttFileComboBox // this.headbuttFileComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.headbuttFileComboBox.FormattingEnabled = true; this.headbuttFileComboBox.Location = new System.Drawing.Point(45, 4); this.headbuttFileComboBox.Name = "headbuttFileComboBox"; this.headbuttFileComboBox.Size = new System.Drawing.Size(168, 21); this.headbuttFileComboBox.TabIndex = 40; this.headbuttFileComboBox.SelectedIndexChanged += new System.EventHandler(this.comboBoxMapHeader_SelectedIndexChanged); // // comboBoxMapFile // this.comboBoxMapFile.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxMapFile.FormattingEnabled = true; this.comboBoxMapFile.Location = new System.Drawing.Point(45, 31); this.comboBoxMapFile.Name = "comboBoxMapFile"; this.comboBoxMapFile.Size = new System.Drawing.Size(168, 21); this.comboBoxMapFile.TabIndex = 40; this.comboBoxMapFile.SelectedIndexChanged += new System.EventHandler(this.comboBoxMapFile_SelectedIndexChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(3, 7); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(42, 13); this.label1.TabIndex = 41; this.label1.Text = "Header"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(14, 35); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(28, 13); this.label2.TabIndex = 41; this.label2.Text = "Map"; // // labelLocationName // this.labelLocationName.AutoSize = true; this.labelLocationName.Location = new System.Drawing.Point(219, 35); this.labelLocationName.Name = "labelLocationName"; this.labelLocationName.Size = new System.Drawing.Size(35, 13); this.labelLocationName.TabIndex = 42; this.labelLocationName.Text = "label3"; // // groupBox1 // this.groupBox1.Controls.Add(this.numericUpDownTreeGlobalX); this.groupBox1.Controls.Add(this.numericUpDownTreeGlobalY); this.groupBox1.Location = new System.Drawing.Point(279, 452); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(134, 49); this.groupBox1.TabIndex = 16; this.groupBox1.TabStop = false; this.groupBox1.Text = "Global"; // // numericUpDownTreeGlobalX // this.numericUpDownTreeGlobalX.Location = new System.Drawing.Point(6, 19); this.numericUpDownTreeGlobalX.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numericUpDownTreeGlobalX.Name = "numericUpDownTreeGlobalX"; this.numericUpDownTreeGlobalX.Size = new System.Drawing.Size(58, 20); this.numericUpDownTreeGlobalX.TabIndex = 15; this.numericUpDownTreeGlobalX.ValueChanged += new System.EventHandler(this.numericUpDownTreeGlobalX_ValueChanged); // // numericUpDownTreeGlobalY // this.numericUpDownTreeGlobalY.Location = new System.Drawing.Point(70, 19); this.numericUpDownTreeGlobalY.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numericUpDownTreeGlobalY.Name = "numericUpDownTreeGlobalY"; this.numericUpDownTreeGlobalY.Size = new System.Drawing.Size(58, 20); this.numericUpDownTreeGlobalY.TabIndex = 15; this.numericUpDownTreeGlobalY.ValueChanged += new System.EventHandler(this.numericUpDownTreeGlobalY_ValueChanged); // // groupBox2 // this.groupBox2.Controls.Add(this.numericUpDownTreeMatrixX); this.groupBox2.Controls.Add(this.numericUpDownTreeMatrixY); this.groupBox2.Location = new System.Drawing.Point(279, 507); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(134, 49); this.groupBox2.TabIndex = 16; this.groupBox2.TabStop = false; this.groupBox2.Text = "Matrix"; // // numericUpDownTreeMatrixX // this.numericUpDownTreeMatrixX.Location = new System.Drawing.Point(6, 19); this.numericUpDownTreeMatrixX.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numericUpDownTreeMatrixX.Name = "numericUpDownTreeMatrixX"; this.numericUpDownTreeMatrixX.Size = new System.Drawing.Size(58, 20); this.numericUpDownTreeMatrixX.TabIndex = 15; this.numericUpDownTreeMatrixX.ValueChanged += new System.EventHandler(this.numericUpDownTreeMatrixX_ValueChanged); // // numericUpDownTreeMatrixY // this.numericUpDownTreeMatrixY.Location = new System.Drawing.Point(70, 19); this.numericUpDownTreeMatrixY.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numericUpDownTreeMatrixY.Name = "numericUpDownTreeMatrixY"; this.numericUpDownTreeMatrixY.Size = new System.Drawing.Size(58, 20); this.numericUpDownTreeMatrixY.TabIndex = 15; this.numericUpDownTreeMatrixY.ValueChanged += new System.EventHandler(this.numericUpDownTreeMatrixY_ValueChanged); // // groupBox3 // this.groupBox3.Controls.Add(this.numericUpDownTreeMapX); this.groupBox3.Controls.Add(this.numericUpDownTreeMapY); this.groupBox3.Location = new System.Drawing.Point(279, 562); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(134, 49); this.groupBox3.TabIndex = 16; this.groupBox3.TabStop = false; this.groupBox3.Text = "Local"; // // numericUpDownTreeMapX // this.numericUpDownTreeMapX.Location = new System.Drawing.Point(6, 19); this.numericUpDownTreeMapX.Maximum = new decimal(new int[] { 31, 0, 0, 0}); this.numericUpDownTreeMapX.Name = "numericUpDownTreeMapX"; this.numericUpDownTreeMapX.Size = new System.Drawing.Size(58, 20); this.numericUpDownTreeMapX.TabIndex = 15; this.numericUpDownTreeMapX.ValueChanged += new System.EventHandler(this.numericUpDownTreeMapX_ValueChanged); // // numericUpDownTreeMapY // this.numericUpDownTreeMapY.Location = new System.Drawing.Point(70, 19); this.numericUpDownTreeMapY.Maximum = new decimal(new int[] { 31, 0, 0, 0}); this.numericUpDownTreeMapY.Name = "numericUpDownTreeMapY"; this.numericUpDownTreeMapY.Size = new System.Drawing.Size(58, 20); this.numericUpDownTreeMapY.TabIndex = 15; this.numericUpDownTreeMapY.ValueChanged += new System.EventHandler(this.numericUpDownTreeMapY_ValueChanged); // // RightClickLabel // this.RightClickLabel.AutoSize = true; this.RightClickLabel.Location = new System.Drawing.Point(308, 425); this.RightClickLabel.Name = "RightClickLabel"; this.RightClickLabel.Size = new System.Drawing.Size(37, 13); this.RightClickLabel.TabIndex = 66; this.RightClickLabel.Text = "Select"; // // LeftClickLabel // this.LeftClickLabel.AutoSize = true; this.LeftClickLabel.Location = new System.Drawing.Point(352, 425); this.LeftClickLabel.Name = "LeftClickLabel"; this.LeftClickLabel.Size = new System.Drawing.Size(34, 13); this.LeftClickLabel.TabIndex = 63; this.LeftClickLabel.Text = "Move"; // // LeftClickPicture // this.LeftClickPicture.Image = global::DSPRE.Properties.Resources.LeftClick; this.LeftClickPicture.ImageLocation = ""; this.LeftClickPicture.Location = new System.Drawing.Point(349, 387); this.LeftClickPicture.Name = "LeftClickPicture"; this.LeftClickPicture.Size = new System.Drawing.Size(38, 38); this.LeftClickPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.LeftClickPicture.TabIndex = 61; this.LeftClickPicture.TabStop = false; // // rightClickPicture // this.rightClickPicture.Image = global::DSPRE.Properties.Resources.RightClick; this.rightClickPicture.ImageLocation = ""; this.rightClickPicture.Location = new System.Drawing.Point(307, 387); this.rightClickPicture.Name = "rightClickPicture"; this.rightClickPicture.Size = new System.Drawing.Size(38, 38); this.rightClickPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.rightClickPicture.TabIndex = 65; this.rightClickPicture.TabStop = false; // // buttonImport // this.buttonImport.Image = global::DSPRE.Properties.Resources.importArrow; this.buttonImport.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonImport.Location = new System.Drawing.Point(350, 3); this.buttonImport.Name = "buttonImport"; this.buttonImport.Size = new System.Drawing.Size(71, 23); this.buttonImport.TabIndex = 9; this.buttonImport.Text = "Import"; this.buttonImport.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonImport.UseVisualStyleBackColor = true; this.buttonImport.Click += new System.EventHandler(this.buttonImport_Click); // // HeadbuttEncounterEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.Control; this.Controls.Add(this.RightClickLabel); this.Controls.Add(this.LeftClickLabel); this.Controls.Add(this.LeftClickPicture); this.Controls.Add(this.rightClickPicture); this.Controls.Add(this.labelLocationName); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.comboBoxMapFile); this.Controls.Add(this.headbuttFileComboBox); this.Controls.Add(this.groupBox3); this.Controls.Add(this.mapRenderPanel); this.Controls.Add(this.tabControl); this.Controls.Add(this.mapScreenshotButton); this.Controls.Add(this.groupBox2); this.Controls.Add(this.buttonImport); this.Controls.Add(this.buttonSaveAs); this.Controls.Add(this.buttonSave); this.Controls.Add(this.groupBox1); this.Location = new System.Drawing.Point(15, 15); this.Name = "HeadbuttEncounterEditor"; this.Size = new System.Drawing.Size(1080, 620); this.tabControl.ResumeLayout(false); this.tabPageNormal.ResumeLayout(false); this.tabPageSpecial.ResumeLayout(false); this.mapRenderPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.openGlPictureBox)).EndInit(); this.groupBox1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeGlobalX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeGlobalY)).EndInit(); this.groupBox2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMatrixX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMatrixY)).EndInit(); this.groupBox3.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMapX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTreeMapY)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.LeftClickPicture)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rightClickPicture)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.Button buttonSaveAs; private System.Windows.Forms.Button buttonSave; #endregion private System.Windows.Forms.TabControl tabControl; private System.Windows.Forms.TabPage tabPageNormal; private System.Windows.Forms.TabPage tabPageSpecial; private HeadbuttEncounterEditorTab headbuttEncounterEditorTabNormal; private HeadbuttEncounterEditorTab headbuttEncounterEditorTabSpecial; private System.Windows.Forms.Panel mapRenderPanel; private System.Windows.Forms.PictureBox openGlPictureBox; private System.Windows.Forms.Button mapScreenshotButton; private System.Windows.Forms.ComboBox headbuttFileComboBox; private System.Windows.Forms.ComboBox comboBoxMapFile; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label labelLocationName; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.NumericUpDown numericUpDownTreeGlobalX; private System.Windows.Forms.NumericUpDown numericUpDownTreeGlobalY; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.NumericUpDown numericUpDownTreeMatrixX; private System.Windows.Forms.NumericUpDown numericUpDownTreeMatrixY; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.NumericUpDown numericUpDownTreeMapX; private System.Windows.Forms.NumericUpDown numericUpDownTreeMapY; private System.Windows.Forms.Label RightClickLabel; private System.Windows.Forms.Label LeftClickLabel; private System.Windows.Forms.PictureBox LeftClickPicture; private System.Windows.Forms.PictureBox rightClickPicture; private System.Windows.Forms.Button buttonImport; } } ================================================ FILE: DS_Map/Editors/HeadbuttEncounterEditor.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.IO; using System.Windows.Forms; using DSPRE.ROMFiles; namespace DSPRE.Editors { public partial class HeadbuttEncounterEditor : UserControl { public bool headbuttEncounterEditorIsReady { get; set; } = false; private ListBox2 listBoxTrees; private HeadbuttTree headbuttTree; private HeaderHGSS mapHeader; private HeadbuttEncounterFile headbuttEncounterFile; private HeadbuttEncounterMap headbuttEncounterMap; private GameMatrix gameMatrix; private AreaData areaData; private MapFile mapFile; private string locationName; private int width; private int height; static SimpleOpenGlControl2 openGlControl; private Pen selectedPen; private Pen normalPen; private SolidBrush normalBrush; private Pen specialPen; private SolidBrush specialBrush; private static float perspective; private static float ang; private static float dist; private static float elev; public HeadbuttEncounterEditor() { InitializeComponent(); } //TODO: refresh headers list if a header is added public void SetupHeadbuttEncounterEditor(bool force = false) { if (headbuttEncounterEditorIsReady && !force) { return; } headbuttEncounterEditorIsReady = true; DSUtils.TryUnpackNarcs(new List() { RomInfo.DirNames.dynamicHeaders, RomInfo.DirNames.matrices, RomInfo.DirNames.textArchives, RomInfo.DirNames.areaData, RomInfo.DirNames.headbutt, RomInfo.DirNames.maps, RomInfo.DirNames.mapTextures, RomInfo.DirNames.exteriorBuildingModels, RomInfo.DirNames.interiorBuildingModels, //No trees in interior maps, but fixes exceptions. @AdAstra - 11.06.2024 RomInfo.DirNames.buildingTextures, }); width = openGlPictureBox.Width; height = openGlPictureBox.Height; openGlControl = new SimpleOpenGlControl2(); openGlControl.InitializeContexts(); openGlControl.Width = width; openGlControl.Height = height; openGlControl.Invalidate(); openGlControl.MakeCurrent(); List headerListBoxNames = Helpers.getHeaderListBoxNames(); Color selectedColor = Color.FromArgb(255, Color.White); selectedPen = new Pen(selectedColor); Color normalColor = Color.FromArgb(128, Color.DarkBlue); normalPen = new Pen(normalColor); normalBrush = new SolidBrush(normalColor); Color specialColor = Color.FromArgb(128, Color.DarkRed); specialPen = new Pen(specialColor); specialBrush = new SolidBrush(specialColor); Helpers.DisableHandlers(); for (int i = 0; i < Filesystem.GetHeadbuttCount(); i++) { if (i < headerListBoxNames.Count) { headbuttFileComboBox.Items.Add(headerListBoxNames[i]); } else { i.ToString("D4"); } } string[] pokemonNames = RomInfo.GetPokemonNames(); headbuttEncounterEditorTabNormal.comboBoxPokemon.Items.AddRange(pokemonNames); headbuttEncounterEditorTabNormal.comboBoxPokemon.SelectedIndex = 0; headbuttEncounterEditorTabNormal.listBoxTrees.SelectedIndexChanged += ListBoxTrees_SelectedIndexChanged; headbuttEncounterEditorTabSpecial.comboBoxPokemon.Items.AddRange(pokemonNames); headbuttEncounterEditorTabSpecial.comboBoxPokemon.SelectedIndex = 0; headbuttEncounterEditorTabSpecial.listBoxTrees.SelectedIndexChanged += ListBoxTrees_SelectedIndexChanged; openGlPictureBox.BringToFront(); SetCam2DValues(); Helpers.EnableHandlers(); if (headbuttFileComboBox.Items.Count > 0) { headbuttFileComboBox.SelectedIndex = 0; } } public void makeCurrent() { openGlControl.MakeCurrent(); } private void comboBoxMapHeader_SelectedIndexChanged(object sender, EventArgs e) { ushort headbuttID = (ushort)headbuttFileComboBox.SelectedIndex; this.headbuttEncounterFile = new HeadbuttEncounterFile(headbuttID); setCurrentMap(headbuttEncounterFile); } public void setCurrentMap(HeadbuttEncounterFile headbuttEncounterFile) { this.mapFile = null; this.headbuttEncounterMap = null; comboBoxMapFile.Items.Clear(); labelLocationName.Text = ""; listBoxTrees = null; if (headbuttTree != null) { headbuttTree.picked = false; } headbuttTree = null; headbuttEncounterEditorTabNormal.Reset(); headbuttEncounterEditorTabSpecial.Reset(); numericUpDownTreeGlobalX.Value = 0; numericUpDownTreeGlobalY.Value = 0; numericUpDownTreeMatrixX.Value = 0; numericUpDownTreeMatrixY.Value = 0; numericUpDownTreeMapX.Value = 0; numericUpDownTreeMapY.Value = 0; RenderBackground(); try { if (headbuttEncounterFile.ID == GameMatrix.EMPTY) { return; } this.mapHeader = (HeaderHGSS)MapHeader.GetMapHeader(headbuttEncounterFile.ID); } catch (Exception ex) { //most likely more headbutt files than map headers //there should be the same amount Console.WriteLine(ex); return; } this.gameMatrix = new GameMatrix(mapHeader.matrixID); this.areaData = new AreaData(mapHeader.areaDataID); TextArchive currentTextArchive = new TextArchive(RomInfo.locationNamesTextNumber); this.locationName = currentTextArchive.messages[mapHeader.locationName]; labelLocationName.Text = locationName; headbuttEncounterEditorTabNormal.SetHeadbuttEncounter(headbuttEncounterFile.normalEncounters, headbuttEncounterFile.normalTreeGroups); headbuttEncounterEditorTabSpecial.SetHeadbuttEncounter(headbuttEncounterFile.specialEncounters, headbuttEncounterFile.specialTreeGroups); List mapHeaderMapsIDsList = new List(); if (gameMatrix.hasHeadersSection) { for (int y = 0; y < gameMatrix.height; y++) { for (int x = 0; x < gameMatrix.width; x++) { if (gameMatrix.headers[y, x] == mapHeader.ID) { int mapID = gameMatrix.maps[y, x]; if (mapID != GameMatrix.EMPTY) { HeadbuttEncounterMap map = new HeadbuttEncounterMap(mapID, x, y); if (!mapHeaderMapsIDsList.Contains(map)) { mapHeaderMapsIDsList.Add(map); } } } } } } else { for (int y = 0; y < gameMatrix.height; y++) { for (int x = 0; x < gameMatrix.width; x++) { int mapID = gameMatrix.maps[y, x]; if (mapID != GameMatrix.EMPTY) { HeadbuttEncounterMap map = new HeadbuttEncounterMap(mapID, x, y); if (!mapHeaderMapsIDsList.Contains(map)) { mapHeaderMapsIDsList.Add(map); } } } } } foreach (HeadbuttTreeGroup treeGroup in headbuttEncounterFile.normalTreeGroups) { foreach (HeadbuttTree tree in treeGroup.trees) { if (!tree.IsUnused && tree.matrixX < gameMatrix.width && tree.matrixY < gameMatrix.height) { int mapID = gameMatrix.maps[tree.matrixY, tree.matrixX]; if (mapID != GameMatrix.EMPTY) { HeadbuttEncounterMap map = new HeadbuttEncounterMap(mapID, tree.matrixX, tree.matrixY); if (!mapHeaderMapsIDsList.Contains(map)) { mapHeaderMapsIDsList.Add(map); } } } } } foreach (HeadbuttTreeGroup treeGroup in headbuttEncounterFile.specialTreeGroups) { foreach (HeadbuttTree tree in treeGroup.trees) { if (!tree.IsUnused && tree.matrixX < gameMatrix.width && tree.matrixY < gameMatrix.height) { int mapID = gameMatrix.maps[tree.matrixY, tree.matrixX]; if (mapID != GameMatrix.EMPTY) { HeadbuttEncounterMap map = new HeadbuttEncounterMap(mapID, tree.matrixX, tree.matrixY); if (!mapHeaderMapsIDsList.Contains(map)) { mapHeaderMapsIDsList.Add(map); } } } } } mapHeaderMapsIDsList.Sort((first, second) => { int ret = first.mapID.CompareTo(second.mapID); return ret == 0 ? first.x.CompareTo(second.x) : ret; }); foreach (HeadbuttEncounterMap map in mapHeaderMapsIDsList) { comboBoxMapFile.Items.Add(map); } if (comboBoxMapFile.Items.Count > 0) { comboBoxMapFile.SelectedIndex = 0; } } private void buttonSave_Click(object sender, EventArgs e) { if (headbuttEncounterFile == null) { return; } headbuttEncounterFile.SaveToFile(); } private void buttonSaveAs_Click(object sender, EventArgs e) { if (headbuttEncounterFile == null) { return; } SaveFileDialog sfd = new SaveFileDialog(); try { sfd.InitialDirectory = Path.GetDirectoryName(sfd.FileName); sfd.FileName = Path.GetFileName(sfd.FileName); } catch (Exception ex) { sfd.InitialDirectory = Path.GetDirectoryName(Environment.SpecialFolder.UserProfile.ToString()); sfd.FileName = Path.GetFileName(sfd.FileName); } if (sfd.ShowDialog() != DialogResult.OK) { return; } headbuttEncounterFile.SaveToFile(sfd.FileName); } private void buttonImport_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); try { ofd.InitialDirectory = Path.GetDirectoryName(ofd.FileName); ofd.FileName = Path.GetFileName(ofd.FileName); } catch (Exception) { ofd.InitialDirectory = Path.GetDirectoryName(Environment.SpecialFolder.UserProfile.ToString()); ofd.FileName = Path.GetFileName(ofd.FileName); } if (ofd.ShowDialog() != DialogResult.OK) { return; } this.headbuttEncounterFile = new HeadbuttEncounterFile(ofd.FileName); headbuttEncounterFile.ID = (ushort)headbuttFileComboBox.SelectedIndex; setCurrentMap(headbuttEncounterFile); } private void comboBoxMapFile_SelectedIndexChanged(object sender, EventArgs e) { HeadbuttEncounterMap map = comboBoxMapFile.SelectedItem as HeadbuttEncounterMap; int mapID = gameMatrix.maps[map.y, map.x]; this.mapFile = new MapFile(mapID, RomInfo.gameFamily, discardMoveperms: true); this.headbuttEncounterMap = map; RenderBackground(); } private Bitmap GetMapBitmap() { Bitmap bm = RenderMap(); openGlControl.Invalidate(); return bm; } private void RenderBackground() { Bitmap bm = GetMapBitmap(); if (headbuttEncounterFile != null) { using (Graphics g = Graphics.FromImage(bm)) { g.InterpolationMode = InterpolationMode.NearestNeighbor; g.PixelOffsetMode = PixelOffsetMode.HighQuality; MarkTrees(g, headbuttEncounterFile.normalTreeGroups, HeadbuttTree.Types.Normal); MarkTrees(g, headbuttEncounterFile.specialTreeGroups, HeadbuttTree.Types.Special); } } openGlPictureBox.BackgroundImage = bm; } private Bitmap RenderMap() { MapFile currentMapFile = this.mapFile; if (currentMapFile == null) { Bitmap blank = new Bitmap(openGlPictureBox.Width, openGlPictureBox.Height); using (Graphics g = Graphics.FromImage(blank)) { g.Clear(Color.Black); } return blank; } Helpers.MW_LoadModelTextures(currentMapFile, areaData.mapTileset); bool isInteriorMap = false; if (RomInfo.gameFamily == RomInfo.GameFamilies.HGSS && areaData.areaType == AreaData.TYPE_INDOOR) { isInteriorMap = true; } for (int i = 0; i < currentMapFile.buildings.Count; i++) { Building building = currentMapFile.buildings[i]; building.LoadModelData(isInteriorMap); // Load building nsbmd Helpers.MW_LoadModelTextures(building, areaData.buildingsTileset); // Load building textures } Helpers.RenderMap(ref currentMapFile, openGlControl.Width, openGlControl.Height, ang, dist, elev, perspective); return Helpers.GrabMapScreenshot(width, height); } private void MarkTrees(Graphics g, BindingList treeGroups, HeadbuttTree.Types treeType) { HeadbuttEncounterMap map = comboBoxMapFile.SelectedItem as HeadbuttEncounterMap; if (map != null) { foreach (HeadbuttTreeGroup treeGroup in treeGroups) { foreach (HeadbuttTree tree in treeGroup.trees) { if (!tree.IsUnused && tree.matrixX == map.x && tree.matrixY == map.y) { MarkTree(g, tree, treeType); } } } } } private void MarkTree(Graphics g, HeadbuttTree tree, HeadbuttTree.Types treeType) { Pen paintPen; SolidBrush paintBrush; if (treeType == HeadbuttTree.Types.Normal) { paintPen = normalPen; paintBrush = normalBrush; } else { paintPen = specialPen; paintBrush = specialBrush; } if (tree.picked) { paintPen = selectedPen; } int tileWidth = openGlControl.Width / MapFile.mapSize; int tileHeight = openGlControl.Height / MapFile.mapSize; int tileX = tree.mapX * tileWidth; int tileY = tree.mapY * tileHeight; int padding = 1; Rectangle rectangle = new Rectangle(tileX + padding, tileY + padding, tileWidth - padding, tileHeight - padding); g.FillRectangle(paintBrush, rectangle); g.DrawRectangle(paintPen, rectangle); } private void ListBoxTrees_SelectedIndexChanged(object sender, EventArgs e) { listBoxTrees = sender as ListBox2; headbuttTree = listBoxTrees.SelectedItem as HeadbuttTree; if (headbuttTree == null) { return; } numericUpDownTreeGlobalX.Value = headbuttTree.globalX; numericUpDownTreeGlobalY.Value = headbuttTree.globalY; numericUpDownTreeMatrixX.Value = headbuttTree.matrixX; numericUpDownTreeMatrixY.Value = headbuttTree.matrixY; numericUpDownTreeMapX.Value = headbuttTree.mapX; numericUpDownTreeMapY.Value = headbuttTree.mapY; } private void openGlPictureBox_Click(object sender, EventArgs e) { MouseEventArgs mea = (MouseEventArgs)e; int tileWidth = openGlControl.Width / MapFile.mapSize; int tileHeight = openGlControl.Height / MapFile.mapSize; int mouseX = openGlPictureBox.PointToClient(MousePosition).X / tileWidth; int mouseY = openGlPictureBox.PointToClient(MousePosition).Y / tileHeight; if (mea.Button == MouseButtons.Left) { if (this.headbuttEncounterMap != null) { numericUpDownTreeMatrixX.Value = headbuttEncounterMap.x; numericUpDownTreeMatrixY.Value = headbuttEncounterMap.y; numericUpDownTreeMapX.Value = mouseX; numericUpDownTreeMapY.Value = mouseY; } } else if (mea.Button == MouseButtons.Middle) { //warp } else if (mea.Button == MouseButtons.Right) { if (headbuttTree != null) { headbuttTree.picked = false; } if (FindTreeFromMap(headbuttEncounterEditorTabNormal.listBoxTreeGroups, headbuttEncounterEditorTabNormal.listBoxTrees, mouseX, mouseY)) { tabControl.SelectedTab = tabPageNormal; } else if (FindTreeFromMap(headbuttEncounterEditorTabSpecial.listBoxTreeGroups, headbuttEncounterEditorTabSpecial.listBoxTrees, mouseX, mouseY)) { tabControl.SelectedTab = tabPageSpecial; } else { headbuttEncounterEditorTabNormal.listBoxTreeGroups.SelectedItem = null; headbuttEncounterEditorTabNormal.listBoxTrees.SelectedItem = null; headbuttEncounterEditorTabSpecial.listBoxTreeGroups.SelectedItem = null; headbuttEncounterEditorTabSpecial.listBoxTrees.SelectedItem = null; } } RenderBackground(); } private bool FindTreeFromMap(ListBox2 listBoxTreeGroups, ListBox2 listBoxTrees, int x, int y) { foreach (HeadbuttTreeGroup headbuttTreeGroup in listBoxTreeGroups.Items) { foreach (HeadbuttTree tree in headbuttTreeGroup.trees) { if (tree.mapX == x && tree.mapY == y) { listBoxTreeGroups.SelectedItem = headbuttTreeGroup; listBoxTrees.SelectedItem = tree; tree.picked = true; return true; } } } return false; } private void numericUpDownTreeGlobalX_ValueChanged(object sender, EventArgs e) { if (headbuttTree == null) { return; } headbuttTree.globalX = (ushort)((NumericUpDown)sender).Value; listBoxTrees.RefreshItem(listBoxTrees.SelectedIndex); } private void numericUpDownTreeGlobalY_ValueChanged(object sender, EventArgs e) { if (headbuttTree == null) { return; } headbuttTree.globalY = (ushort)((NumericUpDown)sender).Value; listBoxTrees.RefreshItem(listBoxTrees.SelectedIndex); } private void numericUpDownTreeMatrixX_ValueChanged(object sender, EventArgs e) { if (headbuttTree == null) { return; } headbuttTree.matrixX = (ushort)((NumericUpDown)sender).Value; listBoxTrees.RefreshItem(listBoxTrees.SelectedIndex); } private void numericUpDownTreeMatrixY_ValueChanged(object sender, EventArgs e) { if (headbuttTree == null) { return; } headbuttTree.matrixY = (ushort)((NumericUpDown)sender).Value; listBoxTrees.RefreshItem(listBoxTrees.SelectedIndex); } private void numericUpDownTreeMapX_ValueChanged(object sender, EventArgs e) { if (headbuttTree == null) { return; } headbuttTree.mapX = (ushort)((NumericUpDown)sender).Value; listBoxTrees.RefreshItem(listBoxTrees.SelectedIndex); } private void numericUpDownTreeMapY_ValueChanged(object sender, EventArgs e) { if (headbuttTree == null) { return; } headbuttTree.mapY = (ushort)((NumericUpDown)sender).Value; listBoxTrees.RefreshItem(listBoxTrees.SelectedIndex); } private void mapScreenshotButton_Click(object sender, EventArgs e) { SaveFileDialog imageSFD = new SaveFileDialog { Filter = "PNG File(*.png)|*.png" }; if (imageSFD.ShowDialog() != DialogResult.OK) { return; } openGlPictureBox.BackgroundImage.Save(imageSFD.FileName); MessageBox.Show("Screenshot saved.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void SetCam2DValues() { perspective = 4f; ang = 0f; dist = 115.2f; elev = 90f; } } } ================================================ FILE: DS_Map/Editors/HeadbuttEncounterEditor.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: DS_Map/Editors/HeadbuttEncounterEditorTab.Designer.cs ================================================  namespace DSPRE.Editors { partial class HeadbuttEncounterEditorTab { /// /// 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.buttonDuplicateTreeGroup = new System.Windows.Forms.Button(); this.buttonRemoveTreeGroup = new System.Windows.Forms.Button(); this.numericUpDownMaxLevel = new System.Windows.Forms.NumericUpDown(); this.numericUpDownMinLevel = new System.Windows.Forms.NumericUpDown(); this.buttonAddTreeGroup = new System.Windows.Forms.Button(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.comboBoxPokemon = new System.Windows.Forms.ComboBox(); this.listBoxTreeGroups = new DSPRE.ListBox2(); this.listBoxTrees = new DSPRE.ListBox2(); this.listBoxEncounters = new DSPRE.ListBox2(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxLevel)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMinLevel)).BeginInit(); this.SuspendLayout(); // // buttonDuplicateTreeGroup // this.buttonDuplicateTreeGroup.Image = global::DSPRE.Properties.Resources.copyIcon_small; this.buttonDuplicateTreeGroup.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonDuplicateTreeGroup.Location = new System.Drawing.Point(177, 386); this.buttonDuplicateTreeGroup.Name = "buttonDuplicateTreeGroup"; this.buttonDuplicateTreeGroup.Size = new System.Drawing.Size(81, 26); this.buttonDuplicateTreeGroup.TabIndex = 17; this.buttonDuplicateTreeGroup.Text = "Duplicate"; this.buttonDuplicateTreeGroup.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonDuplicateTreeGroup.UseVisualStyleBackColor = true; this.buttonDuplicateTreeGroup.Click += new System.EventHandler(this.buttonDuplicateTreeGroup_Click); // // buttonRemoveTreeGroup // this.buttonRemoveTreeGroup.Image = global::DSPRE.Properties.Resources.deleteIcon; this.buttonRemoveTreeGroup.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonRemoveTreeGroup.Location = new System.Drawing.Point(90, 386); this.buttonRemoveTreeGroup.Name = "buttonRemoveTreeGroup"; this.buttonRemoveTreeGroup.Size = new System.Drawing.Size(81, 26); this.buttonRemoveTreeGroup.TabIndex = 17; this.buttonRemoveTreeGroup.Text = "Remove"; this.buttonRemoveTreeGroup.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonRemoveTreeGroup.UseVisualStyleBackColor = true; this.buttonRemoveTreeGroup.Click += new System.EventHandler(this.buttonRemoveTreeGroup_Click); // // numericUpDownMaxLevel // this.numericUpDownMaxLevel.Location = new System.Drawing.Point(200, 207); this.numericUpDownMaxLevel.Name = "numericUpDownMaxLevel"; this.numericUpDownMaxLevel.Size = new System.Drawing.Size(58, 20); this.numericUpDownMaxLevel.TabIndex = 15; this.numericUpDownMaxLevel.ValueChanged += new System.EventHandler(this.numericUpDownMaxLevel_ValueChanged); // // numericUpDownMinLevel // this.numericUpDownMinLevel.Location = new System.Drawing.Point(136, 207); this.numericUpDownMinLevel.Name = "numericUpDownMinLevel"; this.numericUpDownMinLevel.Size = new System.Drawing.Size(58, 20); this.numericUpDownMinLevel.TabIndex = 15; this.numericUpDownMinLevel.ValueChanged += new System.EventHandler(this.numericUpDownMinLevel_ValueChanged); // // buttonAddTreeGroup // this.buttonAddTreeGroup.Image = global::DSPRE.Properties.Resources.addIcon; this.buttonAddTreeGroup.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonAddTreeGroup.Location = new System.Drawing.Point(3, 386); this.buttonAddTreeGroup.Name = "buttonAddTreeGroup"; this.buttonAddTreeGroup.Size = new System.Drawing.Size(81, 26); this.buttonAddTreeGroup.TabIndex = 17; this.buttonAddTreeGroup.Text = "Add"; this.buttonAddTreeGroup.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonAddTreeGroup.UseVisualStyleBackColor = true; this.buttonAddTreeGroup.Click += new System.EventHandler(this.buttonAddTreeGroup_Click); // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(0, 233); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(66, 13); this.label5.TabIndex = 18; this.label5.Text = "Tree Groups"; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(0, 415); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(118, 13); this.label6.TabIndex = 18; this.label6.Text = "Trees in selected group"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(0, 190); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(97, 13); this.label2.TabIndex = 18; this.label2.Text = "Selected Pokémon"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(133, 190); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(53, 13); this.label3.TabIndex = 18; this.label3.Text = "Min Level"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(0, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(86, 13); this.label1.TabIndex = 18; this.label1.Text = "Encounter Table"; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(197, 190); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(56, 13); this.label4.TabIndex = 18; this.label4.Text = "Max Level"; // // comboBoxPokemon // this.comboBoxPokemon.FormattingEnabled = true; this.comboBoxPokemon.Location = new System.Drawing.Point(3, 206); this.comboBoxPokemon.Name = "comboBoxPokemon"; this.comboBoxPokemon.Size = new System.Drawing.Size(127, 21); this.comboBoxPokemon.TabIndex = 19; this.comboBoxPokemon.SelectedIndexChanged += new System.EventHandler(this.comboBoxPokemon_SelectedIndexChanged); // // listBoxTreeGroups // this.listBoxTreeGroups.DisplayMember = "DisplayName"; this.listBoxTreeGroups.FormattingEnabled = true; this.listBoxTreeGroups.Location = new System.Drawing.Point(3, 249); this.listBoxTreeGroups.Name = "listBoxTreeGroups"; this.listBoxTreeGroups.Size = new System.Drawing.Size(255, 134); this.listBoxTreeGroups.TabIndex = 11; this.listBoxTreeGroups.SelectedIndexChanged += new System.EventHandler(this.listBoxTreeGroups_SelectedIndexChanged); // // listBoxTrees // this.listBoxTrees.DisplayMember = "DisplayName"; this.listBoxTrees.FormattingEnabled = true; this.listBoxTrees.Location = new System.Drawing.Point(3, 431); this.listBoxTrees.Name = "listBoxTrees"; this.listBoxTrees.Size = new System.Drawing.Size(255, 82); this.listBoxTrees.TabIndex = 11; // // listBoxEncounters // this.listBoxEncounters.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.listBoxEncounters.FormattingEnabled = true; this.listBoxEncounters.ItemHeight = 14; this.listBoxEncounters.Location = new System.Drawing.Point(3, 15); this.listBoxEncounters.Name = "listBoxEncounters"; this.listBoxEncounters.Size = new System.Drawing.Size(255, 172); this.listBoxEncounters.TabIndex = 13; this.listBoxEncounters.SelectedIndexChanged += new System.EventHandler(this.listBoxEncounters_SelectedIndexChanged); // // HeadbuttEncounterEditorTab // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.comboBoxPokemon); this.Controls.Add(this.label4); this.Controls.Add(this.label1); this.Controls.Add(this.listBoxTreeGroups); this.Controls.Add(this.label3); this.Controls.Add(this.buttonDuplicateTreeGroup); this.Controls.Add(this.label2); this.Controls.Add(this.buttonRemoveTreeGroup); this.Controls.Add(this.listBoxTrees); this.Controls.Add(this.label6); this.Controls.Add(this.numericUpDownMaxLevel); this.Controls.Add(this.listBoxEncounters); this.Controls.Add(this.label5); this.Controls.Add(this.numericUpDownMinLevel); this.Controls.Add(this.buttonAddTreeGroup); this.Name = "HeadbuttEncounterEditorTab"; this.Size = new System.Drawing.Size(262, 517); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxLevel)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMinLevel)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion public DSPRE.ListBox2 listBoxTreeGroups; private System.Windows.Forms.Button buttonDuplicateTreeGroup; private System.Windows.Forms.Button buttonRemoveTreeGroup; public ListBox2 listBoxTrees; public System.Windows.Forms.NumericUpDown numericUpDownMaxLevel; public DSPRE.ListBox2 listBoxEncounters; public System.Windows.Forms.NumericUpDown numericUpDownMinLevel; private System.Windows.Forms.Button buttonAddTreeGroup; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label4; public System.Windows.Forms.ComboBox comboBoxPokemon; } } ================================================ FILE: DS_Map/Editors/HeadbuttEncounterEditorTab.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using DSPRE.ROMFiles; namespace DSPRE.Editors { public partial class HeadbuttEncounterEditorTab : UserControl { private List encounters; private BindingList treeGroups; public HeadbuttEncounterEditorTab() { InitializeComponent(); } public void Reset() { Helpers.DisableHandlers(); listBoxEncounters.DataSource = null; listBoxTreeGroups.DataSource = null; listBoxTrees.DataSource = null; comboBoxPokemon.SelectedIndex = 0; numericUpDownMinLevel.Value = 0; numericUpDownMaxLevel.Value = 0; Helpers.EnableHandlers(); } public void SetHeadbuttEncounter(List encounters, BindingList treeGroups) { Helpers.DisableHandlers(); this.encounters = encounters; this.treeGroups = treeGroups; listBoxEncounters.DataSource = this.encounters; listBoxTreeGroups.DataSource = this.treeGroups; listBoxEncounters.SelectedIndex = -1; listBoxTreeGroups.SelectedIndex = -1; Helpers.EnableHandlers(); } private void listBoxEncounters_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } HeadbuttEncounter headbuttEncounter = (HeadbuttEncounter)listBoxEncounters.SelectedItem; if (headbuttEncounter == null) { return; } comboBoxPokemon.SelectedIndex = headbuttEncounter.pokemonID; numericUpDownMinLevel.Value = headbuttEncounter.minLevel; numericUpDownMaxLevel.Value = headbuttEncounter.maxLevel; } private void comboBoxPokemon_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } HeadbuttEncounter headbuttEncounter = (HeadbuttEncounter)listBoxEncounters.SelectedItem; if (headbuttEncounter == null) { return; } headbuttEncounter.pokemonID = (ushort)comboBoxPokemon.SelectedIndex; listBoxEncounters.RefreshItem(listBoxEncounters.SelectedIndex); } private void numericUpDownMinLevel_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } HeadbuttEncounter headbuttEncounter = (HeadbuttEncounter)listBoxEncounters.SelectedItem; if (headbuttEncounter == null) { return; } headbuttEncounter.minLevel = (byte)numericUpDownMinLevel.Value; listBoxEncounters.RefreshItem(listBoxEncounters.SelectedIndex); } private void numericUpDownMaxLevel_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } HeadbuttEncounter headbuttEncounter = (HeadbuttEncounter)listBoxEncounters.SelectedItem; if (headbuttEncounter == null) { return; } headbuttEncounter.maxLevel = (byte)numericUpDownMaxLevel.Value; listBoxEncounters.RefreshItem(listBoxEncounters.SelectedIndex); } private void listBoxTreeGroups_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } HeadbuttTreeGroup headbuttTreeGroup = (HeadbuttTreeGroup)listBoxTreeGroups.SelectedItem; if (headbuttTreeGroup == null) { return; } listBoxTrees.DataSource = headbuttTreeGroup.trees; } private void buttonAddTreeGroup_Click(object sender, EventArgs e) { treeGroups.Add(new HeadbuttTreeGroup()); } private void buttonRemoveTreeGroup_Click(object sender, EventArgs e) { int selectedIndex = listBoxTreeGroups.SelectedIndex; if (selectedIndex == -1) { return; } treeGroups.RemoveAt(selectedIndex); } private void buttonDuplicateTreeGroup_Click(object sender, EventArgs e) { HeadbuttTreeGroup headbuttTreeGroup = (HeadbuttTreeGroup)listBoxTreeGroups.SelectedItem; if (headbuttTreeGroup == null) { return; } treeGroups.Add(new HeadbuttTreeGroup(headbuttTreeGroup)); } } } ================================================ FILE: DS_Map/Editors/HeadbuttEncounterEditorTab.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: DS_Map/Editors/LevelScriptEditor.Designer.cs ================================================ using System.ComponentModel; namespace DSPRE.Editors { partial class LevelScriptEditor { /// /// Required designer variable. /// private 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 Component 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(LevelScriptEditor)); this.buttonSave = new System.Windows.Forms.Button(); this.buttonExport = new System.Windows.Forms.Button(); this.radioButtonVariableValue = new System.Windows.Forms.RadioButton(); this.radioButtonMapChange = new System.Windows.Forms.RadioButton(); this.radioButtonScreenReset = new System.Windows.Forms.RadioButton(); this.radioButtonLoadGame = new System.Windows.Forms.RadioButton(); this.textBoxScriptID = new System.Windows.Forms.TextBox(); this.textBoxVariableName = new System.Windows.Forms.TextBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBoxScript = new System.Windows.Forms.GroupBox(); this.groupBoxVariable = new System.Windows.Forms.GroupBox(); this.groupBoxValue = new System.Windows.Forms.GroupBox(); this.textBoxVariableValue = new System.Windows.Forms.TextBox(); this.checkBoxPadding = new System.Windows.Forms.CheckBox(); this.buttonAdd = new System.Windows.Forms.Button(); this.buttonRemove = new System.Windows.Forms.Button(); this.radioButtonDecimal = new System.Windows.Forms.RadioButton(); this.radioButtonHex = new System.Windows.Forms.RadioButton(); this.radioButtonAuto = new System.Windows.Forms.RadioButton(); this.selectScriptFileComboBox = new System.Windows.Forms.ComboBox(); this.listBoxTriggers = new DSPRE.ListBox2(); this.buttonOpenHeaderScript = new System.Windows.Forms.Button(); this.buttonOpenSelectedScript = new System.Windows.Forms.Button(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.buttonLocate = new System.Windows.Forms.Button(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.buttonImport = new System.Windows.Forms.Button(); this.groupBox5 = new System.Windows.Forms.GroupBox(); this.groupBox6 = new System.Windows.Forms.GroupBox(); this.groupBox7 = new System.Windows.Forms.GroupBox(); this.groupBox1.SuspendLayout(); this.groupBoxScript.SuspendLayout(); this.groupBoxVariable.SuspendLayout(); this.groupBoxValue.SuspendLayout(); this.groupBox3.SuspendLayout(); this.groupBox4.SuspendLayout(); this.groupBox5.SuspendLayout(); this.groupBox6.SuspendLayout(); this.groupBox7.SuspendLayout(); this.SuspendLayout(); // // buttonSave // this.buttonSave.Image = global::DSPRE.Properties.Resources.save_rom; this.buttonSave.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonSave.Location = new System.Drawing.Point(176, 17); this.buttonSave.Name = "buttonSave"; this.buttonSave.Size = new System.Drawing.Size(80, 40); this.buttonSave.TabIndex = 5; this.buttonSave.Text = "Save"; this.buttonSave.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonSave.UseVisualStyleBackColor = true; this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); // // buttonExport // this.buttonExport.Image = global::DSPRE.Properties.Resources.exportArrow; this.buttonExport.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonExport.Location = new System.Drawing.Point(90, 17); this.buttonExport.Name = "buttonExport"; this.buttonExport.Size = new System.Drawing.Size(80, 40); this.buttonExport.TabIndex = 6; this.buttonExport.Text = "Export"; this.buttonExport.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonExport.UseVisualStyleBackColor = true; this.buttonExport.Click += new System.EventHandler(this.buttonExport_Click); // // radioButtonVariableValue // this.radioButtonVariableValue.Checked = true; this.radioButtonVariableValue.Location = new System.Drawing.Point(8, 17); this.radioButtonVariableValue.Name = "radioButtonVariableValue"; this.radioButtonVariableValue.Size = new System.Drawing.Size(99, 38); this.radioButtonVariableValue.TabIndex = 12; this.radioButtonVariableValue.TabStop = true; this.radioButtonVariableValue.Text = "Continuous\r\nVariable Check\r\n"; this.radioButtonVariableValue.UseVisualStyleBackColor = true; this.radioButtonVariableValue.CheckedChanged += new System.EventHandler(this.radioButtonVariableValue_CheckedChanged); // // radioButtonMapChange // this.radioButtonMapChange.Location = new System.Drawing.Point(120, 17); this.radioButtonMapChange.Name = "radioButtonMapChange"; this.radioButtonMapChange.Size = new System.Drawing.Size(75, 38); this.radioButtonMapChange.TabIndex = 13; this.radioButtonMapChange.Text = "Player enters"; this.radioButtonMapChange.UseVisualStyleBackColor = true; this.radioButtonMapChange.CheckedChanged += new System.EventHandler(this.radioButtonMapChange_CheckedChanged); // // radioButtonScreenReset // this.radioButtonScreenReset.Location = new System.Drawing.Point(211, 17); this.radioButtonScreenReset.Name = "radioButtonScreenReset"; this.radioButtonScreenReset.Size = new System.Drawing.Size(66, 38); this.radioButtonScreenReset.TabIndex = 14; this.radioButtonScreenReset.Text = "Screen Refresh"; this.radioButtonScreenReset.UseVisualStyleBackColor = true; this.radioButtonScreenReset.CheckedChanged += new System.EventHandler(this.radioButtonScreenReset_CheckedChanged); // // radioButtonLoadGame // this.radioButtonLoadGame.Location = new System.Drawing.Point(300, 17); this.radioButtonLoadGame.Name = "radioButtonLoadGame"; this.radioButtonLoadGame.Size = new System.Drawing.Size(94, 38); this.radioButtonLoadGame.TabIndex = 15; this.radioButtonLoadGame.Text = "Overworld System loads"; this.radioButtonLoadGame.UseVisualStyleBackColor = true; this.radioButtonLoadGame.CheckedChanged += new System.EventHandler(this.radioButtonLoadGame_CheckedChanged); // // textBoxScriptID // this.textBoxScriptID.Dock = System.Windows.Forms.DockStyle.Fill; this.textBoxScriptID.Location = new System.Drawing.Point(3, 16); this.textBoxScriptID.Name = "textBoxScriptID"; this.textBoxScriptID.Size = new System.Drawing.Size(143, 20); this.textBoxScriptID.TabIndex = 16; this.textBoxScriptID.TextChanged += new System.EventHandler(this.textBoxScriptID_TextChanged); // // textBoxVariableName // this.textBoxVariableName.Dock = System.Windows.Forms.DockStyle.Fill; this.textBoxVariableName.Location = new System.Drawing.Point(3, 16); this.textBoxVariableName.Name = "textBoxVariableName"; this.textBoxVariableName.Size = new System.Drawing.Size(123, 20); this.textBoxVariableName.TabIndex = 17; this.textBoxVariableName.TextChanged += new System.EventHandler(this.textBoxVariableName_TextChanged); // // groupBox1 // this.groupBox1.Controls.Add(this.radioButtonVariableValue); this.groupBox1.Controls.Add(this.radioButtonMapChange); this.groupBox1.Controls.Add(this.radioButtonScreenReset); this.groupBox1.Controls.Add(this.radioButtonLoadGame); this.groupBox1.Location = new System.Drawing.Point(3, 411); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(397, 63); this.groupBox1.TabIndex = 11; this.groupBox1.TabStop = false; this.groupBox1.Text = "Activation Condition"; // // groupBoxScript // this.groupBoxScript.Controls.Add(this.textBoxScriptID); this.groupBoxScript.Location = new System.Drawing.Point(3, 480); this.groupBoxScript.Name = "groupBoxScript"; this.groupBoxScript.Size = new System.Drawing.Size(149, 46); this.groupBoxScript.TabIndex = 12; this.groupBoxScript.TabStop = false; this.groupBoxScript.Text = "Keep running this Script ID"; // // groupBoxVariable // this.groupBoxVariable.Controls.Add(this.textBoxVariableName); this.groupBoxVariable.Location = new System.Drawing.Point(155, 480); this.groupBoxVariable.Name = "groupBoxVariable"; this.groupBoxVariable.Size = new System.Drawing.Size(129, 46); this.groupBoxVariable.TabIndex = 13; this.groupBoxVariable.TabStop = false; this.groupBoxVariable.Text = "as long as this variable"; // // groupBoxValue // this.groupBoxValue.Controls.Add(this.textBoxVariableValue); this.groupBoxValue.Location = new System.Drawing.Point(290, 480); this.groupBoxValue.Name = "groupBoxValue"; this.groupBoxValue.Size = new System.Drawing.Size(110, 46); this.groupBoxValue.TabIndex = 13; this.groupBoxValue.TabStop = false; this.groupBoxValue.Text = "holds this value"; // // textBoxVariableValue // this.textBoxVariableValue.Dock = System.Windows.Forms.DockStyle.Fill; this.textBoxVariableValue.Location = new System.Drawing.Point(3, 16); this.textBoxVariableValue.Name = "textBoxVariableValue"; this.textBoxVariableValue.Size = new System.Drawing.Size(104, 20); this.textBoxVariableValue.TabIndex = 18; this.textBoxVariableValue.TextChanged += new System.EventHandler(this.textBoxVariableValue_TextChanged); // // checkBoxPadding // this.checkBoxPadding.Location = new System.Drawing.Point(268, 19); this.checkBoxPadding.Name = "checkBoxPadding"; this.checkBoxPadding.Size = new System.Drawing.Size(107, 35); this.checkBoxPadding.TabIndex = 7; this.checkBoxPadding.Text = "Word-alignment padding"; this.checkBoxPadding.UseVisualStyleBackColor = true; // // buttonAdd // this.buttonAdd.Image = ((System.Drawing.Image)(resources.GetObject("buttonAdd.Image"))); this.buttonAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonAdd.Location = new System.Drawing.Point(5, 18); this.buttonAdd.Name = "buttonAdd"; this.buttonAdd.Size = new System.Drawing.Size(75, 29); this.buttonAdd.TabIndex = 19; this.buttonAdd.Text = "Add"; this.buttonAdd.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonAdd.UseVisualStyleBackColor = true; this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click); // // buttonRemove // this.buttonRemove.Image = global::DSPRE.Properties.Resources.deleteIcon; this.buttonRemove.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonRemove.Location = new System.Drawing.Point(84, 18); this.buttonRemove.Name = "buttonRemove"; this.buttonRemove.Size = new System.Drawing.Size(75, 29); this.buttonRemove.TabIndex = 20; this.buttonRemove.Text = "Remove"; this.buttonRemove.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonRemove.UseVisualStyleBackColor = true; this.buttonRemove.Click += new System.EventHandler(this.buttonRemove_Click); // // radioButtonDecimal // this.radioButtonDecimal.AutoSize = true; this.radioButtonDecimal.Location = new System.Drawing.Point(109, 23); this.radioButtonDecimal.Name = "radioButtonDecimal"; this.radioButtonDecimal.Size = new System.Drawing.Size(63, 17); this.radioButtonDecimal.TabIndex = 10; this.radioButtonDecimal.Text = "Decimal"; this.radioButtonDecimal.UseVisualStyleBackColor = true; this.radioButtonDecimal.CheckedChanged += new System.EventHandler(this.radioButtonDecimal_CheckedChanged); // // radioButtonHex // this.radioButtonHex.AutoSize = true; this.radioButtonHex.Location = new System.Drawing.Point(59, 23); this.radioButtonHex.Name = "radioButtonHex"; this.radioButtonHex.Size = new System.Drawing.Size(44, 17); this.radioButtonHex.TabIndex = 9; this.radioButtonHex.Text = "Hex"; this.radioButtonHex.UseVisualStyleBackColor = true; this.radioButtonHex.CheckedChanged += new System.EventHandler(this.radioButtonHex_CheckedChanged); // // radioButtonAuto // this.radioButtonAuto.AutoSize = true; this.radioButtonAuto.Checked = true; this.radioButtonAuto.Location = new System.Drawing.Point(6, 23); this.radioButtonAuto.Name = "radioButtonAuto"; this.radioButtonAuto.Size = new System.Drawing.Size(47, 17); this.radioButtonAuto.TabIndex = 8; this.radioButtonAuto.TabStop = true; this.radioButtonAuto.Text = "Auto"; this.radioButtonAuto.UseVisualStyleBackColor = true; this.radioButtonAuto.CheckedChanged += new System.EventHandler(this.radioButtonAuto_CheckedChanged); // // selectScriptFileComboBox // this.selectScriptFileComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectScriptFileComboBox.FormattingEnabled = true; this.selectScriptFileComboBox.Location = new System.Drawing.Point(6, 19); this.selectScriptFileComboBox.Name = "selectScriptFileComboBox"; this.selectScriptFileComboBox.Size = new System.Drawing.Size(188, 21); this.selectScriptFileComboBox.TabIndex = 1; this.selectScriptFileComboBox.SelectedIndexChanged += new System.EventHandler(this.selectScriptFileComboBox_SelectedIndexChanged); // // listBoxTriggers // this.listBoxTriggers.FormattingEnabled = true; this.listBoxTriggers.Location = new System.Drawing.Point(3, 271); this.listBoxTriggers.Name = "listBoxTriggers"; this.listBoxTriggers.Size = new System.Drawing.Size(397, 134); this.listBoxTriggers.TabIndex = 11; this.listBoxTriggers.SelectedValueChanged += new System.EventHandler(this.listBoxTriggers_SelectedValueChanged); // // buttonOpenHeaderScript // this.buttonOpenHeaderScript.Location = new System.Drawing.Point(6, 19); this.buttonOpenHeaderScript.Name = "buttonOpenHeaderScript"; this.buttonOpenHeaderScript.Size = new System.Drawing.Size(88, 23); this.buttonOpenHeaderScript.TabIndex = 2; this.buttonOpenHeaderScript.Text = "Header Script"; this.buttonOpenHeaderScript.UseVisualStyleBackColor = true; this.buttonOpenHeaderScript.Click += new System.EventHandler(this.buttonOpenHeaderScript_Click); // // buttonOpenSelectedScript // this.buttonOpenSelectedScript.Location = new System.Drawing.Point(100, 19); this.buttonOpenSelectedScript.Name = "buttonOpenSelectedScript"; this.buttonOpenSelectedScript.Size = new System.Drawing.Size(94, 23); this.buttonOpenSelectedScript.TabIndex = 3; this.buttonOpenSelectedScript.Text = "Selected Script"; this.buttonOpenSelectedScript.UseVisualStyleBackColor = true; this.buttonOpenSelectedScript.Click += new System.EventHandler(this.buttonOpenSelectedScript_Click); // // groupBox3 // this.groupBox3.Controls.Add(this.buttonLocate); this.groupBox3.Controls.Add(this.buttonOpenSelectedScript); this.groupBox3.Controls.Add(this.buttonOpenHeaderScript); this.groupBox3.Location = new System.Drawing.Point(3, 61); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(263, 52); this.groupBox3.TabIndex = 18; this.groupBox3.TabStop = false; this.groupBox3.Text = "Open"; // // buttonLocate // this.buttonLocate.Location = new System.Drawing.Point(200, 19); this.buttonLocate.Name = "buttonLocate"; this.buttonLocate.Size = new System.Drawing.Size(56, 23); this.buttonLocate.TabIndex = 3; this.buttonLocate.Text = "Locate"; this.buttonLocate.UseVisualStyleBackColor = true; this.buttonLocate.Click += new System.EventHandler(this.buttonLocate_Click); // // groupBox4 // this.groupBox4.Controls.Add(this.buttonImport); this.groupBox4.Controls.Add(this.buttonSave); this.groupBox4.Controls.Add(this.buttonExport); this.groupBox4.Controls.Add(this.checkBoxPadding); this.groupBox4.Location = new System.Drawing.Point(3, 119); this.groupBox4.Name = "groupBox4"; this.groupBox4.Size = new System.Drawing.Size(386, 65); this.groupBox4.TabIndex = 20; this.groupBox4.TabStop = false; this.groupBox4.Text = "File"; // // buttonImport // this.buttonImport.Image = ((System.Drawing.Image)(resources.GetObject("buttonImport.Image"))); this.buttonImport.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonImport.Location = new System.Drawing.Point(6, 17); this.buttonImport.Name = "buttonImport"; this.buttonImport.Size = new System.Drawing.Size(80, 40); this.buttonImport.TabIndex = 4; this.buttonImport.Text = "Import"; this.buttonImport.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonImport.UseVisualStyleBackColor = true; this.buttonImport.Click += new System.EventHandler(this.buttonImport_Click); // // groupBox5 // this.groupBox5.Controls.Add(this.buttonRemove); this.groupBox5.Controls.Add(this.buttonAdd); this.groupBox5.Location = new System.Drawing.Point(187, 213); this.groupBox5.Name = "groupBox5"; this.groupBox5.Size = new System.Drawing.Size(213, 52); this.groupBox5.TabIndex = 21; this.groupBox5.TabStop = false; this.groupBox5.Text = "Trigger Type"; // // groupBox6 // this.groupBox6.Controls.Add(this.radioButtonAuto); this.groupBox6.Controls.Add(this.radioButtonDecimal); this.groupBox6.Controls.Add(this.radioButtonHex); this.groupBox6.Location = new System.Drawing.Point(3, 213); this.groupBox6.Name = "groupBox6"; this.groupBox6.Size = new System.Drawing.Size(178, 52); this.groupBox6.TabIndex = 22; this.groupBox6.TabStop = false; this.groupBox6.Text = "Number Format"; // // groupBox7 // this.groupBox7.Controls.Add(this.selectScriptFileComboBox); this.groupBox7.Location = new System.Drawing.Point(3, 3); this.groupBox7.Name = "groupBox7"; this.groupBox7.Size = new System.Drawing.Size(203, 52); this.groupBox7.TabIndex = 23; this.groupBox7.TabStop = false; this.groupBox7.Text = "Script File"; // // LevelScriptEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.Control; this.Controls.Add(this.groupBox7); this.Controls.Add(this.groupBox6); this.Controls.Add(this.groupBox5); this.Controls.Add(this.groupBox4); this.Controls.Add(this.groupBox3); this.Controls.Add(this.groupBoxValue); this.Controls.Add(this.groupBoxVariable); this.Controls.Add(this.groupBoxScript); this.Controls.Add(this.groupBox1); this.Controls.Add(this.listBoxTriggers); this.Location = new System.Drawing.Point(15, 15); this.Name = "LevelScriptEditor"; this.Size = new System.Drawing.Size(408, 622); this.groupBox1.ResumeLayout(false); this.groupBoxScript.ResumeLayout(false); this.groupBoxScript.PerformLayout(); this.groupBoxVariable.ResumeLayout(false); this.groupBoxVariable.PerformLayout(); this.groupBoxValue.ResumeLayout(false); this.groupBoxValue.PerformLayout(); this.groupBox3.ResumeLayout(false); this.groupBox4.ResumeLayout(false); this.groupBox5.ResumeLayout(false); this.groupBox6.ResumeLayout(false); this.groupBox6.PerformLayout(); this.groupBox7.ResumeLayout(false); this.ResumeLayout(false); } private System.Windows.Forms.Button buttonImport; private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.GroupBox groupBox5; private System.Windows.Forms.Button buttonOpenSelectedScript; private System.Windows.Forms.GroupBox groupBox3; public System.Windows.Forms.ComboBox selectScriptFileComboBox; #endregion private System.Windows.Forms.Button buttonSave; private DSPRE.ListBox2 listBoxTriggers; private System.Windows.Forms.Button buttonExport; private System.Windows.Forms.RadioButton radioButtonVariableValue; private System.Windows.Forms.RadioButton radioButtonMapChange; private System.Windows.Forms.RadioButton radioButtonScreenReset; private System.Windows.Forms.RadioButton radioButtonLoadGame; private System.Windows.Forms.TextBox textBoxScriptID; private System.Windows.Forms.TextBox textBoxVariableName; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.GroupBox groupBoxScript; private System.Windows.Forms.GroupBox groupBoxVariable; private System.Windows.Forms.GroupBox groupBoxValue; private System.Windows.Forms.TextBox textBoxVariableValue; private System.Windows.Forms.CheckBox checkBoxPadding; private System.Windows.Forms.Button buttonAdd; private System.Windows.Forms.Button buttonRemove; private System.Windows.Forms.RadioButton radioButtonDecimal; private System.Windows.Forms.RadioButton radioButtonHex; private System.Windows.Forms.RadioButton radioButtonAuto; private System.Windows.Forms.Button buttonOpenHeaderScript; private System.Windows.Forms.GroupBox groupBox6; private System.Windows.Forms.GroupBox groupBox7; private System.Windows.Forms.Button buttonLocate; } } ================================================ FILE: DS_Map/Editors/LevelScriptEditor.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Windows.Forms; using DSPRE.ROMFiles; namespace DSPRE.Editors { public partial class LevelScriptEditor : UserControl { public bool levelScriptEditorIsReady { get; set; } = false; LevelScriptFile _levelScriptFile; MainProgram _parent; public LevelScriptEditor() { InitializeComponent(); } public void SetUpLevelScriptEditor(MainProgram parent, bool force = false) { if (levelScriptEditorIsReady && !force){ return; } levelScriptEditorIsReady = true; this._parent = parent; DSUtils.TryUnpackNarcs(new List { RomInfo.DirNames.scripts }); //12 = scripts Narc Dir populate_selectScriptFileComboBox(); } public void OpenLevelScriptEditor(MainProgram parent, int levelScriptID) { SetUpLevelScriptEditor(parent); selectScriptFileComboBox.SelectedIndex = levelScriptID; EditorPanels.mainTabControl.SelectedTab = EditorPanels.levelScriptEditorTabPage; } private void populate_selectScriptFileComboBox(int selectedIndex = 0) { selectScriptFileComboBox.Items.Clear(); int scriptCount = Filesystem.GetScriptCount(); for (int i = 0; i < scriptCount; i++) { // ScriptFile currentScriptFile = new ScriptFile(i, true, true); // selectScriptFileComboBox.Items.Add(currentScriptFile); selectScriptFileComboBox.Items.Add($"Script File {i}"); } selectScriptFileComboBox.SelectedIndex = selectedIndex; } void disableButtons() { listBoxTriggers.DataSource = null; textBoxScriptID.Clear(); textBoxVariableName.Clear(); textBoxVariableValue.Clear(); radioButtonVariableValue.Checked = false; radioButtonMapChange.Checked = false; radioButtonScreenReset.Checked = false; radioButtonLoadGame.Checked = false; textBoxScriptID.Enabled = false; radioButtonVariableValue.Enabled = false; radioButtonMapChange.Enabled = false; radioButtonScreenReset.Enabled = false; radioButtonLoadGame.Enabled = false; radioButtonAuto.Enabled = false; radioButtonHex.Enabled = false; radioButtonDecimal.Enabled = false; buttonImport.Enabled = false; buttonSave.Enabled = false; buttonExport.Enabled = false; checkBoxPadding.Enabled = false; buttonAdd.Enabled = false; buttonRemove.Enabled = false; } void enableButtons() { // textBoxScriptID.Enabled = true; // textBoxVariableName.Enabled = true; // textBoxVariableValue.Enabled = true; radioButtonVariableValue.Enabled = true; radioButtonMapChange.Enabled = true; radioButtonScreenReset.Enabled = true; radioButtonLoadGame.Enabled = true; radioButtonAuto.Enabled = true; radioButtonHex.Enabled = true; radioButtonDecimal.Enabled = true; buttonImport.Enabled = true; buttonSave.Enabled = true; buttonExport.Enabled = true; checkBoxPadding.Enabled = true; } void buttonAdd_logic() { buttonAdd.Enabled = false; if (radioButtonVariableValue.Checked) { if (!string.IsNullOrEmpty(textBoxScriptID.Text) && !string.IsNullOrEmpty(textBoxVariableName.Text) && !string.IsNullOrEmpty(textBoxVariableValue.Text)) { buttonAdd.Enabled = true; } } else if (radioButtonMapChange.Checked || radioButtonScreenReset.Checked || radioButtonLoadGame.Checked) { if (!string.IsNullOrEmpty(textBoxScriptID.Text)) { buttonAdd.Enabled = true; } } } private void selectScriptFileComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (selectScriptFileComboBox.SelectedIndex == -1) { buttonOpenSelectedScript.Enabled = false; buttonOpenHeaderScript.Enabled = false; buttonLocate.Enabled = false; } else { buttonOpenSelectedScript.Enabled = true; buttonOpenHeaderScript.Enabled = true; buttonLocate.Enabled = true; } disableButtons(); try { _levelScriptFile = new LevelScriptFile(selectScriptFileComboBox.SelectedIndex); listBoxTriggers.DataSource = _levelScriptFile.bufferSet; if (listBoxTriggers.Items.Count > 0){ listBoxTriggers.SelectedIndex = 0; } enableButtons(); } catch (InvalidDataException ex) { //not a level script disableButtons(); Console.WriteLine(ex.Message); } } void listBoxTriggers_SelectedValueChanged(object sender, EventArgs e) { if (listBoxTriggers.SelectedItem == null) { buttonRemove.Enabled = false; return; } if (listBoxTriggers.SelectedItem is MapScreenLoadTrigger mapScreenLoadTrigger) { if (mapScreenLoadTrigger.triggerType == LevelScriptTrigger.LOADGAME) { radioButtonLoadGame.Checked = true; } else if (mapScreenLoadTrigger.triggerType == LevelScriptTrigger.MAPCHANGE) { radioButtonMapChange.Checked = true; } else if (mapScreenLoadTrigger.triggerType == LevelScriptTrigger.SCREENRESET) { radioButtonScreenReset.Checked = true; } } else if (listBoxTriggers.SelectedItem is VariableValueTrigger variableValueTrigger) { if (variableValueTrigger.triggerType == LevelScriptTrigger.VARIABLEVALUE) { radioButtonVariableValue.Checked = true; } } handleAutoFormat(); handleHexFormat(); handleDecimalFormat(); textBoxScriptID.Enabled = true; buttonRemove.Enabled = true; } private void buttonAdd_Click(object sender, EventArgs e) { // try { if (_levelScriptFile == null) { _levelScriptFile = new LevelScriptFile(); } int convertBase = 10; //decimal if (radioButtonHex.Checked) { convertBase = 16; //hex } if (radioButtonVariableValue.Checked) { int scriptID = Convert.ToInt16(textBoxScriptID.Text, convertBase); int variableName = Convert.ToInt16(textBoxVariableName.Text, convertBase); int variableValue = Convert.ToInt16(textBoxVariableValue.Text, convertBase); VariableValueTrigger variableValueTrigger = new VariableValueTrigger(scriptID, variableName, variableValue); _levelScriptFile.bufferSet.Add(variableValueTrigger); } else { int scriptID = Convert.ToInt16(textBoxScriptID.Text, convertBase); if (radioButtonMapChange.Checked) { MapScreenLoadTrigger mapScreenLoadTrigger = new MapScreenLoadTrigger(LevelScriptTrigger.MAPCHANGE, scriptID); _levelScriptFile.bufferSet.Add(mapScreenLoadTrigger); } else if (radioButtonScreenReset.Checked) { MapScreenLoadTrigger mapScreenLoadTrigger = new MapScreenLoadTrigger(LevelScriptTrigger.SCREENRESET, scriptID); _levelScriptFile.bufferSet.Add(mapScreenLoadTrigger); } else if (radioButtonLoadGame.Checked) { MapScreenLoadTrigger mapScreenLoadTrigger = new MapScreenLoadTrigger(LevelScriptTrigger.LOADGAME, scriptID); _levelScriptFile.bufferSet.Add(mapScreenLoadTrigger); } } textBoxScriptID.Clear(); textBoxVariableName.Clear(); textBoxVariableValue.Clear(); // } // catch (Exception exception) { // MessageBox.Show(exception.Message); // } } private void buttonRemove_Click(object sender, EventArgs e) { _levelScriptFile.bufferSet.RemoveAt(listBoxTriggers.SelectedIndex); } private void buttonOpenHeaderScript_Click(object sender, EventArgs e) { EditorPanels.scriptEditor.OpenScriptEditor(this._parent, (int)EditorPanels.MainProgram.scriptFileUpDown.Value); } private void buttonOpenSelectedScript_Click(object sender, EventArgs e) { EditorPanels.scriptEditor.OpenScriptEditor(this._parent, (int)EditorPanels.levelScriptEditor.selectScriptFileComboBox.SelectedIndex); } void buttonLocate_Click(object sender, EventArgs e) { if (_levelScriptFile == null){ return; } string path = Filesystem.GetScriptPath(_levelScriptFile.ID); Helpers.ExplorerSelect(path); } void buttonImport_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) { try { LevelScriptFile importedFile = new LevelScriptFile(); importedFile.parse_file(ofd.FileName); _levelScriptFile.bufferSet.Clear(); foreach (LevelScriptTrigger trigger in importedFile.bufferSet) { _levelScriptFile.bufferSet.Add(trigger); } } catch (InvalidDataException ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } } private void buttonSave_Click(object sender, EventArgs e) { string path = Filesystem.GetScriptPath(_levelScriptFile.ID); saveFile(path); } private void buttonExport_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); try { sfd.InitialDirectory = Path.GetDirectoryName(sfd.FileName); sfd.FileName = Path.GetFileName(sfd.FileName); } catch (Exception ex) { sfd.InitialDirectory = Path.GetDirectoryName(Environment.SpecialFolder.UserProfile.ToString()); sfd.FileName = Path.GetFileName(sfd.FileName); } if (sfd.ShowDialog() == DialogResult.OK) { saveFile(sfd.FileName); } } void saveFile(string path) { try { long bytes_written = _levelScriptFile.write_file(path); if (bytes_written <= 4) { MessageBox.Show("Empty level script file was correctly saved.", "Success!"); } else { MessageBox.Show("File was correctly saved.", "Success!"); } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } private void handleAutoFormat() { if (!radioButtonAuto.Checked){ return; } textBoxScriptID.Clear(); textBoxVariableName.Clear(); textBoxVariableValue.Clear(); if (listBoxTriggers.SelectedItem is MapScreenLoadTrigger mapScreenLoadTrigger) { textBoxScriptID.Text = mapScreenLoadTrigger.scriptTriggered.ToString(); } else if (listBoxTriggers.SelectedItem is VariableValueTrigger variableValueTrigger) { textBoxScriptID.Text = variableValueTrigger.scriptTriggered.ToString(); textBoxVariableName.Text = "" + variableValueTrigger.variableToWatch.ToString("D"); textBoxVariableValue.Text = "" + variableValueTrigger.expectedValue.ToString("D"); } } private void handleHexFormat() { if (!radioButtonHex.Checked){ return; } textBoxScriptID.Clear(); textBoxVariableName.Clear(); textBoxVariableValue.Clear(); if (listBoxTriggers.SelectedItem is MapScreenLoadTrigger mapScreenLoadTrigger) { textBoxScriptID.Text = mapScreenLoadTrigger.scriptTriggered.ToString(); } else if (listBoxTriggers.SelectedItem is VariableValueTrigger variableValueTrigger) { textBoxScriptID.Text = variableValueTrigger.scriptTriggered.ToString(); textBoxVariableName.Text = "0x" + variableValueTrigger.variableToWatch.ToString("X"); textBoxVariableValue.Text = "0x" + variableValueTrigger.expectedValue.ToString("X"); } } private void handleDecimalFormat() { if (!radioButtonDecimal.Checked){ return; } textBoxScriptID.Clear(); textBoxVariableName.Clear(); textBoxVariableValue.Clear(); if (listBoxTriggers.SelectedItem is MapScreenLoadTrigger mapScreenLoadTrigger) { textBoxScriptID.Text = mapScreenLoadTrigger.scriptTriggered.ToString(); } else if (listBoxTriggers.SelectedItem is VariableValueTrigger variableValueTrigger) { textBoxScriptID.Text = variableValueTrigger.scriptTriggered.ToString(); textBoxVariableName.Text = "" + variableValueTrigger.variableToWatch.ToString("D"); textBoxVariableValue.Text = "" + variableValueTrigger.expectedValue.ToString("D"); } } private void radioButtonAuto_CheckedChanged(object sender, EventArgs e) { handleAutoFormat(); } private void radioButtonHex_CheckedChanged(object sender, EventArgs e) { handleHexFormat(); } private void radioButtonDecimal_CheckedChanged(object sender, EventArgs e) { handleDecimalFormat(); } private void AssignGroupBoxScriptText() { if (radioButtonVariableValue.Checked) { groupBoxScript.Text = "Keep running this Script"; } else { groupBoxScript.Text = "Run this Script"; } } private void radioButtonVariableValue_CheckedChanged(object sender, EventArgs e) { groupBoxVariable.Visible = true; groupBoxValue.Visible = true; buttonAdd_logic(); AssignGroupBoxScriptText(); } private void radioButtonMapChange_CheckedChanged(object sender, EventArgs e) { groupBoxVariable.Visible = false; groupBoxValue.Visible = false; buttonAdd_logic(); AssignGroupBoxScriptText(); } private void radioButtonScreenReset_CheckedChanged(object sender, EventArgs e) { groupBoxVariable.Visible = false; groupBoxValue.Visible = false; buttonAdd_logic(); AssignGroupBoxScriptText(); } private void radioButtonLoadGame_CheckedChanged(object sender, EventArgs e) { groupBoxVariable.Visible = false; groupBoxValue.Visible = false; buttonAdd_logic(); AssignGroupBoxScriptText(); } void textBoxScriptID_TextChanged(object sender, EventArgs e) { buttonAdd_logic(); } void textBoxVariableName_TextChanged(object sender, EventArgs e) { buttonAdd_logic(); } void textBoxVariableValue_TextChanged(object sender, EventArgs e) { buttonAdd_logic(); } } } ================================================ FILE: DS_Map/Editors/LevelScriptEditor.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 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO wAAADsABataJCQAAAGJJREFUOE9j+P//P1bMMEXuHxD/Z5gm+x/ExqYGhLEKgjDYgAUK/8F41AD8BoAV gkIbAwNDH24AJCawYhSFpGJQFFPBACzOAmMkg/F5AVvAgDBYEm7AaEIi3wBEwsJhwH8GAOQLbolFp0OS AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO wQAADsEBuJFr7QAAAI5JREFUSEtjGAXkAsOQtP8wDBWiHwBZmrbpJhhDHdACkaExgPkYZjkImydXwLFt YRdODDWCPIDNYmy4/OJ/rBjqANJDiVKLYZgsB1DDYhimeghgswQfJtsBUNDi0TjvPwhjM5wYTKkDYACr Q2Bi+DC1HAADYIcgOwAkRiSmHkD2IZBLXcNJALTx3QgCDAwAJg2KYP9PC1YAAAAASUVORK5CYII= ================================================ FILE: DS_Map/Editors/MoveDataEditor.Designer.cs ================================================ namespace DSPRE { partial class MoveDataEditor { /// /// 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(MoveDataEditor)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.saveDataButton = new System.Windows.Forms.Button(); this.moveNumberNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.moveNameInputComboBox = new DSPRE.InputComboBox(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); this.prioPictureBox = new System.Windows.Forms.PictureBox(); this.contestAppealNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label6 = new System.Windows.Forms.Label(); this.contestConditionPictureBox = new System.Windows.Forms.PictureBox(); this.contestConditionComboBox = new System.Windows.Forms.ComboBox(); this.label3 = new System.Windows.Forms.Label(); this.moveSplitPictureBox = new System.Windows.Forms.PictureBox(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.flagsTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.checkBox11 = new System.Windows.Forms.CheckBox(); this.checkBox12 = new System.Windows.Forms.CheckBox(); this.checkBox13 = new System.Windows.Forms.CheckBox(); this.checkBox14 = new System.Windows.Forms.CheckBox(); this.checkBox15 = new System.Windows.Forms.CheckBox(); this.checkBox16 = new System.Windows.Forms.CheckBox(); this.checkBox17 = new System.Windows.Forms.CheckBox(); this.moveTypeComboBox = new System.Windows.Forms.ComboBox(); this.battleSeqComboBox = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.typeLabel = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.moveSplitComboBox = new System.Windows.Forms.ComboBox(); this.moveTypePictureBox = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.rangesTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); this.checkBox20 = new System.Windows.Forms.CheckBox(); this.checkBox19 = new System.Windows.Forms.CheckBox(); this.checkBox2 = new System.Windows.Forms.CheckBox(); this.checkBox3 = new System.Windows.Forms.CheckBox(); this.checkBox4 = new System.Windows.Forms.CheckBox(); this.checkBox5 = new System.Windows.Forms.CheckBox(); this.checkBox6 = new System.Windows.Forms.CheckBox(); this.checkBox7 = new System.Windows.Forms.CheckBox(); this.checkBox8 = new System.Windows.Forms.CheckBox(); this.checkBox9 = new System.Windows.Forms.CheckBox(); this.checkBox10 = new System.Windows.Forms.CheckBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.powerNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label5 = new System.Windows.Forms.Label(); this.accuracyNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label7 = new System.Windows.Forms.Label(); this.priorityNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.ppLabel = new System.Windows.Forms.Label(); this.ppUpDown = new System.Windows.Forms.NumericUpDown(); this.label8 = new System.Windows.Forms.Label(); this.sideEffectProbabilityUpDown = new System.Windows.Forms.NumericUpDown(); this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.moveNumberNumericUpDown)).BeginInit(); this.groupBox3.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.prioPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.contestAppealNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.contestConditionPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.moveSplitPictureBox)).BeginInit(); this.groupBox4.SuspendLayout(); this.flagsTableLayoutPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.moveTypePictureBox)).BeginInit(); this.groupBox1.SuspendLayout(); this.rangesTableLayoutPanel.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.powerNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.accuracyNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.priorityNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ppUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.sideEffectProbabilityUpDown)).BeginInit(); this.SuspendLayout(); // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 4; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 57.02703F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 22.3796F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.43285F)); this.tableLayoutPanel1.Controls.Add(this.saveDataButton, 3, 0); this.tableLayoutPanel1.Controls.Add(this.moveNumberNumericUpDown, 2, 0); this.tableLayoutPanel1.Controls.Add(this.moveNameInputComboBox, 1, 0); this.tableLayoutPanel1.Controls.Add(this.groupBox3, 0, 1); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 5); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 2; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 9.036144F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 90.96385F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(740, 557); this.tableLayoutPanel1.TabIndex = 0; // // saveDataButton // this.saveDataButton.Dock = System.Windows.Forms.DockStyle.Fill; this.saveDataButton.Image = ((System.Drawing.Image)(resources.GetObject("saveDataButton.Image"))); this.saveDataButton.Location = new System.Drawing.Point(664, 3); this.saveDataButton.Name = "saveDataButton"; this.saveDataButton.Size = new System.Drawing.Size(73, 44); this.saveDataButton.TabIndex = 30; this.saveDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveDataButton.UseVisualStyleBackColor = true; this.saveDataButton.Click += new System.EventHandler(this.saveDataButton_Click); // // moveNumberNumericUpDown // this.moveNumberNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.moveNumberNumericUpDown.Location = new System.Drawing.Point(499, 15); this.moveNumberNumericUpDown.Name = "moveNumberNumericUpDown"; this.moveNumberNumericUpDown.Size = new System.Drawing.Size(159, 20); this.moveNumberNumericUpDown.TabIndex = 16; this.moveNumberNumericUpDown.ValueChanged += new System.EventHandler(this.moveNumberNumericUpDown_ValueChanged); // // moveNameInputComboBox // this.moveNameInputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.moveNameInputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.moveNameInputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.moveNameInputComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.moveNameInputComboBox.FormattingEnabled = true; this.moveNameInputComboBox.Location = new System.Drawing.Point(77, 14); this.moveNameInputComboBox.Name = "moveNameInputComboBox"; this.moveNameInputComboBox.Size = new System.Drawing.Size(416, 32); this.moveNameInputComboBox.TabIndex = 31; this.moveNameInputComboBox.SelectedIndexChanged += new System.EventHandler(this.moveNameInputComboBox_SelectedIndexChanged); // // groupBox3 // this.tableLayoutPanel1.SetColumnSpan(this.groupBox3, 4); this.groupBox3.Controls.Add(this.tableLayoutPanel3); this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox3.Location = new System.Drawing.Point(3, 53); this.groupBox3.Name = "groupBox3"; this.groupBox3.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.groupBox3.Size = new System.Drawing.Size(734, 501); this.groupBox3.TabIndex = 33; this.groupBox3.TabStop = false; // // tableLayoutPanel3 // this.tableLayoutPanel3.ColumnCount = 7; this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.22124F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 53.9823F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.91647F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 67F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 252F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 69F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 109F)); this.tableLayoutPanel3.Controls.Add(this.prioPictureBox, 2, 3); this.tableLayoutPanel3.Controls.Add(this.contestAppealNumericUpDown, 4, 2); this.tableLayoutPanel3.Controls.Add(this.label6, 3, 2); this.tableLayoutPanel3.Controls.Add(this.contestConditionPictureBox, 2, 2); this.tableLayoutPanel3.Controls.Add(this.contestConditionComboBox, 1, 2); this.tableLayoutPanel3.Controls.Add(this.label3, 0, 2); this.tableLayoutPanel3.Controls.Add(this.moveSplitPictureBox, 2, 1); this.tableLayoutPanel3.Controls.Add(this.groupBox4, 4, 4); this.tableLayoutPanel3.Controls.Add(this.moveTypeComboBox, 1, 0); this.tableLayoutPanel3.Controls.Add(this.battleSeqComboBox, 4, 0); this.tableLayoutPanel3.Controls.Add(this.label1, 3, 0); this.tableLayoutPanel3.Controls.Add(this.typeLabel, 0, 0); this.tableLayoutPanel3.Controls.Add(this.label2, 0, 1); this.tableLayoutPanel3.Controls.Add(this.moveSplitComboBox, 1, 1); this.tableLayoutPanel3.Controls.Add(this.moveTypePictureBox, 2, 0); this.tableLayoutPanel3.Controls.Add(this.groupBox1, 3, 4); this.tableLayoutPanel3.Controls.Add(this.groupBox2, 0, 4); this.tableLayoutPanel3.Controls.Add(this.label4, 5, 0); this.tableLayoutPanel3.Controls.Add(this.powerNumericUpDown, 6, 0); this.tableLayoutPanel3.Controls.Add(this.label5, 5, 1); this.tableLayoutPanel3.Controls.Add(this.accuracyNumericUpDown, 6, 1); this.tableLayoutPanel3.Controls.Add(this.label7, 0, 3); this.tableLayoutPanel3.Controls.Add(this.priorityNumericUpDown, 1, 3); this.tableLayoutPanel3.Controls.Add(this.ppLabel, 3, 1); this.tableLayoutPanel3.Controls.Add(this.ppUpDown, 4, 1); this.tableLayoutPanel3.Controls.Add(this.label8, 3, 3); this.tableLayoutPanel3.Controls.Add(this.sideEffectProbabilityUpDown, 4, 3); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 13); this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(2); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.Padding = new System.Windows.Forms.Padding(2); this.tableLayoutPanel3.RowCount = 8; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 8.996453F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 8.282195F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.637531F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 8.035714F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 29.6875F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 5.275226F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 31.87116F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel3.Size = new System.Drawing.Size(728, 488); this.tableLayoutPanel3.TabIndex = 32; // // prioPictureBox // this.prioPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.prioPictureBox.Location = new System.Drawing.Point(184, 119); this.prioPictureBox.Name = "prioPictureBox"; this.prioPictureBox.Size = new System.Drawing.Size(41, 31); this.prioPictureBox.TabIndex = 27; this.prioPictureBox.TabStop = false; // // contestAppealNumericUpDown // this.contestAppealNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.contestAppealNumericUpDown.Location = new System.Drawing.Point(298, 88); this.contestAppealNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.contestAppealNumericUpDown.Name = "contestAppealNumericUpDown"; this.contestAppealNumericUpDown.Size = new System.Drawing.Size(246, 20); this.contestAppealNumericUpDown.TabIndex = 24; this.contestAppealNumericUpDown.ValueChanged += new System.EventHandler(this.contestAppealNumericUpDown_ValueChanged); // // label6 // this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(231, 85); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(61, 26); this.label6.TabIndex = 23; this.label6.Text = "Contest Appeal"; this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // contestConditionPictureBox // this.contestConditionPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.contestConditionPictureBox.Location = new System.Drawing.Point(184, 84); this.contestConditionPictureBox.Name = "contestConditionPictureBox"; this.contestConditionPictureBox.Size = new System.Drawing.Size(41, 29); this.contestConditionPictureBox.TabIndex = 22; this.contestConditionPictureBox.TabStop = false; // // contestConditionComboBox // this.contestConditionComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.contestConditionComboBox.FormattingEnabled = true; this.contestConditionComboBox.Location = new System.Drawing.Point(62, 88); this.contestConditionComboBox.Name = "contestConditionComboBox"; this.contestConditionComboBox.Size = new System.Drawing.Size(116, 21); this.contestConditionComboBox.TabIndex = 21; this.contestConditionComboBox.SelectedIndexChanged += new System.EventHandler(this.contestConditionComboBox_SelectedIndexChanged); // // label3 // this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(5, 85); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(51, 26); this.label3.TabIndex = 20; this.label3.Text = "Contest\r\nCondition"; this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // moveSplitPictureBox // this.moveSplitPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.moveSplitPictureBox.Location = new System.Drawing.Point(184, 46); this.moveSplitPictureBox.Name = "moveSplitPictureBox"; this.moveSplitPictureBox.Size = new System.Drawing.Size(41, 32); this.moveSplitPictureBox.TabIndex = 19; this.moveSplitPictureBox.TabStop = false; // // groupBox4 // this.tableLayoutPanel3.SetColumnSpan(this.groupBox4, 4); this.groupBox4.Controls.Add(this.flagsTableLayoutPanel); this.groupBox4.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox4.Location = new System.Drawing.Point(231, 318); this.groupBox4.Name = "groupBox4"; this.groupBox4.Size = new System.Drawing.Size(492, 142); this.groupBox4.TabIndex = 18; this.groupBox4.TabStop = false; this.groupBox4.Text = "Flags"; // // flagsTableLayoutPanel // this.flagsTableLayoutPanel.ColumnCount = 3; this.flagsTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.flagsTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); this.flagsTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); this.flagsTableLayoutPanel.Controls.Add(this.checkBox1, 0, 0); this.flagsTableLayoutPanel.Controls.Add(this.checkBox11, 1, 0); this.flagsTableLayoutPanel.Controls.Add(this.checkBox12, 2, 0); this.flagsTableLayoutPanel.Controls.Add(this.checkBox13, 0, 1); this.flagsTableLayoutPanel.Controls.Add(this.checkBox14, 1, 1); this.flagsTableLayoutPanel.Controls.Add(this.checkBox15, 2, 1); this.flagsTableLayoutPanel.Controls.Add(this.checkBox16, 0, 2); this.flagsTableLayoutPanel.Controls.Add(this.checkBox17, 1, 2); this.flagsTableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.flagsTableLayoutPanel.Location = new System.Drawing.Point(3, 16); this.flagsTableLayoutPanel.Name = "flagsTableLayoutPanel"; this.flagsTableLayoutPanel.RowCount = 3; this.flagsTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.flagsTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.flagsTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.flagsTableLayoutPanel.Size = new System.Drawing.Size(486, 123); this.flagsTableLayoutPanel.TabIndex = 11; // // checkBox1 // this.checkBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox1.Location = new System.Drawing.Point(3, 3); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(155, 35); this.checkBox1.TabIndex = 1; this.checkBox1.Text = "checkBox1"; this.checkBox1.UseVisualStyleBackColor = true; // // checkBox11 // this.checkBox11.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox11.Location = new System.Drawing.Point(164, 3); this.checkBox11.Name = "checkBox11"; this.checkBox11.Size = new System.Drawing.Size(156, 35); this.checkBox11.TabIndex = 2; this.checkBox11.Text = "checkBox11"; this.checkBox11.UseVisualStyleBackColor = true; // // checkBox12 // this.checkBox12.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox12.Location = new System.Drawing.Point(326, 3); this.checkBox12.Name = "checkBox12"; this.checkBox12.Size = new System.Drawing.Size(157, 35); this.checkBox12.TabIndex = 3; this.checkBox12.Text = "checkBox12"; this.checkBox12.UseVisualStyleBackColor = true; // // checkBox13 // this.checkBox13.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox13.Location = new System.Drawing.Point(3, 44); this.checkBox13.Name = "checkBox13"; this.checkBox13.Size = new System.Drawing.Size(155, 35); this.checkBox13.TabIndex = 4; this.checkBox13.Text = "checkBox13"; this.checkBox13.UseVisualStyleBackColor = true; // // checkBox14 // this.checkBox14.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox14.Location = new System.Drawing.Point(164, 44); this.checkBox14.Name = "checkBox14"; this.checkBox14.Size = new System.Drawing.Size(156, 35); this.checkBox14.TabIndex = 5; this.checkBox14.Text = "checkBox14"; this.checkBox14.UseVisualStyleBackColor = true; // // checkBox15 // this.checkBox15.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox15.Location = new System.Drawing.Point(326, 44); this.checkBox15.Name = "checkBox15"; this.checkBox15.Size = new System.Drawing.Size(157, 35); this.checkBox15.TabIndex = 6; this.checkBox15.Text = "checkBox15"; this.checkBox15.UseVisualStyleBackColor = true; // // checkBox16 // this.checkBox16.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox16.Location = new System.Drawing.Point(3, 85); this.checkBox16.Name = "checkBox16"; this.checkBox16.Size = new System.Drawing.Size(155, 35); this.checkBox16.TabIndex = 7; this.checkBox16.Text = "checkBox16"; this.checkBox16.UseVisualStyleBackColor = true; // // checkBox17 // this.checkBox17.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox17.Location = new System.Drawing.Point(164, 85); this.checkBox17.Name = "checkBox17"; this.checkBox17.Size = new System.Drawing.Size(156, 35); this.checkBox17.TabIndex = 8; this.checkBox17.Text = "checkBox17"; this.checkBox17.UseVisualStyleBackColor = true; // // moveTypeComboBox // this.moveTypeComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.moveTypeComboBox.FormattingEnabled = true; this.moveTypeComboBox.Location = new System.Drawing.Point(62, 12); this.moveTypeComboBox.Name = "moveTypeComboBox"; this.moveTypeComboBox.Size = new System.Drawing.Size(116, 21); this.moveTypeComboBox.TabIndex = 7; this.moveTypeComboBox.SelectedIndexChanged += new System.EventHandler(this.moveTypeComboBox_SelectedIndexChanged); // // battleSeqComboBox // this.battleSeqComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.battleSeqComboBox.FormattingEnabled = true; this.battleSeqComboBox.Location = new System.Drawing.Point(298, 12); this.battleSeqComboBox.Name = "battleSeqComboBox"; this.battleSeqComboBox.Size = new System.Drawing.Size(246, 21); this.battleSeqComboBox.TabIndex = 0; this.battleSeqComboBox.SelectedIndexChanged += new System.EventHandler(this.battleSeqComboBox_SelectedIndexChanged); // // label1 // this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(231, 9); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(61, 26); this.label1.TabIndex = 1; this.label1.Text = "Effect Sequence"; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // typeLabel // this.typeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.typeLabel.AutoSize = true; this.typeLabel.Location = new System.Drawing.Point(5, 16); this.typeLabel.Name = "typeLabel"; this.typeLabel.Size = new System.Drawing.Size(51, 13); this.typeLabel.TabIndex = 2; this.typeLabel.Text = "Type"; this.typeLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // label2 // this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(5, 55); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(51, 13); this.label2.TabIndex = 5; this.label2.Text = "Split"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // moveSplitComboBox // this.moveSplitComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.moveSplitComboBox.FormattingEnabled = true; this.moveSplitComboBox.Location = new System.Drawing.Point(62, 51); this.moveSplitComboBox.Name = "moveSplitComboBox"; this.moveSplitComboBox.Size = new System.Drawing.Size(116, 21); this.moveSplitComboBox.TabIndex = 6; this.moveSplitComboBox.SelectedIndexChanged += new System.EventHandler(this.moveSplitComboBox_SelectedIndexChanged); // // moveTypePictureBox // this.moveTypePictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.moveTypePictureBox.Location = new System.Drawing.Point(184, 5); this.moveTypePictureBox.Name = "moveTypePictureBox"; this.moveTypePictureBox.Size = new System.Drawing.Size(41, 35); this.moveTypePictureBox.TabIndex = 3; this.moveTypePictureBox.TabStop = false; // // groupBox1 // this.tableLayoutPanel3.SetColumnSpan(this.groupBox1, 4); this.groupBox1.Controls.Add(this.rangesTableLayoutPanel); this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox1.Location = new System.Drawing.Point(231, 156); this.groupBox1.Name = "groupBox1"; this.tableLayoutPanel3.SetRowSpan(this.groupBox1, 2); this.groupBox1.Size = new System.Drawing.Size(492, 156); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; this.groupBox1.Text = "Range of action"; // // rangesTableLayoutPanel // this.rangesTableLayoutPanel.ColumnCount = 3; this.rangesTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); this.rangesTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); this.rangesTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); this.rangesTableLayoutPanel.Controls.Add(this.checkBox20, 1, 3); this.rangesTableLayoutPanel.Controls.Add(this.checkBox19, 0, 3); this.rangesTableLayoutPanel.Controls.Add(this.checkBox2, 0, 0); this.rangesTableLayoutPanel.Controls.Add(this.checkBox3, 1, 0); this.rangesTableLayoutPanel.Controls.Add(this.checkBox4, 2, 0); this.rangesTableLayoutPanel.Controls.Add(this.checkBox5, 0, 1); this.rangesTableLayoutPanel.Controls.Add(this.checkBox6, 1, 1); this.rangesTableLayoutPanel.Controls.Add(this.checkBox7, 2, 1); this.rangesTableLayoutPanel.Controls.Add(this.checkBox8, 0, 2); this.rangesTableLayoutPanel.Controls.Add(this.checkBox9, 1, 2); this.rangesTableLayoutPanel.Controls.Add(this.checkBox10, 2, 2); this.rangesTableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.rangesTableLayoutPanel.Location = new System.Drawing.Point(3, 16); this.rangesTableLayoutPanel.Name = "rangesTableLayoutPanel"; this.rangesTableLayoutPanel.RowCount = 4; this.rangesTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.rangesTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.rangesTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.rangesTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.rangesTableLayoutPanel.Size = new System.Drawing.Size(486, 137); this.rangesTableLayoutPanel.TabIndex = 11; // // checkBox20 // this.checkBox20.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox20.Location = new System.Drawing.Point(164, 105); this.checkBox20.Name = "checkBox20"; this.checkBox20.Size = new System.Drawing.Size(156, 29); this.checkBox20.TabIndex = 11; this.checkBox20.Text = "checkBox20"; this.checkBox20.UseVisualStyleBackColor = true; // // checkBox19 // this.checkBox19.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox19.Location = new System.Drawing.Point(3, 105); this.checkBox19.Name = "checkBox19"; this.checkBox19.Size = new System.Drawing.Size(155, 29); this.checkBox19.TabIndex = 10; this.checkBox19.Text = "checkBox19"; this.checkBox19.UseVisualStyleBackColor = true; // // checkBox2 // this.checkBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox2.Location = new System.Drawing.Point(3, 3); this.checkBox2.Name = "checkBox2"; this.checkBox2.Size = new System.Drawing.Size(155, 28); this.checkBox2.TabIndex = 1; this.checkBox2.Text = "checkBox2"; this.checkBox2.UseVisualStyleBackColor = true; // // checkBox3 // this.checkBox3.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox3.Location = new System.Drawing.Point(164, 3); this.checkBox3.Name = "checkBox3"; this.checkBox3.Size = new System.Drawing.Size(156, 28); this.checkBox3.TabIndex = 2; this.checkBox3.Text = "checkBox3"; this.checkBox3.UseVisualStyleBackColor = true; // // checkBox4 // this.checkBox4.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox4.Location = new System.Drawing.Point(326, 3); this.checkBox4.Name = "checkBox4"; this.checkBox4.Size = new System.Drawing.Size(157, 28); this.checkBox4.TabIndex = 3; this.checkBox4.Text = "checkBox4"; this.checkBox4.UseVisualStyleBackColor = true; // // checkBox5 // this.checkBox5.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox5.Location = new System.Drawing.Point(3, 37); this.checkBox5.Name = "checkBox5"; this.checkBox5.Size = new System.Drawing.Size(155, 28); this.checkBox5.TabIndex = 4; this.checkBox5.Text = "checkBox5"; this.checkBox5.UseVisualStyleBackColor = true; // // checkBox6 // this.checkBox6.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox6.Location = new System.Drawing.Point(164, 37); this.checkBox6.Name = "checkBox6"; this.checkBox6.Size = new System.Drawing.Size(156, 28); this.checkBox6.TabIndex = 5; this.checkBox6.Text = "checkBox6"; this.checkBox6.UseVisualStyleBackColor = true; // // checkBox7 // this.checkBox7.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox7.Location = new System.Drawing.Point(326, 37); this.checkBox7.Name = "checkBox7"; this.checkBox7.Size = new System.Drawing.Size(157, 28); this.checkBox7.TabIndex = 6; this.checkBox7.Text = "checkBox7"; this.checkBox7.UseVisualStyleBackColor = true; // // checkBox8 // this.checkBox8.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox8.Location = new System.Drawing.Point(3, 71); this.checkBox8.Name = "checkBox8"; this.checkBox8.Size = new System.Drawing.Size(155, 28); this.checkBox8.TabIndex = 7; this.checkBox8.Text = "checkBox8"; this.checkBox8.UseVisualStyleBackColor = true; // // checkBox9 // this.checkBox9.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox9.Location = new System.Drawing.Point(164, 71); this.checkBox9.Name = "checkBox9"; this.checkBox9.Size = new System.Drawing.Size(156, 28); this.checkBox9.TabIndex = 8; this.checkBox9.Text = "checkBox9"; this.checkBox9.UseVisualStyleBackColor = true; // // checkBox10 // this.checkBox10.Dock = System.Windows.Forms.DockStyle.Fill; this.checkBox10.Location = new System.Drawing.Point(326, 71); this.checkBox10.Name = "checkBox10"; this.checkBox10.Size = new System.Drawing.Size(157, 28); this.checkBox10.TabIndex = 9; this.checkBox10.Text = "checkBox10"; this.checkBox10.UseVisualStyleBackColor = true; // // groupBox2 // this.tableLayoutPanel3.SetColumnSpan(this.groupBox2, 3); this.groupBox2.Controls.Add(this.textBox1); this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox2.Location = new System.Drawing.Point(5, 156); this.groupBox2.Name = "groupBox2"; this.tableLayoutPanel3.SetRowSpan(this.groupBox2, 3); this.groupBox2.Size = new System.Drawing.Size(220, 304); this.groupBox2.TabIndex = 17; this.groupBox2.TabStop = false; this.groupBox2.Text = "Description"; // // textBox1 // this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.textBox1.Font = new System.Drawing.Font("Pokemon DPPt", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.textBox1.Location = new System.Drawing.Point(3, 16); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.ReadOnly = true; this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.textBox1.Size = new System.Drawing.Size(214, 285); this.textBox1.TabIndex = 0; // // label4 // this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(550, 16); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(63, 13); this.label4.TabIndex = 13; this.label4.Text = "Power"; this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // powerNumericUpDown // this.powerNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.powerNumericUpDown.Location = new System.Drawing.Point(619, 12); this.powerNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.powerNumericUpDown.Name = "powerNumericUpDown"; this.powerNumericUpDown.Size = new System.Drawing.Size(104, 20); this.powerNumericUpDown.TabIndex = 14; this.powerNumericUpDown.ValueChanged += new System.EventHandler(this.powerNumericUpDown_ValueChanged); // // label5 // this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(550, 55); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(63, 13); this.label5.TabIndex = 15; this.label5.Text = "Accuracy"; this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // accuracyNumericUpDown // this.accuracyNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.accuracyNumericUpDown.Location = new System.Drawing.Point(619, 52); this.accuracyNumericUpDown.Name = "accuracyNumericUpDown"; this.accuracyNumericUpDown.Size = new System.Drawing.Size(104, 20); this.accuracyNumericUpDown.TabIndex = 16; this.accuracyNumericUpDown.ValueChanged += new System.EventHandler(this.accuracyNumericUpDown_ValueChanged); // // label7 // this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(5, 128); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(51, 13); this.label7.TabIndex = 25; this.label7.Text = "Priority"; this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // priorityNumericUpDown // this.priorityNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.priorityNumericUpDown.Location = new System.Drawing.Point(62, 124); this.priorityNumericUpDown.Maximum = new decimal(new int[] { 32, 0, 0, 0}); this.priorityNumericUpDown.Minimum = new decimal(new int[] { 32, 0, 0, -2147483648}); this.priorityNumericUpDown.Name = "priorityNumericUpDown"; this.priorityNumericUpDown.Size = new System.Drawing.Size(116, 20); this.priorityNumericUpDown.TabIndex = 26; this.priorityNumericUpDown.ValueChanged += new System.EventHandler(this.priorityNumericUpDown_ValueChanged); // // ppLabel // this.ppLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.ppLabel.AutoSize = true; this.ppLabel.Location = new System.Drawing.Point(231, 55); this.ppLabel.Name = "ppLabel"; this.ppLabel.Size = new System.Drawing.Size(61, 13); this.ppLabel.TabIndex = 4; this.ppLabel.Text = "PP"; this.ppLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // ppUpDown // this.ppUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.ppUpDown.Location = new System.Drawing.Point(298, 52); this.ppUpDown.Name = "ppUpDown"; this.ppUpDown.Size = new System.Drawing.Size(246, 20); this.ppUpDown.TabIndex = 8; this.ppUpDown.ValueChanged += new System.EventHandler(this.ppUpDown_ValueChanged); // // label8 // this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(231, 121); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(61, 26); this.label8.TabIndex = 28; this.label8.Text = "Side Effect Probability"; this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // sideEffectProbabilityUpDown // this.sideEffectProbabilityUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.sideEffectProbabilityUpDown.Location = new System.Drawing.Point(298, 124); this.sideEffectProbabilityUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.sideEffectProbabilityUpDown.Name = "sideEffectProbabilityUpDown"; this.sideEffectProbabilityUpDown.Size = new System.Drawing.Size(246, 20); this.sideEffectProbabilityUpDown.TabIndex = 29; this.sideEffectProbabilityUpDown.ValueChanged += new System.EventHandler(this.sideEffectUpDown_ValueChanged); // // MoveDataEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(750, 567); this.Controls.Add(this.tableLayoutPanel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "MoveDataEditor"; this.Padding = new System.Windows.Forms.Padding(5); this.Text = "Move Data Editor"; this.tableLayoutPanel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.moveNumberNumericUpDown)).EndInit(); this.groupBox3.ResumeLayout(false); this.tableLayoutPanel3.ResumeLayout(false); this.tableLayoutPanel3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.prioPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.contestAppealNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.contestConditionPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.moveSplitPictureBox)).EndInit(); this.groupBox4.ResumeLayout(false); this.flagsTableLayoutPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.moveTypePictureBox)).EndInit(); this.groupBox1.ResumeLayout(false); this.rangesTableLayoutPanel.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.powerNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.accuracyNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.priorityNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ppUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.sideEffectProbabilityUpDown)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.NumericUpDown moveNumberNumericUpDown; private System.Windows.Forms.Button saveDataButton; private InputComboBox moveNameInputComboBox; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; private System.Windows.Forms.ComboBox battleSeqComboBox; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label typeLabel; private System.Windows.Forms.PictureBox moveTypePictureBox; private System.Windows.Forms.Label ppLabel; private System.Windows.Forms.Label label2; private System.Windows.Forms.ComboBox moveSplitComboBox; private System.Windows.Forms.ComboBox moveTypeComboBox; private System.Windows.Forms.NumericUpDown ppUpDown; private System.Windows.Forms.CheckBox checkBox2; private System.Windows.Forms.CheckBox checkBox3; private System.Windows.Forms.CheckBox checkBox4; private System.Windows.Forms.CheckBox checkBox5; private System.Windows.Forms.CheckBox checkBox6; private System.Windows.Forms.CheckBox checkBox7; private System.Windows.Forms.CheckBox checkBox8; private System.Windows.Forms.CheckBox checkBox9; private System.Windows.Forms.CheckBox checkBox10; private System.Windows.Forms.TableLayoutPanel rangesTableLayoutPanel; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Label label4; private System.Windows.Forms.NumericUpDown powerNumericUpDown; private System.Windows.Forms.Label label5; private System.Windows.Forms.NumericUpDown accuracyNumericUpDown; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.TableLayoutPanel flagsTableLayoutPanel; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.CheckBox checkBox11; private System.Windows.Forms.CheckBox checkBox12; private System.Windows.Forms.CheckBox checkBox13; private System.Windows.Forms.CheckBox checkBox14; private System.Windows.Forms.CheckBox checkBox15; private System.Windows.Forms.CheckBox checkBox16; private System.Windows.Forms.CheckBox checkBox17; private System.Windows.Forms.CheckBox checkBox20; private System.Windows.Forms.CheckBox checkBox19; private System.Windows.Forms.PictureBox moveSplitPictureBox; private System.Windows.Forms.NumericUpDown contestAppealNumericUpDown; private System.Windows.Forms.Label label6; private System.Windows.Forms.PictureBox contestConditionPictureBox; private System.Windows.Forms.ComboBox contestConditionComboBox; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label7; private System.Windows.Forms.NumericUpDown priorityNumericUpDown; private System.Windows.Forms.PictureBox prioPictureBox; private System.Windows.Forms.Label label8; private System.Windows.Forms.NumericUpDown sideEffectProbabilityUpDown; } } ================================================ FILE: DS_Map/Editors/MoveDataEditor.cs ================================================ using DSPRE.Resources; using DSPRE.ROMFiles; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; using static DSPRE.MoveData; using MessageBox = System.Windows.Forms.MessageBox; namespace DSPRE { public partial class MoveDataEditor : Form { private bool disableHandlers = false; private readonly string[] fileNames; private readonly string[] moveDescriptions; private int currentLoadedId = 0; private MoveData currentLoadedFile = null; private static bool dirty = false; private static readonly string formName = "Move Data Editor"; public MoveDataEditor(string[] fileNames, string[] moveDescriptions) { this.fileNames = fileNames.ToArray(); this.moveDescriptions = moveDescriptions; InitializeComponent(); disableHandlers = true; moveNumberNumericUpDown.Maximum = fileNames.Length - 1; moveNameInputComboBox.Items.AddRange(this.fileNames); string[] battleSequenceFiles = RomInfo.GetBattleEffectSequenceFiles(); for (int i = 0; i < battleSequenceFiles.Length; i++) { string[] db = PokeDatabase.MoveData.battleSequenceDescriptions; if (i >= db.Length || db[i] is null) { battleSeqComboBox.Items.Add($"{i:D3} - Undocumented"); } else { battleSeqComboBox.Items.Add(db[i]); } } moveSplitComboBox.Items.AddRange(Enum.GetNames(typeof(MoveData.MoveSplit))); string[] names = Enum.GetNames(typeof(MoveData.AttackRange)); System.Collections.IList list = rangesTableLayoutPanel.Controls; for (int i = 0; i < list.Count; i++) { CheckBox cb = list[i] as CheckBox; cb.Text = names[i + 1]; cb.CheckedChanged += AttackRangeCheckBox_CheckedChanged; } names = Enum.GetNames(typeof(MoveData.MoveFlags)); list = flagsTableLayoutPanel.Controls; for (int i = 0; i < list.Count; i++) { CheckBox cb = list[i] as CheckBox; cb.Text = names[i]; cb.CheckedChanged += FlagsCheckBox_CheckedChanged; } contestConditionComboBox.Items.AddRange(Enum.GetNames(typeof(MoveData.ContestCondition))); moveTypeComboBox.Items.AddRange(Enum.GetNames(typeof(PokemonType))); disableHandlers = false; moveNameInputComboBox.SelectedIndex = 1; } private void setDirty(bool status) { if (status) { dirty = true; this.Text = formName + "*"; } else { dirty = false; this.Text = formName; } } private bool CheckDiscardChanges() { if (!dirty) { return true; } DialogResult res = MessageBox.Show(this, "There are unsaved changes to the current Move data.\nDiscard and proceed?", "Unsaved changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (res.Equals(DialogResult.Yes)) { return true; } moveNumberNumericUpDown.Value = currentLoadedId; moveNameInputComboBox.SelectedIndex = currentLoadedId; return false; } private void ChangeLoadedFile(int toLoad) { currentLoadedId = toLoad; currentLoadedFile = new MoveData(toLoad); PopulateAllFromCurrentFile(); setDirty(false); } private void PopulateAllFromCurrentFile() { moveTypeComboBox.SelectedIndex = (int)currentLoadedFile.movetype; System.Collections.IList list = rangesTableLayoutPanel.Controls; for (int i = 0; i < list.Count; i++) { (list[i] as CheckBox).Checked = ((currentLoadedFile.target & (1 << i)) != 0); } list = flagsTableLayoutPanel.Controls; for (int i = 0; i < list.Count; i++) { (list[i] as CheckBox).Checked = ((currentLoadedFile.flagField & (1 << i)) != 0); } textBox1.Text = moveDescriptions[currentLoadedId]; battleSeqComboBox.SelectedIndex = (int)currentLoadedFile.battleeffect; moveSplitComboBox.SelectedIndex = (int)currentLoadedFile.split; sideEffectProbabilityUpDown.Value = currentLoadedFile.sideEffectProbability; contestConditionComboBox.SelectedIndex = (int)currentLoadedFile.contestConditionType; contestAppealNumericUpDown.Value = currentLoadedFile.contestAppeal; priorityNumericUpDown.Value = currentLoadedFile.priority; powerNumericUpDown.Value = currentLoadedFile.damage; accuracyNumericUpDown.Value = currentLoadedFile.accuracy; ppUpDown.Value = currentLoadedFile.pp; } //------------------------------- private void saveDataButton_Click(object sender, EventArgs e) { currentLoadedFile.SaveToFileDefaultDir(currentLoadedId, true); setDirty(false); } private void FlagsCheckBox_CheckedChanged(object sender, EventArgs e) { if (disableHandlers) { return; } disableHandlers = true; System.Collections.IList list = flagsTableLayoutPanel.Controls; currentLoadedFile.flagField = 0; for (int i = 0; i < list.Count; i++) { int en = (list[i] as CheckBox).Checked ? 1 : 0; currentLoadedFile.flagField |= (byte)(en << i); } setDirty(true); disableHandlers = false; } private void AttackRangeCheckBox_CheckedChanged(object sender, EventArgs e) { if (disableHandlers) { return; } disableHandlers = true; System.Collections.IList list = rangesTableLayoutPanel.Controls; currentLoadedFile.target = 0; for (int i = 0; i < list.Count; i++) { int en = (list[i] as CheckBox).Checked ? 1 : 0; currentLoadedFile.target |= (ushort)(en << i); } setDirty(true); disableHandlers = false; } private void moveNameInputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (disableHandlers) { return; } disableHandlers = true; if (CheckDiscardChanges()) { int newNumber = moveNameInputComboBox.SelectedIndex; moveNumberNumericUpDown.Value = newNumber; ChangeLoadedFile(newNumber); } disableHandlers = false; } private void moveNumberNumericUpDown_ValueChanged(object sender, EventArgs e) { if (disableHandlers) { return; } disableHandlers = true; if (CheckDiscardChanges()) { int newNumber = (int)moveNumberNumericUpDown.Value; moveNameInputComboBox.SelectedIndex = newNumber; ChangeLoadedFile(newNumber); } disableHandlers = false; } private void saveToFileToolStripMenuItem_Click(object sender, EventArgs e) { string suggestedFilename = this.fileNames[currentLoadedId]; currentLoadedFile.SaveToFileExplorePath(suggestedFilename, true); } private void ppUpDown_ValueChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.pp = (byte)ppUpDown.Value; setDirty(true); } private void moveSplitComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.split = (MoveSplit)moveSplitComboBox.SelectedIndex; setDirty(true); } private void moveTypeComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.movetype = (PokemonType)moveTypeComboBox.SelectedIndex; setDirty(true); } private void battleSeqComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.battleeffect = (ushort)battleSeqComboBox.SelectedIndex; setDirty(true); } private void contestConditionComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.contestConditionType = (ContestCondition)contestConditionComboBox.SelectedIndex; setDirty(true); } private void contestAppealNumericUpDown_ValueChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.contestAppeal = (byte)contestAppealNumericUpDown.Value; setDirty(true); } private void powerNumericUpDown_ValueChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.damage = (byte)powerNumericUpDown.Value; setDirty(true); } private void accuracyNumericUpDown_ValueChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.accuracy = (byte)accuracyNumericUpDown.Value; setDirty(true); } private void priorityNumericUpDown_ValueChanged(object sender, EventArgs e) { if (currentLoadedFile.priority == 0) { prioPictureBox.Image = null; } else if (currentLoadedFile.priority > 0) { prioPictureBox.Image = Properties.Resources.addIcon; } else { prioPictureBox.Image = Properties.Resources.deleteIcon; } if (disableHandlers) { return; } currentLoadedFile.priority = (sbyte)priorityNumericUpDown.Value; setDirty(true); } private void sideEffectUpDown_ValueChanged(object sender, EventArgs e) { if (disableHandlers) { return; } currentLoadedFile.sideEffectProbability = (byte)sideEffectProbabilityUpDown.Value; setDirty(true); } } } ================================================ FILE: DS_Map/Editors/MoveDataEditor.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 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAacSURBVFhHxZd5bFRVGMX5Aw24VmtbI4lGoyHGYPSP mqgoEQg0SqELbVEiGiWAqIS1lha6sdTK0oWyiAYQTBVQBEqrgEaIghAKDaC1te1M91k7nZnXmS4z0+N3 7rQDtTMmNia85Mx777v3/s5533uzjQJwS+V/8W+3ReVUmMOzK3B/VjnCMstx19py3LGmHGNHKK4lgywy yY7MKjsqXqP9lrINBKC5Jfu8A1VWH65YfDhv9MrQ/7ORRSbZ9Ihce7RMPP0hZJy7MKarsfkwOr8WYzfX YdTGGlitHdC1W1DfNjJxLRlkkUk2PeglnnfTeDBAJFt01epFWKEOY+IyMHarDna7DY0mCWEUmWz+vahB yRo4D1bjeaPJqhhkkUk2PeglnhE0vilABSpNHkSVNOKe2Zm4t6gRmtOBVqsDbZ1utDu60Wp3o8XmQnNH l0hDa6dLFKzGcw0tFjucDodikUk2PehFTxrfCCBtOdfWi3Hb9Xhw+UGEF+uhaU4Y7C6kzE7E6ynJ2Lm9 BNu3FWNbUQEMjh4kJcZjR8m2ILViFBcWoM2myUU4FYtMsulBL3rSOBCA9+VMcy8e2dGAJz7VI6q4Hq6u LhXA1NUHs9ur9gatVxmxI0Y5NmpSc/prBqmZ5Jx1jrfbuhSDLDLJpsfAMzA8wOnGHjy+swFP7tZhXIkE cLlhFJDZ5YW1G7L3SQgvjF2eG3L6A3COxd0fmKNCye0hgywyyaZH0AAPSPFEQ4+aOOFznUrb090Nq6sP ydLWOclJ/nYXF6EkoEIUF2yVcP0yJyEwh/Wigi0waz3oFgZZZJJND3rRk8ZDAhyrd8tEPZ7Zo8dju3To 6emFRdre0QPY+qD2NGM3/OqHRa6YV//POayZpQtkkEUm2fQIGeBwrRvP7tUjep8e43c3oK/Pgw65950C pgjvEGO7HDvkc2qwRkMes869rXcgoMujGGSRSTY9ggfIqUBptQvPfdGE5/c34ilpmcfjhV1giXEzA211 eICkhHikJCXK01+kanapJcbPGrg9heodUbhlM2zdPsUgi0yy6UEvetI4ECBCivv/cOHFA8146csm1TKv V65s4OoGr8wmV8wQTukAjVljF1QH5DwwV2o2eSg9nn7FIpNsetCLnjQeEmDv7xomlbZgsiha0nKT24hO GlDSVpsocB6qNlB3yp4bWWSSTY+QAT67qmHqVy2Y/rVMlsSndG4F8PWPTNzIIItMsukRMsAuGYw52IrX DrXi1YMtmFLajJdl8cQDIxPXkkEWmWTTI2SA7VUaYg+3Ie7bNsSLZn3ThplyPuNw64jEtWSQRSbZ9AgZ oPiKhoQj7Zj9XTuSRDyOFUDMoTZMk/T/RVzDtWSQRSaP6RE0QKQUCyo1JB81YM4xv+KPGFBaaQC88lj3 iTzymHvl8ad4zFooyRquJWOQRzY96EVPGg8JsPWShrnHDXizzKD2cZIYXg+u1ptwVdeB6hYNfxm7lapb nKpWVW8WmYaqTubLHj6PYtzMpEfIAJsuOTGv3Ii3RPNOGJEgbePVXtfZYJKPvozsPEybOhnTpryC9Mx1 qnZd34lrMn5df0M8vybhuJYMshRTRI+QAT655MC735swX/ROhQnJ0jZCqpsd4Fs6ZnoMlqXlinKwcEka 5INOjVU324erqVOtJYMsMsmmR8gAH1/UsPCkBYtOmrHgBzPeKDNKG72oadUgdxyxM2Kxam0eVq7ZgPeX r0WvvNc5VtPqHK4Wh6z1KQZZZJJNj5ABNl504IPTZqXFp8yqZej3oU7uOX8jx8XFIy07Hx9l5mPJqmzI o6bG6gyuoOJaMsga5NIjZIANMrj0J6vIgiU/WlTLhAKduVde5QsncTYy1m1Ges4mLF+dq0JxTGfqHi4J xrVkkEUm2fT4lwAaUs/akHqmAyt+tmLRKYsMQ350elSApOQUrFm/BWskxMqM9ZBHAM0y1tTRN1TWPjRb 5UtENjLIIpNsegQNEJVV1pl/2Y11FzTk/uaUPxBOrDhrVxCTpnZISExEWmYeVmflITU9V9WMTshvweEy ibiRQRaZZNMjYuWBs+I55Gd5mCg6KvO4nemo8Oxy3J5ehmvXanHu8p/45XIN3p6/4L2lq1IXf7hs2eK5 G/fsuFBVi18rZSyIzom4lgyyBrkRy/edE6+nRUP+mNwmekgULZosmhJEL4jGix4WPSqaIJooCjY3lCaJ aM6rH/LXjBtDsBO8N8F0n2iMiAs5905RuCjY3FCiMa982J/TW7SNGvU3iJOEw8UaLRYAAAAASUVORK5C YII= 45 AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/Editors/SafariZoneEditor.Designer.cs ================================================  namespace DSPRE.Editors { partial class SafariZoneEditor { /// /// 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 Component 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(SafariZoneEditor)); this.buttonSaveAs = new System.Windows.Forms.Button(); this.buttonSave = new System.Windows.Forms.Button(); this.tabPageSuperRod = new System.Windows.Forms.TabPage(); this.safariZoneEncounterGroupEditorSuperRod = new DSPRE.Editors.SafariZoneEncounterGroupEditor(); this.tabPageGoodRod = new System.Windows.Forms.TabPage(); this.safariZoneEncounterGroupEditorGoodRod = new DSPRE.Editors.SafariZoneEncounterGroupEditor(); this.tabPageOldRod = new System.Windows.Forms.TabPage(); this.safariZoneEncounterGroupEditorOldRod = new DSPRE.Editors.SafariZoneEncounterGroupEditor(); this.tabPageSurf = new System.Windows.Forms.TabPage(); this.safariZoneEncounterGroupEditorSurf = new DSPRE.Editors.SafariZoneEncounterGroupEditor(); this.tabPageGrass = new System.Windows.Forms.TabPage(); this.safariZoneEncounterGroupEditorGrass = new DSPRE.Editors.SafariZoneEncounterGroupEditor(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.label1 = new System.Windows.Forms.Label(); this.comboBoxFileID = new System.Windows.Forms.ComboBox(); this.buttonImport = new System.Windows.Forms.Button(); this.tabPageSuperRod.SuspendLayout(); this.tabPageGoodRod.SuspendLayout(); this.tabPageOldRod.SuspendLayout(); this.tabPageSurf.SuspendLayout(); this.tabPageGrass.SuspendLayout(); this.tabControl1.SuspendLayout(); this.SuspendLayout(); // // buttonSaveAs // this.buttonSaveAs.Image = global::DSPRE.Properties.Resources.exportArrow; this.buttonSaveAs.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonSaveAs.Location = new System.Drawing.Point(238, 14); this.buttonSaveAs.Name = "buttonSaveAs"; this.buttonSaveAs.Size = new System.Drawing.Size(82, 24); this.buttonSaveAs.TabIndex = 28; this.buttonSaveAs.Text = "Export"; this.buttonSaveAs.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonSaveAs.UseVisualStyleBackColor = true; this.buttonSaveAs.Click += new System.EventHandler(this.buttonSaveAs_Click); // // buttonSave // this.buttonSave.Image = ((System.Drawing.Image)(resources.GetObject("buttonSave.Image"))); this.buttonSave.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonSave.Location = new System.Drawing.Point(176, 14); this.buttonSave.Name = "buttonSave"; this.buttonSave.Size = new System.Drawing.Size(60, 24); this.buttonSave.TabIndex = 28; this.buttonSave.Text = "Save"; this.buttonSave.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonSave.UseVisualStyleBackColor = true; this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); // // tabPageSuperRod // this.tabPageSuperRod.Controls.Add(this.safariZoneEncounterGroupEditorSuperRod); this.tabPageSuperRod.Location = new System.Drawing.Point(4, 22); this.tabPageSuperRod.Name = "tabPageSuperRod"; this.tabPageSuperRod.Padding = new System.Windows.Forms.Padding(3); this.tabPageSuperRod.Size = new System.Drawing.Size(935, 264); this.tabPageSuperRod.TabIndex = 4; this.tabPageSuperRod.Text = "Super Rod"; this.tabPageSuperRod.UseVisualStyleBackColor = true; // // safariZoneEncounterGroupEditorSuperRod // this.safariZoneEncounterGroupEditorSuperRod.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterGroupEditorSuperRod.Name = "safariZoneEncounterGroupEditorSuperRod"; this.safariZoneEncounterGroupEditorSuperRod.Size = new System.Drawing.Size(969, 255); this.safariZoneEncounterGroupEditorSuperRod.TabIndex = 25; // // tabPageGoodRod // this.tabPageGoodRod.Controls.Add(this.safariZoneEncounterGroupEditorGoodRod); this.tabPageGoodRod.Location = new System.Drawing.Point(4, 22); this.tabPageGoodRod.Name = "tabPageGoodRod"; this.tabPageGoodRod.Padding = new System.Windows.Forms.Padding(3); this.tabPageGoodRod.Size = new System.Drawing.Size(935, 264); this.tabPageGoodRod.TabIndex = 3; this.tabPageGoodRod.Text = "Good Rod"; this.tabPageGoodRod.UseVisualStyleBackColor = true; // // safariZoneEncounterGroupEditorGoodRod // this.safariZoneEncounterGroupEditorGoodRod.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterGroupEditorGoodRod.Name = "safariZoneEncounterGroupEditorGoodRod"; this.safariZoneEncounterGroupEditorGoodRod.Size = new System.Drawing.Size(969, 255); this.safariZoneEncounterGroupEditorGoodRod.TabIndex = 25; // // tabPageOldRod // this.tabPageOldRod.Controls.Add(this.safariZoneEncounterGroupEditorOldRod); this.tabPageOldRod.Location = new System.Drawing.Point(4, 22); this.tabPageOldRod.Name = "tabPageOldRod"; this.tabPageOldRod.Padding = new System.Windows.Forms.Padding(3); this.tabPageOldRod.Size = new System.Drawing.Size(935, 264); this.tabPageOldRod.TabIndex = 2; this.tabPageOldRod.Text = "Old Rod"; this.tabPageOldRod.UseVisualStyleBackColor = true; // // safariZoneEncounterGroupEditorOldRod // this.safariZoneEncounterGroupEditorOldRod.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterGroupEditorOldRod.Name = "safariZoneEncounterGroupEditorOldRod"; this.safariZoneEncounterGroupEditorOldRod.Size = new System.Drawing.Size(969, 255); this.safariZoneEncounterGroupEditorOldRod.TabIndex = 25; // // tabPageSurf // this.tabPageSurf.Controls.Add(this.safariZoneEncounterGroupEditorSurf); this.tabPageSurf.Location = new System.Drawing.Point(4, 22); this.tabPageSurf.Name = "tabPageSurf"; this.tabPageSurf.Padding = new System.Windows.Forms.Padding(3); this.tabPageSurf.Size = new System.Drawing.Size(935, 264); this.tabPageSurf.TabIndex = 1; this.tabPageSurf.Text = "Surf"; this.tabPageSurf.UseVisualStyleBackColor = true; // // safariZoneEncounterGroupEditorSurf // this.safariZoneEncounterGroupEditorSurf.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterGroupEditorSurf.Name = "safariZoneEncounterGroupEditorSurf"; this.safariZoneEncounterGroupEditorSurf.Size = new System.Drawing.Size(969, 255); this.safariZoneEncounterGroupEditorSurf.TabIndex = 25; // // tabPageGrass // this.tabPageGrass.Controls.Add(this.safariZoneEncounterGroupEditorGrass); this.tabPageGrass.Location = new System.Drawing.Point(4, 22); this.tabPageGrass.Name = "tabPageGrass"; this.tabPageGrass.Padding = new System.Windows.Forms.Padding(3); this.tabPageGrass.Size = new System.Drawing.Size(935, 264); this.tabPageGrass.TabIndex = 0; this.tabPageGrass.Text = "Grass"; this.tabPageGrass.UseVisualStyleBackColor = true; // // safariZoneEncounterGroupEditorGrass // this.safariZoneEncounterGroupEditorGrass.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterGroupEditorGrass.Name = "safariZoneEncounterGroupEditorGrass"; this.safariZoneEncounterGroupEditorGrass.Size = new System.Drawing.Size(969, 255); this.safariZoneEncounterGroupEditorGrass.TabIndex = 25; // // tabControl1 // this.tabControl1.Controls.Add(this.tabPageGrass); this.tabControl1.Controls.Add(this.tabPageSurf); this.tabControl1.Controls.Add(this.tabPageOldRod); this.tabControl1.Controls.Add(this.tabPageGoodRod); this.tabControl1.Controls.Add(this.tabPageSuperRod); this.tabControl1.Location = new System.Drawing.Point(4, 44); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; this.tabControl1.Size = new System.Drawing.Size(943, 290); this.tabControl1.TabIndex = 27; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(3, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 13); this.label1.TabIndex = 26; this.label1.Text = "Map Name"; // // comboBoxFileID // this.comboBoxFileID.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxFileID.FormattingEnabled = true; this.comboBoxFileID.Location = new System.Drawing.Point(3, 16); this.comboBoxFileID.Name = "comboBoxFileID"; this.comboBoxFileID.Size = new System.Drawing.Size(167, 21); this.comboBoxFileID.TabIndex = 0; this.comboBoxFileID.SelectedIndexChanged += new System.EventHandler(this.comboBoxFileID_SelectedIndexChanged); // // buttonImport // this.buttonImport.Image = global::DSPRE.Properties.Resources.importArrow; this.buttonImport.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonImport.Location = new System.Drawing.Point(322, 14); this.buttonImport.Name = "buttonImport"; this.buttonImport.Size = new System.Drawing.Size(82, 24); this.buttonImport.TabIndex = 28; this.buttonImport.Text = "Import"; this.buttonImport.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonImport.UseVisualStyleBackColor = true; this.buttonImport.Click += new System.EventHandler(this.buttonImport_Click); // // SafariZoneEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.buttonImport); this.Controls.Add(this.buttonSaveAs); this.Controls.Add(this.buttonSave); this.Controls.Add(this.tabControl1); this.Controls.Add(this.label1); this.Controls.Add(this.comboBoxFileID); this.Name = "SafariZoneEditor"; this.Size = new System.Drawing.Size(953, 340); this.tabPageSuperRod.ResumeLayout(false); this.tabPageGoodRod.ResumeLayout(false); this.tabPageOldRod.ResumeLayout(false); this.tabPageSurf.ResumeLayout(false); this.tabPageGrass.ResumeLayout(false); this.tabControl1.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button buttonSaveAs; private System.Windows.Forms.Button buttonSave; private System.Windows.Forms.TabPage tabPageSuperRod; private SafariZoneEncounterGroupEditor safariZoneEncounterGroupEditorSuperRod; private System.Windows.Forms.TabPage tabPageGoodRod; private SafariZoneEncounterGroupEditor safariZoneEncounterGroupEditorGoodRod; private System.Windows.Forms.TabPage tabPageOldRod; private SafariZoneEncounterGroupEditor safariZoneEncounterGroupEditorOldRod; private System.Windows.Forms.TabPage tabPageSurf; private SafariZoneEncounterGroupEditor safariZoneEncounterGroupEditorSurf; private System.Windows.Forms.TabPage tabPageGrass; private SafariZoneEncounterGroupEditor safariZoneEncounterGroupEditorGrass; private System.Windows.Forms.TabControl tabControl1; private System.Windows.Forms.Label label1; private System.Windows.Forms.ComboBox comboBoxFileID; private System.Windows.Forms.Button buttonImport; } } ================================================ FILE: DS_Map/Editors/SafariZoneEditor.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Windows.Forms; using DSPRE.ROMFiles; namespace DSPRE.Editors { public partial class SafariZoneEditor : UserControl { public bool safariZoneEditorIsReady { get; set; } = false; private SafariZoneEncounterFile safariZoneEncounterFile; public SafariZoneEditor() { InitializeComponent(); } public void SetupSafariZoneEditor(bool force = false) { if (safariZoneEditorIsReady && !force){ return; } safariZoneEditorIsReady = true; DSUtils.TryUnpackNarcs(new List() { RomInfo.DirNames.safariZone, RomInfo.DirNames.textArchives, }); safariZoneEncounterGroupEditorGrass.SetPokemonNames(); safariZoneEncounterGroupEditorSurf.SetPokemonNames(); safariZoneEncounterGroupEditorOldRod.SetPokemonNames(); safariZoneEncounterGroupEditorGoodRod.SetPokemonNames(); safariZoneEncounterGroupEditorSuperRod.SetPokemonNames(); int safariZoneCount = Filesystem.GetSafariZoneCount(); comboBoxFileID.Items.Clear(); for (int i = 0; i < safariZoneCount; i++) { comboBoxFileID.Items.Add(SafariZoneEncounterFile.Names[i]); } if (comboBoxFileID.Items.Count > 0) { comboBoxFileID.SelectedIndex = 0; } } private void comboBoxFileID_SelectedIndexChanged(object sender, EventArgs e) { if (comboBoxFileID.SelectedIndex == -1) { safariZoneEncounterFile = null; safariZoneEncounterGroupEditorGrass.Reset(); safariZoneEncounterGroupEditorSurf.Reset(); safariZoneEncounterGroupEditorOldRod.Reset(); safariZoneEncounterGroupEditorGoodRod.Reset(); safariZoneEncounterGroupEditorSuperRod.Reset(); return; } safariZoneEncounterFile = new SafariZoneEncounterFile(comboBoxFileID.SelectedIndex); safariZoneEncounterGroupEditorGrass.SetData(safariZoneEncounterFile.grassEncounterGroup); safariZoneEncounterGroupEditorSurf.SetData(safariZoneEncounterFile.surfEncounterGroup); safariZoneEncounterGroupEditorOldRod.SetData(safariZoneEncounterFile.oldRodEncounterGroup); safariZoneEncounterGroupEditorGoodRod.SetData(safariZoneEncounterFile.goodRodEncounterGroup); safariZoneEncounterGroupEditorSuperRod.SetData(safariZoneEncounterFile.superRodEncounterGroup); } private void buttonSave_Click(object sender, EventArgs e) { if (safariZoneEncounterFile == null){ return; } safariZoneEncounterFile.SaveToFile(); } private void buttonSaveAs_Click(object sender, EventArgs e) { if (safariZoneEncounterFile == null){ return; } SaveFileDialog sfd = new SaveFileDialog(); try { sfd.InitialDirectory = Path.GetDirectoryName(sfd.FileName); sfd.FileName = Path.GetFileName(sfd.FileName); } catch (Exception ex) { sfd.InitialDirectory = Path.GetDirectoryName(Environment.SpecialFolder.UserProfile.ToString()); sfd.FileName = Path.GetFileName(sfd.FileName); } if (sfd.ShowDialog() != DialogResult.OK){ return; } safariZoneEncounterFile.SaveToFile(sfd.FileName); } private void buttonImport_Click(object sender, EventArgs e) { if (safariZoneEncounterFile == null){ return; } OpenFileDialog ofd = new OpenFileDialog(); try { ofd.InitialDirectory = Path.GetDirectoryName(ofd.FileName); ofd.FileName = Path.GetFileName(ofd.FileName); } catch (Exception ex) { ofd.InitialDirectory = Path.GetDirectoryName(Environment.SpecialFolder.UserProfile.ToString()); ofd.FileName = Path.GetFileName(ofd.FileName); } if (ofd.ShowDialog() != DialogResult.OK){ return; } safariZoneEncounterFile = new SafariZoneEncounterFile(ofd.FileName); safariZoneEncounterGroupEditorGrass.SetData(safariZoneEncounterFile.grassEncounterGroup); safariZoneEncounterGroupEditorSurf.SetData(safariZoneEncounterFile.surfEncounterGroup); safariZoneEncounterGroupEditorOldRod.SetData(safariZoneEncounterFile.oldRodEncounterGroup); safariZoneEncounterGroupEditorGoodRod.SetData(safariZoneEncounterFile.goodRodEncounterGroup); safariZoneEncounterGroupEditorSuperRod.SetData(safariZoneEncounterFile.superRodEncounterGroup); } } } ================================================ FILE: DS_Map/Editors/SafariZoneEditor.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 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vwAADr8BOAVTJAAAAhRJREFUOE+tkT1ME2EYx2/QQWMiUcDR0dXFmRgSBwOackiIg4uJo1MB+4HAoAzE RJCQ6OBEIBHUGK0aY4SKg4NTSUxNSutHr9f2vnq9a68f1/593reA2qObb/LL+7yX//PL874n/JfVPf0a J6YiODYZwZFwZ44SXbcjOEl5ajvU6haELiaY/KhDVTUkJKUjyYwC4W4cwai2J+GrlwlurX6CVTQhGWWk C2X81GykjRJ+6SWqrVatFHB8/jvCWwZN3CYIkbVk28jZNY5sVpC1qpCLhOnwOqPbOLWQQGBTPWAC+lhx HIyIPiwtPsDiwjxxH6rTxOjIFV7nrQpOL+1gfEMF69ntbwkmNhTUanUYNUCrAAXaWc0ErNarVJfqOPNo B2OU9QjGyOq6Td7EwmadJASX0c6/l5s4+zgFP2V7ZtoE4x8UvEuW0WiiI2z1Lf+An7JeAb3B5XUJA2vp jlxak+B7KvFpDxBo8D2TAZdmrdPMrgt6lH9Y+SJj9IVMAg297YIJ+o1DzzPYTuoITc/iQv955EwXMTpv p3S+M+m1V1me9QgCUQNXX2YRT1sYHBiEP3wHVbp3PF3cB40GbrzN86xHENrScf1NDsl8FaI4jODMHOgS SOacfYAmbr5XeNYjGH7yDReXv+JeNIUhUYwFpmZjDz+nMLf5B3b2rcZ5tju4ntjtFw4T54j+v2g/t9NH 9AiCIPwGJelqUAd/T3AAAAAASUVORK5CYII= ================================================ FILE: DS_Map/Editors/SafariZoneEncounterEditorTab.Designer.cs ================================================  namespace DSPRE.Editors { partial class SafariZoneEncounterEditorTab { /// /// 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.numericUpDownLevel = new System.Windows.Forms.NumericUpDown(); this.comboBoxPokemon = new System.Windows.Forms.ComboBox(); this.numericUpDownLevelObject = new System.Windows.Forms.NumericUpDown(); this.comboBoxPokemonObject = new System.Windows.Forms.ComboBox(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.listBoxEncountersObject = new DSPRE.ListBox2(); this.listBoxEncounters = new DSPRE.ListBox2(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevel)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevelObject)).BeginInit(); this.SuspendLayout(); // // numericUpDownLevel // this.numericUpDownLevel.Location = new System.Drawing.Point(139, 180); this.numericUpDownLevel.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numericUpDownLevel.Name = "numericUpDownLevel"; this.numericUpDownLevel.Size = new System.Drawing.Size(58, 20); this.numericUpDownLevel.TabIndex = 20; this.numericUpDownLevel.Value = new decimal(new int[] { 1, 0, 0, 0}); this.numericUpDownLevel.ValueChanged += new System.EventHandler(this.numericUpDownLevel_ValueChanged); // // comboBoxPokemon // this.comboBoxPokemon.FormattingEnabled = true; this.comboBoxPokemon.Location = new System.Drawing.Point(6, 179); this.comboBoxPokemon.Name = "comboBoxPokemon"; this.comboBoxPokemon.Size = new System.Drawing.Size(127, 21); this.comboBoxPokemon.TabIndex = 21; this.comboBoxPokemon.SelectedIndexChanged += new System.EventHandler(this.comboBoxPokemon_SelectedIndexChanged); // // numericUpDownLevelObject // this.numericUpDownLevelObject.Location = new System.Drawing.Point(339, 180); this.numericUpDownLevelObject.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numericUpDownLevelObject.Name = "numericUpDownLevelObject"; this.numericUpDownLevelObject.Size = new System.Drawing.Size(58, 20); this.numericUpDownLevelObject.TabIndex = 20; this.numericUpDownLevelObject.Value = new decimal(new int[] { 1, 0, 0, 0}); this.numericUpDownLevelObject.ValueChanged += new System.EventHandler(this.numericUpDownLevelObject_ValueChanged); // // comboBoxPokemonObject // this.comboBoxPokemonObject.FormattingEnabled = true; this.comboBoxPokemonObject.Location = new System.Drawing.Point(206, 179); this.comboBoxPokemonObject.Name = "comboBoxPokemonObject"; this.comboBoxPokemonObject.Size = new System.Drawing.Size(127, 21); this.comboBoxPokemonObject.TabIndex = 21; this.comboBoxPokemonObject.SelectedIndexChanged += new System.EventHandler(this.comboBoxPokemonObject_SelectedIndexChanged); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(3, 0); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(86, 13); this.label2.TabIndex = 22; this.label2.Text = "Encounter Table"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(203, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(120, 13); this.label1.TabIndex = 22; this.label1.Text = "Object Encounter Table"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(136, 163); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(33, 13); this.label3.TabIndex = 23; this.label3.Text = "Level"; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(3, 163); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(52, 13); this.label4.TabIndex = 24; this.label4.Text = "Pokemon"; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(203, 163); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(52, 13); this.label5.TabIndex = 24; this.label5.Text = "Pokemon"; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(336, 163); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(33, 13); this.label6.TabIndex = 23; this.label6.Text = "Level"; // // listBoxEncountersObject // this.listBoxEncountersObject.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.listBoxEncountersObject.FormattingEnabled = true; this.listBoxEncountersObject.ItemHeight = 14; this.listBoxEncountersObject.Location = new System.Drawing.Point(206, 16); this.listBoxEncountersObject.Name = "listBoxEncountersObject"; this.listBoxEncountersObject.Size = new System.Drawing.Size(191, 144); this.listBoxEncountersObject.TabIndex = 1; this.listBoxEncountersObject.SelectedIndexChanged += new System.EventHandler(this.listBoxEncountersObject_SelectedIndexChanged); // // listBoxEncounters // this.listBoxEncounters.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.listBoxEncounters.FormattingEnabled = true; this.listBoxEncounters.ItemHeight = 14; this.listBoxEncounters.Location = new System.Drawing.Point(6, 16); this.listBoxEncounters.Name = "listBoxEncounters"; this.listBoxEncounters.Size = new System.Drawing.Size(191, 144); this.listBoxEncounters.TabIndex = 1; this.listBoxEncounters.SelectedIndexChanged += new System.EventHandler(this.listBoxEncounters_SelectedIndexChanged); // // SafariZoneEncounterEditorTab // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.label6); this.Controls.Add(this.label3); this.Controls.Add(this.label5); this.Controls.Add(this.label4); this.Controls.Add(this.label1); this.Controls.Add(this.label2); this.Controls.Add(this.comboBoxPokemonObject); this.Controls.Add(this.comboBoxPokemon); this.Controls.Add(this.numericUpDownLevelObject); this.Controls.Add(this.numericUpDownLevel); this.Controls.Add(this.listBoxEncountersObject); this.Controls.Add(this.listBoxEncounters); this.Name = "SafariZoneEncounterEditorTab"; this.Size = new System.Drawing.Size(404, 208); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevel)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevelObject)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion public ListBox2 listBoxEncounters; public System.Windows.Forms.NumericUpDown numericUpDownLevel; public System.Windows.Forms.ComboBox comboBoxPokemon; public ListBox2 listBoxEncountersObject; public System.Windows.Forms.NumericUpDown numericUpDownLevelObject; public System.Windows.Forms.ComboBox comboBoxPokemonObject; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; } } ================================================ FILE: DS_Map/Editors/SafariZoneEncounterEditorTab.cs ================================================ using System; using System.Windows.Forms; using DSPRE.ROMFiles; namespace DSPRE.Editors { public partial class SafariZoneEncounterEditorTab : UserControl { public SafariZoneEncounterEditorTab() { InitializeComponent(); } private void listBoxEncounters_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneEncounter safariZoneEncounter = (SafariZoneEncounter)listBoxEncounters.SelectedItem; if (safariZoneEncounter == null){ return; } comboBoxPokemon.SelectedIndex = safariZoneEncounter.pokemonID; numericUpDownLevel.Value = safariZoneEncounter.level; } private void comboBoxPokemon_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneEncounter safariZoneEncounter = (SafariZoneEncounter)listBoxEncounters.SelectedItem; if (safariZoneEncounter == null){ return; } safariZoneEncounter.pokemonID = (ushort)comboBoxPokemon.SelectedIndex; listBoxEncounters.RefreshItem(listBoxEncounters.SelectedIndex); } private void numericUpDownLevel_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneEncounter safariZoneEncounter = (SafariZoneEncounter)listBoxEncounters.SelectedItem; if (safariZoneEncounter == null){ return; } safariZoneEncounter.level = (byte)numericUpDownLevel.Value; listBoxEncounters.RefreshItem(listBoxEncounters.SelectedIndex); } private void listBoxEncountersObject_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneEncounter safariZoneEncounter = (SafariZoneEncounter)listBoxEncountersObject.SelectedItem; if (safariZoneEncounter == null){ return; } comboBoxPokemonObject.SelectedIndex = safariZoneEncounter.pokemonID; numericUpDownLevelObject.Value = safariZoneEncounter.level; } private void comboBoxPokemonObject_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneEncounter safariZoneEncounter = (SafariZoneEncounter)listBoxEncountersObject.SelectedItem; if (safariZoneEncounter == null){ return; } safariZoneEncounter.pokemonID = (ushort)comboBoxPokemonObject.SelectedIndex; listBoxEncountersObject.RefreshItem(listBoxEncountersObject.SelectedIndex); } private void numericUpDownLevelObject_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneEncounter safariZoneEncounter = (SafariZoneEncounter)listBoxEncountersObject.SelectedItem; if (safariZoneEncounter == null){ return; } safariZoneEncounter.level = (byte)numericUpDownLevelObject.Value; listBoxEncountersObject.RefreshItem(listBoxEncountersObject.SelectedIndex); } } } ================================================ FILE: DS_Map/Editors/SafariZoneEncounterEditorTab.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: DS_Map/Editors/SafariZoneEncounterGroupEditor.Designer.cs ================================================  namespace DSPRE.Editors { partial class SafariZoneEncounterGroupEditor { /// /// 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 Component 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(SafariZoneEncounterGroupEditor)); this.tabControlEncounters = new System.Windows.Forms.TabControl(); this.tabPageMorning = new System.Windows.Forms.TabPage(); this.safariZoneEncounterEditorMorningTab = new DSPRE.Editors.SafariZoneEncounterEditorTab(); this.tabPageDay = new System.Windows.Forms.TabPage(); this.safariZoneEncounterEditorDayTab = new DSPRE.Editors.SafariZoneEncounterEditorTab(); this.tabPageNight = new System.Windows.Forms.TabPage(); this.safariZoneEncounterEditorNightTab = new DSPRE.Editors.SafariZoneEncounterEditorTab(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.comboBoxObjectRequirementType = new System.Windows.Forms.ComboBox(); this.numericUpDownObjectRequirementQty = new System.Windows.Forms.NumericUpDown(); this.listBoxObjectRequirements = new DSPRE.ListBox2(); this.listBoxObjectOptionalRequirements = new DSPRE.ListBox2(); this.numericUpDownObjectOptionalRequirementQty = new System.Windows.Forms.NumericUpDown(); this.comboBoxOptionalObjectRequirementType = new System.Windows.Forms.ComboBox(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.buttonRemoveObjectEncounter = new System.Windows.Forms.Button(); this.buttonAddObjectEncounter = new System.Windows.Forms.Button(); this.tabControlEncounters.SuspendLayout(); this.tabPageMorning.SuspendLayout(); this.tabPageDay.SuspendLayout(); this.tabPageNight.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownObjectRequirementQty)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownObjectOptionalRequirementQty)).BeginInit(); this.SuspendLayout(); // // tabControlEncounters // this.tabControlEncounters.Controls.Add(this.tabPageMorning); this.tabControlEncounters.Controls.Add(this.tabPageDay); this.tabControlEncounters.Controls.Add(this.tabPageNight); this.tabControlEncounters.Location = new System.Drawing.Point(4, 7); this.tabControlEncounters.Name = "tabControlEncounters"; this.tabControlEncounters.SelectedIndex = 0; this.tabControlEncounters.Size = new System.Drawing.Size(418, 244); this.tabControlEncounters.TabIndex = 2; // // tabPageMorning // this.tabPageMorning.Controls.Add(this.safariZoneEncounterEditorMorningTab); this.tabPageMorning.Location = new System.Drawing.Point(4, 22); this.tabPageMorning.Name = "tabPageMorning"; this.tabPageMorning.Padding = new System.Windows.Forms.Padding(3); this.tabPageMorning.Size = new System.Drawing.Size(410, 218); this.tabPageMorning.TabIndex = 0; this.tabPageMorning.Text = "Morning"; this.tabPageMorning.UseVisualStyleBackColor = true; // // safariZoneEncounterEditorMorningTab // this.safariZoneEncounterEditorMorningTab.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterEditorMorningTab.Name = "safariZoneEncounterEditorMorningTab"; this.safariZoneEncounterEditorMorningTab.Size = new System.Drawing.Size(405, 209); this.safariZoneEncounterEditorMorningTab.TabIndex = 1; // // tabPageDay // this.tabPageDay.Controls.Add(this.safariZoneEncounterEditorDayTab); this.tabPageDay.Location = new System.Drawing.Point(4, 22); this.tabPageDay.Name = "tabPageDay"; this.tabPageDay.Padding = new System.Windows.Forms.Padding(3); this.tabPageDay.Size = new System.Drawing.Size(410, 218); this.tabPageDay.TabIndex = 1; this.tabPageDay.Text = "Day"; this.tabPageDay.UseVisualStyleBackColor = true; // // safariZoneEncounterEditorDayTab // this.safariZoneEncounterEditorDayTab.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterEditorDayTab.Name = "safariZoneEncounterEditorDayTab"; this.safariZoneEncounterEditorDayTab.Size = new System.Drawing.Size(401, 206); this.safariZoneEncounterEditorDayTab.TabIndex = 1; // // tabPageNight // this.tabPageNight.Controls.Add(this.safariZoneEncounterEditorNightTab); this.tabPageNight.Location = new System.Drawing.Point(4, 22); this.tabPageNight.Name = "tabPageNight"; this.tabPageNight.Padding = new System.Windows.Forms.Padding(3); this.tabPageNight.Size = new System.Drawing.Size(410, 218); this.tabPageNight.TabIndex = 2; this.tabPageNight.Text = "Night"; this.tabPageNight.UseVisualStyleBackColor = true; // // safariZoneEncounterEditorNightTab // this.safariZoneEncounterEditorNightTab.Location = new System.Drawing.Point(6, 6); this.safariZoneEncounterEditorNightTab.Name = "safariZoneEncounterEditorNightTab"; this.safariZoneEncounterEditorNightTab.Size = new System.Drawing.Size(401, 206); this.safariZoneEncounterEditorNightTab.TabIndex = 1; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(657, 198); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(23, 13); this.label3.TabIndex = 29; this.label3.Text = "Qty"; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(524, 198); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(31, 13); this.label4.TabIndex = 30; this.label4.Text = "Type"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(524, 35); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(133, 13); this.label2.TabIndex = 28; this.label2.Text = "Object Type Requirements"; // // comboBoxObjectRequirementType // this.comboBoxObjectRequirementType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxObjectRequirementType.FormattingEnabled = true; this.comboBoxObjectRequirementType.Location = new System.Drawing.Point(527, 214); this.comboBoxObjectRequirementType.Name = "comboBoxObjectRequirementType"; this.comboBoxObjectRequirementType.Size = new System.Drawing.Size(127, 21); this.comboBoxObjectRequirementType.TabIndex = 27; this.comboBoxObjectRequirementType.SelectedIndexChanged += new System.EventHandler(this.comboBoxObjectRequirementType_SelectedIndexChanged); // // numericUpDownObjectRequirementQty // this.numericUpDownObjectRequirementQty.Location = new System.Drawing.Point(660, 215); this.numericUpDownObjectRequirementQty.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numericUpDownObjectRequirementQty.Name = "numericUpDownObjectRequirementQty"; this.numericUpDownObjectRequirementQty.Size = new System.Drawing.Size(58, 20); this.numericUpDownObjectRequirementQty.TabIndex = 26; this.numericUpDownObjectRequirementQty.Value = new decimal(new int[] { 1, 0, 0, 0}); this.numericUpDownObjectRequirementQty.ValueChanged += new System.EventHandler(this.numericUpDownObjectRequirementQty_ValueChanged); // // listBoxObjectRequirements // this.listBoxObjectRequirements.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.listBoxObjectRequirements.FormattingEnabled = true; this.listBoxObjectRequirements.ItemHeight = 14; this.listBoxObjectRequirements.Location = new System.Drawing.Point(527, 51); this.listBoxObjectRequirements.Name = "listBoxObjectRequirements"; this.listBoxObjectRequirements.Size = new System.Drawing.Size(191, 144); this.listBoxObjectRequirements.TabIndex = 25; this.listBoxObjectRequirements.SelectedIndexChanged += new System.EventHandler(this.listBoxObjectRequirements_SelectedIndexChanged); // // listBoxObjectOptionalRequirements // this.listBoxObjectOptionalRequirements.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.listBoxObjectOptionalRequirements.FormattingEnabled = true; this.listBoxObjectOptionalRequirements.ItemHeight = 14; this.listBoxObjectOptionalRequirements.Location = new System.Drawing.Point(724, 51); this.listBoxObjectOptionalRequirements.Name = "listBoxObjectOptionalRequirements"; this.listBoxObjectOptionalRequirements.Size = new System.Drawing.Size(191, 144); this.listBoxObjectOptionalRequirements.TabIndex = 25; this.listBoxObjectOptionalRequirements.SelectedIndexChanged += new System.EventHandler(this.listBoxObjectOptionalRequirements_SelectedIndexChanged); // // numericUpDownObjectOptionalRequirementQty // this.numericUpDownObjectOptionalRequirementQty.Location = new System.Drawing.Point(857, 215); this.numericUpDownObjectOptionalRequirementQty.Name = "numericUpDownObjectOptionalRequirementQty"; this.numericUpDownObjectOptionalRequirementQty.Size = new System.Drawing.Size(58, 20); this.numericUpDownObjectOptionalRequirementQty.TabIndex = 26; this.numericUpDownObjectOptionalRequirementQty.ValueChanged += new System.EventHandler(this.numericUpDownObjectOptionalRequirementQty_ValueChanged); // // comboBoxOptionalObjectRequirementType // this.comboBoxOptionalObjectRequirementType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxOptionalObjectRequirementType.FormattingEnabled = true; this.comboBoxOptionalObjectRequirementType.Location = new System.Drawing.Point(724, 214); this.comboBoxOptionalObjectRequirementType.Name = "comboBoxOptionalObjectRequirementType"; this.comboBoxOptionalObjectRequirementType.Size = new System.Drawing.Size(127, 21); this.comboBoxOptionalObjectRequirementType.TabIndex = 27; this.comboBoxOptionalObjectRequirementType.SelectedIndexChanged += new System.EventHandler(this.comboBoxOptionalObjectRequirementType_SelectedIndexChanged); // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(721, 35); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(175, 13); this.label5.TabIndex = 28; this.label5.Text = "Optional Object Type Requirements"; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(721, 198); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(31, 13); this.label6.TabIndex = 30; this.label6.Text = "Type"; // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(854, 198); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(23, 13); this.label7.TabIndex = 29; this.label7.Text = "Qty"; // // buttonRemoveObjectEncounter // this.buttonRemoveObjectEncounter.Image = global::DSPRE.Properties.Resources.deleteIcon; this.buttonRemoveObjectEncounter.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonRemoveObjectEncounter.Location = new System.Drawing.Point(424, 77); this.buttonRemoveObjectEncounter.Name = "buttonRemoveObjectEncounter"; this.buttonRemoveObjectEncounter.Size = new System.Drawing.Size(97, 55); this.buttonRemoveObjectEncounter.TabIndex = 31; this.buttonRemoveObjectEncounter.Text = "Remove Last Object Encounter"; this.buttonRemoveObjectEncounter.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonRemoveObjectEncounter.UseVisualStyleBackColor = true; this.buttonRemoveObjectEncounter.Click += new System.EventHandler(this.buttonRemoveObjectEncounter_Click); // // buttonAddObjectEncounter // this.buttonAddObjectEncounter.Image = ((System.Drawing.Image)(resources.GetObject("buttonAddObjectEncounter.Image"))); this.buttonAddObjectEncounter.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonAddObjectEncounter.Location = new System.Drawing.Point(424, 32); this.buttonAddObjectEncounter.Name = "buttonAddObjectEncounter"; this.buttonAddObjectEncounter.Size = new System.Drawing.Size(97, 39); this.buttonAddObjectEncounter.TabIndex = 31; this.buttonAddObjectEncounter.Text = "Add Object Encounter"; this.buttonAddObjectEncounter.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.buttonAddObjectEncounter.UseVisualStyleBackColor = true; this.buttonAddObjectEncounter.Click += new System.EventHandler(this.buttonAddObjectEncounter_Click); // // SafariZoneEncounterGroupEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.buttonAddObjectEncounter); this.Controls.Add(this.buttonRemoveObjectEncounter); this.Controls.Add(this.label7); this.Controls.Add(this.label3); this.Controls.Add(this.label6); this.Controls.Add(this.label4); this.Controls.Add(this.tabControlEncounters); this.Controls.Add(this.label5); this.Controls.Add(this.comboBoxOptionalObjectRequirementType); this.Controls.Add(this.label2); this.Controls.Add(this.comboBoxObjectRequirementType); this.Controls.Add(this.numericUpDownObjectOptionalRequirementQty); this.Controls.Add(this.listBoxObjectOptionalRequirements); this.Controls.Add(this.numericUpDownObjectRequirementQty); this.Controls.Add(this.listBoxObjectRequirements); this.Name = "SafariZoneEncounterGroupEditor"; this.Size = new System.Drawing.Size(927, 257); this.tabControlEncounters.ResumeLayout(false); this.tabPageMorning.ResumeLayout(false); this.tabPageDay.ResumeLayout(false); this.tabPageNight.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownObjectRequirementQty)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownObjectOptionalRequirementQty)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.TabControl tabControlEncounters; private System.Windows.Forms.TabPage tabPageMorning; private System.Windows.Forms.TabPage tabPageDay; private System.Windows.Forms.TabPage tabPageNight; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label2; public System.Windows.Forms.ComboBox comboBoxObjectRequirementType; public System.Windows.Forms.NumericUpDown numericUpDownObjectRequirementQty; public ListBox2 listBoxObjectRequirements; public ListBox2 listBoxObjectOptionalRequirements; public System.Windows.Forms.NumericUpDown numericUpDownObjectOptionalRequirementQty; public System.Windows.Forms.ComboBox comboBoxOptionalObjectRequirementType; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label7; public SafariZoneEncounterEditorTab safariZoneEncounterEditorMorningTab; public SafariZoneEncounterEditorTab safariZoneEncounterEditorDayTab; public SafariZoneEncounterEditorTab safariZoneEncounterEditorNightTab; private System.Windows.Forms.Button buttonRemoveObjectEncounter; private System.Windows.Forms.Button buttonAddObjectEncounter; } } ================================================ FILE: DS_Map/Editors/SafariZoneEncounterGroupEditor.cs ================================================ using System; using System.Windows.Forms; using DSPRE.ROMFiles; namespace DSPRE.Editors { public partial class SafariZoneEncounterGroupEditor : UserControl { private SafariZoneEncounterGroup safariZoneEncounterGroup; public SafariZoneEncounterGroupEditor() { InitializeComponent(); safariZoneEncounterEditorMorningTab.listBoxEncountersObject.SelectedIndexChanged += ListBoxEncountersObject_SelectedIndexChanged; safariZoneEncounterEditorDayTab.listBoxEncountersObject.SelectedIndexChanged += ListBoxEncountersObject_SelectedIndexChanged; safariZoneEncounterEditorNightTab.listBoxEncountersObject.SelectedIndexChanged += ListBoxEncountersObject_SelectedIndexChanged; listBoxObjectRequirements.SelectedIndexChanged += ListBoxEncountersObject_SelectedIndexChanged; listBoxObjectOptionalRequirements.SelectedIndexChanged += ListBoxEncountersObject_SelectedIndexChanged; } private void ListBoxEncountersObject_SelectedIndexChanged(object sender, EventArgs e) { try { ListBox2 s = sender as ListBox2; safariZoneEncounterEditorMorningTab.listBoxEncountersObject.SelectedIndex = s.SelectedIndex; safariZoneEncounterEditorDayTab.listBoxEncountersObject.SelectedIndex = s.SelectedIndex; safariZoneEncounterEditorNightTab.listBoxEncountersObject.SelectedIndex = s.SelectedIndex; listBoxObjectRequirements.SelectedIndex = s.SelectedIndex; listBoxObjectOptionalRequirements.SelectedIndex = s.SelectedIndex; } catch (Exception ex) { } } public void SetPokemonNames() { string[] pokemonNames = RomInfo.GetPokemonNames(); safariZoneEncounterEditorMorningTab.comboBoxPokemon.Items.AddRange(pokemonNames); safariZoneEncounterEditorMorningTab.comboBoxPokemonObject.Items.AddRange(pokemonNames); safariZoneEncounterEditorDayTab.comboBoxPokemon.Items.AddRange(pokemonNames); safariZoneEncounterEditorDayTab.comboBoxPokemonObject.Items.AddRange(pokemonNames); safariZoneEncounterEditorNightTab.comboBoxPokemon.Items.AddRange(pokemonNames); safariZoneEncounterEditorNightTab.comboBoxPokemonObject.Items.AddRange(pokemonNames); foreach (string type in SafariZoneObjectRequirement.ObjectTypes.Values) { comboBoxObjectRequirementType.Items.Add(type); comboBoxOptionalObjectRequirementType.Items.Add(type); } } public void Reset() { this.safariZoneEncounterGroup = null; safariZoneEncounterEditorMorningTab.listBoxEncounters.DataSource = null; safariZoneEncounterEditorDayTab.listBoxEncounters.DataSource = null; safariZoneEncounterEditorNightTab.listBoxEncounters.DataSource = null; safariZoneEncounterEditorMorningTab.listBoxEncountersObject.DataSource = null; safariZoneEncounterEditorDayTab.listBoxEncountersObject.DataSource = null; safariZoneEncounterEditorNightTab.listBoxEncountersObject.DataSource = null; listBoxObjectRequirements.DataSource = null; listBoxObjectOptionalRequirements.DataSource = null; } public void SetData(SafariZoneEncounterGroup safariZoneEncounterGroup) { this.safariZoneEncounterGroup = safariZoneEncounterGroup; safariZoneEncounterEditorMorningTab.listBoxEncounters.DataSource = this.safariZoneEncounterGroup.MorningEncounters; safariZoneEncounterEditorDayTab.listBoxEncounters.DataSource = this.safariZoneEncounterGroup.DayEncounters; safariZoneEncounterEditorNightTab.listBoxEncounters.DataSource = this.safariZoneEncounterGroup.NightEncounters; safariZoneEncounterEditorMorningTab.listBoxEncountersObject.DataSource = this.safariZoneEncounterGroup.MorningEncountersObject; safariZoneEncounterEditorDayTab.listBoxEncountersObject.DataSource = this.safariZoneEncounterGroup.DayEncountersObject; safariZoneEncounterEditorNightTab.listBoxEncountersObject.DataSource = this.safariZoneEncounterGroup.NightEncountersObject; listBoxObjectRequirements.DataSource = this.safariZoneEncounterGroup.ObjectRequirements; listBoxObjectOptionalRequirements.DataSource = this.safariZoneEncounterGroup.OptionalObjectRequirements; } private void listBoxObjectRequirements_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneObjectRequirement safariZoneObjectRequirement = (SafariZoneObjectRequirement)listBoxObjectRequirements.SelectedItem; if (safariZoneObjectRequirement == null){ return; } comboBoxObjectRequirementType.SelectedIndex = safariZoneObjectRequirement.typeID; numericUpDownObjectRequirementQty.Value = safariZoneObjectRequirement.quantity; } private void comboBoxObjectRequirementType_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } // if (comboBoxObjectRequirementType.SelectedIndex == 0){ comboBoxObjectRequirementType.SelectedIndex = 1; } //no requirement is not valid SafariZoneObjectRequirement safariZoneObjectRequirement = (SafariZoneObjectRequirement)listBoxObjectRequirements.SelectedItem; if (safariZoneObjectRequirement == null){ return; } safariZoneObjectRequirement.typeID = (byte)comboBoxObjectRequirementType.SelectedIndex; listBoxObjectRequirements.RefreshItem(listBoxObjectRequirements.SelectedIndex); } private void numericUpDownObjectRequirementQty_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneObjectRequirement safariZoneObjectRequirement = (SafariZoneObjectRequirement)listBoxObjectRequirements.SelectedItem; if (safariZoneObjectRequirement == null){ return; } safariZoneObjectRequirement.quantity = (byte)numericUpDownObjectRequirementQty.Value; listBoxObjectRequirements.RefreshItem(listBoxObjectRequirements.SelectedIndex); } private void listBoxObjectOptionalRequirements_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneObjectRequirement safariZoneObjectRequirement = (SafariZoneObjectRequirement)listBoxObjectOptionalRequirements.SelectedItem; if (safariZoneObjectRequirement == null){ return; } comboBoxOptionalObjectRequirementType.SelectedIndex = safariZoneObjectRequirement.typeID; numericUpDownObjectOptionalRequirementQty.Value = safariZoneObjectRequirement.quantity; } private void comboBoxOptionalObjectRequirementType_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneObjectRequirement safariZoneObjectRequirement = (SafariZoneObjectRequirement)listBoxObjectOptionalRequirements.SelectedItem; if (safariZoneObjectRequirement == null){ return; } safariZoneObjectRequirement.typeID = (byte)comboBoxOptionalObjectRequirementType.SelectedIndex; listBoxObjectOptionalRequirements.RefreshItem(listBoxObjectOptionalRequirements.SelectedIndex); } private void numericUpDownObjectOptionalRequirementQty_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled){ return; } SafariZoneObjectRequirement safariZoneObjectRequirement = (SafariZoneObjectRequirement)listBoxObjectOptionalRequirements.SelectedItem; if (safariZoneObjectRequirement == null){ return; } safariZoneObjectRequirement.quantity = (byte)numericUpDownObjectOptionalRequirementQty.Value; listBoxObjectOptionalRequirements.RefreshItem(listBoxObjectOptionalRequirements.SelectedIndex); } private void buttonAddObjectEncounter_Click(object sender, EventArgs e) { if (this.safariZoneEncounterGroup == null){ return; } if (listBoxObjectOptionalRequirements.SelectedIndex == -1){ return; } safariZoneEncounterGroup.MorningEncountersObject.Add(new SafariZoneEncounter()); safariZoneEncounterGroup.DayEncountersObject.Add(new SafariZoneEncounter()); safariZoneEncounterGroup.NightEncountersObject.Add(new SafariZoneEncounter()); safariZoneEncounterGroup.ObjectRequirements.Add(new SafariZoneObjectRequirement(1, 1)); safariZoneEncounterGroup.OptionalObjectRequirements.Add(new SafariZoneObjectRequirement(0, 0)); safariZoneEncounterGroup.ObjectSlots = (byte)safariZoneEncounterGroup.ObjectRequirements.Count; //all the list counts should be the same } private void buttonRemoveObjectEncounter_Click(object sender, EventArgs e) { if (this.safariZoneEncounterGroup == null){ return; } if (listBoxObjectOptionalRequirements.SelectedIndex == -1){ return; } safariZoneEncounterGroup.MorningEncountersObject.RemoveAt(safariZoneEncounterGroup.MorningEncountersObject.Count - 1); safariZoneEncounterGroup.DayEncountersObject.RemoveAt(safariZoneEncounterGroup.DayEncountersObject.Count - 1); safariZoneEncounterGroup.NightEncountersObject.RemoveAt(safariZoneEncounterGroup.NightEncountersObject.Count - 1); safariZoneEncounterGroup.ObjectRequirements.RemoveAt(safariZoneEncounterGroup.ObjectRequirements.Count - 1); safariZoneEncounterGroup.OptionalObjectRequirements.RemoveAt(safariZoneEncounterGroup.OptionalObjectRequirements.Count - 1); safariZoneEncounterGroup.ObjectSlots = (byte)safariZoneEncounterGroup.ObjectRequirements.Count; //all the list counts should be the same } } } ================================================ FILE: DS_Map/Editors/SafariZoneEncounterGroupEditor.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 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO wAAADsABataJCQAAAGJJREFUOE9j+P//P1bMMEXuHxD/Z5gm+x/ExqYGhLEKgjDYgAUK/8F41AD8BoAV gkIbAwNDH24AJCawYhSFpGJQFFPBACzOAmMkg/F5AVvAgDBYEm7AaEIi3wBEwsJhwH8GAOQLbolFp0OS AAAAAElFTkSuQmCC ================================================ FILE: DS_Map/Editors/ScriptEditor.Designer.cs ================================================  namespace DSPRE.Editors { partial class ScriptEditor { /// /// 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.selectScriptFileComboBox = new System.Windows.Forms.ComboBox(); this.label5 = new System.Windows.Forms.Label(); this.scriptEditorTabControl = new System.Windows.Forms.TabControl(); this.scriptsTabPage = new System.Windows.Forms.TabPage(); this.PanelSearchScripts = new System.Windows.Forms.Panel(); this.BtnNextFindScript = new System.Windows.Forms.Button(); this.BtnPrevFindScript = new System.Windows.Forms.Button(); this.BtnCloseFindScript = new System.Windows.Forms.Button(); this.panelFindScriptTextBox = new System.Windows.Forms.TextBox(); this.scintillaScriptsPanel = new System.Windows.Forms.Panel(); this.functionsTabPage = new System.Windows.Forms.TabPage(); this.PanelSearchFunctions = new System.Windows.Forms.Panel(); this.BtnNextFindFunc = new System.Windows.Forms.Button(); this.BtnPrevFindFunc = new System.Windows.Forms.Button(); this.BtnCloseFindFunc = new System.Windows.Forms.Button(); this.panelFindFunctionTextBox = new System.Windows.Forms.TextBox(); this.scintillaFunctionsPanel = new System.Windows.Forms.Panel(); this.actionsTabPage = new System.Windows.Forms.TabPage(); this.PanelSearchActions = new System.Windows.Forms.Panel(); this.BtnNextFindActions = new System.Windows.Forms.Button(); this.BtnPrevFindActions = new System.Windows.Forms.Button(); this.BtnCloseFindActions = new System.Windows.Forms.Button(); this.panelFindActionTextBox = new System.Windows.Forms.TextBox(); this.scintillaActionsPanel = new System.Windows.Forms.Panel(); this.addScriptFileButton = new System.Windows.Forms.Button(); this.removeScriptFileButton = new System.Windows.Forms.Button(); this.saveScriptFileButton = new System.Windows.Forms.Button(); this.exportScriptFileButton = new System.Windows.Forms.Button(); this.importScriptFileButton = new System.Windows.Forms.Button(); this.groupBox8 = new System.Windows.Forms.GroupBox(); this.searchInScriptsButton = new System.Windows.Forms.Button(); this.searchOnlyCurrentScriptCheckBox = new System.Windows.Forms.CheckBox(); this.scrollToBlockStartcheckBox = new System.Windows.Forms.CheckBox(); this.scriptSearchCaseSensitiveCheckBox = new System.Windows.Forms.CheckBox(); this.searchInScriptsTextBox = new System.Windows.Forms.TextBox(); this.label31 = new System.Windows.Forms.Label(); this.searchProgressBar = new System.Windows.Forms.ProgressBar(); this.label30 = new System.Windows.Forms.Label(); this.label29 = new System.Windows.Forms.Label(); this.searchInScriptsResultListBox = new System.Windows.Forms.ListBox(); this.groupBox24 = new System.Windows.Forms.GroupBox(); this.ScriptNavigatorTabControl = new System.Windows.Forms.TabControl(); this.ScriptsNavTab = new System.Windows.Forms.TabPage(); this.scriptsNavListbox = new System.Windows.Forms.ListBox(); this.FunctionsNavTab = new System.Windows.Forms.TabPage(); this.functionsNavListbox = new System.Windows.Forms.ListBox(); this.ActionsNavTab = new System.Windows.Forms.TabPage(); this.actionsNavListbox = new System.Windows.Forms.ListBox(); this.openFindScriptEditorButton = new System.Windows.Forms.Button(); this.expandScriptTextButton = new System.Windows.Forms.Button(); this.compressScriptTextButton = new System.Windows.Forms.Button(); this.scriptEditorWordWrapCheckbox = new System.Windows.Forms.CheckBox(); this.scriptEditorWhitespacesCheckbox = new System.Windows.Forms.CheckBox(); this.groupBox26 = new System.Windows.Forms.GroupBox(); this.scriptEditorNumberFormatNoPreference = new System.Windows.Forms.RadioButton(); this.scriptEditorNumberFormatDecimal = new System.Windows.Forms.RadioButton(); this.scriptEditorNumberFormatHex = new System.Windows.Forms.RadioButton(); this.viewLevelScriptButton = new System.Windows.Forms.Button(); this.locateCurrentScriptFile = new System.Windows.Forms.Button(); this.scriptEditorTabControl.SuspendLayout(); this.scriptsTabPage.SuspendLayout(); this.PanelSearchScripts.SuspendLayout(); this.functionsTabPage.SuspendLayout(); this.PanelSearchFunctions.SuspendLayout(); this.actionsTabPage.SuspendLayout(); this.PanelSearchActions.SuspendLayout(); this.groupBox8.SuspendLayout(); this.groupBox24.SuspendLayout(); this.ScriptNavigatorTabControl.SuspendLayout(); this.ScriptsNavTab.SuspendLayout(); this.FunctionsNavTab.SuspendLayout(); this.ActionsNavTab.SuspendLayout(); this.groupBox26.SuspendLayout(); this.SuspendLayout(); // // selectScriptFileComboBox // this.selectScriptFileComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectScriptFileComboBox.FormattingEnabled = true; this.selectScriptFileComboBox.Location = new System.Drawing.Point(7, 24); this.selectScriptFileComboBox.Name = "selectScriptFileComboBox"; this.selectScriptFileComboBox.Size = new System.Drawing.Size(152, 21); this.selectScriptFileComboBox.TabIndex = 0; this.selectScriptFileComboBox.SelectedIndexChanged += new System.EventHandler(this.selectScriptFileComboBox_SelectedIndexChanged); // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(5, 8); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(53, 13); this.label5.TabIndex = 1; this.label5.Text = "Script File"; // // scriptEditorTabControl // this.scriptEditorTabControl.Controls.Add(this.scriptsTabPage); this.scriptEditorTabControl.Controls.Add(this.functionsTabPage); this.scriptEditorTabControl.Controls.Add(this.actionsTabPage); this.scriptEditorTabControl.Location = new System.Drawing.Point(481, 22); this.scriptEditorTabControl.Name = "scriptEditorTabControl"; this.scriptEditorTabControl.SelectedIndex = 0; this.scriptEditorTabControl.Size = new System.Drawing.Size(692, 591); this.scriptEditorTabControl.TabIndex = 18; this.scriptEditorTabControl.SelectedIndexChanged += new System.EventHandler(this.scriptEditorTabControl_TabIndexChanged); // // scriptsTabPage // this.scriptsTabPage.Controls.Add(this.PanelSearchScripts); this.scriptsTabPage.Controls.Add(this.scintillaScriptsPanel); this.scriptsTabPage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.scriptsTabPage.Location = new System.Drawing.Point(4, 22); this.scriptsTabPage.Name = "scriptsTabPage"; this.scriptsTabPage.Padding = new System.Windows.Forms.Padding(3); this.scriptsTabPage.Size = new System.Drawing.Size(684, 565); this.scriptsTabPage.TabIndex = 0; this.scriptsTabPage.Text = "Scripts"; this.scriptsTabPage.UseVisualStyleBackColor = true; // // PanelSearchScripts // this.PanelSearchScripts.BackColor = System.Drawing.Color.White; this.PanelSearchScripts.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.PanelSearchScripts.Controls.Add(this.BtnNextFindScript); this.PanelSearchScripts.Controls.Add(this.BtnPrevFindScript); this.PanelSearchScripts.Controls.Add(this.BtnCloseFindScript); this.PanelSearchScripts.Controls.Add(this.panelFindScriptTextBox); this.PanelSearchScripts.Location = new System.Drawing.Point(386, 3); this.PanelSearchScripts.Name = "PanelSearchScripts"; this.PanelSearchScripts.Size = new System.Drawing.Size(292, 40); this.PanelSearchScripts.TabIndex = 14; this.PanelSearchScripts.Visible = false; // // BtnNextFindScript // this.BtnNextFindScript.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnNextFindScript.ForeColor = System.Drawing.Color.White; this.BtnNextFindScript.Image = global::DSPRE.Properties.Resources.arrowdown; this.BtnNextFindScript.Location = new System.Drawing.Point(233, 4); this.BtnNextFindScript.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnNextFindScript.Name = "BtnNextFindScript"; this.BtnNextFindScript.Size = new System.Drawing.Size(25, 30); this.BtnNextFindScript.TabIndex = 32; this.BtnNextFindScript.Tag = "Find next (Enter)"; this.BtnNextFindScript.UseVisualStyleBackColor = true; this.BtnNextFindScript.Click += new System.EventHandler(this.BtnNextFindScript_Click); // // BtnPrevFindScript // this.BtnPrevFindScript.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnPrevFindScript.ForeColor = System.Drawing.Color.White; this.BtnPrevFindScript.Image = global::DSPRE.Properties.Resources.arrowup; this.BtnPrevFindScript.Location = new System.Drawing.Point(205, 4); this.BtnPrevFindScript.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnPrevFindScript.Name = "BtnPrevFindScript"; this.BtnPrevFindScript.Size = new System.Drawing.Size(25, 30); this.BtnPrevFindScript.TabIndex = 31; this.BtnPrevFindScript.Tag = "Find previous (Shift+Enter)"; this.BtnPrevFindScript.UseVisualStyleBackColor = true; this.BtnPrevFindScript.Click += new System.EventHandler(this.BtnPrevFindScript_Click); // // BtnCloseFindScript // this.BtnCloseFindScript.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnCloseFindScript.ForeColor = System.Drawing.Color.White; this.BtnCloseFindScript.Image = global::DSPRE.Properties.Resources.Cross; this.BtnCloseFindScript.Location = new System.Drawing.Point(261, 4); this.BtnCloseFindScript.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnCloseFindScript.Name = "BtnCloseFindScript"; this.BtnCloseFindScript.Size = new System.Drawing.Size(25, 30); this.BtnCloseFindScript.TabIndex = 33; this.BtnCloseFindScript.Tag = "Close (Esc)"; this.BtnCloseFindScript.UseVisualStyleBackColor = true; this.BtnCloseFindScript.Click += new System.EventHandler(this.BtnCloseFindScript_Click); // // panelFindScriptTextBox // this.panelFindScriptTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; this.panelFindScriptTextBox.Font = new System.Drawing.Font("Segoe UI", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.panelFindScriptTextBox.Location = new System.Drawing.Point(10, 6); this.panelFindScriptTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.panelFindScriptTextBox.Name = "panelFindScriptTextBox"; this.panelFindScriptTextBox.Size = new System.Drawing.Size(189, 25); this.panelFindScriptTextBox.TabIndex = 30; this.panelFindScriptTextBox.TextChanged += new System.EventHandler(this.panelFindScriptTextBox_TextChanged); this.panelFindScriptTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.scriptTxtFind_KeyDown); // // scintillaScriptsPanel // this.scintillaScriptsPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.scintillaScriptsPanel.Location = new System.Drawing.Point(3, 3); this.scintillaScriptsPanel.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.scintillaScriptsPanel.Name = "scintillaScriptsPanel"; this.scintillaScriptsPanel.Size = new System.Drawing.Size(678, 559); this.scintillaScriptsPanel.TabIndex = 19; // // functionsTabPage // this.functionsTabPage.Controls.Add(this.PanelSearchFunctions); this.functionsTabPage.Controls.Add(this.scintillaFunctionsPanel); this.functionsTabPage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.functionsTabPage.Location = new System.Drawing.Point(4, 22); this.functionsTabPage.Name = "functionsTabPage"; this.functionsTabPage.Padding = new System.Windows.Forms.Padding(3); this.functionsTabPage.Size = new System.Drawing.Size(684, 565); this.functionsTabPage.TabIndex = 1; this.functionsTabPage.Text = "Functions"; this.functionsTabPage.UseVisualStyleBackColor = true; // // PanelSearchFunctions // this.PanelSearchFunctions.BackColor = System.Drawing.Color.White; this.PanelSearchFunctions.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.PanelSearchFunctions.Controls.Add(this.BtnNextFindFunc); this.PanelSearchFunctions.Controls.Add(this.BtnPrevFindFunc); this.PanelSearchFunctions.Controls.Add(this.BtnCloseFindFunc); this.PanelSearchFunctions.Controls.Add(this.panelFindFunctionTextBox); this.PanelSearchFunctions.Location = new System.Drawing.Point(386, 3); this.PanelSearchFunctions.Name = "PanelSearchFunctions"; this.PanelSearchFunctions.Size = new System.Drawing.Size(292, 40); this.PanelSearchFunctions.TabIndex = 16; this.PanelSearchFunctions.Visible = false; // // BtnNextFindFunc // this.BtnNextFindFunc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnNextFindFunc.ForeColor = System.Drawing.Color.White; this.BtnNextFindFunc.Image = global::DSPRE.Properties.Resources.arrowdown; this.BtnNextFindFunc.Location = new System.Drawing.Point(233, 4); this.BtnNextFindFunc.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnNextFindFunc.Name = "BtnNextFindFunc"; this.BtnNextFindFunc.Size = new System.Drawing.Size(25, 30); this.BtnNextFindFunc.TabIndex = 36; this.BtnNextFindFunc.Tag = "Find next (Enter)"; this.BtnNextFindFunc.UseVisualStyleBackColor = true; this.BtnNextFindFunc.Click += new System.EventHandler(this.BtnNextFindFunc_Click); // // BtnPrevFindFunc // this.BtnPrevFindFunc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnPrevFindFunc.ForeColor = System.Drawing.Color.White; this.BtnPrevFindFunc.Image = global::DSPRE.Properties.Resources.arrowup; this.BtnPrevFindFunc.Location = new System.Drawing.Point(205, 4); this.BtnPrevFindFunc.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnPrevFindFunc.Name = "BtnPrevFindFunc"; this.BtnPrevFindFunc.Size = new System.Drawing.Size(25, 30); this.BtnPrevFindFunc.TabIndex = 35; this.BtnPrevFindFunc.Tag = "Find previous (Shift+Enter)"; this.BtnPrevFindFunc.UseVisualStyleBackColor = true; this.BtnPrevFindFunc.Click += new System.EventHandler(this.BtnPrevFindFunc_Click); // // BtnCloseFindFunc // this.BtnCloseFindFunc.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnCloseFindFunc.ForeColor = System.Drawing.Color.White; this.BtnCloseFindFunc.Image = global::DSPRE.Properties.Resources.Cross; this.BtnCloseFindFunc.Location = new System.Drawing.Point(261, 4); this.BtnCloseFindFunc.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnCloseFindFunc.Name = "BtnCloseFindFunc"; this.BtnCloseFindFunc.Size = new System.Drawing.Size(25, 30); this.BtnCloseFindFunc.TabIndex = 37; this.BtnCloseFindFunc.Tag = "Close (Esc)"; this.BtnCloseFindFunc.UseVisualStyleBackColor = true; this.BtnCloseFindFunc.Click += new System.EventHandler(this.BtnCloseFindFunc_Click); // // panelFindFunctionTextBox // this.panelFindFunctionTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; this.panelFindFunctionTextBox.Font = new System.Drawing.Font("Segoe UI", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.panelFindFunctionTextBox.Location = new System.Drawing.Point(10, 6); this.panelFindFunctionTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.panelFindFunctionTextBox.Name = "panelFindFunctionTextBox"; this.panelFindFunctionTextBox.Size = new System.Drawing.Size(189, 25); this.panelFindFunctionTextBox.TabIndex = 34; this.panelFindFunctionTextBox.TextChanged += new System.EventHandler(this.panelFindFunctionTextBox_TextChanged); this.panelFindFunctionTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.functionTxtFind_KeyDown); // // scintillaFunctionsPanel // this.scintillaFunctionsPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.scintillaFunctionsPanel.Location = new System.Drawing.Point(3, 3); this.scintillaFunctionsPanel.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.scintillaFunctionsPanel.Name = "scintillaFunctionsPanel"; this.scintillaFunctionsPanel.Size = new System.Drawing.Size(678, 559); this.scintillaFunctionsPanel.TabIndex = 20; // // actionsTabPage // this.actionsTabPage.Controls.Add(this.PanelSearchActions); this.actionsTabPage.Controls.Add(this.scintillaActionsPanel); this.actionsTabPage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.actionsTabPage.Location = new System.Drawing.Point(4, 22); this.actionsTabPage.Name = "actionsTabPage"; this.actionsTabPage.Padding = new System.Windows.Forms.Padding(3); this.actionsTabPage.Size = new System.Drawing.Size(684, 565); this.actionsTabPage.TabIndex = 2; this.actionsTabPage.Text = "Actions"; this.actionsTabPage.UseVisualStyleBackColor = true; // // PanelSearchActions // this.PanelSearchActions.BackColor = System.Drawing.Color.White; this.PanelSearchActions.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.PanelSearchActions.Controls.Add(this.BtnNextFindActions); this.PanelSearchActions.Controls.Add(this.BtnPrevFindActions); this.PanelSearchActions.Controls.Add(this.BtnCloseFindActions); this.PanelSearchActions.Controls.Add(this.panelFindActionTextBox); this.PanelSearchActions.Location = new System.Drawing.Point(386, 3); this.PanelSearchActions.Name = "PanelSearchActions"; this.PanelSearchActions.Size = new System.Drawing.Size(292, 40); this.PanelSearchActions.TabIndex = 16; this.PanelSearchActions.Visible = false; // // BtnNextFindActions // this.BtnNextFindActions.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnNextFindActions.ForeColor = System.Drawing.Color.White; this.BtnNextFindActions.Image = global::DSPRE.Properties.Resources.arrowdown; this.BtnNextFindActions.Location = new System.Drawing.Point(233, 4); this.BtnNextFindActions.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnNextFindActions.Name = "BtnNextFindActions"; this.BtnNextFindActions.Size = new System.Drawing.Size(25, 30); this.BtnNextFindActions.TabIndex = 40; this.BtnNextFindActions.Tag = "Find next (Enter)"; this.BtnNextFindActions.UseVisualStyleBackColor = true; this.BtnNextFindActions.Click += new System.EventHandler(this.BtnNextFindActions_Click); // // BtnPrevFindActions // this.BtnPrevFindActions.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnPrevFindActions.ForeColor = System.Drawing.Color.White; this.BtnPrevFindActions.Image = global::DSPRE.Properties.Resources.arrowup; this.BtnPrevFindActions.Location = new System.Drawing.Point(205, 4); this.BtnPrevFindActions.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnPrevFindActions.Name = "BtnPrevFindActions"; this.BtnPrevFindActions.Size = new System.Drawing.Size(25, 30); this.BtnPrevFindActions.TabIndex = 39; this.BtnPrevFindActions.Tag = "Find previous (Shift+Enter)"; this.BtnPrevFindActions.UseVisualStyleBackColor = true; this.BtnPrevFindActions.Click += new System.EventHandler(this.BtnPrevFindActions_Click); // // BtnCloseFindActions // this.BtnCloseFindActions.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnCloseFindActions.ForeColor = System.Drawing.Color.White; this.BtnCloseFindActions.Image = global::DSPRE.Properties.Resources.Cross; this.BtnCloseFindActions.Location = new System.Drawing.Point(261, 4); this.BtnCloseFindActions.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.BtnCloseFindActions.Name = "BtnCloseFindActions"; this.BtnCloseFindActions.Size = new System.Drawing.Size(25, 30); this.BtnCloseFindActions.TabIndex = 41; this.BtnCloseFindActions.Tag = "Close (Esc)"; this.BtnCloseFindActions.UseVisualStyleBackColor = true; this.BtnCloseFindActions.Click += new System.EventHandler(this.BtnCloseFindActions_Click); // // panelFindActionTextBox // this.panelFindActionTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; this.panelFindActionTextBox.Font = new System.Drawing.Font("Segoe UI", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.panelFindActionTextBox.Location = new System.Drawing.Point(10, 6); this.panelFindActionTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.panelFindActionTextBox.Name = "panelFindActionTextBox"; this.panelFindActionTextBox.Size = new System.Drawing.Size(189, 25); this.panelFindActionTextBox.TabIndex = 38; this.panelFindActionTextBox.TextChanged += new System.EventHandler(this.panelFindActionTextBox_TextChanged); this.panelFindActionTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.actionTxtFind_KeyDown); // // scintillaActionsPanel // this.scintillaActionsPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.scintillaActionsPanel.Location = new System.Drawing.Point(3, 3); this.scintillaActionsPanel.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.scintillaActionsPanel.Name = "scintillaActionsPanel"; this.scintillaActionsPanel.Size = new System.Drawing.Size(678, 559); this.scintillaActionsPanel.TabIndex = 21; // // addScriptFileButton // this.addScriptFileButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addScriptFileButton.Location = new System.Drawing.Point(369, 667); this.addScriptFileButton.Name = "addScriptFileButton"; this.addScriptFileButton.Size = new System.Drawing.Size(106, 25); this.addScriptFileButton.TabIndex = 4; this.addScriptFileButton.Text = "Add Script File"; this.addScriptFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addScriptFileButton.UseVisualStyleBackColor = true; this.addScriptFileButton.Click += new System.EventHandler(this.addScriptFileButton_Click); // // removeScriptFileButton // this.removeScriptFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeScriptFileButton.Location = new System.Drawing.Point(369, 694); this.removeScriptFileButton.Name = "removeScriptFileButton"; this.removeScriptFileButton.Size = new System.Drawing.Size(106, 25); this.removeScriptFileButton.TabIndex = 5; this.removeScriptFileButton.Text = "Remove Last"; this.removeScriptFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeScriptFileButton.UseVisualStyleBackColor = true; this.removeScriptFileButton.Click += new System.EventHandler(this.removeScriptFileButton_Click); // // saveScriptFileButton // this.saveScriptFileButton.Image = global::DSPRE.Properties.Resources.saveButton; this.saveScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveScriptFileButton.Location = new System.Drawing.Point(6, 50); this.saveScriptFileButton.Name = "saveScriptFileButton"; this.saveScriptFileButton.Size = new System.Drawing.Size(154, 23); this.saveScriptFileButton.TabIndex = 1; this.saveScriptFileButton.Text = "&Save Current File"; this.saveScriptFileButton.UseVisualStyleBackColor = true; this.saveScriptFileButton.Click += new System.EventHandler(this.saveScriptFileButton_Click); // // exportScriptFileButton // this.exportScriptFileButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportScriptFileButton.Location = new System.Drawing.Point(294, 667); this.exportScriptFileButton.Name = "exportScriptFileButton"; this.exportScriptFileButton.Size = new System.Drawing.Size(70, 52); this.exportScriptFileButton.TabIndex = 3; this.exportScriptFileButton.Text = "&Export \r\nFile"; this.exportScriptFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportScriptFileButton.UseVisualStyleBackColor = true; this.exportScriptFileButton.Click += new System.EventHandler(this.exportScriptFileButton_Click); // // importScriptFileButton // this.importScriptFileButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importScriptFileButton.Location = new System.Drawing.Point(219, 667); this.importScriptFileButton.Name = "importScriptFileButton"; this.importScriptFileButton.Size = new System.Drawing.Size(70, 52); this.importScriptFileButton.TabIndex = 2; this.importScriptFileButton.Text = "&Import\r\nFile"; this.importScriptFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importScriptFileButton.UseVisualStyleBackColor = true; this.importScriptFileButton.Click += new System.EventHandler(this.importScriptFileButton_Click); // // groupBox8 // this.groupBox8.Controls.Add(this.searchInScriptsButton); this.groupBox8.Controls.Add(this.searchOnlyCurrentScriptCheckBox); this.groupBox8.Controls.Add(this.scrollToBlockStartcheckBox); this.groupBox8.Controls.Add(this.scriptSearchCaseSensitiveCheckBox); this.groupBox8.Controls.Add(this.searchInScriptsTextBox); this.groupBox8.Controls.Add(this.label31); this.groupBox8.Controls.Add(this.searchProgressBar); this.groupBox8.Controls.Add(this.label30); this.groupBox8.Controls.Add(this.label29); this.groupBox8.Controls.Add(this.searchInScriptsResultListBox); this.groupBox8.Location = new System.Drawing.Point(2, 315); this.groupBox8.Name = "groupBox8"; this.groupBox8.Size = new System.Drawing.Size(472, 298); this.groupBox8.TabIndex = 18; this.groupBox8.TabStop = false; this.groupBox8.Text = "Search for commands:"; // // searchInScriptsButton // this.searchInScriptsButton.Image = global::DSPRE.Properties.Resources.SearchMiniIcon; this.searchInScriptsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.searchInScriptsButton.Location = new System.Drawing.Point(272, 27); this.searchInScriptsButton.Name = "searchInScriptsButton"; this.searchInScriptsButton.Size = new System.Drawing.Size(69, 36); this.searchInScriptsButton.TabIndex = 13; this.searchInScriptsButton.Text = "Search"; this.searchInScriptsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.searchInScriptsButton.UseVisualStyleBackColor = true; this.searchInScriptsButton.Click += new System.EventHandler(this.searchInScriptsButton_Click); // // searchOnlyCurrentScriptCheckBox // this.searchOnlyCurrentScriptCheckBox.AutoSize = true; this.searchOnlyCurrentScriptCheckBox.Location = new System.Drawing.Point(347, 15); this.searchOnlyCurrentScriptCheckBox.Name = "searchOnlyCurrentScriptCheckBox"; this.searchOnlyCurrentScriptCheckBox.Size = new System.Drawing.Size(84, 17); this.searchOnlyCurrentScriptCheckBox.TabIndex = 14; this.searchOnlyCurrentScriptCheckBox.Text = "Only Current"; this.searchOnlyCurrentScriptCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.searchOnlyCurrentScriptCheckBox.UseVisualStyleBackColor = true; // // scrollToBlockStartcheckBox // this.scrollToBlockStartcheckBox.AutoSize = true; this.scrollToBlockStartcheckBox.Location = new System.Drawing.Point(347, 61); this.scrollToBlockStartcheckBox.Name = "scrollToBlockStartcheckBox"; this.scrollToBlockStartcheckBox.Size = new System.Drawing.Size(116, 17); this.scrollToBlockStartcheckBox.TabIndex = 16; this.scrollToBlockStartcheckBox.Text = "Scroll to block start"; this.scrollToBlockStartcheckBox.UseVisualStyleBackColor = true; // // scriptSearchCaseSensitiveCheckBox // this.scriptSearchCaseSensitiveCheckBox.AutoSize = true; this.scriptSearchCaseSensitiveCheckBox.Location = new System.Drawing.Point(347, 38); this.scriptSearchCaseSensitiveCheckBox.Name = "scriptSearchCaseSensitiveCheckBox"; this.scriptSearchCaseSensitiveCheckBox.Size = new System.Drawing.Size(83, 17); this.scriptSearchCaseSensitiveCheckBox.TabIndex = 15; this.scriptSearchCaseSensitiveCheckBox.Text = "Match Case"; this.scriptSearchCaseSensitiveCheckBox.UseVisualStyleBackColor = true; // // searchInScriptsTextBox // this.searchInScriptsTextBox.Location = new System.Drawing.Point(11, 36); this.searchInScriptsTextBox.Name = "searchInScriptsTextBox"; this.searchInScriptsTextBox.Size = new System.Drawing.Size(255, 20); this.searchInScriptsTextBox.TabIndex = 12; this.searchInScriptsTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.searchInScriptsTextBox_KeyDown); // // label31 // this.label31.AutoSize = true; this.label31.Location = new System.Drawing.Point(11, 261); this.label31.Name = "label31"; this.label31.Size = new System.Drawing.Size(48, 13); this.label31.TabIndex = 37; this.label31.Text = "Progress"; // // searchProgressBar // this.searchProgressBar.Location = new System.Drawing.Point(11, 277); this.searchProgressBar.Name = "searchProgressBar"; this.searchProgressBar.Size = new System.Drawing.Size(452, 14); this.searchProgressBar.TabIndex = 36; // // label30 // this.label30.AutoSize = true; this.label30.Location = new System.Drawing.Point(11, 68); this.label30.Name = "label30"; this.label30.Size = new System.Drawing.Size(42, 13); this.label30.TabIndex = 35; this.label30.Text = "Results"; // // label29 // this.label29.AutoSize = true; this.label29.Location = new System.Drawing.Point(11, 20); this.label29.Name = "label29"; this.label29.Size = new System.Drawing.Size(77, 13); this.label29.TabIndex = 33; this.label29.Text = "Line to search:"; // // searchInScriptsResultListBox // this.searchInScriptsResultListBox.Location = new System.Drawing.Point(11, 84); this.searchInScriptsResultListBox.Name = "searchInScriptsResultListBox"; this.searchInScriptsResultListBox.Size = new System.Drawing.Size(452, 173); this.searchInScriptsResultListBox.TabIndex = 17; this.searchInScriptsResultListBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.searchInScriptsResultListBox_KeyDown); this.searchInScriptsResultListBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.searchInScripts_GoToEntryResult); // // groupBox24 // this.groupBox24.Controls.Add(this.ScriptNavigatorTabControl); this.groupBox24.Location = new System.Drawing.Point(3, 75); this.groupBox24.Name = "groupBox24"; this.groupBox24.Size = new System.Drawing.Size(472, 234); this.groupBox24.TabIndex = 42; this.groupBox24.TabStop = false; this.groupBox24.Text = "Navigator"; // // ScriptNavigatorTabControl // this.ScriptNavigatorTabControl.Controls.Add(this.ScriptsNavTab); this.ScriptNavigatorTabControl.Controls.Add(this.FunctionsNavTab); this.ScriptNavigatorTabControl.Controls.Add(this.ActionsNavTab); this.ScriptNavigatorTabControl.Location = new System.Drawing.Point(6, 16); this.ScriptNavigatorTabControl.Name = "ScriptNavigatorTabControl"; this.ScriptNavigatorTabControl.SelectedIndex = 0; this.ScriptNavigatorTabControl.Size = new System.Drawing.Size(456, 209); this.ScriptNavigatorTabControl.TabIndex = 8; // // ScriptsNavTab // this.ScriptsNavTab.Controls.Add(this.scriptsNavListbox); this.ScriptsNavTab.Location = new System.Drawing.Point(4, 22); this.ScriptsNavTab.Name = "ScriptsNavTab"; this.ScriptsNavTab.Padding = new System.Windows.Forms.Padding(3); this.ScriptsNavTab.Size = new System.Drawing.Size(448, 183); this.ScriptsNavTab.TabIndex = 0; this.ScriptsNavTab.Text = "Scripts"; this.ScriptsNavTab.UseVisualStyleBackColor = true; // // scriptsNavListbox // this.scriptsNavListbox.Dock = System.Windows.Forms.DockStyle.Fill; this.scriptsNavListbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.scriptsNavListbox.ItemHeight = 15; this.scriptsNavListbox.Location = new System.Drawing.Point(3, 3); this.scriptsNavListbox.Name = "scriptsNavListbox"; this.scriptsNavListbox.Size = new System.Drawing.Size(442, 177); this.scriptsNavListbox.TabIndex = 9; this.scriptsNavListbox.SelectedIndexChanged += new System.EventHandler(this.scriptsNavListbox_SelectedIndexChanged); // // FunctionsNavTab // this.FunctionsNavTab.Controls.Add(this.functionsNavListbox); this.FunctionsNavTab.Location = new System.Drawing.Point(4, 22); this.FunctionsNavTab.Name = "FunctionsNavTab"; this.FunctionsNavTab.Padding = new System.Windows.Forms.Padding(3); this.FunctionsNavTab.Size = new System.Drawing.Size(448, 183); this.FunctionsNavTab.TabIndex = 1; this.FunctionsNavTab.Text = "Functions"; this.FunctionsNavTab.UseVisualStyleBackColor = true; // // functionsNavListbox // this.functionsNavListbox.Dock = System.Windows.Forms.DockStyle.Fill; this.functionsNavListbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.functionsNavListbox.ItemHeight = 15; this.functionsNavListbox.Location = new System.Drawing.Point(3, 3); this.functionsNavListbox.Name = "functionsNavListbox"; this.functionsNavListbox.Size = new System.Drawing.Size(442, 177); this.functionsNavListbox.TabIndex = 10; this.functionsNavListbox.SelectedIndexChanged += new System.EventHandler(this.functionsNavListbox_SelectedIndexChanged); // // ActionsNavTab // this.ActionsNavTab.Controls.Add(this.actionsNavListbox); this.ActionsNavTab.Location = new System.Drawing.Point(4, 22); this.ActionsNavTab.Name = "ActionsNavTab"; this.ActionsNavTab.Padding = new System.Windows.Forms.Padding(3); this.ActionsNavTab.Size = new System.Drawing.Size(448, 183); this.ActionsNavTab.TabIndex = 2; this.ActionsNavTab.Text = "Actions"; this.ActionsNavTab.UseVisualStyleBackColor = true; // // actionsNavListbox // this.actionsNavListbox.Dock = System.Windows.Forms.DockStyle.Fill; this.actionsNavListbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.actionsNavListbox.ItemHeight = 15; this.actionsNavListbox.Location = new System.Drawing.Point(3, 3); this.actionsNavListbox.Name = "actionsNavListbox"; this.actionsNavListbox.Size = new System.Drawing.Size(442, 177); this.actionsNavListbox.TabIndex = 11; this.actionsNavListbox.SelectedIndexChanged += new System.EventHandler(this.actionsNavListbox_SelectedIndexChanged); // // openFindScriptEditorButton // this.openFindScriptEditorButton.Image = global::DSPRE.Properties.Resources.SearchMiniIcon; this.openFindScriptEditorButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.openFindScriptEditorButton.Location = new System.Drawing.Point(1079, 11); this.openFindScriptEditorButton.Name = "openFindScriptEditorButton"; this.openFindScriptEditorButton.Size = new System.Drawing.Size(24, 24); this.openFindScriptEditorButton.TabIndex = 27; this.openFindScriptEditorButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.openFindScriptEditorButton.UseVisualStyleBackColor = true; this.openFindScriptEditorButton.Click += new System.EventHandler(this.openFindScriptEditorButton_Click); // // expandScriptTextButton // this.expandScriptTextButton.Image = global::DSPRE.Properties.Resources.expandArrow; this.expandScriptTextButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.expandScriptTextButton.Location = new System.Drawing.Point(1107, 11); this.expandScriptTextButton.Name = "expandScriptTextButton"; this.expandScriptTextButton.Size = new System.Drawing.Size(24, 24); this.expandScriptTextButton.TabIndex = 28; this.expandScriptTextButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.expandScriptTextButton.UseVisualStyleBackColor = true; this.expandScriptTextButton.Click += new System.EventHandler(this.ScriptEditorExpandButton_Click); // // compressScriptTextButton // this.compressScriptTextButton.Image = global::DSPRE.Properties.Resources.compressArrow; this.compressScriptTextButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.compressScriptTextButton.Location = new System.Drawing.Point(1135, 11); this.compressScriptTextButton.Name = "compressScriptTextButton"; this.compressScriptTextButton.Size = new System.Drawing.Size(24, 24); this.compressScriptTextButton.TabIndex = 29; this.compressScriptTextButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.compressScriptTextButton.UseVisualStyleBackColor = true; this.compressScriptTextButton.Click += new System.EventHandler(this.ScriptEditorCollapseButton_Click); // // scriptEditorWordWrapCheckbox // this.scriptEditorWordWrapCheckbox.Appearance = System.Windows.Forms.Appearance.Button; this.scriptEditorWordWrapCheckbox.AutoSize = true; this.scriptEditorWordWrapCheckbox.Checked = true; this.scriptEditorWordWrapCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.scriptEditorWordWrapCheckbox.Location = new System.Drawing.Point(907, 12); this.scriptEditorWordWrapCheckbox.Name = "scriptEditorWordWrapCheckbox"; this.scriptEditorWordWrapCheckbox.Size = new System.Drawing.Size(72, 23); this.scriptEditorWordWrapCheckbox.TabIndex = 25; this.scriptEditorWordWrapCheckbox.Text = "Word Wrap"; this.scriptEditorWordWrapCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.scriptEditorWordWrapCheckbox.UseVisualStyleBackColor = true; this.scriptEditorWordWrapCheckbox.CheckedChanged += new System.EventHandler(this.scriptEditorWordWrapCheckbox_CheckedChanged); // // scriptEditorWhitespacesCheckbox // this.scriptEditorWhitespacesCheckbox.Appearance = System.Windows.Forms.Appearance.Button; this.scriptEditorWhitespacesCheckbox.AutoSize = true; this.scriptEditorWhitespacesCheckbox.Location = new System.Drawing.Point(981, 12); this.scriptEditorWhitespacesCheckbox.Name = "scriptEditorWhitespacesCheckbox"; this.scriptEditorWhitespacesCheckbox.Size = new System.Drawing.Size(79, 23); this.scriptEditorWhitespacesCheckbox.TabIndex = 26; this.scriptEditorWhitespacesCheckbox.Text = "Whitespaces"; this.scriptEditorWhitespacesCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.scriptEditorWhitespacesCheckbox.UseVisualStyleBackColor = true; this.scriptEditorWhitespacesCheckbox.CheckedChanged += new System.EventHandler(this.viewWhiteSpacesButton_Click); // // groupBox26 // this.groupBox26.Controls.Add(this.scriptEditorNumberFormatNoPreference); this.groupBox26.Controls.Add(this.scriptEditorNumberFormatDecimal); this.groupBox26.Controls.Add(this.scriptEditorNumberFormatHex); this.groupBox26.Location = new System.Drawing.Point(700, 4); this.groupBox26.Name = "groupBox26"; this.groupBox26.Size = new System.Drawing.Size(190, 36); this.groupBox26.TabIndex = 50; this.groupBox26.TabStop = false; this.groupBox26.Text = "Number Format Preference"; // // scriptEditorNumberFormatNoPreference // this.scriptEditorNumberFormatNoPreference.AutoSize = true; this.scriptEditorNumberFormatNoPreference.Checked = true; this.scriptEditorNumberFormatNoPreference.Location = new System.Drawing.Point(11, 14); this.scriptEditorNumberFormatNoPreference.Name = "scriptEditorNumberFormatNoPreference"; this.scriptEditorNumberFormatNoPreference.Size = new System.Drawing.Size(47, 17); this.scriptEditorNumberFormatNoPreference.TabIndex = 22; this.scriptEditorNumberFormatNoPreference.TabStop = true; this.scriptEditorNumberFormatNoPreference.Text = "Auto"; this.scriptEditorNumberFormatNoPreference.UseVisualStyleBackColor = true; this.scriptEditorNumberFormatNoPreference.CheckedChanged += new System.EventHandler(this.UpdateScriptNumberFormatNoPref); // // scriptEditorNumberFormatDecimal // this.scriptEditorNumberFormatDecimal.AutoSize = true; this.scriptEditorNumberFormatDecimal.Location = new System.Drawing.Point(121, 14); this.scriptEditorNumberFormatDecimal.Name = "scriptEditorNumberFormatDecimal"; this.scriptEditorNumberFormatDecimal.Size = new System.Drawing.Size(63, 17); this.scriptEditorNumberFormatDecimal.TabIndex = 24; this.scriptEditorNumberFormatDecimal.Text = "Decimal"; this.scriptEditorNumberFormatDecimal.UseVisualStyleBackColor = true; this.scriptEditorNumberFormatDecimal.CheckedChanged += new System.EventHandler(this.UpdateScriptNumberFormatDec); // // scriptEditorNumberFormatHex // this.scriptEditorNumberFormatHex.AutoSize = true; this.scriptEditorNumberFormatHex.Location = new System.Drawing.Point(68, 14); this.scriptEditorNumberFormatHex.Name = "scriptEditorNumberFormatHex"; this.scriptEditorNumberFormatHex.Size = new System.Drawing.Size(44, 17); this.scriptEditorNumberFormatHex.TabIndex = 23; this.scriptEditorNumberFormatHex.Text = "Hex"; this.scriptEditorNumberFormatHex.UseVisualStyleBackColor = true; this.scriptEditorNumberFormatHex.CheckedChanged += new System.EventHandler(this.UpdateScriptNumberFormatHex); // // viewLevelScriptButton // this.viewLevelScriptButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.viewLevelScriptButton.Location = new System.Drawing.Point(481, 681); this.viewLevelScriptButton.Name = "viewLevelScriptButton"; this.viewLevelScriptButton.Size = new System.Drawing.Size(91, 25); this.viewLevelScriptButton.TabIndex = 6; this.viewLevelScriptButton.Text = "View level script"; this.viewLevelScriptButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.viewLevelScriptButton.UseVisualStyleBackColor = true; this.viewLevelScriptButton.Click += new System.EventHandler(this.viewLevelScriptButton_Click); // // locateCurrentScriptFile // this.locateCurrentScriptFile.Image = global::DSPRE.Properties.Resources.open_file; this.locateCurrentScriptFile.Location = new System.Drawing.Point(423, 29); this.locateCurrentScriptFile.Name = "locateCurrentScriptFile"; this.locateCurrentScriptFile.Size = new System.Drawing.Size(42, 40); this.locateCurrentScriptFile.TabIndex = 7; this.locateCurrentScriptFile.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.locateCurrentScriptFile.UseVisualStyleBackColor = true; this.locateCurrentScriptFile.Click += new System.EventHandler(this.locateCurrentScriptFile_Click); // // ScriptEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.locateCurrentScriptFile); this.Controls.Add(this.groupBox24); this.Controls.Add(this.viewLevelScriptButton); this.Controls.Add(this.selectScriptFileComboBox); this.Controls.Add(this.groupBox26); this.Controls.Add(this.label5); this.Controls.Add(this.scriptEditorWhitespacesCheckbox); this.Controls.Add(this.scriptEditorWordWrapCheckbox); this.Controls.Add(this.addScriptFileButton); this.Controls.Add(this.compressScriptTextButton); this.Controls.Add(this.removeScriptFileButton); this.Controls.Add(this.expandScriptTextButton); this.Controls.Add(this.saveScriptFileButton); this.Controls.Add(this.openFindScriptEditorButton); this.Controls.Add(this.exportScriptFileButton); this.Controls.Add(this.importScriptFileButton); this.Controls.Add(this.groupBox8); this.Controls.Add(this.scriptEditorTabControl); this.Name = "ScriptEditor"; this.Size = new System.Drawing.Size(1177, 735); this.scriptEditorTabControl.ResumeLayout(false); this.scriptsTabPage.ResumeLayout(false); this.PanelSearchScripts.ResumeLayout(false); this.PanelSearchScripts.PerformLayout(); this.functionsTabPage.ResumeLayout(false); this.PanelSearchFunctions.ResumeLayout(false); this.PanelSearchFunctions.PerformLayout(); this.actionsTabPage.ResumeLayout(false); this.PanelSearchActions.ResumeLayout(false); this.PanelSearchActions.PerformLayout(); this.groupBox8.ResumeLayout(false); this.groupBox8.PerformLayout(); this.groupBox24.ResumeLayout(false); this.ScriptNavigatorTabControl.ResumeLayout(false); this.ScriptsNavTab.ResumeLayout(false); this.FunctionsNavTab.ResumeLayout(false); this.ActionsNavTab.ResumeLayout(false); this.groupBox26.ResumeLayout(false); this.groupBox26.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.CheckBox scrollToBlockStartcheckBox; #endregion public System.Windows.Forms.ComboBox selectScriptFileComboBox; private System.Windows.Forms.Label label5; public System.Windows.Forms.TabControl scriptEditorTabControl; private System.Windows.Forms.TabPage scriptsTabPage; private System.Windows.Forms.Panel PanelSearchScripts; private System.Windows.Forms.Button BtnNextFindScript; private System.Windows.Forms.Button BtnPrevFindScript; private System.Windows.Forms.Button BtnCloseFindScript; private System.Windows.Forms.TextBox panelFindScriptTextBox; private System.Windows.Forms.Panel scintillaScriptsPanel; private System.Windows.Forms.TabPage functionsTabPage; private System.Windows.Forms.Panel PanelSearchFunctions; private System.Windows.Forms.Button BtnNextFindFunc; private System.Windows.Forms.Button BtnPrevFindFunc; private System.Windows.Forms.Button BtnCloseFindFunc; private System.Windows.Forms.TextBox panelFindFunctionTextBox; private System.Windows.Forms.Panel scintillaFunctionsPanel; private System.Windows.Forms.TabPage actionsTabPage; private System.Windows.Forms.Panel PanelSearchActions; private System.Windows.Forms.Button BtnNextFindActions; private System.Windows.Forms.Button BtnPrevFindActions; private System.Windows.Forms.Button BtnCloseFindActions; private System.Windows.Forms.TextBox panelFindActionTextBox; private System.Windows.Forms.Panel scintillaActionsPanel; private System.Windows.Forms.Button addScriptFileButton; private System.Windows.Forms.Button removeScriptFileButton; private System.Windows.Forms.Button saveScriptFileButton; private System.Windows.Forms.Button exportScriptFileButton; private System.Windows.Forms.Button importScriptFileButton; private System.Windows.Forms.GroupBox groupBox8; private System.Windows.Forms.CheckBox searchOnlyCurrentScriptCheckBox; private System.Windows.Forms.CheckBox scriptSearchCaseSensitiveCheckBox; private System.Windows.Forms.TextBox searchInScriptsTextBox; private System.Windows.Forms.Label label31; private System.Windows.Forms.ProgressBar searchProgressBar; private System.Windows.Forms.Label label30; private System.Windows.Forms.Label label29; private System.Windows.Forms.Button searchInScriptsButton; private System.Windows.Forms.ListBox searchInScriptsResultListBox; private System.Windows.Forms.GroupBox groupBox24; private System.Windows.Forms.TabControl ScriptNavigatorTabControl; private System.Windows.Forms.TabPage ScriptsNavTab; private System.Windows.Forms.ListBox scriptsNavListbox; private System.Windows.Forms.TabPage FunctionsNavTab; private System.Windows.Forms.ListBox functionsNavListbox; private System.Windows.Forms.TabPage ActionsNavTab; private System.Windows.Forms.ListBox actionsNavListbox; private System.Windows.Forms.Button openFindScriptEditorButton; private System.Windows.Forms.Button expandScriptTextButton; private System.Windows.Forms.Button compressScriptTextButton; private System.Windows.Forms.CheckBox scriptEditorWordWrapCheckbox; private System.Windows.Forms.CheckBox scriptEditorWhitespacesCheckbox; private System.Windows.Forms.GroupBox groupBox26; private System.Windows.Forms.RadioButton scriptEditorNumberFormatNoPreference; private System.Windows.Forms.RadioButton scriptEditorNumberFormatDecimal; private System.Windows.Forms.RadioButton scriptEditorNumberFormatHex; private System.Windows.Forms.Button viewLevelScriptButton; private System.Windows.Forms.Button locateCurrentScriptFile; } } ================================================ FILE: DS_Map/Editors/ScriptEditor.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.IO; using System.Windows.Forms; using DSPRE.Resources; using DSPRE.ROMFiles; using ScintillaNET; using ScintillaNET.Utils; using System.Globalization; namespace DSPRE.Editors { public partial class ScriptEditor : UserControl { public bool scriptEditorIsReady { get; set; } = false; private Scintilla ScriptTextArea; private Scintilla FunctionTextArea; private Scintilla ActionTextArea; private SearchManager scriptSearchManager; private SearchManager functionSearchManager; private SearchManager actionSearchManager; private Scintilla currentScintillaEditor; private SearchManager currentSearchManager; private bool scriptsDirty = false; private bool functionsDirty = false; private bool actionsDirty = false; private string cmdKeyWords = ""; private string secondaryKeyWords = ""; private ScriptFile currentScriptFile; MainProgram _parent; /// /// the background color of the text area /// private readonly Color BACK_COLOR = Color.FromArgb(0x2A211C); /// /// default text color of the text area /// private readonly Color FORE_COLOR = Color.FromArgb(0xB7B7B7); /// /// change this to whatever margin you want the line numbers to show in /// private const int NUMBER_MARGIN = 1; /// /// change this to whatever margin you want the bookmarks/breakpoints to show in /// private const int BOOKMARK_MARGIN = 2; private const int BOOKMARK_MARKER = 2; /// /// change this to whatever margin you want the code folding tree (+/-) to show in /// private const int FOLDING_MARGIN = 3; /// /// set this true to show circular buttons for code folding (the [+] and [-] buttons on the margin) /// private const bool CODE_FOLDING_CIRCULAR = true; readonly Point initial_importScriptFileButton_location; readonly Point initial_exportScriptFileButton_location; readonly Point initial_addScriptFileButton_location; readonly Point initial_removeScriptFileButton_location; readonly Point initial_viewLevelScript_location; readonly Point new_importScriptFileButton_location; readonly Point new_exportScriptFileButton_location; readonly Point new_addScriptFileButton_location; readonly Point new_removeScriptFileButton_location; readonly Point new_viewLevelScript_location; public ScriptEditor() { InitializeComponent(); //initially, these buttons are off the canvas so they can be interacted with in the designer //they are then moved as needed initial_importScriptFileButton_location = importScriptFileButton.Location; initial_exportScriptFileButton_location = exportScriptFileButton.Location; initial_addScriptFileButton_location = addScriptFileButton.Location; initial_removeScriptFileButton_location = removeScriptFileButton.Location; initial_viewLevelScript_location = viewLevelScriptButton.Location; new_importScriptFileButton_location = new Point(164, 22); new_exportScriptFileButton_location = new Point(239, 22); new_addScriptFileButton_location = new Point(314, 22); new_removeScriptFileButton_location = new Point(314, 49); new_viewLevelScript_location = new Point(326, 37); importScriptFileButton.Enabled = false; exportScriptFileButton.Enabled = false; addScriptFileButton.Enabled = false; removeScriptFileButton.Enabled = false; viewLevelScriptButton.Enabled = false; } public void SetupScriptEditor(MainProgram parent, bool force = false) { if (scriptEditorIsReady && !force) { return; } scriptEditorIsReady = true; /* Extract essential NARCs sub-archives*/ Helpers.statusLabelMessage("Setting up Script Editor..."); this._parent = parent; SetupScriptEditorTextAreas(); Update(); DSUtils.TryUnpackNarcs(new List { RomInfo.DirNames.scripts }); //12 = scripts Narc Dir populate_selectScriptFileComboBox(0); UpdateScriptNumberCheckBox((NumberStyles)Properties.Settings.Default.scriptEditorFormatPreference); Helpers.statusLabelMessage(); } public void OpenScriptEditor(MainProgram parent, int scriptFileID) { SetupScriptEditor(parent); scriptEditorTabControl.SelectedIndex = 0; selectScriptFileComboBox.SelectedIndex = scriptFileID; EditorPanels.mainTabControl.SelectedTab = EditorPanels.scriptEditorTabPage; } private void SetupScriptEditorTextAreas() { //PREPARE SCRIPT EDITOR KEYWORDS cmdKeyWords = String.Join(" ", RomInfo.ScriptCommandNamesDict.Values) + " " + String.Join(" ", ScriptDatabase.movementsDictIDName.Values); cmdKeyWords += " " + cmdKeyWords.ToUpper() + " " + cmdKeyWords.ToLower(); secondaryKeyWords = String.Join(" ", RomInfo.ScriptComparisonOperatorsDict.Values) + " " + String.Join(" ", ScriptDatabase.specialOverworlds.Values) + " " + String.Join(" ", ScriptDatabase.overworldDirections.Values) + " " + ScriptFile.ContainerTypes.Script.ToString() + " " + ScriptFile.ContainerTypes.Function.ToString() + " " + ScriptFile.ContainerTypes.Action.ToString() + " " + Event.EventType.Overworld + " " + Overworld.MovementCodeKW; secondaryKeyWords += " " + secondaryKeyWords.ToUpper() + " " + secondaryKeyWords.ToLower(); // CREATE CONTROLS ScriptTextArea = new Scintilla(); scriptSearchManager = new SearchManager(EditorPanels.MainProgram, ScriptTextArea, panelFindScriptTextBox, PanelSearchScripts); scintillaScriptsPanel.Controls.Clear(); scintillaScriptsPanel.Controls.Add(ScriptTextArea); FunctionTextArea = new Scintilla(); functionSearchManager = new SearchManager(EditorPanels.MainProgram, FunctionTextArea, panelFindFunctionTextBox, PanelSearchFunctions); scintillaFunctionsPanel.Controls.Clear(); scintillaFunctionsPanel.Controls.Add(FunctionTextArea); ActionTextArea = new Scintilla(); actionSearchManager = new SearchManager(EditorPanels.MainProgram, ActionTextArea, panelFindActionTextBox, PanelSearchActions); scintillaActionsPanel.Controls.Clear(); scintillaActionsPanel.Controls.Add(ActionTextArea); currentScintillaEditor = ScriptTextArea; currentSearchManager = scriptSearchManager; // BASIC CONFIG ScriptTextArea.TextChanged += (OnTextChangedScript); FunctionTextArea.TextChanged += (OnTextChangedFunction); ActionTextArea.TextChanged += (OnTextChangedAction); // INITIAL VIEW CONFIG InitialViewConfig(ScriptTextArea); InitialViewConfig(FunctionTextArea); InitialViewConfig(ActionTextArea); InitSyntaxColoring(ScriptTextArea); InitSyntaxColoring(FunctionTextArea); InitSyntaxColoring(ActionTextArea); // NUMBER MARGIN InitNumberMargin(ScriptTextArea, ScriptTextArea_MarginClick); InitNumberMargin(FunctionTextArea, FunctionTextArea_MarginClick); InitNumberMargin(ActionTextArea, ActionTextArea_MarginClick); // BOOKMARK MARGIN InitBookmarkMargin(ScriptTextArea); InitBookmarkMargin(FunctionTextArea); InitBookmarkMargin(ActionTextArea); // CODE FOLDING MARGIN InitCodeFolding(ScriptTextArea); InitCodeFolding(FunctionTextArea); InitCodeFolding(ActionTextArea); // INIT HOTKEYS InitHotkeys(ScriptTextArea, scriptSearchManager); InitHotkeys(FunctionTextArea, functionSearchManager); InitHotkeys(ActionTextArea, actionSearchManager); // INIT TOOLTIPS DWELLING /* ScriptTextArea.MouseDwellTime = 300; ScriptTextArea.DwellEnd += TextArea_DwellEnd; ScriptTextArea.DwellStart += TextArea_DwellStart; FunctionTextArea.MouseDwellTime = 300; FunctionTextArea.DwellEnd += TextArea_DwellEnd; FunctionTextArea.DwellStart += TextArea_DwellStart; */ } private void populate_selectScriptFileComboBox(int selectedIndex = 0) { selectScriptFileComboBox.Items.Clear(); int scriptCount = Filesystem.GetScriptCount(); for (int i = 0; i < scriptCount; i++) { // ScriptFile currentScriptFile = new ScriptFile(i, true, true); // selectScriptFileComboBox.Items.Add(currentScriptFile); selectScriptFileComboBox.Items.Add($"Script File {i}"); } selectScriptFileComboBox.SelectedIndex = selectedIndex; } private void InitialViewConfig(Scintilla textArea) { textArea.Dock = DockStyle.Fill; textArea.WrapMode = WrapMode.Word; textArea.IndentationGuides = IndentView.LookBoth; textArea.CaretPeriod = 500; textArea.CaretForeColor = Color.White; textArea.SetSelectionBackColor(true, Color.FromArgb(0x114D9C)); textArea.WrapIndentMode = WrapIndentMode.Same; } private void InitSyntaxColoring(Scintilla textArea) { // Configure the default style textArea.StyleResetDefault(); textArea.Styles[Style.Default].Font = "Consolas"; textArea.Styles[Style.Default].Size = 12; textArea.Styles[Style.Default].BackColor = Color.FromArgb(0x212121); textArea.Styles[Style.Default].ForeColor = Color.FromArgb(0xFFFFFF); textArea.StyleClearAll(); // Configure the lexer styles textArea.Styles[Style.Python.Identifier].ForeColor = Color.FromArgb(0xD0DAE2); textArea.Styles[Style.Python.CommentLine].ForeColor = Color.FromArgb(0x40BF57); textArea.Styles[Style.Python.Number].ForeColor = Color.FromArgb(0xFFFF00); textArea.Styles[Style.Python.String].ForeColor = Color.FromArgb(0xFF00FF); textArea.Styles[Style.Python.Character].ForeColor = Color.FromArgb(0xE95454); textArea.Styles[Style.Python.Operator].ForeColor = Color.FromArgb(0xFFFF00); textArea.Styles[Style.Python.Word].ForeColor = Color.FromArgb(0x48A8EE); textArea.Styles[Style.Python.Word2].ForeColor = Color.FromArgb(0xF98906); textArea.Lexer = Lexer.Python; textArea.SetKeywords(0, cmdKeyWords); textArea.SetKeywords(1, secondaryKeyWords); } private void InitNumberMargin(Scintilla textArea, EventHandler textArea_MarginClick) { textArea.Styles[Style.LineNumber].BackColor = BACK_COLOR; textArea.Styles[Style.LineNumber].ForeColor = FORE_COLOR; textArea.Styles[Style.IndentGuide].ForeColor = FORE_COLOR; textArea.Styles[Style.IndentGuide].BackColor = BACK_COLOR; Margin nums = textArea.Margins[NUMBER_MARGIN]; nums.Type = MarginType.Number; nums.Sensitive = true; nums.Mask = 0; textArea.MarginClick += textArea_MarginClick; } private void InitBookmarkMargin(Scintilla textArea) { //TextArea.SetFoldMarginColor(true, IntToColor(BACK_COLOR)); Margin margin = textArea.Margins[BOOKMARK_MARGIN]; margin.Width = 20; margin.Sensitive = true; margin.Type = MarginType.Symbol; margin.Mask = (1 << BOOKMARK_MARKER); //margin.Cursor = MarginCursor.Arrow; Marker marker = textArea.Markers[BOOKMARK_MARKER]; marker.Symbol = MarkerSymbol.Circle; marker.SetBackColor(Color.FromArgb(0xFF003B)); marker.SetForeColor(Color.FromArgb(0x000000)); marker.SetAlpha(100); } private void InitCodeFolding(Scintilla textArea) { textArea.SetFoldMarginColor(true, BACK_COLOR); textArea.SetFoldMarginHighlightColor(true, BACK_COLOR); // Enable code folding textArea.SetProperty("fold", "1"); textArea.SetProperty("fold.compact", "1"); // Configure a margin to display folding symbols textArea.Margins[FOLDING_MARGIN].Type = MarginType.Symbol; textArea.Margins[FOLDING_MARGIN].Mask = Marker.MaskFolders; textArea.Margins[FOLDING_MARGIN].Sensitive = true; textArea.Margins[FOLDING_MARGIN].Width = 20; // Set colors for all folding markers for (int i = 25; i <= 31; i++) { textArea.Markers[i].SetForeColor(BACK_COLOR); // styles for [+] and [-] textArea.Markers[i].SetBackColor(FORE_COLOR); // styles for [+] and [-] } // Configure folding markers with respective symbols textArea.Markers[Marker.Folder].Symbol = CODE_FOLDING_CIRCULAR ? MarkerSymbol.CirclePlus : MarkerSymbol.BoxPlus; textArea.Markers[Marker.FolderOpen].Symbol = CODE_FOLDING_CIRCULAR ? MarkerSymbol.CircleMinus : MarkerSymbol.BoxMinus; textArea.Markers[Marker.FolderEnd].Symbol = CODE_FOLDING_CIRCULAR ? MarkerSymbol.CirclePlusConnected : MarkerSymbol.BoxPlusConnected; textArea.Markers[Marker.FolderMidTail].Symbol = MarkerSymbol.TCorner; textArea.Markers[Marker.FolderOpenMid].Symbol = CODE_FOLDING_CIRCULAR ? MarkerSymbol.CircleMinusConnected : MarkerSymbol.BoxMinusConnected; textArea.Markers[Marker.FolderSub].Symbol = MarkerSymbol.VLine; textArea.Markers[Marker.FolderTail].Symbol = MarkerSymbol.LCorner; // Enable automatic folding textArea.AutomaticFold = (AutomaticFold.Show | AutomaticFold.Click | AutomaticFold.Change); } private void InitHotkeys(Scintilla scintillaTb, SearchManager sm) { // register the hotkeys with the form HotKeyManager.AddHotKey(scintillaTb, sm.OpenSearch, Keys.F, true); HotKeyManager.AddHotKey(scintillaTb, () => Uppercase(scintillaTb), Keys.U, true); HotKeyManager.AddHotKey(scintillaTb, () => Lowercase(scintillaTb), Keys.L, true); HotKeyManager.AddHotKey(scintillaTb, () => ZoomIn(scintillaTb), Keys.Oemplus, true); HotKeyManager.AddHotKey(scintillaTb, () => ZoomOut(scintillaTb), Keys.OemMinus, true); HotKeyManager.AddHotKey(scintillaTb, () => ZoomDefault(scintillaTb), Keys.D0, true); HotKeyManager.AddHotKey(scintillaTb, sm.CloseSearch, Keys.Escape); // remove conflicting hotkeys from scintilla scintillaTb.ClearCmdKey(Keys.Control | Keys.F); scintillaTb.ClearCmdKey(Keys.Control | Keys.R); scintillaTb.ClearCmdKey(Keys.Control | Keys.H); scintillaTb.ClearCmdKey(Keys.Control | Keys.L); scintillaTb.ClearCmdKey(Keys.Control | Keys.U); } private void Uppercase(Scintilla textArea) { // save the selection int start = textArea.SelectionStart; int end = textArea.SelectionEnd; // modify the selected text textArea.ReplaceSelection(textArea.GetTextRange(start, end - start).ToUpper()); // preserve the original selection textArea.SetSelection(start, end); } private void Lowercase(Scintilla textArea) { // save the selection int start = textArea.SelectionStart; int end = textArea.SelectionEnd; // modify the selected text textArea.ReplaceSelection(textArea.GetTextRange(start, end - start).ToLower()); // preserve the original selection textArea.SetSelection(start, end); } private void ZoomIn(Scintilla textArea) { textArea.ZoomIn(); } private void ZoomOut(Scintilla textArea) { textArea.ZoomOut(); } private void ZoomDefault(Scintilla textArea) { textArea.Zoom = 0; } private void ScriptEditorSetClean() { Helpers.DisableHandlers(); scriptsTabPage.Text = ScriptFile.ContainerTypes.Script.ToString() + "s"; functionsTabPage.Text = ScriptFile.ContainerTypes.Function.ToString() + "s"; actionsTabPage.Text = ScriptFile.ContainerTypes.Action.ToString() + "s"; scriptsDirty = functionsDirty = actionsDirty = false; Helpers.EnableHandlers(); } private void OnTextChangedScript(object sender, EventArgs e) { ScriptTextArea.Margins[NUMBER_MARGIN].Width = ScriptTextArea.Lines.Count.ToString().Length * 13; scriptsDirty = true; scriptsTabPage.Text = ScriptFile.ContainerTypes.Script.ToString() + "s" + "*"; } private void OnTextChangedFunction(object sender, EventArgs e) { FunctionTextArea.Margins[NUMBER_MARGIN].Width = FunctionTextArea.Lines.Count.ToString().Length * 13; functionsDirty = true; functionsTabPage.Text = ScriptFile.ContainerTypes.Function.ToString() + "s" + "*"; } private void OnTextChangedAction(object sender, EventArgs e) { ActionTextArea.Margins[NUMBER_MARGIN].Width = ActionTextArea.Lines.Count.ToString().Length * 13; actionsDirty = true; actionsTabPage.Text = ScriptFile.ContainerTypes.Action.ToString() + "s" + "*"; } private void ScriptTextArea_MarginClick(object sender, MarginClickEventArgs e) { MarginClick(ScriptTextArea, e); } private void FunctionTextArea_MarginClick(object sender, MarginClickEventArgs e) { MarginClick(FunctionTextArea, e); } private void ActionTextArea_MarginClick(object sender, MarginClickEventArgs e) { MarginClick(ActionTextArea, e); } private void MarginClick(Scintilla textArea, MarginClickEventArgs e) { if (e.Margin == BOOKMARK_MARGIN) { // Do we have a marker for this line? const uint mask = (1 << BOOKMARK_MARKER); Line line = textArea.Lines[textArea.LineFromPosition(e.Position)]; if ((line.MarkerGet() & mask) > 0) { // Remove existing bookmark line.MarkerDelete(BOOKMARK_MARKER); } else { // Add bookmark line.MarkerAdd(BOOKMARK_MARKER); } } } private void selectScriptFileComboBox_SelectedIndexChanged(object sender, EventArgs e) { DisplayScript(); } public void UpdateScriptNumberCheckBox(NumberStyles toSet) { Helpers.DisableHandlers(); Properties.Settings.Default.scriptEditorFormatPreference = (int)toSet; switch ((NumberStyles)Properties.Settings.Default.scriptEditorFormatPreference) { case NumberStyles.None: scriptEditorNumberFormatNoPreference.Checked = true; break; case NumberStyles.HexNumber: scriptEditorNumberFormatHex.Checked = true; break; case NumberStyles.Integer: scriptEditorNumberFormatDecimal.Checked = true; break; } Console.WriteLine("changed style to " + Properties.Settings.Default.scriptEditorFormatPreference); Helpers.EnableHandlers(); } private void UpdateScriptNumberFormat(NumberStyles numberStyle) { if (Helpers.HandlersEnabled) { NumberStyles old = (NumberStyles)Properties.Settings.Default.scriptEditorFormatPreference; //Local Backup Properties.Settings.Default.scriptEditorFormatPreference = (int)numberStyle; if (!DisplayScript()) { UpdateScriptNumberCheckBox(old); //Restore old checkbox status! Script couldn't be redrawn } } } private void UpdateScriptNumberFormatNoPref(object sender, EventArgs e) { UpdateScriptNumberFormat(NumberStyles.None); } private void UpdateScriptNumberFormatDec(object sender, EventArgs e) { UpdateScriptNumberFormat(NumberStyles.Integer); } private void UpdateScriptNumberFormatHex(object sender, EventArgs e) { UpdateScriptNumberFormat(NumberStyles.HexNumber); } private bool DisplayScript() { Console.WriteLine("Script Reload has been requested"); /* clear controls */ if (Helpers.HandlersDisabled || selectScriptFileComboBox.SelectedItem == null) { return false; } if (scriptsDirty || functionsDirty || actionsDirty) { DialogResult d = MessageBox.Show("There are unsaved changes in this Script File.\nDo you wish to discard them?", "Unsaved work", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (!d.Equals(DialogResult.Yes)) { Helpers.DisableHandlers(); // selectScriptFileComboBox.SelectedItem = currentScriptFile; selectScriptFileComboBox.SelectedIndex = (int)currentScriptFile.fileID; Helpers.EnableHandlers(); return false; } } Helpers.DisableHandlers(); ScriptFile lastScriptFile = currentScriptFile; // currentScriptFile = (ScriptFile)selectScriptFileComboBox.SelectedItem; currentScriptFile = new ScriptFile(selectScriptFileComboBox.SelectedIndex); // Load script file ScriptTextArea.ClearAll(); FunctionTextArea.ClearAll(); ActionTextArea.ClearAll(); scriptsNavListbox.Items.Clear(); functionsNavListbox.Items.Clear(); actionsNavListbox.Items.Clear(); //prevent buttons from flickering when the combobox selection changes bool typeChanged = true; if (lastScriptFile != null) { typeChanged = lastScriptFile.isLevelScript != currentScriptFile.isLevelScript; } if (typeChanged) { if (currentScriptFile.isLevelScript) { importScriptFileButton.Location = initial_importScriptFileButton_location; exportScriptFileButton.Location = initial_exportScriptFileButton_location; addScriptFileButton.Location = initial_addScriptFileButton_location; removeScriptFileButton.Location = initial_removeScriptFileButton_location; viewLevelScriptButton.Location = new_viewLevelScript_location; importScriptFileButton.Enabled = false; exportScriptFileButton.Enabled = false; addScriptFileButton.Enabled = false; removeScriptFileButton.Enabled = false; viewLevelScriptButton.Enabled = true; } else { importScriptFileButton.Location = new_importScriptFileButton_location; exportScriptFileButton.Location = new_exportScriptFileButton_location; addScriptFileButton.Location = new_addScriptFileButton_location; removeScriptFileButton.Location = new_removeScriptFileButton_location; viewLevelScriptButton.Location = initial_viewLevelScript_location; importScriptFileButton.Enabled = true; exportScriptFileButton.Enabled = true; addScriptFileButton.Enabled = true; removeScriptFileButton.Enabled = true; viewLevelScriptButton.Enabled = false; } } if (!currentScriptFile.isLevelScript) { displayScriptFile(ScriptFile.ContainerTypes.Script, currentScriptFile.allScripts, scriptsNavListbox, ScriptTextArea); displayScriptFile(ScriptFile.ContainerTypes.Function, currentScriptFile.allFunctions, functionsNavListbox, FunctionTextArea); displayScriptFileActions(ScriptFile.ContainerTypes.Action, currentScriptFile.allActions, actionsNavListbox, ActionTextArea); } ScriptEditorSetClean(); Helpers.statusLabelMessage(); Helpers.EnableHandlers(); return true; } static void displayScriptFile(ScriptFile.ContainerTypes containerType, List commandList, ListBox navListBox, Scintilla textArea) { string buffer = ""; /* Add commands */ for (int i = 0; i < commandList.Count; i++) { ScriptCommandContainer scriptCommandContainer = commandList[i]; /* Write header */ string header = containerType + " " + (i + 1); buffer += header + ':' + Environment.NewLine; navListBox.Items.Add(header); /* If current command is identical to another, print UseScript instead of commands */ if (scriptCommandContainer.usedScriptID < 0) { for (int j = 0; j < scriptCommandContainer.commands.Count; j++) { ScriptCommand command = scriptCommandContainer.commands[j]; if (!ScriptDatabase.endCodes.Contains(command.id)) { buffer += '\t'; } buffer += command.name + Environment.NewLine; } } else { buffer += '\t' + "UseScript_#" + scriptCommandContainer.usedScriptID + Environment.NewLine; } textArea.AppendText(buffer + Environment.NewLine); buffer = ""; } } static void displayScriptFileActions(ScriptFile.ContainerTypes containerType, List commandList, ListBox navListBox, Scintilla textArea) { /* Add movements */ string buffer = ""; for (int i = 0; i < commandList.Count; i++) { ScriptActionContainer currentCommand = commandList[i]; string header = containerType + " " + (i + 1); buffer += header + ':' + Environment.NewLine; navListBox.Items.Add(header); for (int j = 0; j < currentCommand.commands.Count; j++) { ScriptAction command = currentCommand.commands[j]; if (!ScriptDatabase.movementEndCodes.Contains(command.id)) { buffer += '\t'; } buffer += command.name + Environment.NewLine; } textArea.AppendText(buffer + Environment.NewLine); buffer = ""; } } private void scriptEditorZoomInButton_Click(object sender, EventArgs e) { ZoomIn(currentScintillaEditor); } private void scriptEditorZoomOutButton_Click(object sender, EventArgs e) { ZoomOut(currentScintillaEditor); } private void scriptEditorZoomResetButton_Click(object sender, EventArgs e) { ZoomDefault(currentScintillaEditor); } private void scriptEditorTabControl_TabIndexChanged(object sender, EventArgs e) { if (scriptEditorTabControl.SelectedTab == scriptsTabPage) { currentSearchManager = scriptSearchManager; currentScintillaEditor = ScriptTextArea; } else if (scriptEditorTabControl.SelectedTab == functionsTabPage) { currentSearchManager = functionSearchManager; currentScintillaEditor = FunctionTextArea; } else { //Actions currentSearchManager = actionSearchManager; currentScintillaEditor = ActionTextArea; } } private void removeScriptFileButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("Are you sure you want to delete the last Script File?", "Confirm deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d.Equals(DialogResult.Yes)) { /* Delete script file */ string path = Filesystem.GetScriptPath(selectScriptFileComboBox.Items.Count - 1); File.Delete(path); /* Check if currently selected file is the last one, and in that case select the one before it */ int lastIndex = selectScriptFileComboBox.Items.Count - 1; if (selectScriptFileComboBox.SelectedIndex == lastIndex) { selectScriptFileComboBox.SelectedIndex--; } /* Remove item from ComboBox */ selectScriptFileComboBox.Items.RemoveAt(lastIndex); } } private void addScriptFileButton_Click(object sender, EventArgs e) { /* Add new event file to event folder */ int fileID = selectScriptFileComboBox.Items.Count; ScriptFile scriptFile = new ScriptFile( scriptLines: new Scintilla { Text = "Script 1:\nEnd" }.Lines.ToStringsList(trim: true), functionLines: null, actionLines: null, fileID ); //check if ScriptFile instance was created successfully if (scriptFile.SaveToFileDefaultDir(fileID, showSuccessMessage: false)) { /* Update ComboBox and select new file */ selectScriptFileComboBox.Items.Add(scriptFile); selectScriptFileComboBox.SelectedItem = scriptFile; } } private void saveScriptFileButton_Click(object sender, EventArgs e) { /* Create new ScriptFile object using the values in the script editor */ int fileID = currentScriptFile.fileID; ScriptFile userEdited = new ScriptFile( scriptLines: ScriptTextArea.Lines.ToStringsList(trim: true), functionLines: FunctionTextArea.Lines.ToStringsList(trim: true), actionLines: ActionTextArea.Lines.ToStringsList(trim: true), fileID ); if (userEdited.hasNoScripts) { MessageBox.Show("This " + nameof(ScriptFile) + " couldn't be saved. A minimum of one script is required.", "Can't save", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //check if ScriptFile instance was created successfully if (userEdited.SaveToFileDefaultDir(fileID)) { currentScriptFile = userEdited; ScriptEditorSetClean(); } } private void exportScriptFileButton_Click(object sender, EventArgs e) { currentScriptFile.SaveToFileExplorePath(currentScriptFile.ToString(), blindmode: true); } private void importScriptFileButton_Click(object sender, EventArgs e) { /* Prompt user to select .scr or .bin file */ OpenFileDialog of = new OpenFileDialog { Filter = "Script File (*.scr, *.bin)|*.scr;*.bin" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update scriptFile object in memory */ int i = selectScriptFileComboBox.SelectedIndex; string path = Filesystem.GetScriptPath(i); File.Copy(of.FileName, path, true); populate_selectScriptFileComboBox(i); /* Refresh controls */ selectScriptFileComboBox_SelectedIndexChanged(null, null); /* Display success message */ MessageBox.Show("Scripts imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void viewLevelScriptButton_Click(object sender, EventArgs e) { EditorPanels.levelScriptEditor.OpenLevelScriptEditor(this._parent, selectScriptFileComboBox.SelectedIndex); } private void locateCurrentScriptFile_Click(object sender, EventArgs e) { string path = Filesystem.GetScriptPath(selectScriptFileComboBox.SelectedIndex); Helpers.ExplorerSelect(path); } private void findNext(SearchManager searchManager) { searchManager.Find(true, false); scrollResultToTop(searchManager); } private void findPrev(SearchManager searchManager) { searchManager.Find(false, false); scrollResultToTop(searchManager); } private void findCurrent(SearchManager searchManager) { searchManager.Find(true, true); scrollResultToTop(searchManager); } private void TxtFindKeyDown(SearchManager searchManager, KeyEventArgs e) { if (HotKeyManager.IsHotkey(e, Keys.Enter)) { findNext(searchManager); } if (HotKeyManager.IsHotkey(e, Keys.Enter, true) || HotKeyManager.IsHotkey(e, Keys.Enter, false, true)) { findPrev(searchManager); } } private void BtnNextFindScript_Click(object sender, EventArgs e) { findNext(scriptSearchManager); } private void BtnPrevFindScript_Click(object sender, EventArgs e) { findPrev(scriptSearchManager); } private void panelFindScriptTextBox_TextChanged(object sender, EventArgs e) { findCurrent(scriptSearchManager); } private void scriptTxtFind_KeyDown(object sender, KeyEventArgs e) { TxtFindKeyDown(scriptSearchManager, e); } private void BtnCloseFindScript_Click(object sender, EventArgs e) { scriptSearchManager.CloseSearch(); } private void BtnNextFindFunc_Click(object sender, EventArgs e) { findNext(functionSearchManager); } private void BtnPrevFindFunc_Click(object sender, EventArgs e) { findNext(functionSearchManager); } private void panelFindFunctionTextBox_TextChanged(object sender, EventArgs e) { findNext(functionSearchManager); } private void functionTxtFind_KeyDown(object sender, KeyEventArgs e) { TxtFindKeyDown(functionSearchManager, e); } private void BtnCloseFindFunc_Click(object sender, EventArgs e) { functionSearchManager.CloseSearch(); } private void BtnNextFindActions_Click(object sender, EventArgs e) { findNext(actionSearchManager); } private void BtnPrevFindActions_Click(object sender, EventArgs e) { findNext(actionSearchManager); } private void panelFindActionTextBox_TextChanged(object sender, EventArgs e) { findNext(actionSearchManager); } private void actionTxtFind_KeyDown(object sender, KeyEventArgs e) { TxtFindKeyDown(actionSearchManager, e); } private void BtnCloseFindActions_Click(object sender, EventArgs e) { actionSearchManager.CloseSearch(); } void scrollResultToTop(SearchManager searchManager) { int resultStart = searchManager.textAreaScintilla.CurrentLine - ScriptEditorSearchResult.ResultsPadding; searchManager.textAreaScintilla.FirstVisibleLine = resultStart; } private void NavigatorGoTo(ListBox listBox, TabPage tabPage, SearchManager searchManager, ScriptFile.ContainerTypes containerType) { if (listBox.SelectedIndex < 0) { return; } scriptEditorTabControl.SelectedTab = tabPage; int commandNumber = listBox.SelectedIndex + 1; string CommandBlockOpen = $"{containerType} {commandNumber}:"; searchManager.Find(true, false, CommandBlockOpen); scrollResultToTop(searchManager); } private void scriptsNavListbox_SelectedIndexChanged(object sender, EventArgs e) { NavigatorGoTo((ListBox)sender, scriptsTabPage, scriptSearchManager, ScriptFile.ContainerTypes.Script); } private void functionsNavListbox_SelectedIndexChanged(object sender, EventArgs e) { NavigatorGoTo((ListBox)sender, functionsTabPage, functionSearchManager, ScriptFile.ContainerTypes.Function); } private void actionsNavListbox_SelectedIndexChanged(object sender, EventArgs e) { NavigatorGoTo((ListBox)sender, actionsTabPage, actionSearchManager, ScriptFile.ContainerTypes.Action); } private void openFindScriptEditorButton_Click(object sender, EventArgs e) { currentSearchManager.OpenSearch(); } private void ScriptEditorExpandButton_Click(object sender, EventArgs e) { currentScintillaEditor.FoldAll(FoldAction.Expand); } private void ScriptEditorCollapseButton_Click(object sender, EventArgs e) { currentScintillaEditor.FoldAll(FoldAction.Contract); } private void scriptEditorWordWrapCheckbox_CheckedChanged(object sender, EventArgs e) { ScriptTextArea.WrapMode = scriptEditorWordWrapCheckbox.Checked ? WrapMode.Word : WrapMode.None; FunctionTextArea.WrapMode = scriptEditorWordWrapCheckbox.Checked ? WrapMode.Word : WrapMode.None; ActionTextArea.WrapMode = scriptEditorWordWrapCheckbox.Checked ? WrapMode.Word : WrapMode.None; } private void viewWhiteSpacesButton_Click(object sender, EventArgs e) { ScriptTextArea.ViewWhitespace = scriptEditorWhitespacesCheckbox.Checked ? WhitespaceMode.VisibleAlways : WhitespaceMode.Invisible; FunctionTextArea.ViewWhitespace = scriptEditorWhitespacesCheckbox.Checked ? WhitespaceMode.VisibleAlways : WhitespaceMode.Invisible; ActionTextArea.ViewWhitespace = scriptEditorWhitespacesCheckbox.Checked ? WhitespaceMode.VisibleAlways : WhitespaceMode.Invisible; } private void searchInScriptsTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { searchInScriptsButton_Click(null, null); } } public List getScriptsToSearch() { List scriptsToSearch = new List(); if (searchOnlyCurrentScriptCheckBox.Checked) { this.UIThread(() => { searchProgressBar.Maximum = 1; }); int i = selectScriptFileComboBox.SelectedIndex; ScriptFile scriptFile = new ScriptFile(i); Console.WriteLine("Attempting to load script " + scriptFile.fileID); scriptsToSearch.Add(scriptFile); this.UIThread(() => { searchProgressBar.IncrementNoAnimation(); }); } else { this.UIThread(() => { searchProgressBar.Maximum = selectScriptFileComboBox.Items.Count; }); for (int i = 0; i < selectScriptFileComboBox.Items.Count; i++) { ScriptFile scriptFile = new ScriptFile(i); Console.WriteLine("Attempting to load script " + scriptFile.fileID); scriptsToSearch.Add(scriptFile); this.UIThread(() => { searchProgressBar.IncrementNoAnimation(); }); } } return scriptsToSearch; } private void searchInScriptsButton_Click(object sender, EventArgs e) { if (searchInScriptsTextBox.Text == "") { return; } BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += (_sender, args) => { this.UIThread(() => { searchInScriptsResultListBox.Items.Clear(); searchProgressBar.Value = 0; }); List scriptsToSearch = getScriptsToSearch(); string searchString = searchInScriptsTextBox.Text; Func searchCriteriaCS = (string s) => s.IndexOf(searchString, StringComparison.InvariantCulture) >= 0; Func searchCriteriaCI = (string s) => s.IndexOf(searchString, StringComparison.InvariantCultureIgnoreCase) >= 0; Func searchCriteria = scriptSearchCaseSensitiveCheckBox.Checked ? searchCriteriaCS : searchCriteriaCI; List results = new List(); foreach (ScriptFile scriptFile in scriptsToSearch) { List scriptResults = SearchInScripts(scriptFile, scriptFile.allScripts, searchCriteria); List functionResults = SearchInScripts(scriptFile, scriptFile.allFunctions, searchCriteria); // List actionResults = SearchInScripts(scriptFile, scriptFile.allActions, searchCriteria); results.AddRange(scriptResults); results.AddRange(functionResults); // results.AddRange(actionResults); } this.UIThread(() => { searchInScriptsResultListBox.Items.AddRange(results.ToArray()); searchProgressBar.Value = 0; }); }; bw.RunWorkerAsync(); } private List SearchInScripts(ScriptFile scriptFile, List commandContainers, Func criteria) { List results = new List(); for (int j = 0; j < commandContainers.Count; j++) { if (commandContainers[j].commands is null) { continue; } ScriptCommandContainer scriptCommandContainer = commandContainers[j]; foreach (ScriptCommand scriptCommand in scriptCommandContainer.commands) { if (criteria(scriptCommand.name)) { results.Add(new ScriptEditorSearchResult(scriptFile, scriptCommandContainer.containerType, j + 1, scriptCommand)); } } } return results; } private void searchInScriptsResultListBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { goToSearchResult(); } } private void searchInScripts_GoToEntryResult(object sender, MouseEventArgs e) { goToSearchResult(); } private void goToSearchResult() { if (searchInScriptsResultListBox.SelectedItem == null) { return; } ScriptEditorSearchResult searchResult = (ScriptEditorSearchResult)searchInScriptsResultListBox.SelectedItem; ScriptFile scriptFile = searchResult.scriptFile; ScriptFile.ContainerTypes containerType = searchResult.containerType; selectScriptFileComboBox.SelectedIndex = scriptFile.fileID; if (containerType == ScriptFile.ContainerTypes.Script) { displaySearchResult(scriptsTabPage, scriptSearchManager, searchResult); } else if (containerType == ScriptFile.ContainerTypes.Function) { displaySearchResult(functionsTabPage, functionSearchManager, searchResult); } else if (containerType == ScriptFile.ContainerTypes.Action) { displaySearchResult(actionsTabPage, actionSearchManager, searchResult); } } private void displaySearchResult(TabPage tabPage, SearchManager searchManager, ScriptEditorSearchResult searchResult) { if (scriptEditorTabControl.SelectedTab != tabPage) { scriptEditorTabControl.SelectedTab = tabPage; } searchManager.Find(true, false, searchResult.CommandBlockOpen); int blockStart = searchManager.textAreaScintilla.CurrentLine - ScriptEditorSearchResult.ResultsPadding; searchManager.Find(true, false, searchResult.scriptCommand.name); int resultStart = searchManager.textAreaScintilla.CurrentLine - ScriptEditorSearchResult.ResultsPadding; if (scrollToBlockStartcheckBox.Checked) { searchManager.textAreaScintilla.FirstVisibleLine = blockStart; } else { searchManager.textAreaScintilla.FirstVisibleLine = resultStart; } } } public class ScriptEditorSearchResult { public readonly ScriptFile scriptFile; public readonly ScriptFile.ContainerTypes containerType; public readonly int commandNumber; public readonly ScriptCommand scriptCommand; public const int ResultsPadding = 1; public ScriptEditorSearchResult(ScriptFile scriptFile, ScriptFile.ContainerTypes containerType, int commandNumber, ScriptCommand scriptCommand) { this.scriptFile = scriptFile; this.containerType = containerType; this.commandNumber = commandNumber; this.scriptCommand = scriptCommand; } public string CommandBlockOpen { get { return $"{containerType} {commandNumber}:"; } } public override string ToString() { return $"File {scriptFile.fileID} - {CommandBlockOpen} {scriptCommand.name}"; } } } ================================================ FILE: DS_Map/Editors/ScriptEditor.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: DS_Map/EventFileImport.Designer.cs ================================================ namespace DSPRE { partial class EventFileImport { /// /// 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(EventFileImport)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.triggersUncheckAllButton = new System.Windows.Forms.Button(); this.warpsUncheckAllButton = new System.Windows.Forms.Button(); this.overworldsUncheckAllButton = new System.Windows.Forms.Button(); this.spawnablesUncheckAllButton = new System.Windows.Forms.Button(); this.confirmButton = new System.Windows.Forms.Button(); this.importSpawnablesCheckBox = new System.Windows.Forms.CheckBox(); this.spawnablesCheckedListBox = new System.Windows.Forms.CheckedListBox(); this.overworldsCheckedListBox = new System.Windows.Forms.CheckedListBox(); this.warpsCheckedListBox = new System.Windows.Forms.CheckedListBox(); this.importWarpsCheckBox = new System.Windows.Forms.CheckBox(); this.importOverworldsCheckBox = new System.Windows.Forms.CheckBox(); this.importTriggersCheckBox = new System.Windows.Forms.CheckBox(); this.triggersCheckedListBox = new System.Windows.Forms.CheckedListBox(); this.spawnablesCheckAllButton = new System.Windows.Forms.Button(); this.overworldsCheckAllButton = new System.Windows.Forms.Button(); this.warpsCheckAllButton = new System.Windows.Forms.Button(); this.triggersCheckAllButton = new System.Windows.Forms.Button(); this.blankCurrentEventFileCheckbox = new System.Windows.Forms.CheckBox(); this.tableLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 8; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); this.tableLayoutPanel1.Controls.Add(this.triggersUncheckAllButton, 7, 1); this.tableLayoutPanel1.Controls.Add(this.warpsUncheckAllButton, 5, 1); this.tableLayoutPanel1.Controls.Add(this.overworldsUncheckAllButton, 3, 1); this.tableLayoutPanel1.Controls.Add(this.spawnablesUncheckAllButton, 1, 1); this.tableLayoutPanel1.Controls.Add(this.confirmButton, 6, 3); this.tableLayoutPanel1.Controls.Add(this.importSpawnablesCheckBox, 0, 0); this.tableLayoutPanel1.Controls.Add(this.spawnablesCheckedListBox, 0, 2); this.tableLayoutPanel1.Controls.Add(this.overworldsCheckedListBox, 2, 2); this.tableLayoutPanel1.Controls.Add(this.warpsCheckedListBox, 4, 2); this.tableLayoutPanel1.Controls.Add(this.importWarpsCheckBox, 4, 0); this.tableLayoutPanel1.Controls.Add(this.importOverworldsCheckBox, 2, 0); this.tableLayoutPanel1.Controls.Add(this.importTriggersCheckBox, 6, 0); this.tableLayoutPanel1.Controls.Add(this.triggersCheckedListBox, 6, 2); this.tableLayoutPanel1.Controls.Add(this.spawnablesCheckAllButton, 0, 1); this.tableLayoutPanel1.Controls.Add(this.overworldsCheckAllButton, 2, 1); this.tableLayoutPanel1.Controls.Add(this.warpsCheckAllButton, 4, 1); this.tableLayoutPanel1.Controls.Add(this.triggersCheckAllButton, 6, 1); this.tableLayoutPanel1.Controls.Add(this.blankCurrentEventFileCheckbox, 5, 3); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(2); this.tableLayoutPanel1.RowCount = 4; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 93F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(959, 581); this.tableLayoutPanel1.TabIndex = 0; // // triggersUncheckAllButton // this.triggersUncheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.triggersUncheckAllButton.Location = new System.Drawing.Point(838, 28); this.triggersUncheckAllButton.Name = "triggersUncheckAllButton"; this.triggersUncheckAllButton.Size = new System.Drawing.Size(116, 23); this.triggersUncheckAllButton.TabIndex = 20; this.triggersUncheckAllButton.Text = "Uncheck All"; this.triggersUncheckAllButton.UseVisualStyleBackColor = true; this.triggersUncheckAllButton.Click += new System.EventHandler(this.uncheckAllButtonClicked); // // warpsUncheckAllButton // this.warpsUncheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.warpsUncheckAllButton.Location = new System.Drawing.Point(600, 28); this.warpsUncheckAllButton.Name = "warpsUncheckAllButton"; this.warpsUncheckAllButton.Size = new System.Drawing.Size(113, 23); this.warpsUncheckAllButton.TabIndex = 19; this.warpsUncheckAllButton.Text = "Uncheck All"; this.warpsUncheckAllButton.UseVisualStyleBackColor = true; this.warpsUncheckAllButton.Click += new System.EventHandler(this.uncheckAllButtonClicked); // // overworldsUncheckAllButton // this.overworldsUncheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.overworldsUncheckAllButton.Location = new System.Drawing.Point(362, 28); this.overworldsUncheckAllButton.Name = "overworldsUncheckAllButton"; this.overworldsUncheckAllButton.Size = new System.Drawing.Size(113, 23); this.overworldsUncheckAllButton.TabIndex = 18; this.overworldsUncheckAllButton.Text = "Uncheck All"; this.overworldsUncheckAllButton.UseVisualStyleBackColor = true; this.overworldsUncheckAllButton.Click += new System.EventHandler(this.uncheckAllButtonClicked); // // spawnablesUncheckAllButton // this.spawnablesUncheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.spawnablesUncheckAllButton.Location = new System.Drawing.Point(124, 28); this.spawnablesUncheckAllButton.Name = "spawnablesUncheckAllButton"; this.spawnablesUncheckAllButton.Size = new System.Drawing.Size(113, 23); this.spawnablesUncheckAllButton.TabIndex = 17; this.spawnablesUncheckAllButton.Text = "Uncheck All"; this.spawnablesUncheckAllButton.UseVisualStyleBackColor = true; this.spawnablesUncheckAllButton.Click += new System.EventHandler(this.uncheckAllButtonClicked); // // confirmButton // this.confirmButton.AutoSize = true; this.tableLayoutPanel1.SetColumnSpan(this.confirmButton, 2); this.confirmButton.Dock = System.Windows.Forms.DockStyle.Fill; this.confirmButton.Location = new System.Drawing.Point(719, 545); this.confirmButton.Name = "confirmButton"; this.confirmButton.Size = new System.Drawing.Size(235, 31); this.confirmButton.TabIndex = 4; this.confirmButton.Text = "Confirm"; this.confirmButton.UseVisualStyleBackColor = true; this.confirmButton.Click += new System.EventHandler(this.confirmButton_Click); // // importSpawnablesCheckBox // this.importSpawnablesCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); this.importSpawnablesCheckBox.AutoSize = true; this.importSpawnablesCheckBox.Checked = true; this.importSpawnablesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.tableLayoutPanel1.SetColumnSpan(this.importSpawnablesCheckBox, 2); this.importSpawnablesCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.importSpawnablesCheckBox.Location = new System.Drawing.Point(73, 5); this.importSpawnablesCheckBox.Margin = new System.Windows.Forms.Padding(3, 3, 5, 3); this.importSpawnablesCheckBox.Name = "importSpawnablesCheckBox"; this.importSpawnablesCheckBox.Size = new System.Drawing.Size(94, 17); this.importSpawnablesCheckBox.TabIndex = 8; this.importSpawnablesCheckBox.Text = "Spawnables"; this.importSpawnablesCheckBox.UseVisualStyleBackColor = true; this.importSpawnablesCheckBox.CheckedChanged += new System.EventHandler(this.importCheckBoxChanged); // // spawnablesCheckedListBox // this.tableLayoutPanel1.SetColumnSpan(this.spawnablesCheckedListBox, 2); this.spawnablesCheckedListBox.Dock = System.Windows.Forms.DockStyle.Fill; this.spawnablesCheckedListBox.FormattingEnabled = true; this.spawnablesCheckedListBox.Location = new System.Drawing.Point(5, 57); this.spawnablesCheckedListBox.Name = "spawnablesCheckedListBox"; this.spawnablesCheckedListBox.Size = new System.Drawing.Size(232, 482); this.spawnablesCheckedListBox.TabIndex = 9; // // overworldsCheckedListBox // this.tableLayoutPanel1.SetColumnSpan(this.overworldsCheckedListBox, 2); this.overworldsCheckedListBox.Dock = System.Windows.Forms.DockStyle.Fill; this.overworldsCheckedListBox.FormattingEnabled = true; this.overworldsCheckedListBox.Location = new System.Drawing.Point(243, 57); this.overworldsCheckedListBox.Name = "overworldsCheckedListBox"; this.overworldsCheckedListBox.Size = new System.Drawing.Size(232, 482); this.overworldsCheckedListBox.TabIndex = 10; // // warpsCheckedListBox // this.tableLayoutPanel1.SetColumnSpan(this.warpsCheckedListBox, 2); this.warpsCheckedListBox.Dock = System.Windows.Forms.DockStyle.Fill; this.warpsCheckedListBox.FormattingEnabled = true; this.warpsCheckedListBox.Location = new System.Drawing.Point(481, 57); this.warpsCheckedListBox.Name = "warpsCheckedListBox"; this.warpsCheckedListBox.Size = new System.Drawing.Size(232, 482); this.warpsCheckedListBox.TabIndex = 11; // // importWarpsCheckBox // this.importWarpsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); this.importWarpsCheckBox.AutoSize = true; this.importWarpsCheckBox.Checked = true; this.importWarpsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.tableLayoutPanel1.SetColumnSpan(this.importWarpsCheckBox, 2); this.importWarpsCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.importWarpsCheckBox.Location = new System.Drawing.Point(565, 5); this.importWarpsCheckBox.Margin = new System.Windows.Forms.Padding(3, 3, 5, 3); this.importWarpsCheckBox.Name = "importWarpsCheckBox"; this.importWarpsCheckBox.Size = new System.Drawing.Size(62, 17); this.importWarpsCheckBox.TabIndex = 5; this.importWarpsCheckBox.Text = "Warps"; this.importWarpsCheckBox.UseVisualStyleBackColor = true; this.importWarpsCheckBox.CheckedChanged += new System.EventHandler(this.importCheckBoxChanged); // // importOverworldsCheckBox // this.importOverworldsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); this.importOverworldsCheckBox.AutoSize = true; this.importOverworldsCheckBox.Checked = true; this.importOverworldsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.tableLayoutPanel1.SetColumnSpan(this.importOverworldsCheckBox, 2); this.importOverworldsCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.importOverworldsCheckBox.Location = new System.Drawing.Point(313, 5); this.importOverworldsCheckBox.Margin = new System.Windows.Forms.Padding(3, 3, 5, 3); this.importOverworldsCheckBox.Name = "importOverworldsCheckBox"; this.importOverworldsCheckBox.Size = new System.Drawing.Size(89, 17); this.importOverworldsCheckBox.TabIndex = 1; this.importOverworldsCheckBox.Text = "Overworlds"; this.importOverworldsCheckBox.UseVisualStyleBackColor = true; this.importOverworldsCheckBox.CheckedChanged += new System.EventHandler(this.importCheckBoxChanged); // // importTriggersCheckBox // this.importTriggersCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); this.importTriggersCheckBox.AutoSize = true; this.importTriggersCheckBox.Checked = true; this.importTriggersCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.tableLayoutPanel1.SetColumnSpan(this.importTriggersCheckBox, 2); this.importTriggersCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.importTriggersCheckBox.Location = new System.Drawing.Point(799, 5); this.importTriggersCheckBox.Margin = new System.Windows.Forms.Padding(3, 3, 5, 3); this.importTriggersCheckBox.Name = "importTriggersCheckBox"; this.importTriggersCheckBox.Size = new System.Drawing.Size(72, 17); this.importTriggersCheckBox.TabIndex = 2; this.importTriggersCheckBox.Text = "Triggers"; this.importTriggersCheckBox.UseVisualStyleBackColor = true; this.importTriggersCheckBox.CheckedChanged += new System.EventHandler(this.importCheckBoxChanged); // // triggersCheckedListBox // this.tableLayoutPanel1.SetColumnSpan(this.triggersCheckedListBox, 2); this.triggersCheckedListBox.Dock = System.Windows.Forms.DockStyle.Fill; this.triggersCheckedListBox.FormattingEnabled = true; this.triggersCheckedListBox.Location = new System.Drawing.Point(719, 57); this.triggersCheckedListBox.Name = "triggersCheckedListBox"; this.triggersCheckedListBox.Size = new System.Drawing.Size(235, 482); this.triggersCheckedListBox.TabIndex = 12; // // spawnablesCheckAllButton // this.spawnablesCheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.spawnablesCheckAllButton.Location = new System.Drawing.Point(5, 28); this.spawnablesCheckAllButton.Name = "spawnablesCheckAllButton"; this.spawnablesCheckAllButton.Size = new System.Drawing.Size(113, 23); this.spawnablesCheckAllButton.TabIndex = 13; this.spawnablesCheckAllButton.Text = "Check All"; this.spawnablesCheckAllButton.UseVisualStyleBackColor = true; this.spawnablesCheckAllButton.Click += new System.EventHandler(this.checkAllButtonClicked); // // overworldsCheckAllButton // this.overworldsCheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.overworldsCheckAllButton.Location = new System.Drawing.Point(243, 28); this.overworldsCheckAllButton.Name = "overworldsCheckAllButton"; this.overworldsCheckAllButton.Size = new System.Drawing.Size(113, 23); this.overworldsCheckAllButton.TabIndex = 14; this.overworldsCheckAllButton.Text = "Check All"; this.overworldsCheckAllButton.UseVisualStyleBackColor = true; this.overworldsCheckAllButton.Click += new System.EventHandler(this.checkAllButtonClicked); // // warpsCheckAllButton // this.warpsCheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.warpsCheckAllButton.Location = new System.Drawing.Point(481, 28); this.warpsCheckAllButton.Name = "warpsCheckAllButton"; this.warpsCheckAllButton.Size = new System.Drawing.Size(113, 23); this.warpsCheckAllButton.TabIndex = 15; this.warpsCheckAllButton.Text = "Check All"; this.warpsCheckAllButton.UseVisualStyleBackColor = true; this.warpsCheckAllButton.Click += new System.EventHandler(this.checkAllButtonClicked); // // triggersCheckAllButton // this.triggersCheckAllButton.Dock = System.Windows.Forms.DockStyle.Fill; this.triggersCheckAllButton.Location = new System.Drawing.Point(719, 28); this.triggersCheckAllButton.Name = "triggersCheckAllButton"; this.triggersCheckAllButton.Size = new System.Drawing.Size(113, 23); this.triggersCheckAllButton.TabIndex = 16; this.triggersCheckAllButton.Text = "Check All"; this.triggersCheckAllButton.UseVisualStyleBackColor = true; this.triggersCheckAllButton.Click += new System.EventHandler(this.checkAllButtonClicked); // // blankCurrentEventFileCheckbox // this.blankCurrentEventFileCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); this.blankCurrentEventFileCheckbox.AutoSize = true; this.blankCurrentEventFileCheckbox.Checked = true; this.blankCurrentEventFileCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.blankCurrentEventFileCheckbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.blankCurrentEventFileCheckbox.Location = new System.Drawing.Point(600, 545); this.blankCurrentEventFileCheckbox.Margin = new System.Windows.Forms.Padding(3, 3, 5, 3); this.blankCurrentEventFileCheckbox.Name = "blankCurrentEventFileCheckbox"; this.blankCurrentEventFileCheckbox.Size = new System.Drawing.Size(111, 31); this.blankCurrentEventFileCheckbox.TabIndex = 21; this.blankCurrentEventFileCheckbox.Text = "Import on empty file"; this.blankCurrentEventFileCheckbox.UseVisualStyleBackColor = true; this.blankCurrentEventFileCheckbox.CheckedChanged += new System.EventHandler(this.blankCurrentEventFileCheckbox_CheckedChanged); // // EventFileImport // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(965, 587); this.Controls.Add(this.tableLayoutPanel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "EventFileImport"; this.Padding = new System.Windows.Forms.Padding(3); this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Event Importer"; this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.CheckBox importTriggersCheckBox; private System.Windows.Forms.CheckBox importOverworldsCheckBox; private System.Windows.Forms.Button confirmButton; private System.Windows.Forms.CheckBox importWarpsCheckBox; private System.Windows.Forms.CheckBox importSpawnablesCheckBox; private System.Windows.Forms.CheckedListBox spawnablesCheckedListBox; private System.Windows.Forms.CheckedListBox overworldsCheckedListBox; private System.Windows.Forms.CheckedListBox warpsCheckedListBox; private System.Windows.Forms.CheckedListBox triggersCheckedListBox; private System.Windows.Forms.Button triggersUncheckAllButton; private System.Windows.Forms.Button warpsUncheckAllButton; private System.Windows.Forms.Button overworldsUncheckAllButton; private System.Windows.Forms.Button spawnablesUncheckAllButton; private System.Windows.Forms.Button spawnablesCheckAllButton; private System.Windows.Forms.Button overworldsCheckAllButton; private System.Windows.Forms.Button warpsCheckAllButton; private System.Windows.Forms.Button triggersCheckAllButton; private System.Windows.Forms.CheckBox blankCurrentEventFileCheckbox; } } ================================================ FILE: DS_Map/EventFileImport.cs ================================================ using DSPRE; using DSPRE.ROMFiles; using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using static DSPRE.ROMFiles.EventFile; namespace DSPRE { public partial class EventFileImport : Form { private static readonly int eventTypesCount = Enum.GetValues(typeof(serializationOrder)).Length; private readonly bool[] toImport = new bool[eventTypesCount]; private readonly CheckedListBox[] listBoxes; private readonly Button[,] checkButtons; public readonly int[][] userSelected = new int[eventTypesCount][]; private bool _blankCurrentEvents; public bool blankCurrentEvents { get { return _blankCurrentEvents; } set { _blankCurrentEvents = value; } } public EventFileImport(EventFile ef) { InitializeComponent(); blankCurrentEvents = blankCurrentEventFileCheckbox.Checked; for (int i = 0; i < toImport.Length; i++) { toImport[i] = true; } listBoxes = new CheckedListBox[] { spawnablesCheckedListBox, overworldsCheckedListBox, warpsCheckedListBox, triggersCheckedListBox }; checkButtons = new Button[4, 2] { { spawnablesCheckAllButton, spawnablesUncheckAllButton }, { overworldsCheckAllButton, overworldsUncheckAllButton }, { warpsCheckAllButton, warpsUncheckAllButton }, { triggersCheckAllButton, triggersUncheckAllButton } }; foreach (Spawnable s in ef.spawnables) { listBoxes[(int)serializationOrder.Spawnables].Items.Add(s); } foreach (Overworld ow in ef.overworlds) { listBoxes[(int)serializationOrder.Overworlds].Items.Add(ow); } foreach (Warp w in ef.warps) { listBoxes[(int)serializationOrder.Warps].Items.Add(w); } foreach (Trigger t in ef.triggers) { listBoxes[(int)serializationOrder.Triggers].Items.Add(t); } foreach (CheckedListBox clb in listBoxes) { clb.SetAllItemsChecked(true); } } private void confirmButton_Click(object sender, EventArgs e) { bool ok = false; for (int i = 0; i < toImport.Length; i++) { if (toImport[i] && listBoxes[i].CheckedItems.Count > 0) { userSelected[i] = listBoxes[i].CheckedIndices.Cast().ToArray(); if (userSelected[i].Length > 0) { ok = true; } } } if (ok) { DialogResult = DialogResult.OK; this.Dispose(); return; } MessageBox.Show("You must tick at least one element.", "No selection performed", MessageBoxButtons.OK, MessageBoxIcon.Error); } private void importCheckBoxChanged(object sender, EventArgs e) { //Changing the checkboxes' columns in the GUI will break this CheckBox c = sender as CheckBox; int typeIndex = tableLayoutPanel1.GetPositionFromControl(c).Column; bool v = toImport[typeIndex / 2] = listBoxes[typeIndex / 2].Enabled = c.Checked; for (int i = 0; i < 2; i++) { checkButtons[typeIndex / 2, i].Enabled = v; } } private void checkAllButtonClicked(object sender, EventArgs e) { listBoxes[tableLayoutPanel1.GetPositionFromControl(sender as Button).Column / 2].SetAllItemsChecked(true); } private void uncheckAllButtonClicked(object sender, EventArgs e) { listBoxes[tableLayoutPanel1.GetPositionFromControl(sender as Button).Column / 2].SetAllItemsChecked(false); } private void blankCurrentEventFileCheckbox_CheckedChanged(object sender, EventArgs e) { blankCurrentEvents = blankCurrentEventFileCheckbox.Checked; } } } ================================================ FILE: DS_Map/EventFileImport.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 AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/EvolutionsEditor.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox; namespace DSPRE { public partial class EvolutionsEditor : Form { private readonly string[] fileNames; private PokemonEditor _parent; private readonly string[] pokeNames; private readonly string[] moveNames; private readonly string[] itemNames; private int currentLoadedId = 0; private EvolutionFile currentLoadedFile = null; private static bool dirty = false; private static readonly string formName = "Evolutions Editor"; private (ComboBox m, Label l, NumericUpDown p, ComboBox t)[] evoRows; public EvolutionsEditor(Control parent, PokemonEditor pokeEditor) { this._parent = pokeEditor; this.pokeNames = RomInfo.GetPokemonNames(); this.moveNames = RomInfo.GetAttackNames(); this.itemNames = RomInfo.GetItemNames(); int count = RomInfo.GetEvolutionFilesCount(); List fileNames = new List(count); fileNames.AddRange(pokeNames); this.fileNames = fileNames.ToArray(); InitializeComponent(); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Size = parent.Size; this.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; Helpers.DisableHandlers(); evoRows = new (ComboBox m, Label l, NumericUpDown p, ComboBox t)[EvolutionFile.numEvolutions] { (evoMethodComboBox1, descLabel1, evoParamUpDown1, evoTargetMonComboBox1), (evoMethodComboBox2, descLabel2, evoParamUpDown2, evoTargetMonComboBox2), (evoMethodComboBox3, descLabel3, evoParamUpDown3, evoTargetMonComboBox3), (evoMethodComboBox4, descLabel4, evoParamUpDown4, evoTargetMonComboBox4), (evoMethodComboBox5, descLabel5, evoParamUpDown5, evoTargetMonComboBox5), (evoMethodComboBox6, descLabel6, evoParamUpDown6, evoTargetMonComboBox6), (evoMethodComboBox7, descLabel7, evoParamUpDown7, evoTargetMonComboBox7), }; BindingList listMons = new BindingList(fileNames); // Create as many rows as there are evolution types for (int i = 0; i < EvolutionFile.numEvolutions; i++) { //Create a binding source for the combobox in the first column evoRows[i].m.DataSource = new BindingSource(Enum.GetNames(typeof(EvolutionMethod)), string.Empty); evoRows[i].t.DataSource = new BindingSource(listMons, string.Empty); } monNumberNumericUpDown.Maximum = fileNames.Count - 1; pokemonNameInputComboBox.Items.AddRange(this.fileNames); Helpers.EnableHandlers(); pokemonNameInputComboBox.SelectedIndex = 1; } private void pokemonNameInputComboBox_SelectedIndexChanged(object sender, EventArgs e) { Update(); if (Helpers.HandlersDisabled) { return; } this._parent.TrySyncIndices((ComboBox)sender); Helpers.DisableHandlers(); if (CheckDiscardChanges()) { int newNumber = pokemonNameInputComboBox.SelectedIndex; monNumberNumericUpDown.Value = newNumber; ChangeLoadedFile(newNumber); } Helpers.EnableHandlers(); } private void monNumberNumericUpDown_ValueChanged(object sender, EventArgs e) { Update(); if (Helpers.HandlersDisabled) { return; } this._parent.TrySyncIndices((NumericUpDown)sender); Helpers.DisableHandlers(); if (CheckDiscardChanges()) { int newNumber = (int)monNumberNumericUpDown.Value; pokemonNameInputComboBox.SelectedIndex = newNumber; ChangeLoadedFile(newNumber); } Helpers.EnableHandlers(); } public void ChangeLoadedFile(int toLoad) { currentLoadedId = toLoad; currentLoadedFile = new EvolutionFile(currentLoadedId); for (int i = 0; i < EvolutionFile.numEvolutions; i++) { (ComboBox m, Label l, NumericUpDown p, ComboBox t) = evoRows[i]; ref EvolutionData data = ref currentLoadedFile.data[i]; if (data.isValid()) { m.SelectedIndex = (int)data.method; p.Value = data.param; t.SelectedIndex = data.target; } else { m.SelectedIndex = -1; p.Value = 0; t.SelectedIndex = -1; } } pokemonPictureBox.Image = currentLoadedId > 0 ? DSUtils.GetPokePic(currentLoadedId, pokemonPictureBox.Width, pokemonPictureBox.Height) : Properties.Resources.IconPokeball; setDirty(false); } private void saveDataButton_Click(object sender, EventArgs e) { //Build a new EvolutionFile from the current GUI state EvolutionFile newFile = new EvolutionFile(); List data = new List(); for (int i = 0; i < EvolutionFile.numEvolutions; i++) { EvolutionData ed = EvolutionDataFromGUI(i); if (ed.isValid()) { data.Add(ed); } } newFile.data = data.ToArray(); newFile.SaveToFileDefaultDir(currentLoadedId, true); currentLoadedFile = newFile; setDirty(false); } private EvolutionData EvolutionDataFromGUI(int i) { (ComboBox m, Label l, NumericUpDown p, ComboBox t) = evoRows[i]; //Retrieve evo method from enum EvolutionMethod method = (EvolutionMethod)m.SelectedIndex; short param = (short)p.Value; short target = (short)t.SelectedIndex; EvolutionData ed = new EvolutionData() { method = method, param = param, target = target }; return ed; } public bool CheckDiscardChanges() { if (!dirty) { return true; } DialogResult res = MessageBox.Show("Evolutions Editor\nThere are unsaved changes to the current Evolution data.\nDiscard and proceed?", "Evolutions Editor - Unsaved changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (res.Equals(DialogResult.Yes)) { return true; } monNumberNumericUpDown.Value = currentLoadedId; pokemonNameInputComboBox.SelectedIndex = currentLoadedId; return false; } private void setDirty(bool status) { if (status) { dirty = true; this.Text = formName + "*"; } else { dirty = false; this.Text = formName; } } private void evoMethodComboBox1_SelectedIndexChanged(object sender, EventArgs e) { UpdateDescriptionLabel(0); } private void evoMethodComboBox2_SelectedIndexChanged(object sender, EventArgs e) { UpdateDescriptionLabel(1); } private void evoMethodComboBox3_SelectedIndexChanged(object sender, EventArgs e) { UpdateDescriptionLabel(2); } private void evoMethodComboBox4_SelectedIndexChanged(object sender, EventArgs e) { UpdateDescriptionLabel(3); } private void evoMethodComboBox5_SelectedIndexChanged(object sender, EventArgs e) { UpdateDescriptionLabel(4); } private void evoMethodComboBox6_SelectedIndexChanged(object sender, EventArgs e) { UpdateDescriptionLabel(5); } private void evoMethodComboBox7_SelectedIndexChanged(object sender, EventArgs e) { UpdateDescriptionLabel(6); } private void ResetGUIRow(int index) { //Reset GUI row (ComboBox m, Label l, NumericUpDown p, ComboBox t) = evoRows[index]; l.Text = ""; p.Enabled = false; t.Enabled = false; p.Value = 0; } private void UpdateDescriptionLabel(int index) { if (index < 0 || index >= evoRows.Length) { throw new ArgumentOutOfRangeException("Index out of range: " + index); } (ComboBox m, Label l, NumericUpDown p, ComboBox t) = evoRows[index]; if (m.SelectedIndex <= (int)EvolutionMethod.None) { ResetGUIRow(index); return; } if ( m.SelectedIndex > Enum.GetValues(typeof(EvolutionMethod)).Length){ MessageBox.Show("Invalid evolution method selected", "Evolution method error", MessageBoxButtons.OK, MessageBoxIcon.Error); ResetGUIRow(index); return; } Helpers.DisableHandlers(); EvolutionMethod method = (EvolutionMethod)m.SelectedIndex; EvolutionParamMeaning type = EvolutionFile.evoDescriptions[method]; switch (type) { case EvolutionParamMeaning.Ignored: l.Text = ""; p.Enabled = false; t.Enabled = true; if (p.Value != 0) { Console.WriteLine("Warning: Evolution parameter is not 0, but it should be."); } p.Value = 0; break; case EvolutionParamMeaning.FromLevel: l.Text = "From Level: "; p.Enabled = true; t.Enabled = true; p.Maximum = 100; break; case EvolutionParamMeaning.ItemName: l.Text = $"({itemNames[(int)p.Value]})"; p.Enabled = true; t.Enabled = true; p.Maximum = itemNames.Length - 1; break; case EvolutionParamMeaning.MoveName: l.Text = $"({moveNames[(int)p.Value]})"; p.Enabled = true; t.Enabled = true; p.Maximum = moveNames.Length - 1; break; case EvolutionParamMeaning.PokemonName: l.Text = $"({pokeNames[(int)p.Value]})"; p.Enabled = true; t.Enabled = true; p.Maximum = pokeNames.Length - 1; break; case EvolutionParamMeaning.BeautyValue: l.Text = "Beauty >="; p.Enabled = true; t.Enabled = true; p.Maximum = 255; break; default: throw new Exception("Unknown evolution parameter type: " + type); } Helpers.EnableHandlers(); } private void evoParamUpDown1_ValueChanged(object sender, EventArgs e) { UpdateDescriptionLabel(0); } private void evoParamUpDown2_ValueChanged(object sender, EventArgs e) { UpdateDescriptionLabel(1); } private void evoParamUpDown3_ValueChanged(object sender, EventArgs e) { UpdateDescriptionLabel(2); } private void evoParamUpDown4_ValueChanged(object sender, EventArgs e) { UpdateDescriptionLabel(3); } private void evoParamUpDown5_ValueChanged(object sender, EventArgs e) { UpdateDescriptionLabel(4); } private void evoParamUpDown6_ValueChanged(object sender, EventArgs e) { UpdateDescriptionLabel(5); } private void evoParamUpDown7_ValueChanged(object sender, EventArgs e) { UpdateDescriptionLabel(6); } } } ================================================ FILE: DS_Map/EvolutionsEditor.designer.cs ================================================ namespace DSPRE { partial class EvolutionsEditor { /// /// 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(EvolutionsEditor)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.saveDataButton = new System.Windows.Forms.Button(); this.pokemonPictureBox = new System.Windows.Forms.PictureBox(); this.monNumberNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.pokemonNameInputComboBox = new DSPRE.InputComboBox(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.label2 = new System.Windows.Forms.Label(); this.paramLabel = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.evoMethodComboBox1 = new DSPRE.InputComboBox(); this.evoMethodComboBox2 = new DSPRE.InputComboBox(); this.evoMethodComboBox3 = new DSPRE.InputComboBox(); this.evoMethodComboBox4 = new DSPRE.InputComboBox(); this.evoMethodComboBox5 = new DSPRE.InputComboBox(); this.evoMethodComboBox6 = new DSPRE.InputComboBox(); this.evoMethodComboBox7 = new DSPRE.InputComboBox(); this.evoParamUpDown1 = new System.Windows.Forms.NumericUpDown(); this.evoParamUpDown2 = new System.Windows.Forms.NumericUpDown(); this.evoParamUpDown3 = new System.Windows.Forms.NumericUpDown(); this.evoParamUpDown4 = new System.Windows.Forms.NumericUpDown(); this.evoParamUpDown5 = new System.Windows.Forms.NumericUpDown(); this.evoParamUpDown6 = new System.Windows.Forms.NumericUpDown(); this.evoParamUpDown7 = new System.Windows.Forms.NumericUpDown(); this.evoTargetMonComboBox1 = new DSPRE.InputComboBox(); this.evoTargetMonComboBox2 = new DSPRE.InputComboBox(); this.evoTargetMonComboBox3 = new DSPRE.InputComboBox(); this.evoTargetMonComboBox4 = new DSPRE.InputComboBox(); this.evoTargetMonComboBox5 = new DSPRE.InputComboBox(); this.evoTargetMonComboBox6 = new DSPRE.InputComboBox(); this.evoTargetMonComboBox7 = new DSPRE.InputComboBox(); this.descLabel1 = new System.Windows.Forms.Label(); this.descLabel2 = new System.Windows.Forms.Label(); this.descLabel3 = new System.Windows.Forms.Label(); this.descLabel4 = new System.Windows.Forms.Label(); this.descLabel5 = new System.Windows.Forms.Label(); this.descLabel6 = new System.Windows.Forms.Label(); this.descLabel7 = new System.Windows.Forms.Label(); this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pokemonPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.monNumberNumericUpDown)).BeginInit(); this.tableLayoutPanel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown3)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown4)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown5)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown6)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown7)).BeginInit(); this.SuspendLayout(); // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 4; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.41322F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 60.49587F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.97891F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.43285F)); this.tableLayoutPanel1.Controls.Add(this.saveDataButton, 3, 0); this.tableLayoutPanel1.Controls.Add(this.pokemonPictureBox, 0, 0); this.tableLayoutPanel1.Controls.Add(this.monNumberNumericUpDown, 2, 0); this.tableLayoutPanel1.Controls.Add(this.pokemonNameInputComboBox, 1, 0); this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 1); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 2; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 17.13396F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 82.86604F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(576, 321); this.tableLayoutPanel1.TabIndex = 1; // // saveDataButton // this.saveDataButton.Dock = System.Windows.Forms.DockStyle.Fill; this.saveDataButton.Image = ((System.Drawing.Image)(resources.GetObject("saveDataButton.Image"))); this.saveDataButton.Location = new System.Drawing.Point(517, 3); this.saveDataButton.Name = "saveDataButton"; this.saveDataButton.Size = new System.Drawing.Size(56, 49); this.saveDataButton.TabIndex = 30; this.saveDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveDataButton.UseVisualStyleBackColor = true; this.saveDataButton.Click += new System.EventHandler(this.saveDataButton_Click); // // pokemonPictureBox // this.pokemonPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.pokemonPictureBox.Location = new System.Drawing.Point(3, 3); this.pokemonPictureBox.Name = "pokemonPictureBox"; this.pokemonPictureBox.Size = new System.Drawing.Size(53, 49); this.pokemonPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.pokemonPictureBox.TabIndex = 12; this.pokemonPictureBox.TabStop = false; // // monNumberNumericUpDown // this.monNumberNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.monNumberNumericUpDown.Location = new System.Drawing.Point(409, 17); this.monNumberNumericUpDown.Name = "monNumberNumericUpDown"; this.monNumberNumericUpDown.Size = new System.Drawing.Size(102, 20); this.monNumberNumericUpDown.TabIndex = 16; this.monNumberNumericUpDown.ValueChanged += new System.EventHandler(this.monNumberNumericUpDown_ValueChanged); // // pokemonNameInputComboBox // this.pokemonNameInputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.pokemonNameInputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.pokemonNameInputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.pokemonNameInputComboBox.FormattingEnabled = true; this.pokemonNameInputComboBox.Location = new System.Drawing.Point(62, 17); this.pokemonNameInputComboBox.Name = "pokemonNameInputComboBox"; this.pokemonNameInputComboBox.Size = new System.Drawing.Size(341, 21); this.pokemonNameInputComboBox.TabIndex = 31; this.pokemonNameInputComboBox.SelectedIndexChanged += new System.EventHandler(this.pokemonNameInputComboBox_SelectedIndexChanged); // // tableLayoutPanel2 // this.tableLayoutPanel2.ColumnCount = 4; this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanel2, 4); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 40F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 89F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.5074F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 39.7463F)); this.tableLayoutPanel2.Controls.Add(this.label2, 3, 0); this.tableLayoutPanel2.Controls.Add(this.paramLabel, 2, 0); this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); this.tableLayoutPanel2.Controls.Add(this.evoMethodComboBox1, 0, 1); this.tableLayoutPanel2.Controls.Add(this.evoMethodComboBox2, 0, 2); this.tableLayoutPanel2.Controls.Add(this.evoMethodComboBox3, 0, 3); this.tableLayoutPanel2.Controls.Add(this.evoMethodComboBox4, 0, 4); this.tableLayoutPanel2.Controls.Add(this.evoMethodComboBox5, 0, 5); this.tableLayoutPanel2.Controls.Add(this.evoMethodComboBox6, 0, 6); this.tableLayoutPanel2.Controls.Add(this.evoMethodComboBox7, 0, 7); this.tableLayoutPanel2.Controls.Add(this.evoParamUpDown1, 2, 1); this.tableLayoutPanel2.Controls.Add(this.evoParamUpDown2, 2, 2); this.tableLayoutPanel2.Controls.Add(this.evoParamUpDown3, 2, 3); this.tableLayoutPanel2.Controls.Add(this.evoParamUpDown4, 2, 4); this.tableLayoutPanel2.Controls.Add(this.evoParamUpDown5, 2, 5); this.tableLayoutPanel2.Controls.Add(this.evoParamUpDown6, 2, 6); this.tableLayoutPanel2.Controls.Add(this.evoParamUpDown7, 2, 7); this.tableLayoutPanel2.Controls.Add(this.evoTargetMonComboBox1, 3, 1); this.tableLayoutPanel2.Controls.Add(this.evoTargetMonComboBox2, 3, 2); this.tableLayoutPanel2.Controls.Add(this.evoTargetMonComboBox3, 3, 3); this.tableLayoutPanel2.Controls.Add(this.evoTargetMonComboBox4, 3, 4); this.tableLayoutPanel2.Controls.Add(this.evoTargetMonComboBox5, 3, 5); this.tableLayoutPanel2.Controls.Add(this.evoTargetMonComboBox6, 3, 6); this.tableLayoutPanel2.Controls.Add(this.evoTargetMonComboBox7, 3, 7); this.tableLayoutPanel2.Controls.Add(this.descLabel1, 1, 1); this.tableLayoutPanel2.Controls.Add(this.descLabel2, 1, 2); this.tableLayoutPanel2.Controls.Add(this.descLabel3, 1, 3); this.tableLayoutPanel2.Controls.Add(this.descLabel4, 1, 4); this.tableLayoutPanel2.Controls.Add(this.descLabel5, 1, 5); this.tableLayoutPanel2.Controls.Add(this.descLabel6, 1, 6); this.tableLayoutPanel2.Controls.Add(this.descLabel7, 1, 7); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 58); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.Padding = new System.Windows.Forms.Padding(4); this.tableLayoutPanel2.RowCount = 8; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel2.Size = new System.Drawing.Size(570, 260); this.tableLayoutPanel2.TabIndex = 32; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(380, 4); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(62, 13); this.label2.TabIndex = 2; this.label2.Text = "Target Mon"; // // paramLabel // this.paramLabel.AutoSize = true; this.paramLabel.Location = new System.Drawing.Point(284, 4); this.paramLabel.Name = "paramLabel"; this.paramLabel.Size = new System.Drawing.Size(55, 13); this.paramLabel.TabIndex = 1; this.paramLabel.Text = "Parameter"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(7, 4); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(90, 13); this.label1.TabIndex = 0; this.label1.Text = "Evolution Method"; // // evoMethodComboBox1 // this.evoMethodComboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoMethodComboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoMethodComboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoMethodComboBox1.FormattingEnabled = true; this.evoMethodComboBox1.Location = new System.Drawing.Point(7, 30); this.evoMethodComboBox1.Name = "evoMethodComboBox1"; this.evoMethodComboBox1.Size = new System.Drawing.Size(182, 21); this.evoMethodComboBox1.TabIndex = 3; this.evoMethodComboBox1.SelectedIndexChanged += new System.EventHandler(this.evoMethodComboBox1_SelectedIndexChanged); // // evoMethodComboBox2 // this.evoMethodComboBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoMethodComboBox2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoMethodComboBox2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoMethodComboBox2.FormattingEnabled = true; this.evoMethodComboBox2.Location = new System.Drawing.Point(7, 63); this.evoMethodComboBox2.Name = "evoMethodComboBox2"; this.evoMethodComboBox2.Size = new System.Drawing.Size(182, 21); this.evoMethodComboBox2.TabIndex = 4; this.evoMethodComboBox2.SelectedIndexChanged += new System.EventHandler(this.evoMethodComboBox2_SelectedIndexChanged); // // evoMethodComboBox3 // this.evoMethodComboBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoMethodComboBox3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoMethodComboBox3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoMethodComboBox3.FormattingEnabled = true; this.evoMethodComboBox3.Location = new System.Drawing.Point(7, 96); this.evoMethodComboBox3.Name = "evoMethodComboBox3"; this.evoMethodComboBox3.Size = new System.Drawing.Size(182, 21); this.evoMethodComboBox3.TabIndex = 5; this.evoMethodComboBox3.SelectedIndexChanged += new System.EventHandler(this.evoMethodComboBox3_SelectedIndexChanged); // // evoMethodComboBox4 // this.evoMethodComboBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoMethodComboBox4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoMethodComboBox4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoMethodComboBox4.FormattingEnabled = true; this.evoMethodComboBox4.Location = new System.Drawing.Point(7, 129); this.evoMethodComboBox4.Name = "evoMethodComboBox4"; this.evoMethodComboBox4.Size = new System.Drawing.Size(182, 21); this.evoMethodComboBox4.TabIndex = 6; this.evoMethodComboBox4.SelectedIndexChanged += new System.EventHandler(this.evoMethodComboBox4_SelectedIndexChanged); // // evoMethodComboBox5 // this.evoMethodComboBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoMethodComboBox5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoMethodComboBox5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoMethodComboBox5.FormattingEnabled = true; this.evoMethodComboBox5.Location = new System.Drawing.Point(7, 162); this.evoMethodComboBox5.Name = "evoMethodComboBox5"; this.evoMethodComboBox5.Size = new System.Drawing.Size(182, 21); this.evoMethodComboBox5.TabIndex = 7; this.evoMethodComboBox5.SelectedIndexChanged += new System.EventHandler(this.evoMethodComboBox5_SelectedIndexChanged); // // evoMethodComboBox6 // this.evoMethodComboBox6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoMethodComboBox6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoMethodComboBox6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoMethodComboBox6.FormattingEnabled = true; this.evoMethodComboBox6.Location = new System.Drawing.Point(7, 195); this.evoMethodComboBox6.Name = "evoMethodComboBox6"; this.evoMethodComboBox6.Size = new System.Drawing.Size(182, 21); this.evoMethodComboBox6.TabIndex = 8; this.evoMethodComboBox6.SelectedIndexChanged += new System.EventHandler(this.evoMethodComboBox6_SelectedIndexChanged); // // evoMethodComboBox7 // this.evoMethodComboBox7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoMethodComboBox7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoMethodComboBox7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoMethodComboBox7.FormattingEnabled = true; this.evoMethodComboBox7.Location = new System.Drawing.Point(7, 228); this.evoMethodComboBox7.Name = "evoMethodComboBox7"; this.evoMethodComboBox7.Size = new System.Drawing.Size(182, 21); this.evoMethodComboBox7.TabIndex = 9; this.evoMethodComboBox7.SelectedIndexChanged += new System.EventHandler(this.evoMethodComboBox7_SelectedIndexChanged); // // evoParamUpDown1 // this.evoParamUpDown1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoParamUpDown1.Location = new System.Drawing.Point(284, 30); this.evoParamUpDown1.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.evoParamUpDown1.Name = "evoParamUpDown1"; this.evoParamUpDown1.Size = new System.Drawing.Size(90, 20); this.evoParamUpDown1.TabIndex = 10; this.evoParamUpDown1.ValueChanged += new System.EventHandler(this.evoParamUpDown1_ValueChanged); // // evoParamUpDown2 // this.evoParamUpDown2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoParamUpDown2.Location = new System.Drawing.Point(284, 63); this.evoParamUpDown2.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.evoParamUpDown2.Name = "evoParamUpDown2"; this.evoParamUpDown2.Size = new System.Drawing.Size(90, 20); this.evoParamUpDown2.TabIndex = 11; this.evoParamUpDown2.ValueChanged += new System.EventHandler(this.evoParamUpDown2_ValueChanged); // // evoParamUpDown3 // this.evoParamUpDown3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoParamUpDown3.Location = new System.Drawing.Point(284, 96); this.evoParamUpDown3.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.evoParamUpDown3.Name = "evoParamUpDown3"; this.evoParamUpDown3.Size = new System.Drawing.Size(90, 20); this.evoParamUpDown3.TabIndex = 12; this.evoParamUpDown3.ValueChanged += new System.EventHandler(this.evoParamUpDown3_ValueChanged); // // evoParamUpDown4 // this.evoParamUpDown4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoParamUpDown4.Location = new System.Drawing.Point(284, 129); this.evoParamUpDown4.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.evoParamUpDown4.Name = "evoParamUpDown4"; this.evoParamUpDown4.Size = new System.Drawing.Size(90, 20); this.evoParamUpDown4.TabIndex = 13; this.evoParamUpDown4.ValueChanged += new System.EventHandler(this.evoParamUpDown4_ValueChanged); // // evoParamUpDown5 // this.evoParamUpDown5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoParamUpDown5.Location = new System.Drawing.Point(284, 162); this.evoParamUpDown5.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.evoParamUpDown5.Name = "evoParamUpDown5"; this.evoParamUpDown5.Size = new System.Drawing.Size(90, 20); this.evoParamUpDown5.TabIndex = 14; this.evoParamUpDown5.ValueChanged += new System.EventHandler(this.evoParamUpDown5_ValueChanged); // // evoParamUpDown6 // this.evoParamUpDown6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoParamUpDown6.Location = new System.Drawing.Point(284, 195); this.evoParamUpDown6.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.evoParamUpDown6.Name = "evoParamUpDown6"; this.evoParamUpDown6.Size = new System.Drawing.Size(90, 20); this.evoParamUpDown6.TabIndex = 15; this.evoParamUpDown6.ValueChanged += new System.EventHandler(this.evoParamUpDown6_ValueChanged); // // evoParamUpDown7 // this.evoParamUpDown7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoParamUpDown7.Location = new System.Drawing.Point(284, 229); this.evoParamUpDown7.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.evoParamUpDown7.Name = "evoParamUpDown7"; this.evoParamUpDown7.Size = new System.Drawing.Size(90, 20); this.evoParamUpDown7.TabIndex = 16; this.evoParamUpDown7.ValueChanged += new System.EventHandler(this.evoParamUpDown7_ValueChanged); // // evoTargetMonComboBox1 // this.evoTargetMonComboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoTargetMonComboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoTargetMonComboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoTargetMonComboBox1.FormattingEnabled = true; this.evoTargetMonComboBox1.Location = new System.Drawing.Point(380, 30); this.evoTargetMonComboBox1.Name = "evoTargetMonComboBox1"; this.evoTargetMonComboBox1.Size = new System.Drawing.Size(183, 21); this.evoTargetMonComboBox1.TabIndex = 17; // // evoTargetMonComboBox2 // this.evoTargetMonComboBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoTargetMonComboBox2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoTargetMonComboBox2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoTargetMonComboBox2.FormattingEnabled = true; this.evoTargetMonComboBox2.Location = new System.Drawing.Point(380, 63); this.evoTargetMonComboBox2.Name = "evoTargetMonComboBox2"; this.evoTargetMonComboBox2.Size = new System.Drawing.Size(183, 21); this.evoTargetMonComboBox2.TabIndex = 18; // // evoTargetMonComboBox3 // this.evoTargetMonComboBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoTargetMonComboBox3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoTargetMonComboBox3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoTargetMonComboBox3.FormattingEnabled = true; this.evoTargetMonComboBox3.Location = new System.Drawing.Point(380, 96); this.evoTargetMonComboBox3.Name = "evoTargetMonComboBox3"; this.evoTargetMonComboBox3.Size = new System.Drawing.Size(183, 21); this.evoTargetMonComboBox3.TabIndex = 19; // // evoTargetMonComboBox4 // this.evoTargetMonComboBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoTargetMonComboBox4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoTargetMonComboBox4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoTargetMonComboBox4.FormattingEnabled = true; this.evoTargetMonComboBox4.Location = new System.Drawing.Point(380, 129); this.evoTargetMonComboBox4.Name = "evoTargetMonComboBox4"; this.evoTargetMonComboBox4.Size = new System.Drawing.Size(183, 21); this.evoTargetMonComboBox4.TabIndex = 20; // // evoTargetMonComboBox5 // this.evoTargetMonComboBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoTargetMonComboBox5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoTargetMonComboBox5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoTargetMonComboBox5.FormattingEnabled = true; this.evoTargetMonComboBox5.Location = new System.Drawing.Point(380, 162); this.evoTargetMonComboBox5.Name = "evoTargetMonComboBox5"; this.evoTargetMonComboBox5.Size = new System.Drawing.Size(183, 21); this.evoTargetMonComboBox5.TabIndex = 21; // // evoTargetMonComboBox6 // this.evoTargetMonComboBox6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoTargetMonComboBox6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoTargetMonComboBox6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoTargetMonComboBox6.FormattingEnabled = true; this.evoTargetMonComboBox6.Location = new System.Drawing.Point(380, 195); this.evoTargetMonComboBox6.Name = "evoTargetMonComboBox6"; this.evoTargetMonComboBox6.Size = new System.Drawing.Size(183, 21); this.evoTargetMonComboBox6.TabIndex = 22; // // evoTargetMonComboBox7 // this.evoTargetMonComboBox7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evoTargetMonComboBox7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.evoTargetMonComboBox7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.evoTargetMonComboBox7.Location = new System.Drawing.Point(380, 228); this.evoTargetMonComboBox7.Name = "evoTargetMonComboBox7"; this.evoTargetMonComboBox7.Size = new System.Drawing.Size(183, 21); this.evoTargetMonComboBox7.TabIndex = 0; // // descLabel1 // this.descLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.descLabel1.AutoSize = true; this.descLabel1.Location = new System.Drawing.Point(195, 34); this.descLabel1.Name = "descLabel1"; this.descLabel1.Size = new System.Drawing.Size(83, 13); this.descLabel1.TabIndex = 23; this.descLabel1.Text = "at Level"; this.descLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // descLabel2 // this.descLabel2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.descLabel2.AutoSize = true; this.descLabel2.Location = new System.Drawing.Point(195, 67); this.descLabel2.Name = "descLabel2"; this.descLabel2.Size = new System.Drawing.Size(83, 13); this.descLabel2.TabIndex = 24; this.descLabel2.Text = "at Level"; this.descLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // descLabel3 // this.descLabel3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.descLabel3.AutoSize = true; this.descLabel3.Location = new System.Drawing.Point(195, 100); this.descLabel3.Name = "descLabel3"; this.descLabel3.Size = new System.Drawing.Size(83, 13); this.descLabel3.TabIndex = 25; this.descLabel3.Text = "at Level"; this.descLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // descLabel4 // this.descLabel4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.descLabel4.AutoSize = true; this.descLabel4.Location = new System.Drawing.Point(195, 133); this.descLabel4.Name = "descLabel4"; this.descLabel4.Size = new System.Drawing.Size(83, 13); this.descLabel4.TabIndex = 26; this.descLabel4.Text = "at Level"; this.descLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // descLabel5 // this.descLabel5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.descLabel5.AutoSize = true; this.descLabel5.Location = new System.Drawing.Point(195, 166); this.descLabel5.Name = "descLabel5"; this.descLabel5.Size = new System.Drawing.Size(83, 13); this.descLabel5.TabIndex = 27; this.descLabel5.Text = "at Level"; this.descLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // descLabel6 // this.descLabel6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.descLabel6.AutoSize = true; this.descLabel6.Location = new System.Drawing.Point(195, 199); this.descLabel6.Name = "descLabel6"; this.descLabel6.Size = new System.Drawing.Size(83, 13); this.descLabel6.TabIndex = 28; this.descLabel6.Text = "at Level"; this.descLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // descLabel7 // this.descLabel7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.descLabel7.AutoSize = true; this.descLabel7.Location = new System.Drawing.Point(195, 232); this.descLabel7.Name = "descLabel7"; this.descLabel7.Size = new System.Drawing.Size(83, 13); this.descLabel7.TabIndex = 29; this.descLabel7.Text = "at Level"; this.descLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // EvolutionsEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(576, 321); this.Controls.Add(this.tableLayoutPanel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "EvolutionsEditor"; this.Text = "Evolutions Editor"; this.tableLayoutPanel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pokemonPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.monNumberNumericUpDown)).EndInit(); this.tableLayoutPanel2.ResumeLayout(false); this.tableLayoutPanel2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown3)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown4)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown5)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown6)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evoParamUpDown7)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.Button saveDataButton; private System.Windows.Forms.PictureBox pokemonPictureBox; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label paramLabel; private System.Windows.Forms.Label label1; private InputComboBox evoMethodComboBox1; private InputComboBox evoMethodComboBox2; private InputComboBox evoMethodComboBox3; private InputComboBox evoMethodComboBox4; private InputComboBox evoMethodComboBox5; private InputComboBox evoMethodComboBox6; private InputComboBox evoMethodComboBox7; private System.Windows.Forms.NumericUpDown evoParamUpDown1; private System.Windows.Forms.NumericUpDown evoParamUpDown2; private System.Windows.Forms.NumericUpDown evoParamUpDown3; private System.Windows.Forms.NumericUpDown evoParamUpDown4; private System.Windows.Forms.NumericUpDown evoParamUpDown5; private System.Windows.Forms.NumericUpDown evoParamUpDown6; private System.Windows.Forms.NumericUpDown evoParamUpDown7; private InputComboBox evoTargetMonComboBox1; private InputComboBox evoTargetMonComboBox2; private InputComboBox evoTargetMonComboBox3; private InputComboBox evoTargetMonComboBox4; private InputComboBox evoTargetMonComboBox5; private InputComboBox evoTargetMonComboBox6; private InputComboBox evoTargetMonComboBox7; private System.Windows.Forms.Label descLabel1; private System.Windows.Forms.Label descLabel2; private System.Windows.Forms.Label descLabel3; private System.Windows.Forms.Label descLabel4; private System.Windows.Forms.Label descLabel5; private System.Windows.Forms.Label descLabel6; private System.Windows.Forms.Label descLabel7; public InputComboBox pokemonNameInputComboBox; public System.Windows.Forms.NumericUpDown monNumberNumericUpDown; } } ================================================ FILE: DS_Map/EvolutionsEditor.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 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAacSURBVFhHxZd5bFRVGMX5Aw24VmtbI4lGoyHGYPSP mqgoEQg0SqELbVEiGiWAqIS1lha6sdTK0oWyiAYQTBVQBEqrgEaIghAKDaC1te1M91k7nZnXmS4z0+N3 7rQDtTMmNia85Mx777v3/s5533uzjQJwS+V/8W+3ReVUmMOzK3B/VjnCMstx19py3LGmHGNHKK4lgywy yY7MKjsqXqP9lrINBKC5Jfu8A1VWH65YfDhv9MrQ/7ORRSbZ9Ihce7RMPP0hZJy7MKarsfkwOr8WYzfX YdTGGlitHdC1W1DfNjJxLRlkkUk2PeglnnfTeDBAJFt01epFWKEOY+IyMHarDna7DY0mCWEUmWz+vahB yRo4D1bjeaPJqhhkkUk2PeglnhE0vilABSpNHkSVNOKe2Zm4t6gRmtOBVqsDbZ1utDu60Wp3o8XmQnNH l0hDa6dLFKzGcw0tFjucDodikUk2PehFTxrfCCBtOdfWi3Hb9Xhw+UGEF+uhaU4Y7C6kzE7E6ynJ2Lm9 BNu3FWNbUQEMjh4kJcZjR8m2ILViFBcWoM2myUU4FYtMsulBL3rSOBCA9+VMcy8e2dGAJz7VI6q4Hq6u LhXA1NUHs9ur9gatVxmxI0Y5NmpSc/prBqmZ5Jx1jrfbuhSDLDLJpsfAMzA8wOnGHjy+swFP7tZhXIkE cLlhFJDZ5YW1G7L3SQgvjF2eG3L6A3COxd0fmKNCye0hgywyyaZH0AAPSPFEQ4+aOOFznUrb090Nq6sP ydLWOclJ/nYXF6EkoEIUF2yVcP0yJyEwh/Wigi0waz3oFgZZZJJND3rRk8ZDAhyrd8tEPZ7Zo8dju3To 6emFRdre0QPY+qD2NGM3/OqHRa6YV//POayZpQtkkEUm2fQIGeBwrRvP7tUjep8e43c3oK/Pgw65950C pgjvEGO7HDvkc2qwRkMes869rXcgoMujGGSRSTY9ggfIqUBptQvPfdGE5/c34ilpmcfjhV1giXEzA211 eICkhHikJCXK01+kanapJcbPGrg9heodUbhlM2zdPsUgi0yy6UEvetI4ECBCivv/cOHFA8146csm1TKv V65s4OoGr8wmV8wQTukAjVljF1QH5DwwV2o2eSg9nn7FIpNsetCLnjQeEmDv7xomlbZgsiha0nKT24hO GlDSVpsocB6qNlB3yp4bWWSSTY+QAT67qmHqVy2Y/rVMlsSndG4F8PWPTNzIIItMsukRMsAuGYw52IrX DrXi1YMtmFLajJdl8cQDIxPXkkEWmWTTI2SA7VUaYg+3Ie7bNsSLZn3ThplyPuNw64jEtWSQRSbZ9AgZ oPiKhoQj7Zj9XTuSRDyOFUDMoTZMk/T/RVzDtWSQRSaP6RE0QKQUCyo1JB81YM4xv+KPGFBaaQC88lj3 iTzymHvl8ad4zFooyRquJWOQRzY96EVPGg8JsPWShrnHDXizzKD2cZIYXg+u1ptwVdeB6hYNfxm7lapb nKpWVW8WmYaqTubLHj6PYtzMpEfIAJsuOTGv3Ii3RPNOGJEgbePVXtfZYJKPvozsPEybOhnTpryC9Mx1 qnZd34lrMn5df0M8vybhuJYMshRTRI+QAT655MC735swX/ROhQnJ0jZCqpsd4Fs6ZnoMlqXlinKwcEka 5INOjVU324erqVOtJYMsMsmmR8gAH1/UsPCkBYtOmrHgBzPeKDNKG72oadUgdxyxM2Kxam0eVq7ZgPeX r0WvvNc5VtPqHK4Wh6z1KQZZZJJNj5ABNl504IPTZqXFp8yqZej3oU7uOX8jx8XFIy07Hx9l5mPJqmzI o6bG6gyuoOJaMsga5NIjZIANMrj0J6vIgiU/WlTLhAKduVde5QsncTYy1m1Ges4mLF+dq0JxTGfqHi4J xrVkkEUm2fT4lwAaUs/akHqmAyt+tmLRKYsMQ350elSApOQUrFm/BWskxMqM9ZBHAM0y1tTRN1TWPjRb 5UtENjLIIpNsegQNEJVV1pl/2Y11FzTk/uaUPxBOrDhrVxCTpnZISExEWmYeVmflITU9V9WMTshvweEy ibiRQRaZZNMjYuWBs+I55Gd5mCg6KvO4nemo8Oxy3J5ehmvXanHu8p/45XIN3p6/4L2lq1IXf7hs2eK5 G/fsuFBVi18rZSyIzom4lgyyBrkRy/edE6+nRUP+mNwmekgULZosmhJEL4jGix4WPSqaIJooCjY3lCaJ aM6rH/LXjBtDsBO8N8F0n2iMiAs5905RuCjY3FCiMa982J/TW7SNGvU3iJOEw8UaLRYAAAAASUVORK5C YII= AAABAAEAwMAAAAEACAAopgAAFgAAACgAAADAAAAAgAEAAAEACAAAAAAAAJAAAMEOAADBDgAAAAEAAAAB AAAAAAAADEpYAA9bbgAKLjUAHXyQABgYGAAQEBAALFBXAF280AAjR04ARaS4AKCgoAC9vdAAPT1QALCw sACQkJAAKU1UAFW0yAB4eHgAH0NKAP8p+wB3w9YAMjlMACQ3SgDQ0NAACC6lAAAV/wAAQbEAAEf/AAAq nQBsf5IA/xzHACx02gBnd64AAB3/AHp/gQAmN0oAKzxPAKCgnABlZWUAaGhoAN/fzgD/ewAAKysnANra yQDk5NEA1sOwAInV1QDW1sUA2dnIAOLi0QAICg8AbW1vAB8yQwD/ogAAKCUhAC4/UgDJtqUAurq2AOHh 0ACVlZUAa2trAC0+UQCRlpYAeL/SAInHxwB3fH4AebfIAHe1wwBARVgAZrLBAGqouwAJDg4ASZemAF6c rQAUHBwASJSkAAIHCQAVY3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAAAAAQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAQEBAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAAAAAQEBAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAAAA AQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAAAAAAAAAQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAAAAAAAATU1NTk5OBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgICAgICAAAAAAAATU1NTk5OBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgICAgICAAAAAAAATU1NTk5OBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgICAgICAAAAAAAA AAAATU1NTk5OBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE AgICAgICAAAAAAAAAAAATU1NTk5OBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEAgICAgICAAAAAAAAAAAATU1NTk5OBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgICAgICAAAAAAAAAAAAAAAAS0tLTExMERERERERCAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUVCAgICAgICAgICAgI ERERERERCgoKCgoKFRUVFRUVLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vFRUVFRUVCAgICAgIFRUVFRUV FRUVFRUVFRUVFRUVFRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAAS0tLTExM ERERERERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUV CAgICAgICAgICAgIERERERERCgoKCgoKFRUVFRUVLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vFRUVFRUV CAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAAS0tLTExMERERERERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgIFRUVFRUVCAgICAgICAgICAgIERERERERCgoKCgoKFRUVFRUVLy8vLy8vFRUVFRUVFRUVFRUV Ly8vLy8vFRUVFRUVCAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgICAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGS0tLTExMERERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgIFRUVFRUVCAgICAgICAgICAgIERERERERCgoKCgoKFRUVFRUVLy8vLy8v FRUVFRUVFRUVFRUVLy8vLy8vFRUVFRUVCAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgI CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGS0tLTExMERERCAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUVCAgICAgICAgICAgIERERERERCgoKCgoK FRUVFRUVLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vFRUVFRUVCAgICAgIFRUVFRUVFRUVFRUVFRUVFRUV FRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGS0tLTExMERERCAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUVCAgICAgICAgICAgI ERERERERCgoKCgoKFRUVFRUVLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vFRUVFRUVCAgICAgIFRUVFRUV FRUVFRUVFRUVFRUVFRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG S0tLTExMERERERERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUVFRUVFRUV FRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgI CAgICAgIFRUVFRUVCAgICAgICAgICAgIFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGS0tLTExMERERERERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v FRUVFRUVCAgICAgICAgICAgIFRUVFRUVCAgICAgICAgICAgIFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGS0tLTExMERERERERCAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vFRUVFRUVCAgICAgICAgICAgIFRUVFRUVCAgICAgICAgICAgIFRUVFRUVFRUVFRUV CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGS0tLTExMERERCAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgICAgICAgIFRUVFRUVCAgICAgICAgICAgI FRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGS0tLTExMERER CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUV FRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgICAgICAgIFRUVFRUV CAgICAgICAgICAgIFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGS0tLTExMERERCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUVFRUVFRUVFRUV FRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgI CAgICAgIFRUVFRUVCAgICAgICAgICAgIFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAASEhISkpKCAgICAgIERERERERCAgICAgIFRUVFRUVFRUVFRUVFRUVFRUV FRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgICAgICAgIFRUVFRUVCAgICAgIERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhISkpKCAgICAgIERERERERCAgICAgIFRUVFRUV FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgICAgICAgIFRUVFRUVCAgICAgI ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhISkpKCAgICAgIERERERER CAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgICAgICAgI FRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhI SUlJCAgIERERERERCAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUV CAgICAgICAgICAgIFRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAASEhISUlJCAgIERERERERCAgICAgIFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUV Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vFRUVFRUVCAgICAgICAgICAgIFRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAASEhISUlJCAgIERERERERCAgICAgIFRUVFRUVFRUVFRUVFRUVFRUV FRUVFRUVFRUVFRUVLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVCAgICAgICAgICAgIFRUVFRUVCAgICAgIERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFAAAAAAAADQ0NDQ0NRUVFR0dHCAgICAgILy8vLy8vFRUVFRUV FRUVFRUVFRUVFRUVFRUVFRUVCgoKCgoKFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX CgoKCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vCAgICAgICAgICAgI FRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFAAAAAAAADQ0NDQ0NRUVFR0dHCAgICAgI Ly8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCgoKCgoKFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8v CAgICAgICAgICAgIFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFAAAAAAAADQ0NDQ0N RUVFR0dHCAgICAgILy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCgoKCgoKFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUV FRUVFRUVLy8vLy8vCAgICAgICAgICAgIFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF AAAAAAAADQ0NDQ0NDQ0NRUVFRkZGCAgILy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCgoKCgoK FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vCAgICAgICAgICAgIFRUVFRUVBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFAAAAAAAADQ0NDQ0NDQ0NRUVFRkZGCAgILy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUV FRUVFRUVCgoKCgoKFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vCAgICAgICAgICAgIFRUVFRUVBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFAAAAAAAADQ0NDQ0NDQ0NRUVFRkZGCAgILy8vLy8vFRUVFRUV FRUVFRUVFRUVFRUVFRUVFRUVCgoKCgoKFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX CgoKCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVFRUVFRUVLy8vLy8vCAgICAgICAgICAgI FRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFAAAAAAAAEhISEhISQkJCRERE FRUVFRUVFRUVFRUVFRUVFRUVHh4eHh4eFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8vLy8vLy8vFRUVFRUVLy8vLy8vCAgICAgI CAgICAgICAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFAAAAAAAA EhISEhISQkJCREREFRUVFRUVFRUVFRUVFRUVFRUVHh4eHh4eFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8vLy8vLy8vFRUVFRUV Ly8vLy8vCAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFAAAAAAAAEhISEhISQkJCREREFRUVFRUVFRUVFRUVFRUVFRUVHh4eHh4eFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8v Ly8vLy8vFRUVFRUVLy8vLy8vCAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFAAAAAAAAEhISEhISEhISQkJCQ0NDFRUVFRUVFRUVFRUVFRUVHh4eHh4e FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX CgoKCgoKLy8vLy8vLy8vLy8vFRUVFRUVLy8vLy8vCAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFAAAAAAAAEhISEhISEhISQkJCQ0NDFRUVFRUVFRUV FRUVFRUVHh4eHh4eFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8vLy8vLy8vFRUVFRUVLy8vLy8vCAgICAgICAgICAgICAgICAgI CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFAAAAAAAAEhISEhISEhISQkJC Q0NDFRUVFRUVFRUVFRUVFRUVHh4eHh4eFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCgoKCgoKLy8vLy8vLy8vLy8vFRUVFRUVLy8vLy8vCAgICAgI CAgICAgICAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG AAAAAAAAAAAAAAAAPz8/QUFBFRUVFRUVFxcXFxcXFxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4uLi4uLi4u LS0tLS0tLS0tLS0tLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8v FRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAAPz8/QUFBFRUVFRUVFxcXFxcXFxcXFxcXFxcXFxcXKCgoKCgo Li4uLi4uLi4uLi4uLS0tLS0tLS0tLS0tLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXFxcXFxcX Ly8vLy8vLy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAAPz8/QUFBFRUVFRUVFxcXFxcXFxcXFxcX FxcXFxcXKCgoKCgoLi4uLi4uLi4uLi4uLS0tLS0tLS0tLS0tLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcX FxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAADw8PPz8/QEBAFRUV FxcXFxcXFxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4uLi4uLi4uLS0tLS0tLS0tLS0tLi4uLi4uLi4uLi4u KCgoKCgoFxcXFxcXFxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgI ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAA Dw8PPz8/QEBAFRUVFxcXFxcXFxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4uLi4uLi4uLS0tLS0tLS0tLS0t Li4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8vFRUVFRUVFRUVFRUV FRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG AAAAAAAAAAAAAAAADw8PPz8/QEBAFRUVFxcXFxcXFxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4uLi4uLi4u LS0tLS0tLS0tLS0tLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8v FRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAAIyMjJSUlFxcXFxcXKCgoKCgoLi4uLi4uLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uKCgoKCgoFxcXFxcX FxcXFxcXLy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAAIyMjJSUlFxcXFxcXKCgoKCgo Li4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4u KCgoKCgoFxcXFxcXFxcXFxcXLy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAAIyMjJSUl FxcXFxcXKCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXLy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUV CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF AAAAAAAADw8PIyMjPj4+FxcXKCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXLy8vLy8vFRUVFRUVFRUVFRUV FRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFAAAAAAAADw8PIyMjPj4+FxcXKCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXLy8vLy8v FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAADw8PIyMjPj4+FxcXKCgoKCgoLi4uLi4uLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uKCgoKCgoFxcXFxcX FxcXFxcXLy8vLy8vFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFNjY2NjY2NjY2NjY2BQUFBQUFAAAAAAAAPDw8PT09LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKCgoKCgoFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFNjY2NjY2NjY2NjY2BQUFBQUFAAAAAAAA PDw8PT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgICAgICAgI CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFNjY2NjY2NjY2NjY2 BQUFBQUFAAAAAAAAPDw8PT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgI CAgICAgICAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF NjY2NjY2NjY2NjY2BQUFBQUFAAAAAAAACwsLPDw8Ozs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXFxcXFxcX FRUVFRUVCAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFNjY2NjY2NjY2NjY2BQUFBQUFAAAAAAAACwsLPDw8Ozs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgo FxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFNjY2NjY2NjY2NjY2BQUFBQUFAAAAAAAACwsLPDw8Ozs7LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKCgoKCgoFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBgYGBgYGNjY2NjY2BgYGBgYG AAAAAAAAOjo6Ozs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4eFRUVFRUVFRUVFRUVCAgICAgI ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBgYGBgYG NjY2NjY2BgYGBgYGAAAAAAAAOjo6Ozs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4eFRUVFRUV FRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2 BQUFBQUFBgYGBgYGNjY2NjY2BgYGBgYGAAAAAAAAOjo6Ozs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcX Hh4eHh4eFRUVFRUVFRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGNjY2NjY2BQUFBQUFBgYGBgYGNjY2NjY2BgYGBgYGAAAAAAAADg4OOjo6Ozs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t KCgoKCgoFxcXFxcXHh4eHh4eFRUVFRUVFRUVFRUVCAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBgYGBgYGNjY2NjY2BgYGBgYGAAAAAAAADg4OOjo6 Ozs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4eFRUVFRUVFRUVFRUVCAgICAgIERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBgYGBgYGNjY2NjY2BgYGBgYG AAAAAAAADg4OOjo6Ozs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4eFRUVFRUVFRUVFRUVCAgICAgI ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBQUFBQUF NjY2NjY2AAAAAAAABgYGBgYGAAAAAAAAKysrMDAwLS0tLS0tLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcX KCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXLy8vLy8v Ly8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2 BQUFBQUFBQUFBQUFNjY2NjY2AAAAAAAABgYGBgYGAAAAAAAAKysrMDAwLS0tLS0tLi4uLi4uKCgoKCgo FxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcX FxcXFxcXLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGNjY2NjY2BQUFBQUFBQUFBQUFNjY2NjY2AAAAAAAABgYGBgYGAAAAAAAAKysrMDAwLS0tLS0t Li4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Li4uLi4uFxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBQUFBQUFNjY2NjY2AAAAAAAABgYGBgYGAAAAAAAA AAAAKysrMjIyLS0tLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8vLy8vLy8vFRUVFRUVBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBQUFBQUFNjY2NjY2AAAAAAAA BgYGBgYGAAAAAAAAAAAAKysrMjIyLS0tLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXKCgoKCgoLi4uLi4u LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXLy8vLy8vLy8vLy8vLy8vLy8v FRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGNjY2NjY2BQUFBQUFBQUFBQUF NjY2NjY2AAAAAAAABgYGBgYGAAAAAAAAAAAAKysrMjIyLS0tLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcX KCgoKCgoLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXLy8vLy8v Ly8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG NjY2NjY2NjY2NjY2AAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNzc3OTk5FxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgo FxcXFxcXHh4eHh4eLy8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGNjY2NjY2NjY2NjY2AAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNzc3OTk5 FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4eLy8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGNjY2NjY2NjY2NjY2AAAAAAAABQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFNzc3OTk5FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4eLy8vLy8vLy8vLy8vFRUVFRUVBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGNjY2NjY2NjY2NjY2AAAAAAAABQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFAAAANzc3ODg4FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX Li4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4eLy8vLy8vLy8vLy8v FRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGNjY2NjY2NjY2NjY2 AAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAAANzc3ODg4FxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXHh4eHh4e Ly8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG NjY2NjY2NjY2NjY2AAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAAANzc3ODg4FxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgo FxcXFxcXHh4eHh4eLy8vLy8vLy8vLy8vFRUVFRUVBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFKioqKioqKioqKioqBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG MzMzNTU1KCgoKCgoLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0t LS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFKioqKioqKioqKioqBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGMzMzNTU1KCgoKCgoLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXLi4uLi4u LS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFKioqKioqKioqKioqBgYGBgYGBgYGBgYGBgYGBgYG BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGMzMzNTU1KCgoKCgoLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcX FxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgI CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFKioqKioqKioqKioqBgYGBgYG BgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAMzMzNDQ0KCgoLi4uLi4uLi4uLi4u KCgoKCgoFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcX FRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFKioqKioq KioqKioqBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAMzMzNDQ0KCgo Li4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0tLS0tLS0tLi4uLi4u FxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFKioqKioqKioqKioqBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG AAAAMzMzNDQ0KCgoLi4uLi4uLi4uLi4uKCgoKCgoFxcXFxcXFxcXFxcXLi4uLi4uLS0tLS0tLS0tLS0t LS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFKioqKioqBgYGBgYGAAAAAAAAKioqKioqBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGKysrMDAwLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXKCgoKCgo LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tFxcXFxcXFxcXFxcXFRUVFRUVERERERERCAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFKioqKioqBgYGBgYGAAAAAAAAKioqKioqBgYGBgYGBgYGBgYG BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGKysrMDAwLS0tLS0tLS0tLS0tLS0tLS0tKCgoKCgo FxcXFxcXKCgoKCgoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tFxcXFxcXFxcXFxcXFRUVFRUVERERERER CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFKioqKioqBgYGBgYGAAAAAAAAKioqKioq BgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGKysrMDAwLS0tLS0tLS0tLS0t LS0tLS0tKCgoKCgoFxcXFxcXKCgoKCgoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tFxcXFxcXFxcXFxcX FRUVFRUVERERERERCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFKioqKioqBgYGBgYG AAAAAAAAKioqKioqBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGAAAAKysr MjIyLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXKCgoKCgoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t FxcXFxcXFxcXFxcXFRUVFRUVERERERERCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF KioqKioqBgYGBgYGAAAAAAAAKioqKioqBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGAAAAKysrMjIyLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXKCgoKCgoLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tFxcXFxcXFxcXFxcXFRUVFRUVERERERERCAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFKioqKioqBgYGBgYGAAAAAAAAKioqKioqBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGAAAAKysrMjIyLS0tLS0tLS0tLS0tLS0tKCgoKCgoFxcXFxcXKCgoKCgo LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tFxcXFxcXFxcXFxcXFRUVFRUVERERERERCAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFKioqKioqBgYGBgYGBgYGBgYGKioqKioqAAAAAAAABQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGKysrMDAwLS0tLS0tLS0tLS0tLi4uLi4u FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgI CgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFKioqKioqBgYGBgYGBgYGBgYGKioqKioq AAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGKysrMDAwLS0tLS0t LS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FRUVFRUVCAgICAgICgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFKioqKioqBgYGBgYG BgYGBgYGKioqKioqAAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG KysrMDAwLS0tLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF KioqKioqBgYGBgYGBgYGBgYGKioqKioqAAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGAAAAKysrMTExLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFKioqKioqBgYGBgYGBgYGBgYGKioqKioqAAAAAAAABQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGAAAAKysrMTExLS0tLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICgoKCgoKBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFKioqKioqBgYGBgYGBgYGBgYGKioqKioqAAAAAAAABQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGAAAAKysrMTExLS0tLS0tLS0tLi4uLi4u FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgI CgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGKioqKioqKioqKioqBQUFBQUF BgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKysrMDAw LS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX Ly8vLy8vFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGKioqKioq KioqKioqBQUFBQUFBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFKysrMDAwLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXLy8vLy8vFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGKioqKioqKioqKioqBQUFBQUFBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFKysrMDAwLS0tLS0tLi4uLi4uFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXLy8vLy8vFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGKioqKioqKioqKioqBQUFBQUFBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAAAKysrLCwsLS0tLi4uLi4uFxcXFxcXFxcXFxcX FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXLy8vLy8vFRUVFRUVCAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGKioqKioqKioqKioqBQUFBQUFBgYGBgYGAAAAAAAA BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAAAKysrLCwsLS0tLi4uLi4u FxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXLy8vLy8vFRUVFRUV CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGKioqKioqKioqKioqBQUFBQUF BgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAAAKysr LCwsLS0tLi4uLi4uFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcX Ly8vLy8vFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF Hx8fHx8fHx8fHx8fBQUFBQUFBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF AAAAAAAADQ0NDQ0NJiYmKSkpKCgoKCgoFxcXFxcXHR0dHR0dHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc FxcXFxcXFxcXFxcXFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFHx8fHx8fHx8fHx8fBQUFBQUFBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFAAAAAAAADQ0NDQ0NJiYmKSkpKCgoKCgoFxcXFxcXHR0dHR0dHBwcHBwcHBwcHBwc HBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFHx8fHx8fHx8fHx8fBQUFBQUFBgYGBgYGAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAADQ0NDQ0NJiYmKSkpKCgoKCgoFxcXFxcXHR0dHR0d HBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFHx8fHx8fHx8fHx8fBQUFBQUFBgYGBgYG AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAADQ0NDQ0NDw8PJiYmJycnKCgo FxcXFxcXHR0dHR0dHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUVFRUVFRUV CAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFHx8fHx8fHx8fHx8f BQUFBQUFBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAADQ0NDQ0N Dw8PJiYmJycnKCgoFxcXFxcXHR0dHR0dHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcX FRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF Hx8fHx8fHx8fHx8fBQUFBQUFBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF AAAAAAAADQ0NDQ0NDw8PJiYmJycnKCgoFxcXFxcXHR0dHR0dHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc FxcXFxcXFxcXFxcXFRUVFRUVFRUVFRUVCAgICAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGHx8fHx8fBQUFBQUFBgYGBgYGHx8fHx8fBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFAAAAAAAADg4ODg4OGBgYGBgYGBgYGBgYIyMjJSUlFxcXFxcXGhoaGhoaHBwcHBwcHBwcHBwc HBwcHBwcGhoaGhoaFxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGHx8fHx8fBQUFBQUFBgYGBgYGHx8fHx8fBgYGBgYGAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAADg4ODg4OGBgYGBgYGBgYGBgYIyMjJSUlFxcXFxcXGhoaGhoa HBwcHBwcHBwcHBwcHBwcHBwcGhoaGhoaFxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGHx8fHx8fBQUFBQUFBgYGBgYGHx8fHx8fBgYGBgYG AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAADg4ODg4OGBgYGBgYGBgYGBgYIyMjJSUl FxcXFxcXGhoaGhoaHBwcHBwcHBwcHBwcHBwcHBwcGhoaGhoaFxcXFxcXFxcXFxcXFRUVFRUVERERERER ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGHx8fHx8fBQUFBQUFBgYGBgYG Hx8fHx8fBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAADg4ODg4OGBgYGBgY GBgYGBgYDw8PIyMjJCQkFxcXGhoaGhoaHBwcHBwcHBwcHBwcHBwcHBwcGhoaGhoaFxcXFxcXFxcXFxcX FRUVFRUVERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGHx8fHx8f BQUFBQUFBgYGBgYGHx8fHx8fBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAA Dg4ODg4OGBgYGBgYGBgYGBgYDw8PIyMjJCQkFxcXGhoaGhoaHBwcHBwcHBwcHBwcHBwcHBwcGhoaGhoa FxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGHx8fHx8fBQUFBQUFBgYGBgYGHx8fHx8fBgYGBgYGAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFAAAAAAAADg4ODg4OGBgYGBgYGBgYGBgYDw8PIyMjJCQkFxcXGhoaGhoaHBwcHBwcHBwcHBwc HBwcHBwcGhoaGhoaFxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGHx8fHx8fBQUFBQUFBQUFBQUFHx8fHx8fAAAAAAAABgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFAAAAAAAADg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgYISEhIiIiHBwcHBwc HBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dFxcXFxcXCgoKCgoKCAgICAgIERERERERERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGHx8fHx8fBQUFBQUFBQUFBQUFHx8fHx8fAAAAAAAA BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFAAAAAAAADg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgY ISEhIiIiHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dFxcXFxcXCgoKCgoKCAgICAgIERERERER ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGHx8fHx8fBQUFBQUFBQUFBQUF Hx8fHx8fAAAAAAAABgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFAAAAAAAADg4ODg4ODg4ODg4OGBgYGBgY GBgYGBgYGBgYGBgYISEhIiIiHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dFxcXFxcXCgoKCgoK CAgICAgIERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGHx8fHx8f BQUFBQUFBQUFBQUFHx8fHx8fAAAAAAAABgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFAAAAAAAADg4ODg4O Dg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgYDw8PISEhHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0d FxcXFxcXCgoKCgoKCAgICAgIERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGHx8fHx8fBQUFBQUFBQUFBQUFHx8fHx8fAAAAAAAABgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF AAAAAAAADg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgYDw8PISEhHBwcHBwcHBwcHBwcHBwcHBwc HBwcHBwcHR0dHR0dFxcXFxcXCgoKCgoKCAgICAgIERERERERERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGHx8fHx8fBQUFBQUFBQUFBQUFHx8fHx8fAAAAAAAABgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFAAAAAAAADg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgYDw8PISEhHBwcHBwc HBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dFxcXFxcXCgoKCgoKCAgICAgIERERERERERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGHx8fHx8fHx8fHx8fBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAADAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgY Dw8PDw8PICAgHBwcHBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERER ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGHx8fHx8fHx8fHx8f BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAADAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4O GBgYGBgYGBgYGBgYDw8PDw8PICAgHBwcHBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUV ERERERERERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG Hx8fHx8fHx8fHx8fBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAADAwMDAwMDAwMDAwM Dg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYDw8PDw8PICAgHBwcHBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcX FxcXFxcXFRUVFRUVERERERERERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGHx8fHx8fHx8fHx8fBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAA DAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYDw8PDw8PDw8PICAgHBwcHBwcHBwcHBwc HBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERERERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGHx8fHx8fHx8fHx8fBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFAAAAAAAADAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYDw8PDw8PDw8PICAg HBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERERERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGHx8fHx8fHx8fHx8fBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFAAAAAAAADAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgY Dw8PDw8PDw8PICAgHBwcHBwcHBwcHBwcHBwcHBwcFxcXFxcXFxcXFxcXFRUVFRUVERERERERERERERER ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGFBQUFBQU FBQUFBQUBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4O GBgYGBgYGBgYGBgYGBgYGBgYDw8PDw8PGxsbHBwcHBwcHBwcHR0dHR0dFxcXFxcXHh4eHh4eFRUVFRUV CAgICAgIERERERERCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGFBQUFBQUFBQUFBQUBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAACwsLCwsLDAwMDAwMDAwMDAwM Dg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgYDw8PDw8PGxsbHBwcHBwcHBwcHR0dHR0dFxcXFxcX Hh4eHh4eFRUVFRUVCAgICAgIERERERERCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGFBQUFBQUFBQUFBQUBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAACwsLCwsL DAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgYDw8PDw8PGxsbHBwcHBwcHBwc HR0dHR0dFxcXFxcXHh4eHh4eFRUVFRUVCAgICAgIERERERERCgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGFBQUFBQUFBQUFBQUBQUFBQUFBQUFBQUFBgYGBgYG AAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgYGBgYGBgYDw8PDw8P DQ0NGxsbHBwcHBwcHR0dHR0dFxcXFxcXHh4eHh4eFRUVFRUVCAgICAgIERERERERCgoKCgoKBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGFBQUFBQUFBQUFBQUBQUFBQUF BQUFBQUFBgYGBgYGAAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4OGBgYGBgYGBgYGBgY GBgYGBgYDw8PDw8PDQ0NGxsbHBwcHBwcHR0dHR0dFxcXFxcXHh4eHh4eFRUVFRUVCAgICAgIERERERER CgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGFBQUFBQU FBQUFBQUBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4O GBgYGBgYGBgYGBgYGBgYGBgYDw8PDw8PDQ0NGxsbHBwcHBwcHR0dHR0dFxcXFxcXHh4eHh4eFRUVFRUV CAgICAgIERERERERCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG FBQUFBQUBgYGBgYGAAAAAAAAFBQUFBQUBQUFBQUFAAAAAAAADw8PDw8PCwsLCwsLCwsLCwsLDAwMDAwM DAwMDAwMAAAAAAAADQ0NDQ0NDQ0NDQ0NGBgYGBgYDw8PDw8PDw8PDw8PGRkZGhoaFxcXFxcXFxcXFxcX FRUVFRUVCAgICAgICAgICAgIERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAAFBQUFBQUBQUFBQUFAAAAAAAADw8PDw8PCwsLCwsL CwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAADQ0NDQ0NDQ0NDQ0NGBgYGBgYDw8PDw8PDw8PDw8PGRkZGhoa FxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgIERERERERERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAAFBQUFBQUBQUFBQUFAAAAAAAA Dw8PDw8PCwsLCwsLCwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAADQ0NDQ0NDQ0NDQ0NGBgYGBgYDw8PDw8P Dw8PDw8PGRkZGhoaFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgIERERERERERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAAFBQUFBQU BQUFBQUFAAAAAAAADw8PDw8PCwsLCwsLCwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAADQ0NDQ0NDQ0NDQ0N GBgYGBgYDw8PDw8PDw8PDw8PDQ0NGRkZFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgICAgICAgIERERERER ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYG AAAAAAAAFBQUFBQUBQUFBQUFAAAAAAAADw8PDw8PCwsLCwsLCwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAA DQ0NDQ0NDQ0NDQ0NGBgYGBgYDw8PDw8PDw8PDw8PDQ0NGRkZFxcXFxcXFxcXFxcXFRUVFRUVCAgICAgI CAgICAgIERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG FBQUFBQUBgYGBgYGAAAAAAAAFBQUFBQUBQUFBQUFAAAAAAAADw8PDw8PCwsLCwsLCwsLCwsLDAwMDAwM DAwMDAwMAAAAAAAADQ0NDQ0NDQ0NDQ0NGBgYGBgYDw8PDw8PDw8PDw8PDQ0NGRkZFxcXFxcXFxcXFxcX FRUVFRUVCAgICAgICAgICAgIERERERERERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYGBgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8PDw8PDw8P CwsLCwsLDAwMDAwMAAAAAAAADg4ODg4OEhISEhISEhISEhISDQ0NDQ0NDw8PDw8PDw8PDw8PDw8PDw8P FhYWFxcXCAgICAgIFRUVFRUVERERERERERERERERCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYGBgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAA Dw8PDw8PDw8PDw8PCwsLCwsLDAwMDAwMAAAAAAAADg4ODg4OEhISEhISEhISEhISDQ0NDQ0NDw8PDw8P Dw8PDw8PDw8PDw8PFhYWFxcXCAgICAgIFRUVFRUVERERERERERERERERCgoKCgoKCgoKCgoKBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYGBgYGBgYGFBQUFBQU BgYGBgYGAAAAAAAADw8PDw8PDw8PDw8PCwsLCwsLDAwMDAwMAAAAAAAADg4ODg4OEhISEhISEhISEhIS DQ0NDQ0NDw8PDw8PDw8PDw8PDw8PDw8PFhYWFxcXCAgICAgIFRUVFRUVERERERERERERERERCgoKCgoK CgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYG BgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8PDw8PDw8PCwsLCwsLDAwMDAwMAAAAAAAADg4ODg4O EhISEhISEhISEhISDQ0NDQ0NDw8PDw8PDw8PDw8PDw8PDw8PDQ0NFhYWCAgICAgIFRUVFRUVERERERER ERERERERCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG FBQUFBQUBgYGBgYGBgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8PDw8PDw8PCwsLCwsLDAwMDAwM AAAAAAAADg4ODg4OEhISEhISEhISEhISDQ0NDQ0NDw8PDw8PDw8PDw8PDw8PDw8PDQ0NFhYWCAgICAgI FRUVFRUVERERERERERERERERCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGFBQUFBQUBgYGBgYGBgYGBgYGFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8PDw8PDw8P CwsLCwsLDAwMDAwMAAAAAAAADg4ODg4OEhISEhISEhISEhISDQ0NDQ0NDw8PDw8PDw8PDw8PDw8PDw8P DQ0NFhYWCAgICAgIFRUVFRUVERERERERERERERERCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFFBQUFBQUFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8P Dw8PDw8PDw8PDw8PCwsLCwsLAAAAAAAADw8PDw8PDg4ODg4ODg4ODg4OEhISEhISEhISEhISAAAAAAAA Dw8PDw8PEhISEhISDQ0NDQ0NExMTERERERERERERFRUVFRUVFRUVFRUVCgoKCgoKCgoKCgoKBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFFBQUFBQUFBQUFBQUBgYGBgYG AAAAAAAADw8PDw8PDw8PDw8PDw8PDw8PCwsLCwsLAAAAAAAADw8PDw8PDg4ODg4ODg4ODg4OEhISEhIS EhISEhISAAAAAAAADw8PDw8PEhISEhISDQ0NDQ0NExMTERERERERERERFRUVFRUVFRUVFRUVCgoKCgoK CgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFFBQUFBQU FBQUFBQUBgYGBgYGAAAAAAAADw8PDw8PDw8PDw8PDw8PDw8PCwsLCwsLAAAAAAAADw8PDw8PDg4ODg4O Dg4ODg4OEhISEhISEhISEhISAAAAAAAADw8PDw8PEhISEhISDQ0NDQ0NExMTERERERERERERFRUVFRUV FRUVFRUVCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFFBQUFBQUFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8PDw8PDw8PDw8PDw8PCwsLCwsLAAAAAAAA Dw8PDw8PDg4ODg4ODg4ODg4OEhISEhISEhISEhISAAAAAAAADw8PDw8PEhISEhISDQ0NDQ0NAAAAExMT ERERERERFRUVFRUVFRUVFRUVCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFFBQUFBQUFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8PDw8PDw8PDw8PDw8P CwsLCwsLAAAAAAAADw8PDw8PDg4ODg4ODg4ODg4OEhISEhISEhISEhISAAAAAAAADw8PDw8PEhISEhIS DQ0NDQ0NAAAAExMTERERERERFRUVFRUVFRUVFRUVCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFFBQUFBQUFBQUFBQUBgYGBgYGAAAAAAAADw8PDw8P Dw8PDw8PDw8PDw8PCwsLCwsLAAAAAAAADw8PDw8PDg4ODg4ODg4ODg4OEhISEhISEhISEhISAAAAAAAA Dw8PDw8PEhISEhISDQ0NDQ0NAAAAExMTERERERERFRUVFRUVFRUVFRUVCgoKCgoKCgoKCgoKBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG AAAAAAAADQ0NDQ0NDw8PDw8PAAAAAAAAAAAAAAAAAAAAAAAACwsLCwsLDg4ODg4ODg4ODg4ODg4ODg4O EhISEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTERERERERERERCAgICAgICAgICAgI ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0NDw8PDw8PAAAAAAAAAAAAAAAAAAAAAAAACwsLCwsLDg4ODg4O Dg4ODg4ODg4ODg4OEhISEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTERERERERERER CAgICAgICAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0NDw8PDw8PAAAAAAAAAAAAAAAAAAAAAAAA CwsLCwsLDg4ODg4ODg4ODg4ODg4ODg4OEhISEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ExMTERERERERERERCAgICAgICAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0NDw8PDw8PAAAAAAAA AAAAAAAAAAAAAAAACwsLCwsLDg4ODg4ODg4ODg4ODg4ODg4OEhISEhISAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAExMTERERERERCAgICAgICAgICAgIERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0N Dw8PDw8PAAAAAAAAAAAAAAAAAAAAAAAACwsLCwsLDg4ODg4ODg4ODg4ODg4ODg4OEhISEhISAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTERERERERCAgICAgICAgICAgIERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG AAAAAAAADQ0NDQ0NDw8PDw8PAAAAAAAAAAAAAAAAAAAAAAAACwsLCwsLDg4ODg4ODg4ODg4ODg4ODg4O EhISEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTERERERERCAgICAgICAgICAgI ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0NAAAAAAAABgYGBgYGBQUFBQUFAAAAAAAACwsLCwsLCwsLCwsL Dg4ODg4ODg4ODg4ODw8PDw8PAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGEBAQERER ERERERERCgoKCgoKERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0NAAAAAAAABgYGBgYGBQUFBQUFAAAAAAAA CwsLCwsLCwsLCwsLDg4ODg4ODg4ODg4ODw8PDw8PAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGEBAQERERERERERERCgoKCgoKERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0NAAAAAAAABgYGBgYG BQUFBQUFAAAAAAAACwsLCwsLCwsLCwsLDg4ODg4ODg4ODg4ODw8PDw8PAAAAAAAABgYGBgYGBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGEBAQERERERERERERCgoKCgoKERERERERBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0N AAAAAAAABgYGBgYGBQUFBQUFAAAAAAAACwsLCwsLCwsLCwsLDg4ODg4ODg4ODg4ODw8PDw8PAAAAAAAA BgYGBgYGBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGEBAQERERERERCgoKCgoKERERERERBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG AAAAAAAADQ0NDQ0NAAAAAAAABgYGBgYGBQUFBQUFAAAAAAAACwsLCwsLCwsLCwsLDg4ODg4ODg4ODg4O Dw8PDw8PAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGEBAQERERERERCgoKCgoK ERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGAAAAAAAADQ0NDQ0NAAAAAAAABgYGBgYGBQUFBQUFAAAAAAAACwsLCwsLCwsLCwsL Dg4ODg4ODg4ODg4ODw8PDw8PAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGEBAQ ERERERERCgoKCgoKERERERERBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBQUFBQUF AAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGCQkJCgoKCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBQUFBQUFAAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGCQkJCgoKCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAABgYGBgYG BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGCQkJCgoKCgoKCgoKCgoKCgoKBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG AAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAACwsLCwsLDAwMDAwMDAwMDAwM AAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGCQkJCgoKCgoK CgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAACwsLCwsL DAwMDAwMDAwMDAwMAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGCQkJCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBQUFBQUF AAAAAAAACwsLCwsLDAwMDAwMDAwMDAwMAAAAAAAABgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGCQkJCgoKCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQkJCgoKCgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQkJCgoKCgoKCgoKBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAA BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQkJCgoK CgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAAAAAAAA AAAAAAAAAAAAAAAABQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGCQkJCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGCQkJCgoKCgoKBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGCQkJCgoKCgoKBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBwcHCAgIBAQEBAQE AgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BwcHCAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBwcHCAgIBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBwcHBAQEBAQEAgICAgICAAAAAAAAAAAAAAAABQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYG BgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBwcHBAQEBAQEAgICAgICAAAAAAAA AAAAAAAABQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUFBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYG BgYGBgYGBgYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBwcHBAQEBAQE AgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAwMDBAQEAgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAwMDBAQEAgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDBAQEAgICAgICAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAgICAgICAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMD AgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAwMDAgICAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgICAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgICAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA ================================================ FILE: DS_Map/ExtensionMethods.cs ================================================ using System; using System.Windows.Forms; namespace DSPRE { public static class ExtensionMethods { /// /// Increment the progress bar value, without using Windows Aero animation /// public static void IncrementNoAnimation(this ProgressBar pb, int amount = 1) { pb.Value += amount; if (pb.Value != pb.Maximum){ pb.Value++; } pb.Value--; } //https://stackoverflow.com/a/10939890 /// /// Sets the progress bar value, without using Windows Aero animation /// public static void SetProgressNoAnimation(this ProgressBar pb, int value) { // Don't redraw if nothing is changing. if (value == pb.Value) return; // To get around this animation, we need to move the progress bar backwards. if (value == pb.Maximum) { // Special case (can't set value > Maximum). pb.Value = value; // Set the value pb.Value = value - 1; // Move it backwards } else { pb.Value = value + 1; // Move past } pb.Value = value; // Move to correct value } /* searchInScriptsButton.BeginInvoke(new Action(() => { })); BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += (_sender, args) => { this.UIThread(() => { }); }; //easier to set up searchInScriptsButton.BeginInvoke(new Action(() => { searchProgressBar.Value += 1; })); //smoother if you put the control updates in the UIThread //same as BeginInvoke if you put the entire logic in UIThread BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += (_sender, args) => { this.UIThread(() => { searchProgressBar.Value += 1; }); }; bw.RunWorkerAsync(); */ public static void UIThread(this Control control, Action code) { if (control.InvokeRequired) { control.BeginInvoke(code); return; } code.Invoke(); } } } ================================================ FILE: DS_Map/Extensions.cs ================================================ using System; using System.Collections.Generic; using System.Drawing.Drawing2D; using System.Drawing; using System.Globalization; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using System.ComponentModel; using Tao.Platform.Windows; namespace DSPRE { public static class Extensions { public static void SetAllItemsChecked(this CheckedListBox clb, bool status) { for (int i = 0; i < clb.Items.Count; i++) { clb.SetItemChecked(i, status); } } public static int IndexOfFirstNumber(this string str) { return str.IndexOfAny("0123456789".ToCharArray()); } public static bool ContainsNumber(this string str) { return str.IndexOfFirstNumber() > 0; } public static T[] SubArray(this T[] array, int offset, int length) { T[] result = new T[length]; Array.Copy(array, offset, result, 0, length); return result; } public static void Move(this IList l, int currentIndex, int newIndex) { T item = l[currentIndex]; l.RemoveAt(currentIndex); l.Insert(newIndex, item); } public static Dictionary Reverse (this Dictionary source) { var dictionary = new Dictionary(StringComparer.InvariantCultureIgnoreCase); foreach (var entry in source) { string newKey = entry.Value; if (!dictionary.ContainsKey(newKey)) { dictionary.Add(newKey, entry.Key); } } return dictionary; } public static void FadeIn(this Form o, int framelength = 16, int frames = 10) { //Object is not fully invisible. Fade it in while (o != null && !o.IsDisposed && o.Opacity < 1.0) { Thread.Sleep(framelength); o.Opacity += (1.0 / frames); } o.Opacity = 1; //make fully visible } public static void FadeOut(this Form o, int framelength = 16, int frames = 10) { //Object is fully visible. Fade it out while (o != null && o.Opacity > 0.0) { Thread.Sleep(framelength); o.Opacity -= (1.0 / frames); } o.Opacity = 0; //make fully invisible Console.WriteLine("Fadeout done"); } public static byte[] ToByteArrayChooseSize(this int num, byte size) { switch (size) { case 1: return new byte[] { checked((byte)num) }; case 2: return BitConverter.GetBytes(checked((ushort)num)); case 4: return BitConverter.GetBytes(num); default: MessageBox.Show("Invalid size for number conversion!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); throw new InvalidOperationException(); } } public static string PurgeSpecial(this string str, char[] special) { foreach (char c in special) { int pos = str.IndexOf(c); if (pos >= 0) { return str.Substring(pos + 1); } } return str; } public static NumberStyles GetNumberStyle(this string s) { int posOfPrefix = s.IndexOf("0x", StringComparison.InvariantCultureIgnoreCase); if (posOfPrefix >= 0) { foreach (char c in s.Substring(posOfPrefix + 2)) { if (!char.IsDigit(c) && char.ToUpper(c) > 'F') { return NumberStyles.None; } } return NumberStyles.HexNumber; } else { foreach (char c in s) { if (!char.IsDigit(c)) { return NumberStyles.None; } } return NumberStyles.Integer; } } public static bool IgnoreCaseEquals(this string str, string other) { return str.Equals(other, StringComparison.InvariantCultureIgnoreCase); } public static List ToStringsList (this ScintillaNET.LineCollection lc, bool allowEmpty = true, bool trim = false) { IEnumerable temp = lc.Select(x => x.Text); if (trim) { temp = temp.Select(x => x.Trim()); } if (!allowEmpty) { temp = temp.Where(x => !string.IsNullOrEmpty(x)); } return temp.ToList(); } //public static Dictionary Reverse(this IDictionary source) { // var dictionary = new Dictionary(); // foreach (var entry in source) { // if (!dictionary.ContainsKey(entry.Value)) { // dictionary.Add(entry.Value, entry.Key); // } // } // return dictionary; //} public static Bitmap Resize(this Bitmap source, int width, int height) { if (source.Width == width && source.Height == height) { return source; } Bitmap result = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(result)) { g.InterpolationMode = InterpolationMode.NearestNeighbor; g.PixelOffsetMode = PixelOffsetMode.Half; g.DrawImage(source, 0, 0, width, height); } return result; } public static Bitmap Resize(this Bitmap source, float factor) => source.Resize((int)(source.Width * factor), (int)(source.Height * factor)); } public class ListBox2 : ListBox { public new void RefreshItem(int index) { base.RefreshItem(index); } } public class SimpleOpenGlControl2 : SimpleOpenGlControl { private bool designMode; public SimpleOpenGlControl2() : base() { designMode = LicenseManager.UsageMode == LicenseUsageMode.Designtime; } public new bool DesignMode { get { return designMode; } } protected override void OnPaint(PaintEventArgs e) { //if the control is allowed to paint in design mode, a message box prevents working with it //"No device or rendering context available!" if (DesignMode) { e.Graphics.Clear(this.BackColor); if (this.BackgroundImage != null) e.Graphics.DrawImage(this.BackgroundImage, this.ClientRectangle, 0, 0, this.BackgroundImage.Width, this.BackgroundImage.Height, GraphicsUnit.Pixel); e.Graphics.Flush(); return; }; base.OnPaint(e); } } } ================================================ FILE: DS_Map/Filesystem.cs ================================================ using System.IO; namespace DSPRE { public static class Filesystem { public static string eventFiles => RomInfo.gameDirs[RomInfo.DirNames.eventFiles].unpackedDir; public static string OWSprites => RomInfo.gameDirs[RomInfo.DirNames.OWSprites].unpackedDir; public static string mapTextures => RomInfo.gameDirs[RomInfo.DirNames.mapTextures].unpackedDir; public static string buildingTextures => RomInfo.gameDirs[RomInfo.DirNames.buildingTextures].unpackedDir; public static string dynamicHeaders => RomInfo.gameDirs[RomInfo.DirNames.dynamicHeaders].unpackedDir; public static string dynamicHeadersPacked => RomInfo.gameDirs[RomInfo.DirNames.dynamicHeaders].packedDir; public static string scripts => RomInfo.gameDirs[RomInfo.DirNames.scripts].unpackedDir; public static string maps => RomInfo.gameDirs[RomInfo.DirNames.maps].unpackedDir; public static string matrices => RomInfo.gameDirs[RomInfo.DirNames.matrices].unpackedDir; public static string buildingConfigFiles => RomInfo.gameDirs[RomInfo.DirNames.buildingConfigFiles].unpackedDir; public static string areaData => RomInfo.gameDirs[RomInfo.DirNames.areaData].unpackedDir; public static string textArchives => RomInfo.gameDirs[RomInfo.DirNames.textArchives].unpackedDir; public static string trainerProperties => RomInfo.gameDirs[RomInfo.DirNames.trainerProperties].unpackedDir; public static string trainerParty => RomInfo.gameDirs[RomInfo.DirNames.trainerParty].unpackedDir; public static string trainerGraphics => RomInfo.gameDirs[RomInfo.DirNames.trainerGraphics].unpackedDir; public static string encounters => RomInfo.gameDirs[RomInfo.DirNames.encounters].unpackedDir; public static string headbutt => RomInfo.gameDirs[RomInfo.DirNames.headbutt].unpackedDir; public static string safariZone => RomInfo.gameDirs[RomInfo.DirNames.safariZone].unpackedDir; public static string monIcons => RomInfo.gameDirs[RomInfo.DirNames.monIcons].unpackedDir; public static string synthOverlay => RomInfo.gameDirs[RomInfo.DirNames.synthOverlay].unpackedDir; public static string interiorBuildingModels => RomInfo.gameDirs[RomInfo.DirNames.interiorBuildingModels].unpackedDir; public static string exteriorBuildingModels => RomInfo.gameDirs[RomInfo.DirNames.exteriorBuildingModels].unpackedDir; public static string GetBuildingModelsDirPath(bool interior) { if (interior) { return interiorBuildingModels; } else { return exteriorBuildingModels; } } public static string expArmPath => Path.Combine(synthOverlay, PatchToolboxDialog.expandedARMfileID.ToString("D4")); public static string GetPath(string path, int id, string format = "D4") { return Path.Combine(path, id.ToString(format)); } public static string GetPath(string path, string prefix, int id, string ext, string format = "D4") { return Path.Combine(path, prefix + id.ToString(format) + "." + ext); } static string[] GetBuildingModelFiles(bool interior) { return string.IsNullOrWhiteSpace(Filesystem.GetBuildingModelsDirPath(interior)) ? null : Directory.GetFiles(Filesystem.GetBuildingModelsDirPath(interior)); } public static string GetBuildingModelPath(bool interior, int id) { return GetPath(Filesystem.GetBuildingModelsDirPath(interior), id); } public static int GetBuildingCount(bool interior) { return GetBuildingModelFiles(interior).Length; } public static string[] GetAreaDataFiles() { return string.IsNullOrWhiteSpace(Filesystem.areaData) ? null : Directory.GetFiles(Filesystem.areaData); } public static string GetAreaDataPath(int id) { return GetPath(Filesystem.areaData, id); } public static int GetAreaDataCount() { return GetAreaDataFiles().Length; } public static string GetTexturePath(bool useMapTiles, int textureID) { string path = Filesystem.GetMapTexturePath(textureID); string path2 = Filesystem.GetBuildingTexturePath(textureID); string tilesetPath = useMapTiles ? path : path2; return tilesetPath; } static string[] GetMapTextureFiles() { return string.IsNullOrWhiteSpace(Filesystem.mapTextures) ? null : Directory.GetFiles(Filesystem.mapTextures); } public static string GetMapTexturePath(int id) { return GetPath(Filesystem.mapTextures, id); } public static int GetMapTexturesCount() { return GetMapTextureFiles().Length; } static string[] GetBuildingTextureFiles() { return string.IsNullOrWhiteSpace(Filesystem.buildingTextures) ? null : Directory.GetFiles(Filesystem.buildingTextures); } public static string GetBuildingTexturePath(int id) { return GetPath(Filesystem.buildingTextures, id); } public static int GetBuildingTexturesCount() { return GetBuildingTextureFiles().Length; } static string[] GetMatrixFiles() { return string.IsNullOrWhiteSpace(Filesystem.matrices) ? null : Directory.GetFiles(Filesystem.matrices); } public static string GetMatrixPath(int id) { return GetPath(Filesystem.matrices, id); } public static int GetMatrixCount() { return GetMatrixFiles().Length; } static string[] GetTextArchiveFiles() { return string.IsNullOrWhiteSpace(Filesystem.textArchives) ? null : Directory.GetFiles(Filesystem.textArchives); } public static string GetTextArchivePath(int id) { return GetPath(Filesystem.textArchives, id); } public static int GetTextArchivesCount() { return GetTextArchiveFiles().Length; } static string[] GetMapFiles() { return string.IsNullOrWhiteSpace(Filesystem.maps) ? null : Directory.GetFiles(Filesystem.maps); } public static string GetMapPath(int id) { return GetPath(Filesystem.maps, id); } public static int GetMapCount() { return GetMapFiles().Length; } static string[] GetScriptFiles() { return string.IsNullOrWhiteSpace(Filesystem.scripts) ? null : Directory.GetFiles(Filesystem.scripts); } public static string GetScriptPath(int id) { return GetPath(Filesystem.scripts, id); } public static int GetScriptCount() { return GetScriptFiles().Length; } static string[] GetEventFiles() { return string.IsNullOrWhiteSpace(Filesystem.eventFiles) ? null : Directory.GetFiles(Filesystem.eventFiles); } public static string GetEventPath(int id) { return GetPath(Filesystem.eventFiles, id); } public static int GetEventFileCount() { return GetEventFiles().Length; } static string[] GetTrainerPropertiesFiles() { return string.IsNullOrWhiteSpace(Filesystem.trainerProperties) ? null : Directory.GetFiles(Filesystem.trainerProperties); } public static string GetTrainerPropertiesPath(int id) { return GetPath(Filesystem.trainerProperties, id); } public static int GetTrainerPropertiesCount() { return GetTrainerPropertiesFiles().Length; } static string[] GetDynamicHeaderFiles() { return string.IsNullOrWhiteSpace(Filesystem.dynamicHeaders) ? null : Directory.GetFiles(Filesystem.dynamicHeaders); } public static string GetDynamicHeaderPath(int id) { return GetPath(Filesystem.dynamicHeaders, id); } public static int GetDynamicHeadersCount() { return GetDynamicHeaderFiles().Length; } static string[] GetEncounterFiles() { return string.IsNullOrWhiteSpace(Filesystem.encounters) ? null : Directory.GetFiles(Filesystem.encounters); } public static string GetEncounterPath(int id) { return GetPath(Filesystem.encounters, id); } public static int GetEncountersCount() { return GetEncounterFiles().Length; } static string[] GetSafariZoneFiles() { return string.IsNullOrWhiteSpace(Filesystem.safariZone) ? null : Directory.GetFiles(Filesystem.safariZone); } public static string GetSafariZonePath(int id) { return GetPath(Filesystem.safariZone, id); } public static int GetSafariZoneCount() { return GetSafariZoneFiles().Length; } static string[] GetHeadbuttFiles() { return string.IsNullOrWhiteSpace(Filesystem.headbutt) ? null : Directory.GetFiles(Filesystem.headbutt); } public static string GetHeadbuttPath(int id) { return GetPath(Filesystem.headbutt, id); } public static int GetHeadbuttCount() { return GetHeadbuttFiles().Length; } public static string GetOWSpritePath(int id) { return GetPath(Filesystem.OWSprites, id); } public static string GetBuildingConfigPath(int id) { return GetPath(Filesystem.buildingConfigFiles, id); } public static string GetTrainerPartyPath(int id) { return GetPath(Filesystem.trainerParty, id); } public static string GetTrainerGraphicsPath(int id) { return GetPath(Filesystem.trainerGraphics, id); } public static string GetMonIconPath(int id, string format = "D4") { return GetPath(Filesystem.monIcons, id, format); } public static string GetSynthOerlayPath(int id) { return GetPath(Filesystem.synthOverlay, id); } } } ================================================ FILE: DS_Map/GameCamera.cs ================================================ using DSPRE; using System; using System.IO; using System.Windows.Forms; using static DSPRE.RomInfo; public class GameCamera { public const byte PERSPECTIVE = 0; public const byte ORTHO = 1; public uint distance { get; set; } public short vertRot { get; private set; } public short horiRot { get; private set; } public short zRot { get; private set; } public short unk1 { get; private set; } public byte perspMode { get; private set; } public byte unk2 { get; private set; } public ushort fov { get; private set; } public uint nearClip { get; private set; } public uint farClip { get; private set; } public int? xOffset { get; private set; } public int? yOffset { get; private set; } public int? zOffset { get; private set; } public object this[int index] { get { switch (index) { case 0: return distance; case 1: return vertRot; case 2: return horiRot; case 3: return zRot; case 4: return perspMode; case 5: return fov; case 6: return nearClip; case 7: return farClip; case 8: return xOffset; case 9: return yOffset; case 10: return zOffset; default: throw new ArgumentOutOfRangeException(); } } set { try { switch (index) { case 0: distance = Convert.ToUInt32(value); break; case 1: vertRot = Convert.ToInt16(value); break; case 2: horiRot = Convert.ToInt16(value); break; case 3: zRot = Convert.ToInt16(value); break; case 4: perspMode = (byte)(Convert.ToBoolean(value) ? 1 : 0); break; case 5: fov = Convert.ToUInt16(value); break; case 6: nearClip = Convert.ToUInt32(value); break; case 7: farClip = Convert.ToUInt32(value); break; case 8: xOffset = Convert.ToInt32(value); break; case 9: yOffset = Convert.ToInt32(value); break; case 10: zOffset = Convert.ToInt32(value); break; } } catch (OverflowException e) { MessageBox.Show("The value you selected is invalid.\n\n" + '"' + e.Message + '"', "Overflow", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (FormatException) { MessageBox.Show("Only numeric values are allowed.", "Invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public GameCamera(uint distance = 0x29AEC1, short vertRot = 0xD62, short horiRot = 0, short zRot = 0, short unk1 = 0, byte perspMode = PERSPECTIVE, byte unk2 = 0, ushort fov = 1473, uint nearClip = 614400, uint farClip = 0x384000, int? xOffset = null, int? yOffset = null, int? zOffset = null) { this.distance = distance; this.vertRot = vertRot; this.horiRot = horiRot; this.zRot = zRot; this.unk1 = unk1; this.perspMode = perspMode; this.unk2 = unk2; this.fov = fov; this.nearClip = nearClip; this.farClip = farClip; this.xOffset = xOffset; this.yOffset = yOffset; this.zOffset = zOffset; } public GameCamera(byte[] camData) { if (camData.Length != 36 && camData.Length != 24) { MessageBox.Show("This is not a camera file.\nMake sure the file is 36 or 24 bytes long and try again.", "Wrong file!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { using (BinaryReader b = new BinaryReader(new MemoryStream(camData))) { distance = b.ReadUInt32(); vertRot = b.ReadInt16(); horiRot = b.ReadInt16(); zRot = b.ReadInt16(); unk1 = b.ReadInt16(); perspMode = b.ReadByte(); unk2 = b.ReadByte(); fov = b.ReadUInt16(); nearClip = b.ReadUInt32(); farClip = b.ReadUInt32(); if (RomInfo.gameFamily == GameFamilies.HGSS) { xOffset = b.ReadInt32(); yOffset = b.ReadInt32(); zOffset = b.ReadInt32(); } } } catch (EndOfStreamException) { MessageBox.Show("You might have to manually fill in the last three camera fields, since DPPt cameras don't have them.", "DPPt Cam detected", MessageBoxButtons.OK, MessageBoxIcon.Information); } } public byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write(distance); writer.Write(vertRot); writer.Write(horiRot); writer.Write(zRot); writer.Write(unk1); writer.Write(perspMode); writer.Write(unk2); writer.Write(fov); writer.Write(nearClip); writer.Write(farClip); if (xOffset != null) { writer.Write((int)xOffset); } if (yOffset != null) { writer.Write((int)yOffset); } if (zOffset != null) { writer.Write((int)zOffset); } } return newData.ToArray(); } public void ShowInGridView(DataGridView dgv, int rowIndex) { if (rowIndex > dgv.Rows.Count - 1) { dgv.Rows.Add(); } int colIndex = 0; dgv.Rows[rowIndex].HeaderCell.Value = String.Format("{0}", dgv.Rows[rowIndex].Index); dgv.Rows[rowIndex].Cells[colIndex++].Value = distance; dgv.Rows[rowIndex].Cells[colIndex++].Value = vertRot; dgv.Rows[rowIndex].Cells[colIndex++].Value = horiRot; dgv.Rows[rowIndex].Cells[colIndex++].Value = zRot; dgv.Rows[rowIndex].Cells[colIndex++].Value = perspMode == ORTHO; dgv.Rows[rowIndex].Cells[colIndex++].Value = fov; dgv.Rows[rowIndex].Cells[colIndex++].Value = nearClip; dgv.Rows[rowIndex].Cells[colIndex++].Value = farClip; if (colIndex < dgv.Columns.Count-3) { if (xOffset != null) { dgv.Rows[rowIndex].Cells[colIndex++].Value = xOffset; } if (yOffset != null) { dgv.Rows[rowIndex].Cells[colIndex++].Value = yOffset; } if (zOffset != null) { dgv.Rows[rowIndex].Cells[colIndex++].Value = zOffset; } } } } ================================================ FILE: DS_Map/HeaderSearch.Designer.cs ================================================ namespace DSPRE { partial class HeaderSearch { /// /// 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.arm9expansionTextLBL = new System.Windows.Forms.Label(); this.fieldToSearch1ComboBox = new System.Windows.Forms.ComboBox(); this.explanationLabel = new System.Windows.Forms.Label(); this.operator1ComboBox = new System.Windows.Forms.ComboBox(); this.valueTextBox = new System.Windows.Forms.TextBox(); this.startSearchButton = new System.Windows.Forms.Button(); this.headerSearchResetButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.autoSearchCB = new System.Windows.Forms.CheckBox(); this.SuspendLayout(); // // arm9expansionTextLBL // this.arm9expansionTextLBL.Location = new System.Drawing.Point(0, -10); this.arm9expansionTextLBL.Name = "arm9expansionTextLBL"; this.arm9expansionTextLBL.Size = new System.Drawing.Size(100, 23); this.arm9expansionTextLBL.TabIndex = 15; // // fieldToSearch1ComboBox // this.fieldToSearch1ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.fieldToSearch1ComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.fieldToSearch1ComboBox.FormattingEnabled = true; this.fieldToSearch1ComboBox.Location = new System.Drawing.Point(11, 27); this.fieldToSearch1ComboBox.Name = "fieldToSearch1ComboBox"; this.fieldToSearch1ComboBox.Size = new System.Drawing.Size(190, 24); this.fieldToSearch1ComboBox.TabIndex = 6; this.fieldToSearch1ComboBox.SelectedIndexChanged += new System.EventHandler(this.fieldToSearch1ComboBox_SelectedIndexChanged); // // explanationLabel // this.explanationLabel.AutoSize = true; this.explanationLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.explanationLabel.Location = new System.Drawing.Point(8, 9); this.explanationLabel.Name = "explanationLabel"; this.explanationLabel.Size = new System.Drawing.Size(111, 15); this.explanationLabel.TabIndex = 7; this.explanationLabel.Text = "Header Property"; // // operator1ComboBox // this.operator1ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.operator1ComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.operator1ComboBox.FormattingEnabled = true; this.operator1ComboBox.Location = new System.Drawing.Point(11, 82); this.operator1ComboBox.Name = "operator1ComboBox"; this.operator1ComboBox.Size = new System.Drawing.Size(190, 24); this.operator1ComboBox.TabIndex = 8; this.operator1ComboBox.SelectedIndexChanged += new System.EventHandler(this.operator1ComboBox_SelectedIndexChanged); // // valueTextBox // this.valueTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.valueTextBox.Location = new System.Drawing.Point(11, 110); this.valueTextBox.MaxLength = 16; this.valueTextBox.Name = "valueTextBox"; this.valueTextBox.Size = new System.Drawing.Size(190, 22); this.valueTextBox.TabIndex = 9; this.valueTextBox.KeyUp += new System.Windows.Forms.KeyEventHandler(this.valueTextBox_KeyUp); // // startSearchButton // this.startSearchButton.Image = global::DSPRE.Properties.Resources.wideLensImage; this.startSearchButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.startSearchButton.Location = new System.Drawing.Point(209, 11); this.startSearchButton.Name = "startSearchButton"; this.startSearchButton.RightToLeft = System.Windows.Forms.RightToLeft.No; this.startSearchButton.Size = new System.Drawing.Size(86, 43); this.startSearchButton.TabIndex = 16; this.startSearchButton.Text = "Start\r\nSearch"; this.startSearchButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.startSearchButton.UseVisualStyleBackColor = true; this.startSearchButton.Click += new System.EventHandler(this.startSearchButton_Click); // // headerSearchResetButton // this.headerSearchResetButton.Image = global::DSPRE.Properties.Resources.wideLensImageTransp; this.headerSearchResetButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.headerSearchResetButton.Location = new System.Drawing.Point(209, 60); this.headerSearchResetButton.Name = "headerSearchResetButton"; this.headerSearchResetButton.RightToLeft = System.Windows.Forms.RightToLeft.No; this.headerSearchResetButton.Size = new System.Drawing.Size(86, 43); this.headerSearchResetButton.TabIndex = 17; this.headerSearchResetButton.Text = "Reset\r\nResults"; this.headerSearchResetButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.headerSearchResetButton.UseVisualStyleBackColor = true; this.headerSearchResetButton.Click += new System.EventHandler(this.headerSearchResetButton_Click); // // label1 // this.label1.AutoSize = true; this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label1.Location = new System.Drawing.Point(8, 64); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(54, 15); this.label1.TabIndex = 18; this.label1.Text = "Criteria"; // // autoSearchCB // this.autoSearchCB.AutoSize = true; this.autoSearchCB.Checked = true; this.autoSearchCB.CheckState = System.Windows.Forms.CheckState.Checked; this.autoSearchCB.Location = new System.Drawing.Point(212, 113); this.autoSearchCB.Name = "autoSearchCB"; this.autoSearchCB.Size = new System.Drawing.Size(82, 17); this.autoSearchCB.TabIndex = 19; this.autoSearchCB.Text = "AutoSearch"; this.autoSearchCB.UseVisualStyleBackColor = true; // // HeaderSearch // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.ClientSize = new System.Drawing.Size(304, 144); this.Controls.Add(this.autoSearchCB); this.Controls.Add(this.label1); this.Controls.Add(this.headerSearchResetButton); this.Controls.Add(this.startSearchButton); this.Controls.Add(this.valueTextBox); this.Controls.Add(this.operator1ComboBox); this.Controls.Add(this.explanationLabel); this.Controls.Add(this.fieldToSearch1ComboBox); this.Controls.Add(this.arm9expansionTextLBL); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "HeaderSearch"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Advanced Header Search (Experimental)"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label arm9expansionTextLBL; private System.Windows.Forms.ComboBox fieldToSearch1ComboBox; private System.Windows.Forms.Label explanationLabel; private System.Windows.Forms.ComboBox operator1ComboBox; private System.Windows.Forms.TextBox valueTextBox; private System.Windows.Forms.Button startSearchButton; private System.Windows.Forms.Button headerSearchResetButton; private System.Windows.Forms.Label label1; private System.Windows.Forms.CheckBox autoSearchCB; } } ================================================ FILE: DS_Map/HeaderSearch.cs ================================================ using DSPRE.ROMFiles; using System.Collections.Generic; using System; using System.Windows.Forms; using static DSPRE.RomInfo; using System.Reflection; using System.Linq; namespace DSPRE { public partial class HeaderSearch : Form { public static readonly Dictionary searchableHeaderFieldsDict = new Dictionary() { [MapHeader.SearchableFields.AreaDataID] = "Area Data (ID)", [MapHeader.SearchableFields.CameraAngleID] = "Camera Angle (ID)", [MapHeader.SearchableFields.EventFileID] = "Event File (ID)", [MapHeader.SearchableFields.InternalName] = "Internal Name", [MapHeader.SearchableFields.LevelScriptID] = "Level Script (ID)", [MapHeader.SearchableFields.MatrixID] = "Matrix (ID)", [MapHeader.SearchableFields.MusicDayID] = "Music Day (ID)", //[MapHeader.SearchableFields.MusicDayName] = "Music Day (Name)", [MapHeader.SearchableFields.MusicNightID] = "Music Night (ID)", //[MapHeader.SearchableFields.MusicNightName] = "Music Night (Name)", [MapHeader.SearchableFields.ScriptFileID] = "Script File (ID)", [MapHeader.SearchableFields.TextArchiveID] = "Text Archive (ID)", [MapHeader.SearchableFields.WeatherID] = "Weather (ID)" }; public enum NumOperators : byte { //Order matters! Equal, Different, Less, Greater, LessOrEqual, GreaterOrEqual }; public enum TextOperators : byte { //Order matters! Contains, DoesNotContain, IsExactly, IsNot }; private static readonly Dictionary numOperatorsDict = new Dictionary() { //Order matters! [NumOperators.Equal] = "Equals", [NumOperators.Different] = "Is Different than", [NumOperators.Less] = "Is Less than", [NumOperators.Greater] = "Is Greater than", [NumOperators.LessOrEqual] = "Is Less than or Equal to", [NumOperators.GreaterOrEqual] = "Is Greater than or Equal to", }; private static readonly Dictionary textOperatorsDict = new Dictionary() { //Order matters! [TextOperators.Contains] = "Contains", [TextOperators.DoesNotContain] = "Does not contain", [TextOperators.IsExactly] = "Is Exactly", [TextOperators.IsNot] = "Is Not", }; private List intNames; private ListBox headerListBox; private ToolStripStatusLabel statusLabel; public string status = "Ready"; public HeaderSearch(ref List internalNames, ListBox headerListBox, ToolStripStatusLabel statusLabel) { InitializeComponent(); intNames = internalNames; this.headerListBox = headerListBox; this.statusLabel = statusLabel; foreach (string elem in searchableHeaderFieldsDict.Values) { fieldToSearch1ComboBox.Items.Add(elem); } fieldToSearch1ComboBox.SelectedIndex = 0; operator1ComboBox.SelectedIndex = 0; } #region Helper Methods private void UpdateOperators(ComboBox operatorComboBox, ComboBox fieldToSearchComboBox) { operatorComboBox.Items.Clear(); if (fieldToSearchComboBox.SelectedItem.ToString().Contains("ID")) { foreach (string elem in numOperatorsDict.Values) { operatorComboBox.Items.Add(elem); } valueTextBox.MaxLength = 5; } else { foreach (string elem in textOperatorsDict.Values) { operatorComboBox.Items.Add(elem); } valueTextBox.MaxLength = 16; } operatorComboBox.SelectedIndex = 0; } #endregion public static void ResetResults(ListBox headerListBox, List intNames, bool prependNumbers) { if (headerListBox.Items.Count < intNames.Count) { headerListBox.Enabled = true; headerListBox.Items.Clear(); if (prependNumbers) { for (int i = 0; i < intNames.Count; i++) { string name = intNames[i]; headerListBox.Items.Add(i.ToString("D3") + MapHeader.nameSeparator + name); } } else { headerListBox.Items.AddRange(intNames.ToArray()); } } } public static HashSet AdvancedSearch(ushort startID, ushort finalID, List intNames, int fieldToSearch, int oper, string valToSearch) { if (fieldToSearch < 0 || oper < 0 || valToSearch == "") { return null; } HashSet result = new HashSet(); switch (fieldToSearch) { case (int)MapHeader.SearchableFields.InternalName: for (ushort i = startID; i < finalID; i++) { switch (oper) { case (int)TextOperators.IsExactly: if (intNames[i].Equals(valToSearch)) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)TextOperators.IsNot: if (!intNames[i].Equals(valToSearch)) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)TextOperators.Contains: if (intNames[i].IndexOf(valToSearch, StringComparison.InvariantCultureIgnoreCase) >= 0) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)TextOperators.DoesNotContain: if (intNames[i].IndexOf(valToSearch, StringComparison.InvariantCultureIgnoreCase) < 0) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; default: Console.WriteLine("Unrecognized operand!!!"); break; } } break; //case (int)MapHeader.SearchableFields.MusicDayName: //Maybe in the future //break; //case (int)MapHeader.SearchableFields.MusicNightName: //Maybe in the future //break; default: string[] fieldSplit = searchableHeaderFieldsDict[(MapHeader.SearchableFields)fieldToSearch].Split(); fieldSplit[0] = fieldSplit[0].ToLower(); fieldSplit[fieldSplit.Length - 1] = fieldSplit[fieldSplit.Length - 1].Replace("(", "").Replace(")", ""); //Remove ( and ) from string PropertyInfo property = typeof(MapHeader).GetProperty(String.Join("", fieldSplit)); ushort numToSearch; try { numToSearch = ushort.Parse(valToSearch); } catch (OverflowException) { MessageBox.Show("Your input exceeds the range of 16-bit integers (" + ushort.MinValue + " - " + ushort.MaxValue + ").", "Overflow Error", MessageBoxButtons.OK, MessageBoxIcon.Information); return null; } for (ushort i = startID; i < finalID; i++) { MapHeader h; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + i.ToString("D4"), i, 0); } else { h = MapHeader.LoadFromARM9(i); } int headerField = int.Parse(property.GetValue(h, null).ToString()); switch (oper) { case (int)NumOperators.Less: if (headerField < numToSearch) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)NumOperators.Equal: if (headerField == numToSearch) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)NumOperators.Greater: if (headerField > numToSearch) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)NumOperators.LessOrEqual: if (headerField <= numToSearch) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)NumOperators.GreaterOrEqual: if (headerField >= numToSearch) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; case (int)NumOperators.Different: if (headerField != numToSearch) { result.Add(i.ToString("D3") + MapHeader.nameSeparator + intNames[i]); } break; default: Console.WriteLine("Unrecognized operand!!!"); break; } } break; } return result; } private void startSearchButton_Click(object sender, EventArgs e) { StartSearch(showDialog: true); } private void StartSearch(bool showDialog = true) { if (valueTextBox.Text == "") { //if (showDialog) { // MessageBox.Show("Value to search is empty", "Can't search", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); //} headerSearchResetButton_Click(null, null); return; } HashSet result; headerListBox.Items.Clear(); try { result = AdvancedSearch(0, (ushort)intNames.Count, intNames, fieldToSearch1ComboBox.SelectedIndex, operator1ComboBox.SelectedIndex, valueTextBox.Text); } catch (FormatException) { if (showDialog) { MessageBox.Show("Make sure the value to search is correct.", "Format Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } valueTextBox.Clear(); headerListBox.Items.Add("Search parameters are invalid"); headerListBox.Enabled = false; return; } string searchConfiguration = fieldToSearch1ComboBox.Text + " " + operator1ComboBox.Text.ToLower() + " " + '"' + valueTextBox.Text + '"'; if (result is null || result.Count <= 0) { string res = "No header's " + searchConfiguration; headerListBox.Items.Add(res); headerListBox.Enabled = false; statusLabel.Text = res; } else { string[] arr = new string[result.Count]; result.CopyTo(arr); headerListBox.Items.AddRange(arr); headerListBox.SelectedIndex = 0; headerListBox.Enabled = true; statusLabel.Text = "Showing headers whose " + searchConfiguration; } Update(); } private void valueTextBox_KeyUp(object sender, KeyEventArgs e) { if (autoSearchCB.Checked) { StartSearch(showDialog: false); } else if (e.KeyCode == Keys.Enter) { StartSearch(showDialog: true); } } private void headerSearchResetButton_Click(object sender, EventArgs e) { ResetResults(headerListBox, intNames, prependNumbers: true); valueTextBox.Clear(); statusLabel.Text = "Ready"; } private void fieldToSearch1ComboBox_SelectedIndexChanged(object sender, EventArgs e) { UpdateOperators(operator1ComboBox, fieldToSearch1ComboBox); if (autoSearchCB.Checked) { StartSearch(showDialog: false); } } private void operator1ComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (autoSearchCB.Checked) { StartSearch(showDialog: false); } } } } ================================================ FILE: DS_Map/HeaderSearch.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: DS_Map/Helpers.cs ================================================ using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.IO; using System.Text; using System.Windows.Forms; using Tao.OpenGl; using LibNDSFormats.NSBMD; using LibNDSFormats.NSBTX; using DSPRE.ROMFiles; using Images; using Ekona.Images; using ScintillaNET; using ScintillaNET.Utils; using Tao.Platform.Windows; using NSMBe4.DSFileSystem; namespace DSPRE { public static class Helpers { static MainProgram MainProgram; public static RomInfo romInfo; public static bool hideBuildings = new bool(); public static NSBMDGlRenderer mapRenderer; public static ToolStripProgressBar toolStripProgressBar { get { return MainProgram.toolStripProgressBar; } } public static void Initialize(MainProgram mainProgram) { MainProgram = mainProgram; mapRenderer = new NSBMDGlRenderer(); } static bool disableHandlersOld; static bool disableHandlers; public static bool HandlersDisabled { get { return disableHandlers == true; } } public static bool HandlersEnabled { get { return disableHandlers == false; } } public static void BackUpDisableHandler() { disableHandlersOld = disableHandlers; } public static void RestoreDisableHandler() { disableHandlers = disableHandlersOld; } public static void DisableHandlers() { disableHandlers = true; } public static void EnableHandlers() { disableHandlers = false; } public static void statusLabelMessage(string msg = "Ready") { ToolStripStatusLabel statusLabel = MainProgram.statusLabel; statusLabel.Text = msg; statusLabel.Font = new Font(statusLabel.Font, FontStyle.Regular); statusLabel.ForeColor = Color.Black; statusLabel.Invalidate(); } public static void statusLabelError(string errorMsg, bool severe = true) { ToolStripStatusLabel statusLabel = MainProgram.statusLabel; statusLabel.Text = errorMsg; statusLabel.Font = new Font(statusLabel.Font, FontStyle.Bold); statusLabel.ForeColor = severe ? Color.Red : Color.DarkOrange; statusLabel.Invalidate(); } //Locate File - buttons public static void ExplorerSelect(string path) { if (System.IO.File.Exists(path)) { Process.Start("explorer.exe", "/select" + "," + "\"" + path + "\""); } } public static string[] GetTrainerNames() { List trainerList = new List(); /* Store all trainer names and classes */ TextArchive trainerClasses = new TextArchive(RomInfo.trainerClassMessageNumber); TextArchive trainerNames = new TextArchive(RomInfo.trainerNamesMessageNumber); int trainerCount = Filesystem.GetTrainerPropertiesCount(); for (int i = 0; i < trainerCount; i++) { string path = Filesystem.GetTrainerPropertiesPath(i); int classMessageID = BitConverter.ToUInt16(DSUtils.ReadFromFile(path, startOffset: 1, 2), 0); string currentTrainerName; if (i < trainerNames.messages.Count) { currentTrainerName = trainerNames.messages[i]; } else { currentTrainerName = TrainerFile.NAME_NOT_FOUND; } trainerList.Add("[" + i.ToString("D2") + "] " + trainerClasses.messages[classMessageID] + " " + currentTrainerName); } return trainerList.ToArray(); } public static void MW_LoadModelTextures(NSBMD model, string textureFolder, int fileID) { if (fileID < 0) { return; } string texturePath = Filesystem.GetPath(textureFolder, fileID); model.materials = NSBTXLoader.LoadNsbtx(new MemoryStream(System.IO.File.ReadAllBytes(texturePath)), out model.Textures, out model.Palettes); try { model.MatchTextures(); } catch { } } public static void MW_LoadModelTextures(MapFile mapFile, int fileID) { MW_LoadModelTextures(mapFile.mapModel, Filesystem.mapTextures, fileID); } public static void MW_LoadModelTextures(Building building, int fileID) { MW_LoadModelTextures(building.NSBMDFile, Filesystem.buildingTextures, fileID); } public static void SetupRenderer(float ang, float dist, float elev, float perspective, int width, int height) { //TODO: improve this Gl.glEnable(Gl.GL_RESCALE_NORMAL); Gl.glEnable(Gl.GL_COLOR_MATERIAL); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glEnable(Gl.GL_NORMALIZE); Gl.glDisable(Gl.GL_CULL_FACE); Gl.glFrontFace(Gl.GL_CCW); Gl.glClearDepth(1); Gl.glEnable(Gl.GL_ALPHA_TEST); Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA); Gl.glEnable(Gl.GL_BLEND); Gl.glAlphaFunc(Gl.GL_GREATER, 0f); Gl.glClearColor(51f / 255f, 51f / 255f, 51f / 255f, 1f); Gl.glViewport(0, 0, width, height); float aspect = width / height; //(vp[2] - vp[0]) / (vp[3] - vp[1]); Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(perspective, aspect, 0.2f, 500.0f); //0.02f, 32.0f); Gl.glTranslatef(0, 0, -dist); Gl.glRotatef(elev, 1, 0, 0); Gl.glRotatef(ang, 0, 1, 0); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glTranslatef(0, 0, -dist); Gl.glRotatef(elev, 1, 0, 0); Gl.glRotatef(-ang, 0, 1, 0); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLoadIdentity(); Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); Gl.glColor3f(1.0f, 1.0f, 1.0f); Gl.glDepthMask(Gl.GL_TRUE); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); } public static void RenderMap(ref MapFile mapFile, int width, int height, float ang, float dist, float elev, float perspective, bool mapTexturesON = true, bool buildingTexturesON = true) { #region Useless variables that the rendering API still needs MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File ani = new MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File(); MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File tp = new MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File(); MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File ca = new MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File(); int[] aniframeS = new int[0]; #endregion /* Adjust rendering settings */ SetupRenderer(ang, dist, elev, perspective, width, height); /* Render the map model */ NSBMD model = mapFile.mapModel; mapRenderer.Model = model.models[0]; // int scale = 64; float scale = 0.015625f; Gl.glScalef(mapRenderer.Model.modelScale * scale, mapRenderer.Model.modelScale * scale, mapRenderer.Model.modelScale * scale); /* Determine if map textures must be rendered */ if (mapTexturesON) { Gl.glEnable(Gl.GL_TEXTURE_2D); } else { Gl.glDisable(Gl.GL_TEXTURE_2D); } // Render map model mapRenderer.RenderModel("", ani, aniframeS, aniframeS, aniframeS, aniframeS, aniframeS, ca, false, -1, 0.0f, 0.0f, dist, elev, ang, true, tp, model); if (hideBuildings) { return; } if (buildingTexturesON) { Gl.glEnable(Gl.GL_TEXTURE_2D); } else { Gl.glDisable(Gl.GL_TEXTURE_2D); } for (int i = 0; i < mapFile.buildings.Count; i++) { Building building = mapFile.buildings[i]; model = building.NSBMDFile; if (model is null) { Console.WriteLine("Null building can't be rendered"); } else { mapRenderer.Model = model.models[0]; ScaleTranslateRotateBuilding(building); mapRenderer.RenderModel("", ani, aniframeS, aniframeS, aniframeS, aniframeS, aniframeS, ca, false, -1, 0.0f, 0.0f, dist, elev, ang, true, tp, model); } } } public static Bitmap GrabMapScreenshot(int width, int height) { Bitmap bmp = new Bitmap(width, height); System.Drawing.Imaging.BitmapData data = bmp.LockBits(new Rectangle(0, 0, width, height), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb); Gl.glReadPixels(0, 0, width, height, Gl.GL_BGR, Gl.GL_UNSIGNED_BYTE, data.Scan0); bmp.UnlockBits(data); bmp.RotateFlip(RotateFlipType.RotateNoneFlipY); return bmp; } private static void ScaleTranslateRotateBuilding(Building building) { float fullXcoord = building.xPosition + building.xFraction / 65536f; float fullYcoord = building.yPosition + building.yFraction / 65536f; float fullZcoord = building.zPosition + building.zFraction / 65536f; float scaleFactor = building.NSBMDFile.models[0].modelScale / 1024; float translateFactor = 256 / building.NSBMDFile.models[0].modelScale; Gl.glScalef(scaleFactor * building.width, scaleFactor * building.height, scaleFactor * building.length); Gl.glTranslatef(fullXcoord * translateFactor / building.width, fullYcoord * translateFactor / building.height, fullZcoord * translateFactor / building.length); Gl.glRotatef(Building.U16ToDeg(building.xRotation), 1, 0, 0); Gl.glRotatef(Building.U16ToDeg(building.yRotation), 0, 1, 0); Gl.glRotatef(Building.U16ToDeg(building.zRotation), 0, 0, 1); } public static Image GetPokePic(int species, int w, int h, PaletteBase paletteBase, ImageBase imageBase, SpriteBase spriteBase) { bool fiveDigits = false; // some extreme future proofing try { string path = Filesystem.GetMonIconPath(0); paletteBase = new NCLR(path, 0, Path.GetFileName(path)); } catch (FileNotFoundException) { string path = Filesystem.GetMonIconPath(0, "D5"); paletteBase = new NCLR(path, 0, Path.GetFileName(path)); fiveDigits = true; } // read arm9 table to grab pal ID int paletteId = 0; byte[] iconPalTableBuf; switch (RomInfo.gameFamily) { case RomInfo.GameFamilies.DP: iconPalTableBuf = ARM9.ReadBytes(0x6B838, 4); break; case RomInfo.GameFamilies.Plat: iconPalTableBuf = ARM9.ReadBytes(0x79F80, 4); break; case RomInfo.GameFamilies.HGSS: default: iconPalTableBuf = ARM9.ReadBytes(0x74408, 4); break; } int iconPalTableAddress = (iconPalTableBuf[3] & 0xFF) << 24 | (iconPalTableBuf[2] & 0xFF) << 16 | (iconPalTableBuf[1] & 0xFF) << 8 | (iconPalTableBuf[0] & 0xFF) /* << 0 */; string iconTablePath; int iconPalTableOffsetFromFileStart; if (iconPalTableAddress >= RomInfo.synthOverlayLoadAddress) { // if the pointer shows the table was moved to the synthetic overlay iconPalTableOffsetFromFileStart = iconPalTableAddress - (int)RomInfo.synthOverlayLoadAddress; iconTablePath = Filesystem.expArmPath; } else { iconPalTableOffsetFromFileStart = iconPalTableAddress - 0x02000000; iconTablePath = RomInfo.arm9Path; } using (DSUtils.EasyReader idReader = new DSUtils.EasyReader(iconTablePath, iconPalTableOffsetFromFileStart + species)) { paletteId = idReader.ReadByte(); } if (paletteId != 0) { paletteBase.Palette[0] = paletteBase.Palette[paletteId]; // update pal 0 to be the new pal } // grab tiles int spriteFileID = species + 7; if (fiveDigits) { string path = Filesystem.GetMonIconPath(spriteFileID, "D5"); imageBase = new NCGR(path, spriteFileID, Path.GetFileName(path)); } else { string path = Filesystem.GetMonIconPath(spriteFileID); imageBase = new NCGR(path, spriteFileID, Path.GetFileName(path)); } // grab sprite const int ncerFileId = 2; if (fiveDigits) { string path = Filesystem.GetMonIconPath(ncerFileId, "D5"); spriteBase = new NCER(path, ncerFileId, Path.GetFileName(path)); } else { string path = Filesystem.GetMonIconPath(ncerFileId); spriteBase = new NCER(path, ncerFileId, Path.GetFileName(path)); } // copy this from the trainer int bank0OAMcount = spriteBase.Banks[0].oams.Length; int[] OAMenabled = new int[bank0OAMcount]; for (int i = 0; i < OAMenabled.Length; i++) { OAMenabled[i] = i; } // finally compose image try { return spriteBase.Get_Image(imageBase, paletteBase, 0, w, h, false, false, false, true, true, -1, OAMenabled); } catch (FormatException) { return Properties.Resources.IconPokeball; } // default: //partyPokemonPictureBoxList[partyPos].Image = cb.SelectedIndex > 0 ? (Image)Properties.PokePics.ResourceManager.GetObject(FixPokenameString(PokeDatabase.System.pokeNames[(ushort)cb.SelectedIndex])) : global::DSPRE.Properties.Resources.IconPokeball; } public static void GenerateKeystrokes(string keys, Scintilla textArea) { //Example //GenerateKeystrokes("+{TAB}"); HotKeyManager.Enable = false; textArea.Focus(); SendKeys.Send(keys); HotKeyManager.Enable = true; } public static void PictureBoxDisable(object sender, PaintEventArgs e) { if (sender is PictureBox pict && pict.Image != null && (!pict.Enabled)) { using (Bitmap img = new Bitmap(pict.Image, pict.ClientSize)) { ControlPaint.DrawImageDisabled(e.Graphics, img, 0, 0, pict.BackColor); } } } public static List getHeaderListBoxNames() { if (string.IsNullOrWhiteSpace(RomInfo.internalNamesPath)) { return null; } List headerListBoxNames = new List(); using (DSUtils.EasyReader reader = new DSUtils.EasyReader(RomInfo.internalNamesPath)) { int headerCount = RomInfo.GetHeaderCount(); for (int i = 0; i < headerCount; i++) { byte[] row = reader.ReadBytes(RomInfo.internalNameLength); string internalName = Encoding.ASCII.GetString(row); //.TrimEnd(); headerListBoxNames.Add(MapHeader.BuildName(i, internalName)); } } return headerListBoxNames; } public static List getInternalNames() { List internalNames = new List(); using (DSUtils.EasyReader reader = new DSUtils.EasyReader(RomInfo.internalNamesPath)) { int headerCount = RomInfo.GetHeaderCount(); for (int i = 0; i < headerCount; i++) { byte[] row = reader.ReadBytes(RomInfo.internalNameLength); string internalName = Encoding.ASCII.GetString(row); //.TrimEnd(); internalNames.Add(internalName.TrimEnd('\0')); } } return internalNames; } } } ================================================ FILE: DS_Map/InputComboBox.cs ================================================ using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace DSPRE { public partial class InputComboBox : ComboBox { private Color normalColor; public InputComboBox() { normalColor = this.BackColor; DropDownStyle = ComboBoxStyle.DropDown; AutoCompleteMode = AutoCompleteMode.SuggestAppend; AutoCompleteSource = AutoCompleteSource.ListItems; } private void UpdateText() { string input = Text; int index = FindStringExact(input.Trim()); if (index == -1) { this.BackColor = Color.IndianRed; } else { this.BackColor = normalColor; SelectedIndex = index; } } protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if (e.KeyCode == Keys.Enter) { UpdateText(); } } protected override void OnLeave(EventArgs e) { base.OnLeave(e); UpdateText(); } [Browsable(false)] public new ComboBoxStyle DropDownStyle { get { return base.DropDownStyle; } set { base.DropDownStyle = ComboBoxStyle.DropDown; } } } } ================================================ FILE: DS_Map/LearnsetEditor.Designer.cs ================================================ namespace DSPRE { partial class LearnsetEditor { /// /// 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(LearnsetEditor)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.saveDataButton = new System.Windows.Forms.Button(); this.pokemonPictureBox = new System.Windows.Forms.PictureBox(); this.monNumberNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.movesListBox = new System.Windows.Forms.ListBox(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); this.descriptorLabel = new System.Windows.Forms.Label(); this.addMoveButton = new System.Windows.Forms.Button(); this.deleteMoveButton = new System.Windows.Forms.Button(); this.editMoveButton = new System.Windows.Forms.Button(); this.levelNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label1 = new System.Windows.Forms.Label(); this.moveInputComboBox = new DSPRE.InputComboBox(); this.statusLabel = new System.Windows.Forms.Label(); this.pokemonNameInputComboBox = new DSPRE.InputComboBox(); this.entryCountLabel = new System.Windows.Forms.Label(); this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pokemonPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.monNumberNumericUpDown)).BeginInit(); this.tableLayoutPanel2.SuspendLayout(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.levelNumericUpDown)).BeginInit(); this.SuspendLayout(); // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 4; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.41322F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 60.49587F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.97891F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.43285F)); this.tableLayoutPanel1.Controls.Add(this.saveDataButton, 3, 0); this.tableLayoutPanel1.Controls.Add(this.pokemonPictureBox, 0, 0); this.tableLayoutPanel1.Controls.Add(this.monNumberNumericUpDown, 2, 0); this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 1); this.tableLayoutPanel1.Controls.Add(this.pokemonNameInputComboBox, 1, 0); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 5); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 2; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.58022F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 88.41978F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(491, 449); this.tableLayoutPanel1.TabIndex = 0; // // saveDataButton // this.saveDataButton.Dock = System.Windows.Forms.DockStyle.Fill; this.saveDataButton.Image = ((System.Drawing.Image)(resources.GetObject("saveDataButton.Image"))); this.saveDataButton.Location = new System.Drawing.Point(441, 3); this.saveDataButton.Name = "saveDataButton"; this.saveDataButton.Size = new System.Drawing.Size(47, 45); this.saveDataButton.TabIndex = 30; this.saveDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveDataButton.UseVisualStyleBackColor = true; this.saveDataButton.Click += new System.EventHandler(this.saveDataButton_Click); // // pokemonPictureBox // this.pokemonPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.pokemonPictureBox.Location = new System.Drawing.Point(3, 3); this.pokemonPictureBox.Name = "pokemonPictureBox"; this.pokemonPictureBox.Size = new System.Drawing.Size(44, 45); this.pokemonPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.pokemonPictureBox.TabIndex = 12; this.pokemonPictureBox.TabStop = false; // // monNumberNumericUpDown // this.monNumberNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.monNumberNumericUpDown.Location = new System.Drawing.Point(349, 15); this.monNumberNumericUpDown.Name = "monNumberNumericUpDown"; this.monNumberNumericUpDown.Size = new System.Drawing.Size(86, 20); this.monNumberNumericUpDown.TabIndex = 16; this.monNumberNumericUpDown.ValueChanged += new System.EventHandler(this.monNumberNumericUpDown_ValueChanged); // // tableLayoutPanel2 // this.tableLayoutPanel2.ColumnCount = 2; this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanel2, 4); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.303955F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.303955F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel2.Controls.Add(this.groupBox2, 0, 0); this.tableLayoutPanel2.Controls.Add(this.groupBox3, 1, 0); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 54); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel2.RowCount = 1; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 382F)); this.tableLayoutPanel2.Size = new System.Drawing.Size(485, 392); this.tableLayoutPanel2.TabIndex = 17; // // groupBox2 // this.groupBox2.Controls.Add(this.movesListBox); this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox2.Location = new System.Drawing.Point(8, 8); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(231, 376); this.groupBox2.TabIndex = 34; this.groupBox2.TabStop = false; this.groupBox2.Text = "View"; // // movesListBox // this.movesListBox.Dock = System.Windows.Forms.DockStyle.Fill; this.movesListBox.FormattingEnabled = true; this.movesListBox.Location = new System.Drawing.Point(3, 16); this.movesListBox.Margin = new System.Windows.Forms.Padding(2); this.movesListBox.Name = "movesListBox"; this.movesListBox.Size = new System.Drawing.Size(225, 357); this.movesListBox.TabIndex = 0; this.movesListBox.SelectedIndexChanged += new System.EventHandler(this.movesListBox_SelectedIndexChanged); // // groupBox3 // this.groupBox3.Controls.Add(this.tableLayoutPanel3); this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox3.Location = new System.Drawing.Point(245, 8); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(232, 376); this.groupBox3.TabIndex = 35; this.groupBox3.TabStop = false; this.groupBox3.Text = "Edit"; // // tableLayoutPanel3 // this.tableLayoutPanel3.ColumnCount = 3; this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel3.Controls.Add(this.entryCountLabel, 0, 5); this.tableLayoutPanel3.Controls.Add(this.descriptorLabel, 0, 1); this.tableLayoutPanel3.Controls.Add(this.addMoveButton, 0, 4); this.tableLayoutPanel3.Controls.Add(this.deleteMoveButton, 2, 4); this.tableLayoutPanel3.Controls.Add(this.editMoveButton, 1, 4); this.tableLayoutPanel3.Controls.Add(this.levelNumericUpDown, 1, 2); this.tableLayoutPanel3.Controls.Add(this.label1, 0, 2); this.tableLayoutPanel3.Controls.Add(this.moveInputComboBox, 0, 0); this.tableLayoutPanel3.Controls.Add(this.statusLabel, 0, 3); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(2); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.Padding = new System.Windows.Forms.Padding(2); this.tableLayoutPanel3.RowCount = 6; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 34.50088F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 65.49912F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 144F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 44F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); this.tableLayoutPanel3.Size = new System.Drawing.Size(226, 357); this.tableLayoutPanel3.TabIndex = 0; // // descriptorLabel // this.descriptorLabel.AutoSize = true; this.tableLayoutPanel3.SetColumnSpan(this.descriptorLabel, 3); this.descriptorLabel.Location = new System.Drawing.Point(5, 43); this.descriptorLabel.Name = "descriptorLabel"; this.descriptorLabel.Padding = new System.Windows.Forms.Padding(1, 5, 1, 5); this.descriptorLabel.Size = new System.Drawing.Size(57, 23); this.descriptorLabel.TabIndex = 8; this.descriptorLabel.Text = "Descriptor"; // // addMoveButton // this.addMoveButton.Dock = System.Windows.Forms.DockStyle.Fill; this.addMoveButton.Enabled = false; this.addMoveButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addMoveButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addMoveButton.Location = new System.Drawing.Point(4, 286); this.addMoveButton.Margin = new System.Windows.Forms.Padding(2); this.addMoveButton.Name = "addMoveButton"; this.addMoveButton.Size = new System.Drawing.Size(70, 40); this.addMoveButton.TabIndex = 1; this.addMoveButton.Text = "Add"; this.addMoveButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addMoveButton.UseVisualStyleBackColor = true; this.addMoveButton.Click += new System.EventHandler(this.addMoveButton_Click); // // deleteMoveButton // this.deleteMoveButton.Dock = System.Windows.Forms.DockStyle.Fill; this.deleteMoveButton.Enabled = false; this.deleteMoveButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.deleteMoveButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.deleteMoveButton.Location = new System.Drawing.Point(152, 286); this.deleteMoveButton.Margin = new System.Windows.Forms.Padding(2); this.deleteMoveButton.Name = "deleteMoveButton"; this.deleteMoveButton.Size = new System.Drawing.Size(70, 40); this.deleteMoveButton.TabIndex = 2; this.deleteMoveButton.Text = "Delete"; this.deleteMoveButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.deleteMoveButton.UseVisualStyleBackColor = true; this.deleteMoveButton.Click += new System.EventHandler(this.deleteMoveButton_Click); // // editMoveButton // this.editMoveButton.Dock = System.Windows.Forms.DockStyle.Fill; this.editMoveButton.Enabled = false; this.editMoveButton.Image = global::DSPRE.Properties.Resources.RenameIcon; this.editMoveButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.editMoveButton.Location = new System.Drawing.Point(78, 286); this.editMoveButton.Margin = new System.Windows.Forms.Padding(2); this.editMoveButton.Name = "editMoveButton"; this.editMoveButton.Size = new System.Drawing.Size(70, 40); this.editMoveButton.TabIndex = 3; this.editMoveButton.Text = "Edit"; this.editMoveButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.editMoveButton.UseVisualStyleBackColor = true; this.editMoveButton.Click += new System.EventHandler(this.editMoveButton_Click); // // levelNumericUpDown // this.tableLayoutPanel3.SetColumnSpan(this.levelNumericUpDown, 2); this.levelNumericUpDown.Dock = System.Windows.Forms.DockStyle.Fill; this.levelNumericUpDown.Location = new System.Drawing.Point(78, 122); this.levelNumericUpDown.Margin = new System.Windows.Forms.Padding(2); this.levelNumericUpDown.Name = "levelNumericUpDown"; this.levelNumericUpDown.Size = new System.Drawing.Size(144, 20); this.levelNumericUpDown.TabIndex = 4; this.levelNumericUpDown.ValueChanged += new System.EventHandler(this.levelNumericUpDown_ValueChanged); // // label1 // this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(4, 123); this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(70, 13); this.label1.TabIndex = 5; this.label1.Text = "Level:"; // // moveInputComboBox // this.moveInputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.moveInputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.moveInputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.tableLayoutPanel3.SetColumnSpan(this.moveInputComboBox, 3); this.moveInputComboBox.FormattingEnabled = true; this.moveInputComboBox.Location = new System.Drawing.Point(4, 12); this.moveInputComboBox.Margin = new System.Windows.Forms.Padding(2); this.moveInputComboBox.Name = "moveInputComboBox"; this.moveInputComboBox.Size = new System.Drawing.Size(218, 21); this.moveInputComboBox.TabIndex = 6; this.moveInputComboBox.SelectedIndexChanged += new System.EventHandler(this.moveInputComboBox_SelectedIndexChanged); // // statusLabel // this.statusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.statusLabel.AutoSize = true; this.tableLayoutPanel3.SetColumnSpan(this.statusLabel, 3); this.statusLabel.Location = new System.Drawing.Point(5, 261); this.statusLabel.Name = "statusLabel"; this.statusLabel.Padding = new System.Windows.Forms.Padding(1, 5, 1, 5); this.statusLabel.Size = new System.Drawing.Size(39, 23); this.statusLabel.TabIndex = 7; this.statusLabel.Text = "Status"; // // pokemonNameInputComboBox // this.pokemonNameInputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.pokemonNameInputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.pokemonNameInputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.pokemonNameInputComboBox.FormattingEnabled = true; this.pokemonNameInputComboBox.Location = new System.Drawing.Point(53, 15); this.pokemonNameInputComboBox.Name = "pokemonNameInputComboBox"; this.pokemonNameInputComboBox.Size = new System.Drawing.Size(290, 21); this.pokemonNameInputComboBox.TabIndex = 31; this.pokemonNameInputComboBox.SelectedIndexChanged += new System.EventHandler(this.pokemonNameInputComboBox_SelectedIndexChanged); // // entryCountLabel // this.entryCountLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.entryCountLabel.AutoSize = true; this.tableLayoutPanel3.SetColumnSpan(this.entryCountLabel, 3); this.entryCountLabel.Location = new System.Drawing.Point(5, 332); this.entryCountLabel.Name = "entryCountLabel"; this.entryCountLabel.Padding = new System.Windows.Forms.Padding(1, 5, 1, 5); this.entryCountLabel.Size = new System.Drawing.Size(70, 23); this.entryCountLabel.TabIndex = 9; this.entryCountLabel.Text = "Entry Count: "; this.entryCountLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // LearnsetEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(501, 459); this.Controls.Add(this.tableLayoutPanel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "LearnsetEditor"; this.Padding = new System.Windows.Forms.Padding(5); this.Text = "Learnset Editor"; this.tableLayoutPanel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pokemonPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.monNumberNumericUpDown)).EndInit(); this.tableLayoutPanel2.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox3.ResumeLayout(false); this.tableLayoutPanel3.ResumeLayout(false); this.tableLayoutPanel3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.levelNumericUpDown)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.PictureBox pokemonPictureBox; private System.Windows.Forms.Button saveDataButton; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.ListBox movesListBox; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; private System.Windows.Forms.Button addMoveButton; private System.Windows.Forms.Button deleteMoveButton; private System.Windows.Forms.Button editMoveButton; private System.Windows.Forms.NumericUpDown levelNumericUpDown; private System.Windows.Forms.Label label1; private InputComboBox moveInputComboBox; private System.Windows.Forms.Label descriptorLabel; private System.Windows.Forms.Label statusLabel; public InputComboBox pokemonNameInputComboBox; public System.Windows.Forms.NumericUpDown monNumberNumericUpDown; private System.Windows.Forms.Label entryCountLabel; } } ================================================ FILE: DS_Map/LearnsetEditor.cs ================================================ using DSPRE.Resources; using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Text; using System.Windows.Forms; using MessageBox = System.Windows.Forms.MessageBox; namespace DSPRE { public partial class LearnsetEditor : Form { private readonly string[] fileNames; private readonly string[] pokenames; private readonly string[] moveNames; private PokemonEditor _parent; private readonly string[] editButtonNames = new string[] { "Edit", "Confirm" }; private readonly string[] deleteButtonNames = new string[] { "Delete", "Discard" }; private bool editMode = false; private int currentLoadedId = 0; private LearnsetData currentLoadedFile = null; private bool dirty = false; private readonly string formName = "Learnset Editor"; public LearnsetEditor(string[] moveNames, Control parent, PokemonEditor pokeEditor) { this.moveNames = moveNames; this._parent = pokeEditor; InitializeComponent(); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Size = parent.Size; this.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; Helpers.DisableHandlers(); BindingList listMoveNames = new BindingList(moveNames); moveInputComboBox.DataSource = listMoveNames; /* ---------------- */ int count = RomInfo.GetLearnsetFilesCount(); this.pokenames = RomInfo.GetPokemonNames(); List fileNames = new List(count); fileNames.AddRange(pokenames); for (int i = 0; i < PokeDatabase.PersonalData.personalExtraFiles.Length; i++) { PokeDatabase.PersonalData.PersonalExtraFiles altFormEntry = PokeDatabase.PersonalData.personalExtraFiles[i]; fileNames.Add(fileNames[altFormEntry.monId] + " - " + altFormEntry.description); } int extraEntries = fileNames.Count; for (int i = 0; i < count - extraEntries; i++) { fileNames.Add($"Extra entry {fileNames.Count}"); } this.fileNames = fileNames.ToArray(); monNumberNumericUpDown.Maximum = fileNames.Count - 1; pokemonNameInputComboBox.Items.AddRange(this.fileNames); /* ---------------- */ descriptorLabel.Text = ""; statusLabel.Text = ""; Helpers.EnableHandlers(); pokemonNameInputComboBox.SelectedIndex = 1; } private void setDirty(bool status) { if (status) { dirty = true; this.Text = formName + "*"; } else { dirty = false; this.Text = formName; } } public bool CheckDiscardChanges() { if (!dirty) { return true; } DialogResult res = MessageBox.Show(this, "Learnsets Editor\nThere are unsaved changes to the current Learnset data.\nDiscard and proceed?", "Learnset Editor - Unsaved changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (res.Equals(DialogResult.Yes)) { return true; } monNumberNumericUpDown.Value = currentLoadedId; pokemonNameInputComboBox.SelectedIndex = currentLoadedId; return false; } private string ElemToString((ushort level, ushort move) elem) { return $"Lv. {elem.level}: {moveNames[elem.move]}"; } public void ChangeLoadedFile(int toLoad) { currentLoadedId = toLoad; currentLoadedFile = new LearnsetData(currentLoadedId); PopulateAllFromCurrentFile(); UpdateButtonsOnMoveSelection(); int excess = toLoad - pokenames.Length; try { if (excess >= 0) { toLoad = PokeDatabase.PersonalData.personalExtraFiles[excess].iconId; } } catch (IndexOutOfRangeException) { toLoad = 0; } finally { pokemonPictureBox.Image = DSUtils.GetPokePic(toLoad, pokemonPictureBox.Width, pokemonPictureBox.Height); } setDirty(false); } private void PopulateAllFromCurrentFile() { movesListBox.BeginUpdate(); movesListBox.Items.Clear(); foreach (var elem in currentLoadedFile.list) { movesListBox.Items.Add(ElemToString(elem)); } UpdateEntryCountLabel(); movesListBox.EndUpdate(); } //------------------------------- private void saveDataButton_Click(object sender, EventArgs e) { currentLoadedFile.SaveToFileDefaultDir(currentLoadedId, true); setDirty(false); } private void pokemonNameInputComboBox_SelectedIndexChanged(object sender, EventArgs e) { Update(); if (Helpers.HandlersDisabled) { return; } this._parent.TrySyncIndices((ComboBox)sender); Helpers.DisableHandlers(); if (CheckDiscardChanges()) { int newNumber = pokemonNameInputComboBox.SelectedIndex; monNumberNumericUpDown.Value = newNumber; ChangeLoadedFile(newNumber); } Helpers.EnableHandlers(); } private void monNumberNumericUpDown_ValueChanged(object sender, EventArgs e) { Update(); if (Helpers.HandlersDisabled) { return; } this._parent.TrySyncIndices((NumericUpDown)sender); Helpers.DisableHandlers(); if (CheckDiscardChanges()) { int newNumber = (int)monNumberNumericUpDown.Value; pokemonNameInputComboBox.SelectedIndex = newNumber; ChangeLoadedFile(newNumber); } Helpers.EnableHandlers(); } private void moveInputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (currentLoadedFile == null) { return; } UpdateAddEditStatus(); descriptorLabel.Text = "Move ID: " + moveInputComboBox.SelectedIndex; } private bool CheckValidEntry() { return levelNumericUpDown.Value > 0 && moveInputComboBox.SelectedIndex > 0; } private void levelNumericUpDown_ValueChanged(object sender, EventArgs e) { if (currentLoadedFile == null) { return; } UpdateAddEditStatus(); } private void UpdateAddEditStatus() { (byte level, ushort move) newEntry = ((byte)levelNumericUpDown.Value, (ushort)moveInputComboBox.SelectedIndex); bool duplicate = currentLoadedFile.list.Contains(newEntry); if (duplicate) { if (editMode) { editMoveButton.Enabled = false; } else { addMoveButton.Enabled = false; } statusLabel.Text = "Entry already exists!"; } else { bool addable = CheckValidEntry(); if (addable) { statusLabel.Text = ""; } else { statusLabel.Text = "Invalid Move ID or Level!"; } if (editMode) { editMoveButton.Enabled = addable; } else { addMoveButton.Enabled = addable; } } } private void addMoveButton_Click(object sender, EventArgs e) { (byte level, ushort move) newEntry = ((byte)levelNumericUpDown.Value, (ushort)moveInputComboBox.SelectedIndex); currentLoadedFile.list.Add(newEntry); currentLoadedFile.list.Sort(); PopulateAllFromCurrentFile(); movesListBox.SelectedIndex = currentLoadedFile.list.FindIndex(x => x == newEntry); UpdateAddEditStatus(); setDirty(true); } private void deleteMoveButton_Click(object sender, EventArgs e) { int sel = movesListBox.SelectedIndex; if (sel < 0) { return; } if (editMode) { editMode = false; movesListBox.Enabled = true; UpdateButtonsOnMoveSelection(); } else { currentLoadedFile.list.RemoveAt(sel); movesListBox.Items.RemoveAt(sel); int count = movesListBox.Items.Count; if (count > 0) { movesListBox.SelectedIndex = Math.Max(0, sel - 1); } UpdateEntryCountLabel(); } UpdateByEditMode(); setDirty(true); } private void editMoveButton_Click(object sender, EventArgs e) { int sel = movesListBox.SelectedIndex; if (sel < 0) { return; } if (editMode) { (byte level, ushort move) newEntry = ((byte)levelNumericUpDown.Value, (ushort)moveInputComboBox.SelectedIndex); int newSelection; int oldLevel = currentLoadedFile.list[sel].level; currentLoadedFile.list[sel] = newEntry; if (newEntry.level == oldLevel) { movesListBox.Items[sel] = ElemToString(newEntry); newSelection = sel; } else { currentLoadedFile.list.Sort(); PopulateAllFromCurrentFile(); newSelection = currentLoadedFile.list.FindIndex(x => x == newEntry); } UpdateEntryCountLabel(); movesListBox.SelectedIndex = newSelection; editMode = false; movesListBox.Enabled = true; } else { editMode = true; movesListBox.Enabled = false; editMoveButton.Text = editButtonNames[1]; deleteMoveButton.Text = deleteButtonNames[1]; (ushort level, ushort move) = currentLoadedFile.list[sel]; moveInputComboBox.SelectedIndex = move; levelNumericUpDown.Value = level; } UpdateByEditMode(); addMoveButton.Enabled = (editMode == false && CheckValidEntry()); setDirty(true); } private void UpdateByEditMode() { UpdateButtonNames(editMode); } private void UpdateButtonNames(bool editMode) { int index = editMode == false ? 0 : 1; editMoveButton.Text = editButtonNames[index]; deleteMoveButton.Text = deleteButtonNames[index]; } private void movesListBox_SelectedIndexChanged(object sender, EventArgs e) { UpdateButtonsOnMoveSelection(); } private void UpdateButtonsOnMoveSelection() { int sel = movesListBox.SelectedIndex; if (sel < 0) { editMoveButton.Enabled = false; deleteMoveButton.Enabled = false; return; } editMoveButton.Enabled = true; deleteMoveButton.Enabled = true; } private void UpdateEntryCountLabel(){ StringBuilder labelText = new StringBuilder("Entry Count: "); labelText.Append(movesListBox.Items.Count); if (movesListBox.Items.Count > LearnsetData.VanillaLimit) { labelText.Append("!"); entryCountLabel.ForeColor = Color.FromArgb(210, 120, 0); entryCountLabel.Font = new Font(entryCountLabel.Font, FontStyle.Bold); } else { entryCountLabel.ForeColor = Color.Black; entryCountLabel.Font = new Font(entryCountLabel.Font, FontStyle.Regular); } entryCountLabel.Text = labelText.ToString(); } } } ================================================ FILE: DS_Map/LearnsetEditor.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 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAacSURBVFhHxZd5bFRVGMX5Aw24VmtbI4lGoyHGYPSP mqgoEQg0SqELbVEiGiWAqIS1lha6sdTK0oWyiAYQTBVQBEqrgEaIghAKDaC1te1M91k7nZnXmS4z0+N3 7rQDtTMmNia85Mx777v3/s5533uzjQJwS+V/8W+3ReVUmMOzK3B/VjnCMstx19py3LGmHGNHKK4lgywy yY7MKjsqXqP9lrINBKC5Jfu8A1VWH65YfDhv9MrQ/7ORRSbZ9Ihce7RMPP0hZJy7MKarsfkwOr8WYzfX YdTGGlitHdC1W1DfNjJxLRlkkUk2PeglnnfTeDBAJFt01epFWKEOY+IyMHarDna7DY0mCWEUmWz+vahB yRo4D1bjeaPJqhhkkUk2PeglnhE0vilABSpNHkSVNOKe2Zm4t6gRmtOBVqsDbZ1utDu60Wp3o8XmQnNH l0hDa6dLFKzGcw0tFjucDodikUk2PehFTxrfCCBtOdfWi3Hb9Xhw+UGEF+uhaU4Y7C6kzE7E6ynJ2Lm9 BNu3FWNbUQEMjh4kJcZjR8m2ILViFBcWoM2myUU4FYtMsulBL3rSOBCA9+VMcy8e2dGAJz7VI6q4Hq6u LhXA1NUHs9ur9gatVxmxI0Y5NmpSc/prBqmZ5Jx1jrfbuhSDLDLJpsfAMzA8wOnGHjy+swFP7tZhXIkE cLlhFJDZ5YW1G7L3SQgvjF2eG3L6A3COxd0fmKNCye0hgywyyaZH0AAPSPFEQ4+aOOFznUrb090Nq6sP ydLWOclJ/nYXF6EkoEIUF2yVcP0yJyEwh/Wigi0waz3oFgZZZJJND3rRk8ZDAhyrd8tEPZ7Zo8dju3To 6emFRdre0QPY+qD2NGM3/OqHRa6YV//POayZpQtkkEUm2fQIGeBwrRvP7tUjep8e43c3oK/Pgw65950C pgjvEGO7HDvkc2qwRkMes869rXcgoMujGGSRSTY9ggfIqUBptQvPfdGE5/c34ilpmcfjhV1giXEzA211 eICkhHikJCXK01+kanapJcbPGrg9heodUbhlM2zdPsUgi0yy6UEvetI4ECBCivv/cOHFA8146csm1TKv V65s4OoGr8wmV8wQTukAjVljF1QH5DwwV2o2eSg9nn7FIpNsetCLnjQeEmDv7xomlbZgsiha0nKT24hO GlDSVpsocB6qNlB3yp4bWWSSTY+QAT67qmHqVy2Y/rVMlsSndG4F8PWPTNzIIItMsukRMsAuGYw52IrX DrXi1YMtmFLajJdl8cQDIxPXkkEWmWTTI2SA7VUaYg+3Ie7bNsSLZn3ThplyPuNw64jEtWSQRSbZ9AgZ oPiKhoQj7Zj9XTuSRDyOFUDMoTZMk/T/RVzDtWSQRSaP6RE0QKQUCyo1JB81YM4xv+KPGFBaaQC88lj3 iTzymHvl8ad4zFooyRquJWOQRzY96EVPGg8JsPWShrnHDXizzKD2cZIYXg+u1ptwVdeB6hYNfxm7lapb nKpWVW8WmYaqTubLHj6PYtzMpEfIAJsuOTGv3Ii3RPNOGJEgbePVXtfZYJKPvozsPEybOhnTpryC9Mx1 qnZd34lrMn5df0M8vybhuJYMshRTRI+QAT655MC735swX/ROhQnJ0jZCqpsd4Fs6ZnoMlqXlinKwcEka 5INOjVU324erqVOtJYMsMsmmR8gAH1/UsPCkBYtOmrHgBzPeKDNKG72oadUgdxyxM2Kxam0eVq7ZgPeX r0WvvNc5VtPqHK4Wh6z1KQZZZJJNj5ABNl504IPTZqXFp8yqZej3oU7uOX8jx8XFIy07Hx9l5mPJqmzI o6bG6gyuoOJaMsga5NIjZIANMrj0J6vIgiU/WlTLhAKduVde5QsncTYy1m1Ges4mLF+dq0JxTGfqHi4J xrVkkEUm2fT4lwAaUs/akHqmAyt+tmLRKYsMQ350elSApOQUrFm/BWskxMqM9ZBHAM0y1tTRN1TWPjRb 5UtENjLIIpNsegQNEJVV1pl/2Y11FzTk/uaUPxBOrDhrVxCTpnZISExEWmYeVmflITU9V9WMTshvweEy ibiRQRaZZNMjYuWBs+I55Gd5mCg6KvO4nemo8Oxy3J5ehmvXanHu8p/45XIN3p6/4L2lq1IXf7hs2eK5 G/fsuFBVi18rZSyIzom4lgyyBrkRy/edE6+nRUP+mNwmekgULZosmhJEL4jGix4WPSqaIJooCjY3lCaJ aM6rH/LXjBtDsBO8N8F0n2iMiAs5905RuCjY3FCiMa982J/TW7SNGvU3iJOEw8UaLRYAAAAASUVORK5C YII= AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/LibNDSFormats/EndianBinaryReader.cs ================================================ // CTools library - Library functions for CTools // Copyright (C) 2010 Chadderz // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System.Text; using System.Runtime.InteropServices; namespace System.IO { public sealed class EndianBinaryReader : IDisposable { private bool disposed; private byte[] buffer; public Stream BaseStream { get; private set; } public Endianness Endianness { get; set; } public Endianness SystemEndianness { get { return BitConverter.IsLittleEndian ? Endianness.LittleEndian : Endianness.BigEndian; } } private bool Reverse { get { return SystemEndianness != Endianness; } } public EndianBinaryReader(Stream baseStream) : this(baseStream, Endianness.BigEndian) { } public EndianBinaryReader(Stream baseStream, Endianness endianness) { if (baseStream is null){ throw new ArgumentNullException("baseStream"); } if (!baseStream.CanRead){ throw new ArgumentException("baseStream"); } BaseStream = baseStream; Endianness = endianness; } ~EndianBinaryReader() { Dispose(false); } private void FillBuffer(int bytes, int stride) { if (buffer is null || buffer.Length < bytes) buffer = new byte[bytes]; BaseStream.Read(buffer, 0, bytes); if (Reverse) for (int i = 0; i < bytes; i += stride) { Array.Reverse(buffer, i, stride); } } public byte ReadByte() { FillBuffer(1, 1); return buffer[0]; } public byte[] ReadBytes(int count) { byte[] temp; FillBuffer(count, 1); temp = new byte[count]; Array.Copy(buffer, 0, temp, 0, count); return temp; } public sbyte ReadSByte() { FillBuffer(1, 1); unchecked { return (sbyte)buffer[0]; } } public sbyte[] ReadSBytes(int count) { sbyte[] temp; temp = new sbyte[count]; FillBuffer(count, 1); unchecked { for (int i = 0; i < count; i++) { temp[i] = (sbyte)buffer[i]; } } return temp; } public char ReadChar(Encoding encoding) { int size; size = GetEncodingSize(encoding); FillBuffer(size, size); return encoding.GetChars(buffer, 0, size)[0]; } public char[] ReadChars(Encoding encoding, int count) { int size; size = GetEncodingSize(encoding); FillBuffer(size * count, size); return encoding.GetChars(buffer, 0, size * count); } private static int GetEncodingSize(Encoding encoding) { if (encoding == Encoding.UTF8 || encoding == Encoding.ASCII) return 1; else if (encoding == Encoding.Unicode || encoding == Encoding.BigEndianUnicode) return 2; return 1; } public string ReadStringNT(Encoding encoding) { string text; text = ""; do { text += ReadChar(encoding); } while (!text.EndsWith("\0", StringComparison.Ordinal)); return text.Remove(text.Length - 1); } public string ReadString(Encoding encoding, int count) { return new string(ReadChars(encoding, count)); } public double ReadDouble() { const int size = sizeof(double); FillBuffer(size, size); return BitConverter.ToDouble(buffer, 0); } public double[] ReadDoubles(int count) { const int size = sizeof(double); double[] temp; temp = new double[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToDouble(buffer, size * i); } return temp; } public Single ReadSingle() { const int size = sizeof(Single); FillBuffer(size, size); return BitConverter.ToSingle(buffer, 0); } public Single[] ReadSingles(int count) { const int size = sizeof(Single); Single[] temp; temp = new Single[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToSingle(buffer, size * i); } return temp; } public Int32 ReadInt32() { const int size = sizeof(Int32); FillBuffer(size, size); return BitConverter.ToInt32(buffer, 0); } public Int32[] ReadInt32s(int count) { const int size = sizeof(Int32); Int32[] temp; temp = new Int32[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToInt32(buffer, size * i); } return temp; } public Int64 ReadInt64() { const int size = sizeof(Int64); FillBuffer(size, size); return BitConverter.ToInt64(buffer, 0); } public Int64[] ReadInt64s(int count) { const int size = sizeof(Int64); Int64[] temp; temp = new Int64[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToInt64(buffer, size * i); } return temp; } public Int16 ReadInt16() { const int size = sizeof(Int16); FillBuffer(size, size); return BitConverter.ToInt16(buffer, 0); } public Int16[] ReadInt16s(int count) { const int size = sizeof(Int16); Int16[] temp; temp = new Int16[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToInt16(buffer, size * i); } return temp; } public ushort ReadUInt16() { const int size = sizeof(ushort); FillBuffer(size, size); return BitConverter.ToUInt16(buffer, 0); } public ushort[] ReadUInt16s(int count) { const int size = sizeof(ushort); ushort[] temp; temp = new ushort[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToUInt16(buffer, size * i); } return temp; } public UInt32 ReadUInt32() { const int size = sizeof(UInt32); FillBuffer(size, size); return BitConverter.ToUInt32(buffer, 0); } public UInt32[] ReadUInt32s(int count) { const int size = sizeof(UInt32); UInt32[] temp; temp = new UInt32[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToUInt32(buffer, size * i); } return temp; } public UInt64 ReadUInt64() { const int size = sizeof(UInt64); FillBuffer(size, size); return BitConverter.ToUInt64(buffer, 0); } public UInt64[] ReadUInt64s(int count) { const int size = sizeof(UInt64); UInt64[] temp; temp = new UInt64[count]; FillBuffer(size * count, size); for (int i = 0; i < count; i++) { temp[i] = BitConverter.ToUInt64(buffer, size * i); } return temp; } public void Close() { Dispose(); } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } private void Dispose(bool disposing) { if (!disposed) { if (disposing) { if (BaseStream != null) { BaseStream.Close(); } } buffer = null; disposed = true; } } } public enum Endianness { BigEndian, LittleEndian, } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/Face.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using System; public class Face { } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/Group.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using System; using System.Collections.Generic; using System.Reflection; public class Group { private List PolygonList = new List(); public void Add(Polygon g) { this.PolygonList.Add(g); } public IEnumerator GetEnumerator() { return this.PolygonList.GetEnumerator(); } public Polygon this[int i] { get { return this.PolygonList[i]; } set { this.PolygonList[i] = value; } } public Polygon[] Polygons { get { return this.PolygonList.ToArray(); } } } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/OBJWriter.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using OpenTK; using System; using System.Collections.Generic; public class OBJWriter { private List Normals = new List(); private List TexCoords = new List(); private List Vertices = new List(); public void AddTriangle(Vector3[] Vertice) { this.Vertices.AddRange(Vertice); } public void AddTriangle(Vector3[] Vertice, Vector2 TexCoord) { this.Vertices.AddRange(Vertice); this.TexCoords.Add(TexCoord); } public void AddTriangle(Vector3[] Vertice, Vector3 Normal) { this.Vertices.AddRange(Vertice); this.Normals.Add(Normal); } public void AddTriangle(Vector3[] Vertice, Vector2 TexCoord, Vector3 Normal) { this.Vertices.AddRange(Vertice); this.TexCoords.Add(TexCoord); this.Normals.Add(Normal); } } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/Polygon.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using OpenTK; using System; public class Polygon { public Vector3[] Normals; public PolygonType PolyType; public Vector2[] TexCoords; public Vector3[] Vertex; public Polygon(PolygonType PolyType, Vector3[] Normals, Vector2[] TexCoords, Vector3[] Vertex) { this.PolyType = PolyType; this.Normals = Normals; this.TexCoords = TexCoords; this.Vertex = Vertex; } } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/PolygonType.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using System; public enum PolygonType { Triangle, Quad, TriangleStrip, QuadStrip } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/Quad.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using System.Windows; using System.Windows.Media.Media3D; public class Quad : Face { public Vector3D[] Normal = new Vector3D[4]; public Point[] TexCoord = new Point[4]; public Point3D[] Vertex = new Point3D[4]; } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/QuadStrip.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using System.Collections.Generic; using System.Windows; using System.Windows.Media.Media3D; public class QuadStrip : Face { public List Normal = new List(); public List TexCoord = new List(); public List Vertex = new List(); } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/Triangle.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using System.Windows; using System.Windows.Media.Media3D; public class Triangle : Face { public Vector3D[] Normal = new Vector3D[3]; public Point[] TexCoord = new Point[3]; public Point3D[] Vertex = new Point3D[3]; } } ================================================ FILE: DS_Map/LibNDSFormats/Export3DTools/TriangleStrip.cs ================================================ namespace MKDS_Course_Editor.Export3DTools { using System.Collections.Generic; using System.Windows; using System.Windows.Media.Media3D; public class TriangleStrip : Face { public List Normal = new List(); public List TexCoord = new List(); public List Vertex = new List(); } } ================================================ FILE: DS_Map/LibNDSFormats/Helper.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using OpenTK; namespace SM64DSe { static class Helper { public static ushort ColorToBGR15(Color color) { uint r = (uint)((color.R & 0xF8) >> 3); uint g = (uint)((color.G & 0xF8) << 2); uint b = (uint)((color.B & 0xF8) << 7); return (ushort)(r | g | b); } public static Color BGR15ToColor(ushort bgr15) { byte red = (byte)((bgr15 << 3) & 0xF8); byte green = (byte)((bgr15 >> 2) & 0xF8); byte blue = (byte)((bgr15 >> 7) & 0xF8); return Color.FromArgb(red, green, blue); } public static ushort BlendColorsBGR15(ushort c1, int w1, ushort c2, int w2) { int r1 = c1 & 0x1F; int g1 = (c1 >> 5) & 0x1F; int b1 = (c1 >> 10) & 0x1F; int r2 = c2 & 0x1F; int g2 = (c2 >> 5) & 0x1F; int b2 = (c2 >> 10) & 0x1F; int rf = ((r1 * w1) + (r2 * w2)) / (w1 + w2); int gf = ((g1 * w1) + (g2 * w2)) / (w1 + w2); int bf = ((b1 * w1) + (b2 * w2)) / (w1 + w2); return (ushort)(rf | (gf << 5) | (bf << 10)); } public static bool VectorsEqual(Vector3 a, Vector3 b) { float epsilon = 0.00001f; if (Math.Abs(a.X - b.X) > epsilon){ return false; } if (Math.Abs(a.Y - b.Y) > epsilon){ return false; } if (Math.Abs(a.Z - b.Z) > epsilon){ return false; } return true; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBCA/NSBCA.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace MKDS_Course_Editor.NSBCA { public class NSBCA { public struct NSBCA_File { public header Header; public struct header { public string ID; public byte[] Magic; public Int32 file_size; public Int16 header_size; public Int16 nSection; public Int32[] Section_Offset; } public jnt0 JNT0; public struct jnt0 //Scale Rotation and Translation { public string ID; public Int32 Size; //3D Info Structure public byte dummy; public byte num_objs; public short section_size; public UnknownBlock unknownBlock; public Info infoBlock; public string[] names; public struct UnknownBlock { public short header_size; public short section_size; public int constant; // 0x017F public short[] unknown1; public short[] unknown2; } public struct Info { public short header_size; public short data_size; public info[] Data; public struct info { public Int32 Objectoffset; } } } public J_AC[] JAC; public struct J_AC { public string ID; public Int16 NrFrames; public Int16 NrObjects; public Int32 Unknown1; public Int32 Offset1; public Int32 Offset2; public byte[] JointData; public byte[] RotationData; public Int32[] ObjInfoOffset; public objInfo[] ObjInfo; public struct objInfo { public Int16 Flag; public byte Unknown1; public byte ID; public int tStart; public int tEnd; public int rStart; public int rEnd; public int sStart; public int sEnd; public List[] translate; public List[] translate_keyframes; public List rotate; public List[] rotate_keyframes; public List[][] scale; public List[][] scale_keyframes; } } } /* * I've been studying the NSBCA format heavily over the last few days trying to figure it out. * I've determined that the first offset in a joint animation contains Pivoting data, and the second section contains Rotation data. * Rotation keyframes are called when the second byte equals 0 and Pivot keyframes are called when it equals 128, however the data itself is definitely stored a little differently to how it is stored in NSBMD files. * Scaling keyframes hold two scaling values for whatever reason, with Translation keyframes being just straight values that can be a signed word/dword. * Each animation has a frame length, however each object in an animation seems to have a start and end position that typically don't match up with the total number of frames. * Now I haven't had much experience with model animations, but I'm guessing this might have like a decay effect on the animation if anyone has ever played around with animations in Maya? * The trickiest part is calculating the right number of keyframes stored in each object as there isn't an actual value written down anywhere. * From what I can tell it's calculated based on a bunch of things including the difference in object frame length over animation frame length, the rate in which the object (and possibly the animation) plays back as well as rounding to the upper whole number. * This looks a bit funky and overcomplicated but so far all the animations I've been working with calculate the correct number of keyframes, so I'm assuming I'm on the right track. * Am yet to get to the point of loading animations into a model, but hopefully I won't get some spastic result :S Object Flag: --zyx-Sr-RZYX-T- > found in the header of each object of an animation =========================== T - has Translation keyframes (0 Yes| 1 No) XYZ - flags for Translation attributes R - has Rotation/Pivot keyframes (0 Yes| 1 No) r - flag for Rotation/Pivot attribute S - has Scale keyframes (0 Yes| 1 No) xyz - flags for Scale attributes =========================== if T-XYZ = 1 > Fixed Translation value (signed dword) if R-r = 1 > Fixed Rotation/Pivot value (dword/2*word?) if S-xyz = 1 > Fixed Scale value (2*dword) Note: The below is only done when the bit flag equals 0 for that attribute (TX, TY, TZ, R/P, SX, SY, SZ) a|b = datasize = playback speed > a & b are flags stored in the object header for each attribute Translate ----------------------------------------------------------- 2|0 = word = 1/1 2|1 = word = 1/2 2|2 = word = 1/3 0|1 = dword = 1/2 Rotate ----------------------------------------------------------- 0|0 = 2*byte = 1/1 0|1 = 2*byte = 1/2 0|2 = 2*byte = 1/3 > byte0 = index > byte1 = 0 Rotation | 128 Pivot > not completely sure on rotation yet Scale ----------------------------------------------------------- 2|1 = 2*word = 1/1 2|1 = 2*word = 1/2 ----------------------------------------------------------- Attribute [animation flag|start|end|a|b] bytes/keyframes - animation length > bytes - the actual size of the data stored > keyframes - bytes/datasize(see above) Basabasa - 0 Pivot - 33 Rotation =========================================================== Translate [3|0|34|2|1] 38/19 - 36 Frames Rotate [3|0|34|0|1] 38/19 - 36 Frames Scale [3|0|34|2|1] 76/19 - 36 Frames =========================================================== Basabasa2 - 1 Pivot - 20 Rotation =========================================================== Rotate [3|0|78|0|1] 82/41 - 80 Frames =========================================================== Bilikyu - 31 Pivot =========================================================== Translate [3|0|58|2|1] 62/31 - 60 Frames Rotate [3|0|58|0|1] 62/31 - 60 Frames =========================================================== Donketu - 12 Pivot / 20 Rotation =========================================================== Translate [3|0|10|0|1] 24/06 - 11 Frames (dword) Translate [3|0|10|2|1] 12/06 - 11 Frames Translate [1|0|02|2|0] 04/02 - 02 Frames Rotate [3|0|10|0|1] 14/07 - 11 Frames =========================================================== Gesso - 39 Pivot =========================================================== Translate [0|0|16|2|2] 14/07 - 19 Frames Translate [0|0|16|2|2] 12/06 - 18 Frames Translate [0|0|12|2|2] 10/05 - 14 Frames Scale [0|0|16|2|2] 28/07 - 19 Frames Scale [0|0|16|2|2] 24/06 - 18 Frames Rotate [0|0|16|0|2] 16/08 - 19 Frames Rotate [0|0|16|0|2] 16/08 - 18 Frames Rotate [0|0|12|0|2] 14/07 - 14 Frames =========================================================== TTL Bird =========================================================== Translate [1|0|05|2|0] 10/05 - 05 Frames Rotate [1|0|05|0|0] 10/05 - 05 Frames =========================================================== Gamaguchi - 11 Pivot - 52 Rotation =========================================================== Translate [3|0|08|2|0] 16/08 - 08 Frames Translate [3|0|07|2|0] 14/07 - 07 Frames Translate [3|0|16|2|0] 32/16 - 16 Frames Rotate [3|0|08|0|0] 16/08 - 08 Frames Rotate [1|0|07|0|0] 14/07 - 07 Frames Rotate [3|0|16|0|0] 32/16 - 16 Frames Scale [3|0|08|2|0] 32/08 - 08 Frames Scale [1|0|07|2|0] 28/07 - 07 Frames =========================================================== */ public static NSBCA_File Read(string Filename) { byte[] file_ = File.ReadAllBytes(Filename); if (file_[0] == 76 && file_[1] == 90 && file_[2] == 55 && file_[3] == 55) { } EndianBinaryReader er = new EndianBinaryReader(new MemoryStream(file_), Endianness.LittleEndian); NSBCA_File ns = new NSBCA_File(); ns.Header.ID = er.ReadString(Encoding.ASCII, 4); if (ns.Header.ID == "BCA0") { ns.Header.Magic = er.ReadBytes(4); ns.Header.file_size = er.ReadInt32(); ns.Header.header_size = er.ReadInt16(); ns.Header.nSection = er.ReadInt16(); ns.Header.Section_Offset = new Int32[ns.Header.nSection]; for (int i = 0; i < ns.Header.nSection; i++) { ns.Header.Section_Offset[i] = er.ReadInt32(); } ns.JNT0.ID = er.ReadString(Encoding.ASCII, 4); if (ns.JNT0.ID == "JNT0") { ns.JNT0.Size = er.ReadInt32(); //3D Info Structure ns.JNT0.dummy = er.ReadByte(); ns.JNT0.num_objs = er.ReadByte(); ns.JNT0.section_size = er.ReadInt16(); ns.JNT0.unknownBlock.header_size = er.ReadInt16(); ns.JNT0.unknownBlock.section_size = er.ReadInt16(); ns.JNT0.unknownBlock.constant = er.ReadInt32(); ns.JNT0.unknownBlock.unknown1 = new short[ns.JNT0.num_objs]; ns.JNT0.unknownBlock.unknown2 = new short[ns.JNT0.num_objs]; for (int i = 0; i < ns.JNT0.num_objs; i++) { ns.JNT0.unknownBlock.unknown1[i] = er.ReadInt16(); ns.JNT0.unknownBlock.unknown2[i] = er.ReadInt16(); } ns.JNT0.infoBlock.header_size = er.ReadInt16(); ns.JNT0.infoBlock.data_size = er.ReadInt16(); ns.JNT0.infoBlock.Data = new NSBCA_File.jnt0.Info.info[ns.JNT0.num_objs]; for (int i = 0; i < ns.JNT0.num_objs; i++) { ns.JNT0.infoBlock.Data[i].Objectoffset = er.ReadInt32(); } ns.JNT0.names = new string[ns.JNT0.num_objs]; for (int i = 0; i < ns.JNT0.num_objs; i++) { ns.JNT0.names[i] = er.ReadString(Encoding.ASCII, 16).Replace("\0", ""); } ns.JAC = new NSBCA_File.J_AC[ns.JNT0.num_objs]; for (int i = 0; i < ns.JNT0.num_objs; i++) { er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.JNT0.infoBlock.Data[i].Objectoffset; ns.JAC[i].ID = er.ReadString(Encoding.ASCII, 4); if (ns.JAC[i].ID == "J" + (char)0x00 + "AC") { ns.JAC[i].NrFrames = er.ReadInt16(); ns.JAC[i].NrObjects = er.ReadInt16(); ns.JAC[i].Unknown1 = er.ReadInt32(); ns.JAC[i].Offset1 = er.ReadInt32(); ns.JAC[i].Offset2 = er.ReadInt32(); long curposs = er.BaseStream.Position; if (ns.JAC[i].Offset2 != ns.JAC[i].Offset1) { er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.JNT0.infoBlock.Data[i].Objectoffset + ns.JAC[i].Offset1; ns.JAC[i].JointData = er.ReadBytes(ns.JAC[i].Offset2 - ns.JAC[i].Offset1); er.BaseStream.Position = curposs; } long dataoffset = 0; ns.JAC[i].ObjInfoOffset = new Int32[ns.JAC[i].NrObjects]; for (int j = 0; j < ns.JAC[i].NrObjects; j++) { ns.JAC[i].ObjInfoOffset[j] = er.ReadInt16(); } ns.JAC[i].ObjInfo = new NSBCA_File.J_AC.objInfo[ns.JAC[i].NrObjects]; for (int j = 0; j < ns.JAC[i].NrObjects; j++) { er.BaseStream.Position = ns.Header.Section_Offset[0] +/* ns.JNT0.section_size*/ns.JNT0.infoBlock.Data[i].Objectoffset + ns.JAC[i].ObjInfoOffset[j];// + 8; ns.JAC[i].ObjInfo[j].Flag = er.ReadInt16(); ns.JAC[i].ObjInfo[j].Unknown1 = er.ReadByte(); ns.JAC[i].ObjInfo[j].ID = er.ReadByte(); ns.JAC[i].ObjInfo[j].translate = new List[3]; ns.JAC[i].ObjInfo[j].translate[0] = new List(); ns.JAC[i].ObjInfo[j].translate[1] = new List(); ns.JAC[i].ObjInfo[j].translate[2] = new List(); ns.JAC[i].ObjInfo[j].translate_keyframes = new List[3]; ns.JAC[i].ObjInfo[j].translate_keyframes[0] = new List(); ns.JAC[i].ObjInfo[j].translate_keyframes[1] = new List(); ns.JAC[i].ObjInfo[j].translate_keyframes[2] = new List(); ns.JAC[i].ObjInfo[j].rotate = new List(); ns.JAC[i].ObjInfo[j].rotate_keyframes = new List[2]; ns.JAC[i].ObjInfo[j].rotate_keyframes[0] = new List(); ns.JAC[i].ObjInfo[j].rotate_keyframes[1] = new List(); ns.JAC[i].ObjInfo[j].scale = new List[3][]; ns.JAC[i].ObjInfo[j].scale[0] = new List[2]; ns.JAC[i].ObjInfo[j].scale[1] = new List[2]; ns.JAC[i].ObjInfo[j].scale[2] = new List[2]; ns.JAC[i].ObjInfo[j].scale[0][0] = new List(); ns.JAC[i].ObjInfo[j].scale[0][1] = new List(); ns.JAC[i].ObjInfo[j].scale[1][0] = new List(); ns.JAC[i].ObjInfo[j].scale[1][1] = new List(); ns.JAC[i].ObjInfo[j].scale[2][0] = new List(); ns.JAC[i].ObjInfo[j].scale[2][1] = new List(); ns.JAC[i].ObjInfo[j].scale_keyframes = new List[3][]; ns.JAC[i].ObjInfo[j].scale_keyframes[0] = new List[2]; ns.JAC[i].ObjInfo[j].scale_keyframes[1] = new List[2]; ns.JAC[i].ObjInfo[j].scale_keyframes[2] = new List[2]; ns.JAC[i].ObjInfo[j].scale_keyframes[0][0] = new List(); ns.JAC[i].ObjInfo[j].scale_keyframes[0][1] = new List(); ns.JAC[i].ObjInfo[j].scale_keyframes[1][0] = new List(); ns.JAC[i].ObjInfo[j].scale_keyframes[1][1] = new List(); ns.JAC[i].ObjInfo[j].scale_keyframes[2][0] = new List(); ns.JAC[i].ObjInfo[j].scale_keyframes[2][1] = new List(); double[] speed = { 1.0D, 0.5D, 0.33333333333333331D }; if (((ns.JAC[i].ObjInfo[j].Flag >> 1) & 1) == 0) { //struct.DModelAnimation.MTransformAni trans[] = new struct.DModelAnimation.MTransformAni[3]; //string msg = new StringBuilder().Append(msg).Append("\n -> Translate: ").ToString(); //string[] type = { "X", "Y", "Z" }; for (int k = 0; k < 3; k++) { //trans[k] = new struct.DModelAnimation.MTransformAni(this); int tflag = ns.JAC[i].ObjInfo[j].Flag >> 3 + k & 1; //msg = new StringBuilder().Append(msg).Append("\n -> T").Append(type[k]).Append(tflag).Append("[").ToString(); if (tflag == 1) { int tvar = er.ReadInt32(); //trans[k].setFrame((float)tvar / divide); ns.JAC[i].ObjInfo[j].translate[k].Add((float)tvar / 4096f); //msg = (new StringBuilder()).Append(msg).Append(tvar).ToString(); continue; } else { int param2 = er.ReadInt32(); int startFrame = param2 & 0xffff; ns.JAC[i].ObjInfo[j].tStart = startFrame; int endFrame = param2 >> 16 & 0xfff; ns.JAC[i].ObjInfo[j].tEnd = endFrame; int var2 = param2 >> 28 & 3; int speedId = param2 >> 30 & 3; int toffset = er.ReadInt32(); int width = var2 != 0 ? 2 : 4; int extra = (ns.JAC[i].Unknown1 != 3 ? 0 : ns.JAC[i].NrFrames - endFrame); int length = (int)Math.Ceiling((double)(ns.JAC[i].NrFrames + extra) * speed[speedId]); long curpos = er.BaseStream.Position; for (int t = 0; t < length; t++) { er.BaseStream.Position = ns.Header.Section_Offset[0] +/* ns.JNT0.section_size*/ns.JNT0.infoBlock.Data[i].Objectoffset + toffset + (t * width); if (dataoffset == 0) { dataoffset = toffset; } float keyFrame = (width != 2 ? (float)er.ReadInt32() : (float)er.ReadInt16()); ns.JAC[i].ObjInfo[j].translate_keyframes[k].Add((float)LibNDSFormats.NSBMD.NSBMDGlRenderer.Sign((int)keyFrame, (width != 2 ? 32 : 16)) / 4096f); //m = (new StringBuilder()).append(m).append("\n -> #").append(t).append(": ").append(keyFrame).toString(); } er.BaseStream.Position = curpos; } } } if (((ns.JAC[i].ObjInfo[j].Flag >> 6) & 1) == 0) { int rflag = ns.JAC[i].ObjInfo[j].Flag >> 8 & 1; if (rflag == 1) { //dataParser _tmp14 = pa; int rvar = er.ReadInt32(); //dataParser.getInt(data, jump, 4); ns.JAC[i].ObjInfo[j].rotate.Add((float)rvar); //msg = (new StringBuilder()).append(msg).append(rvar).toString(); //jump += 4; } else { int param2 = er.ReadInt32(); int startFrame = param2 & 0xffff; ns.JAC[i].ObjInfo[j].rStart = startFrame; int endFrame = param2 >> 16 & 0xfff; ns.JAC[i].ObjInfo[j].rEnd = endFrame; int var2 = param2 >> 28 & 3; int speedId = param2 >> 30 & 3; int roffset = er.ReadInt32(); int width = 2;//var2 != 0 ? 2 : 4; int length = (int)Math.Ceiling((double)(ns.JAC[i].NrFrames) * speed[speedId]); long curpos = er.BaseStream.Position; for (int r = 0; r < length; r++) { er.BaseStream.Position = ns.Header.Section_Offset[0] +/* ns.JNT0.section_size*/ns.JNT0.infoBlock.Data[i].Objectoffset + roffset + (r * width); if (dataoffset == 0) { dataoffset = roffset; } int rvar6 = er.ReadInt16(); int rindex = rvar6 & 0x7fff; int mode = rvar6 >> 15 & 1; ns.JAC[i].ObjInfo[j].rotate_keyframes[0].Add(rindex); ns.JAC[i].ObjInfo[j].rotate_keyframes[1].Add(mode); } er.BaseStream.Position = curpos; } } if ((ns.JAC[i].ObjInfo[j].Flag >> 9 & 1) == 0) { //struct.DModelAnimation.MScaleAni scale[] = new struct.DModelAnimation.MScaleAni[3]; //msg = (new StringBuilder()).append(msg).append("\n -> Scale: ").toString(); for (int k = 0; k < 3; k++) { //scale[k] = new struct.DModelAnimation.MScaleAni(this); int sflag = ns.JAC[i].ObjInfo[j].Flag >> 11 + k & 1; //msg = (new StringBuilder()).append(msg).append("\n -> S").append(type[k]).append(sflag).append("[").toString(); if (sflag == 1) { //dataParser _tmp19 = pa; int svar1 = er.ReadInt32();//dataParser.getInt(data, jump, 4); ns.JAC[i].ObjInfo[j].scale[k][0].Add((float)svar1 / 4096f); //dataParser _tmp20 = pa; int svar2 = er.ReadInt32();//dataParser.getSign(data, jump + 4, 4); ns.JAC[i].ObjInfo[j].scale[k][1].Add((float)svar2 / 4096f); //int svar3 = er.ReadInt32();//dataParser.getSign(data, jump + 4, 4); //int svar4 = er.ReadInt32();//dataParser.getSign(data, jump + 4, 4); //ns.JAC[i].ObjInfo[j].scale[k][1].Add((float)svar2 / 4096f); //scale[k].setFrame(new float[] { // (float)svar1 / divide, (float)svar2 / divide //}); //msg = (new StringBuilder()).append(msg).append(svar1).append("|").append(svar2).toString(); //jump += 8; continue; } else { int param2 = er.ReadInt32(); int startFrame = param2 & 0xffff; ns.JAC[i].ObjInfo[j].sStart = startFrame; int endFrame = param2 >> 16 & 0xfff; ns.JAC[i].ObjInfo[j].sEnd = endFrame; int var2 = param2 >> 28 & 3; int speedId = param2 >> 30 & 3; int soffset = er.ReadInt32(); int width = var2 != 0 ? 2 : 4; int length = (int)Math.Ceiling((double)(ns.JAC[i].NrFrames) * speed[speedId]); long curpos = er.BaseStream.Position; for (int s = 0; s < length; s++) { er.BaseStream.Position = ns.Header.Section_Offset[0] +/* ns.JNT0.section_size*/ns.JNT0.infoBlock.Data[i].Objectoffset + soffset + (s * width * 2); if (dataoffset == 0) { dataoffset = soffset; } ns.JAC[i].ObjInfo[j].scale_keyframes[k][0].Add((float)(width != 2 ? (float)er.ReadInt32() : (float)er.ReadInt16()) / 4096f); ns.JAC[i].ObjInfo[j].scale_keyframes[k][1].Add((float)(width != 2 ? (float)er.ReadInt32() : (float)er.ReadInt16()) / 4096f); } er.BaseStream.Position = curpos; } } } } if (dataoffset != 0) { curposs = er.BaseStream.Position; er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.JNT0.infoBlock.Data[i].Objectoffset + ns.JAC[i].Offset2; ns.JAC[i].RotationData = er.ReadBytes((int)dataoffset - ns.JAC[i].Offset2); er.BaseStream.Position = curposs; } } else { //MessageBox.Show("Error"); er.Close(); return ns; } } } else { //MessageBox.Show("Error"); er.Close(); return ns; } } else { //MessageBox.Show("Error"); er.Close(); return ns; } er.Close(); return ns; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBCA/NSBCALoader.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using LibNDSFormats.NSBMD; namespace LibNDSFormats.NSBCA { /// /// Loader for NSBCA files & data. /// public static class NSBCALoader { #region Methods (2) // Public Methods (2) /// /// Load NSBTX from stream. /// /// Stream to use. /// Material definitions. public static IEnumerable LoadNsbca(Stream stream) { List animation = new List(); var reader = new EndianBinaryReader(stream, Endianness.LittleEndian); byte[] id = reader.ReadBytes(4); if (id == new byte[] { 0x42, 0x43, 0x41, 0x30 }) { throw new Exception(); } reader.BaseStream.Position += 2; int i = reader.ReadUInt16(); if (i == NSBMD.NSBMD.NDS_TYPE_UNK1) { i = reader.ReadInt32(); if (i == stream.Length) { int numblock = reader.ReadInt32(); numblock >>= 16; int r = reader.ReadInt32(); id = reader.ReadBytes(4); if (numblock == 1 && r == 0x14) { animation.AddRange(ReadJnt0(stream, 0x14)); } } } reader.Close(); return animation; } /// /// Load NSBTX from file. /// /// File to use. /// Material definitions. public static IEnumerable LoadNsbca(FileInfo fileInfo) { IEnumerable result = null; using (var fileStream = new FileStream(fileInfo.FullName, FileMode.Open)) { result = LoadNsbca(fileStream); } return result; } /// /// Load materials in stream. /// /// Stream to use. /// Material definitions. public static IEnumerable ReadJnt0(Stream stream, int blockoffset) { EndianBinaryReader reader = new EndianBinaryReader(stream, Endianness.LittleEndian); int blocksize, blockptr, blocklimit; int num, objnum, i, j, r; List dataoffset = new List(); int sec1offset, sec2offset; NSBMDAnimation[] animation = new NSBMDAnimation[1]; List animlen = new List(); //////////////////////////////////////////////// // joint blockptr = blockoffset + 4; // already read the ID, skip 4 bytes blocksize = reader.ReadInt32(); // block size blocklimit = blocksize + blockoffset; reader.ReadByte(); // skip dummy 0 num = reader.ReadByte(); //assert(num > 0); // no of joint must == 1 Console.WriteLine("No. of Joint = %02x\n", num); //dataoffset = (int*)malloc(sizeof(int)); //if (!dataoffset){ return NULL; } reader.BaseStream.Seek(10 + (num << 2), SeekOrigin.Current); // skip [char xyz], useless blockptr += 10; reader.BaseStream.Seek(4, SeekOrigin.Current); // go straight to joint data offset blockptr += 4; for (i = 0; i < num; i++) dataoffset.Add(getdword(reader.ReadBytes(4)) + blockoffset); //fseek( fnsbca, 16 * num, SEEK_CUR ); // skip names blockptr += 16 * num; for (i = 0; i < num; i++) { reader.BaseStream.Seek(dataoffset[i], SeekOrigin.Begin); //j = getdword(); if (reader.ReadBytes(4) == new byte[] { 0x4A, 0x00, 0x41, 0x43 }){ return null; } blockptr += 4; animlen.Add(getword(reader.ReadBytes(2))); objnum = getword(reader.ReadBytes(2)); //if (objnum != g_model[0].objnum){ return NULL; } blockptr += 4; //animation = (ANIMATION*)calloc(sizeof(ANIMATION), objnum); //if (!animation){ return NULL; } animation = new NSBMDAnimation[objnum]; reader.BaseStream.Seek(4, SeekOrigin.Current); // skip 4 zeros blockptr += 4; sec1offset = getdword(reader.ReadBytes(4)) + dataoffset[i]; sec2offset = getdword(reader.ReadBytes(4)) + dataoffset[i]; blockptr += 8; for (j = 0; j < objnum; j++) { animation[j] = new NSBMDAnimation(); animation[j].dataoffset = getword(reader.ReadBytes(2)) + dataoffset[i]; } for (j = 0; j < objnum; j++) { NSBMD.NSBMDAnimation anim = animation[j]; r = getdword(reader.ReadBytes(4)); anim.flag = r; // if ((r >> 1 & 1) == 0) //{ // any transformation? if ((r >> 1 & 1) == 0) { // translation if ((r & 4) == 1) { // use Base T } else { if ((r & 8) == 1) { // consTX anim.m_trans[0] = ((float)getdword(reader.ReadBytes(4))) / 4096.0f; } else { } if ((r & 0x10) == 1) { // consTY anim.m_trans[1] = ((float)getdword(reader.ReadBytes(4))) / 4096.0f; } else { } if ((r & 0x20) == 1) { // consTZ anim.m_trans[0] = ((float)getdword(reader.ReadBytes(4))) / 4096.0f; } else { } } } if ((r >> 6 & 1) == 0) { // rotation if ((r & 0x100) == 1) { // constR anim.a = ((float)getword(reader.ReadBytes(2))) / 4096.0f; anim.b = ((float)getword(reader.ReadBytes(2))) / 4096.0f; } else { } } if ((r >> 9 & 1) == 0) { // scale if ((r & 0x400) == 1) { // use Base S } else { if ((r & 0x800) == 1) { // consSX anim.m_scale[0] = ((float)getdword(reader.ReadBytes(4))) / 4096.0f; } else { } if ((r & 0x1000) == 1) {// consSY anim.m_scale[0] = ((float)getdword(reader.ReadBytes(4))) / 4096.0f; } else { } if ((r & 0x2000) == 1) {// consSZ anim.m_scale[0] = ((float)getdword(reader.ReadBytes(4))) / 4096.0f; } else { } } // } } animation[j] = anim; } } reader.Close(); //free(dataoffset); return animation; } static Int32 getdword(byte[] b) { Int32 v; v = b[0]; v |= b[1] << 8; v |= b[2] << 16; v |= b[3] << 24; return v; } static Int32 getword(byte[] b) { Int32 v; v = b[0]; v |= b[1] << 8; return v; } #endregion Methods } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/MTX44.cs ================================================ // 4x4 matrix class. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System; using System.Diagnostics; namespace LibNDSFormats.NSBMD { /// /// 4x4 matrix class. /// internal class MTX44 { #region Fields (1) /// /// Float values of matrix. /// private float[] _array = new float[4 * 4]; #endregion Fields #region Properties (2) // TODO: Index check! /// /// 2-dimensional index accessor. /// public float this[int x, int y] { get { return _array[x + y * 4]; } set { _array[x + y * 4] = value; } } public void SetValues(float[] array) { this._array = array; } /// /// Index accessor. /// public float this[int index] { get { return _array[index]; } set { _array[index] = value; } } #endregion Properties #region Methods (8) // Public Methods (7) /// /// Get float array. /// public float[] Floats { get { return _array; } } /// /// Clone this matrix. /// /// Clone of matrix. public MTX44 Clone() { var clone = new MTX44(); for (var i = 0; i < 4 * 4; ++i) { clone._array[i] = _array[i]; } return clone; } public void translate(float x, float y, float z) { MTX44 b = new MTX44(); b.LoadIdentity(); b[12] = x; b[13] = y; b[14] = z; MultMatrix(b).CopyValuesTo(this); } /// /// Load identity. /// public void LoadIdentity() { Zero(); this[0, 0] = this[1, 1] = this[2, 2] = this[3, 3] = 1.0f; } /// /// Multiplicate this matrix with another. /// /// Other matrix. /// Multiplication result. public MTX44 MultMatrix(MTX44 b) { MTX44 m = new MTX44(); MTX44 a = this; int i, j, k; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { m._array[(i << 2) + j] = 0.0f; for (k = 0; k < 4; k++) m._array[(i << 2) + j] += a._array[(k << 2) + j] * b._array[(i << 2) + k]; } } return m; } public static MTX44 mtx_Rotate(int pivot, int neg, float a, float b) { float[] data = new float[16]; data[15] = 1.0F; float one = 1.0F; float a2 = a; float b2 = b; switch (neg) { case 1: // '\001' case 3: // '\003' case 5: // '\005' case 7: // '\007' case 9: // '\t' case 11: // '\013' case 13: // '\r' case 15: // '\017' one = -1F; // fall through goto case 2; case 2: // '\002' case 4: // '\004' case 6: // '\006' case 8: // '\b' case 10: // '\n' case 12: // '\f' case 14: // '\016' default: switch (neg) { case 2: // '\002' case 3: // '\003' case 6: // '\006' case 7: // '\007' case 10: // '\n' case 11: // '\013' case 14: // '\016' case 15: // '\017' b2 = -b2; // fall through goto case 4; case 4: // '\004' case 5: // '\005' case 8: // '\b' case 9: // '\t' case 12: // '\f' case 13: // '\r' default: switch (neg) { case 4: // '\004' case 5: // '\005' case 6: // '\006' case 7: // '\007' case 12: // '\f' case 13: // '\r' case 14: // '\016' case 15: // '\017' a2 = -a2; // fall through goto case 8; case 8: // '\b' case 9: // '\t' case 10: // '\n' case 11: // '\013' default: switch (pivot) { case 0: // '\0' data[0] = one; data[5] = a; data[6] = b; data[9] = b2; data[10] = a2; break; case 1: // '\001' data[1] = one; data[4] = a; data[6] = b; data[8] = b2; data[10] = a2; break; case 2: // '\002' data[2] = one; data[4] = a; data[5] = b; data[8] = b2; data[9] = a2; break; case 3: // '\003' data[4] = one; data[1] = a; data[2] = b; data[9] = b2; data[10] = a2; break; case 4: // '\004' data[5] = one; data[0] = a; data[2] = b; data[8] = b2; data[10] = a2; break; case 5: // '\005' data[6] = one; data[0] = a; data[1] = b; data[8] = b2; data[9] = a2; break; case 6: // '\006' data[8] = one; data[1] = a; data[2] = b; data[5] = b2; data[6] = a2; break; case 7: // '\007' data[9] = one; data[0] = a; data[2] = b; data[4] = b2; data[6] = a2; break; case 8: // '\b' data[10] = one; data[0] = a; data[1] = b; data[4] = b2; data[5] = a2; break; case 9: // '\t' data[0] = -a; break; } break; } break; } break; } MTX44 matr = new MTX44(); matr._array = data; return matr; } /// /// Multiplicate this matrix with vector. /// /// Vector. /// Multiplication result. public float[] MultVector(float[] v) { /* MTX44 a = this; float[] dest = new float[3]; float x = v[0]; float y = v[1]; float z = v[2]; dest[0] = x*a[(0 << 2) + 0] + y*a[(1 << 2) + 0] + z*a[(2 << 2) + 0] + a[(3 << 2) + 0]; dest[1] = x*a[(0 << 2) + 1] + y*a[(1 << 2) + 1] + z*a[(2 << 2) + 1] + a[(3 << 2) + 1]; dest[2] = x*a[(0 << 2) + 2] + y*a[(1 << 2) + 2] + z*a[(2 << 2) + 2] + a[(3 << 2) + 2]; return dest;*/ float[] vtxTrans = new float[3]; for (int i = 0; i < 3; i++) { float c0 = v[0] * this[0 + i]; float c1 = v[1] * this[4 + i]; float c2 = v[2] * this[8 + i]; float c3 = this[12 + i]; vtxTrans[i] = c0 + c1 + c2 + c3; } return vtxTrans; } public MTX44() { this.LoadIdentity(); } /// /// Scale this matrix. /// /// X scale factor. /// Y scale factor. /// Z scale factor. public void Scale(float x, float y, float z) { MTX44 m = new MTX44(); m.LoadIdentity(); m[0] = x; m[5] = y; m[10] = z; this.MultMatrix(m).CopyValuesTo(this); } /// /// Fill matrix with zeroes. /// public void Zero() { for (int i = 0; i < 4 * 4; ++i) _array[i] = 0f; _array = new float[4 * 4]; } /// /// Copy values to another matrix. /// /// Other matrix. public void CopyValuesTo(MTX44 m) { for (int i = 0; i < 4 * 4; ++i) m._array[i] = this[i]; } #endregion Methods } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMD.cs ================================================ // NSBMD data definition. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using LibNDSFormats.NSBTX; using System.Drawing; namespace LibNDSFormats.NSBMD { // Class for storing NSBMD data. // Adapted from kiwi.ds NSBMD viewer. public class NSBMD { #region Constants public const uint NDS_TYPE_MDL0 = 0x304c444d; public const uint NDS_TYPE_TEX0 = 0x30584554; public const uint NDS_TYPE_BMD0 = 0x30444d42; public const ushort NDS_TYPE_BYTEORDER = 0xfeff; public const ushort NDS_TYPE_UNK2 = 0x0002; public const ushort NDS_TYPE_UNK1 = 0x0001; public const uint NDS_TYPE_BTX0 = 0x30585442; public const ushort HEADERSIZE = 16; #endregion Constants /// /// Models in NSBMD. /// public NSBMDModel[] models; /// /// Materials in NSBMD. /// public IEnumerable materials; /// /// NSBMD materials. /// public List Textures = new List(); /// /// NSBMD materials. /// public List Palettes = new List(); /// /// Match up model / NSBMD textures. /// public void MatchTextures() { foreach (NSBMDModel m in models) { for (int j = 0; j < m.Polygons.Count - 1; j++) { for (int t = 0; t < m.Textures.Count; t++) { if (m.Textures[t].texmatid.Contains((uint)m.Polygons[j].MatId)) { int texid = t; for (int l = 0; l < Textures.Count; l++) { if (Textures[l].texname == m.Textures[t].texname) { texid = l; break; } } NSBMDMaterial mat = m.Materials[m.Polygons[j].MatId]; NSBMDTexture tex = Textures[texid]; mat.spdata = tex.spdata; //RITORNA QUI mat.texdata = tex.texdata; mat.texname = tex.texname; mat.texoffset = tex.texoffset; mat.texsize = tex.texsize; mat.width = tex.width; mat.height = tex.height; mat.format = tex.format; mat.color0 = tex.color0; break; } } if (m.Materials[m.Polygons[j].MatId].format != 7) { for (int k = 0; k < m.Palettes.Count; k++) { if (m.Palettes[k].palmatid.Contains((uint)m.Polygons[j].MatId)) { int palid = k; for (int l = 0; l < Palettes.Count; l++) { if (Palettes[l].palname == m.Palettes[k].palname) { palid = l; break; } } NSBMDMaterial mat = m.Materials[m.Polygons[j].MatId]; NSBMDPalette pal = Palettes[palid]; mat.paldata = pal.paldata; mat.palname = pal.palname; mat.paloffset = pal.paloffset; mat.palsize = pal.palsize; break; } } } } } } /// /// Match up model / NSBMD textures. /// public void MatchTextures_org() { for (var i = 0; i < models.Length; i++) { for (var j = 0; j < models[i].Materials.Count; j++) { /*bool gottex = false; bool gotpal = false; foreach (var mat1 in materials) { if (j >= models[i].Materials.Count) continue; var mat2 = models[i].Materials[j]; // match texture if (!gottex && mat1.texname.Equals(mat2.texname)) { //Console.WriteLine("tex '{0}' matched.", mat2.texname); mat1.CopyTo(mat2); gottex = true; } // match palette if (mat2.format != 7 // NB. direct texture has no palette && !gotpal && (mat1.palname).Equals(mat2.palname)) { //Console.WriteLine("pal '{0}' matched.", mat1.palname); mat2.palname = mat1.palname; mat2.palsize = mat1.palsize; mat2.paldata = mat1.paldata; //mat1->palsize = 0; gotpal = true; } }*/ try { if (materials.ToArray()[models[i].tex_mat.IndexOf(j)].format != 0) { //Console.WriteLine("Texture {0}:", j.ToString()); //Console.WriteLine("Texture Name: '{0}'", models[i].Materials[j].texname); //Console.WriteLine("Palette Name: '{0}'", models[i].Materials[j].palname); string matname = models[i].Materials[j].MaterialName; models[i].Materials[j] = materials.ToArray()[models[i].tex_mat.IndexOf(j)].CopyTo(models[i].Materials[j]); models[i].Materials[j].MaterialName = matname; //if (models[i].Materials[j].format != 7) { models[i].Materials[j].paldata = materials.ToArray()[models[i].pal_mat.IndexOf(j)].paldata; models[i].Materials[j].palname = materials.ToArray()[models[i].pal_mat.IndexOf(j)].palname; models[i].Materials[j].palsize = materials.ToArray()[models[i].pal_mat.IndexOf(j)].palsize; //Console.WriteLine("Texture Name: '{0}'", models[i].Materials[j].texname); //Console.WriteLine("Palette Name: '{0}'", models[i].Materials[j].palname); } } } catch (Exception e) { } } } /*for (var i = 0; i < models.Length; i++) { for (var j = 0; j < models[i].Materials.Count; j++) { bool gottex = false; bool gotpal = false; foreach (var mat1 in materials) { if (j >= models[i].Materials.Count) continue; var mat2 = models[i].Materials[j]; // match texture if (!gottex && mat1.texname.Equals(mat2.texname)) { //Console.WriteLine("tex '{0}' matched.", mat2.texname); mat1.CopyTo(mat2); gottex = true; } for (int q = 0; q < materials.ToList().Count; q++) { if (mat2.format != 7 // NB. direct texture has no palette && !gotpal && materials.ToList()[q].palname.Contains(mat2.texname) && (mat1.palname).Equals(mat2.palname)) { //Console.WriteLine("pal '{0}' matched.", materials.ToArray()[q].palname); mat2.palname = materials.ToArray()[q].palname; mat2.palsize = materials.ToArray()[q].palsize; mat2.paldata = materials.ToArray()[q].paldata; //mat1->palsize = 0; gotpal = true; } }*/ /*// match palette if (mat2.format != 7 // NB. direct texture has no palette && !gotpal && (mat1.palname).Equals(mat2.palname)) { //Console.WriteLine("pal '{0}' matched.", mat1.palname); mat2.palname = mat1.palname; mat2.palsize = mat1.palsize; mat2.paldata = mat1.paldata; //mat1->palsize = 0; gotpal = true; }*/ // models[i].Materials[j] = mat2; } public void ClearTextures() { foreach (NSBMDModel m in models) { m.Materials.Clear(); } } /// /// Decode objects. /// public static bool DecodeCode(Stream stream, uint codeoffset, uint codelimit, NSBMDModel mod, int maxstack) { var reader = new BinaryReader(stream); //Console.WriteLine("DecodeCode"); UInt32 codeptr = codeoffset; bool begin = false; // whether there is a 0x0b begin code int count = 0; int stackID = -1; int polyStack = -1; int polystack2 = -1; int curjoint = -1; int matid = -1; int emptystack = maxstack - 1; stream.Seek(codeoffset, SeekOrigin.Begin); while (codeptr < codelimit) { int c = reader.ReadByte(); //Console.WriteLine(BitConverter.ToString(new byte[] { (byte)c }, 0, 1)); int d, e, f, g, h, i, j, k; switch (c) { //////////////////////////////////////////// // bone-definition related byte case 0x06: //NodeDesc[000] d = reader.ReadByte(); e = reader.ReadByte(); f = reader.ReadByte(); // dummy '0' // printf("DEBUG: %08x: 06: %02x --> %02x\n", codeptr, d, e); codeptr += 4; //curjoint = d; mod.Objects[d].ParentID = e; mod.Objects[d].StackID = stackID = polystack2 = emptystack = emptystack + 1;//stackID + 1;//-1; mod.Objects[d].RestoreID = -1; break; case 0x26: //NodeDesc[001] d = reader.ReadByte(); e = reader.ReadByte(); f = reader.ReadByte(); // dummy '0' g = reader.ReadByte(); // store stackID // printf("DEBUG: %08x: %02x: %02x --> %02x\n", codeptr, c, d, e); codeptr += 5; //curjoint = d; mod.Objects[d].ParentID = e; mod.Objects[d].StackID = stackID = polystack2 = g; mod.Objects[d].RestoreID = -1; break; case 0x46: // 4 bytes follow d = reader.ReadByte(); e = reader.ReadByte(); f = reader.ReadByte(); // dummy '0' g = reader.ReadByte(); // restore stackID // printf("DEBUG: %08x: %02x: %02x --> %02x\n", codeptr, c, d, e); codeptr += 5; //curjoint = d; mod.Objects[d].ParentID = e; mod.Objects[d].StackID = stackID = polystack2 = emptystack = emptystack + 1; //stackID + 1; mod.Objects[d].RestoreID = stackID = g; break; case 0x66: //NodeDesc[011] d = reader.ReadByte(); e = reader.ReadByte(); f = reader.ReadByte(); // dummy '0' g = reader.ReadByte(); // store stackID h = reader.ReadByte(); // restore stackID // printf("DEBUG: %08x: 66: %02x --> %02x\n", codeptr, d, e); codeptr += 6; //curjoint = d; mod.Objects[d].ParentID = e; mod.Objects[d].StackID = stackID = polystack2 = g; mod.Objects[d].RestoreID = h; break; //////////////////////////////////////////// // node's visibility case 0x02: //Node d = reader.ReadByte(); // node ID e = reader.ReadByte(); // 1 = visible, 0 = hide curjoint = d; //polystack2 = mod.Objects[d].StackID; mod.Objects[d].visible = e == 1; // printf( "DEBUG: %08x: %02x\n", codeptr, c ); codeptr += 3; break; //////////////////////////////////////////// // stackID for polygon case 0x03: //Mtx polyStack = reader.ReadByte(); codeptr += 2; break; //////////////////////////////////////////// // unknown case 0x07://NodeDesc_BB[000] d = reader.ReadByte(); mod.Objects[d].isBillboard = true; // printf( "DEBUG: %08x: %02x\n", codeptr, c ); codeptr += 2; break; case 0x08: d = reader.ReadByte(); mod.Objects[d].isBillboard = true; mod.Objects[d].isYBillboard = true; // printf( "DEBUG: %08x: %02x\n", codeptr, c ); codeptr += 2; break; case 0x09://NodeMix[000] Weight d = reader.ReadByte(); polyStack = d; e = reader.ReadByte(); codeptr += 2; for (int l = 0; l < e; l++) { int var0 = reader.ReadByte(); int var1 = reader.ReadByte(); int var2 = reader.ReadByte() & 0xff; codeptr += 3; } codeptr += 1; break; //////////////////////////////////////////// // look like BEGIN and END pair case 0x0b: // 0 byte follows if (begin) { //printf("DEBUG: %08x: previous 0x0b not ended.", codeptr); } begin = true; // printf( "DEBUG: %08x: %02x\n", codeptr, c ); codeptr++; break; case 0x2b: // 0 byte follows if (!begin) { //printf( "DEBUG: %08x: previous 0x0b already ended.", codeptr ); } begin = false; // printf( "DEBUG: %08x: %02x\n", codeptr, c ); codeptr++; break; //////////////////////////////////////////// case 0x04: //Mat[000] case 0x24: case 0x44: matid = reader.ReadByte(); codeptr += 2; count++; break; case 0x05://Shp d = reader.ReadByte(); mod.Polygons[d].MatId = matid; if (polyStack != -1) { mod.Polygons[d].StackID = polyStack; } else { mod.Polygons[d].StackID = polystack2; } mod.Polygons[d].JointID = curjoint; mod.Objects[curjoint].childs.Add(d); matid = -1; codeptr += 2; break; case 0x0C://EnvMap d = reader.ReadByte(); mod.Materials[d].isEnvironmentMap = true; codeptr += 2; break; //////////////////////////////////////////// case 0x01: //Ret // printf( "DEBUG: %08x: %02x\n", codeptr, c ); codeptr++; return true; case 0x00://padding //codeptr++; break; default: // TODO //printf( "DEBUG: %08x: decodecode: unknown code %02x.\n", codeptr, c ); //getchar(); return false; } } return false; } /// /// ReadMld0. /// private static NSBMDModel[] ReadMdl0(Stream stream, int blockoffset) { var reader = new EndianBinaryReader(stream, Endianness.LittleEndian); int blocksize; int blockptr; int blocklimit; byte num; uint r; List model = new List(); //////////////////////////////////////////////// // model blockptr = blockoffset + 4; // already read the ID, skip 4 bytes blocksize = reader.ReadInt32(); // block size blocklimit = blocksize + blockoffset; stream.Skip(1); // skip dummy '0' num = reader.ReadByte(); // no of model if (num <= 0) { throw new Exception(); } for (var i = 0; i < num; ++i) { model.Add(new NSBMDModel()); } var modelOffset = new UInt32[num]; stream.Skip(10 + 4 + (num * 4)); // skip [char xyz], useless, go straight to model data offset //////////////////////////////////////////////// // copy model dataoffset for (var i = 0; i < num; i++) { modelOffset[i] = (uint)(reader.ReadUInt32() + blockoffset); } //////////////////////////////////////////////// // copy model names for (var i = 0; i < num; i++) { model[i].Name = Utils.ReadNSBMDString(reader); } //////////////////////////////////////////////// // parse model data uint totalsize_base = reader.ReadUInt32(); uint codeoffset_base = reader.ReadUInt32(); uint texpaloffset_base = reader.ReadUInt32(); uint polyoffset_base = reader.ReadUInt32(); uint polyend_base = reader.ReadUInt32(); stream.Skip(4); uint matnum = reader.ReadByte(); // no. of material uint polynum = reader.ReadByte(); // no. of polygon byte laststack = reader.ReadByte(); byte unknown1m = reader.ReadByte(); float modelscale = (float)reader.ReadInt32() / 4096f; float boundscale = (float)reader.ReadInt32();// / 4096f; int vertexcount = reader.ReadInt16(); int surfacecount = reader.ReadInt16(); int trianglecount = reader.ReadInt16(); int quadcount = reader.ReadInt16(); model[0].laststackid = laststack; model[0].modelScale = modelscale; model[0].boundScale = boundscale; model[0].boundXmin = (float)NSBMDGlRenderer.Sign(reader.ReadInt16(), 16) / 4096f; model[0].boundYmin = (float)NSBMDGlRenderer.Sign(reader.ReadInt16(), 16) / 4096f; model[0].boundZmin = (float)NSBMDGlRenderer.Sign(reader.ReadInt16(), 16) / 4096f; model[0].boundXmax = (float)NSBMDGlRenderer.Sign(reader.ReadInt16(), 16) / 4096f; model[0].boundYmax = (float)NSBMDGlRenderer.Sign(reader.ReadInt16(), 16) / 4096f; model[0].boundZmax = (float)NSBMDGlRenderer.Sign(reader.ReadInt16(), 16) / 4096f; var polyOffsets = new UInt32[polynum]; var polyDataSize = new UInt32[polynum]; for (int i = 0; i < 1; i++) { var mod = model[i]; stream.Seek(modelOffset[i], SeekOrigin.Begin); uint codeoffset; UInt32 texpaloffset; UInt32 polyoffset; long texoffset; long paloffset; uint modoffset = modelOffset[i]; // the following variables are all offset values long totalsize = totalsize_base + modoffset; codeoffset = codeoffset_base + modoffset; // additional model data, bone definition etc., just follow NsbmdObject section texpaloffset = texpaloffset_base + modoffset; polyoffset = polyoffset_base + modoffset; long polyend = polyend_base + modoffset; stream.Skip(5 * 4 + 4 + 2 + 38); // go straight to NsbmdObject //////////////////////////////////////////////// // NsbmdObject section uint objnum; int objdatabase; uint[] objdataoffset; uint[] objdatasize; objdatabase = (int)stream.Position; stream.Skip(1); // skip dummy '0' objnum = reader.ReadByte(); // no of NsbmdObject stream.Skip(14 + (objnum * 4)); // skip bytes, go striaght to NsbmdObject data offset for (i = 0; i < objnum; ++i) { mod.Objects.Add(new NSBMDObject()); } objdataoffset = new uint[objnum]; objdatasize = new uint[objnum]; for (var j = 0; j < objnum; j++) { objdataoffset[j] = (uint)(reader.ReadUInt32() + objdatabase); } for (var j = 0; j < objnum - 1; j++) { objdatasize[j] = objdataoffset[j + 1] - objdataoffset[j]; } objdatasize[objnum - 1] = (uint)(codeoffset - objdataoffset[objnum - 1]); //////////////////////////////////////////////// // copy NsbmdObject names for (var j = 0; j < objnum; j++) { mod.Objects[j].Name = Utils.ReadNSBMDString(reader); // TO DEBUG Console.WriteLine(mod.Objects[j].Name); } //////////////////////////////////////////////// // parse NsbmdObject information for (var j = 0; j < objnum; j++) { if (objdatasize[j] <= 4) { continue; } stream.Seek(objdataoffset[j], SeekOrigin.Begin); ParseNsbmdObject(reader, mod.Objects[j], modelscale); } //////////////////////////////////////////////// // material section stream.Seek(texpaloffset, SeekOrigin.Begin); // now get the texture and palette offset texoffset = reader.ReadUInt16() + texpaloffset; paloffset = reader.ReadUInt16() + texpaloffset; // allocate memory for material for (int j = 0; j <= matnum; j++) {//i <= matnum; ++i mod.Materials.Add(new NSBMDMaterial()); } //////////////////////////////////////////////// // parse material definition // defines RotA material by pairing texture and palette stream.Seek(16 + (matnum * 4), SeekOrigin.Current); // go straight to material data offset for (var j = 0; j < matnum; j++) // TODO: BAD! { mod.Materials[j] = new NSBMDMaterial(); blockptr = (int)stream.Position; r = reader.ReadUInt32() + texpaloffset/* + 4 + 12*/;// skip 18 bytes (+ 2 bytes for texoffset, 2 bytes for paloffset) stream.Seek(r, SeekOrigin.Begin); //mod.Materials[j].repeat = reader.ReadByte(); //reader.BaseStream.Position -= 1; int dummy = reader.ReadInt16(); int sectionSize = reader.ReadInt16(); int unknown1 = reader.ReadInt32();//DifAmbColors int unknown2 = reader.ReadInt32();//SpeEmiColors int unknown3 = reader.ReadInt32();//PolyAttrib int constant2 = reader.ReadInt32();//PolyAttrib Mask int texVramOffset = reader.ReadInt16(); int texImageParam = reader.ReadInt16(); int constant3 = reader.ReadInt32();//texImageParam Mask int constant4 = reader.ReadInt32(); int matWidth = reader.ReadInt16(); int matHeight = reader.ReadInt16(); int unknown4 = reader.ReadInt16(); int unknown5 = reader.ReadInt16(); int unknown6 = reader.ReadInt32(); //int unknown7 = reader.ReadInt32();//if srt S Scale //int unknown8 = reader.ReadInt32();//if srt T Scale //int unknown9 = reader.ReadInt16();//if srt & 60 Rot //int unknownA = reader.ReadInt16();//if srt & 60 S Trans //int unknownB = reader.ReadInt16();//if srt & 60 T Trans //uint polyParam = reader.ReadUInt32(); //reader.ReadInt16(); //ushort texImageParam = reader.ReadUInt16(); mod.Materials[j].repeatS = texImageParam & 1; mod.Materials[j].repeatT = texImageParam >> 1 & 1; mod.Materials[j].flipS = texImageParam >> 2 & 1; mod.Materials[j].flipT = texImageParam >> 3 & 1; /*if ((texImageParam >> 14 & 0x03) == 1) { mod.Materials[j].scaleS = /*1 << /(texImageParam >> 12 & 2) + 1; mod.Materials[j].scaleT = /*1 << /(texImageParam >> 14 & 2) + 1; } else { mod.Materials[j].scaleS = 1; mod.Materials[j].scaleT = 1; }*/ switch (texImageParam >> 14 & 0x03) { case 0: mod.Materials[j].scaleS = 1; mod.Materials[j].scaleT = 1; mod.Materials[j].transS = 0; mod.Materials[j].transT = 0; break; case 1: { int sscale = (int)reader.ReadInt32();// >> 0 & 0xFFFFFFFF; sscale = NSBMDGlRenderer.Sign(sscale, 32); int tscale = (int)reader.ReadInt32();// >> 0 & 0xFFFFFFFF; tscale = NSBMDGlRenderer.Sign(tscale, 32); //int strans = (int)unknown2 >> 0 & 0xFFFF; //int ttrans = (int)unknown2 >> 16 & 0xFFFF; mod.Materials[j].scaleS = (float)sscale / 4096f; mod.Materials[j].scaleT = (float)tscale / 4096f; if (sectionSize >= 60) { mod.Materials[j].rot = (float)reader.ReadInt16() / 4096f; mod.Materials[j].transS = (float)reader.ReadInt16() / 4096f; mod.Materials[j].transT = (float)reader.ReadInt16() / 4096f; } else { } break; } case 2: case 3: mod.Materials[j].mtx = new float[16]; for (int k = 0; k < 16; k++) { mod.Materials[j].mtx[k] = reader.ReadInt32(); } break; default: break; // throw new Exception(String.Format("BMD: unsupported texture coord transform mode {0}", matgroup.m_TexParams >> 30)); } mod.Materials[j].width = matWidth; mod.Materials[j].height = matHeight; int width = 8 << (texImageParam >> 4 & 7); int height = 8 << (texImageParam >> 7 & 7); //int m_DifAmbColors = reader.ReadInt32(); //int m_SpeEmiColors = reader.ReadInt32(); mod.Materials[j].DiffuseColor = SM64DSe.Helper.BGR15ToColor((ushort)(unknown1 & 0x7FFF)); mod.Materials[j].AmbientColor = SM64DSe.Helper.BGR15ToColor((ushort)(unknown1 >> 16 & 0x7FFF)); mod.Materials[j].SpecularColor = SM64DSe.Helper.BGR15ToColor((ushort)(unknown2 & 0x7FFF)); mod.Materials[j].EmissionColor = SM64DSe.Helper.BGR15ToColor((ushort)(unknown2 >> 16 & 0x7FFF)); int a = (int)((unknown3 >> 16) & 31); mod.Materials[j].Alpha = a;//a * 2 + 1;//a * 2 + (a + 31) / 32; mod.Materials[j].PolyAttrib = (uint)unknown3; mod.Materials[j].diffuseColor = (unknown1 >> 15 & 1) == 1; mod.Materials[j].shine = (unknown2 >> 15 & 1) == 1; stream.Seek(blockptr + 4, SeekOrigin.Begin); } for (var j = 0; j < matnum; j++) { mod.Materials[j].MaterialName = Utils.ReadNSBMDString(reader); } //////////////////////////////////////////////// // now go to read the texture definition stream.Seek(texoffset, SeekOrigin.Begin); stream.Skip(1); // skip dummy '0' int texnum = reader.ReadByte(); Debug.Assert(texnum <= matnum); Console.WriteLine(String.Format("texnum: {0}", texnum)); if (texnum > 0) { stream.Seek(14 + (texnum * 4), SeekOrigin.Current); // go straight to data offsets for (var j = 0; j < texnum; j++) { Int32 flags = reader.ReadInt32(); int numPairs = flags >> 16 & 0xf; int dummy = flags >> 24 & 0xf; blockptr = (int)stream.Position; stream.Seek((flags & 0xffff) + texpaloffset, SeekOrigin.Begin); NSBMDTexture t = new NSBMDTexture(); for (int k = 0; k < numPairs; k++) { uint texmatid = reader.ReadByte(); mod.tex_mat.Add((int)texmatid); mod.Materials[j].texmatid.Add(texmatid); t.texmatid.Add(texmatid); } mod.Textures.Add(t); stream.Seek(blockptr, SeekOrigin.Begin); } for (var j = 0; j < texnum; j++) // copy texture names { NSBMDMaterial mat = mod.Materials[j]; mat.texname = Utils.ReadNSBMDString(reader); reader.BaseStream.Position -= 16; mod.Textures[j].texname = Utils.ReadNSBMDString(reader); Console.WriteLine("tex (matid={0}): {1}", mat.texmatid, mat.texname); } } //////////////////////////////////////////////// // now go to read the palette definition stream.Seek(paloffset, SeekOrigin.Begin); stream.Skip(1); // skip dummy '0' int palnum = reader.ReadByte(); // no of palette definition Debug.Assert(palnum <= matnum); // may not always hold? Console.WriteLine("DEBUG: palnum = {0}", palnum); if (palnum > 0) { stream.Seek(14 + (palnum * 4), SeekOrigin.Current); // go straight to data offsets for (var j = 0; j < palnum; j++) // matching palette with material { Int32 flags = reader.ReadInt32(); int numPairs = flags >> 16 & 0xf; int dummy = flags >> 24 & 0xf; blockptr = (int)stream.Position; stream.Seek((flags & 0xffff) + texpaloffset, SeekOrigin.Begin); NSBMDPalette t = new NSBMDPalette(); for (int k = 0; k < numPairs; k++) { uint texmatid = reader.ReadByte(); mod.tex_mat.Add((int)texmatid); mod.Materials[j].texmatid.Add(texmatid); t.palmatid.Add(texmatid); } mod.Palettes.Add(t); stream.Seek(blockptr, SeekOrigin.Begin); } for (var j = 0; j < palnum; j++) // copy palette names { int palmatid = (int)mod.Materials[j].palmatid; mod.Materials[palmatid].palname = Utils.ReadNSBMDString(reader); reader.BaseStream.Position -= 16; mod.Palettes[j].palname = Utils.ReadNSBMDString(reader); // TO DEBUG //Console.WriteLine("pal (matid={0}): {1}", palmatid, mod.Materials[palmatid].palname); } } //////////////////////////////////////////////// // Polygon stream.Seek(polyoffset, SeekOrigin.Begin); stream.Skip(1); // skip dummy '0' r = reader.ReadByte(); // no of polygon Console.WriteLine("DEBUG: polynum = {0}", polynum); for (var j = 0; j <= polynum; j++) { mod.Polygons.Add(new NSBMDPolygon()); } stream.Skip(14 + (polynum * 4)); // skip bytes, go straight to data offset for (var j = 0; j < polynum; j++) polyOffsets[j] = reader.ReadUInt32() + polyoffset; try { for (var j = 0; j < polynum; j++) // copy polygon names { mod.Polygons[j].Name = Utils.ReadNSBMDString(reader); //Console.WriteLine(mod.Polygons[j].Name); } } catch { } //////////////////////////////////////////////// // now go to the polygon data, there is RotA 16-byte-header before geometry commands for (var j = 0; j < polynum; j++) { var poly = mod.Polygons[j]; ////////////////////////////////////////////////////////// poly.MatId = -1; // DEFAULT: indicate no associated material ////////////////////////////////////////////////////////// //stream.Seek(polyOffsets[j] + 8, SeekOrigin.Begin); // skip 8 unknown bytes short dummy = reader.ReadInt16(); short headerSize = reader.ReadInt16(); int unknown2 = reader.ReadInt32(); polyOffsets[j] += reader.ReadUInt32(); polyDataSize[j] = reader.ReadUInt32(); //printf( "poly %2d '%-16s': dataoffset: %08x datasize %08x\n", j, poly->polyname, poly->dataoffset, poly->datasize ); } //} //////////////////////////////////////////////// // read the polygon data into memory for (var j = 0; j < polynum; j++) { var poly = mod.Polygons[j]; stream.Seek(polyOffsets[j], SeekOrigin.Begin); poly.PolyData = reader.ReadBytes((int)polyDataSize[j]); } //} //////////////////////////////////////////////// // decode the additional model data DecodeCode(stream, codeoffset, texpaloffset, mod, laststack); } //modelnum = num; return model.ToArray(); } public static float getFixed(int value, int sign, int var, int frac) { float fixe = value; if (sign == 1) { fixe = NSBMDGlRenderer.Sign(value, GetSizeOfObject(value)); } float divide = 1 << frac; fixe /= divide; return fixe; } public static int GetSizeOfObject(object obj) { if (obj is Int32) { return 32; } if (obj is Int16) { return 16; } if (obj is byte) { return 8; } return -1; } /// /// Parse single NSBMD object. /// private static void ParseNsbmdObject(EndianBinaryReader reader, NSBMDObject nsbmdObject, float modelscale) { ushort v = reader.ReadUInt16(); Int16 divide = reader.ReadInt16(); divide = (short)NSBMDGlRenderer.Sign(divide, 16); int unknown = v >> 12 & 0xf; nsbmdObject.StackID = unknown; //nsbmdObject.isBillboard = ((v >> 12 & 0xf) == 1?true:false); float[] s = NSBMDGlRenderer.loadIdentity(); float[] r = NSBMDGlRenderer.loadIdentity(); float[] t = NSBMDGlRenderer.loadIdentity(); if ((v & 1) == 0) { nsbmdObject.Trans = true; nsbmdObject.X = (float)reader.ReadInt32() / 4096f / modelscale;//(float)getdword(reader.ReadBytes(4)) / 4096f; //(float)(reader.ReadDouble() / 4096d);//.ReadUInt32() / 4096; nsbmdObject.Y = (float)reader.ReadInt32() / 4096f / modelscale;//(float)getdword(reader.ReadBytes(4)) / 4096f;//(float)(reader.ReadDouble() / 4096d); nsbmdObject.Z = (float)reader.ReadInt32() / 4096f / modelscale;//(float)getdword(reader.ReadBytes(4)) / 4096f;//(float)(reader.ReadDouble() / 4096d); t = NSBMDGlRenderer.Translate(t, nsbmdObject.X, nsbmdObject.Y, nsbmdObject.Z); } if ((v >> 3 & 0x1) == 0x1) { nsbmdObject.IsRotated = true; float a = reader.ReadInt16(); a = NSBMDGlRenderer.Sign((int)a, 16) / 4096f; float b = reader.ReadInt16(); b = NSBMDGlRenderer.Sign((int)b, 16) / 4096f; nsbmdObject.Pivot = (int)(v >> 4) & 0x0f; nsbmdObject.Neg = (int)(v >> 8) & 0x0f; nsbmdObject.RotA = a; nsbmdObject.RotB = b; nsbmdObject.rotate_mtx = mtxPivot(new float[] { nsbmdObject.RotA, nsbmdObject.RotB }, nsbmdObject.Pivot, nsbmdObject.Neg); r = NSBMDGlRenderer.multMatrix(r, nsbmdObject.rotate_mtx); } if ((v >> 1 & 1) == 0 && (v >> 3 & 1) == 0) { float[] a = new float[16]; a[0] = 1.0F; a[5] = 1.0F; a[10] = 1.0F; a[15] = 1.0F; float[] rotate = new float[8]; //msg = (new StringBuilder()).append(msg).append(" | R: ").toString(); for (int j = 0; j < rotate.Length; j++) { //dataParser _tmp4 = pa; int value = NSBMDGlRenderer.Sign(reader.ReadInt16(), 16); //dataParser.getSign(data, offset + 4 + j * 2 + jump, 2); rotate[j] = (float)value / 4096f; //msg = (new StringBuilder()).append(msg).append(pad(Integer.valueOf(value), 4)).toString(); //if(j + 1 < rotate.length) // msg = (new StringBuilder()).append(msg).append(", ").toString(); } a[0] = (float)divide / 4096f; a[1] = rotate[0]; a[2] = rotate[1]; a[4] = rotate[2]; a[5] = rotate[3]; a[6] = rotate[4]; a[8] = rotate[5]; a[9] = rotate[6]; a[10] = rotate[7]; nsbmdObject.rotate_mtx = a; nsbmdObject.IsRotated = true; r = NSBMDGlRenderer.multMatrix(r, nsbmdObject.rotate_mtx); } if ((v >> 2 & 1) == 0) { float[] scale = new float[3]; for (int j = 0; j < scale.Length; j++) { int value = reader.ReadInt32(); scale[j] = (float)value / 4096f; } nsbmdObject.scale = scale; nsbmdObject.IsScaled = true; s = NSBMDGlRenderer.scale(s, scale[0], scale[1], scale[2]); } nsbmdObject.materix = NSBMDGlRenderer.loadIdentity(); nsbmdObject.materix = NSBMDGlRenderer.multMatrix(nsbmdObject.materix, t); nsbmdObject.materix = NSBMDGlRenderer.multMatrix(nsbmdObject.materix, r); nsbmdObject.materix = NSBMDGlRenderer.multMatrix(nsbmdObject.materix, s); } public static float[] mtxPivot(float[] ab, int pv, int neg) { float[] data = new float[16]; data[15] = 1.0F; float one = 1.0F; float a = ab[0]; float b = ab[1]; float a2 = a; float b2 = b; switch (neg) { case 1: // '\001' case 3: // '\003' case 5: // '\005' case 7: // '\007' case 9: // '\t' case 11: // '\013' case 13: // '\r' case 15: // '\017' one = -1F; // fall through goto case 2; case 2: // '\002' case 4: // '\004' case 6: // '\006' case 8: // '\b' case 10: // '\n' case 12: // '\f' case 14: // '\016' default: switch (neg) { case 2: // '\002' case 3: // '\003' case 6: // '\006' case 7: // '\007' case 10: // '\n' case 11: // '\013' case 14: // '\016' case 15: // '\017' b2 = -b2; // fall through goto case 4; case 4: // '\004' case 5: // '\005' case 8: // '\b' case 9: // '\t' case 12: // '\f' case 13: // '\r' default: switch (neg) { case 4: // '\004' case 5: // '\005' case 6: // '\006' case 7: // '\007' case 12: // '\f' case 13: // '\r' case 14: // '\016' case 15: // '\017' a2 = -a2; // fall through goto case 8; case 8: // '\b' case 9: // '\t' case 10: // '\n' case 11: // '\013' default: switch (pv) { case 0: // '\0' data[0] = one; data[5] = a; data[6] = b; data[9] = b2; data[10] = a2; break; case 1: // '\001' data[1] = one; data[4] = a; data[6] = b; data[8] = b2; data[10] = a2; break; case 2: // '\002' data[2] = one; data[4] = a; data[5] = b; data[8] = b2; data[9] = a2; break; case 3: // '\003' data[4] = one; data[1] = a; data[2] = b; data[9] = b2; data[10] = a2; break; case 4: // '\004' data[5] = one; data[0] = a; data[2] = b; data[8] = b2; data[10] = a2; break; case 5: // '\005' data[6] = one; data[0] = a; data[1] = b; data[8] = b2; data[9] = a2; break; case 6: // '\006' data[8] = one; data[1] = a; data[2] = b; data[5] = b2; data[6] = a2; break; case 7: // '\007' data[9] = one; data[0] = a; data[2] = b; data[4] = b2; data[6] = a2; break; case 8: // '\b' data[10] = one; data[0] = a; data[1] = b; data[4] = b2; data[5] = a2; break; case 9: // '\t' data[0] = -a; break; } break; } break; } break; } return data; } static Int32 getdword(byte[] b) { Int32 v; v = b[0]; v |= b[1] << 8; v |= b[2] << 16; v |= b[3] << 24; return v; } static Int32 getword(byte[] b) { Int32 v; v = b[0]; v |= b[1] << 8; return v; } /// /// Generate NSBMD from stream. /// internal static NSBMD FromStream(Stream stream) { var result = new NSBMD(); var reader = new BinaryReader(stream); int tmp; tmp = reader.ReadInt32(); if (tmp != NDS_TYPE_BMD0) throw new Exception(); tmp = reader.ReadUInt16(); if (tmp != NDS_TYPE_BYTEORDER) throw new Exception(); tmp = reader.ReadUInt16(); if (tmp != NDS_TYPE_UNK2) throw new Exception(); int filesize = reader.ReadInt32(); if (filesize > stream.Length) throw new Exception(); int numblock = reader.ReadInt32(); numblock >>= 16; if (numblock == 0) { throw new Exception("DEBUG: no of block zero.\n"); } /////////////////////////////////////////////////////// // allocate memory for storing blockoffset int[] blockoffset = new int[numblock]; for (int i = 0; i < numblock; i++) { tmp = reader.ReadInt32(); blockoffset[i] = tmp; } /////////////////////////////////////////////////////// // now go to read the blocks for (int i = 0; i < numblock; i++) { stream.Position = blockoffset[i]; uint id = reader.ReadUInt32(); switch (id) { case NDS_TYPE_MDL0: result.models = ReadMdl0(stream, blockoffset[i]); break; case NDS_TYPE_TEX0: int palnum; int texnum; result.materials = NSBTXLoader.ReadTex0(stream, blockoffset[i], out texnum, out palnum, out result.Textures, out result.Palettes); break; default: throw new Exception("Unknown ID"); } } return result; } } /// /// Type for storing RGBA data in. /// public struct RGBA { #region Data Members (6) public byte A; public byte R; public byte G; public byte B; /// /// Transparent color. /// public static RGBA Transparent = new RGBA { R = 0xFF, A = 0x0 }; public static RGBA fromColor(System.Drawing.Color c) { RGBA a = new RGBA(); a.R = c.R; a.G = c.G; a.B = c.B; a.A = c.A; return a; } /// /// Index accessor. /// public byte this[int i] { get { switch (i) { case 0: return R; case 1: return G; case 2: return B; case 3: return A; default: throw new Exception(); } } set { switch (i) { case 0: R = value; break; case 1: G = value; break; case 2: B = value; break; case 3: A = value; break; default: throw new Exception(); } } } public Color ToColor() { return Color.FromArgb(A, R, G, B); } #endregion Data Members } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDAnimation.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LibNDSFormats.NSBMD { /// /// Type for NSBCA objects. /// public class NSBMDAnimation { public int dataoffset = 0; public int flag = 0; public float[] m_trans = new float[3]; public float a, b = 0; public float[] m_scale = new float[3]; public int frame = 0; public int framelen = 0; public List animdata = new List(); } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDGlRenderer.cs ================================================ // OpenGL Renderer for NSBMD models. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System; using System.Collections.Generic; using Tao.OpenGl; using System.IO; using System.Windows; using System.Windows.Media; using System.Windows.Media.Media3D; using OpenTK; using HelixToolkit; using MKDS_Course_Editor.Export3DTools; namespace LibNDSFormats.NSBMD { /// /// OpenGL renderer for NSBMD models. /// public class NSBMDGlRenderer { #region Fields (11) private bool writevertex = true; public List normals = new List(); public List vertex = new List(); List md = new List(); public static DependencyProperty matName = DependencyProperty.Register("MatName", typeof(string), typeof(DiffuseMaterial)); public static DependencyProperty polyName = DependencyProperty.Register("PolyName", typeof(string), typeof(DiffuseMaterial)); List matt = new List(); List mattt = new List(); public List vertex_normal = new List(); private static MTX44 CurrentMatrix; private static bool g_mat = true; private static string file; public static bool gOptColoring = true; private static bool gOptTexture = true; private static bool gOptWireFrame = false; private static MTX44[] MatrixStack = new MTX44[31]; private const float SCALE_IV = 4096.0f; private static int stackID; private int[] Tx; private int[] Ty; private int[] Tz; //private int[] T2; private int[] R; //private int[] R2; private int[] Sx; private int[] Sy; private int[] Sz; private int[] S2x; private int[] S2y; private int[] S2z; //private int[] S2; private int[] frame; private int[] nr; private int[] frame_; //private static int gCurrentPoly; private static int gCurrentVertex; private static bool gOptVertexMode; private int matstart; private static readonly String[] TEXTURE_FORMATS = new String[] { "", "A3I5", "4-Color", "16-Color", "256-Color", "4x4-Texel", "A5I3", "Direct Texture" }; #endregion Fields #region Constructors (1) public NSBMDGlRenderer() { this.matstart = 0; // Init matrix stack. for (int i = 0; i < MatrixStack.Length; ++i) MatrixStack[i] = new MTX44(); } /// /// Ctor. /// public NSBMDGlRenderer(int matstart) { this.matstart = matstart; // Init matrix stack. for (int i = 0; i < MatrixStack.Length; ++i) MatrixStack[i] = new MTX44(); } #endregion Constructors #region Methods (8) // Public Methods (1) /// /// Model to render. /// private NSBMDModel _model; /// /// Model to render. /// public NSBMDModel Model { get { return _model; } set { _model = value; try { MakeTexture(_model); } catch { } } } public enum RenderMode { Opaque = 1, Translucent, Picking } public static float[] Rotate(float[] a, float x, float y, float z) { float[] b = loadIdentity(); float cx = (float)Math.Cos(x); float sx = (float)Math.Sin(x); float cy = (float)Math.Cos(y); float sy = (float)Math.Sin(y); float cz = (float)Math.Cos(z); float sz = (float)Math.Sin(z); b[0] = cy * cz; b[1] = cy * sz; b[2] = -sy; b[4] = cz * sx * sy - sz * cx; b[5] = sx * sy + cx * cz; b[6] = sx * cy; b[8] = cx * cz * sy + sx * sz; b[9] = cx * sy * sz - sx * cz; b[10] = cx * cy; return multMatrix(a, b); } int lastselectedanim = -2; public void RenderModel(string file2, MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File ani, int[] aniframeS, int[] aniframeT, int[] aniframeScaleS, int[] aniframeScaleT, int[] aniframeR, MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File ca, bool anim, int selectedani, float X, float Y, float dist, float elev, float ang, MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File p, NSBMD nsb) { RenderModel(file2, ani, aniframeS, aniframeT, aniframeScaleS, aniframeScaleT, aniframeR, ca, anim, selectedani, X, Y, dist, elev, ang, true, p, nsb); } public void RenderModel(string file2, MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File ani, int[] aniframeS, int[] aniframeT, int[] aniframeScaleS, int[] aniframeScaleT, int[] aniframeR, MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File ca, bool anim, int selectedani, float X, float Y, float dist, float elev, float ang, bool licht, MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File p, NSBMD nsb) { if (lastselectedanim != selectedani && selectedani != -1) { Tx = new int[ca.JAC[selectedani].ObjInfo.Length]; Ty = new int[ca.JAC[selectedani].ObjInfo.Length]; Tz = new int[ca.JAC[selectedani].ObjInfo.Length]; R = new int[ca.JAC[selectedani].ObjInfo.Length]; Sx = new int[ca.JAC[selectedani].ObjInfo.Length]; Sy = new int[ca.JAC[selectedani].ObjInfo.Length]; Sz = new int[ca.JAC[selectedani].ObjInfo.Length]; S2x = new int[ca.JAC[selectedani].ObjInfo.Length]; S2y = new int[ca.JAC[selectedani].ObjInfo.Length]; S2z = new int[ca.JAC[selectedani].ObjInfo.Length]; lastselectedanim = selectedani; } if (frame is null && p.Header.file_size != 0) { frame = new int[p.MPT.names.Length]; frame_ = new int[p.MPT.names.Length]; nr = new int[p.MPT.names.Length]; } RenderModel(file2, ani, aniframeS, aniframeT, aniframeScaleS, aniframeScaleT, aniframeR, ca, RenderMode.Opaque, anim, anim, selectedani, X, Y, dist, elev, ang, licht, p, nsb); //anim, anim); RenderModel(file2, ani, aniframeS, aniframeT, aniframeScaleS, aniframeScaleT, aniframeR, ca, RenderMode.Translucent, false, anim, selectedani, X, Y, dist, elev, ang, licht, p, nsb); } //MTX44[] mt; /// /// Render model to OpenGL surface. /// public void RenderModel(string file2, MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File ani, int[] aniframeS, int[] aniframeT, int[] aniframeScaleS, int[] aniframeScaleT, int[] aniframeR, MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File ca, RenderMode r, bool anim, bool anim2, int selectedanim, float X, float Y, float dist, float elev, float ang, bool licht, MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File p, NSBMD nsb) { file = file2; int light = Gl.glIsEnabled(Gl.GL_LIGHTING); Gl.glDisable(Gl.GL_LIGHTING); Gl.glLineWidth(2.0F); if (light == 1) { Gl.glEnable(Gl.GL_LIGHTING); } Gl.glLineWidth(1.0F); //////////////////////////////////////////////////////////// // prepare the matrix stack for (var i = 0; i < Model.Objects.Count; i++) { var obj = Model.Objects[i]; var m_trans = obj.TransVect; if (obj.RestoreID != -1) { Gl.glLoadMatrixf(MatrixStack[obj.RestoreID].Floats); } if (obj.StackID != -1) { if (obj.Trans) { Gl.glTranslatef(m_trans[0], m_trans[1], m_trans[2]); } Gl.glGetFloatv(Gl.GL_MODELVIEW_MATRIX, MatrixStack[obj.StackID].Floats); stackID = obj.StackID; // save the last stackID } } Gl.glLoadIdentity(); //////////////////////////////////////////////////////////// // display one polygon of the current model at a time //Todo //////////////////////////////////////////////////////////// // display all polygons of the current model for (var i = 0; i < Model.Polygons.Count - 1; i++) { var poly = Model.Polygons[i]; if (gOptTexture && !gOptWireFrame && g_mat) { int matid = poly.MatId; if (matid == -1) { Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); if (writevertex) { mattt.Add(new ImageBrush()); } } else { if (writevertex) { mattt.Add(matt[matid]); } NSBMDMaterial mat = Model.Materials[matid]; if ((mat.format == 0 || (mat.format >= 2 && mat.format <= 5) || mat.format == 7) && r != RenderMode.Opaque) { continue; } if ((mat.format == 1 || mat.format == 6) && r == RenderMode.Translucent) { continue; } Gl.glBindTexture(Gl.GL_TEXTURE_2D, matid + 1 + matstart); // Convert pixel coords to normalised STs Gl.glMatrixMode(Gl.GL_TEXTURE); Gl.glLoadIdentity(); if (p.Header.file_size != 0 ) { List mptNames = new List(p.MPT.names); if (mptNames.Contains(mat.MaterialName)) { NSBMDMaterial mmm = mat; int texid = 0; for (int l = 0; l < nsb.Textures.Count; l++) { if (nsb.Textures[l].texname == p.AnimData[mptNames.IndexOf(mat.MaterialName)].KeyFrames[frame_[mptNames.IndexOf(mat.MaterialName)]].texName) { texid = l; break; } } mmm.spdata = nsb.Textures[texid].spdata; mmm.texdata = nsb.Textures[texid].texdata; mmm.texname = nsb.Textures[texid].texname; mmm.texoffset = nsb.Textures[texid].texoffset; mmm.texsize = nsb.Textures[texid].texsize; mmm.width = nsb.Textures[texid].width; mmm.height = nsb.Textures[texid].height; mmm.format = nsb.Textures[texid].format; mmm.color0 = nsb.Textures[texid].color0; int palid = 0; for (int l = 0; l < nsb.Textures.Count; l++) { if (nsb.Palettes[l].palname == p.AnimData[mptNames.IndexOf(mat.MaterialName)].KeyFrames[frame_[mptNames.IndexOf(mat.MaterialName)]].palName) { palid = l; break; } } mmm.paldata = nsb.Palettes[palid].paldata; mmm.palname = nsb.Palettes[palid].palname; mmm.paloffset = nsb.Palettes[palid].paloffset; mmm.palsize = nsb.Palettes[palid].palsize; MakeTexture(matid, mmm); if (anim2) { int index = mptNames.IndexOf(mat.MaterialName); if (nr[index] == Math.Round(p.MPT.infoBlock.Data[index].Unknown1 / 512f)) { nr[index] = 0; if (frame[index] == p.MPT.NoFrames - 1) { frame[index] = 0; frame_[index] = 0; } else { frame[index]++; if (p.AnimData[index].KeyFrames.Length != frame_[index] + 1) { if (frame[index] == p.AnimData[index].KeyFrames[frame_[index] + 1].Start) { frame_[index]++; } } } } else { nr[index]++;//= (float)p.MPT.infoBlock.Data[index].Unknown1 / 4096f; } } } } try { if (ani.Header.file_size != 0 && new List(ani.MAT.names).Contains(mat.MaterialName)) { int index = new List(ani.MAT.names).IndexOf(mat.MaterialName); Gl.glScaled((double)ani.SRTData[index].scaleS[aniframeScaleS[index]], (double)ani.SRTData[index].scaleT[aniframeScaleT[index]], 1); Gl.glRotated((double)ani.SRTData[index].rotate[aniframeR[index]], 1, 0, 0); Gl.glTranslated((double)ani.SRTData[index].translateS[aniframeS[index]], (double)ani.SRTData[index].translateT[aniframeT[index]], 0); if (anim2) { if (aniframeS[index] == ani.SRTData[index].translateS.Length - 1) { aniframeS[index] = 0; } else { aniframeS[index]++; } if (aniframeT[index] == ani.SRTData[index].translateT.Length - 1) { aniframeT[index] = 0; } else { aniframeT[index]++; } if (aniframeR[index] == (ani.SRTData[index].rotate.Length - 2) / 2) { aniframeR[index] = 0; } else { aniframeR[index]++; } if (aniframeScaleS[index] == ani.SRTData[index].scaleS.Length - 1) { aniframeScaleS[index] = 0; } else { aniframeScaleS[index]++; } if (aniframeScaleT[index] == ani.SRTData[index].scaleT.Length - 1) { aniframeScaleT[index] = 0; } else { aniframeScaleT[index]++; } } if (!mat.isEnvironmentMap) { Gl.glScalef(1.0f / mat.width, 1.0f / mat.height, 1.0f); } } else { if (!mat.isEnvironmentMap) { if (mat.mtx is null) { Gl.glScalef(mat.scaleS / mat.width, mat.scaleT / mat.height, 1.0f); Gl.glRotatef(mat.rot, 0, 1, 0); Gl.glTranslatef(mat.transS, mat.transT, 0); } else { Gl.glScalef(1.0f / mat.width, 1.0f / mat.height, 1.0f); Gl.glMultMatrixf(mat.mtx); } } } } catch { } Gl.glEnable(Gl.GL_ALPHA_TEST); Gl.glAlphaFunc(Gl.GL_GREATER, 0f); Gl.glColor4f(0xff, 0xff, 0xff, 0xff); if (licht && (((mat.PolyAttrib >> 0) & 0x1) == 0 && ((mat.PolyAttrib >> 1) & 0x1) == 0 && ((mat.PolyAttrib >> 2) & 0x1) == 0 && ((mat.PolyAttrib >> 3) & 0x1) == 0) == false) { //Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_DIFFUSE, new float[] { (float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_AMBIENT, new float[] { (float)mat.AmbientColor.R / 255f, (float)mat.AmbientColor.G / 255f, (float)mat.AmbientColor.B / 255f, (float)mat.AmbientColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_SPECULAR, new float[] { (float)mat.SpecularColor.R / 255f, (float)mat.SpecularColor.G / 255f, (float)mat.SpecularColor.B / 255f, (float)mat.SpecularColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_EMISSION, new float[] { (float)mat.EmissionColor.R / 255f, (float)mat.EmissionColor.G / 255f, (float)mat.EmissionColor.B / 255f, (float)mat.EmissionColor.A / 255f }); //Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_DIFFUSE, new float[] { (float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_AMBIENT, new float[] { (float)mat.AmbientColor.R / 255f, (float)mat.AmbientColor.G / 255f, (float)mat.AmbientColor.B / 255f, (float)mat.AmbientColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_SPECULAR, new float[] { (float)mat.SpecularColor.R / 255f, (float)mat.SpecularColor.G / 255f, (float)mat.SpecularColor.B / 255f, (float)mat.SpecularColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_EMISSION, new float[] { (float)mat.EmissionColor.R / 255f, (float)mat.EmissionColor.G / 255f, (float)mat.EmissionColor.B / 255f, (float)mat.EmissionColor.A / 255f }); //Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_POSITION, new float[] { 1.0f, 1.0f, 1.0f, 0 }); Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_DIFFUSE, new float[] { (float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_AMBIENT, new float[] { (float)mat.AmbientColor.R / 255f, (float)mat.AmbientColor.G / 255f, (float)mat.AmbientColor.B / 255f, (float)mat.AmbientColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_SPECULAR, new float[] { (float)mat.SpecularColor.R / 255f, (float)mat.SpecularColor.G / 255f, (float)mat.SpecularColor.B / 255f, (float)mat.SpecularColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_EMISSION, new float[] { (float)mat.EmissionColor.R / 255f, (float)mat.EmissionColor.G / 255f, (float)mat.EmissionColor.B / 255f, (float)mat.EmissionColor.A / 255f }); //Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_POSITION, new float[] { 1.0f, 1.0f, 1.0f, 0 }); Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_DIFFUSE, new float[] { (float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_AMBIENT, new float[] { (float)mat.AmbientColor.R / 255f, (float)mat.AmbientColor.G / 255f, (float)mat.AmbientColor.B / 255f, (float)mat.AmbientColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_SPECULAR, new float[] { (float)mat.SpecularColor.R / 255f, (float)mat.SpecularColor.G / 255f, (float)mat.SpecularColor.B / 255f, (float)mat.SpecularColor.A / 255f }); Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_EMISSION, new float[] { (float)mat.EmissionColor.R / 255f, (float)mat.EmissionColor.G / 255f, (float)mat.EmissionColor.B / 255f, (float)mat.EmissionColor.A / 255f }); Gl.glEnable(Gl.GL_LIGHTING); if (((mat.PolyAttrib >> 0) & 0x1) == 1) { Gl.glEnable(Gl.GL_LIGHT0); } else { Gl.glDisable(Gl.GL_LIGHT0); } if (((mat.PolyAttrib >> 1) & 0x1) == 1) { Gl.glEnable(Gl.GL_LIGHT1); } else { Gl.glDisable(Gl.GL_LIGHT1); } if (((mat.PolyAttrib >> 2) & 0x1) == 1) { Gl.glEnable(Gl.GL_LIGHT2); } else { Gl.glDisable(Gl.GL_LIGHT2); } if (((mat.PolyAttrib >> 3) & 0x1) == 1) { Gl.glEnable(Gl.GL_LIGHT3); } else { Gl.glDisable(Gl.GL_LIGHT3); } if (mat.diffuseColor) { Gl.glColor4f((float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f); } } else { Gl.glDisable(Gl.GL_LIGHTING); Gl.glDisable(Gl.GL_LIGHT0); Gl.glDisable(Gl.GL_LIGHT1); Gl.glDisable(Gl.GL_LIGHT2); Gl.glDisable(Gl.GL_LIGHT3); if (mat.diffuseColor) { Gl.glColor4f((float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f); } } Gl.glEnable(Gl.GL_BLEND); if (mat.isEnvironmentMap) { Gl.glTexGeni(Gl.GL_S, Gl.GL_TEXTURE_GEN_MODE, Gl.GL_SPHERE_MAP); Gl.glTexGeni(Gl.GL_T, Gl.GL_TEXTURE_GEN_MODE, Gl.GL_SPHERE_MAP); Gl.glEnable(Gl.GL_TEXTURE_GEN_S); Gl.glEnable(Gl.GL_TEXTURE_GEN_T); } else { Gl.glDisable(Gl.GL_TEXTURE_GEN_S); Gl.glDisable(Gl.GL_TEXTURE_GEN_T); Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA); } int mode = -1; switch ((mat.PolyAttrib >> 4) & 0x3) { case 0: mode = Gl.GL_MODULATE; break; case 1: mode = Gl.GL_DECAL; break; case 2: mode = Gl.GL_MODULATE; break; case 3: mode = Gl.GL_MODULATE; break; } Gl.glTexEnvi(Gl.GL_TEXTURE_ENV, Gl.GL_TEXTURE_ENV_MODE, mode); int cullmode = -1; switch (mat.PolyAttrib >> 6 & 0x03) { case 0x03: cullmode = Gl.GL_NONE; break; case 0x02: cullmode = Gl.GL_BACK; break; case 0x01: cullmode = Gl.GL_FRONT; break; case 0x00: cullmode = Gl.GL_FRONT_AND_BACK; break; } Gl.glCullFace(cullmode); } } else { Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); } if (!gOptColoring) { Gl.glColor3f(1, 1, 1); } stackID = poly.StackID; // the first matrix used by this polygon try { Process3DCommand(poly.PolyData, Model.Materials[poly.MatId], poly.JointID, true); } catch { Console.WriteLine($"Invalid MatID {poly.MatId}! Could not read model [file: {file}]"); return; } } writevertex = false; } /// /// Render model to OpenGL surface. /// public void RenderModel(float elev, float ang) { MTX44 tmp = new MTX44(); for (var j = 0; j < Model.Polygons.Count - 1; j++) { var poly = Model.Polygons[j]; int matid = poly.MatId; var mat = Model.Materials[matid]; } Gl.glLineWidth(2.0F); float xmin = Model.boundXmin; float ymin = Model.boundYmin; float zmin = Model.boundZmin; float xmax = Model.boundXmax + Model.boundXmin; float ymax = Model.boundYmax + Model.boundYmin; float zmax = -Model.boundZmax + Model.boundZmin; Gl.glLineWidth(1.0F); //////////////////////////////////////////////////////////// // prepare the matrix stack for (var i = 0; i < Model.Objects.Count; i++) { var obj = Model.Objects[i]; var m_trans = obj.TransVect; float[] f = loadIdentity(); if (obj.RestoreID != -1) { Gl.glLoadMatrixf(MatrixStack[obj.RestoreID].Floats); } if (obj.StackID != -1) { Gl.glMultMatrixf(obj.materix); if (obj.isBillboard) { if (!obj.isYBillboard) { Gl.glRotatef(elev, 1, 0, 0); } Gl.glRotatef(-ang, 0, 1, 0); } Gl.glGetFloatv(Gl.GL_MODELVIEW_MATRIX, MatrixStack[obj.StackID].Floats); stackID = obj.StackID; // save the last stackID } else { } if (obj.visible) { //light = Gl.glIsEnabled(Gl.GL_LIGHTING); //Gl.glDisable(Gl.GL_LIGHTING); //drawJoint(0.1f); //if (light == 1) //{ // Gl.glEnable(Gl.GL_LIGHTING); //} } } Gl.glLoadIdentity(); Gl.glLoadIdentity(); // display all polygons of the current model for (var i = 0; i < Model.Polygons.Count - 1; i++) { var poly = Model.Polygons[i]; if (gOptTexture && !gOptWireFrame && g_mat) { int matid = poly.MatId; if (matid == -1) { Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); if (writevertex) { mattt.Add(new ImageBrush()); } } else { if (writevertex) { mattt.Add(matt[matid]); } var mat = Model.Materials[matid]; Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); // Convert pixel coords to normalised STs Gl.glMatrixMode(Gl.GL_TEXTURE); Gl.glLoadIdentity(); //scale if (!mat.isEnvironmentMap) { Gl.glScalef((float)mat.scaleS / ((float)mat.width), (float)mat.scaleT / ((float)mat.height), 1.0f); } //end //Gl.glColor4f(1, 1, 0, 0); Gl.glEnable(Gl.GL_ALPHA_TEST); Gl.glAlphaFunc(Gl.GL_GREATER, 0f); if (((mat.PolyAttrib >> 0xf) & 0x1) == 1 && (((mat.PolyAttrib >> 0) & 0x1) == 0 && ((mat.PolyAttrib >> 1) & 0x1) == 0 && ((mat.PolyAttrib >> 2) & 0x1) == 0 && ((mat.PolyAttrib >> 2) & 0x1) == 0) == false) { Gl.glEnable(Gl.GL_LIGHTING); if (((mat.PolyAttrib >> 0) & 0x1) == 1){ Gl.glEnable(Gl.GL_LIGHT0); } else Gl.glDisable(Gl.GL_LIGHT0); if (((mat.PolyAttrib >> 1) & 0x1) == 1){ Gl.glEnable(Gl.GL_LIGHT1); } else Gl.glDisable(Gl.GL_LIGHT1); if (((mat.PolyAttrib >> 2) & 0x1) == 1){ Gl.glEnable(Gl.GL_LIGHT2); } else Gl.glDisable(Gl.GL_LIGHT2); if (((mat.PolyAttrib >> 3) & 0x1) == 1){ Gl.glEnable(Gl.GL_LIGHT3); } else Gl.glDisable(Gl.GL_LIGHT3); Gl.glColorMaterial(Gl.GL_FRONT_AND_BACK, Gl.GL_DIFFUSE); Gl.glColor4f((float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f); Gl.glColorMaterial(Gl.GL_FRONT_AND_BACK, Gl.GL_AMBIENT); Gl.glColor4f((float)mat.AmbientColor.R / 255f, (float)mat.AmbientColor.G / 255f, (float)mat.AmbientColor.B / 255f, (float)mat.AmbientColor.A / 255f); Gl.glColorMaterial(Gl.GL_FRONT_AND_BACK, Gl.GL_SPECULAR); Gl.glColor4f((float)mat.SpecularColor.R / 255f, (float)mat.SpecularColor.G / 255f, (float)mat.SpecularColor.B / 255f, (float)mat.SpecularColor.A / 255f); Gl.glColorMaterial(Gl.GL_FRONT_AND_BACK, Gl.GL_EMISSION); Gl.glColor4f((float)mat.EmissionColor.R / 255f, (float)mat.EmissionColor.G / 255f, (float)mat.EmissionColor.B / 255f, (float)mat.EmissionColor.A / 255f); Gl.glEnable(Gl.GL_COLOR_MATERIAL); } else { Gl.glDisable(Gl.GL_LIGHTING); Gl.glColorMaterial(Gl.GL_FRONT_AND_BACK, Gl.GL_DIFFUSE); Gl.glColor4f((float)mat.DiffuseColor.R / 255f, (float)mat.DiffuseColor.G / 255f, (float)mat.DiffuseColor.B / 255f, (float)mat.DiffuseColor.A / 255f); Gl.glEnable(Gl.GL_COLOR_MATERIAL); } Gl.glEnable(Gl.GL_BLEND); if (mat.isEnvironmentMap) { Gl.glTexGeni(Gl.GL_S, Gl.GL_TEXTURE_GEN_MODE, Gl.GL_SPHERE_MAP); Gl.glTexGeni(Gl.GL_T, Gl.GL_TEXTURE_GEN_MODE, Gl.GL_SPHERE_MAP); Gl.glEnable(Gl.GL_TEXTURE_GEN_S); Gl.glEnable(Gl.GL_TEXTURE_GEN_T); //Gl.glBlendFunc(Gl.GL_ONE, Gl.GL_ONE); } else { Gl.glDisable(Gl.GL_TEXTURE_GEN_S); Gl.glDisable(Gl.GL_TEXTURE_GEN_T); Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA); } int mode = -1; switch ((mat.PolyAttrib >> 4) & 0x3) { case 0: mode = Gl.GL_MODULATE; break; case 1: mode = Gl.GL_DECAL; break; case 2: mode = Gl.GL_MODULATE; break; case 3: mode = Gl.GL_MODULATE; break; } Gl.glTexEnvi(Gl.GL_TEXTURE_ENV, Gl.GL_TEXTURE_ENV_MODE, mode); int cullmode = -1; //Gl.glEnable(Gl.GL_CULL_FACE); switch (mat.PolyAttrib >> 6 & 0x03) { case 0x03: cullmode = Gl.GL_NONE; break; case 0x02: cullmode = Gl.GL_BACK; break; case 0x01: cullmode = Gl.GL_FRONT; break; case 0x00: cullmode = Gl.GL_FRONT_AND_BACK; break; } Gl.glCullFace(cullmode); } } else { Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); } if (!gOptColoring) { //Gl.glColor3f(1, 1, 1); } stackID = poly.StackID; // the first matrix used by this polygon Process3DCommand(poly.PolyData, Model.Materials[poly.MatId], poly.JointID, false); } writevertex = false; } public bool DoJointAnimation(MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File ca, int selectedanim, bool anim, int i) { try { if (ca.Header.file_size != 0 && selectedanim != -1) { float[] s = loadIdentity(); float[] r = loadIdentity(); float[] t = loadIdentity(); //float[] mt = loadIdentity(); //scale float scalex = float.NaN; float scaley = float.NaN; float scalez = float.NaN; if (ca.JAC[selectedanim].ObjInfo[i].scale[0][0].Count != 0) { scalex = ca.JAC[selectedanim].ObjInfo[i].scale[0][0][0];// + ca.JAC[selectedanim].ObjInfo[i].scale[0][1][0]) / 2;// - ca.JAC[selectedanim].ObjInfo[i].scale[0][1][S2x[i]];//ca.JAC[selectedanim].ObjInfo[i].scale[0][0][S2x[i]]; } else if (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][0].Count != 0) { scalex = ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][0][Sx[i]];// -ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][1][Sx[i]]; } if (ca.JAC[selectedanim].ObjInfo[i].scale[1][0].Count != 0) { scaley = ca.JAC[selectedanim].ObjInfo[i].scale[1][0][0];// + ca.JAC[selectedanim].ObjInfo[i].scale[1][1][0]) / 2;// -ca.JAC[selectedanim].ObjInfo[i].scale[1][1][S2y[i]];//ca.JAC[selectedanim].ObjInfo[i].scale[1][0][S2y[i]]; } else if (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][0].Count != 0) { scaley = ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][0][Sy[i]];// -ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][1][Sy[i]]; } if (ca.JAC[selectedanim].ObjInfo[i].scale[2][0].Count != 0) { scalez = ca.JAC[selectedanim].ObjInfo[i].scale[2][0][0];// + ca.JAC[selectedanim].ObjInfo[i].scale[2][1][0]) / 2;// -ca.JAC[selectedanim].ObjInfo[i].scale[2][1][S2z[i]];//ca.JAC[selectedanim].ObjInfo[i].scale[2][0][S2z[i]]; } else if (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][0].Count != 0) { scalez = ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][0][Sz[i]];// -ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][1][Sz[i]]; } if (!float.IsNaN(scalex) && !float.IsNaN(scaley) && !float.IsNaN(scalez)) { s = scale(s, scalex, scaley, scalez); } else { //s = scale(s, Model.Objects[i].scale[0], Model.Objects[i].scale[1], Model.Objects[i].scale[2]); } /*if(ca.JAC[selectedanim].ObjInfo[i].scale[0][0].Count != 0) { //mt = scale(mt, ca.JAC[0].ObjInfo[i].scale[0][0][S2[i]], ca.JAC[0].ObjInfo[i].scale[0][1][S2[i]], ca.JAC[0].ObjInfo[i].scale[0][2][S2[i]]); s = scale(s, ca.JAC[selectedanim].ObjInfo[i].scale[0][0][S2[i]], ca.JAC[selectedanim].ObjInfo[i].scale[1][0][S2[i]], ca.JAC[selectedanim].ObjInfo[i].scale[2][0][S2[i]]); //Gl.glScalef(ca.JAC[selectedanim].ObjInfo[i].scale[0][0][S2[i]], ca.JAC[selectedanim].ObjInfo[i].scale[1][0][S2[i]], ca.JAC[selectedanim].ObjInfo[i].scale[2][0][S2[i]]); }*/ try { if (ca.JAC[selectedanim].ObjInfo[i].rotate.Count != 0) { if ((((int)ca.JAC[selectedanim].ObjInfo[i].rotate[0]) >> 15 & 0x1) == 1) { int pvneg = ca.JAC[selectedanim].JointData[(((int)ca.JAC[selectedanim].ObjInfo[i].rotate[0]) & 0x7fff) * 6];//Utils.Read2BytesAsInt16(ca.JAC[selectedanim].JointData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 6 + 0); int a = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].JointData, (((int)ca.JAC[selectedanim].ObjInfo[i].rotate[0]) & 0x7fff) * 6 + 2); int b = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].JointData, (((int)ca.JAC[selectedanim].ObjInfo[i].rotate[0]) & 0x7fff) * 6 + 4); a = Sign(a, 16); b = Sign(b, 16); //mt = multMatrix(mt, Nsbmd.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f))); //Gl.glMultMatrixf(Nsbmd.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f))); r = NSBMD.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f));//multMatrix(r, Nsbmd.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f))); } else { int x = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].RotationData, (((int)ca.JAC[selectedanim].ObjInfo[i].rotate[0]) & 0x7fff) * 10 + 2); x = Sign(x, 16); int y = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].RotationData, (((int)ca.JAC[selectedanim].ObjInfo[i].rotate[0]) & 0x7fff) * 10 + 4); y = Sign(y, 16); int z = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].RotationData, (((int)ca.JAC[selectedanim].ObjInfo[i].rotate[0]) & 0x7fff) * 10 + 6); z = Sign(z, 16); OpenTK.Matrix4 X = OpenTK.Matrix4.CreateRotationX((float)x / 131072F);//((float)x * (float)Math.PI) / 32768F); OpenTK.Matrix4 Y = OpenTK.Matrix4.CreateRotationY((float)y / 131072F);//((float)y * (float)Math.PI) / 32768F); OpenTK.Matrix4 Z = OpenTK.Matrix4.CreateRotationZ((float)z / 131072F);//((float)z * (float)Math.PI) / 32768F); OpenTK.Matrix4 full = OpenTK.Matrix4.Identity; full = OpenTK.Matrix4.Mult(full, X); full = OpenTK.Matrix4.Mult(full, Y); full = OpenTK.Matrix4.Mult(full, Z); } } else if (ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0].Count != 0) { //Gl.glMultMatrixf(Nsbmd.mtxPivot(new float[]{ca.JAC[0].ObjInfo[i].rotate_keyframes[1][R[i]],ca.JAC[0].ObjInfo[i].rotate_keyframes[0][R[i]]}, obj.Pivot, obj.Neg)); //Gl.glRotatef(ca.JAC[0].ObjInfo[i].rotate_keyframes[0][R[i]], 0,(ca.JAC[0].ObjInfo[i].rotate_keyframes[1][R[i]] == 1 ? 1 : 0),(ca.JAC[0].ObjInfo[i].rotate_keyframes[1][R[i]] == 0 ? 1 : 0)); if (ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[1][R[i]] == 1) { int pvneg = ca.JAC[selectedanim].JointData[(int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 6];//Utils.Read2BytesAsInt16(ca.JAC[selectedanim].JointData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 6 + 0); int a = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].JointData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 6 + 2); int b = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].JointData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 6 + 4); a = Sign(a, 16); b = Sign(b, 16); //mt = multMatrix(mt, Nsbmd.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f))); //Gl.glMultMatrixf(Nsbmd.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f))); r = NSBMD.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f));//multMatrix(r, Nsbmd.mtxPivot(new float[] { (float)a / 4096f, (float)b / 4096f }, (pvneg >> 0 & 0x0f), (pvneg >> 4 & 0x0f))); } else { float param = ca.JAC[selectedanim].RotationData[(int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 10]; //float u = (float)Math.Pow(2.0f, param) * (float)180 / 131072F; int x = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].RotationData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 10 + 2); x = Sign(x, 16); int y = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].RotationData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 10 + 4); y = Sign(y, 16); int z = Utils.Read2BytesAsInt16(ca.JAC[selectedanim].RotationData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 10 + 6); z = Sign(z, 16); OpenTK.Matrix4 X = OpenTK.Matrix4.CreateRotationX((float)x / 131072F);//((float)x * (float)Math.PI) / 32768F); OpenTK.Matrix4 Y = OpenTK.Matrix4.CreateRotationY((float)y / 131072F);//((float)y * (float)Math.PI) / 32768F); OpenTK.Matrix4 Z = OpenTK.Matrix4.CreateRotationZ((float)z / 131072F);//((float)z * (float)Math.PI) / 32768F); OpenTK.Matrix4 full = OpenTK.Matrix4.Identity; full = OpenTK.Matrix4.Mult(full, X); full = OpenTK.Matrix4.Mult(full, Y); full = OpenTK.Matrix4.Mult(full, Z); /*int x = (param) & 0xFF; if ((x & 0x200) != 0){ x |= -256; } int y = (param >> 8) & 0xFF; if ((y & 0x200) != 0){ y |= -256; } int z = (param >> 16) & 0xFF; if ((z & 0x200) != 0){ z |= -256; }*/ //Gl.glRotatef((float)x / 32768F * 180F, 1, 0, 0); //Gl.glRotatef((float)y / 32768F * 180F, 0, 1, 0); //Gl.glRotatef((float)z / 32768F * 180F, 0, 0, 1); //param /= 4096f; //float un = 2048f;//(float)Utils.Read4BytesAsInt32(ca.JAC[selectedanim].RotationData, (int)ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0][R[i]] * 10 + 6) / 4096f; //Gl.glRotatef(x / un, 1, 0, 0);//((float)x * (float)Math.PI) / 180f, 1, 0, 0); //Gl.glRotatef(y / un, 0, 1, 0);//((float)y * (float)Math.PI) / 180f, 0, 1, 0); //Gl.glRotatef(z / un, 0, 0, 1);//((float)z * (float)Math.PI) / 180f, 0, 0, 1); //mt = rotate(mt, x, y, z); //Gl.glMultMatrixf(full.ToFloat()); } } else { //r = multMatrix(r, Model.Objects[i].rotate_mtx); } } catch { } float transx = float.NaN; float transy = float.NaN; float transz = float.NaN; if (ca.JAC[selectedanim].ObjInfo[i].translate[0].Count != 0) { transx = ca.JAC[selectedanim].ObjInfo[i].translate[0][0];// Model.modelScale; } else if (ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[0].Count != 0) { transx = ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[0][Tx[i]];// Model.modelScale; } if (ca.JAC[selectedanim].ObjInfo[i].translate[1].Count != 0) { transy = ca.JAC[selectedanim].ObjInfo[i].translate[1][0];// Model.modelScale; } else if (ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[1].Count != 0) { transy = ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[1][Ty[i]];// Model.modelScale; } if (ca.JAC[selectedanim].ObjInfo[i].translate[2].Count != 0) { transz = ca.JAC[selectedanim].ObjInfo[i].translate[2][0];// Model.modelScale; } else if (ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[2].Count != 0) { transz = ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[2][Tz[i]];// Model.modelScale; } if (!float.IsNaN(transx) && !float.IsNaN(transy) && !float.IsNaN(transz)) { t = Translate(t, transx / Model.modelScale/* - (Model.Objects[i].X)*/, transy / Model.modelScale/* - (Model.Objects[i].Y)*/, transz / Model.modelScale/* - (Model.Objects[i].Z)*/); } else { //t = translate(t, Model.Objects[i].X, Model.Objects[i].Y, Model.Objects[i].Z); } //if(ca.JAC[selectedanim].ObjInfo[i].translate[0].Count != 0) //{ //mt = translate(mt, ca.JAC[0].ObjInfo[i].translate[0][T2[i]], ca.JAC[0].ObjInfo[i].translate_keyframes[1][T2[i]], ca.JAC[0].ObjInfo[i].translate_keyframes[2][T2[i]]); //Gl.glTranslatef(ca.JAC[selectedanim].ObjInfo[i].translate[0][T2[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[1][T2[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[2][T2[i]] / Model.modelScale); // t = translate(t,ca.JAC[selectedanim].ObjInfo[i].translate[0][T2[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[1][T2[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[2][T2[i]] / Model.modelScale); //} float[] m = loadIdentity(); //Gl.glGetFloatv(Gl.GL_MODELVIEW_MATRIX, m); m = multMatrix(m, t); //m = translate(m, Model.Objects[i].X, Model.Objects[i].Y, Model.Objects[i].Z); //if (Model.Objects[i].IsRotated) //{ //float[] rt = loadIdentity(); //rt = multMatrix(rt, r); //rt = multMatrix(rt, Model.Objects[i].rotate_mtx); m = multMatrix(m, r); // m = multMatrix(m, Model.Objects[i].rotate_mtx); //} //else //{ // m = multMatrix(m, r); //} m = multMatrix(m, s); //m = scale(m, Model.Objects[i].scale[0], Model.Objects[i].scale[1], Model.Objects[i].scale[2]); Gl.glMultMatrixf(m); //s = loadIdentity(); //r = loadIdentity(); //t = loadIdentity(); //Gl.glMultMatrixf(mt); //mt = loadIdentity(); //if(ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][0].Count != 0) // { //mt = scale(mt, ca.JAC[0].ObjInfo[i].scale_keyframes[0][0][S[i]], ca.JAC[0].ObjInfo[i].scale_keyframes[0][1][S[i]], ca.JAC[0].ObjInfo[i].scale_keyframes[0][2][S[i]]); //Gl.glScalef((ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][0][S[i]] - ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][1][S[i]]), (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][0][S[i]] - ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][1][S[i]]), (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][0][S[i]] - ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][1][S[i]])); //s = scale(s, (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][0][S[i]] - ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][1][S[i]]), (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][0][S[i]] - ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][1][S[i]]), (ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][0][S[i]] - ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][1][S[i]])); //} //if(ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[0].Count != 0) //{ //mt = translate(mt, ca.JAC[0].ObjInfo[i].translate_keyframes[0][T[i]], ca.JAC[0].ObjInfo[i].translate_keyframes[1][T[i]], ca.JAC[0].ObjInfo[i].translate_keyframes[2][T[i]]); //Gl.glTranslatef(ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[0][T[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[1][T[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[2][T[i]] / Model.modelScale); // t = translate(t, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[0][T[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[1][T[i]] / Model.modelScale, ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[2][T[i]] / Model.modelScale); //} // m = loadIdentity(); //m = multMatrix(m, t); //m = multMatrix(m, r); //m = multMatrix(m, s); //Gl.glMultMatrixf(m); if (anim) { if (Tx[i] == ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[0].Count - 1) { Tx[i] = 0; } else { Tx[i]++; } if (Ty[i] == ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[1].Count - 1) { Ty[i] = 0; } else { Ty[i]++; } if (Tz[i] == ca.JAC[selectedanim].ObjInfo[i].translate_keyframes[2].Count - 1) { Tz[i] = 0; } else { Tz[i]++; } if (R[i] == ca.JAC[selectedanim].ObjInfo[i].rotate_keyframes[0].Count - 1) { R[i] = 0; } else { R[i]++; } if (Sx[i] == ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[0][0].Count - 1) { Sx[i] = 0; } else { Sx[i]++; } if (Sy[i] == ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[1][0].Count - 1) { Sy[i] = 0; } else { Sy[i]++; } if (Sz[i] == ca.JAC[selectedanim].ObjInfo[i].scale_keyframes[2][0].Count - 1) { Sz[i] = 0; } else { Sz[i]++; } } return true; } else { return false; } } catch { return true; } } public static float[] Translate(float[] a, float x, float y, float z) { float[] b = loadIdentity(); b[12] = x; b[13] = y; b[14] = z; return multMatrix(a, b); } public static float[] loadIdentity() { float[] a = new float[16]; a[0] = 1.0F; a[5] = 1.0F; a[10] = 1.0F; a[15] = 1.0F; return a; } public static float[] scale(float[] a, float x, float y, float z) { float[] b = loadIdentity(); b[0] = x; b[5] = y; b[10] = z; return multMatrix(a, b); } private void setColor(int drawMode, float[] color) { /*bool checkJoint = true; bool selJoint = true; if(jointId < Frame.jointList.length) { checkJoint = Frame.jointList[jointId].isChecked(); selJoint = Frame.jointList[jointId].isSelected(); } boolean checkStack = visible[stackId]; boolean checkPoly = Frame.polygonList[polyId].isChecked(); boolean checkMat = true; boolean selMat = true; if(matId < Frame.materialList.length) { checkMat = Frame.materialList[matId].isChecked(); selMat = Frame.materialList[matId].isSelected(); } boolean selPoly = Frame.polygonList[polyId].isSelected();*/ switch (drawMode) { case 0: // '\0' default: break; case 1: // '\001' color = lineColorOff; /*if(selPoly) { color = lineColorOn; if(Frame.points) color = lineColorEdit; }*/ break; case 2: // '\002' color = pointColorOff; /*if(selPoly) color = pointColorOn;*/ break; case 3: // '\003' color = jointColor; /*if(selJoint) color = jointColorOn;*/ break; case 4: // '\004' color = linkColor; /*if(selJoint) color = linkColorOn;*/ break; } float alpha = color[3]; //if(drawMode == 0 && !checkPoly || (drawMode == 3 || drawMode == 4) && !checkJoint) // alpha = 0.2F; //if(drawMode == 0 && !checkStack) // alpha = 0.0F; Gl.glColor4f(color[0], color[1], color[2], alpha); } private float[] baseColor = { 1.0F, 1.0F, 1.0F, 1.0F }; private float[] shadeColor = { 0.3F, 0.3F, 0.3F, 1.0F }; private float[] selColor = { 1.0F, 0.0F, 0.0F, 1.0F }; private float[] lineColorOff = { 0.0F, 0.02745098F, 0.5686275F, 1.0F }; private float[] lineColorOn = { 0.2627451F, 1.0F, 0.6392157F, 1.0F }; private float[] lineColorEdit = { 0.3921569F, 0.8627451F, 1.0F, 1.0F }; private float[] pointColorOff = { 0.3921569F, 0.1960784F, 0.4313726F, 1.0F }; private float[] pointColorOn = { 0.7843137F, 0.0F, 0.7843137F, 1.0F }; private float[] pointColorEdit = { 0.7843137F, 0.0F, 0.7843137F, 1.0F }; private float[] jointColor = { 0.0F, 0.4F, 0.0F, 1.0F }; private float[] jointColorOn = { 0.4F, 0.0F, 0.0F, 1.0F }; private float[] linkColor = { 0.0F, 0.0F, 0.8F, 0.8F }; private float[] linkColorOn = { 0.8F, 0.0F, 0.0F, 0.8F }; public static float[] multMatrix(float[] a, float[] b) { float[] c = new float[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { c[(i << 2) + j] = 0.0F; for (int k = 0; k < 4; k++) c[(i << 2) + j] += a[(k << 2) + j] * b[(i << 2) + k]; } } return c; } public static float[] loadMatrix(float[] fmatrix, int stack) { float[] a = new float[16]; a[0] = 1.0F; a[5] = 1.0F; a[10] = 1.0F; a[15] = 1.0F; for (int i = 0; i < a.Length; i++) a[i] = fmatrix[stack * 16 + i]; return a; } public float[] pullVector(float[] fmatrix, int offset) { float[] cmatrix = new float[16]; for (int i = 0; i < cmatrix.Length; i++) cmatrix[i] = fmatrix[offset + i]; return multVector(cmatrix, new float[] { 0.0F, 0.0F, 0.0F }); } public float[] multVector(float[] cmatrix, float[] vtxState) { float[] vtxTrans = new float[3]; for (int i = 0; i < 3; i++) { float c0 = vtxState[0] * cmatrix[0 + i]; float c1 = vtxState[1] * cmatrix[4 + i]; float c2 = vtxState[2] * cmatrix[8 + i]; float c3 = cmatrix[12 + i]; vtxTrans[i] = c0 + c1 + c2 + c3; } return vtxTrans; } // Private Methods (7) /// /// Convert texel. /// private bool convert_4x4texel(uint[] tex, int width, int height, ushort[] data, RGBA[] pal, RGBA[] rgbaOut) { int w = width / 4; int h = height / 4; // traverse 'w x h blocks' of 4x4-texel for (int y = 0; y < h; y++) for (int x = 0; x < w; x++) { int index = y * w + x; UInt32 t = tex[index]; ushort d = data[index]; ushort addr = (ushort)(d & 0x3fff); ushort mode = (ushort)((d >> 14) & 3); // traverse every texel in the 4x4 texels for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) { int texel = (int)((t >> ((r * 4 + c) * 2)) & 3); RGBA pixel = rgbaOut[(y * 4 + r) * width + (x * 4 + c)]; switch (mode) { case 0: pixel = pal[(addr << 1) + texel]; if (texel == 3){ pixel = RGBA.Transparent; } // make it transparent, alpha = 0 break; case 2: pixel = pal[(addr << 1) + texel]; break; case 1: switch (texel) { case 0: case 1: pixel = pal[(addr << 1) + texel]; break; case 2: pixel.R = (byte)((pal[(addr << 1)].R + pal[(addr << 1) + 1].R) / 2L); pixel.G = (byte)((pal[(addr << 1)].G + pal[(addr << 1) + 1].G) / 2L); pixel.B = (byte)((pal[(addr << 1)].B + pal[(addr << 1) + 1].B) / 2L); pixel.A = 0xff; break; case 3: pixel = RGBA.Transparent; // make it transparent, alpha = 0 break; } break; case 3: switch (texel) { case 0: case 1: pixel = pal[(addr << 1) + texel]; break; case 2: pixel.R = (byte)((pal[(addr << 1)].R * 5L + pal[(addr << 1) + 1].R * 3L) / 8); pixel.G = (byte)((pal[(addr << 1)].G * 5L + pal[(addr << 1) + 1].G * 3L) / 8); pixel.B = (byte)((pal[(addr << 1)].B * 5L + pal[(addr << 1) + 1].B * 3L) / 8); pixel.A = 0xff; break; case 3: pixel.R = (byte)((pal[(addr << 1)].R * 3L + pal[(addr << 1) + 1].R * 5L) / 8); pixel.G = (byte)((pal[(addr << 1)].G * 3L + pal[(addr << 1) + 1].G * 5L) / 8); pixel.B = (byte)((pal[(addr << 1)].B * 3L + pal[(addr << 1) + 1].B * 5L) / 8); pixel.A = 0xff; break; } break; } rgbaOut[(y * 4 + r) * width + (x * 4 + c)] = pixel; } } return true; } /// /// Convert texel (wrapper for type safety issues). /// private void convert_4x4texel_b(byte[] tex, int width, int height, byte[] data, RGBA[] pal, RGBA[] rgbaOut) { var list1 = new List(); for (int i = 0; i < (tex.Length + 1) / 4; ++i) list1.Add(Utils.Read4BytesAsUInt32(tex, i * 4)); var list2 = new List(); for (int i = 0; i < (data.Length + 1) / 2; ++i) list2.Add(Utils.Read2BytesAsushort(data, i * 2)); var b = convert_4x4texel(list1.ToArray(), width, height, list2.ToArray(), pal, rgbaOut); } /// /// Make texture for model. /// /// NSBMD Model private void MakeTexture(NSBMDModel mod) { Gl.glMatrixMode(Gl.GL_TEXTURE_MATRIX); Gl.glLoadIdentity(); //Console.WriteLine("DEBUG: making texture for model '{0}'...", mod.Name); for (int i = 0; i < mod.Materials.Count - 1; i++) { try { if (mod.Materials[i].format == 0) // format 0 is no texture { matt.Add(new ImageBrush()); continue; } var mat = mod.Materials[i]; if (mat is null || (mat.paldata is null && mat.format != 7)) { matt.Add(new ImageBrush()); continue; } int pixelnum = mat.width * mat.height; var image = new RGBA[pixelnum]; switch (mat.format) { // No Texture case 0: //puts( "ERROR: format 0" ); mattt.Add(new ImageBrush()); continue; // A3I5 Translucent Texture (3bit Alpha, 5bit Color Index) case 1: for (int j = 0; j < pixelnum; j++) { int index = mat.texdata[j] & 0x1f; int alpha = (mat.texdata[j] >> 5);// & 7; alpha = ((alpha * 4) + (alpha / 2)) * 8;// << 3; image[j] = mat.paldata[index]; image[j].A = (byte)alpha; } break; // 4-Color Palette Texture case 2: if (mat.color0 != 0){ mat.paldata[0] = RGBA.Transparent; } // made palette entry 0 transparent for (int j = 0; j < pixelnum; j++) { uint index = mat.texdata[j / 4]; index = (index >> ((j % 4) << 1)) & 3; image[j] = mat.paldata[index]; } break; // 16-Color Palette Texture case 3: if (mat.color0 != 0){ mat.paldata[0] = RGBA.Transparent; } // made palette entry 0 transparent for (int j = 0; j < pixelnum; j++) { var matindex = j / 2; if (mat.texdata.Length < matindex) continue; int index = mat.texdata[matindex]; index = (index >> ((j % 2) << 2)) & 0x0f; if (mat.paldata is null) continue; if (index < 0 || index >= mat.paldata.Length) continue; if (j < 0 || j >= pixelnum) continue; image[j] = mat.paldata[index]; } break; // 256-Color Palette Texture case 4: if (mat.color0 != 0){ mat.paldata[0] = RGBA.Transparent; } // made palette entry 0 transparent // made palette entry 0 transparent for (int j = 0; j < pixelnum; j++) { image[j] = mat.paldata[mat.texdata[j]]; } break; // 4x4-Texel Compressed Texture case 5: convert_4x4texel_b(mat.texdata, mat.width, mat.height, mat.spdata, mat.paldata, image); break; // A5I3 Translucent Texture (5bit Alpha, 3bit Color Index) case 6: for (int j = 0; j < pixelnum; j++) { int index = mat.texdata[j] & 0x7; int alpha = (mat.texdata[j] >> 3); alpha *= 8; //((alpha * 4) + (alpha / 2)) << 3; image[j] = mat.paldata[index]; image[j].A = (byte)alpha; } break; // Direct Color Texture case 7: for (int j = 0; j < pixelnum; j++) { //ushort p = (ushort)(mat.texdata[j * 2] + (mat.texdata[j * 2 + 1] << 8)); //image[j].R = (byte)(((p >> 0) & 0x1f) << 3); //image[j].G = (byte)(((p >> 5) & 0x1f) << 3); //image[j].B = (byte)(((p >> 10) & 0x1f) << 3); //image[j].A = (byte)(((p & 0x8000) != 0) ? 0xff : 0); image[j] = RGBA.fromColor(Tinke.Convertir.BGR555ToColor(mat.texdata[j * 2], mat.texdata[j * 2 + 1])); ushort p = (ushort)(mat.texdata[j * 2] + (mat.texdata[j * 2 + 1] << 8)); image[j].A = (byte)(((p & 0x8000) != 0) ? 0xff : 0); } break; } //Console.WriteLine("convert matid = {0}", i); //Console.WriteLine("\ttex '{0}': {1} [{2},{3}] texsize = {4}", mat.texname, TEXTURE_FORMATS[mat.format], mat.width, mat.height, mat.texsize); //Console.WriteLine("\tpal '{0}': pixelnum = {1}, repeat = {2}", mat.palname, pixelnum, mat.repeat); var imageBytesList = new List(); System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(mat.width, mat.height); for (int k = 0; k < image.Length; ++k) { bitmap.SetPixel(k - ((k / (mat.width)) * (mat.width)), k / (mat.width), image[k].ToColor()); imageBytesList.Add(image[k].R); imageBytesList.Add(image[k].G); imageBytesList.Add(image[k].B); imageBytesList.Add((image[k].A)); } var imageBytes = imageBytesList.ToArray(); if (mat.flipS == 1 && mat.flipT == 1) { System.Drawing.Bitmap bitmap2 = new System.Drawing.Bitmap(mat.width * 2, mat.height * 2); using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap2)) { g.DrawImage(bitmap, 0, 0); System.Drawing.Bitmap tmp = bitmap; tmp.RotateFlip(System.Drawing.RotateFlipType.RotateNoneFlipX); g.DrawImage(tmp, mat.width, 0); tmp = bitmap; tmp.RotateFlip(System.Drawing.RotateFlipType.RotateNoneFlipY); g.DrawImage(tmp, mat.width, mat.height); tmp = bitmap; tmp.RotateFlip(System.Drawing.RotateFlipType.RotateNoneFlipX); g.DrawImage(tmp, 0, mat.height); } bitmap = bitmap2; } else if (mat.flipS == 1) { //br.TileMode = System.Windows.Media.TileMode.FlipX; System.Drawing.Bitmap bitmap2 = new System.Drawing.Bitmap(mat.width * 2, mat.height); using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap2)) { g.DrawImage(bitmap, 0, 0); System.Drawing.Bitmap tmp = bitmap; tmp.RotateFlip(System.Drawing.RotateFlipType.RotateNoneFlipX); g.DrawImage(tmp, mat.width, 0); } bitmap = bitmap2; } else if (mat.flipT == 1) { //br.TileMode = System.Windows.Media.TileMode.FlipY; System.Drawing.Bitmap bitmap2 = new System.Drawing.Bitmap(mat.width, mat.height * 2); using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap2)) { g.DrawImage(bitmap, 0, 0); System.Drawing.Bitmap tmp = bitmap; tmp.RotateFlip(System.Drawing.RotateFlipType.RotateNoneFlipY); g.DrawImage(tmp, 0, mat.height); } bitmap = bitmap2; } else if (mat.repeatS == 1 || mat.repeatT == 1) { //br.TileMode = System.Windows.Media.TileMode.Tile; } else { //br.TileMode = System.Windows.Media.TileMode.None; } ImageBrush br = new ImageBrush(CreateBitmapSourceFromBitmap(bitmap)); br.Viewbox = new Rect(0, 0, br.ImageSource.Width, br.ImageSource.Height); br.ViewboxUnits = BrushMappingMode.Absolute; br.Viewport = new Rect(0, 0, 1, 1); br.ViewportUnits = BrushMappingMode.Absolute; br.Stretch = Stretch.None; //br.ImageSource = CreateBitmapSourceFromBitmap(bitmap); br.Opacity = (double)(((mat.Alpha + 1) * 8) - 1) / 1.0d; matt.Add(br); //ttt Gl.glBindTexture(Gl.GL_TEXTURE_2D, i + 1 + matstart); Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_RGBA, mat.width, mat.height, 0, Gl.GL_RGBA, Gl.GL_UNSIGNED_BYTE, imageBytes); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST); if (mat.flipS == 1 && mat.repeatS == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_MIRRORED_REPEAT); } else if (mat.repeatS == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_REPEAT); } else { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_CLAMP); } if (mat.flipT == 1 && mat.repeatT == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_MIRRORED_REPEAT); } else if (mat.repeatT == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_REPEAT); } else { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_CLAMP); } } catch { matt.Add(new ImageBrush()); } } } /// /// Make texture for model. /// /// NSBMD Model private void MakeTexture(int i, NSBMDMaterial m) { try { if (m.format == 0) // format 0 is no texture { //matt.Add(new System.Windows.Media.ImageBrush()); return; } var mat = m; if (mat is null || (mat.paldata is null && mat.format != 7)) { //matt.Add(new System.Windows.Media.ImageBrush()); return; } int pixelnum = mat.width * mat.height; var image = new RGBA[pixelnum]; switch (mat.format) { // No Texture case 0: //puts( "ERROR: format 0" ); //mattt.Add(new System.Windows.Media.ImageBrush()); return; // A3I5 Translucent Texture (3bit Alpha, 5bit Color Index) case 1: for (int j = 0; j < pixelnum; j++) { int index = mat.texdata[j] & 0x1f; int alpha = (mat.texdata[j] >> 5);// & 7; alpha = ((alpha * 4) + (alpha / 2)) * 8;// << 3; image[j] = mat.paldata[index]; image[j].A = (byte)alpha; } break; // 4-Color Palette Texture case 2: if (mat.color0 != 0){ mat.paldata[0] = RGBA.Transparent; } // made palette entry 0 transparent for (int j = 0; j < pixelnum; j++) { uint index = mat.texdata[j / 4]; index = (index >> ((j % 4) << 1)) & 3; image[j] = mat.paldata[index]; } break; // 16-Color Palette Texture case 3: if (mat.color0 != 0){ mat.paldata[0] = RGBA.Transparent; } // made palette entry 0 transparent for (int j = 0; j < pixelnum; j++) { var matindex = j / 2; if (mat.texdata.Length < matindex) continue; int index = mat.texdata[matindex]; index = (index >> ((j % 2) << 2)) & 0x0f; if (mat.paldata is null) continue; if (index < 0 || index >= mat.paldata.Length) continue; if (j < 0 || j >= pixelnum) continue; image[j] = mat.paldata[index]; } break; // 256-Color Palette Texture case 4: if (mat.color0 != 0){ mat.paldata[0] = RGBA.Transparent; } // made palette entry 0 transparent // made palette entry 0 transparent for (int j = 0; j < pixelnum; j++) { image[j] = mat.paldata[mat.texdata[j]]; } break; // 4x4-Texel Compressed Texture case 5: convert_4x4texel_b(mat.texdata, mat.width, mat.height, mat.spdata, mat.paldata, image); break; // A5I3 Translucent Texture (5bit Alpha, 3bit Color Index) case 6: for (int j = 0; j < pixelnum; j++) { int index = mat.texdata[j] & 0x7; int alpha = (mat.texdata[j] >> 3); alpha *= 8; //((alpha * 4) + (alpha / 2)) << 3; image[j] = mat.paldata[index]; image[j].A = (byte)alpha; } break; // Direct Color Texture case 7: for (int j = 0; j < pixelnum; j++) { //ushort p = (ushort)(mat.texdata[j * 2] + (mat.texdata[j * 2 + 1] << 8)); //image[j].R = (byte)(((p >> 0) & 0x1f) << 3); //image[j].G = (byte)(((p >> 5) & 0x1f) << 3); //image[j].B = (byte)(((p >> 10) & 0x1f) << 3); //image[j].A = (byte)(((p & 0x8000) != 0) ? 0xff : 0); image[j] = RGBA.fromColor(Tinke.Convertir.BGR555ToColor(mat.texdata[j * 2], mat.texdata[j * 2 + 1])); ushort p = (ushort)(mat.texdata[j * 2] + (mat.texdata[j * 2 + 1] << 8)); image[j].A = (byte)(((p & 0x8000) != 0) ? 0xff : 0); } break; } //Console.WriteLine("convert matid = {0}", i); //Console.WriteLine("\ttex '{0}': {1} [{2},{3}] texsize = {4}", mat.texname, TEXTURE_FORMATS[mat.format], mat.width, mat.height, mat.texsize); //Console.WriteLine("\tpal '{0}': pixelnum = {1}, repeat = {2}", mat.palname, pixelnum, mat.repeat); var imageBytesList = new List(); //System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(mat.width, mat.height); for (int k = 0; k < image.Length; ++k) { //bitmap.SetPixel(k - ((k / (mat.width)) * (mat.width)), k / (mat.width), image[k].ToColor()); imageBytesList.Add(image[k].R); imageBytesList.Add(image[k].G); imageBytesList.Add(image[k].B); //if (image[k].A != 0) //{ // imageBytesList.Add((byte)(image[k].A - (255 - (((mat.Alpha + 1) * 8) - 1)))); //} //else //{ imageBytesList.Add((byte)(image[k].A)); //} } var imageBytes = imageBytesList.ToArray(); //ttt Gl.glBindTexture(Gl.GL_TEXTURE_2D, i + 1 + matstart); Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_RGBA, mat.width, mat.height, 0, Gl.GL_RGBA, Gl.GL_UNSIGNED_BYTE, imageBytes); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST); if (mat.flipS == 1 && mat.repeatS == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_MIRRORED_REPEAT); } else if (mat.repeatS == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_REPEAT); } else { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_CLAMP); } if (mat.flipT == 1 && mat.repeatT == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_MIRRORED_REPEAT); } else if (mat.repeatT == 1) { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_REPEAT); } else { Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_CLAMP); } } catch { //matt.Add(new System.Windows.Media.ImageBrush()); } } [System.Runtime.InteropServices.DllImport("gdi32.dll")] private static extern bool DeleteObject(IntPtr hObject); public static System.Windows.Media.Imaging.BitmapSource CreateBitmapSourceFromBitmap(System.Drawing.Bitmap bitmap) { if (bitmap is null) throw new ArgumentNullException("bitmap"); IntPtr hBitmap = bitmap.GetHbitmap(); try { return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); } finally { DeleteObject(hBitmap); } } private System.Windows.Media.Imaging.BitmapImage Bitmap2BitmapImage(System.Drawing.Bitmap dImg) { MemoryStream ms = new MemoryStream(); dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Png); System.Windows.Media.Imaging.BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage(); bImg.BeginInit(); bImg.StreamSource = ms; bImg.EndInit(); return bImg; } /// /// Process polygon 3d commands. /// /// Data of specific polygon. private void Process3DCommand(byte[] polydata, NSBMDMaterial m, int jointID, bool color) { Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); MaterialHelper.CreateMaterial(new ImageBrush()); md.Add(new MeshBuilder()); IList poi = new List(); IList nor = new List(); IList tex = new List(); int typ = -1; if (polydata is null) return; int commandptr = 0; int commandlimit = polydata.Length; int[] command = new int[4]; int cur_vertex, mode, i; float[] vtx_state = { 0.0f, 0.0f, 0.0f }; float[] vtx_trans = { 0.0f, 0.0f, 0.0f }; cur_vertex = gCurrentVertex; // for vertex_mode if (Model.Objects.Count > 0) { CurrentMatrix = MatrixStack[stackID].Clone(); } else { CurrentMatrix.LoadIdentity(); } if (Model.Objects.Count > 1) { //CurrentMatrix.Scale(Model.modelScale, Model.modelScale, Model.modelScale); } while (commandptr < commandlimit) { for (i = 0; i < 4; ++i) { if (commandptr >= commandlimit) command[i] = 0xFF; else { command[i] = polydata[commandptr]; commandptr++; } } for (i = 0; i < 4 && commandptr < commandlimit; i++) { switch (command[i]) { case 0: // No Operation (for padding packed GXFIFO commands) break; case 0x10: { int param = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; switch (param) { case 0: // Gl.glMatrixMode(Gl.GL_PROJECTION_MATRIX); break; case 1: // Gl.glMatrixMode(Gl.GL_MODELVIEW_MATRIX); break; case 2: break; case 3: // Gl.glMatrixMode(Gl.GL_TEXTURE_MATRIX); break; } break; } case 0x11: break; case 0x12: commandptr += 4; break; case 0x13: commandptr += 4; break; case 0x14: /* MTX_RESTORE - Restore Current Matrix from Stack (W) Sets C=[N]. The stack pointer S is not used, and is left unchanged. Parameter Bit0-4: Stack Address (0..30) (31 causes overflow in GXSTAT.15) Parameter Bit5-31: Not used */ stackID = Utils.Read4BytesAsInt32(polydata, commandptr) & 0x1F;// & 0x0000001F; commandptr += 4; MatrixStack[stackID].CopyValuesTo(CurrentMatrix); break; case 0x15: { CurrentMatrix.LoadIdentity(); break; } case 0x16: { for (int j = 0; j < 16; j++) { CurrentMatrix[j] = (float)Utils.Read4BytesAsInt32(polydata, commandptr) / 4096f; commandptr += 4; } break; } case 0x17: { for (int j = 0; j < 4; j++) { for (int k = 0; k < 3; j++) { CurrentMatrix[k, j] = (float)Utils.Read4BytesAsInt32(polydata, commandptr) / 4096f; commandptr += 4; } } break; } case 0x18: { MTX44 f = new MTX44(); f.LoadIdentity(); for (int j = 0; j < 16; j++) { f[j] = (float)Utils.Read4BytesAsInt32(polydata, commandptr) / 4096f; commandptr += 4; } CurrentMatrix.MultMatrix(f).CopyValuesTo(CurrentMatrix); break; } case 0x19: { MTX44 f = new MTX44(); f.LoadIdentity(); for (int j = 0; j < 4; j++) { for (int k = 0; k < 3; j++) { f[k, j] = (float)Utils.Read4BytesAsInt32(polydata, commandptr) / 4096f; commandptr += 4; } } CurrentMatrix.MultMatrix(f).CopyValuesTo(CurrentMatrix); break; } case 0x1A: { MTX44 f = new MTX44(); f.LoadIdentity(); for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; j++) { f[k, j] = (float)Utils.Read4BytesAsInt32(polydata, commandptr) / 4096f; commandptr += 4; } } CurrentMatrix.MultMatrix(f).CopyValuesTo(CurrentMatrix); break; } case 0x1b: /* MTX_SCALE - Multiply Current Matrix by Scale Matrix (W) Sets C=M*C. Parameters: 3, m[0..2] (MTX_SCALE doesn't change Vector Matrix) */ { int x, y, z; x = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; y = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; z = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; //CurrentMatrix[0] = (float)sign(x, 32) / SCALE_IV; //CurrentMatrix[5] = (float)sign(y, 32) / SCALE_IV; //CurrentMatrix[10] = (float)sign(z, 32) / SCALE_IV; //CurrentMatrix.SetValues(scale(CurrentMatrix.Floats, x, y, z)); CurrentMatrix.Scale((float)x / SCALE_IV / Model.modelScale, (float)y / SCALE_IV / Model.modelScale, (float)z / SCALE_IV / Model.modelScale); //CurrentMatrix.Scale((float)sign(x, 32) / SCALE_IV, (float)sign(y, 32) / SCALE_IV, (float)sign(z, 32) / SCALE_IV); break; } case 0x1c: /* MTX_TRANS - Mult. Curr. Matrix by Translation Matrix (W) Sets C=M*C. Parameters: 3, m[0..2] (x,y,z position) */ { int x, y, z; x = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; y = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; z = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; CurrentMatrix.translate((float)Sign(x, 32) / SCALE_IV / Model.modelScale, (float)Sign(y, 32) / SCALE_IV / Model.modelScale, (float)Sign(z, 32) / SCALE_IV / Model.modelScale); break; } case 0x20: // Directly Set Vertex Color (W) { Int64 rgb, r, g, b; rgb = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; if (gOptColoring) { r = (rgb >> 0) & 0x1F; g = (rgb >> 5) & 0x1F; b = (rgb >> 10) & 0x1F; if (color) { Gl.glColor4f(((float)r) / 31.0f, ((float)g) / 31.0f, ((float)b) / 31.0f, m.Alpha / 31.0f); } } } break; case 0x21: /* Set Normal Vector (W) 0-9 X-Component of Normal Vector (1bit sign + 9bit fractional part) 10-19 Y-Component of Normal Vector (1bit sign + 9bit fractional part) 20-29 Z-Component of Normal Vector (1bit sign + 9bit fractional part) 30-31 Not used */ { Int64 xyz, x, y, z; xyz = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; x = (xyz >> 0) & 0x3FF; if ((x & 0x200) != 0) x |= -1024; y = (xyz >> 10) & 0x3FF; if ((y & 0x200) != 0){ y |= -1024; } z = (xyz >> 20) & 0x3FF; if ((z & 0x200) != 0){ z |= -1024; } Gl.glNormal3f(((float)x) / 512.0f, ((float)y) / 512.0f, ((float)z) / 512.0f); if (writevertex) { //normals.Add(new float[] { ((float)x) / 512.0f, ((float)y) / 512.0f, ((float)z) / 512.0f }); //mod.Normals.Add(new System.Windows.Media.Media3D.Vector3D(((float)x) / 512.0f, ((float)y) / 512.0f, ((float)z) / 512.0f)) nor.Add(new System.Windows.Media.Media3D.Vector3D(((float)x) / 512.0f, ((float)y) / 512.0f, ((float)z) / 512.0f)); } break; } case 0x22: /* Set Texture Coordinates (W) Parameter 1, Bit 0-15 S-Coordinate (X-Coordinate in Texture Source) Parameter 1, Bit 16-31 T-Coordinate (Y-Coordinate in Texture Source) Both values are 1bit sign + 11bit integer + 4bit fractional part. A value of 1.0 (=1 SHL 4) equals to one Texel. */ { Int64 st, s, t; st = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; s = (st >> 0) & 0xffff; if ((s & 0x8000) != 0){ s |= unchecked((int)0xFFFF0000); }//-65536; t = (st >> 16) & 0xffff; if ((t & 0x8000) != 0){ t |= unchecked((int)0xFFFF0000); }//-65536; Gl.glTexCoord2f(((float)s) / 16.0f, ((float)t) / 16.0f); if (writevertex) { //mod.TextureCoordinates.Add(new System.Windows.Point((float)s/1024f,(float)t/1024f)); tex.Add(new System.Windows.Point(((float)m.scaleS / (float)m.width) * ((float)s / 16f) / (m.flipS + 1), -((float)m.scaleT / (float)m.height) * ((float)t / 16f) / (m.flipT + 1))); } break; } case 0x23: /* VTX_16 - Set Vertex XYZ Coordinates (W) Parameter 1, Bit 0-15 X-Coordinate (signed, with 12bit fractional part) Parameter 1, Bit 16-31 Y-Coordinate (signed, with 12bit fractional part) Parameter 2, Bit 0-15 Z-Coordinate (signed, with 12bit fractional part) Parameter 2, Bit 16-31 Not used */ { int parameter, x, y, z; parameter = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; x = Sign((parameter >> 0) & 0xFFFF, 16); //if ((x & 0x8000) != 0){ x |= unchecked((int)0xFFFF0000); }//-65536; y = Sign((parameter >> 16) & 0xFFFF, 16); //if ((y & 0x8000) != 0){ y |= unchecked((int)0xFFFF0000); }//-65536; parameter = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; z = Sign(parameter & 0xFFFF, 16); // if ((z & 0x8000) != 0){ z |= unchecked((int)0xFFFF0000); }//-65536; vtx_state[0] = ((float)x) / SCALE_IV; vtx_state[1] = ((float)y) / SCALE_IV; vtx_state[2] = ((float)z) / SCALE_IV; if (stackID != -1) { vtx_trans = CurrentMatrix.MultVector(vtx_state); Gl.glVertex3fv(vtx_trans); if (writevertex) { //vertex.Add(vtx_trans); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } else { Gl.glVertex3fv(vtx_state); if (writevertex) { //vertex.Add(vtx_state); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } if (writevertex) { //vertex_normal.Add((normals.Count == 0 ? -1 : normals.Count)); } break; } case 0x24: /* VTX_10 - Set Vertex XYZ Coordinates (W) Parameter 1, Bit 0-9 X-Coordinate (signed, with 6bit fractional part) Parameter 1, Bit 10-19 Y-Coordinate (signed, with 6bit fractional part) Parameter 1, Bit 20-29 Z-Coordinate (signed, with 6bit fractional part) Parameter 1, Bit 30-31 Not used */ { int xyz, x, y, z; xyz = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; x = Sign((xyz >> 0) & 0x3FF, 10); // if ((x & 0x200) != 0){ x |= unchecked((int)0xFFFFFC00); }//-1024; y = Sign((xyz >> 10) & 0x3FF, 10); //if ((y & 0x200) != 0){ y |= unchecked((int)0xFFFFFC00); }//-1024; z = Sign((xyz >> 20) & 0x3FF, 10); // if ((z & 0x200) != 0){ z |= unchecked((int)0xFFFFFC00); }//-1024; vtx_state[0] = (float)x / 64.0f; vtx_state[1] = (float)y / 64.0f; vtx_state[2] = (float)z / 64.0f; if (stackID != -1) { vtx_trans = CurrentMatrix.MultVector(vtx_state); Gl.glVertex3fv(vtx_trans); if (writevertex) { //vertex.Add(vtx_trans); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } else { Gl.glVertex3fv(vtx_state); if (writevertex) { //vertex.Add(vtx_state); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } if (writevertex) { //vertex_normal.Add((normals.Count == 0 ? -1 : normals.Count)); } break; } case 0x25: /* VTX_XY - Set Vertex XY Coordinates (W) Parameter 1, Bit 0-15 X-Coordinate (signed, with 12bit fractional part) Parameter 1, Bit 16-31 Y-Coordinate (signed, with 12bit fractional part) */ { int xy, x, y; xy = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; x = Sign((xy >> 0) & 0xFFFF, 16); //if ((x & 0x8000) != 0){ x |= unchecked((int)0xFFFF0000); }//-65536; y = Sign((xy >> 16) & 0xFFFF, 16); //if ((y & 0x8000) != 0){ y |= unchecked((int)0xFFFF0000); }//-65536; vtx_state[0] = ((float)x) / SCALE_IV; vtx_state[1] = ((float)y) / SCALE_IV; if (stackID != -1) { vtx_trans = CurrentMatrix.MultVector(vtx_state); Gl.glVertex3fv(vtx_trans); if (writevertex) { //vertex.Add(vtx_trans); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } else { Gl.glVertex3fv(vtx_state); if (writevertex) { //vertex.Add(vtx_state); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } if (writevertex) { //vertex_normal.Add((normals.Count == 0 ? -1 : normals.Count)); } break; } case 0x26: /* VTX_XZ - Set Vertex XZ Coordinates (W) Parameter 1, Bit 0-15 X-Coordinate (signed, with 12bit fractional part) Parameter 1, Bit 16-31 Z-Coordinate (signed, with 12bit fractional part) */ { int xz, x, z; xz = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; x = Sign((xz >> 0) & 0xFFFF, 16); // if ((x & 0x8000) != 0){ x |= unchecked((int)0xFFFF0000); }//-65536; z = Sign((xz >> 16) & 0xFFFF, 16); // if ((z & 0x8000) != 0){ z |= unchecked((int)0xFFFF0000); }//-65536; vtx_state[0] = ((float)x) / SCALE_IV; vtx_state[2] = ((float)z) / SCALE_IV; if (stackID != -1) { vtx_trans = CurrentMatrix.MultVector(vtx_state); Gl.glVertex3fv(vtx_trans); if (writevertex) { //vertex.Add(vtx_trans); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } else { Gl.glVertex3fv(vtx_state); if (writevertex) { //vertex.Add(vtx_state); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } if (writevertex) { // vertex_normal.Add((normals.Count == 0 ? -1 : normals.Count)); } break; } case 0x27: /* VTX_YZ - Set Vertex YZ Coordinates (W) Parameter 1, Bit 0-15 Y-Coordinate (signed, with 12bit fractional part) Parameter 1, Bit 16-31 Z-Coordinate (signed, with 12bit fractional part) */ { int yz, y, z; yz = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; y = Sign((yz >> 0) & 0xFFFF, 16); //if ((y & 0x8000) != 0){ y |= unchecked((int)0xFFFF0000); }//-65536; z = Sign((yz >> 16) & 0xFFFF, 16); //if ((z & 0x8000) != 0){ z |= unchecked((int)0xFFFF0000); }//-65536; vtx_state[1] = ((float)y) / SCALE_IV; vtx_state[2] = ((float)z) / SCALE_IV; if (stackID != -1) { vtx_trans = CurrentMatrix.MultVector(vtx_state); Gl.glVertex3fv(vtx_trans); if (writevertex) { //vertex.Add(vtx_trans); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } else { Gl.glVertex3fv(vtx_state); if (writevertex) { //vertex.Add(vtx_state); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } if (writevertex) { //vertex_normal.Add((normals.Count == 0 ? -1 : normals.Count)); } break; } case 0x28: /* VTX_DIFF - Set Relative Vertex Coordinates (W) Parameter 1, Bit 0-9 X-Difference (signed, with 9bit fractional part) Parameter 1, Bit 10-19 Y-Difference (signed, with 9bit fractional part) Parameter 1, Bit 20-29 Z-Difference (signed, with 9bit fractional part) Parameter 1, Bit 30-31 Not used */ { int xyz, x, y, z; xyz = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; x = Sign((xyz >> 0) & 0x3FF, 10); //if ((x & 0x200) != 0){ x |= unchecked((int)0xFFFFFC00); }//-1024; y = Sign((xyz >> 10) & 0x3FF, 10); //if ((y & 0x200) != 0){ y |= unchecked((int)0xFFFFFC00); } z = Sign((xyz >> 20) & 0x3FF, 10); //if ((z & 0x200) != 0){ z |= unchecked((int)0xFFFFFC00); } vtx_state[0] += ((float)x) / SCALE_IV; vtx_state[1] += ((float)y) / SCALE_IV; vtx_state[2] += ((float)z) / SCALE_IV; if (stackID != -1) { vtx_trans = CurrentMatrix.MultVector(vtx_state); Gl.glVertex3fv(vtx_trans); if (writevertex) { //vertex.Add(vtx_trans); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_trans[0], vtx_trans[1], vtx_trans[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } else { Gl.glVertex3fv(vtx_state); if (writevertex) { //vertex.Add(vtx_state); //mod.Positions.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); poi.Add(new System.Windows.Media.Media3D.Point3D(vtx_state[0], vtx_state[1], vtx_state[2])); if (poi.Count > tex.Count && tex.Count != 0) { tex.Add(tex[tex.Count - 1]);//new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } else if (tex.Count == 0) { tex.Add(new System.Windows.Point(double.NegativeInfinity, double.PositiveInfinity)); } if (poi.Count > nor.Count && nor.Count != 0) { nor.Add(nor[nor.Count - 1]); } else if (nor.Count == 0) { nor.Add(new System.Windows.Media.Media3D.Vector3D(double.NegativeInfinity, double.PositiveInfinity, 0)); } } } if (writevertex) { // vertex_normal.Add((normals.Count == 0 ? -1 : normals.Count)); } break; } case 0x29: { int param = Utils.Read4BytesAsInt32(polydata, commandptr); commandptr += 4; /*int light = (param >> 0) & 0x10; int polygonMode = (param >> 4) & 0x4; switch (polygonMode) { case 0: mode = Gl.GL_MODULATE; break; case 1: mode = Gl.GL_DECAL; break; case 2: mode = Gl.GL_SHADOW_AMBIENT_SGIX; break; case 3: mode = Gl.GL_QUAD_STRIP; break; default: //return ;// FALSE; throw new Exception(); break; }*/ break; } case 0x2A: commandptr += 4; break; case 0x2B: commandptr += 4; break; // lighting commands case 0x30: commandptr += 4; break; case 0x31: commandptr += 4; break; case 0x32: commandptr += 4; break; case 0x33: { commandptr += 4; break; } case 0x34: commandptr += 128; break; case 0x40: // Start of Vertex List (W) { mode = Utils.Read4BytesAsInt32(polydata, commandptr); //mode = mode & 0x3; commandptr += 4; typ = mode; switch (mode) { case 0: mode = Gl.GL_TRIANGLES; break; case 1: mode = Gl.GL_QUADS; break; case 2: mode = Gl.GL_TRIANGLE_STRIP; break; case 3: mode = Gl.GL_QUAD_STRIP; break; default: //return ;// FALSE; throw new Exception(); } Gl.glBegin(mode); break; } case 0x41: Gl.glEnd(); if (writevertex) { switch (typ) { case 0: { for (int j = 0; j < poi.Count / 3; j++) { if (tex.Count > j * 3 + 2) { md[md.Count - 1].AddTriangle(poi[j * 3], poi[j * 3 + 1], poi[j * 3 + 2], tex[j * 3], tex[j * 3 + 1], tex[j * 3 + 2]); } else { md[md.Count - 1].AddTriangle(poi[j * 3], poi[j * 3 + 1], poi[j * 3 + 2]); } } break; } case 1: { for (int j = 0; j < poi.Count / 4; j++) { if (tex.Count > j * 4 + 3) { md[md.Count - 1].AddQuad(poi[j * 4], poi[j * 4 + 1], poi[j * 4 + 2], poi[j * 4 + 3], tex[j * 4], tex[j * 4 + 1], tex[j * 4 + 2], tex[j * 4 + 3]); } else { md[md.Count - 1].AddQuad(poi[j * 4], poi[j * 4 + 1], poi[j * 4 + 2], poi[j * 4 + 3]); } } break; } case 2: { while (poi.Count > nor.Count) { nor.Add(nor[nor.Count - 1]); } while (poi.Count > tex.Count) { tex.Add(tex[tex.Count - 1]); } md[md.Count - 1].AddTriangles(poi, nor, tex); //md[mo].AddTriangleStrip(poi, nor, tex); break; } case 3: { while (poi.Count > nor.Count) { nor.Add(nor[nor.Count - 1]); } while (poi.Count > tex.Count) { tex.Add(tex[tex.Count - 1]); } md[md.Count - 1].AddQuads(poi, nor, tex); //md.AddQuads(poi, nor, tex); break; } default: //return ;// FALSE; break; } } nor.Clear(); tex.Clear(); poi.Clear(); //nr++; // for vertex mode, display at maximum certain number of vertex-list // decrease cur_vertex so that when we reach 0, stop rendering any further cur_vertex--; if (cur_vertex < 0 && gOptVertexMode) return; //TRUE; break; case 0x50: commandptr += 4; break; case 0x60: commandptr += 4; break; case 0x70: commandptr += 12; break; case 0x71: commandptr += 8; break; case 0x72: commandptr += 4; break; default: break; //return FALSE; } } } } public static int Sign(int data, int size) { if ((data & 1 << size - 1) != 0) data |= -1 << size; return data; } /// /// Process polygon 3d commands. /// /// Data of specific polygon. public void ClearOBJ() { md.Clear(); writevertex = true; } public void RipModel(string file) { NSBMDPolygon polygon; int matId; NSBMDMaterial material; int num3; DiffuseMaterial material2; MeshBuilder builder; Model3D modeld; MTX44 mtx = new MTX44(); List list = new List(); List list2 = new List(); for (int i = 0; i < (this.Model.Polygons.Count - 1); i++) { polygon = this.Model.Polygons[i]; matId = polygon.MatId; material = this.Model.Materials[matId]; } MTX44 mtx2 = new MTX44(); mtx2.LoadIdentity(); for (num3 = 0; num3 < this.Model.Objects.Count; num3++) { NSBMDObject obj2 = this.Model.Objects[num3]; float[] transVect = obj2.TransVect; float[] numArray2 = loadIdentity(); if (obj2.RestoreID != -1) { mtx2 = MatrixStack[obj2.RestoreID]; } if (obj2.StackID != -1) { if (obj2.visible) { MTX44 b = new MTX44(); b.SetValues(obj2.materix); mtx2 = mtx2.MultMatrix(b); } else { mtx2.Zero(); } MatrixStack[obj2.StackID] = mtx2; stackID = obj2.StackID; float[] numArray3 = mtx2.MultVector(new float[3]); list2.Add(new Vector3(numArray3[0], numArray3[1], numArray3[2])); } } num3 = 0; while (num3 < (this.Model.Polygons.Count - 1)) { polygon = this.Model.Polygons[num3]; if ((gOptTexture && !gOptWireFrame) && g_mat) { matId = polygon.MatId; if (matId == -1) { this.mattt.Add(new ImageBrush()); } else { this.mattt.Add(this.matt[matId]); material = this.Model.Materials[matId]; } } stackID = polygon.StackID; list.Add(Process3DCommandRipper(polygon.PolyData, Model.Materials[polygon.MatId], polygon.JointID, true)); num3++; } File.Create(file).Close(); ObjExporter exporter = new ObjExporter(file, "Created with Alloy Universal Repo Editor " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()); int index = 0; foreach (Group group in list) { ImageBrush brush = new ImageBrush(); try { brush.ImageSource = this.mattt[index].ImageSource; brush.Opacity = this.mattt[index].Opacity; brush.Viewbox = this.mattt[index].Viewbox; brush.ViewboxUnits = this.mattt[index].ViewboxUnits; brush.Viewport = this.mattt[index].Viewport; brush.ViewportUnits = this.mattt[index].ViewportUnits; } catch { } if (brush.ImageSource != null) { material2 = new DiffuseMaterial(brush); } else { material2 = new DiffuseMaterial(new SolidColorBrush()); } material2.SetValue(matName, this.Model.Materials[this.Model.Polygons[index].MatId].MaterialName); material2.SetValue(polyName, this.Model.Polygons[index].Name); material2.Brush.Opacity = ((float)this.Model.Materials[this.Model.Polygons[index].MatId].Alpha) / 31f; material2.AmbientColor = Color.FromArgb(this.Model.Materials[this.Model.Polygons[index].MatId].AmbientColor.A, this.Model.Materials[this.Model.Polygons[index].MatId].AmbientColor.R, this.Model.Materials[this.Model.Polygons[index].MatId].AmbientColor.G, this.Model.Materials[this.Model.Polygons[index].MatId].AmbientColor.B); material2.Color = Color.FromArgb(0xff, this.Model.Materials[this.Model.Polygons[index].MatId].DiffuseColor.R, this.Model.Materials[this.Model.Polygons[index].MatId].DiffuseColor.G, this.Model.Materials[this.Model.Polygons[index].MatId].DiffuseColor.B); builder = new MeshBuilder(); foreach (MKDS_Course_Editor.Export3DTools.Polygon polygon2 in group) { IList list3; IList list4; IList list5; switch (polygon2.PolyType) { case PolygonType.Triangle: list3 = new List(); list4 = new List(); list5 = new List(); num3 = 0; goto Label_08AB; case PolygonType.Quad: list3 = new List(); list4 = new List(); list5 = new List(); num3 = 0; goto Label_0C5E; case PolygonType.TriangleStrip: list3 = new List(); list4 = new List(); list5 = new List(); num3 = 0; goto Label_0D66; case PolygonType.QuadStrip: list3 = new List(); list4 = new List(); list5 = new List(); num3 = 0; goto Label_0E7C; default: { continue; } } Label_0608: list3.Add(new Point3D((double)polygon2.Vertex[num3].X, (double)polygon2.Vertex[num3].Y, (double)polygon2.Vertex[num3].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3].X, (double)polygon2.Normals[num3].Y, (double)polygon2.Normals[num3].Z)); list5.Add(new System.Windows.Point((double)polygon2.TexCoords[num3].X, (double)polygon2.TexCoords[num3].Y)); list3.Add(new Point3D((double)polygon2.Vertex[num3 + 1].X, (double)polygon2.Vertex[num3 + 1].Y, (double)polygon2.Vertex[num3 + 1].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3 + 1].X, (double)polygon2.Normals[num3 + 1].Y, (double)polygon2.Normals[num3 + 1].Z)); list5.Add(new Point((double)polygon2.TexCoords[num3 + 1].X, (double)polygon2.TexCoords[num3 + 1].Y)); list3.Add(new Point3D((double)polygon2.Vertex[num3 + 2].X, (double)polygon2.Vertex[num3 + 2].Y, (double)polygon2.Vertex[num3 + 2].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3 + 2].X, (double)polygon2.Normals[num3 + 2].Y, (double)polygon2.Normals[num3 + 2].Z)); list5.Add(new Point((double)polygon2.TexCoords[num3 + 2].X, (double)polygon2.TexCoords[num3 + 2].Y)); builder.AddTriangles(list3, list4, list5); list3.Clear(); list4.Clear(); list5.Clear(); num3 += 3; Label_08AB: if (num3 < polygon2.Vertex.Length) { goto Label_0608; } continue; Label_08E4: list3.Add(new Point3D((double)polygon2.Vertex[num3].X, (double)polygon2.Vertex[num3].Y, (double)polygon2.Vertex[num3].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3].X, (double)polygon2.Normals[num3].Y, (double)polygon2.Normals[num3].Z)); list5.Add(new System.Windows.Point((double)polygon2.TexCoords[num3].X, (double)polygon2.TexCoords[num3].Y)); list3.Add(new Point3D((double)polygon2.Vertex[num3 + 1].X, (double)polygon2.Vertex[num3 + 1].Y, (double)polygon2.Vertex[num3 + 1].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3 + 1].X, (double)polygon2.Normals[num3 + 1].Y, (double)polygon2.Normals[num3 + 1].Z)); list5.Add(new System.Windows.Point((double)polygon2.TexCoords[num3 + 1].X, (double)polygon2.TexCoords[num3 + 1].Y)); list3.Add(new Point3D((double)polygon2.Vertex[num3 + 2].X, (double)polygon2.Vertex[num3 + 2].Y, (double)polygon2.Vertex[num3 + 2].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3 + 2].X, (double)polygon2.Normals[num3 + 2].Y, (double)polygon2.Normals[num3 + 2].Z)); list5.Add(new System.Windows.Point((double)polygon2.TexCoords[num3 + 2].X, (double)polygon2.TexCoords[num3 + 2].Y)); list3.Add(new Point3D((double)polygon2.Vertex[num3 + 3].X, (double)polygon2.Vertex[num3 + 3].Y, (double)polygon2.Vertex[num3 + 3].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3 + 3].X, (double)polygon2.Normals[num3 + 3].Y, (double)polygon2.Normals[num3 + 3].Z)); list5.Add(new System.Windows.Point((double)polygon2.TexCoords[num3 + 3].X, (double)polygon2.TexCoords[num3 + 3].Y)); builder.AddQuads(list3, list4, list5); list3.Clear(); list4.Clear(); list5.Clear(); num3 += 4; Label_0C5E: if (num3 < polygon2.Vertex.Length) { goto Label_08E4; } continue; Label_0C97: list3.Add(new Point3D((double)polygon2.Vertex[num3].X, (double)polygon2.Vertex[num3].Y, (double)polygon2.Vertex[num3].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3].X, (double)polygon2.Normals[num3].Y, (double)polygon2.Normals[num3].Z)); list5.Add(new Point((double)polygon2.TexCoords[num3].X, (double)polygon2.TexCoords[num3].Y)); num3++; Label_0D66: if (num3 < polygon2.Vertex.Length) { goto Label_0C97; } builder.AddTriangleStrip(list3, list4, list5); continue; Label_0DAD: list3.Add(new Point3D((double)polygon2.Vertex[num3].X, (double)polygon2.Vertex[num3].Y, (double)polygon2.Vertex[num3].Z)); list4.Add(new Vector3D((double)polygon2.Normals[num3].X, (double)polygon2.Normals[num3].Y, (double)polygon2.Normals[num3].Z)); list5.Add(new System.Windows.Point((double)polygon2.TexCoords[num3].X, (double)polygon2.TexCoords[num3].Y)); num3++; Label_0E7C: if (num3 < polygon2.Vertex.Length) { goto Label_0DAD; } builder.AddTriangleStrip(list3, list4, list5); } modeld = new GeometryModel3D(builder.ToMesh(false), material2); exporter.Export(modeld); index++; } exporter.Close(); this.writevertex = false; } private Group Process3DCommandRipper(byte[] polydata, NSBMDMaterial m, int jointID, bool color) { Group group = new Group(); Vector3 item = new Vector3(float.NaN, 0f, 0f); System.Drawing.Color white = System.Drawing.Color.White; Vector2 vector2 = new Vector2(float.NaN, 0f); List list = new List(); List list2 = new List(); List list3 = new List(); int num = -1; if (polydata != null) { int index = 0; int length = polydata.Length; int[] numArray = new int[4]; float[] numArray4 = new float[3]; float[] v = numArray4; numArray4 = new float[3]; float[] numArray3 = numArray4; int gCurrentVertex = NSBMDGlRenderer.gCurrentVertex; if (this.Model.Objects.Count > 0) { CurrentMatrix = MatrixStack[stackID].Clone(); } else { CurrentMatrix.LoadIdentity(); } if (this.Model.Objects.Count > 1) { } while (index < length) { int num7 = 0; while (num7 < 4) { if (index >= length) { numArray[num7] = 0xff; } else { numArray[num7] = polydata[index]; index++; } num7++; } for (num7 = 0; (num7 < 4) && (index < length); num7++) { int num6; int num8; int num9; int num10; MTX44 mtx; int num11; int num12; int num13; int num26; switch (numArray[num7]) { case 0x70: { index += 12; continue; } case 0x71: { index += 8; continue; } case 0x72: { index += 4; continue; } case 0x60: { index += 4; continue; } case 80: { index += 4; continue; } case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 0x1d: case 30: case 0x1f: case 0x2c: case 0x2d: case 0x2e: case 0x2f: case 0x11: { continue; } case 0x10: { num8 = Utils.Read4BytesAsInt32(polydata, index); index += 4; continue; } case 0x12: { index += 4; continue; } case 0x13: { index += 4; continue; } case 20: { stackID = Utils.Read4BytesAsInt32(polydata, index) & 0x1f; index += 4; MatrixStack[stackID].CopyValuesTo(CurrentMatrix); continue; } case 0x15: { CurrentMatrix.LoadIdentity(); continue; } case 0x16: { num9 = 0; while (num9 < 0x10) { CurrentMatrix[num9] = ((float)Utils.Read4BytesAsInt32(polydata, index)) / 4096f; index += 4; num9++; } continue; } case 0x17: num9 = 0; goto Label_039C; case 0x18: mtx = new MTX44(); mtx.LoadIdentity(); num9 = 0; goto Label_03E8; case 0x19: mtx = new MTX44(); mtx.LoadIdentity(); num9 = 0; goto Label_0466; case 0x1a: mtx = new MTX44(); mtx.LoadIdentity(); num9 = 0; goto Label_04E3; case 0x1b: { num11 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num12 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num13 = Utils.Read4BytesAsInt32(polydata, index); index += 4; CurrentMatrix.Scale((((float)num11) / 4096f) / this.Model.modelScale, (((float)num12) / 4096f) / this.Model.modelScale, (((float)num13) / 4096f) / this.Model.modelScale); continue; } case 0x1c: { num11 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num12 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num13 = Utils.Read4BytesAsInt32(polydata, index); index += 4; CurrentMatrix.translate((((float)Sign(num11, 0x20)) / 4096f) / this.Model.modelScale, (((float)Sign(num12, 0x20)) / 4096f) / this.Model.modelScale, (((float)Sign(num13, 0x20)) / 4096f) / this.Model.modelScale); continue; } case 0x20: { long num14 = Utils.Read4BytesAsInt32(polydata, index); index += 4; if (gOptColoring) { long num15 = num14 & 0x1fL; long num16 = (num14 >> 5) & 0x1fL; long num17 = (num14 >> 10) & 0x1fL; if (color) { white = System.Drawing.Color.FromArgb((int)(((float)m.Alpha) / 31f), (int)(((float)num15) / 31f), (int)(((float)num16) / 31f), (int)(((float)num17) / 31f)); } } continue; } case 0x21: { long num18 = Utils.Read4BytesAsInt32(polydata, index); index += 4; long num19 = num18 & 0x3ffL; if ((num19 & 0x200L) != 0L) { num19 |= -1024L; } long num20 = (num18 >> 10) & 0x3ffL; if ((num20 & 0x200L) != 0L) { num20 |= -1024L; } long num21 = (num18 >> 20) & 0x3ffL; if ((num21 & 0x200L) != 0L) { num21 |= -1024L; } item = new Vector3(((float)num19) / 512f, ((float)num20) / 512f, ((float)num21) / 512f); continue; } case 0x22: { long num22 = Utils.Read4BytesAsInt32(polydata, index); index += 4; long num23 = num22 & 0xffffL; if ((num23 & 0x8000L) != 0L) { num23 |= -65536L; } long num24 = (num22 >> 0x10) & 0xffffL; if ((num24 & 0x8000L) != 0L) { num24 |= -65536L; } vector2 = new Vector2(((m.scaleS / ((float)m.width)) * (((float)num23) / 16f)) / ((float)(m.flipS + 1)), (-(m.scaleT / ((float)m.height)) * (((float)num24) / 16f)) / ((float)(m.flipT + 1))); continue; } case 0x23: { int num25 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num11 = Sign(num25 & 0xffff, 0x10); num12 = Sign((num25 >> 0x10) & 0xffff, 0x10); num25 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num13 = Sign(num25 & 0xffff, 0x10); v[0] = ((float)num11) / 4096f; v[1] = ((float)num12) / 4096f; v[2] = ((float)num13) / 4096f; if (stackID == -1) { goto Label_08E2; } numArray3 = CurrentMatrix.MultVector(v); list.Add(new Vector3(numArray3[0], numArray3[1], numArray3[2])); list2.Add(item); list3.Add(vector2); goto Label_090F; } case 0x24: num26 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num11 = Sign(num26 & 0x3ff, 10); num12 = Sign((num26 >> 10) & 0x3ff, 10); num13 = Sign((num26 >> 20) & 0x3ff, 10); v[0] = ((float)num11) / 64f; v[1] = ((float)num12) / 64f; v[2] = ((float)num13) / 64f; if (stackID == -1) { goto Label_09E1; } numArray3 = CurrentMatrix.MultVector(v); list.Add(new Vector3(numArray3[0], numArray3[1], numArray3[2])); list2.Add(item); list3.Add(vector2); goto Label_0A0E; case 0x25: { int num27 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num11 = Sign(num27 & 0xffff, 0x10); num12 = Sign((num27 >> 0x10) & 0xffff, 0x10); v[0] = ((float)num11) / 4096f; v[1] = ((float)num12) / 4096f; if (stackID == -1) { goto Label_0ABF; } numArray3 = CurrentMatrix.MultVector(v); list.Add(new Vector3(numArray3[0], numArray3[1], numArray3[2])); list2.Add(item); list3.Add(vector2); goto Label_0AEC; } case 0x26: { int num28 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num11 = Sign(num28 & 0xffff, 0x10); num13 = Sign((num28 >> 0x10) & 0xffff, 0x10); v[0] = ((float)num11) / 4096f; v[2] = ((float)num13) / 4096f; if (stackID == -1) { goto Label_0B9D; } numArray3 = CurrentMatrix.MultVector(v); list.Add(new Vector3(numArray3[0], numArray3[1], numArray3[2])); list2.Add(item); list3.Add(vector2); goto Label_0BCA; } case 0x27: { int num29 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num12 = Sign(num29 & 0xffff, 0x10); num13 = Sign((num29 >> 0x10) & 0xffff, 0x10); v[1] = ((float)num12) / 4096f; v[2] = ((float)num13) / 4096f; if (stackID == -1) { goto Label_0C7B; } numArray3 = CurrentMatrix.MultVector(v); list.Add(new Vector3(numArray3[0], numArray3[1], numArray3[2])); list2.Add(item); list3.Add(vector2); goto Label_0CA8; } case 40: num26 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num11 = Sign(num26 & 0x3ff, 10); num12 = Sign((num26 >> 10) & 0x3ff, 10); num13 = Sign((num26 >> 20) & 0x3ff, 10); v[0] += ((float)num11) / 4096f; v[1] += ((float)num12) / 4096f; v[2] += ((float)num13) / 4096f; if (stackID == -1) { goto Label_0DAA; } numArray3 = CurrentMatrix.MultVector(v); list.Add(new Vector3(numArray3[0], numArray3[1], numArray3[2])); list2.Add(item); list3.Add(vector2); goto Label_0DD7; case 0x29: { num8 = Utils.Read4BytesAsInt32(polydata, index); index += 4; continue; } case 0x2a: { index += 4; continue; } case 0x2b: { index += 4; continue; } case 0x30: { index += 4; continue; } case 0x31: { index += 4; continue; } case 50: { index += 4; continue; } case 0x33: { index += 4; continue; } case 0x34: { index += 0x80; continue; } case 0x40: num6 = Utils.Read4BytesAsInt32(polydata, index); index += 4; num = num6; switch (num6) { case 0: goto Label_0E92; case 1: goto Label_0E97; case 2: goto Label_0E9C; case 3: goto Label_0EA1; } throw new Exception(); case 0x41: switch (num) { case 0: goto Label_0ED1; case 1: goto Label_0EF6; case 2: goto Label_0F1B; case 3: goto Label_0F40; } goto Label_0F67; default: { continue; } } Label_0358: num10 = 0; while (num10 < 3) { CurrentMatrix[num10, num9] = ((float)Utils.Read4BytesAsInt32(polydata, index)) / 4096f; index += 4; num9++; } num9++; Label_039C: if (num9 < 4) { goto Label_0358; } continue; Label_03C1: mtx[num9] = ((float)Utils.Read4BytesAsInt32(polydata, index)) / 4096f; index += 4; num9++; Label_03E8: if (num9 < 0x10) { goto Label_03C1; } CurrentMatrix.MultMatrix(mtx).CopyValuesTo(CurrentMatrix); continue; Label_0425: num10 = 0; while (num10 < 3) { mtx[num10, num9] = ((float)Utils.Read4BytesAsInt32(polydata, index)) / 4096f; index += 4; num9++; } num9++; Label_0466: if (num9 < 4) { goto Label_0425; } CurrentMatrix.MultMatrix(mtx).CopyValuesTo(CurrentMatrix); continue; Label_04A2: num10 = 0; while (num10 < 3) { mtx[num10, num9] = ((float)Utils.Read4BytesAsInt32(polydata, index)) / 4096f; index += 4; num9++; } num9++; Label_04E3: if (num9 < 3) { goto Label_04A2; } CurrentMatrix.MultMatrix(mtx).CopyValuesTo(CurrentMatrix); continue; Label_08E2: list.Add(new Vector3(v[0], v[1], v[2])); list2.Add(item); list3.Add(vector2); Label_090F: if (this.writevertex) { } continue; Label_09E1: list.Add(new Vector3(v[0], v[1], v[2])); list2.Add(item); list3.Add(vector2); Label_0A0E: if (this.writevertex) { } continue; Label_0ABF: list.Add(new Vector3(v[0], v[1], v[2])); list2.Add(item); list3.Add(vector2); Label_0AEC: if (this.writevertex) { } continue; Label_0B9D: list.Add(new Vector3(v[0], v[1], v[2])); list2.Add(item); list3.Add(vector2); Label_0BCA: if (this.writevertex) { } continue; Label_0C7B: list.Add(new Vector3(v[0], v[1], v[2])); list2.Add(item); list3.Add(vector2); Label_0CA8: if (this.writevertex) { } continue; Label_0DAA: list.Add(new Vector3(v[0], v[1], v[2])); list2.Add(item); list3.Add(vector2); Label_0DD7: if (this.writevertex) { } continue; Label_0E92: num6 = 4; continue; Label_0E97: num6 = 7; continue; Label_0E9C: num6 = 5; continue; Label_0EA1: num6 = 8; continue; Label_0ED1: group.Add(new MKDS_Course_Editor.Export3DTools.Polygon(PolygonType.Triangle, list2.ToArray(), list3.ToArray(), list.ToArray())); goto Label_0F67; Label_0EF6: group.Add(new MKDS_Course_Editor.Export3DTools.Polygon(PolygonType.Quad, list2.ToArray(), list3.ToArray(), list.ToArray())); goto Label_0F67; Label_0F1B: group.Add(new MKDS_Course_Editor.Export3DTools.Polygon(PolygonType.TriangleStrip, list2.ToArray(), list3.ToArray(), list.ToArray())); goto Label_0F67; Label_0F40: group.Add(new MKDS_Course_Editor.Export3DTools.Polygon(PolygonType.QuadStrip, list2.ToArray(), list3.ToArray(), list.ToArray())); Label_0F67: list2.Clear(); list.Clear(); list3.Clear(); gCurrentVertex--; if ((gCurrentVertex < 0) && gOptVertexMode) { return group; } } } } return group; } #endregion Methods /*------------------------------------------------------------ combine texture + palette data obtained from NSBMD / NSBTX files This functions convert all textures of a model into 32-bit bitmap for OpenGL use A model has a number of "materials"; Material means a pair of texture and palette. ------------------------------------------------------------*/ } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDLoader.cs ================================================ // Loader for NSBMD files. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System.IO; namespace LibNDSFormats.NSBMD { /// /// Loader for NSBMD data. /// public static class NSBMDLoader { /// /// Load NSBMD from stream. /// /// Stream with NSBMD data. /// NSBMD object. public static NSBMD LoadNSBMD(Stream stream) { return NSBMD.FromStream(stream); } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDMaterial.cs ================================================ // Material type for NSBMD models. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System; using System.Drawing; using System.Collections.Generic; namespace LibNDSFormats.NSBMD { public class NSBMDMaterial { #region Fields (16) public int color0; public int format; public int height; public RGBA[] paldata; public uint palmatid; public string palname = String.Empty; public UInt32 paloffset; public UInt32 palsize; public byte repeat; public byte[] spdata; public byte[] texdata; public List texmatid = new List(); public bool isEnvironmentMap = false; public string texname = String.Empty; public UInt32 texoffset; public UInt32 texsize; public int width; public string MaterialName; public int repeatS; public int repeatT; public int flipS; public int flipT; public float rot; public float scaleT; public float scaleS; public float transT; public float transS; public Color DiffuseColor; public Color AmbientColor; public Color SpecularColor; public Color EmissionColor; public uint PolyAttrib; public int Alpha; public bool diffuseColor; public bool shine; public float[] mtx = null; #endregion Fields #region Methods (1) // Public Methods (1) /// /// Copy data to other NSBMD material /// /// Other NSBMD material. public NSBMDMaterial CopyTo(NSBMDMaterial other1) { NSBMDMaterial other = other1; other.texname = texname; other.texoffset = texoffset; other.texsize = texsize; other.format = format; other.color0 = color0; other.width = width; other.height = height; other.texdata = texdata; other.spdata = spdata; other.MaterialName = MaterialName; return other; } #endregion Methods } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDModel.cs ================================================ // Model definition for NSBMD. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System.Collections.Generic; namespace LibNDSFormats.NSBMD { /// /// NSBMD model type. /// public class NSBMDModel { #region Fields (3) /// /// NSBMD materials. /// public readonly List Materials = new List(); /// /// NSBMD materials. /// public readonly List Textures = new List(); /// /// NSBMD materials. /// public readonly List Palettes = new List(); /// /// NSBMD objects. /// public readonly List Objects = new List(); /// /// NSBMD polygons. /// public readonly List Polygons = new List(); #endregion Fields #region Properties (1) /// /// Model name. /// public string Name { get; set; } public List tex_mat = new List(); public List pal_mat = new List(); public float boundXmin; public float boundYmin; public float boundZmin; public float boundXmax; public float boundYmax; public float boundZmax; public float boundScale; public float modelScale; public int laststackid; #endregion Properties } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDObject.cs ================================================ // Object definiton for NSBMD models. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System; using System.Collections.Generic; namespace LibNDSFormats.NSBMD { /// /// Type for NSBMD objects. /// public class NSBMDObject { #region Fields (7) private readonly float[] _transVect = new float[3]; private float _x; private float _y; private float _z; private const float FACTOR1 = 1f; // StackID used by this object public int RestoreID = -1; // rotation public int StackID = -1; public bool visible = true; public List childs = new List(); public float[] rotate_mtx = NSBMDGlRenderer.loadIdentity(); public float[] scale = new float[3]; public float[] materix = NSBMDGlRenderer.loadIdentity(); public bool isBillboard = false; public bool isYBillboard = false; #endregion Fields #region Properties (12) public bool IsRotated { get; set; } public bool IsRotated2 { get; set; } public bool IsScaled { get; set; } // this object's ParentID object ID public String Name { get; set; } public int Neg { get; set; } // RestoreID is the ID of the matrix in stack{ get; set; } to be restored as current matrix public int ParentID { get; set; } public int Pivot { get; set; } // applies to rotation matrix public float RotA { get; set; } // rotation public float RotB { get; set; } // Name of this object public bool Trans { get; set; } public float[] TransVect { get { return _transVect; } } public float X { get { return _x; } set { _x = value; TransVect[0] = value/FACTOR1; } } public float Y { get { return _y; } set { _y = value; TransVect[1] = value/FACTOR1; } } public float Z { get { return _z; } set { _z = value; TransVect[2] = value/FACTOR1; } } #endregion Properties } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDPalette.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LibNDSFormats.NSBMD { public class NSBMDPalette { public int color0; public RGBA[] paldata; public List palmatid = new List(); public string palname = String.Empty; public UInt32 paloffset; public UInt32 palsize; } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDPolygon.cs ================================================ // Polygon definition for NSBMD models. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System; namespace LibNDSFormats.NSBMD { /// /// Type for NSBMd polygons. /// public class NSBMDPolygon { #region Properties (4) /// /// Used material ID. /// public int MatId { get; set; } /// /// Name of polygon. /// public string Name { get; set; } /// /// Polygon data. /// public byte[] PolyData { get; set; } //public UInt32 DataOffset{ get; set; } //public int DataSize{ get; set; } /// /// StackID of polygon. /// public int StackID { get; set; } public int JointID { get; set; } #endregion Properties } } ================================================ FILE: DS_Map/LibNDSFormats/NSBMD/NSBMDTexture.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LibNDSFormats.NSBMD { public class NSBMDTexture { public int format; public int height; public byte repeat; public byte[] spdata; public byte[] texdata; public List texmatid = new List(); public string texname = String.Empty; public UInt32 texoffset; public UInt32 texsize; public int width; public int color0; } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTA.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Windows.Forms; namespace MKDS_Course_Editor.NSBTA { public class NSBTA { public struct NSBTA_File { public header Header; public struct header { public string ID; public byte[] Magic; public Int32 file_size; public Int16 header_size; public Int16 nSection; public Int32[] Section_Offset; } public srt0 SRT0; public struct srt0 //Scale Rotation and Translation { public string ID; public Int32 Size; //3D Info Structure public byte dummy; public byte num_objs; public short section_size; public UnknownBlock unknownBlock; public Info infoBlock; public string[] names; public struct UnknownBlock { public short header_size; public short section_size; public int constant; // 0x017F public short[] unknown1; public short[] unknown2; } public struct Info { public short header_size; public short data_size; public info[] Data; public struct info { public Int32 MAToffset; } } } public M_AT MAT; public struct M_AT { public string ID; public Int16 Unknown1; public byte Unknown2; public byte Unknown3; //3D Info Structure public byte dummy; public byte num_objs; public short section_size; public UnknownBlock unknownBlock; public Info infoBlock; public string[] names; public struct UnknownBlock { public short header_size; public short section_size; public int constant; // 0x017F public short[] unknown1; public short[] unknown2; } public struct Info { public short header_size; public short data_size; public info[] Data; public struct info { public Int16[] frame; public Int16[] var1; public Int16[] var2; public Int16[] var3; public int[] frameStep; } } } public srtData[] SRTData; public struct srtData { public decimal[] scaleS; public decimal[] scaleT; public decimal[] rotate; public decimal[] translateS; public decimal[] translateT; } } public static NSBTA_File Read(string Filename) { EndianBinaryReader er = new EndianBinaryReader(File.OpenRead(Filename), Endianness.LittleEndian); NSBTA_File ns = new NSBTA_File(); ns.Header.ID = er.ReadString(Encoding.ASCII, 4); if (ns.Header.ID == "BTA0") { ns.Header.Magic = er.ReadBytes(4); ns.Header.file_size = er.ReadInt32(); ns.Header.header_size = er.ReadInt16(); ns.Header.nSection = er.ReadInt16(); ns.Header.Section_Offset = new Int32[ns.Header.nSection]; for (int i = 0; i < ns.Header.nSection; i++) { ns.Header.Section_Offset[i] = er.ReadInt32(); } ns.SRT0.ID = er.ReadString(Encoding.ASCII, 4); if (ns.SRT0.ID == "SRT0") { ns.SRT0.Size = er.ReadInt32(); //3D Info Structure ns.SRT0.dummy = er.ReadByte(); ns.SRT0.num_objs = er.ReadByte(); ns.SRT0.section_size = er.ReadInt16(); ns.SRT0.unknownBlock.header_size = er.ReadInt16(); ns.SRT0.unknownBlock.section_size = er.ReadInt16(); ns.SRT0.unknownBlock.constant = er.ReadInt32(); ns.SRT0.unknownBlock.unknown1 = new short[ns.SRT0.num_objs]; ns.SRT0.unknownBlock.unknown2 = new short[ns.SRT0.num_objs]; for (int i = 0; i < ns.SRT0.num_objs; i++) { ns.SRT0.unknownBlock.unknown1[i] = er.ReadInt16(); ns.SRT0.unknownBlock.unknown2[i] = er.ReadInt16(); } ns.SRT0.infoBlock.header_size = er.ReadInt16(); ns.SRT0.infoBlock.data_size = er.ReadInt16(); ns.SRT0.infoBlock.Data = new NSBTA_File.srt0.Info.info[ns.SRT0.num_objs]; for (int i = 0; i < ns.SRT0.num_objs; i++) { ns.SRT0.infoBlock.Data[i].MAToffset = er.ReadInt32(); } ns.SRT0.names = new string[ns.SRT0.num_objs]; for (int i = 0; i < ns.SRT0.num_objs; i++) { ns.SRT0.names[i] = er.ReadString(Encoding.ASCII, 16).Replace("\0", ""); } ns.MAT.ID = er.ReadString(Encoding.ASCII, 4); if (ns.MAT.ID == "M" + (char)0x00 + "AT") { ns.MAT.Unknown1 = er.ReadInt16(); ns.MAT.Unknown2 = er.ReadByte(); ns.MAT.Unknown3 = er.ReadByte(); //3D Info Structure ns.MAT.dummy = er.ReadByte(); ns.MAT.num_objs = er.ReadByte(); ns.MAT.section_size = er.ReadInt16(); ns.MAT.unknownBlock.header_size = er.ReadInt16(); ns.MAT.unknownBlock.section_size = er.ReadInt16(); ns.MAT.unknownBlock.constant = er.ReadInt32(); ns.MAT.unknownBlock.unknown1 = new short[ns.MAT.num_objs]; ns.MAT.unknownBlock.unknown2 = new short[ns.MAT.num_objs]; for (int i = 0; i < ns.MAT.num_objs; i++) { ns.MAT.unknownBlock.unknown1[i] = er.ReadInt16(); ns.MAT.unknownBlock.unknown2[i] = er.ReadInt16(); } ns.MAT.infoBlock.header_size = er.ReadInt16(); ns.MAT.infoBlock.data_size = er.ReadInt16(); ns.MAT.infoBlock.Data = new NSBTA_File.M_AT.Info.info[ns.MAT.num_objs]; ns.SRTData = new NSBTA_File.srtData[ns.MAT.num_objs]; for (int i = 0; i < ns.MAT.num_objs; i++) { ns.MAT.infoBlock.Data[i].frame = new short[5]; ns.MAT.infoBlock.Data[i].var1 = new short[5]; ns.MAT.infoBlock.Data[i].var2 = new short[5]; ns.MAT.infoBlock.Data[i].var3 = new short[5]; ns.MAT.infoBlock.Data[i].frameStep = new int[5]; for (int j = 0; j < 5; j++) { ns.MAT.infoBlock.Data[i].frame[j] = er.ReadInt16(); ns.MAT.infoBlock.Data[i].var1[j] = (short)(er.ReadInt16() / 4096); ns.MAT.infoBlock.Data[i].var2[j] = er.ReadInt16(); ns.MAT.infoBlock.Data[i].var3[j] = (short)(er.ReadInt16() / 4096); } if (ns.MAT.infoBlock.Data[i].var1[0] > 1) { ns.SRTData[i].scaleS = new decimal[1]; ns.SRTData[i].scaleS[0] = Math.Abs(ns.MAT.infoBlock.Data[i].var2[0] / 4096); } else { ns.SRTData[i].scaleS = new decimal[ns.MAT.infoBlock.Data[i].frame[0]]; } if (ns.MAT.infoBlock.Data[i].var1[1] > 1) { ns.SRTData[i].scaleT = new decimal[1]; ns.SRTData[i].scaleT[0] = Math.Abs(ns.MAT.infoBlock.Data[i].var2[1] / 4096); } else { ns.SRTData[i].scaleT = new decimal[ns.MAT.infoBlock.Data[i].frame[1]]; } if (ns.MAT.infoBlock.Data[i].var1[2] > 1) { ns.SRTData[i].rotate = new decimal[2]; ns.SRTData[i].rotate[0] = ns.MAT.infoBlock.Data[i].var2[2]; ns.SRTData[i].rotate[1] = ns.MAT.infoBlock.Data[i].var3[2]; } else { ns.SRTData[i].rotate = new decimal[ns.MAT.infoBlock.Data[i].frame[2] * 2]; } if (ns.MAT.infoBlock.Data[i].var1[3] > 1) { ns.SRTData[i].translateS = new decimal[1]; ns.SRTData[i].translateS[0] = Math.Abs(ns.MAT.infoBlock.Data[i].var2[3] / 4096); } else { ns.SRTData[i].translateS = new decimal[ns.MAT.infoBlock.Data[i].frame[3]]; ns.MAT.infoBlock.Data[i].frameStep[3] = Math.Abs(ns.MAT.infoBlock.Data[i].var1[3] >> 1); } if (ns.MAT.infoBlock.Data[i].var1[4] > 1) { ns.SRTData[i].translateT = new decimal[1]; ns.SRTData[i].translateT[0] = Math.Abs(ns.MAT.infoBlock.Data[i].var2[4] / 4096); } else { ns.SRTData[i].translateT = new decimal[ns.MAT.infoBlock.Data[i].frame[4]]; ns.MAT.infoBlock.Data[i].frameStep[4] = Math.Abs(ns.MAT.infoBlock.Data[i].var1[4] >> 1); } //ns.SRTData[i].scaleS = new decimal[ns.MAT.infoBlock.Data[i].var1[0] == 3 ? 1 : ns.MAT.infoBlock.Data[i].frame[0]]; //ns.SRTData[i].scaleT = new decimal[ns.MAT.infoBlock.Data[i].var1[1] == 3 ? 1 : ns.MAT.infoBlock.Data[i].frame[1]]; //ns.SRTData[i].rotate = new decimal[ns.MAT.infoBlock.Data[i].var1[2] == 2 ? ns.MAT.infoBlock.Data[i].var1[2] == 3 ? 2 : 1 : ns.MAT.infoBlock.Data[i].frame[2]]; //ns.SRTData[i].translateS = new decimal[ns.MAT.infoBlock.Data[i].var1[3] == 3 ? 1 : ns.MAT.infoBlock.Data[i].frame[3]]; //ns.SRTData[i].translateT = new decimal[ns.MAT.infoBlock.Data[i].var1[4] == 3 ? 1 : ns.MAT.infoBlock.Data[i].frame[4]]; } ns.MAT.names = new string[ns.MAT.num_objs]; for (int i = 0; i < ns.MAT.num_objs; i++) { ns.MAT.names[i] = er.ReadString(Encoding.ASCII, 16).Replace("\0", ""); } for (int i = 0; i < ns.MAT.num_objs; i++) { if (ns.SRTData[i].scaleS.Length != 1) { er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.SRT0.section_size + ns.MAT.infoBlock.Data[i].var2[0] + 8; for (int j = 0; j < ns.SRTData[i].scaleS.Length; j++) { ns.SRTData[i].scaleS[j] = (decimal)(er.ReadInt16() / 4096d); } } if (ns.SRTData[i].scaleT.Length != 1) { er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.SRT0.section_size + ns.MAT.infoBlock.Data[i].var2[1] + 8; for (int j = 0; j < ns.SRTData[i].scaleT.Length; j++) { ns.SRTData[i].scaleT[j] = (decimal)(er.ReadInt16() / 4096d); } } if (ns.SRTData[i].rotate.Length != 2) { er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.SRT0.section_size + ns.MAT.infoBlock.Data[i].var2[2] + 8; for (int j = 0; j < ns.SRTData[i].rotate.Length; j++) { ns.SRTData[i].rotate[j] = (decimal)(er.ReadInt16() / 4096d); } } if (ns.SRTData[i].translateS.Length != 1) { er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.SRT0.section_size + ns.MAT.infoBlock.Data[i].var2[3] + 8; for (int j = 0; j < ns.SRTData[i].translateS.Length; j += (ns.MAT.infoBlock.Data[i].frameStep[3] == 0 ? 1 : ns.MAT.infoBlock.Data[i].frameStep[3])) { decimal value = (decimal)(er.ReadInt16() / 4096d); for (int k = 0; k < (ns.MAT.infoBlock.Data[i].frameStep[3] == 0 ? 1 : ns.MAT.infoBlock.Data[i].frameStep[3]); k++) { ns.SRTData[i].translateS[j + k] = value; } } } if (ns.SRTData[i].translateT.Length != 1) { er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.SRT0.section_size + ns.MAT.infoBlock.Data[i].var2[4] + 8; for (int j = 0; j < ns.SRTData[i].translateT.Length; j += (ns.MAT.infoBlock.Data[i].frameStep[4] == 0 ? 1 : ns.MAT.infoBlock.Data[i].frameStep[4])) { decimal value = (decimal)(er.ReadInt16() / 4096d); for (int k = 0; k < (ns.MAT.infoBlock.Data[i].frameStep[4] == 0 ? 1 : ns.MAT.infoBlock.Data[i].frameStep[4]); k++) { ns.SRTData[i].translateT[j + k] = value; } } } } } else { MessageBox.Show("Error"); er.Close(); return ns; } } else { MessageBox.Show("Error"); er.Close(); return ns; } } else { MessageBox.Show("Error"); er.Close(); return ns; } er.Close(); return ns; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTP.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace MKDS_Course_Editor.NSBTP { public class NSBTP { public struct NSBTP_File { public header Header; public struct header { public string ID; public byte[] Magic; public Int32 file_size; public Int16 header_size; public Int16 nSection; public Int32[] Section_Offset; } public pat0 PAT0; public struct pat0 //Scale Rotation and Translation { public string ID; public Int32 Size; //3D Info Structure public byte dummy; public byte num_objs; public short section_size; public UnknownBlock unknownBlock; public Info infoBlock; public string[] names; public struct UnknownBlock { public short header_size; public short section_size; public int constant; // 0x017F public short[] unknown1; public short[] unknown2; } public struct Info { public short header_size; public short data_size; public info[] Data; public struct info { public Int32 MPToffset; } } } public M_PT MPT; public struct M_PT { public string ID; public Int16 NoFrames; public byte NoTex; public byte NoPal; public Int16 Texoffset; public Int16 Paloffset; //3D Info Structure public byte dummy; public byte num_objs; public short section_size; public UnknownBlock unknownBlock; public Info infoBlock; public string[] names; public struct UnknownBlock { public short header_size; public short section_size; public int constant; // 0x017F public short[] unknown1; public short[] unknown2; } public struct Info { public short header_size; public short data_size; public info[] Data; public struct info { public Int32 KeyFrames; public short Unknown1; public short Offset; } } } public animData[] AnimData; public struct animData { public keyFrame[] KeyFrames; public struct keyFrame { public short Start; public byte texId; public byte palId; public string texName; public string palName; } } } public static NSBTP_File Read(string Filename) { EndianBinaryReader er = new EndianBinaryReader(File.OpenRead(Filename), Endianness.LittleEndian); NSBTP_File ns = new NSBTP_File(); ns.Header.ID = er.ReadString(Encoding.ASCII, 4); if (ns.Header.ID == "BTP0") { ns.Header.Magic = er.ReadBytes(4); ns.Header.file_size = er.ReadInt32(); ns.Header.header_size = er.ReadInt16(); ns.Header.nSection = er.ReadInt16(); ns.Header.Section_Offset = new Int32[ns.Header.nSection]; for (int i = 0; i < ns.Header.nSection; i++) { ns.Header.Section_Offset[i] = er.ReadInt32(); } ns.PAT0.ID = er.ReadString(Encoding.ASCII, 4); if (ns.PAT0.ID == "PAT0") { ns.PAT0.Size = er.ReadInt32(); //3D Info Structure ns.PAT0.dummy = er.ReadByte(); ns.PAT0.num_objs = er.ReadByte(); ns.PAT0.section_size = er.ReadInt16(); ns.PAT0.unknownBlock.header_size = er.ReadInt16(); ns.PAT0.unknownBlock.section_size = er.ReadInt16(); ns.PAT0.unknownBlock.constant = er.ReadInt32(); ns.PAT0.unknownBlock.unknown1 = new short[ns.PAT0.num_objs]; ns.PAT0.unknownBlock.unknown2 = new short[ns.PAT0.num_objs]; for (int i = 0; i < ns.PAT0.num_objs; i++) { ns.PAT0.unknownBlock.unknown1[i] = er.ReadInt16(); ns.PAT0.unknownBlock.unknown2[i] = er.ReadInt16(); } ns.PAT0.infoBlock.header_size = er.ReadInt16(); ns.PAT0.infoBlock.data_size = er.ReadInt16(); ns.PAT0.infoBlock.Data = new NSBTP_File.pat0.Info.info[ns.PAT0.num_objs]; for (int i = 0; i < ns.PAT0.num_objs; i++) { ns.PAT0.infoBlock.Data[i].MPToffset = er.ReadInt32(); } ns.PAT0.names = new string[ns.PAT0.num_objs]; for (int i = 0; i < ns.PAT0.num_objs; i++) { ns.PAT0.names[i] = er.ReadString(Encoding.ASCII, 16).Replace("\0", ""); } ns.MPT.ID = er.ReadString(Encoding.ASCII, 4); if (ns.MPT.ID == "M" + (char)0x00 + "PT") { ns.MPT.NoFrames = er.ReadInt16(); ns.MPT.NoTex = er.ReadByte(); ns.MPT.NoPal = er.ReadByte(); ns.MPT.Texoffset = er.ReadInt16(); ns.MPT.Paloffset = er.ReadInt16(); //3D Info Structure ns.MPT.dummy = er.ReadByte(); ns.MPT.num_objs = er.ReadByte(); ns.MPT.section_size = er.ReadInt16(); ns.MPT.unknownBlock.header_size = er.ReadInt16(); ns.MPT.unknownBlock.section_size = er.ReadInt16(); ns.MPT.unknownBlock.constant = er.ReadInt32(); ns.MPT.unknownBlock.unknown1 = new short[ns.MPT.num_objs]; ns.MPT.unknownBlock.unknown2 = new short[ns.MPT.num_objs]; for (int i = 0; i < ns.MPT.num_objs; i++) { ns.MPT.unknownBlock.unknown1[i] = er.ReadInt16(); ns.MPT.unknownBlock.unknown2[i] = er.ReadInt16(); } ns.MPT.infoBlock.header_size = er.ReadInt16(); ns.MPT.infoBlock.data_size = er.ReadInt16(); ns.MPT.infoBlock.Data = new NSBTP_File.M_PT.Info.info[ns.MPT.num_objs]; ns.AnimData = new NSBTP_File.animData[ns.MPT.num_objs]; for (int i = 0; i < ns.MPT.num_objs; i++) { ns.MPT.infoBlock.Data[i].KeyFrames = er.ReadInt32(); ns.MPT.infoBlock.Data[i].Unknown1 = er.ReadInt16(); ns.MPT.infoBlock.Data[i].Offset = er.ReadInt16(); ns.AnimData[i].KeyFrames = new NSBTP_File.animData.keyFrame[ns.MPT.infoBlock.Data[i].KeyFrames]; for (int j = 0; j < ns.MPT.infoBlock.Data[i].KeyFrames; j++) { long curpos = er.BaseStream.Position; er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.PAT0.section_size + ns.MPT.infoBlock.Data[i].Offset + j * 4 + 8; ns.AnimData[i].KeyFrames[j].Start = er.ReadInt16(); ns.AnimData[i].KeyFrames[j].texId = er.ReadByte(); ns.AnimData[i].KeyFrames[j].palId = er.ReadByte(); er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.PAT0.section_size + ns.MPT.Texoffset + ns.AnimData[i].KeyFrames[j].texId * 16 + 8; ns.AnimData[i].KeyFrames[j].texName = LibNDSFormats.Utils.ReadNSBMDString(er); er.BaseStream.Position = ns.Header.Section_Offset[0] + ns.PAT0.section_size + ns.MPT.Paloffset + ns.AnimData[i].KeyFrames[j].palId * 16 + 8; ns.AnimData[i].KeyFrames[j].palName = LibNDSFormats.Utils.ReadNSBMDString(er); er.BaseStream.Position = curpos; } } ns.MPT.names = new string[ns.MPT.num_objs]; for (int i = 0; i < ns.MPT.num_objs; i++) { ns.MPT.names[i] = LibNDSFormats.Utils.ReadNSBMDString(er); } } else { MessageBox.Show("NSBTP Error"); er.Close(); return ns; } } else { MessageBox.Show("NSBTP Error"); er.Close(); return ns; } } else { MessageBox.Show("NSBTP Error"); er.Close(); return ns; } er.Close(); return ns; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/File.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using System.IO; namespace NSMBe4.DSFileSystem { public class File : IComparable { public bool isSystemFile; byte[] file2; protected string nameP; public string name { get { return nameP; } } protected int idP; public int id { get { return idP; } } protected Directory parentDirP; public Directory parentDir { get { return parentDirP; } } //if allocationFile is not null, //these are the offsets within the alloc file where the offsets //of this file are found. protected File beginFile; protected int beginOffset; protected File endFile; protected int endOffset; protected bool endIsSize; //means that the end offset is the size of the file protected bool fixedFile; //means that the file cant be moved nor changed size public int fileBegin; public int fileSize; public int alignment = 4; // word align by default public bool canChangeOffset = true; //false for arm9 and 7 bins public Filesystem parent; protected Object editedBy = null; public Boolean beingEdited { get { return editedBy != null; } } public File(Filesystem parent, Directory parentDir, string name) { this.parent = parent; this.parentDirP = parentDir; this.nameP = name; this.fileBegin = 0; this.fileSize = (int)parent.s.Length; this.isSystemFile = true; } public File(Filesystem parent, Directory parentDir, bool systemFile, int id, string name, File alFile, int alBeg, int alEnd) { this.parent = parent; this.parentDirP = parentDir; this.isSystemFile = systemFile; this.idP = id; this.nameP = name; this.beginFile = alFile; this.endFile = alFile; this.beginOffset = alBeg; this.endOffset = alEnd; refreshOffsets(); } public File(Filesystem parent, Directory parentDir, bool systemFile, int id, string name, File alFile, int alBeg, int alEnd, bool endsize) { this.parent = parent; this.parentDirP = parentDir; this.isSystemFile = systemFile; this.idP = id; this.nameP = name; this.beginFile = alFile; this.endFile = alFile; this.beginOffset = alBeg; this.endOffset = alEnd; this.endIsSize = endsize; refreshOffsets(); } public File(Filesystem parent, Directory parentDir, bool systemFile, int id, string name, int alBeg, int alSize) { this.parent = parent; this.parentDirP = parentDir; this.isSystemFile = systemFile; this.idP = id; this.nameP = name; this.fileBegin = alBeg; this.fileSize = alSize; refreshOffsets(); } public virtual byte[] getContents() { // enableEdition(); byte[] file = new byte[fileSize]; parent.s.Seek(fileBegin, SeekOrigin.Begin); parent.s.Read(file, 0, file.Length); return file; } public void dumpFile(int ind) { for (int i = 0; i < ind; i++) Console.Out.Write(" "); Console.Out.WriteLine("[" + id + "] " + name + ", at " + fileBegin.ToString("X") + ", size: " + fileSize); } public virtual void refreshOffsets() { if (beginFile != null) fileBegin = (int)beginFile.getUintAt(beginOffset) + parent.fileDataOffset; if (endFile != null) { int end = (int)endFile.getUintAt(endOffset); if (endIsSize) fileSize = (int)end; else fileSize = (int)end + parent.fileDataOffset - fileBegin; } } public virtual void saveOffsets() { if (beginFile != null) beginFile.setUintAt(beginOffset, (uint)(fileBegin - parent.fileDataOffset)); if (endFile != null) if (endIsSize) endFile.setUintAt(endOffset, (uint)fileSize); else endFile.setUintAt(endOffset, (uint)(fileBegin + fileSize - parent.fileDataOffset)); } public uint getUintAt(int offset) { enableEdition(); long pos = parent.s.Position; parent.s.Seek(fileBegin + offset, SeekOrigin.Begin); uint res = 0; for (int i = 0; i < 4; i++) { res |= (uint)parent.s.ReadByte() << 8 * i; } parent.s.Seek(pos, SeekOrigin.Begin); return res; } public void setUintAt(int offset, uint val) { enableEdition(); long pos = parent.s.Position; parent.s.Seek(fileBegin + offset, SeekOrigin.Begin); for (int i = 0; i < 4; i++) { parent.s.WriteByte((byte)(val & 0xFF)); val >>= 8; } parent.s.Seek(pos, SeekOrigin.Begin); } public ushort getUshortAt(int offset) { enableEdition(); long pos = parent.s.Position; parent.s.Seek(fileBegin + offset, SeekOrigin.Begin); ushort res = 0; for (int i = 0; i < 2; i++) { res |= (ushort)(parent.s.ReadByte() << 8 * i); } parent.s.Seek(pos, SeekOrigin.Begin); return res; } public void setUshortAt(int offset, ushort val) { enableEdition(); long pos = parent.s.Position; parent.s.Seek(fileBegin + offset, SeekOrigin.Begin); for (int i = 0; i < 2; i++) { parent.s.WriteByte((byte)(val & 0xFF)); val >>= 8; } parent.s.Seek(pos, SeekOrigin.Begin); } public byte getByteAt(int offs) { enableEdition(); long pos = parent.s.Position; parent.s.Seek(fileBegin + offs, SeekOrigin.Begin); byte res = (byte)parent.s.ReadByte(); parent.s.Seek(pos, SeekOrigin.Begin); return res; } public void setByteAt(int offs, byte val) { enableEdition(); long pos = parent.s.Position; parent.s.Seek(fileBegin + offs, SeekOrigin.Begin); parent.s.WriteByte(val); parent.s.Seek(pos, SeekOrigin.Begin); } public bool isAGoodEditor(object editor) { if (!beingEdited) return false; if (editor == editedBy) return true; if (editor is InlineFile && inlineEditors.Contains(editor as InlineFile)) return true; return false; } public virtual void replace(byte[] newFile, object editor) { //if (!isAGoodEditor(editor)) // throw new Exception("NOT CORRECT EDITOR " + name); if (newFile.Length != fileSize && fixedFile) throw new Exception("TRYING TO RESIZE FIXED FILE: " + name); // enableEdition(); // Console.Out.WriteLine("Replacing: [" + id + "] " + name); int newStart = fileBegin; if (newFile.Length > fileSize) //if we insert a bigger file { //it might not fit in the current place if (canChangeOffset) { newStart = parent.findFreeSpace(newFile.Length, alignment); if (newStart % alignment != 0) newStart += alignment - newStart % alignment; } else { parent.allFiles.Sort(); if (!(parent.allFiles.IndexOf(this) == parent.allFiles.Count - 1)) { File nextFile = parent.allFiles[parent.allFiles.IndexOf(this) + 1]; parent.moveAllFiles(nextFile, fileBegin + newFile.Length); } } } /*else if (parent is NarcFilesystem) { parent.allFiles.Sort(); if (!(parent.allFiles.IndexOf(this) == parent.allFiles.Count - 1)) { File nextFile = parent.allFiles[parent.allFiles.IndexOf(this) + 1]; parent.moveAllFiles(nextFile, fileBegin + newFile.Length); } }*/ if (newStart % alignment != 0) Console.Out.Write("Warning: File is not being aligned: " + nameP + ", at " + newStart.ToString("X")); //write the file parent.s.Seek(newStart, SeekOrigin.Begin); parent.s.Write(newFile, 0, newFile.Length); //if (parent is NarcFilesystem) // parent.s.SetLength(parent.allFiles[parent.allFiles.Count - 1].fileBegin + parent.allFiles[parent.allFiles.Count - 1].fileSize + 10); //update ending pos fileBegin = newStart; fileSize = newFile.Length; saveOffsets(); parent.fileMoved(this); //NEEDED FOR UPDATING TOTAL USED ROM SIZE IN HEADER } public void moveTo(int newOffs) { if (newOffs % alignment != 0) Console.Out.Write("Warning: File is not being aligned: " + nameP + ", at " + newOffs.ToString("X")); byte[] data = getContents(); parent.s.Seek(newOffs, SeekOrigin.Begin); parent.s.Write(data, 0, data.Length); fileBegin = newOffs; saveOffsets(); } public int CompareTo(object obj) { File f = obj as File; if (fileBegin == f.fileBegin) return fileSize.CompareTo(f.fileSize); return fileBegin.CompareTo(f.fileBegin); } public virtual void beginEdit(Object editor) { if (beingEdited) throw new Exception(); else editedBy = editor; } public virtual void endEdit(Object editor) { //if (!beingEdited) // throw new Exception("NOT EDITING FILE " + name); //if (editor != editedBy) // throw new Exception("NOT CORRECT EDITOR" + name); editedBy = null; } public bool beingEditedBy(Object ed) { return ed == editedBy; } public bool isAddrInFile(int addr) { return addr >= fileBegin && addr < fileBegin + fileSize; } private List inlineEditors = new List(); public void beginEditInline(InlineFile f) { if (inlineEditors.Count == 0) beginEdit(this); inlineEditors.Add(f); } public void endEditInline(InlineFile f) { if (!inlineEditors.Contains(f)) throw new Exception("ERROR: INLINE FILE"); inlineEditors.Remove(f); if (inlineEditors.Count == 0) endEdit(this); } //Intended for compressed files like overlays. //Must decompress the file so it's editable and still playable. public virtual void enableEdition() { } public string getPath() { return parentDir.getPath() + "/" + name; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/Filepallete.cs ================================================ using System; using System.Collections.Generic; using System.Text; using NSMBe4.DSFileSystem; using System.Drawing; namespace NSMBe4 { public class FilePalette : Palette { File f; string name; public FilePalette(File f) : this(f, f.name) { } public FilePalette(File f, string name) { this.f = f; f.beginEdit(this); this.name = name; pal = arrayToPalette(f.getContents()); if (pal.Length != 0) { //pal[0] = Color.Transparent; } } public static Color[] arrayToPalette(byte[] data) { ByteArrayInputStream ii = new ByteArrayInputStream(data); Color[] pal = new Color[data.Length / 2]; for (int i = 0; i < pal.Length; i++) { pal[i] = NSMBTileset.fromRGB15(ii.ReadUInt16()); } return pal; } public override void save() { ByteArrayOutputStream oo = new ByteArrayOutputStream(); for (int i = 0; i < pal.Length; i++) oo.writeUShort(NSMBTileset.toRGB15(pal[i])); f.replace(oo.getArray(), this); } public override byte[] getRawData() { ByteArrayOutputStream oo = new ByteArrayOutputStream(); for (int i = 0; i < pal.Length; i++) oo.writeUShort(NSMBTileset.toRGB15(pal[i])); return oo.getArray(); } public override void close() { f.endEdit(this); } public override string ToString() { return name; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/NSBTXLoader.cs ================================================ // Loader for NSBTX files/data. // Code adapted from kiwi.ds' NSBMD Model Viewer. using System; using System.Collections.Generic; using System.IO; using LibNDSFormats.NSBMD; using System.Linq; using System.Windows.Forms; namespace LibNDSFormats.NSBTX { /// /// Loader for NSBTX files & data. /// public static class NSBTXLoader { public static object MessageBoxIcons { get; private set; } #region Methods (2) // Public Methods (2) /// /// Load NSBTX from stream. /// /// Stream to use. /// Material definitions. public static IEnumerable LoadNsbtx(Stream stream, out List texs, out List pals) { texs = new List(); pals = new List(); var materials = new List(); var reader = new BinaryReader(stream); int id = reader.ReadInt32(); if (id != NSBMD.NSBMD.NDS_TYPE_BTX0) { //Console.WriteLine("The header of this texture file is null!!!"); return null; } reader.BaseStream.Position += 2; int i = reader.ReadUInt16(); if (i == NSBMD.NSBMD.NDS_TYPE_UNK1) { i = reader.ReadInt32(); if (i == stream.Length) { int numblock = reader.ReadInt32(); numblock >>= 16; int r = reader.ReadInt32(); id = reader.ReadInt32(); if (numblock == 1 && r == 0x14) { int texnum; int palnum; materials.AddRange(ReadTex0(stream, 0x14, out texnum, out palnum, out texs, out pals)); } } } return materials; } /// /// Load NSBTX from file. /// /// File to use. /// Material definitions. public static IEnumerable LoadNsbtx(FileInfo fileInfo, out List texs, out List pals) { texs = new List(); pals = new List(); IEnumerable result = null; using (var fileStream = new FileStream(fileInfo.FullName, FileMode.Open)) { result = LoadNsbtx(fileStream, out texs, out pals); } return result; } /// /// Load materials in stream. /// /// Stream to use. /// Material definitions. public static IEnumerable ReadTex0(Stream stream, int blockoffset, out int ptexnum, out int ppalnum, out List texs, out List pals) { EndianBinaryReader reader = new EndianBinaryReader(stream, Endianness.LittleEndian); UInt32 blocksize, blockptr, blocklimit; int texnum; UInt32 texdataoffset; int texdatasize; UInt32 sptexoffset; // for 4x4 compressed texels only int sptexsize; // for 4x4 compressed texels only UInt32 spdataoffset; // for 4x4 compressed texels only int palnum; UInt32 paldefoffset; UInt32 paldataoffset; int paldatasize; NSBMDMaterial[] material = null; int i, j; texs = new List(); pals = new List(); blockptr = (uint)(blockoffset + 4); // already read the block ID, so skip 4 bytes blocksize = reader.ReadUInt32(); // block size blocklimit = (uint)(blocksize + blockoffset); //Console.WriteLine("DEBUG: blockoffset = {0}, blocksize = {1}", blockoffset, blocksize); stream.Skip(4); // skip 4 padding 0s texdatasize = reader.ReadUInt16() << 3; // total texture data size div8 stream.Skip(6); // skip 6 bytes texdataoffset = (uint)(reader.ReadUInt32() + blockoffset); stream.Skip(4); // skip 4 padding 0s sptexsize = reader.ReadUInt16() << 3; // for format 5 4x4-texel, data size div8 stream.Skip(6); // skip 6 bytesmhm sptexoffset = (uint)(reader.ReadUInt32() + blockoffset); // for format 5 4x4-texel, data offset spdataoffset = (uint)(reader.ReadUInt32() + blockoffset); // for format 5 4x4-texel, palette info stream.Skip(4); // skip 4 bytes paldatasize = reader.ReadUInt16() << 3; // total palette data size div8 stream.Skip(2); // skip 2 bytes paldefoffset = (uint)(reader.ReadUInt32() + blockoffset); paldataoffset = (uint)(reader.ReadUInt32() + blockoffset); // printf( "texdataoffset = %08x texdatasize = %08x\n", texdataoffset, texdatasize ); // printf( "sptexoffset = %08x sptexsize = %08x spdataoffset = %08x\n", sptexoffset, sptexsize, spdataoffset ); // printf( "paldataoffset = %08x paldatasize = %08x\n", paldataoffset, paldatasize ); //////////////////////////////////////////////// // texture definition stream.Skip(1); // skip dummy '0' texnum = reader.ReadByte(); // no of texture blockptr = (uint)stream.Position; stream.Seek(paldefoffset, SeekOrigin.Begin); stream.Skip(1); // skip dummy '0' palnum = reader.ReadByte(); // no of palette stream.Seek(blockptr, SeekOrigin.Begin); //Console.WriteLine("texnum = {0}, palnum = {1}", texnum, palnum); // allocate memory for material, great enough to hold all texture and palette material = new NSBMDMaterial[(texnum > palnum ? texnum : palnum)]; for (i = 0; i < material.Length; i++) material[i] = new NSBMDMaterial(); stream.Skip(14 + (texnum * 4)); // go straight to texture info for (i = 0; i < texnum; i++) { UInt32 offset; int param; int format; int width; int height; var mat = material[i]; offset = (uint)(reader.ReadUInt16() << 3); param = reader.ReadUInt16(); // texture parameter stream.Skip(4); // skip 4 bytes format = (param >> 10) & 7; // format 0..7, see DSTek width = 8 << ((param >> 4) & 7); height = 8 << ((param >> 7) & 7); mat.color0 = (param >> 13) & 1; if (format == 5) mat.texoffset = offset + sptexoffset; // 4x4-Texel Compressed Texture else mat.texoffset = offset + texdataoffset; mat.format = format; mat.width = width; mat.height = height; NSBMDTexture t = new NSBMDTexture(); t.format = format; t.width = width; t.height = height; t.color0 = (param >> 13) & 1; texs.Add(t); } //////////////////////////////////////////// // copy texture names for (i = 0; i < texnum; i++) { material[i].texname = Utils.ReadNSBMDString(reader); reader.BaseStream.Position -= 16; texs[i].texname = Utils.ReadNSBMDString(reader); } //////////////////////////////////////////////// // calculate each texture's size for (i = 0; i < texnum; i++) { int[] bpp = { 0, 8, 2, 4, 8, 2, 8, 16 }; var mat = material[i]; mat.texsize = (uint)(mat.width * mat.height * bpp[mat.format] / 8); //Console.WriteLine("tex {0} '{1}': offset = {2} size = {3} [W,H] = [{4}, {5}]", //i, mat.texname, mat.texoffset, mat.texsize, mat.width, mat.height); texs[i].texsize = (uint)(mat.width * mat.height * bpp[mat.format] / 8); } //////////////////////////////////////////////// // palette definition stream.Seek(paldefoffset + 2, SeekOrigin.Begin); // skip palnum, already read stream.Seek(14 + (palnum * 4), SeekOrigin.Current); // go straight to palette info for (i = 0; i < palnum; i++) { uint curOffset = (uint)((reader.ReadUInt16() << 3) + paldataoffset); stream.Seek(2, SeekOrigin.Current); // skip 2 bytes material[i].paloffset = curOffset; NSBMDPalette t = new NSBMDPalette(); t.paloffset = curOffset; pals.Add(t); } //////////////////////////////////////////////// // copy palette names for (i = 0; i < palnum; i++) { var mat = material[i]; mat.palname = Utils.ReadNSBMDString(reader); reader.BaseStream.Position -= 16; pals[i].palname = Utils.ReadNSBMDString(reader); } //////////////////////////////////////////////// // calculate each palette's size // assume the palettes are stored sequentially /*for (i = 0; i < palnum - 1; i++) { int r; var mat = material[i]; r = i; try { while (material[r].paloffset == mat.paloffset) r++; } catch { } // below is RotA stupid way to calculate the size of palette: next's offset - current's offset // it works most of the time if (r != palnum) { mat.palsize = material[r].paloffset - mat.paloffset; pals[i].palsize = material[r].paloffset - mat.paloffset; } else { mat.palsize = blocklimit - mat.paloffset; pals[i].palsize = blocklimit - mat.paloffset; } //printf("pal '%s' size = %d\n", mat->palname, mat->palsize); } material[i].palsize = blocklimit - material[i].paloffset; pals[i].palsize = blocklimit - material[i].paloffset;*/ List offsets = new List(); for (int k = 0; k < pals.Count; k++) { if (!offsets.Contains((int)pals[k].paloffset)) { offsets.Add((int)pals[k].paloffset); } } offsets.Add((int)blocklimit); offsets.Sort(); for (int k = 0; k < pals.Count; k++) { int pallength; int l = -1; do { l++; } while (offsets[l] - pals[k].paloffset <= 0);//nsbtx.PalInfo.infoBlock.PalInfo[i + j].Palette_Offset - nsbtx.PalInfo.infoBlock.PalInfo[i].Palette_Offset == 0) pallength = offsets[l] - (int)pals[k].paloffset; //RGBA[] c_ = pals[k].paldata; //List c = new List(); //c.AddRange(pals[k].paldata.Take(pallength / 2)); //pals[k].paldata = c.ToArray(); pals[k].palsize = (uint)pallength; material[k].palsize = (uint)pallength; } //////////////////////////////////////////////// // traverse each texture for (i = 0; i < texnum; i++) { var mat = material[i]; stream.Seek(mat.texoffset, SeekOrigin.Begin); //////////////////////////////////////////////// // read texture into memory byte[] by = reader.ReadBytes((int)mat.texsize); mat.texdata = by; texs[i].texdata = by; //Console.WriteLine("DEBUG: texoffset = {0}, texsize = {1}", mat.texoffset, mat.texsize); //////////////////////////////////////////////// // additional data for format 5 4x4 compressed texels if (mat.format == 5) { UInt32 r = mat.texsize / 2;//>> 1; stream.Seek(spdataoffset + (mat.texoffset - sptexoffset) / 2, SeekOrigin.Begin); by = reader.ReadBytes((int)r); mat.spdata = by; texs[i].spdata = by; //Console.WriteLine("DEBUG: 4x4-texel spdataoffset = {0}, spdatasize = {1}", spdataoffset, r); //spdataoffset += r; } } //////////////////////////////////////////////// // traverse each palette for (i = 0; i < palnum; i++) { try { NSBMDMaterial mat = material[i]; var palentry = mat.palsize >> 1; RGBA[] rgbq = new RGBA[palentry]; //Console.WriteLine("DEBUG: converting pal '{0}', palentry = {1}", mat.palname, palentry); stream.Seek(mat.paloffset, SeekOrigin.Begin); for (j = 0; j < palentry; j++) { ushort p = reader.ReadUInt16(); rgbq[j].R = (byte)(((p >> 0) & 0x1f) << 3); // red rgbq[j].G = (byte)(((p >> 5) & 0x1f) << 3); // green rgbq[j].B = (byte)(((p >> 10) & 0x1f) << 3); // blue //rgbq[j].RotA = (p&0x8000) ? 0xff : 0; rgbq[j].A = (p & 0x8000) == 0 ? (byte)0xff : (byte)0;//0xff; // alpha } mat.paldata = rgbq; pals[i].paldata = rgbq; } catch { } } ptexnum = texnum; ppalnum = palnum; return material; } #endregion Methods } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/Rom.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using NSMBe4.DSFileSystem; using System.IO; using System.Runtime.InteropServices; /** * This class handles internal NSMB-specific data in the ROM. * Right now it can decompress the Overlay data and read * data from several tables contained in the ROM. * * Data description about overlay 0: (From an old text file) * 76 max tilesets. Each table is 0x130 big. * * 2F8E4: Object definition indexes (unt+hd) table * 2FA14: Object definitions (unt) table * 2FB44: Tile behaviours (chk) table * 2FC74: Animated tileset graphics (ncg) table * 2FDA4: Jyotyu tile behaviour file * 30D74: Background graphics (ncg) table * 30EA4: Tileset graphics (ncg) table * 30FD4: Foreground graphics (ncg) table * 31104: Foreground design (nsc) table * 31234: Background design (nsc) table * 31364: Background palette (ncl) table * 31494: Tileset palette (ncl) table * 315C4: Foreground palette (ncl) table * 316F4: Map16 (pnl) table * **/ namespace NSMBe4 { public static class ROM { public static byte[] Overlay0; //public static NitroROMFilesystem FS; public static string filename; public static System.IO.FileInfo romfile; public static Dictionary> descriptions; public static string DescriptionPath; /*public static void load(String filename) { ROM.filename = filename; FS = new NitroROMFilesystem(filename); romfile = new System.IO.FileInfo(filename); LoadDescriptions(); LoadOverlay0(); if (Overlay0 != null) { if (Overlay0[28] == 0x84) Region = Origin.US; else if (Overlay0[28] == 0x64) Region = Origin.EU; else if (Overlay0[28] == 0x04) Region = Origin.JP; else if (Overlay0[28] == 0xC4) Region = Origin.KR; else { Region = Origin.US; System.Windows.Forms.MessageBox.Show(LanguageManager.Get("General", "UnknownRegion"), LanguageManager.Get("General", "Warning"), System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); } } else { Region = Origin.US; System.Windows.Forms.MessageBox.Show(LanguageManager.Get("General", "UnknownRegion"), LanguageManager.Get("General", "Warning"), System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); } // SaveOverlay0(); }*/ //public static void close() //{ // if (FS is null){ return; } // FS.close(); //} /*public static void SaveOverlay0() { OverlayFile ov = FS.arm9ovs[0]; ov.decompress(); ov.beginEdit(FS); ov.replace(Overlay0, FS); ov.endEdit(FS); }*/ /*public static void LoadOverlay0() { if (FS.arm9ovs.Length == 0) return; OverlayFile ov = FS.arm9ovs[0]; ov.decompress(); Overlay0 = ov.getContents(); }*/ public static void LoadDescriptions() { DescriptionPath = filename.Substring(0, filename.LastIndexOf('.') + 1) + "txt"; descriptions = new Dictionary>(); int lineNum = 0; try { if (!System.IO.File.Exists(DescriptionPath)){ return; } System.IO.StreamReader s = new System.IO.StreamReader(DescriptionPath); List curList = null; while (!s.EndOfStream) { lineNum++; string line = s.ReadLine(); if (line != "") { if (line.StartsWith("[")) { int num = int.Parse(line.Substring(1, line.Length - 2)); descriptions.Add(num, new List()); curList = descriptions[num]; } else if (curList != null) { curList.Add(line); } } } s.Close(); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("An error occurred while reading tileset descriptions on line " + lineNum.ToString() + ".\n\nThe original error message was:\n" + ex.Message); } } public enum Origin { US = 0, EU = 1, JP = 2, KR = 3 } public static Origin Region = Origin.US; public enum Data : int {// Number_FileOffset = 0, Table_TS_UNT_HD = 1, Table_TS_UNT = 2, Table_TS_CHK = 3, Table_TS_ANIM_NCG = 4, Table_BG_NCG = 5, Table_TS_NCG = 6, Table_FG_NCG = 7, Table_FG_NSC = 8, Table_BG_NSC = 9, Table_BG_NCL = 10, Table_TS_NCL = 11, Table_FG_NCL = 12, Table_TS_PNL = 13, Table_Jyotyu_NCL = 14, File_Jyotyu_CHK = 15, File_Modifiers = 16, Table_Sprite_CLASSID = 17, } public static int[,] Offsets = { {131, 135, 131, 131}, //File Offset (Overlay Count) {0x2F8E4, 0x2F0F8, 0x2ECE4, 0x2EDA4}, //TS_UNT_HD {0x2FA14, 0x2F228, 0x2EE14, 0x2EED4}, //TS_UNT {0x2FB44, 0x2F358, 0x2EF44, 0x2F004}, //TS_CHK {0x2FC74, 0x2F488, 0x2F074, 0x2F134}, //TS_ANIM_NCG {0x30D74, 0x30588, 0x30174, 0x30234}, //BG_NCG {0x30EA4, 0x306B8, 0x302A4, 0x30364}, //TS_NCG {0x30FD4, 0x307E8, 0x303D4, 0x30494}, //FG_NCG {0x31104, 0x30918, 0x30504, 0x305C4}, //FG_NSC {0x31234, 0x30A48, 0x30634, 0x306F4}, //BG_NSC {0x31364, 0x30B78, 0x30764, 0x30824}, //BG_NCL {0x31494, 0x30CA8, 0x30894, 0x30954}, //TS_NCL {0x315C4, 0x30DD8, 0x309C4, 0x30A84}, //FG_NCL {0x316F4, 0x30F08, 0x30AF4, 0x30BB4}, //TS_PNL {0x30CD8, 0x304EC, 0x300D8, 0x30198}, //Jyotyu_NCL {0x2FDA4, 0x2F5B8, 0x2F1A4, 0x2FC74}, //Jyotyu_CHK {0x2C930, 0x2BDF0, 0x2BD30, 0x2BDF0}, //Modifiers {0x29BD8, 0x00000, 0x00000, 0x00000}, //Sprite Class IDs {0x2CBBC, 0, 0, 0}, //weird table¿? }; public static int[] FileSizes = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //Don't include tables 0x400, //Jyotyu_CHK 0x288, //Modifiers }; public static ushort GetFileIDFromTable(int id, Data datatype) { return GetFileIDFromTable(id, GetOffset(datatype)); } public static ushort GetFileIDFromTable(int id, int tableoffset) { int off = tableoffset + (id << 2); return (ushort)((Overlay0[off] | (Overlay0[off + 1] << 8)) + GetOffset(Data.Number_FileOffset)); } public static ushort GetClassIDFromTable(int id) { int off = GetOffset(Data.Table_Sprite_CLASSID) + (id << 1); return (ushort)((Overlay0[off] | (Overlay0[off + 1] << 8))); } public static void SetFileIDFromTable(int id, Data datatype, ushort fid) { SetFileIDFromTable(id, GetOffset(datatype), fid); } public static string getDataForSprite(int id) { int offs = 0x2CBBC + id * 20; string s = ""; for (int i = 0; i < 20; i++) s += String.Format("{0:X2}", Overlay0[offs++]) + " "; return s; } public static void SetFileIDFromTable(int id, int tableoffset, ushort fid) { int off = tableoffset + (id << 2); fid -= (ushort)GetOffset(Data.Number_FileOffset); Overlay0[off] = (byte)(fid & 0xFF); Overlay0[off + 1] = (byte)(fid >> 8); } public static int GetOffset(Data datatype) { return Offsets[(int)datatype, (int)Region]; } public static byte[] GetInlineFile(Data datatype) { byte[] output = new byte[FileSizes[(int)datatype]]; Array.Copy(Overlay0, GetOffset(datatype), output, 0, output.Length); return output; } //public static void ReplaceInlineFile(Data datatype, byte[] NewFile) //{ // Array.Copy(NewFile, 0, Overlay0, GetOffset(datatype), NewFile.Length); // SaveOverlay0(); //} public static byte[] decompressOverlay(byte[] sourcedata) { uint DataVar1, DataVar2; //uint last 8-5 bytes DataVar1 = (uint)(sourcedata[sourcedata.Length - 8] | (sourcedata[sourcedata.Length - 7] << 8) | (sourcedata[sourcedata.Length - 6] << 16) | (sourcedata[sourcedata.Length - 5] << 24)); //uint last 4 bytes DataVar2 = (uint)(sourcedata[sourcedata.Length - 4] | (sourcedata[sourcedata.Length - 3] << 8) | (sourcedata[sourcedata.Length - 2] << 16) | (sourcedata[sourcedata.Length - 1] << 24)); byte[] memory = new byte[sourcedata.Length + DataVar2]; sourcedata.CopyTo(memory, 0); uint r0, r1, r2, r3, r5, r6, r7, r12; bool N, V; r0 = (uint)sourcedata.Length; if (r0 == 0) { return null; } r1 = DataVar1; r2 = DataVar2; r2 = r0 + r2; //length + datavar2 -> decompressed length r3 = r0 - (r1 >> 0x18); //delete the latest 3 bits?? r1 &= 0xFFFFFF; //save the latest 3 bits r1 = r0 - r1; a958: if (r3 <= r1) { //if r1 is 0 they will be equal goto a9B8; //return the memory buffer } r3 -= 1; r5 = memory[r3]; r6 = 8; a968: SubS(out r6, r6, 1, out N, out V); if (N != V) { goto a958; } if ((r5 & 0x80) != 0) { goto a984; } r3 -= 1; r0 = memory[r3]; r2 -= 1; memory[r2] = (byte)r0; goto a9AC; a984: r3 -= 1; r12 = memory[r3]; r3 -= 1; r7 = memory[r3]; r7 |= (r12 << 8); r7 &= 0xFFF; r7 += 2; r12 += 0x20; a99C: r0 = memory[r2 + r7]; r2 -= 1; memory[r2] = (byte)r0; SubS(out r12, r12, 0x10, out N, out V); if (N == V) { goto a99C; } a9AC: r5 <<= 1; if (r3 > r1) { goto a968; } a9B8: return memory; } private static void SubS(out uint dest, uint v1, uint v2, out bool N, out bool V) { dest = v1 - v2; N = (dest & 2147483648) != 0; V = ((((v1 & 2147483648) != 0) && ((v2 & 2147483648) == 0) && ((dest & 2147483648) == 0)) || ((v1 & 2147483648) == 0) && ((v2 & 2147483648) != 0) && ((dest & 2147483648) != 0)); } static private unsafe int[] Search(byte* source, int position, int lenght) //Function taken from Nintenlord's compressor. All credits for this code goes to Nintenlord! { int SlidingWindowSize = 4096; int ReadAheadBufferSize = 18; if (position >= lenght) return new int[2] { -1, 0 }; if ((position < 2) || ((lenght - position) < 2)) return new int[2] { 0, 0 }; List results = new List(); for (int i = 1; (i < SlidingWindowSize) && (i < position); i++) { if (source[position - (i + 1)] == source[position]) { results.Add(i + 1); } } if (results.Count == 0) return new int[2] { 0, 0 }; int amountOfBytes = 0; bool Continue = true; while (amountOfBytes < ReadAheadBufferSize && Continue) { amountOfBytes++; for (int i = results.Count - 1; i >= 0; i--) { if (source[position + amountOfBytes] != source[position - results[i] + (amountOfBytes % results[i])]) { if (results.Count > 1) results.RemoveAt(i); else Continue = false; } } } return new int[2] { amountOfBytes, results[0] }; //lenght of data is first, then position } static public unsafe byte[] LZ77_Compress(byte[] source, bool header = false)//Function taken from Nintenlord's compressor. All credits for this code goes to Nintenlord! { fixed (byte* pointer = &source[0]) { return Compress(pointer, source.Length, header); } } static public unsafe byte[] Compress(byte* source, int lenght, bool header = false) //Function taken from Nintenlord's compressor. All credits for this code goes to Nintenlord! { int position = 0; int BlockSize = 8; List CompressedData = new List(); if (header) //0x37375A4C { CompressedData.Add(0x4C); CompressedData.Add(0x5A); CompressedData.Add(0x37); CompressedData.Add(0x37); } CompressedData.Add(0x10); { byte* pointer = (byte*)&lenght; for (int i = 0; i < 3; i++) CompressedData.Add(*(pointer++)); } while (position < lenght) { byte isCompressed = 0; List tempList = new List(); for (int i = 0; i < BlockSize; i++) { int[] searchResult = Search(source, position, lenght); if (searchResult[0] > 2) { byte add = (byte)((((searchResult[0] - 3) & 0xF) << 4) + (((searchResult[1] - 1) >> 8) & 0xF)); tempList.Add(add); add = (byte)((searchResult[1] - 1) & 0xFF); tempList.Add(add); position += searchResult[0]; isCompressed |= (byte)(1 << (BlockSize - (i + 1))); } else if (searchResult[0] >= 0) tempList.Add(source[position++]); else break; } CompressedData.Add(isCompressed); CompressedData.AddRange(tempList); } while (CompressedData.Count % 4 != 0) CompressedData.Add(0); return CompressedData.ToArray(); } public static byte[] LZ77_FastCompress(byte[] source) { int DataLen = 4; DataLen += source.Length; DataLen += (int)Math.Ceiling((double)source.Length / 8); byte[] dest = new byte[DataLen]; dest[0] = 0; dest[1] = (byte)(source.Length & 0xFF); dest[2] = (byte)((source.Length >> 8) & 0xFF); dest[3] = (byte)((source.Length >> 16) & 0xFF); int FilePos = 4; int UntilNext = 0; for (int SrcPos = 0; SrcPos < source.Length; SrcPos++) { if (UntilNext == 0) { dest[FilePos] = 0; FilePos++; UntilNext = 8; } dest[FilePos] = source[SrcPos]; FilePos++; UntilNext -= 1; } return dest; } public static byte[] LZ77_Decompress(byte[] source) { // This code converted from Elitemap int DataLen; DataLen = source[1] | (source[2] << 8) | (source[3] << 16); byte[] dest = new byte[DataLen]; int i, j, xin, xout; xin = 4; xout = 0; int length, offset, windowOffset, data; byte d; while (DataLen > 0) { d = source[xin++]; if (d != 0) { for (i = 0; i < 8; i++) { if ((d & 0x80) != 0) { data = ((source[xin] << 8) | source[xin + 1]); xin += 2; length = (data >> 12) + 3; offset = data & 0xFFF; windowOffset = xout - offset - 1; for (j = 0; j < length; j++) { dest[xout++] = dest[windowOffset++]; DataLen--; if (DataLen == 0) { return dest; } } } else { dest[xout++] = source[xin++]; DataLen--; if (DataLen == 0) { return dest; } } d <<= 1; } } else { for (i = 0; i < 8; i++) { dest[xout++] = source[xin++]; DataLen--; if (DataLen == 0) { return dest; } } } } return dest; } public static byte[] LZ77_DecompressWithHeader(byte[] source) { // This code converted from Elitemap int DataLen; DataLen = source[5] | (source[6] << 8) | (source[7] << 16); byte[] dest = new byte[DataLen]; int i, j, xin, xout; xin = 8; xout = 0; int length, offset, windowOffset, data; byte d; while (DataLen > 0) { d = source[xin++]; if (d != 0) { for (i = 0; i < 8; i++) { if ((d & 0x80) != 0) { data = ((source[xin] << 8) | source[xin + 1]); xin += 2; length = (data >> 12) + 3; offset = data & 0xFFF; windowOffset = xout - offset - 1; for (j = 0; j < length; j++) { dest[xout++] = dest[windowOffset++]; DataLen--; if (DataLen == 0) { return dest; } } } else { dest[xout++] = source[xin++]; DataLen--; if (DataLen == 0) { return dest; } } d <<= 1; } } else { for (i = 0; i < 8; i++) { dest[xout++] = source[xin++]; DataLen--; if (DataLen == 0) { return dest; } } } } return dest; } private static ushort[] CRC16Table = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 }; // from ndstool public static ushort CalcCRC16(byte[] data) { ushort crc = 0xFFFF; for (int i = 0; i < data.Length; i++) { crc = (ushort)((crc >> 8) ^ CRC16Table[(crc ^ data[i]) & 0xFF]); } return crc; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/bytearrayinputstream.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; namespace NSMBe4 { public class ByteArrayInputStream { private byte[] array; private uint pos = 0, origin = 0; private Stack savedPositions = new Stack(); public ByteArrayInputStream(byte[] array) { this.array = array; pos = 0; } public void setOrigin(uint o) { this.origin = o; } public void savePos() { savedPositions.Push(pos); } public void loadPos() { pos = savedPositions.Pop(); } public int available { get { return (int)(array.Length - pos - origin); } } public bool lengthAvailable(int len) { return available >= len; } public byte readByte() { return array[origin + pos++]; } public void dumpAsciiData() { for (int i = 0; i < array.Length; i++) { Console.Out.Write((char)array[i]); if ((i % 60) == 0) Console.Out.WriteLine(); } } public void write(byte[] data) { Array.Copy(data, 0, array, pos + origin, data.Length); pos += (uint)data.Length; } public void writeByte(byte b) { array[origin + pos++] = b; } public void seek(uint pos) { this.pos = pos; } public void seek(int pos) { this.pos = (uint)pos; } public void skip(uint bytes) { pos += bytes; } public byte[] getData() { return array; } public void skipback(uint bytes) { pos -= bytes; } public uint getPos() { return pos; } public ushort ReadUInt16() { pos += 2; return (ushort)(array[pos - 2 + origin] | array[pos - 1 + origin] << 8); } public uint readUInt() { uint res = 0; for (int i = 0; i < 4; i++) { res |= (uint)readByte() << 8 * i; } return res; } public int readInt() { uint res = 0; for (int i = 0; i < 4; i++) { res |= (uint)readByte() << 8 * i; } return (int)res; } public long readLong() { long res = 0; for (int i = 0; i < 8; i++) { res |= (long)readByte() << 8 * i; } return res; } public void read(byte[] dest) { Array.Copy(array, pos + origin, dest, 0, dest.Length); pos += (uint)(dest.Length); } public bool end() { return pos + origin >= array.Length; } public string ReadString(int l) { if (l == 0){ return ""; } // simple error checking byte[] arr = new byte[l]; read(arr); StringBuilder NewStr = new StringBuilder(l); for (int i = 0; i < l; i++) if (arr[i] != 0) NewStr.Append((char)arr[i]); return NewStr.ToString().Trim(); } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/directory.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; namespace NSMBe4.DSFileSystem { public class Directory { private bool isSystemFolderP; public bool isSystemFolder { get { return isSystemFolderP; } } private string nameP; public string name { get { return nameP; } } private int idP; public int id { get { return idP; } } private Directory parentDirP; public Directory parentDir { get { return parentDirP; } } public List childrenFiles = new List(); public List childrenDirs = new List(); private Filesystem parent; public Directory(Filesystem parent, Directory parentDir, bool system, string name, int id) { this.parent = parent; this.parentDirP = parentDir; this.isSystemFolderP = system; this.nameP = name; this.idP = id; } public void dumpFiles() { dumpFiles(2); } public void dumpFiles(int ind) { for (int i = 0; i < ind; i++) Console.Out.Write(" "); Console.Out.WriteLine("[DIR" + id + "] " + name); foreach (Directory d in childrenDirs) d.dumpFiles(ind + 4); foreach (File f in childrenFiles) f.dumpFile(ind + 4); } public string getPath() { if (parentDir is null) return "FS"; else return parentDir.getPath() + "/" + name; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/externalfilesystemsource.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using System.IO; namespace NSMBe4.DSFileSystem { public class ExternalFilesystemSource : FilesystemSource { public string fileName; public ExternalFilesystemSource(string n) { this.fileName = n; } public override Stream load() { s = new MemoryStream(System.IO.File.ReadAllBytes(fileName)); return s; } public override void save() { System.IO.File.WriteAllBytes(fileName,((MemoryStream)s).ToArray()); //just do nothing, any modifications are directly written to disk } public override void close() { s.Close(); } public override string getDescription() { return fileName; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/filesystem2.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using System.IO; namespace NSMBe4.DSFileSystem { public class Filesystem { protected FilesystemSource source; public List allFiles = new List(); public List allDirs = new List(); protected Dictionary filesById = new Dictionary(); // protected Dictionary filesByName = new Dictionary(); protected Dictionary dirsById = new Dictionary(); // protected Dictionary dirsByName = new Dictionary(); public Stream s; public Directory mainDir; protected File freeSpaceDelimiter; public int fileDataOffset = 0; //public FilesystemBrowser viewer; public Filesystem(FilesystemSource fs) { this.source = fs; this.s = source.load(); } public File getFileById(int id) { if (!filesById.ContainsKey(id)) return null; return filesById[id]; } public File getFileByName(string name) { foreach (File f in allFiles) if (!f.isSystemFile && f.name == name) return f; return null; } public Directory getDirByPath(string path) { string[] shit = path.Split(new char[] { '/' }); Directory dir = mainDir; for (int i = 0; i < shit.Length; i++) { Directory newDir = null; foreach (Directory d in dir.childrenDirs) if (d.name == shit[i]) { newDir = d; break; } if (newDir is null){ return null; } dir = newDir; } return dir; } protected void addFile(File f) { allFiles.Add(f); if (f.id != -1) if (!filesById.ContainsKey(f.id)) filesById.Add(f.id, f); // filesByName.Add(f.name, f); } protected void addDir(Directory d) { allDirs.Add(d); if (d.id != -1) dirsById.Add(d.id, d); // dirsByName.Add(d.name, d); } //Tries to find LEN bytes of continuous unused space AFTER the freeSpaceDelimiter (usually fat or fnt) public int findFreeSpace(int len, int align) { allFiles.Sort(); //sort by offset File bestSpace = null; int bestSpaceLeft = int.MaxValue; for (int i = allFiles.IndexOf(freeSpaceDelimiter); i < allFiles.Count - 1; i++) { int spBegin = allFiles[i].fileBegin + allFiles[i].fileSize; //- 1 + 1; if (spBegin % align != 0) spBegin += align - spBegin % align; int spEnd = allFiles[i + 1].fileBegin - 1; if (spEnd % align != 0) spEnd -= spEnd % align; int spSize = spEnd - spBegin + 1; if (spSize >= len) { int spLeft = len - spSize; if (spLeft < bestSpaceLeft && (allFiles[i].fileBegin >= 0x1400000)) { bestSpaceLeft = spLeft; bestSpace = allFiles[i]; } } } if (bestSpace != null) return bestSpace.fileBegin + bestSpace.fileSize + 10; else //if (allFiles[allFiles.Count - 1].fileBegin >= 0x1400000) return allFiles[allFiles.Count - 1].fileBegin + allFiles[allFiles.Count - 1].fileSize + 10; // else // return 0x1400000; //just add the file at the very end //The 0x1400000 hack is not needed anymore. We now know what data we were overwriting: the RSA sig. //See http://board.dirbaio.net/thread.php?id=185 for more details... } //yeah, i'm tired of looking through the dump myself ;) public bool findErrors() { allFiles.Sort(); bool res = false; for (int i = 0; i < allFiles.Count - 1; i++) { int firstEnd = allFiles[i].fileBegin + allFiles[i].fileSize - 1; int secondStart = allFiles[i + 1].fileBegin; if (firstEnd >= secondStart) { Console.Out.WriteLine("ERROR: FILES OVERLAP:"); allFiles[i].dumpFile(2); allFiles[i + 1].dumpFile(2); res = true; } } return res; } public void close() { source.close(); } public void save() { source.save(); } public void dumpFilesOrdered(TextWriter outs) { allFiles.Sort(); foreach (File f in allFiles) outs.WriteLine(f.fileBegin.ToString("X8") + " .. " + (f.fileBegin + f.fileSize - 1).ToString("X8") + ": " + f.getPath()); } public virtual void fileMoved(File f) { } public int getFilesystemEnd() { allFiles.Sort(); File lastFile = allFiles[allFiles.Count - 1]; int end = lastFile.fileBegin + lastFile.fileSize; //well, 1 byte doesnt matter return end; } public uint readUInt(Stream s) { uint res = 0; for (int i = 0; i < 4; i++) { res |= (uint)s.ReadByte() << 8 * i; } return res; } public void moveAllFiles(File first, int firstOffs) { allFiles.Sort(); Console.Out.WriteLine("Moving file " + first.name); Console.Out.WriteLine("Into " + firstOffs.ToString("X")); int firstStart = first.fileBegin; int diff = (int)firstOffs - (int)firstStart; Console.Out.WriteLine("DIFF " + diff.ToString("X")); //if (diff < 0) //throw new Exception("DOSADJODJOSAJD"); // return; //WARNING: I assume all the aligns are powers of 2 int maxAlign = 4; for (int i = allFiles.IndexOf(first); i < allFiles.Count; i++) { if (allFiles[i].alignment > maxAlign) maxAlign = allFiles[i].alignment; } //To preserve the alignment of all the moved files if (diff % maxAlign != 0) diff += (int)(maxAlign - diff % maxAlign); int fsEnd = getFilesystemEnd(); int toCopy = (int)fsEnd - (int)firstStart; byte[] data = new byte[toCopy]; s.Seek(firstStart, SeekOrigin.Begin); s.Read(data, 0, toCopy); s.Seek(firstStart + diff, SeekOrigin.Begin); s.Write(data, 0, toCopy); for (int i = allFiles.IndexOf(first); i < allFiles.Count; i++) allFiles[i].fileBegin += diff; for (int i = allFiles.IndexOf(first); i < allFiles.Count; i++) allFiles[i].saveOffsets(); } //public void filesystemModified() //{ // if (viewer != null && !viewer.IsDisposed) // viewer.Load(this); //} } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/filesystemsource.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using System.IO; namespace NSMBe4.DSFileSystem { public abstract class FilesystemSource { protected Stream s; public abstract Stream load(); public abstract void save(); public abstract void close(); public abstract string getDescription(); } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/image3d.cs ================================================ using System; using System.Collections.Generic; using System.Text; using NSMBe4.DSFileSystem; namespace NSMBe4 { public class Image3D : PixelPalettedImage { private InlineFile f; private byte[] data; public bool color0Transp; public int width, height; public byte bpp { get { return bpps[format]; } } // 0 1 2 3 4 5 6 7 public static byte[] bpps = new byte[] { 0, 8, 2, 4, 8, 2, 8, 16 }; public static string[] formatNames = { "Error?", //0 "A3I5 Translucent", //1 "2bpp Paletted", //2 "4bpp Paletted", //3 "8bpp Paletted",//4 "4x4-Texeled",//5 "A5I3 Translucent",//6 "16-bit Color Texture" //7 }; public Image3D(InlineFile f, bool color0, int width, int height, int format, long offset2) { this.f = f; this.color0Transp = color0; this.color0 = color0; this.width = width; this.height = height; this.format = format; offset = offset2; f.beginEdit(this); data = f.getContents(); } private int getPixelVal(int x, int y) { int i = x + y * width; if (bpp == 8){ return data[i]; } if (bpp == 16){ return data[i * 2] | data[i * 2 + 1] << 8; } if (bpp == 4) { int res = data[i / 2]; res = res >> ((i % 2) * 4); res &= 0xF; return res; } if (bpp == 2) { int res = data[i / 4]; res = res >> ((i % 4) * 2); res &= 0x3; return res; } throw new Exception("Unsupported BPP Value: " + bpp); } private void setPixelVal(int x, int y, int v) { int i = x + y * width; if (bpp == 8){ data[i] = (byte)v; } else if (bpp == 16) { data[i * 2] = (byte)(v & 0xFF); data[i * 2 + 1] = (byte)((v >> 8) & 0xFF); } else if (bpp == 4) { int res = data[i / 2]; res &= ~(0xF << ((i % 2) * 4)); res |= (v & 0xF) << ((i % 2) * 4); data[i / 2] = (byte)res; } else if (bpp == 2) { int res = data[i / 4]; res &= ~(0xF << ((i % 4) * 2)); res |= (v & 0xF) << ((i % 4) * 2); data[i / 4] = (byte)res; } else throw new Exception("Unsupported BPP Value: " + bpp); } public override int getPixel(int x, int y) { if (x < 0 || x >= width){ return 0; } if (y < 0 || y >= height){ return 0; } int val = getPixelVal(x, y); if (format == 1){ val &= 0x1F; } if (format == 6){ val &= 0x07; } return val; } public override void setPixel(int x, int y, int c) { if (x < 0 || x >= width){ return; } if (y < 0 || y >= height){ return; } if (format == 1) { c &= 0x1F; c |= getPixelVal(x, y) & (~0x1F); } if (format == 6) { c &= 0x07; c |= getPixelVal(x, y) & (~0x07); } setPixelVal(x, y, c); } public override int getWidth() { return width; } public override int getHeight() { return height; } public override byte[] getRawData() { return data; } public override byte[] getRawData5() { return null; } public override void setRawData(byte[] data) { this.data = (byte[])data.Clone(); } public override void save() { f.replace(data, this); } public override void close() { f.endEdit(this); } public override string ToString() { return name; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/image3dformat5.cs ================================================ using System; using System.Collections.Generic; using System.Text; using NSMBe4.DSFileSystem; using System.Drawing; using NSMBe4.NSBMD; namespace NSMBe4 { public class Image3Dformat5 : PalettedImage { InlineFile f; InlineFile f5; byte[] fdata; byte[] f5data; int width, height; public Image3Dformat5(InlineFile f, InlineFile f5, int width, int height) { this.f = f; this.f5 = f5; f.beginEdit(this); f5.beginEdit(this); this.width = width; this.height = height; offset = f.fileBegin; offset5 = f5.fileBegin; fdata = f.getContents(); f5data = f5.getContents(); format = 5; } public override int getWidth() { return width; } public override int getHeight() { return height; } public override Bitmap render(Palette p) { int w = getWidth(); int h = getHeight(); Bitmap b = new Bitmap(w, h); ByteArrayInputStream f5data = new ByteArrayInputStream(f5.getContents()); ByteArrayInputStream data = new ByteArrayInputStream(f.getContents()); for (uint y = 0; y < h / 4; y++) for (uint x = 0; x < w / 4; x++) { ushort palDat = f5data.ReadUInt16(); ushort palOffs = (ushort)((palDat & 0x3FFF) * 2); ushort mode = (ushort)((palDat >> 14) & 3); for (uint yy = 0; yy < 4; yy++) { byte row = data.readByte(); for (uint xx = 0; xx < 4; xx++) { byte color = (byte)(row >> (byte)(xx * 2)); color &= 3; Color col; col = p.getColorSafe(palOffs + color); switch (mode) { case 0: if (color == 3){ col = Color.Transparent; } break; case 1: if (color == 2){ col = ImageTiler.colorMean(p.getColorSafe(palOffs), p.getColorSafe(palOffs + 1), 1, 1); } if (color == 3){ col = Color.Transparent; } break; case 3: if (color == 2){ col = ImageTiler.colorMean(p.getColorSafe(palOffs), p.getColorSafe(palOffs + 1), 5, 3); } if (color == 3){ col = ImageTiler.colorMean(p.getColorSafe(palOffs), p.getColorSafe(palOffs + 1), 3, 5); } break; } b.SetPixel((int)x * 4 + (int)xx, (int)y * 4 + (int)yy, col); } } } return b; } public override void close() { f.endEdit(this); f5.endEdit(this); } public override void replaceWithPal(Bitmap b, Palette p) { throw new InvalidOperationException("Not allowed on these image types!"); } public override void replaceImgAndPal(Bitmap b, Palette p) { /*ImageTexeler it = new ImageTexeler(b, (int)p.pal.Length / 4); f.replace(it.texdata, this); f5.replace(it.f5data, this); fdata = it.texdata; f5data = it.f5data; p.pal = it.finalPalette; p.save();*/ } public override void save() { } public override byte[] getRawData() { return fdata; } public override byte[] getRawData5() { return f5data; } public override void setRawData(byte[] data) { } public override string ToString() { return name; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/imageindexer.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Windows.Forms; namespace NSMBe4 { /** * This is the core of all the image importing. * Takes one or more RGB bitmaps and outputs: * - The image data common to all images. (tiled or non-tiled) * - One palette for each image, so that viewing the image data with * it shows the original image. * * It could still be optimized more, I know. * ~Dirbaio */ public class ImageIndexer { private List boxes; private Dictionary freqTable; private Dictionary colorTable; public Color[][] palettes; private MultiColor[] multiPalette; private int width, height; private int paletteCount, boxColorCount; private bool useAlpha; private List bl; public Byte[,] imageData; public ImageIndexer(List bl, bool useAlpha) : this(bl, 256, useAlpha, 0) { } public ImageIndexer(List bl) : this(bl, 256, true, 0) { } public ImageIndexer(List bl, int paletteCount, bool useAlpha, int transpCol) { this.bl = bl; this.paletteCount = paletteCount; this.useAlpha = useAlpha; boxColorCount = bl.Count * 3; //COMPUTE FREQUENCY TABLE freqTable = new Dictionary(); //Quick check just in case... width = bl[0].Width; height = bl[0].Height; foreach (Bitmap b in bl) { if (b.Width != width || b.Height != height) throw new Exception("Not all images have the same size!!"); } for (int x = 0; x < width; x++) for (int y = 0; y < height; y++) { MultiColor c = new MultiColor(boxColorCount); for (int i = 0; i < bl.Count; i++) { NSMBe4.NSBMD.ImageTexeler.LockBitmap iii = new NSBMD.ImageTexeler.LockBitmap(bl[i]); iii.LockBits(); c.setColor(i, iii.GetPixel(x, y)); iii.UnlockBits(); } c.calcHash(); if (!c.allTransparent()) if (freqTable.ContainsKey(c)) freqTable[c]++; else freqTable[c] = 1; } int ct = 0; foreach (MultiColor c in freqTable.Keys) if (c.someTransparent()){ ct++; } Console.Out.WriteLine("Transparent: " + ct); Dictionary newFreqTable = new Dictionary(); foreach (MultiColor c in freqTable.Keys) { if (!c.deleteFlag) { int cnt = freqTable[c]; foreach (MultiColor c2 in freqTable.Keys) { if (c2 is null){ continue; } if (c2.deleteFlag){ continue; } if (c2 == c){ continue; } if (c.diff(c2) == 0) { cnt += freqTable[c2]; c.merge(c2); c2.deleteFlag = true; } } c.deleteFlag = true; c.removeAllTransparent(); newFreqTable.Add(c, cnt); } } freqTable = newFreqTable; ct = 0; foreach (MultiColor c in freqTable.Keys) if (c.someTransparent()){ ct++; } Console.Out.WriteLine("Transparent2: " + ct); // NOW CREATE THE PALETTE ZONES Box startBox = shrinkBox(new Box(boxColorCount)); boxes = new List(); boxes.Add(startBox); while (boxes.Count < (useAlpha ? paletteCount - 1 : paletteCount)) { Console.Out.WriteLine(boxes.Count); Box bo = getDominantBox(); if (bo is null) break; split(bo); } multiPalette = new MultiColor[paletteCount]; for (int j = useAlpha ? 1 : 0; j < paletteCount; j++) if ((useAlpha ? j : j + 1) <= boxes.Count) multiPalette[j] = boxes[useAlpha ? j - 1 : j].center(); //NOW CREATE THE PALETTE COLORS palettes = new Color[bl.Count][]; for (int i = 0; i < bl.Count; i++) { palettes[i] = new Color[paletteCount]; for (int j = useAlpha ? 1 : 0; j < paletteCount; j++) { if ((useAlpha ? j : j + 1) > boxes.Count) palettes[i][j] = palettes[i][j - 1];//Color.Fuchsia; else palettes[i][j] = boxes[useAlpha ? j - 1 : j].center().getColor(i); // Console.Out.WriteLine(i + ": " + boxes[i] + ": "+ palette[i]); } if (useAlpha) palettes[i][0] = Color.Transparent; } //NOW MAP ORIGINAL COLORS TO PALETTE ENTRIES colorTable = new Dictionary(); foreach (MultiColor c in freqTable.Keys) colorTable[c] = closestMultiColor(c); //NOW INDEX THE WHOLE IMAGES imageData = new byte[width, height]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { MultiColor c = new MultiColor(boxColorCount); for (int i = 0; i < bl.Count; i++) { NSMBe4.NSBMD.ImageTexeler.LockBitmap iii = new NSBMD.ImageTexeler.LockBitmap(bl[i]); iii.LockBits(); c.setColor(i, iii.GetPixel(x, y)); iii.UnlockBits(); } c.calcHash(); if (c.allTransparent()) imageData[x, y] = (byte)transpCol; else imageData[x, y] = closestMultiColor(c); } } Console.Out.WriteLine("DONE"); /* }*/ } //PUBLIC DATA-RETRIEVING FUNCTIONS public byte[] getTiledImageData() { byte[] palettedImage = new byte[width * height]; int tileCount = width * height / 64; int tileWidth = width / 8; for (int t = 0; t < tileCount; t++) for (int y = 0; y < 8; y++) for (int x = 0; x < 8; x++) { int tx = (t % tileWidth) * 8; int ty = (int)(t / tileWidth) * 8; palettedImage[t * 64 + y * 8 + x] = imageData[tx + x, ty + y]; } return palettedImage; } public byte[] getTiledImageDataPart(int px, int py, int ptx, int pty) { byte[] palettedImage = new byte[ptx * pty]; int tileCount = ptx * pty / 64; int tileWidth = ptx / 8; for (int t = 0; t < tileCount; t++) for (int y = 0; y < 8; y++) for (int x = 0; x < 8; x++) { int tx = (t % tileWidth) * 8; int ty = (int)(t / tileWidth) * 8; palettedImage[t * 64 + y * 8 + x] = imageData[tx + x + px, ty + y + py]; } return palettedImage; } public Bitmap previewImage(int i) { Bitmap b = new Bitmap(width, height); for (int x = 0; x < width; x++) for (int y = 0; y < height; y++) { b.SetPixel(x, y, palettes[i][imageData[x, y]]); } return b; } //ALGORITHM CORE private byte closestMultiColor(MultiColor mc) { if (mc.allTransparent()){ return 0; } else { int best = -1; float bestd = float.PositiveInfinity; for (int i = 0; i < multiPalette.Length; i++) { if (multiPalette[i] is null){ continue; } float d = mc.diff(multiPalette[i]); if (d < bestd || best == -1) { best = i; bestd = d; } } return (byte)best; } } private void split(Box b) { byte dim = b.dominantDimensionNum(freqTable); //0, 1, 2 = r, g, b List values = new List(); int total = 0; foreach (MultiColor c in freqTable.Keys) if (b.inside(c)) { if (!c.transp[dim]) { values.Add(new byteint(c.data[dim], freqTable[c])); total += freqTable[c]; } } values.Sort(); if (values.Count == 0) throw new Exception("WTF?!"); byte m = median(values, total); if (m == values[0].b) m++; Console.Out.Write("Split: " + b + " "); Box nb = new Box(b); nb.setDimMax(dim, (byte)(m - 1)); b.setDimMin(dim, m); boxes.Add(shrinkBox(nb)); boxes.Remove(b); boxes.Add(shrinkBox(b)); // Console.Out.WriteLine(b + " " + nb); } private byte median(List values, int total) { //Naive median algorithm //Binary search would be better? int acum = 0; foreach (byteint val in values) { acum += val.i; if (acum * 2 > total) return val.b; } //median is best, not mean! /* int totalval = 0; foreach (byteint val in values) { totalval += val.b; } return (byte)(totalval / total);*/ throw new Exception("Bad, bad, bad!"); } private Box getDominantBox() { Box best = null; int bestDim = 0; foreach (Box b in boxes) { int dim = b.dominantDimension(freqTable); if ((dim > bestDim || best is null) && b.canSplit(freqTable)) { bestDim = dim; best = b; } } return best; } private Box shrinkBox(Box b) { byte[] min = (byte[])b.min.Clone(); byte[] max = (byte[])b.max.Clone(); bool[] def = new bool[b.max.Length]; foreach (MultiColor c in freqTable.Keys) if (b.inside(c)) { for (int i = 0; i < c.data.Length; i++) { if (!c.transp[i]) if (def[i]) { if (min[i] > c.data[i]){ min[i] = c.data[i]; } if (max[i] < c.data[i]){ max[i] = c.data[i]; } } else { min[i] = c.data[i]; max[i] = c.data[i]; def[i] = true; } } } return new Box(min, max); } public static byte reduce(int c) { return (byte)((c >> 3) << 3); } //HELPER CLASSES private class MultiColor { public byte[] data; public bool[] transp; public bool deleteFlag; public MultiColor(int count) { data = new byte[count]; transp = new bool[count]; deleteFlag = false; } public void setColor(int i, Color c) { transp[i * 3 + 0] = c.A < 128; transp[i * 3 + 1] = c.A < 128; transp[i * 3 + 2] = c.A < 128; if (c.A >= 128) { data[i * 3 + 0] = reduce(c.R); data[i * 3 + 1] = reduce(c.G); data[i * 3 + 2] = reduce(c.B); } else { data[i * 3 + 0] = 0; data[i * 3 + 1] = 255; data[i * 3 + 2] = 255; } } public void merge(MultiColor b) { for (int i = 0; i < data.Length; i++) if (transp[i]) { transp[i] = b.transp[i]; data[i] = b.data[i]; } calcHash(); } public Color getColor(int i) { if (transp[i * 3]){ return Color.Transparent; } return Color.FromArgb(data[i * 3], data[i * 3 + 1], data[i * 3 + 2]); } public bool allTransparent() { for (int i = 0; i < transp.Length; i += 3) if (!transp[i]){ return false; } return true; } public bool someTransparent() { for (int i = 0; i < transp.Length; i += 3) if (transp[i]){ return true; } return false; } private int thehash; public void calcHash() { unchecked { const int p = 16777619; int hash = (int)2166136261; for (int i = 0; i < data.Length; i++) { hash = (hash ^ data[i]) * p; if (transp[i]){ hash++; } } hash += hash << 13; hash ^= hash >> 7; hash += hash << 3; hash ^= hash >> 17; hash += hash << 5; thehash = hash; } } public override int GetHashCode() { return thehash; } public override bool Equals(object obj) { if (obj is MultiColor) { MultiColor c = obj as MultiColor; if (data.Length != c.data.Length) return false; for (int i = 0; i < data.Length; i++) { if (data[i] != c.data[i]){ return false; } if (transp[i] != c.transp[i]){ return false; } } return true; } else return false; } public float diff(MultiColor b) { float res = 0; for (int i = 0; i < data.Length; i++) if (!transp[i] && !b.transp[i]) { float d = data[i] - b.data[i]; res += d * d; } return res; } internal void removeAllTransparent() { for (int i = 0; i < data.Length; i++) if (transp[i]) { transp[i] = false; data[i] = 0; } } } private class Box { public byte[] min, max; private bool splittable = false; private bool splittablecached = false; public Box(byte[] min, byte[] max) { this.min = min; this.max = max; } public Box(int count) { min = new byte[count]; max = new byte[count]; for (int i = 0; i < count; i++) { min[i] = 0; max[i] = 255; } } public Box(Box b) { this.min = (byte[])b.min.Clone(); this.max = (byte[])b.max.Clone(); } public bool inside(MultiColor c) { for (int i = 0; i < min.Length; i++) { if (c.transp[i]){ continue; } if (c.data[i] < min[i]){ return false; } if (c.data[i] > max[i]){ return false; } } return true; } public int dominantDimension(Dictionary freqTable) { int d = dominantDimensionNum(freqTable); if (d == 255){ return 0; } return max[d] - min[d]; } public byte dominantDimensionNum(Dictionary freqTable) { int d = -1; int dl = -1; for (int i = 0; i < min.Length; i++) { int il = max[i] - min[i]; if (il > dl && canSplitInDim(i, freqTable)) { dl = il; d = i; } } return (byte)d; } public void setDimMin(byte d, byte a) { min[d] = a; splittablecached = false; } public void setDimMax(byte d, byte a) { max[d] = a; splittablecached = false; } public bool canSplitInDim(int i, Dictionary freqTable) { byte data = 0; bool seen = false; foreach (MultiColor c in freqTable.Keys) { if (inside(c)) { if (!c.transp[i]) { if (!seen) //First val we see { seen = true; data = c.data[i]; } else { if (data != c.data[i]) return true; } } } } return false; } public bool canSplit(Dictionary freqTable) { if (splittablecached){ return splittable; } else { splittablecached = true; splittable = canSplit2(freqTable); return splittable; } } public bool canSplit2(Dictionary freqTable) { //Whoa... This gets complicated if I have to //take into acount the "don't care" of transparent colors... byte[] data = new byte[min.Length]; bool[] seen = new bool[min.Length]; foreach (MultiColor c in freqTable.Keys) { if (inside(c)) { for (int i = 0; i < min.Length; i++) { if (!c.transp[i]) { if (!seen[i]) //First val we see { seen[i] = true; data[i] = c.data[i]; } else { if (data[i] != c.data[i]) return true; } } } } } return false; } public MultiColor center() { MultiColor res = new MultiColor(min.Length); for (int i = 0; i < min.Length; i++) res.data[i] = (byte)((min[i] + max[i]) / 2); return res; } public override string ToString() { return arr2str(min) + " - " + arr2str(max); // return "("+r1+"-"+r2+","+g1+"-"+g2+","+b1+"-"+b2+")"; } private string arr2str(byte[] a) { string s = "(" + a[0]; for (int i = 1; i < a.Length; i++) s += ", " + a[i]; return s + ")"; } } private class byteint : IComparable { public byte b; public int i; public byteint(byte b, int i) { this.b = b; this.i = i; } public int CompareTo(object obj) { byteint bi = obj as byteint; return b.CompareTo(bi.b); } public static bool operator <(byteint a, byteint b) { return a.b < b.b; } public static bool operator >(byteint a, byteint b) { return a.b > b.b; } public override string ToString() { return "(" + b + ", " + i + ")"; } } //GENERAL PURPOSE FUNCTIONS public static Color[] createPaletteForImage(Bitmap b) { return createPaletteForImage(b, 256, false); } public static Color[] createPaletteForImage(Bitmap b, int palLen) { return createPaletteForImage(b, palLen, false); } public static Color[] createPaletteForImage(Bitmap b, int palLen, bool alpha) { List bl = new List(); bl.Add(b); ImageIndexer i = new ImageIndexer(bl, palLen, alpha, 0); return i.palettes[0]; } public static byte[] indexImageWithPalette(Bitmap b, Color[] palette) { //More efficient now. byte[] palettedImage = new byte[b.Width * b.Height]; int tileCount = b.Width * b.Height / 64; int tileWidth = b.Width / 8; for (int t = 0; t < tileCount; t++) for (int y = 0; y < 8; y++) for (int x = 0; x < 8; x++) { int tx = (t % tileWidth) * 8; int ty = (int)(t / tileWidth) * 8; Color c = b.GetPixel(tx + x, ty + y); if (c.A != 0) { c = Color.FromArgb(c.R, c.G, c.B); palettedImage[t * 64 + y * 8 + x] = closest(c, palette); } else palettedImage[t * 64 + y * 8 + x] = 0; } return palettedImage; } public static byte[] indexImageWithPalette2(Bitmap b, Color[] palette) { //More efficient now. byte[] palettedImage = new byte[b.Width * b.Height]; int tileCount = b.Width * b.Height / 64; int tileWidth = b.Width / 8; for (int t = 0; t < tileCount; t++) for (int y = 0; y < 8; y++) for (int x = 0; x < 8; x++) { int tx = (t % tileWidth) * 8; int ty = (int)(t / tileWidth) * 8; Color c = b.GetPixel(tx + x, ty + y); if (c.A != 0) { c = Color.FromArgb(c.R, c.G, c.B); palettedImage[t * 64 + y * 8 + x] = closest(c, palette); } else palettedImage[t * 64 + y * 8 + x] = 0; } return palettedImage; } public static float colorDifference(Color a, Color b) { if (a.A != b.A){ return float.MaxValue; } float res = 0; res += (a.R - b.R) * (a.R - b.R) / 40; res += (a.G - b.G) * (a.G - b.G) / 40; res += (a.B - b.B) * (a.B - b.B) / 40; if (res > float.MaxValue) return float.MaxValue; return res; } public static float colorDifferenceWithoutAlpha(Color a, Color b) { int res = 0; res += (a.R - b.R) * (a.R - b.R) / 40; res += (a.G - b.G) * (a.G - b.G) / 40; res += (a.B - b.B) * (a.B - b.B) / 40; if (res > float.MaxValue) return float.MaxValue; return (ushort)res; } public static byte closest(Color c, Color[] palette) { int best = 0; float bestDif = colorDifference(c, palette[0]); for (int i = 0; i < palette.Length; i++) { float dif = colorDifference(c, palette[i]); if (dif < bestDif) { bestDif = dif; best = i; } } if (best >= 256) Console.Out.WriteLine("GRAAH"); return (byte)best; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/imagetexeler.cs ================================================ using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; namespace NSMBe4.NSBMD { public class ImageTexeler { Bitmap img; List palettes; List paletteCounts; int[,] paletteNumbers; float[,] paletteDiffs; public byte[] f5data, texdata; public Color[] finalPalette; /*public ImageTexeler(Bitmap img, int paletteMaxNum) { this.img = img; int tx = img.Width / 4; int ty = img.Height / 4; palettes = new Color[tx * ty][]; paletteCounts = new int[tx * ty]; paletteNumbers = new int[tx, ty]; paletteDiffs = new float[tx * ty, tx * ty]; int palNum = 0; for (int x = 0; x < tx; x++) for (int y = 0; y < ty; y++) { ImageIndexerFast iif = new ImageIndexerFast(img, x * 4, y * 4); palettes[palNum] = iif.palette; paletteNumbers[x, y] = palNum; paletteCounts[palNum] = 1; int similar = calcPaletteDiffs(palNum); /* if (similar != -1) { paletteCounts[palNum] = 0; paletteCounts[similar]++; paletteNumbers[x, y] = similar; } palNum++; } while (countUsedPalettes() > paletteMaxNum) { Console.Out.WriteLine(countUsedPalettes()); int besta = -1; int bestb = -1; float bestDif = float.MaxValue; //Find the two most similar palettes for (int i = 0; i < palettes.Length; i++) { if (paletteCounts[i] == 0){ continue; } for (int j = 0; j < palettes.Length; j++) { if (i == j){ continue; } if (paletteCounts[j] == 0){ continue; } if (paletteDiffs[i, j] < bestDif) { bestDif = paletteDiffs[i, j]; besta = j; bestb = i; } } } //Merge the Palettes!!! palettes[besta] = palMerge(palettes[besta], palettes[bestb]); calcPaletteDiffs(besta); paletteCounts[besta] += paletteCounts[bestb]; paletteCounts[bestb] = 0; for (int x = 0; x < tx; x++) for (int y = 0; y < ty; y++) if (paletteNumbers[x, y] == bestb) paletteNumbers[x, y] = besta; } //CREATE THE FINAL PAL int currNum = 0; finalPalette = new Color[paletteMaxNum * 4]; int[] newPalNums = new int[palettes.Length]; for (int i = 0; i < palettes.Length; i++) { if (paletteCounts[i] != 0) { transparentToTheEnd(palettes[i]);// newPalNums[i] = currNum; Array.Copy(palettes[i], 0, finalPalette, currNum * 4, 4); currNum++; } } ByteArrayOutputStream texDat = new ByteArrayOutputStream(); ByteArrayOutputStream f5Dat = new ByteArrayOutputStream(); for (int y = 0; y < ty; y++) for (int x = 0; x < tx; x++) { //Find out if texel has transparent. bool hasTransparent = false; for (int yy = 0; yy < 4; yy++) for (int xx = 0; xx < 4; xx++) { Color coll = img.GetPixel(x * 4 + xx, y * 4 + yy); if (coll.A < 128) hasTransparent = true; } //WRITE THE IMAGE DATA for (int yy = 0; yy < 4; yy++) { byte b = 0; byte pow = 1; for (int xx = 0; xx < 4; xx++) { Color coll = img.GetPixel(x * 4 + xx, y * 4 + yy); byte col; if (coll.A < 128) { col = 3; } else { col = (byte)ImageIndexer.closest(coll, palettes[paletteNumbers[x, y]]); if (col == 3){ { col = 2; } } } b |= (byte)(pow * col); pow *= 4; } texDat.writeByte(b); } //WRITE THE FORMAT-5 SPECIFIC DATA ushort dat = (ushort)(newPalNums[paletteNumbers[x, y]] * 2); if (!hasTransparent || !ContainsTransparent(img)) { dat |= 2 << 14; } f5Dat.writeUShort(dat); } f5data = f5Dat.getArray(); texdata = texDat.getArray(); }*/ public ImageTexeler(Bitmap img, int paletteMaxNum, ref System.ComponentModel.BackgroundWorker bw, bool color2 = false) { this.color2 = false; color2 = false; //this.color2 = color2; //bool trans = true;//ContainsTransparent(img); Bitmap im = new Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format64bppPArgb); using (Graphics gr = Graphics.FromImage(im)) { gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; gr.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; gr.DrawImage(img, 0, 0); } this.img = im; LockBitmap iii = new LockBitmap(img); iii.LockBits(); int tx = img.Width / 4; int ty = img.Height / 4; palettes = new List();//[tx * ty][]; paletteCounts = new List();//new int[tx * ty]; paletteNumbers = new int[tx, ty]; paletteDiffs = new float[tx * ty, tx * ty]; double add = 18d / (double)(tx * ty); double Progress = 10; int palNum = 0; double percent = 0; double add2 = 100d / (double)(tx * ty); for (int x = 0; x < tx; x++) for (int y = 0; y < ty; y++) { Bitmap ni = new Bitmap(4, 4/*, System.Drawing.Imaging.PixelFormat.Format16bppRgb555*/); /*using (Graphics gr = Graphics.FromImage(ni)) { //gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; //gr.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; //gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;//.AntiAlias; gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; gr.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; gr.DrawImage(this.img, new Rectangle(0, 0, 4, 4), new Rectangle(x * 4, y * 4, 4, 4), GraphicsUnit.Pixel); }*/ LockBitmap nn = new LockBitmap(ni); nn.LockBits(); bool haveTransparent = false; for (int x1 = 0; x1 < 4; x1++) for (int y1 = 0; y1 < 4; y1++) { Color c = iii.GetPixel(x * 4 + x1, y * 4 + y1); nn.SetPixel(x1, y1, c); if (c.A < 128) { haveTransparent = true; //goto end; } } //end: nn.UnlockBits(); List pal1 = new List(); pal1.AddRange(ImageIndexer.createPaletteForImage(ni, 4, haveTransparent)); //if(haveTransparent){pal1.Add(Color.Transparent);} Color[] pal = pal1.ToArray(); //ImageIndexer.createPaletteForImage(ni, 4, false); transparentToTheEnd(pal); //if (haveTransparent) //{ // pal[0] = Color.Transparent; //} //ImageIndexerFast iif = new ImageIndexerFast(img, x * 4, y * 4); int con = contains(palettes.ToArray(), pal); if (con != -1) { paletteNumbers[x, y] = con; //paletteCounts.Add(1); } else { palettes.Add(pal);//[palNum] = pal;//iif.palette; paletteNumbers[x, y] = palettes.Count - 1; paletteCounts.Add(1);//[palNum] = 1; calcPaletteDiffs(palettes.Count - 1); } //int similar = calcPaletteDiffs(palNum); // if (similar != -1) // { // paletteCounts[palNum] = 0; // paletteCounts[similar]++; // paletteNumbers[x, y] = similar; // } palNum++; Progress += add; bw.ReportProgress((int)Progress, "Generating Picture " + percent.ToString("000") + "%"); percent += add2; if (bw.CancellationPending){ { bw.ReportProgress(0, "Canceled"); } return; } } percent = 0; add2 = 100d / (((double)countUsedPalettes() - (double)paletteMaxNum)); add = 74d / (((double)countUsedPalettes() - (double)paletteMaxNum)); //double iw = 0; while (countUsedPalettes() > paletteMaxNum) { //iw += 1; //Console.Out.WriteLine(countUsedPalettes()); int besta = -1; int bestb = -1; float bestDif = float.MaxValue; //Find the two most similar palettes for (int i = 0; i < palettes.Count; i++) { if (paletteCounts[i] == 0){ continue; } for (int j = 0; j < palettes.Count; j++) { if (i == j){ continue; } if (paletteCounts[j] == 0){ continue; } if (paletteDiffs[i, j] < bestDif) { bestDif = paletteDiffs[i, j]; besta = j; bestb = i; } } } //Merge the Palettes!!! palettes[besta] = palMerge(palettes[besta], palettes[bestb]); calcPaletteDiffs(besta); paletteCounts[besta] += paletteCounts[bestb]; paletteCounts[bestb] = 0; for (int x = 0; x < tx; x++) for (int y = 0; y < ty; y++) if (paletteNumbers[x, y] == bestb) paletteNumbers[x, y] = besta; Progress += add; percent += add2; bw.ReportProgress((int)Progress, "Generating Palette " + percent.ToString("000") + "%"); if (bw.CancellationPending){ { bw.ReportProgress(0, "Canceled"); } return; } } //CREATE THE FINAL PAL int currNum = 0; finalPalette = new Color[countUsedPalettes() * 4]; int[] newPalNums = new int[palettes.Count]; for (int i = 0; i < palettes.Count; i++) { if (paletteCounts[i] != 0) { transparentToTheEnd(palettes[i]);// newPalNums[i] = currNum; Array.Copy(palettes[i], 0, finalPalette, currNum * 4, 4); currNum++; } } ByteArrayOutputStream texDat = new ByteArrayOutputStream(); ByteArrayOutputStream f5Dat = new ByteArrayOutputStream(); for (int y = 0; y < ty; y++) for (int x = 0; x < tx; x++) { //Find out if texel has transparent. bool hasTransparent = false; for (int yy = 0; yy < 4; yy++) for (int xx = 0; xx < 4; xx++) { Color coll = iii.GetPixel(x * 4 + xx, y * 4 + yy); if (coll.A < 128) { hasTransparent = true; goto End; } } End: //WRITE THE IMAGE DATA for (int yy = 0; yy < 4; yy++) { byte b = 0; byte pow = 1; for (int xx = 0; xx < 4; xx++) { Color coll = iii.GetPixel(x * 4 + xx, y * 4 + yy); byte col; if (coll.A < 128) { col = 3; } else { List colo = new List(); colo.AddRange(palettes[paletteNumbers[x, y]]); if (hasTransparent) { colo.RemoveAt(3); } col = (byte)ImageIndexer.closest(coll, colo.ToArray()); //if (col == 3){ { col = 2; } } } b |= (byte)(pow * col); pow *= 4; } texDat.writeByte(b); } //WRITE THE FORMAT-5 SPECIFIC DATA ushort dat = (ushort)(newPalNums[paletteNumbers[x, y]] * 2); if (!hasTransparent/* || !ContainsTransparent(img)*/) { dat |= 2 << 14; } f5Dat.writeUShort(dat); } iii.UnlockBits(); f5data = f5Dat.getArray(); texdata = texDat.getArray(); } public class LockBitmap { Bitmap source = null; IntPtr Iptr = IntPtr.Zero; BitmapData bitmapData = null; public byte[] Pixels { get; set; } public int Depth { get; private set; } public int Width { get; private set; } public int Height { get; private set; } public LockBitmap(Bitmap source) { this.source = source; } /// /// Lock bitmap data /// public void LockBits() { try { // Get width and height of bitmap Width = source.Width; Height = source.Height; // get total locked pixels count int PixelCount = Width * Height; // Create rectangle to lock Rectangle rect = new Rectangle(0, 0, Width, Height); // get source bitmap pixel format size Depth = System.Drawing.Bitmap.GetPixelFormatSize(source.PixelFormat); // Check if bpp (Bits Per Pixel) is 8, 24, or 32 if (Depth != 8 && Depth != 24 && Depth != 32) { throw new ArgumentException("Only 8, 24 and 32 bpp images are supported."); } // Lock bitmap and return bitmap data bitmapData = source.LockBits(rect, ImageLockMode.ReadWrite, source.PixelFormat); // create byte array to copy pixel values int step = Depth / 8; Pixels = new byte[PixelCount * step]; Iptr = bitmapData.Scan0; // Copy data from pointer to array Marshal.Copy(Iptr, Pixels, 0, Pixels.Length); } catch (Exception ex) { throw ex; } } /// /// Unlock bitmap data /// public void UnlockBits() { try { // Copy data from byte array to pointer Marshal.Copy(Pixels, 0, Iptr, Pixels.Length); // Unlock bitmap data source.UnlockBits(bitmapData); } catch (Exception ex) { throw ex; } } /// /// Get the color of the specified pixel /// /// /// /// public Color GetPixel(int x, int y) { Color clr = Color.Empty; // Get color components count int cCount = Depth / 8; // Get start index of the specified pixel int i = ((y * Width) + x) * cCount; if (i > Pixels.Length - cCount) throw new IndexOutOfRangeException(); if (Depth == 32) // For 32 bpp get Red, Green, Blue and Alpha { byte b = Pixels[i]; byte g = Pixels[i + 1]; byte r = Pixels[i + 2]; byte a = Pixels[i + 3]; // a clr = Color.FromArgb(a, r, g, b); } if (Depth == 24) // For 24 bpp get Red, Green and Blue { byte b = Pixels[i]; byte g = Pixels[i + 1]; byte r = Pixels[i + 2]; clr = Color.FromArgb(r, g, b); } if (Depth == 8) // For 8 bpp get color value (Red, Green and Blue values are the same) { byte c = Pixels[i]; clr = Color.FromArgb(c, c, c); } return clr; } /// /// Set the color of the specified pixel /// /// /// /// public void SetPixel(int x, int y, Color color) { // Get color components count int cCount = Depth / 8; // Get start index of the specified pixel int i = ((y * Width) + x) * cCount; if (Depth == 32) // For 32 bpp set Red, Green, Blue and Alpha { Pixels[i] = color.B; Pixels[i + 1] = color.G; Pixels[i + 2] = color.R; Pixels[i + 3] = color.A; } if (Depth == 24) // For 24 bpp set Red, Green and Blue { Pixels[i] = color.B; Pixels[i + 1] = color.G; Pixels[i + 2] = color.R; } if (Depth == 8) // For 8 bpp set color value (Red, Green and Blue values are the same) { Pixels[i] = color.B; } } } public int contains(Color[][] c, Color[] a) { for (int i = 0; i < c.Length; i++) { int equals = 0; for (int j = 0; j < a.Length; j++) { if (c[i][j] == a[j]) { equals += 1; } } if (equals == c[i].Length) { return i; } } return -1; } /*bool ContainsTransparent(Bitmap image) { for (int y = 0; y < image.Height; ++y) { for (int x = 0; x < image.Width; ++x) { if (image.GetPixel(x, y).A < 128) { return true; } } } return false; }*/ private void transparentToTheEnd(Color[] pal) { bool transpFound = false; for (int i = 0; i < pal.Length; i++) { if (pal[i] == Color.Transparent) { pal[i] = pal[pal.Length - 1]; transpFound = true; } } if (transpFound) pal[pal.Length - 1] = Color.Transparent; } public int calcPaletteDiffs(int pal) { int mostSimilar = -1; float bestDiff = int.MaxValue; for (int i = 0; i < palettes.Count; i++) { if (paletteCounts[i] != 0) paletteDiffs[pal, i] = paletteDiffs[i, pal] = palDif(palettes[pal], palettes[i]); if (paletteDiffs[pal, i] < bestDiff) { bestDiff = paletteDiffs[pal, i]; mostSimilar = i; } } Console.Out.WriteLine(bestDiff); return -1; } public int countUsedPalettes() { int res = 0; for (int i = 0; i < paletteCounts.Count; i++) if (paletteCounts[i] != 0) res++; return res; } public float palDif(Color[] a, Color[] b) { return palDifUni(a, b) + palDifUni(b, a); } public float palDifUni(Color[] a, Color[] b) { bool aTransp = a[3] == Color.Transparent; bool bTransp = b[3] == Color.Transparent; if (aTransp != bTransp){ return float.PositiveInfinity; } float dif = 0; int len = aTransp ? 3 : 4; bool[] sel = new bool[len]; for (int i = 0; i < len; i++) { Color c = a[i]; float diff = float.PositiveInfinity; int i2 = -1; for (int j = 0; j < len; j++) { if (sel[j]){ continue; } float diff2 = ImageIndexer.colorDifference(c, b[j]); if (diff2 < diff || i2 == -1) { i2 = j; diff = diff2; } } sel[i2] = true; dif += diff; } return dif; } public Color[] palMerge(Color[] a, Color[] b) { //return a; //FIXME!!!! //Very ugly hack here. I put the 8 colors in a bitmap //and let ImageIndexer find me a good 4-color palette :P bool trans = false; Bitmap bi = new Bitmap(8, 1); LockBitmap iii = new LockBitmap(bi); iii.LockBits(); for (int i = 0; i < 4; i++) { iii.SetPixel(i, 0, a[i]); iii.SetPixel(i + 4, 0, b[i]); if (b[i] == Color.Transparent || a[i] == Color.Transparent) { trans = true; } } iii.UnlockBits(); List pal1 = new List(); //if (!color2) //{ pal1.AddRange(ImageIndexer.createPaletteForImage(bi, 4, trans));//(trans ? 3 : 4), false)); //} ///else //{ // pal1.AddRange(ImageIndexer.createPaletteForImage(bi, 2, trans));//(trans ? 3 : 4), false)); // pal1.AddRange(new Color[2]); //} //if (trans){ { pal1.Add(Color.Transparent); } } Color[] pal = pal1.ToArray(); transparentToTheEnd(pal); return pal; //Haha, it was too slow :) /*Color[] pal = new Color[4]; int one = 0; int two = 0; for (int i = 0; i < a.Length; i++) { int tdiff = (b[i].R - a[i].R) + (b[i].G - a[i].G) + (b[i].B - a[i].B); if (tdiff == 0) one++; else if (tdiff < 0) two++; else { two++; } } return one >= two ? a : b;*/ } bool color2 = false; public int getClosestColor(Color c, Color[] pal) { int bestInd = 0; float bestDif = ImageIndexer.colorDifferenceWithoutAlpha(pal[0], c); for (int i = 0; i < pal.Length; i++) { float d = ImageIndexer.colorDifferenceWithoutAlpha(pal[i], c); if (d < bestDif) { bestDif = d; bestInd = i; } } return bestInd; } public int getClosestColorWithAlpha(Color c, Color[] pal) { int bestInd = 0; float bestDif = ImageIndexer.colorDifference(pal[0], c); for (int i = 0; i < pal.Length; i++) { float d = ImageIndexer.colorDifference(pal[i], c); if (d < bestDif) { bestDif = d; bestInd = i; } } return bestInd; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/imagetiler.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Drawing.Imaging; namespace NSMBe4 { class ImageTiler { int tileCount = 32 * 32; Tile[] tiles; public int[,] tileMap; float[,] tileDiffs; public Bitmap tileBuffer; private List diffs; int width; int height; public ImageTiler(Bitmap b, int tilenr) { //if (b.Size != new Size(512, 512)) // throw new Exception("Wrong image size"); //ProgressWindow p = new ProgressWindow(LanguageManager.Get("BgImport", "Importing")); //p.Show(); //p.SetMax(tileCount); tileMap = new int[b.Width/8, b.Height/8]; tileDiffs = new float[tileCount, tileCount]; tiles = new Tile[tileCount]; diffs = new List(); tileCount = (b.Width/8) * (b.Height/8); width = b.Width / 8; height = b.Height / 8; //LOAD TILES //p.WriteLine("1/5: Loading tiles..."); int tileNum = 0; for (int xt = 0; xt < b.Width/8; xt++) { for (int yt = 0; yt < b.Height/8; yt++) { // Console.Out.WriteLine("Tile " + xt + " " + yt + ", " + tileNum); tiles[tileNum] = new Tile(b, xt * 8, yt * 8); tileMap[xt, yt] = tileNum; tileNum++; //p.setValue(xt * 64 + yt); } Console.Out.WriteLine(xt); } //p.setValue(0); //p.SetMax(64 * 64); //p.WriteLine("2/5: Computing tile differences..."); for (int xt = 0; xt < (b.Height/8) * (b.Width/8); xt++) { //p.setValue(xt); if (tiles[xt] is null){ continue; } for (int yt = 0; yt < xt; yt++) { if (tiles[yt] is null){ continue; } float diff = tiles[xt].difference(tiles[yt]); if (diff < 0.5) mergeTiles(xt, yt); else { TileDiff td = new TileDiff(); td.diff = diff; td.t1 = xt; td.t2 = yt; diffs.Add(td); } } } // p.WriteLine("Tiles merged in first pass: " + (64 * 64 - countUsedTiles()) + " of " + 64 * 64); //p.WriteLine("3/5: Sorting tiles..."); diffs.Sort(); //p.WriteLine("4/5: Merging tiles..."); //REDUCE TILE COUNT int used = countUsedTiles(); int mustRemove = used - tilenr; if (used > tilenr) { //p.setValue(0); //p.SetMax(mustRemove); } List.Enumerator en = diffs.GetEnumerator(); if (tilenr != 0) { while (used > tilenr) { en.MoveNext(); TileDiff td = en.Current; int t1 = td.t1; int t2 = td.t2; if (tiles[t1] is null){ continue; } if (tiles[t2] is null){ continue; } if (t1 == t2){ throw new Exception("Should never happen"); } mergeTiles(t1, t2); used = countUsedTiles(); //p.setValue(mustRemove - used + 320); } } //p.WriteLine("5/5: Buiding tile map..."); /* //DEBUG, DEBUG... for (int yt = 0; yt < 64; yt++) { for (int xt = 0; xt < 64; xt++) Console.Out.Write(tileMap[xt, yt].ToString("X2") + " "); Console.Out.WriteLine(); } Bitmap bb = new Bitmap(512, 512, PixelFormat.Format32bppArgb); for (int xt = 0; xt < 64; xt++) for (int yt = 0; yt < 64; yt++) { for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) { Color c = tiles[tileMap[xt, yt]].data[x, y]; // Console.Out.WriteLine(c); bb.SetPixel(xt * 8 + x, yt * 8 + y, c); } } bb.Save("C:\\image2.png"); new ImagePreviewer(bb).Show();*/ //COMPACTIFY TILES AND MAKE THE TILE BUFFER!!! tileBuffer = new Bitmap(countUsedTiles() * 8, 8, PixelFormat.Format32bppArgb); int[] newTileNums = new int[tileCount]; int nt = 0; for (int t = 0; t < tileCount; t++) { if (tiles[t] != null) { newTileNums[t] = nt; for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) tileBuffer.SetPixel(x + nt * 8, y, tiles[t].data[x, y]); nt++; } } // new ImagePreviewer(tileBuffer).Show(); for (int xt = 0; xt < b.Width/8; xt++) for (int yt = 0; yt < b.Height/8; yt++) tileMap[xt, yt] = newTileNums[tileMap[xt, yt]]; //p.WriteLine("Done! You can close this window now."); } private void mergeTiles(int t1, int t2) { Console.Out.WriteLine("Used: " + countUsedTiles() + ", replacing " + t2 + " with " + t1); tiles[t1].merge(tiles[t2]); // fillDiffs(best1); //fusionate them for (int xt = 0; xt < width; xt++) for (int yt = 0; yt < height; yt++) if (tileMap[xt, yt] == t2) tileMap[xt, yt] = t1; tiles[t2] = null; } private int countUsedTiles() { int c = 0; for (int i = 0; i < tileCount; i++) if (tiles[i] != null) c++; return c; } /* * Fills the difference table of a tile (row and column) * if it finds a very similar tile, returns its number and stops * if not, returns -1 */ private int fillDiffs(int tile) { for (int t = 0; t < tileCount; t++) { if (t == tile){ continue; } if (tiles[t] is null){ continue; } float diff = tiles[tile].difference(tiles[t]); if (diff == 0) return t; tileDiffs[tile, t] = diff; tileDiffs[t, tile] = diff; TileDiff td = new TileDiff(); td.diff = diff; td.t1 = t; td.t2 = tile; diffs.Add(td); // Console.Out.WriteLine(t+" "+tile+" "+diff); } return -1; } private static float colorDifference(Color a, Color b) { if (a.A != b.A){ return 10000f; } float res = 0; /*res += (float)(a.R - b.R) * (float)(a.R - b.R) / 65536f; res += (float)(a.G - b.G) * (float)(a.G - b.G) / 65536f; res += (float)(a.B - b.B) * (float)(a.B - b.B) / 65536f; */ res += Math.Abs((float)(a.R - b.R)) / 256f; res += Math.Abs((float)(a.G - b.G)) / 256f; res += Math.Abs((float)(a.B - b.B)) / 256f; return res; } private static float colorMatrixDiff(Color[,] a, Color[,] b) { float res = 0; for (int x = 0; x < a.GetLength(0); x++) for (int y = 0; y < a.GetLength(1); y++) res += colorDifference(a[x, y], b[x, y]); return res / a.Length; } private static float colorMatrixBorderDiff(Color[,] a, Color[,] b) { int l = a.GetLength(0) - 1; float res = 0; for (int x = 0; x < a.GetLength(0); x++) { res += colorDifference(a[x, 0], b[x, 0]); res += colorDifference(a[x, l], b[x, l]); res += colorDifference(a[0, x], b[0, x]); res += colorDifference(a[l, x], b[l, x]); } return res / l * 2; } private static Color[,] colorMatrixReduce(Color[,] m) { Color[,] r = new Color[m.GetLength(0) / 2, m.GetLength(1) / 2]; for (int x = 0; x < m.GetLength(0) / 2; x++) for (int y = 0; y < m.GetLength(1) / 2; y++) { r[x, y] = colorMean( colorMean(m[x * 2, y * 2], m[x * 2, y * 2 + 1], 1, 1), colorMean(m[x * 2 + 1, y * 2], m[x * 2 + 1, y * 2 + 1], 1, 1), 1, 1 ); } return r; } private static int mean(int a, int b, int wa, int wb) { return (wa * a + wb * b) / (wa + wb); } public static Color colorMean(Color a, Color b, int wa, int wb) { if (a.A == 0){ return b; } if (b.A == 0){ return a; } return Color.FromArgb(mean(a.R, b.R, wa, wb), mean(a.G, b.G, wa, wb), mean(a.B, b.B, wa, wb)); } private class TileDiff : IComparable { public float diff; public int t1, t2; public int CompareTo(TileDiff t) { return diff.CompareTo(t.diff); } } private class Tile { public Color[,] data, d1, d2; public int count = 1; public Tile(Bitmap b, int xp, int yp) { data = new Color[8, 8]; for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) { Color c = b.GetPixel(x + xp, y + yp); if (c.A < 128) data[x, y] = Color.Transparent; else data[x, y] = Color.FromArgb(c.R, c.G, c.B); } makeReductions(); } private void makeReductions() { d1 = colorMatrixReduce(data); d2 = colorMatrixReduce(d1); } public float difference(Tile b) { float res = 0; res += colorMatrixBorderDiff(data, b.data) * 5; res += colorMatrixDiff(d2, b.d2); res += colorMatrixDiff(d1, b.d1); res *= count + b.count; return res; } public void merge(Tile b) { for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) data[x, y] = colorMean(data[x, y], b.data[x, y], count, b.count); count += b.count; // makeReductions(); } } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/inlinefile.cs ================================================ using System; using System.Collections.Generic; using System.Text; namespace NSMBe4.DSFileSystem { public class InlineFile : File { private int inlineOffs; private int inlineLen; private File parentFile; private CompressionType comp; public enum CompressionType : int { NoComp, LZComp, LZWithHeaderComp } public InlineFile(File parent, int offs, int len, string name, Directory parentDir) : this(parent, offs, len, name, parentDir, CompressionType.NoComp) { } public InlineFile(File parent, int offs, int len, string name, Directory parentDir, CompressionType comp) : base(parent.parent, parentDir, parent.name + " - " + name + ":" + offs.ToString("X") + ":" + len) { parentFile = parent; inlineOffs = offs; inlineLen = len; this.comp = comp; this.fixedFile = true; this.canChangeOffset = false; refreshOffsets(); } public override byte[] getContents() { if (comp != CompressionType.NoComp) { byte[] data; if (comp == CompressionType.LZWithHeaderComp) data = ROM.LZ77_DecompressWithHeader(parentFile.getContents()); else data = ROM.LZ77_Decompress(parentFile.getContents()); byte[] thisdata = new byte[inlineLen]; Array.Copy(data, inlineOffs, thisdata, 0, inlineLen); return thisdata; } else return base.getContents(); } public override void replace(byte[] newFile, object editor) { //if (!isAGoodEditor(editor)) // throw new Exception("NOT CORRECT EDITOR " + name); if (comp != CompressionType.NoComp) { byte[] data; if (comp == CompressionType.LZWithHeaderComp) data = ROM.LZ77_DecompressWithHeader(parentFile.getContents()); else data = ROM.LZ77_Decompress(parentFile.getContents()); Array.Copy(newFile, 0, data, inlineOffs, inlineLen); parentFile.replace(ROM.LZ77_Compress(data, comp == CompressionType.LZWithHeaderComp), this); } else base.replace(newFile, editor); } public override void beginEdit(object editor) { parentFile.beginEditInline(this); base.beginEdit(editor); } public override void endEdit(object editor) { parentFile.endEditInline(this); base.endEdit(editor); } public override void refreshOffsets() { fileBegin = parentFile.fileBegin + inlineOffs; fileSize = inlineLen; } public override void saveOffsets() { } public override void enableEdition() { refreshOffsets(); // In case the parent file gets moved... base.enableEdition(); } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/nsbmetileset.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; /** * * TILESET FORMAT DOCS: * * Graphics file: * - LZ Compressed * - 8bpp 8x8 tiles * * Palette file: * - LZ Compressed * - 512 entries * - 2-byte entries in RGB15 format * - 0 and 256 transparent * - 2 different palettes: 0-255 and 256-511 * * Map16 file: * - Groups 8x8 tiles into 16x16 tiles * - 8-byte per 16x16 tile * - order: top-left, top-right, bottom-left, bottom-right * - 2-byte per tile. * * Object index file: * - Defines offsets in the Object file * - 4 bytes per object * - Offset as ushort * - Width and Height as 2 bytes. * These are unused by the game, and are inaccurate for slopes, * so my implementation doesn't use them * * Object file: * - Data for each object. * * 0xFF - End of object * 0xFE - New Line * 0x8x - Slope Control Byte * Else, its the beginning of a tile: * Control Byte * Map16 tile number as ushort * * STANDARD OBJECTS: * * Tile control byte: * 1 = horizontal repeat * 2 = vertical repeat * * If no repeats, repeat all. * If there are repeats, divide everyting in 3: * Before repeat (no repeat set) * In repeat (repeat set) * After repeat (no repeat set) * * Then put the before repeat at the beginning. * The after repeat at the end * And then fill the space between them (if any) repeating the In repeat tiles. * * SLOPED OBJECTS: * * These objects are a pain to work with. * * The first slope control byte defines the direction of slope: * * & with 1 -> Go left * & with 2 -> Upside-down slope * * * The slope format is: * * A slope control indicating it's a slope and its direction. * Then follows a rectangular block of tiles. These have to be placed * corner-by-corner, respecting their size, like this: * * _|_| * _ | | __ * _|_| _|_| __|__| * _|_| | | __|__| * |_| |_| |__| * * The first corner must be placed on a corner of the object, on the opposite * side of the direction (if slope goes right, start is at left), and at the * bottom, or at the top if its an upside-down slope. * * Optional: Then follows a 0x85 slope control, then another block of tiles * that has to be placed under the previous blocks, or OVER if its an upside-down slope. * * If the slope goes right the blocks have to be left-aligned: * _ * |_|__ main block * |____| sub (0x85) block * * If the slope goes left the blocks have to be right-aligned: * _ * __|_| * |____| * * EXAMPLE: Slope going up right with 1x1 main block and 2x1 sub block in a 6x5 obj * _ _ * _|_|_| * _|_|___| * _|_|___| * |_|___| * * NOTE: This info is not complete. This works for all the slopes used in-game, but * there are some unused bits that change their behavior: * * -0x04 control byte in 0x85 slope block: All slopes that have the 0x85 block have * all its tiles with an 0x04 control byte. * * IF ITS NOT SET, then the 0x85 block is used to fill all the area below * (or over if its upside down???) the slope. Not * sure how does it behave if the 0x85 block has multiple tiles. * Probably the Nintendo Guys thought it was best to have it like that, and then * realized that it caused the triangle below the slope to be unusable (filled) * and then created a new mode. * NOTE: The editor doesn't implement this. * * Not sure if there's more like this... **/ namespace NSMBe4 { public class NSMBTileset { //private bool editing = false; /*public File GFXFile; public File PalFile; public File Map16File; public File ObjFile; public File ObjIndexFile; public File TileBehaviorFile;*/ public int TilesetNumber; // 0 for Jyotyu, 1 for Normal, 2 for SubUnit public int Map16TileOffset { get { if (TilesetNumber == 1) return 192; else if (TilesetNumber == 2) return 640; else return 0; } } public int ObjectDefTileOffset { get { if (TilesetNumber == 1) return 1; else if (TilesetNumber == 2) return 4; else return 0; } } public int Map16PaletteOffset { get { if (TilesetNumber == 0) return 0; if (TilesetNumber == 1) return 2; else return 6; } } public Bitmap Map16Buffer; public bool UseOverrides; public Bitmap OverrideBitmap; public short[] Overrides; public short[] EditorOverrides; public bool UseNotes; public string[] ObjNotes; public ObjectDef[] Objects; //public Map16Tile[] Map16; public byte[][] TileBehaviors; public Bitmap TilesetBuffer; public Color[] Palette; public byte[] RawGFXData; //private Graphics Map16Graphics; /*public NSMBTileset(File GFXFile, File PalFile, File Map16File, File ObjFile, File ObjIndexFile, File TileBehaviorFile, bool OverrideFlag, int TilesetNumber) { this.GFXFile = GFXFile; this.PalFile = PalFile; this.Map16File = Map16File; this.ObjFile = ObjFile; this.ObjIndexFile = ObjIndexFile; this.TileBehaviorFile = TileBehaviorFile; //Console.Out.WriteLine(ROM.FileNames[TileBehaviorFile]); this.TilesetNumber = TilesetNumber; Console.Out.WriteLine("Load Tileset: " + GFXFile + ", " + PalFile + ", " + Map16File + ", " + ObjFile + ", " + ObjIndexFile); // First get the palette out byte[] ePalFile = ROM.LZ77_Decompress(PalFile.getContents()); Palette = new Color[512]; for (int PalIdx = 0; PalIdx < 512; PalIdx++) { Palette[PalIdx] = fromRGB15((ushort)(ePalFile[PalIdx * 2] + (ePalFile[(PalIdx * 2) + 1] << 8))); } //Palette[0] = Color.Fuchsia; //Palette[256] = Color.Fuchsia; Palette[0] = Color.LightSlateGray; Palette[256] = Color.LightSlateGray; // Load graphics SetGraphics(ROM.LZ77_Decompress(GFXFile.getContents())); loadMap16(); loadTileBehaviors(); // Finally the object file. loadObjects(); // Finally, load overrides if (OverrideFlag) { UseOverrides = true; OverrideBitmap = Properties.Resources.tileoverrides; Overrides = new short[Map16.Length]; EditorOverrides = new short[Map16.Length]; for (int idx = 0; idx < Map16.Length; idx++) { Overrides[idx] = -1; EditorOverrides[idx] = -1; } } }*/ /*public void close() { if (!editing) return; editing = false; GFXFile.endEdit(this); PalFile.endEdit(this); Map16File.endEdit(this); ObjFile.endEdit(this); ObjIndexFile.endEdit(this); if (TileBehaviorFile != null) TileBehaviorFile.endEdit(this); }*/ /*~NSMBTileset() { if (editing) close(); }*/ /*public void enableWrite() { editing = true; GFXFile.beginEdit(this); PalFile.beginEdit(this); Map16File.beginEdit(this); ObjFile.beginEdit(this); ObjIndexFile.beginEdit(this); if (TileBehaviorFile != null) TileBehaviorFile.beginEdit(this); }*/ /*public void save() { saveObjects(); saveMap16(); saveTileBehaviors(); byte[] CompGFXData = ROM.LZ77_Compress(RawGFXData); GFXFile.replace(CompGFXData, this); savePalette(); }*/ /*public void SetGraphics(byte[] GFXData) { RawGFXData = GFXData; int TileCount = GFXData.Length / 64; TilesetBuffer = new Bitmap(TileCount * 8, 16); int FilePos = 0; for (int TileIdx = 0; TileIdx < TileCount; TileIdx++) { int TileSrcX = TileIdx * 8; for (int TileY = 0; TileY < 8; TileY++) { for (int TileX = 0; TileX < 8; TileX++) { TilesetBuffer.SetPixel(TileSrcX + TileX, TileY, Palette[GFXData[FilePos]]); TilesetBuffer.SetPixel(TileSrcX + TileX, TileY + 8, Palette[GFXData[FilePos] + 256]); FilePos++; } } } }*/ /*public void ResetGraphics(byte[] d) { SetGraphics(d); repaintAllMap16(); }*/ public static ushort toRGB15(Color c) { byte r = (byte)(c.R >> 3); byte g = (byte)(c.G >> 3); byte b = (byte)(c.B >> 3); ushort val = 0; val |= r; val |= (ushort)(g << 5); val |= (ushort)(b << 10); return val; } public static Color fromRGB15(ushort c) { int cR = (c & 31) * 8; int cG = ((c >> 5) & 31) * 8; int cB = ((c >> 10) & 31) * 8; return Color.FromArgb(cR, cG, cB); } public static byte[] paletteToRawData(Color[] pal) { ByteArrayOutputStream file = new ByteArrayOutputStream(); for (int i = 0; i < pal.Length; i++) { file.writeUShort(toRGB15(pal[i])); } return file.getArray(); } /*private void savePalette() { byte[] data = paletteToRawData(Palette); PalFile.replace(ROM.LZ77_Compress(data), this); }*/ /*#region Tile Behaviors private void loadTileBehaviors() { byte[] tileBehaviorsFile = null; if (TilesetNumber == 0) { tileBehaviorsFile = ROM.GetInlineFile(ROM.Data.File_Jyotyu_CHK); } else if (TilesetNumber == 1 || TilesetNumber == 2) { tileBehaviorsFile = TileBehaviorFile.getContents(); } if (tileBehaviorsFile != null) { TileBehaviors = new byte[Map16.Length][]; for (int i = 0; i < Map16.Length; i++) { TileBehaviors[i] = new byte[4]; Array.Copy(tileBehaviorsFile, i * 4, TileBehaviors[i], 0, 4); } } }*/ /*private void saveTileBehaviors() { ByteArrayOutputStream file = new ByteArrayOutputStream(); for (int i = 0; i < Map16.Length; i++) file.write(TileBehaviors[i]); if (TilesetNumber == 0) { ROM.ReplaceInlineFile(ROM.Data.File_Jyotyu_CHK, file.getArray()); } else if (TilesetNumber == 1 || TilesetNumber == 2) { TileBehaviorFile.replace(file.getArray(), this); } } #endregion */ #region Map16 /*private void saveMap16() { ByteArrayOutputStream file = new ByteArrayOutputStream(); foreach (Map16Tile t in Map16) t.save(file); Map16File.replace(file.getArray(), this); }*/ /*private void loadMap16() { // Load Map16 ByteArrayInputStream eMap16File = new ByteArrayInputStream(Map16File.getContents()); int Map16Count = (int)eMap16File.available() / 8; Map16 = new Map16Tile[Map16Count]; Map16Buffer = new Bitmap(Map16Count * 16, 16, System.Drawing.Imaging.PixelFormat.Format32bppPArgb); Map16Graphics = Graphics.FromImage(Map16Buffer); for (int Map16Idx = 0; Map16Idx < Map16Count; Map16Idx++) { Map16[Map16Idx] = new Map16Tile(eMap16File, this); } repaintAllMap16(); }*/ /*public void repaintAllMap16() { if (Map16Graphics != null) Map16Graphics.Clear(Color.LightSlateGray); for (int Map16Idx = 0; Map16Idx < Map16.Length; Map16Idx++) RenderMap16Tile(Map16Idx); }*/ /*private void RenderMap16Quarter(Map16Quarter q, int x, int y) { int TileNum = q.TileNum; Rectangle SrcRect = new Rectangle(TileNum * 8, q.secondPalette ? 8 : 0, 8, 8); Rectangle DestRect = new Rectangle(x, y, 8, 8); Map16Graphics.FillRectangle(Brushes.LightSlateGray, DestRect); if (q.TileByte != 0 || q.ControlByte != 0) { Bitmap tile = new Bitmap(8, 8); Graphics g = Graphics.FromImage(tile); g.DrawImage(TilesetBuffer, new Rectangle(0, 0, 8, 8), SrcRect, GraphicsUnit.Pixel); if ((q.ControlByte & 4) != 0) tile.RotateFlip(RotateFlipType.RotateNoneFlipX); if ((q.ControlByte & 8) != 0) tile.RotateFlip(RotateFlipType.RotateNoneFlipY); Map16Graphics.DrawImage(tile, DestRect, new Rectangle(0, 0, 8, 8), GraphicsUnit.Pixel); } }*/ /*public void RenderMap16Tile(int Map16Idx) { Map16Tile t = Map16[Map16Idx]; int x = Map16Idx * 16; RenderMap16Quarter(t.topLeft, x, 0); RenderMap16Quarter(t.topRight, x + 8, 0); RenderMap16Quarter(t.bottomLeft, x, 8); RenderMap16Quarter(t.bottomRight, x + 8, 8); if (UseOverrides && Overrides[Map16Idx] > -1) { Map16Graphics.DrawImage(OverrideBitmap, new Rectangle(Map16Idx << 4, 0, 16, 16), new Rectangle(Overrides[Map16Idx] << 4, 0, 16, 16), GraphicsUnit.Pixel); } }*/ /*public class Map16Tile { public Map16Quarter topLeft, topRight, bottomLeft, bottomRight; NSMBTileset t; public Map16Tile(NSMBTileset t) { this.t = t; } public Map16Tile(ByteArrayInputStream inp, NSMBTileset t) { this.t = t; topLeft = new Map16Quarter(inp, t); topRight = new Map16Quarter(inp, t); bottomLeft = new Map16Quarter(inp, t); bottomRight = new Map16Quarter(inp, t); } public void save(ByteArrayOutputStream outp) { topLeft.save(outp); topRight.save(outp); bottomLeft.save(outp); bottomRight.save(outp); } public void makeEmpty() { topLeft.ControlByte = 0; topLeft.TileByte = 0; topRight.ControlByte = 0; topRight.TileByte = 0; bottomLeft.ControlByte = 0; bottomLeft.TileByte = 0; bottomRight.ControlByte = 0; bottomRight.TileByte = 0; } }*/ /*public class Map16Quarter { private NSMBTileset t; private byte ControlByteF; public byte ControlByte { get { return ControlByteF; } set { ControlByteF = value; } } private byte TileByteF; public byte TileByte { get { return TileByteF; } set { TileByteF = value; } } public int TileNum { get { if (TileByte == 0 && ControlByte == 0) return -1; return (TileByteF | ((ControlByte & 3) << 8)) - t.Map16TileOffset; } set { if (value == -1) { ControlByte = 0; TileByte = 0; return; } value += t.Map16TileOffset; TileByteF = (byte)(value % 256); ControlByte &= 0xFF ^ 3; ControlByte |= (byte)((value >> 8) & 3); } }*/ /*public bool secondPalette { get { return (ControlByte >> 4) % 2 == 1; } set { ControlByte &= 0xF; int num = t.Map16PaletteOffset; if (value){ num++; } ControlByte |= (byte)(num << 4); } }*/ /*public bool xFlip { get { return (ControlByte & 4) != 0; } set { if (((ControlByte & 4) != 0) != value){ ControlByte ^= 4; } } } public bool yFlip { get { return (ControlByte & 8) != 0; } set { if (((ControlByte & 8) != 0) != value){ ControlByte ^= 8; } } } public Map16Quarter(NSMBTileset t) { this.t = t; } public Map16Quarter(ByteArrayInputStream inp, NSMBTileset t) { this.t = t; TileByteF = inp.readByte(); ControlByteF = inp.readByte(); } public void save(ByteArrayOutputStream outp) { outp.writeByte(TileByteF); outp.writeByte(ControlByteF); }*/ } /*public void removeUnusedMap16() { for (int i = 0; i < Map16.Length; i++) { if (!isMap16Used(i)) emptyMap16Tile(Map16[i]); } } private bool isMap16Used(int tile) { foreach (ObjectDef o in Objects) if (o != null) foreach (List row in o.tiles) foreach (ObjectDefTile t in row) if (t.tileID == tile) return true; return false; } private void emptyMap16Tile(Map16Tile t) { t.topLeft = new Map16Quarter(this); t.topRight = new Map16Quarter(this); t.bottomLeft = new Map16Quarter(this); t.bottomRight = new Map16Quarter(this); } */ #endregion #region Objects public class ObjectDef { public List> tiles; public int width, height; //these are useless, but I keep them //in case the game uses them. private NSMBTileset t; public ObjectDef(NSMBTileset t) { this.t = t; tiles = new List>(); List row = new List(); tiles.Add(row); } /*public ObjectDef(byte[] data, NSMBTileset t) { this.t = t; load(new ByteArrayInputStream(data)); }*/ /*public void load(ByteArrayInputStream inp) { tiles = new List>(); List row = new List(); while (true) { ObjectDefTile t = new ObjectDefTile(inp, this.t); if (t.lineBreak) { tiles.Add(row); row = new List(); } else if (t.objectEnd) break; else row.Add(t); } }*/ public void save(ByteArrayOutputStream outp) { foreach (List row in tiles) { foreach (ObjectDefTile t in row) t.write(outp); outp.writeByte(0xFE); //new line } outp.writeByte(0xFF); //end object } } public class ObjectDefTile { public int tileID; public byte controlByte; private NSMBTileset t; public bool emptyTile { get { return tileID == -1; } } public bool lineBreak { get { return controlByte == 0xFE; } } public bool objectEnd { get { return controlByte == 0xFF; } } public bool slopeControl { get { return (controlByte & 0x80) != 0; } } public bool controlTile { get { return lineBreak || objectEnd || slopeControl; } } public ObjectDefTile(NSMBTileset t) { this.t = t; } /*public ObjectDefTile(ByteArrayInputStream inp, NSMBTileset t) { this.t = t; controlByte = inp.readByte(); if (!controlTile) { byte a, b; a = inp.readByte(); b = inp.readByte(); tileID = a + ((b - t.ObjectDefTileOffset) << 8); if ((controlByte & 64) != 0) //OVERRIDES tileID += 768; if (a == 0 && b == 0) tileID = -1; } }*/ public void write(ByteArrayOutputStream outp) { if (controlTile) outp.writeByte(controlByte); else if (emptyTile) { outp.writeByte(0); outp.writeByte(0); outp.writeByte(0); } else { outp.writeByte(controlByte); outp.writeByte((byte)(tileID % 256)); outp.writeByte((byte)(tileID / 256 + t.ObjectDefTileOffset)); } } } /*public void loadObjects() { ByteArrayInputStream eObjIndexFile = new ByteArrayInputStream(ObjIndexFile.getContents()); ByteArrayInputStream eObjFile = new ByteArrayInputStream(ObjFile.getContents()); Objects = new ObjectDef[256]; //read object index int obj = 0; while (eObjIndexFile.available(4) && obj < Objects.Length) { Objects[obj] = new ObjectDef(this); int offset = eObjIndexFile.ReadUInt16(); Objects[obj].width = eObjIndexFile.readByte(); Objects[obj].height = eObjIndexFile.readByte(); eObjFile.seek(offset); Objects[obj].load(eObjFile); obj++; } } public void saveObjects() { ByteArrayOutputStream eObjIndexFile = new ByteArrayOutputStream(); ByteArrayOutputStream eObjFile = new ByteArrayOutputStream(); for (int i = 0; i < Objects.Length; i++) { if (Objects[i] is null) break; eObjIndexFile.writeUShort((ushort)eObjFile.getPos()); eObjIndexFile.writeByte((byte)Objects[i].width); eObjIndexFile.writeByte((byte)Objects[i].height); Objects[i].save(eObjFile); } ObjFile.replace(eObjFile.getArray(), this); ObjIndexFile.replace(eObjIndexFile.getArray(), this); } public int[,] RenderObject(int ObjNum, int Width, int Height) { // First allocate an array int[,] Dest = new int[Width, Height]; // Non-existent objects can just be made out of 0s if (ObjNum >= Objects.Length || ObjNum < 0 || Objects[ObjNum] is null) return Dest; ObjectDef obj = Objects[ObjNum]; if (Objects[ObjNum].tiles.Count == 0) return Dest; // Diagonal objects are rendered differently if ((Objects[ObjNum].tiles[0][0].controlByte & 0x80) != 0) { RenderDiagonalObject(Dest, obj, Width, Height); } else { bool repeatFound = false; List> beforeRepeat = new List>(); List> inRepeat = new List>(); List> afterRepeat = new List>(); foreach (List row in obj.tiles) { if (row.Count == 0) continue; if ((row[0].controlByte & 2) != 0) { repeatFound = true; inRepeat.Add(row); } else { if (repeatFound) afterRepeat.Add(row); else beforeRepeat.Add(row); } } for (int y = 0; y < Height; y++) { if (inRepeat.Count == 0) //if no repeat data, just repeat all renderStandardRow(Dest, beforeRepeat[y % beforeRepeat.Count], y, Width); else if (y < beforeRepeat.Count) //if repeat data renderStandardRow(Dest, beforeRepeat[y], y, Width); else if (y > Height - afterRepeat.Count - 1) renderStandardRow(Dest, afterRepeat[y - Height + afterRepeat.Count], y, Width); else renderStandardRow(Dest, inRepeat[(y - beforeRepeat.Count) % inRepeat.Count], y, Width); } } return Dest; }*/ /*private void renderStandardRow(int[,] Dest, List row, int y, int width) { bool repeatFound = false; List beforeRepeat = new List(); List inRepeat = new List(); List afterRepeat = new List(); foreach (ObjectDefTile tile in row) { if ((tile.controlByte & 1) != 0) { repeatFound = true; inRepeat.Add(tile); } else { if (repeatFound) afterRepeat.Add(tile); else beforeRepeat.Add(tile); } } for (int x = 0; x < width; x++) { if (inRepeat.Count == 0) //if no repeat data, just repeat all Dest[x, y] = beforeRepeat[x % beforeRepeat.Count].tileID; else if (x < beforeRepeat.Count) //if repeat data Dest[x, y] = beforeRepeat[x].tileID; else if (x > width - afterRepeat.Count - 1) Dest[x, y] = afterRepeat[x - width + afterRepeat.Count].tileID; else Dest[x, y] = inRepeat[(x - beforeRepeat.Count) % inRepeat.Count].tileID; } } private void RenderDiagonalObject(int[,] Dest, ObjectDef obj, int width, int height) { //empty tiles fill for (int xp = 0; xp < width; xp++) for (int yp = 0; yp < height; yp++) Dest[xp, yp] = -1; //get sections List sections = getSlopeSections(obj); ObjectDefTile[,] mainBlock = sections[0]; ObjectDefTile[,] subBlock = null; if (sections.Count > 1) subBlock = sections[1]; byte controlByte = obj.tiles[0][0].controlByte; //get direction bool goLeft = (controlByte & 1) != 0; bool goDown = (controlByte & 2) != 0; //get starting point int x = 0; int y = 0; if (!goDown) y = height - mainBlock.GetLength(1); if (goLeft) x = width - mainBlock.GetLength(0); //get increments int xi = mainBlock.GetLength(0); if (goLeft) xi = -xi; int yi = mainBlock.GetLength(1); if (!goDown) yi = -yi; //this is a strange stop condition. //Put tells if we have put a tile in the destination //When we don't put any tile in destination we are completely //out of bounds, so stop. bool put = true; while (put) { put = false; putArray(Dest, x, y, mainBlock, width, height, ref put); if (subBlock != null) { int xb = x; if (goLeft) // right align xb = x + mainBlock.GetLength(0) - subBlock.GetLength(0); if (goDown) putArray(Dest, xb, y - subBlock.GetLength(1), subBlock, width, height, ref put); else putArray(Dest, xb, y + mainBlock.GetLength(1), subBlock, width, height, ref put); } x += xi; y += yi; } } private void putArray(int[,] Dest, int xo, int yo, ObjectDefTile[,] block, int width, int height, ref bool put) { for (int x = 0; x < block.GetLength(0); x++) for (int y = 0; y < block.GetLength(1); y++) putTile(Dest, x + xo, y + yo, width, height, block[x, y], ref put); } private List getSlopeSections(ObjectDef d) { List sections = new List(); List> currentSection = null; foreach (List row in d.tiles) { if (row.Count > 0 && row[0].slopeControl) // begin new section { if (currentSection != null) sections.Add(createSection(currentSection)); currentSection = new List>(); } currentSection.Add(row); } if (currentSection != null) //end last section sections.Add(createSection(currentSection)); return sections; } private ObjectDefTile[,] createSection(List> tiles) { //calculate width int width = 0; foreach (List row in tiles) { int thiswidth = countTiles(row); if (width < thiswidth) width = thiswidth; } //allocate array ObjectDefTile[,] section = new ObjectDefTile[width, tiles.Count]; for (int y = 0; y < tiles.Count; y++) { int x = 0; foreach (ObjectDefTile t in tiles[y]) if (!t.controlTile) { section[x, y] = t; x++; } } return section; } private int countTiles(List l) { int res = 0; foreach (ObjectDefTile t in l) if (!t.controlTile) res++; return res; } private void putTile(int[,] Dest, int x, int y, int width, int height, ObjectDefTile t, ref bool put) { if (x >= 0 && x < width) if (y >= 0 && y < height) { put = true; if (t != null) Dest[x, y] = t.tileID; } } public bool objectExists(int objNum) { if (objNum < 0){ return false; } if (objNum >= Objects.Length){ return false; } if (Objects[objNum] is null){ return false; } return true; } #endregion #region Import / Export GFX public void ExportGFX(string filename) { int tileCount = TilesetBuffer.Width / 8; int[] tilesUsed = new int[tileCount]; foreach (Map16Tile t in Map16) checkMap16UsedTiles(t, tilesUsed); Bitmap b = new Bitmap(256, tileCount / (256 / 8) * 8); for (int i = 0; i < tileCount; i++) { if (tilesUsed[i] == 0){ continue; } int tx = (i % 32) * 8; int ty = (int)(i / 32) * 8; int palOffs = 0; if (tilesUsed[i] == 2){ palOffs = 256; } for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) { byte color = RawGFXData[i * 64 + y * 8 + x]; Color col = Palette[palOffs + color]; if (color == 0) col = Color.Transparent; b.SetPixel(tx + x, ty + y, col); } } b.Save(filename, ImageFormat.Png); b.Dispose(); } public void ImportGFX(string filename, bool newInSecondPal) { int tileCount = TilesetBuffer.Width / 8; int[] tilesUsed = new int[tileCount]; foreach (Map16Tile t in Map16) checkMap16UsedTiles(t, tilesUsed); Bitmap img = new Bitmap(filename, true); // new ImagePreviewer(img).Show(); Bitmap a = new Bitmap(tileCount * 8, 8); Graphics ga = Graphics.FromImage(a); ga.Clear(Color.Transparent); Bitmap b = new Bitmap(tileCount * 8, 8); Graphics gb = Graphics.FromImage(b); gb.Clear(Color.Transparent); for (int i = 0; i < tileCount; i++) { int tx = (i % 32) * 8; int ty = (int)(i / 32) * 8; Graphics dest = ga; if (newInSecondPal){ dest = gb; } if (tilesUsed[i] == 1){ dest = ga; } if (tilesUsed[i] == 2){ dest = gb; } dest.DrawImage(img, new Rectangle(i * 8, 0, 8, 8), tx, ty, 8, 8, GraphicsUnit.Pixel); } ImageIndexer ia = new ImageIndexer(a); ImageIndexer ib = new ImageIndexer(b); Array.Copy(ia.palette, 1, Palette, 1, 255); Array.Copy(ib.palette, 1, Palette, 257, 255); // Array.Copy(ia.palettedImage, RawGFXData, RawGFXData.Length); for (int i = 0; i < tileCount; i++) { int tx = (i % 32) * 8; int ty = (int)(i / 32) * 8; ImageIndexer src = ia; if (newInSecondPal){ src = ib; } if (tilesUsed[i] == 1){ src = ia; } if (tilesUsed[i] == 2){ src = ib; } Array.Copy(src.palettedImage, i * 64, RawGFXData, i * 64, 64); } img.Dispose(); ResetGraphics(RawGFXData); }*/ /*private void checkMap16UsedTiles(Map16Tile t, int[] tilesUsed) { checkMap16UsedQuarter(t.topLeft, tilesUsed); checkMap16UsedQuarter(t.topRight, tilesUsed); checkMap16UsedQuarter(t.bottomLeft, tilesUsed); checkMap16UsedQuarter(t.bottomRight, tilesUsed); } private void checkMap16UsedQuarter(Map16Quarter q, int[] tilesUsed) { if (q.TileNum < 0){ return; } if (q.TileNum >= tilesUsed.Length){ return; } if (q.secondPalette) tilesUsed[q.TileNum] |= 2; else tilesUsed[q.TileNum] |= 1; } */ #endregion } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/nsbtx.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Drawing; using System.Windows.Forms; using System.Linq; using NSMBe4.DSFileSystem; using static NSMBe4.NSBMD.NSBTX_File.PalInfo_Master.Info; namespace NSMBe4.NSBMD { public class NSBTX { readonly DSFileSystem.File f; readonly byte[] data; readonly int texDataOffset; readonly int palDataOffset; readonly int palDefOffset; readonly int palDataSize; readonly int f5texDataOffset; readonly int f5dataOffset; public List pal = new List(); public PalettedImage[] textures; public PaletteDef[] palettes; public ByteArrayInputStream str; public int startoffset = 0; public NSBTX(DSFileSystem.File f) { this.f = f; data = f.getContents(); str = new ByteArrayInputStream(data); bool LZd = false; if (str.readUInt() == 0x37375A4C) { //LZ77 byte[] ndata = new byte[data.Length - 4]; Array.Copy(data, 4, ndata, 0, ndata.Length); data = ROM.LZ77_Decompress(ndata); str = new ByteArrayInputStream(data); LZd = true; } //look for TEX0 block //ugly, but i'm lazy to implement it properly. bool found = false; int blockStart = 0; while (str.lengthAvailable(4)) { if (BitConverter.GetBytes(str.readUInt()).SequenceEqual(Encoding.ASCII.GetBytes("TEX0"))){ // "TEX0" str.setOrigin(str.getPos() - 4); blockStart = (int)(str.getPos() - 4); found = true; startoffset = (int)str.getPos() - 4; break; } // else // str.skipback(3); //just in case its not word-aligned } str.seek(0); if (!found) { textures = new PalettedImage[0]; palettes = new PaletteDef[0]; return; } Console.Out.WriteLine("\n"); //Read stuff str.seek(0x14); texDataOffset = str.readInt() + blockStart; Console.Out.WriteLine("Texdata " + texDataOffset.ToString("X8")); str.seek(0x24); f5texDataOffset = str.readInt() + blockStart; Console.Out.WriteLine("f5Texdata " + f5texDataOffset.ToString("X8")); f5dataOffset = str.readInt() + blockStart; Console.Out.WriteLine("f5data " + f5dataOffset.ToString("X8")); str.seek(0x30); palDataSize = str.readInt() * 8; Console.Out.WriteLine("paldata size " + palDataSize.ToString("X8")); str.seek(0x34); palDefOffset = str.readInt(); Console.Out.WriteLine("paldef " + palDefOffset.ToString("X8")); palDataOffset = str.readInt(); Console.Out.WriteLine("paldata " + palDataOffset.ToString("X8")); //Read texture definitions str.seek(0x3D); textures = new PalettedImage[str.readByte()]; str.skip((uint)(0xE + textures.Length * 4)); //ImageManagerWindow mgr = new ImageManagerWindow(); //mgr.Text = f.name + " - Texture Editor"; bool hasFormat5 = false; for (int i = 0; i < textures.Length; i++) { int offset = 8 * str.ReadUInt16(); ushort param = str.ReadUInt16(); int format = (param >> 10) & 7; if (format == 5) { offset += f5texDataOffset; } else { offset += texDataOffset; } int width = 8 << ((param >> 4) & 7); int height = 8 << ((param >> 7) & 7); bool color0 = ((param >> 13) & 1) != 0; str.readUInt(); // unused int size = width * height * Image3D.bpps[format] / 8; Console.Out.WriteLine(offset.ToString("X8") + " " + format + " " + width + "x" + height + " " + color0 + " LZ" + LZd); InlineFile mainfile = new InlineFile(f, offset, size, Image3D.formatNames[format], null, LZd ? InlineFile.CompressionType.LZWithHeaderComp : InlineFile.CompressionType.NoComp); if (format == 5) { hasFormat5 = true; int f5size = (width * height) / 16 * 2; InlineFile f5file = new InlineFile(f, f5dataOffset, f5size, Image3D.formatNames[format], null, LZd ? InlineFile.CompressionType.LZWithHeaderComp : InlineFile.CompressionType.NoComp); f5dataOffset += f5size; textures[i] = new Image3Dformat5(mainfile, f5file, width, height); } else { textures[i] = new Image3D(mainfile, color0, width, height, format, offset); } // textures[i] = new Texture(this, color0, width, height, format, offset, ""); /* if (format == 5) { textures[i].f5DataOffset = f5dataOffset; f5dataOffset += (uint)(width * height) / 16 * 2; }*/ } for (int i = 0; i < textures.Length; i++) { if (textures[i] is null) { continue; } textures[i].name = str.ReadString(16); //mgr.m.addImage(textures[i]); } //Read palette definitions str.seek(palDefOffset + 1); palettes = new PaletteDef[str.readByte()]; str.skip((uint)(0xE + palettes.Length * 4)); for (int i = 0; i < palettes.Length; i++) { int offset = 8 * str.ReadUInt16() + palDataOffset + blockStart; str.ReadUInt16(); palettes[i] = new PaletteDef { offs = offset }; } Array.Sort(palettes); for (int i = 0; i < palettes.Length; i++) { palettes[i].name = str.ReadString(16); if (i != palettes.Length - 1) { palettes[i].size = palettes[i + 1].offs - palettes[i].offs; } } palettes[palettes.Length - 1].size = blockStart + palDataOffset + palDataSize - palettes[palettes.Length - 1].offs; for (int i = 0; i < palettes.Length; i++) { if (hasFormat5) { pal.Add(new FilePalette(new InlineFile(f, palettes[i].offs, palettes[i].size, palettes[i].name, null, LZd ? InlineFile.CompressionType.LZWithHeaderComp : InlineFile.CompressionType.NoComp))); //mgr.m.addPalette(pa); } else { int extrapalcount = (palettes[i].size) / 512; for (int j = 0; j < extrapalcount; j++) { pal.Add(new FilePalette(new InlineFile(f, palettes[i].offs + j * 512, 512, palettes[i].name + ":" + j, null, LZd ? InlineFile.CompressionType.LZWithHeaderComp : InlineFile.CompressionType.NoComp))); //mgr.m.addPalette(pa); } int lastsize = palettes[i].size % 512; if (lastsize != 0) { pal.Add(new FilePalette(new InlineFile(f, palettes[i].offs + extrapalcount * 512, lastsize, palettes[i].name + ":" + extrapalcount, null, LZd ? InlineFile.CompressionType.LZWithHeaderComp : InlineFile.CompressionType.NoComp))); //mgr.m.addPalette(pa); } } } //mgr.Show(); // new ImagePreviewer(textures[0].render(palettes[0])).Show(); } public void close() { f.endEdit(this); } public byte[] save() { f.replace(str.getData(), this); return str.getData(); } public class PaletteDef : IComparable { public int offs, size; public string name; public int CompareTo(PaletteDef b) { return offs.CompareTo(b.offs); } } } public class NSBTX_File { public enum TextureFormat : byte { FORMAT_NO_TEXTURE = 0, A3I5 = 1, COLOR_4 = 2, COLOR_16 = 3, COLOR_256 = 4, TEXEL_4X4 = 5, A5I3 = 6, DIRECT = 7 } public byte[] before; public byte[] after; public Header header; public struct Header { public string ID; public ushort unk1; public ushort unk2; public int file_size; public short header_size; public short nSection; public long[] Section_Offset; } public struct TextureInformation { public int unk; public int datasize; //shift << 3 public short dictionary_Offset; public short unk2; public int data_Offset; } public struct CompressedTextureInformation { public int unk; public int datasize; //shift << 3 public short dictionary_Offset; public short unk2; public int data_Offset; public int palIndex; } public struct PaletteInformation { public int unk; public int datasize; //shift << 3 public short unk2; public short dictionary_Offset; public int data_Offset; } public TEX0 tex0; public struct TEX0 { public int Section_size; public TextureInformation textureInformation; public CompressedTextureInformation compTextureInformation; public PaletteInformation paletteInformation; } public struct UnknownBlock { public short header_size; public short section_size; public int constant; // 0x017F public List<(short unk1, short unk2)> data; } public TexInfo_Master texInfo; public struct TexInfo_Master { public byte dummy; public byte num_objs; public short section_size; public UnknownBlock unknownBlock; public Info infoBlock; public List names; public struct Info { public struct TexInfo { public int Texture_Offset; //shift << 3, relative to start of Texture Data public short Parameters; public byte Width; public byte Unknown1; public byte Height; public byte Unknown2; public byte[] Image; public byte[] spData; // Parameters public byte repeat_X; // 0 = freeze; 1 = repeat public byte repeat_Y; // 0 = freeze; 1 = repeat public byte flip_X; // 0 = no; 1 = flip each 2nd texture (requires repeat) public byte flip_Y; // 0 = no; 1 = flip each 2nd texture (requires repeat) public ushort width; // 8 << width public ushort height; // 8 << height public TextureFormat format; // Texture format public byte color0; // 0 = displayed; 1 = transparent public byte coord_transf; // Texture coordination transformation mode public byte depth; public uint compressedDataStart; } public short header_size; public short data_size; public TexInfo[] tInfoArr; } } public PalInfo_Master palInfo; public struct PalInfo_Master { public byte dummy; public byte num_objs; public short section_size; public UnknownBlock unknownBlock; public Info infoBlock; public List names; public struct Info { public struct PalInfo { public int Palette_Offset; //shift << 3, relative to start of Palette Data public short Color0; public Color[] pal; } public short header_size; public short data_size; public PalInfo[] pInfoArr; } } readonly int[] bitDepth = { 0, 8, 2, 4, 8, 2, 8, 16 }; public NSBTX_File(FileStream f) { using (EndianBinaryReader er = new EndianBinaryReader(f, Endianness.LittleEndian)) { if (f.Length <= 4) { MessageBox.Show("Error: Texture file is too small.", null, MessageBoxButtons.OK, MessageBoxIcon.Stop); er.Close(); return; } if (er.ReadString(Encoding.ASCII, 4) != "BTX0") { MessageBox.Show("Error: BTX header is wrong.", null, MessageBoxButtons.OK, MessageBoxIcon.Stop); er.Close(); return; } else { header.ID = "BTX0"; header.unk1 = er.ReadUInt16(); //4 header.unk2 = er.ReadUInt16(); //6 header.file_size = er.ReadInt32(); //8 header.header_size = er.ReadInt16(); //10 header.nSection = er.ReadInt16(); //12 header.Section_Offset = new long[header.nSection]; for (int i = 0; i < header.nSection; i++) { header.Section_Offset[i] = er.ReadUInt32(); } //================================================== long backup = f.Position; string ID = er.ReadString(Encoding.ASCII, 4); if (ID != "TEX0") { MessageBox.Show("Error: TEX0 header is wrong.", null, MessageBoxButtons.OK, MessageBoxIcon.Stop); er.Close(); return; } } tex0.Section_size = er.ReadInt32(); tex0.textureInformation.unk = er.ReadInt32(); tex0.textureInformation.datasize = er.ReadInt16() << 3; tex0.textureInformation.dictionary_Offset = er.ReadInt16(); tex0.textureInformation.unk2 = er.ReadInt16(); er.BaseStream.Position += 2; //Skip padding tex0.textureInformation.data_Offset = er.ReadInt32(); tex0.compTextureInformation.unk = er.ReadInt32(); tex0.compTextureInformation.datasize = er.ReadInt16() << 3; tex0.compTextureInformation.dictionary_Offset = er.ReadInt16(); tex0.compTextureInformation.unk2 = er.ReadInt16(); er.BaseStream.Position += 2; //Skip padding tex0.compTextureInformation.data_Offset = er.ReadInt32(); tex0.compTextureInformation.palIndex = er.ReadInt32(); tex0.paletteInformation.unk = er.ReadInt32(); tex0.paletteInformation.datasize = er.ReadInt16() << 3; tex0.paletteInformation.unk2 = er.ReadInt16(); tex0.paletteInformation.dictionary_Offset = er.ReadInt16(); er.BaseStream.Position += 2; //Skip padding tex0.paletteInformation.data_Offset = er.ReadInt32(); texInfo.dummy = er.ReadByte(); texInfo.num_objs = er.ReadByte(); texInfo.section_size = er.ReadInt16(); texInfo.unknownBlock.header_size = er.ReadInt16(); texInfo.unknownBlock.section_size = er.ReadInt16(); texInfo.unknownBlock.constant = er.ReadInt32(); texInfo.unknownBlock.data = new List<(short unk1, short unk2)>(texInfo.num_objs); for (int i = 0; i < texInfo.num_objs; i++) { texInfo.unknownBlock.data.Add((er.ReadInt16(), er.ReadInt16())); } texInfo.infoBlock.header_size = er.ReadInt16(); texInfo.infoBlock.data_size = er.ReadInt16(); texInfo.infoBlock.tInfoArr = new TexInfo_Master.Info.TexInfo[texInfo.num_objs]; for (int i = 0; i < texInfo.num_objs; i++) { texInfo.infoBlock.tInfoArr[i].Texture_Offset = er.ReadInt16() << 3; texInfo.infoBlock.tInfoArr[i].Parameters = er.ReadInt16(); texInfo.infoBlock.tInfoArr[i].Width = er.ReadByte(); texInfo.infoBlock.tInfoArr[i].Unknown1 = er.ReadByte(); texInfo.infoBlock.tInfoArr[i].Height = er.ReadByte(); texInfo.infoBlock.tInfoArr[i].Unknown2 = er.ReadByte(); texInfo.infoBlock.tInfoArr[i].coord_transf = (byte)(texInfo.infoBlock.tInfoArr[i].Parameters & 14); texInfo.infoBlock.tInfoArr[i].color0 = (byte)((texInfo.infoBlock.tInfoArr[i].Parameters >> 13) & 1); texInfo.infoBlock.tInfoArr[i].format = (TextureFormat)((texInfo.infoBlock.tInfoArr[i].Parameters >> 10) & 7); texInfo.infoBlock.tInfoArr[i].height = (byte)(8 << ((texInfo.infoBlock.tInfoArr[i].Parameters >> 7) & 7)); texInfo.infoBlock.tInfoArr[i].width = (byte)(8 << ((texInfo.infoBlock.tInfoArr[i].Parameters >> 4) & 7)); texInfo.infoBlock.tInfoArr[i].flip_Y = (byte)((texInfo.infoBlock.tInfoArr[i].Parameters >> 3) & 1); texInfo.infoBlock.tInfoArr[i].flip_X = (byte)((texInfo.infoBlock.tInfoArr[i].Parameters >> 2) & 1); texInfo.infoBlock.tInfoArr[i].repeat_Y = (byte)((texInfo.infoBlock.tInfoArr[i].Parameters >> 1) & 1); texInfo.infoBlock.tInfoArr[i].repeat_X = (byte)(texInfo.infoBlock.tInfoArr[i].Parameters & 1); texInfo.infoBlock.tInfoArr[i].depth = (byte)bitDepth[(byte)texInfo.infoBlock.tInfoArr[i].format]; if (texInfo.infoBlock.tInfoArr[i].width == 0x00) { switch (texInfo.infoBlock.tInfoArr[i].Unknown1 & 0x3) { case 2: texInfo.infoBlock.tInfoArr[i].width = 0x200; break; default: texInfo.infoBlock.tInfoArr[i].width = 0x100; break; } } if (texInfo.infoBlock.tInfoArr[i].height == 0x00) { switch ((texInfo.infoBlock.tInfoArr[i].Height >> 3) & 0x3) { case 2: texInfo.infoBlock.tInfoArr[i].height = 0x200; break; default: texInfo.infoBlock.tInfoArr[i].height = 0x100; break; } } int imgsize = texInfo.infoBlock.tInfoArr[i].width * texInfo.infoBlock.tInfoArr[i].height * texInfo.infoBlock.tInfoArr[i].depth / 8; long curpos = er.BaseStream.Position; if (texInfo.infoBlock.tInfoArr[i].format == TextureFormat.TEXEL_4X4) { er.BaseStream.Seek(header.Section_Offset[0] + tex0.compTextureInformation.data_Offset + texInfo.infoBlock.tInfoArr[i].Texture_Offset, SeekOrigin.Begin); } else { er.BaseStream.Seek(texInfo.infoBlock.tInfoArr[i].Texture_Offset + header.Section_Offset[0] + tex0.textureInformation.data_Offset, SeekOrigin.Begin); } texInfo.infoBlock.tInfoArr[i].Image = er.ReadBytes(imgsize); er.BaseStream.Seek(curpos, SeekOrigin.Begin); if (texInfo.infoBlock.tInfoArr[i].format == TextureFormat.TEXEL_4X4) { curpos = er.BaseStream.Position; er.BaseStream.Seek(header.Section_Offset[0] + tex0.compTextureInformation.palIndex + texInfo.infoBlock.tInfoArr[i].Texture_Offset / 2, SeekOrigin.Begin); texInfo.infoBlock.tInfoArr[i].spData = er.ReadBytes(imgsize / 2); er.BaseStream.Seek(curpos, SeekOrigin.Begin); } } texInfo.names = new List(texInfo.num_objs); for (int i = 0; i < texInfo.num_objs; i++) { texInfo.names.Add(er.ReadString(Encoding.ASCII, 16).Replace("\0", "")); } palInfo.dummy = er.ReadByte(); palInfo.num_objs = er.ReadByte(); palInfo.section_size = er.ReadInt16(); palInfo.unknownBlock.header_size = er.ReadInt16(); palInfo.unknownBlock.section_size = er.ReadInt16(); palInfo.unknownBlock.constant = er.ReadInt32(); palInfo.unknownBlock.data = new List<(short unk1, short unk2)>(palInfo.num_objs); for (int i = 0; i < palInfo.num_objs; i++) { palInfo.unknownBlock.data.Add((er.ReadInt16(), er.ReadInt16())); } palInfo.infoBlock.header_size = er.ReadInt16(); palInfo.infoBlock.data_size = er.ReadInt16(); palInfo.infoBlock.pInfoArr = new PalInfo_Master.Info.PalInfo[palInfo.num_objs]; for (int i = 0; i < palInfo.num_objs; i++) { palInfo.infoBlock.pInfoArr[i].Palette_Offset = er.ReadInt16() << 3; palInfo.infoBlock.pInfoArr[i].Color0 = er.ReadInt16(); //er.BaseStream.Position -= 4; //int palBase = er.ReadInt32(); //int palAddr = palBase & 0xfff; long curpos = er.BaseStream.Position; er.BaseStream.Seek(header.Section_Offset[0] + tex0.paletteInformation.data_Offset, SeekOrigin.Begin); er.BaseStream.Seek(palInfo.infoBlock.pInfoArr[i].Palette_Offset, SeekOrigin.Current); palInfo.infoBlock.pInfoArr[i].pal = Tinke.Convertir.BGR555ToColorArray(er.ReadBytes(tex0.paletteInformation.datasize - palInfo.infoBlock.pInfoArr[i].Palette_Offset)); er.BaseStream.Seek(curpos, SeekOrigin.Begin); } palInfo.names = new List(palInfo.num_objs); for (int i = 0; i < palInfo.num_objs; i++) { palInfo.names.Add(er.ReadString(Encoding.ASCII, 16).Replace("\0", "")); } List offsets = new List(palInfo.num_objs); for (int i = 0; i < palInfo.num_objs; i++) { offsets.Add(palInfo.infoBlock.pInfoArr[i].Palette_Offset); } offsets.Add((int)er.BaseStream.Length); offsets.Sort(); for (int i = 0; i < palInfo.num_objs; i++) { int pallength; int j = -1; do { j++; } while (offsets[j] - palInfo.infoBlock.pInfoArr[i].Palette_Offset <= 0); pallength = offsets[j] - palInfo.infoBlock.pInfoArr[i].Palette_Offset; palInfo.infoBlock.pInfoArr[i].pal = palInfo.infoBlock.pInfoArr[i].pal.Take(pallength / 2).ToArray(); } } } public (Bitmap bmp, int ctrlCode) GetBitmap(int imageIndex, int palIndex) { NSBTX_File overworldFrames = null; int ctrlCode = 0; Bitmap b_ = new Bitmap(this.texInfo.infoBlock.tInfoArr[imageIndex].width, this.texInfo.infoBlock.tInfoArr[imageIndex].height); ImageTexeler.LockBitmap b = new ImageTexeler.LockBitmap(b_); b.LockBits(); int pixelnum = b.Height * b.Width; try { switch (this.texInfo.infoBlock.tInfoArr[imageIndex].format) { case TextureFormat.A3I5: for (int j = 0; j < pixelnum; j++) { int index = this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j] & 0x1f; int alpha = this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j] >> 5; alpha = alpha == 0 ? 0 : (alpha + 1) * 32 - 1; Color c = Color.FromArgb(alpha, this.palInfo.infoBlock.pInfoArr[palIndex].pal[index]); b.SetPixel(j - (j / b.Width * b.Width), j / b.Width, c); } break; case TextureFormat.COLOR_4: for (int j = 0; j < pixelnum; j++) { uint index = this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j / 4]; index = (index >> ((j % 4) << 1)) & 3; PalInfo[] pinfoArr = this.palInfo.infoBlock.pInfoArr; Color c; if (index == 0 && this.texInfo.infoBlock.tInfoArr[imageIndex].color0 == 1) { c = Color.Transparent; } else { if (index >= pinfoArr[palIndex].pal.Length) { c = Color.Black; ctrlCode = 4; } else { c = pinfoArr[palIndex].pal[index]; } } b.SetPixel(j - (j / b.Width * b.Width), j / b.Width, c); } break; case TextureFormat.COLOR_16: for (int j = 0; j < pixelnum; j++) { uint index = this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j / 2]; index = (index >> ((j % 2) << 2)) & 0x0f; PalInfo[] pinfoArr = this.palInfo.infoBlock.pInfoArr; Color c; if (index == 0 && this.texInfo.infoBlock.tInfoArr[imageIndex].color0 == 1) { c = Color.Transparent; } else { if (index >= pinfoArr[palIndex].pal.Length) { ctrlCode = 16; c = Color.Black; } else { c = pinfoArr[palIndex].pal[index]; } } b.SetPixel(j - (j / b.Width * b.Width), j / b.Width, c); } break; case TextureFormat.COLOR_256: for (int j = 0; j < pixelnum; j++) { byte index = this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j]; PalInfo[] pinfoArr = this.palInfo.infoBlock.pInfoArr; Color c; if (index == 0 && this.texInfo.infoBlock.tInfoArr[imageIndex].color0 == 1) { c = Color.Transparent; } else { if (index >= pinfoArr[palIndex].pal.Length) { ctrlCode = 256; c = Color.Black; } else { c = pinfoArr[palIndex].pal[index]; } } b.SetPixel(j - (j / b.Width * b.Width), j / b.Width, c); } break; case TextureFormat.TEXEL_4X4: overworldFrames.convert_4x4texel_b(this.texInfo.infoBlock.tInfoArr[imageIndex].Image, b.Width, b.Height, this.texInfo.infoBlock.tInfoArr[imageIndex].spData, this.palInfo.infoBlock.pInfoArr[palIndex].pal, b); b.UnlockBits(); break; case TextureFormat.A5I3: for (int j = 0; j < pixelnum; j++) { int index = this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j] & 0x7; int alpha = this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j] >> 3;// & 0x1f; alpha = alpha == 0 ? 0 : (alpha + 1) * 8 - 1; Color c = Color.FromArgb(alpha, this.palInfo.infoBlock.pInfoArr[palIndex].pal[index]); b.SetPixel(j - (j / b.Width * b.Width), j / b.Width, c); } break; case TextureFormat.DIRECT: for (int j = 0; j < pixelnum; j++) { ushort p = (ushort)(this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j * 2] + (this.texInfo.infoBlock.tInfoArr[imageIndex].Image[j * 2 + 1] << 8)); Color c = Color.FromArgb( ((p & 0x8000) != 0) ? 0xff : 0, ((p >> 0) & 0x1f) << 3, ((p >> 5) & 0x1f) << 3, ((p >> 10) & 0x1f) << 3); b.SetPixel(j - (j / b.Width * b.Width), j / b.Width, c); } break; } } finally { b.UnlockBits(); } return (b_, ctrlCode); } public byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { long filesizeOffset; writer.Write(Encoding.ASCII.GetBytes("BTX0")); writer.Write(header.unk1); writer.Write(header.unk2); filesizeOffset = writer.BaseStream.Position; writer.BaseStream.Position += 4; //Size will be written once we know it writer.Write(header.header_size); writer.Write(header.nSection); for (int i = 0; i < header.nSection; i++) { writer.Write(header.Section_Offset[i]); } //=============// writer.Write(Encoding.ASCII.GetBytes("TEX0")); writer.Write(tex0.Section_size); writer.Write(tex0.textureInformation.unk); writer.Write((short)(tex0.textureInformation.datasize >> 3)); writer.Write(tex0.textureInformation.dictionary_Offset); writer.Write(tex0.textureInformation.unk2); writer.BaseStream.Position += 2; //Skip padding writer.Write(tex0.textureInformation.data_Offset); writer.Write(tex0.compTextureInformation.unk); writer.Write((short)(tex0.compTextureInformation.datasize >> 3)); writer.Write(tex0.compTextureInformation.dictionary_Offset); writer.Write(tex0.compTextureInformation.unk2); writer.BaseStream.Position += 2; //Skip padding writer.Write(tex0.compTextureInformation.data_Offset); writer.Write(tex0.compTextureInformation.palIndex); writer.Write(tex0.paletteInformation.unk); writer.Write((short)(tex0.paletteInformation.datasize >> 3)); //this should actually be serialized as 4B int writer.Write(tex0.paletteInformation.unk2); writer.Write(tex0.paletteInformation.dictionary_Offset); writer.BaseStream.Position += 2; //Skip padding writer.Write(tex0.paletteInformation.data_Offset); writer.Write(texInfo.dummy); writer.Write(texInfo.num_objs); writer.Write(texInfo.section_size); writer.Write(texInfo.unknownBlock.header_size); writer.Write(texInfo.unknownBlock.section_size); writer.Write(texInfo.unknownBlock.constant); for (int i = 0; i < texInfo.num_objs; i++) { (short unk1, short unk2) = texInfo.unknownBlock.data[i]; writer.Write(unk1); writer.Write(unk2); } writer.Write(texInfo.infoBlock.header_size); writer.Write(texInfo.infoBlock.data_size); for (int i = 0; i < texInfo.num_objs; i++) { writer.Write((ushort)(texInfo.infoBlock.tInfoArr[i].Texture_Offset >> 3)); writer.Write(texInfo.infoBlock.tInfoArr[i].Parameters); writer.Write(texInfo.infoBlock.tInfoArr[i].Width); writer.Write(texInfo.infoBlock.tInfoArr[i].Unknown1); writer.Write(texInfo.infoBlock.tInfoArr[i].Height); writer.Write(texInfo.infoBlock.tInfoArr[i].Unknown2); long curpos = writer.BaseStream.Position; if (texInfo.infoBlock.tInfoArr[i].format == TextureFormat.TEXEL_4X4) { writer.BaseStream.Seek(header.Section_Offset[0] + tex0.compTextureInformation.data_Offset + texInfo.infoBlock.tInfoArr[i].Texture_Offset, SeekOrigin.Begin); } else { writer.BaseStream.Seek(texInfo.infoBlock.tInfoArr[i].Texture_Offset + header.Section_Offset[0] + tex0.textureInformation.data_Offset, SeekOrigin.Begin); } writer.Write(texInfo.infoBlock.tInfoArr[i].Image); writer.BaseStream.Seek(curpos, SeekOrigin.Begin); if (texInfo.infoBlock.tInfoArr[i].format == TextureFormat.TEXEL_4X4) { curpos = writer.BaseStream.Position; writer.BaseStream.Seek(header.Section_Offset[0] + tex0.compTextureInformation.palIndex + texInfo.infoBlock.tInfoArr[i].Texture_Offset / 2, SeekOrigin.Begin); writer.Write(texInfo.infoBlock.tInfoArr[i].spData); writer.BaseStream.Seek(curpos, SeekOrigin.Begin); } } for (int i = 0; i < texInfo.num_objs; i++) { writer.Write(Encoding.ASCII.GetBytes(texInfo.names[i].PadRight(16, '\0'))); } writer.Write(palInfo.dummy); writer.Write(palInfo.num_objs); writer.Write(palInfo.section_size); writer.Write(palInfo.unknownBlock.header_size); writer.Write(palInfo.unknownBlock.section_size); writer.Write(palInfo.unknownBlock.constant); for (int i = 0; i < palInfo.num_objs; i++) { (short unk1, short unk2) = palInfo.unknownBlock.data[i]; writer.Write(unk1); writer.Write(unk2); } writer.Write(palInfo.infoBlock.header_size); writer.Write(palInfo.infoBlock.data_size); for (int i = 0; i < palInfo.num_objs; i++) { writer.Write((ushort)(palInfo.infoBlock.pInfoArr[i].Palette_Offset >> 3)); writer.Write(palInfo.infoBlock.pInfoArr[i].Color0); //int palAddr = palBase & 0xfff; long curpos = writer.BaseStream.Position; writer.BaseStream.Seek(header.Section_Offset[0] + tex0.paletteInformation.data_Offset, SeekOrigin.Begin); writer.BaseStream.Seek(palInfo.infoBlock.pInfoArr[i].Palette_Offset, SeekOrigin.Current); writer.Write(Tinke.Convertir.ColorArrayToBGR555(palInfo.infoBlock.pInfoArr[i].pal)); writer.BaseStream.Seek(curpos, SeekOrigin.Begin); } for (int i = 0; i < palInfo.num_objs; i++) { writer.Write(Encoding.ASCII.GetBytes(palInfo.names[i].PadRight(16, '\0'))); } for (int i = 0; i < palInfo.num_objs; i++) { writer.Write(palInfo.infoBlock.pInfoArr[i].Palette_Offset); } writer.BaseStream.Position = filesizeOffset; //go back and write file size writer.Write((uint)writer.BaseStream.Length); } return newData.ToArray(); } public bool convert_4x4texel(uint[] tex, int width, int height, ushort[] data, Color[] pal, ImageTexeler.LockBitmap rgbaOut) { int w = width / 4; int h = height / 4; // traverse 'w x h blocks' of 4x4-texel for (int y = 0; y < h; y++) for (int x = 0; x < w; x++) { int index = y * w + x; UInt32 t = tex[index]; ushort d = data[index]; ushort addr = (ushort)(d & 0x3fff); ushort mode = (ushort)((d >> 14) & 3); // traverse every texel in the 4x4 texels for (int r = 0; r < 4; r++) { for (int c = 0; c < 4; c++) { int texel = (int)((t >> ((r * 4 + c) * 2)) & 3); Color pixel = rgbaOut.GetPixel((x * 4 + c), (y * 4 + r)); switch (mode) { case 0: pixel = pal[(addr << 1) + texel]; if (texel == 3){ pixel = Color.Transparent; } // make it transparent, alpha = 0 break; case 2: pixel = pal[(addr << 1) + texel]; break; case 1: switch (texel) { case 0: case 1: pixel = pal[(addr << 1) + texel]; break; case 2: byte R = (byte)((pal[(addr << 1)].R + pal[(addr << 1) + 1].R) / 2L); byte G = (byte)((pal[(addr << 1)].G + pal[(addr << 1) + 1].G) / 2L); byte B = (byte)((pal[(addr << 1)].B + pal[(addr << 1) + 1].B) / 2L); byte A = 0xff; pixel = Color.FromArgb(A, R, G, B); break; case 3: pixel = Color.Transparent; // make it transparent, alpha = 0 break; } break; case 3: switch (texel) { case 0: case 1: pixel = pal[(addr << 1) + texel]; break; case 2: { byte R = (byte)((pal[(addr << 1)].R * 5L + pal[(addr << 1) + 1].R * 3L) / 8); byte G = (byte)((pal[(addr << 1)].G * 5L + pal[(addr << 1) + 1].G * 3L) / 8); byte B = (byte)((pal[(addr << 1)].B * 5L + pal[(addr << 1) + 1].B * 3L) / 8); byte A = 0xff; pixel = Color.FromArgb(A, R, G, B); break; } case 3: { byte R = (byte)((pal[(addr << 1)].R * 3L + pal[(addr << 1) + 1].R * 5L) / 8); byte G = (byte)((pal[(addr << 1)].G * 3L + pal[(addr << 1) + 1].G * 5L) / 8); byte B = (byte)((pal[(addr << 1)].B * 3L + pal[(addr << 1) + 1].B * 5L) / 8); byte A = 0xff; pixel = Color.FromArgb(A, R, G, B); break; } } break; default: break; } rgbaOut.SetPixel((x * 4 + c), (y * 4 + r), pixel); //rgbaOut[(y * 4 + r) * width + (x * 4 + c)] = pixel; } } } return true; } public void convert_4x4texel_b(byte[] tex, int width, int height, byte[] data, Color[] pal, ImageTexeler.LockBitmap rgbaOut) { var list1 = new List(); for (int i = 0; i < (tex.Length + 1) / 4; ++i) { list1.Add(LibNDSFormats.Utils.Read4BytesAsUInt32(tex, i * 4)); } var list2 = new List(); for (int i = 0; i < (data.Length + 1) / 2; ++i) { list2.Add(LibNDSFormats.Utils.Read2BytesAsushort(data, i * 2)); } convert_4x4texel(list1.ToArray(), width, height, list2.ToArray(), pal, rgbaOut); } internal HashSet<(byte f1, byte f2)> AnalyzeRepetitions() { HashSet<(byte f1, byte f2)> equality = new HashSet<(byte f1, byte f2)>(); HashSet equalY = new HashSet(); int texInfoCount = this.texInfo.infoBlock.tInfoArr.Length; for (byte x = 0; x < texInfoCount; x++) { for (byte y = (byte)(x + 1); y < texInfoCount; y++) { if (!equalY.Contains(x) && !equalY.Contains(y)) { if (this.texInfo.infoBlock.tInfoArr[x].Image.SequenceEqual(this.texInfo.infoBlock.tInfoArr[y].Image)) { equality.Add((x, y)); equalY.Add(y); } } } } return equality; } public class DupFrameHashSetComparer : IEqualityComparer> { #region IEqualityComparer Members public bool Equals(HashSet<(byte f1, byte f2)> x, HashSet<(byte f1, byte f2)> y) { return x.SetEquals(y); } public int GetHashCode(HashSet<(byte f1, byte f2)> obj) { int ret = 0; foreach(var key in obj) { ret += key.GetHashCode(); } return ret; } #endregion } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/palettedimage.cs ================================================ using System.Drawing; namespace NSMBe4 { public abstract class PalettedImage { public string name; public abstract Bitmap render(Palette p); public abstract void replaceWithPal(Bitmap b, Palette p); public abstract void replaceImgAndPal(Bitmap b, Palette p); public bool supportsReplaceWithPal() { return true; } public abstract void save(); public abstract int getWidth(); public abstract int getHeight(); public abstract void close(); public int format; public long offset; public long offset5; public bool color0; //These two must return raw data representing the whole image //Used for undo/redo in the GraphicsEditor public abstract byte[] getRawData(); public abstract byte[] getRawData5(); public abstract void setRawData(byte[] data); } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/pallete2.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Drawing; namespace NSMBe4 { public abstract class Palette { public Color[] pal; public abstract void save(); public abstract byte[] getRawData(); public abstract void close(); public int getClosestColor(Color c) { if (c.A == 0) return 0; int bestInd = 0; float bestDif = ImageIndexer.colorDifferenceWithoutAlpha(pal[0], c); for (int i = 0; i < pal.Length; i++) { float d = ImageIndexer.colorDifferenceWithoutAlpha(pal[i], c); if (d < bestDif) { bestDif = d; bestInd = i; } } return bestInd; } public Color getColorSafe(int ind) { if (ind >= pal.Length) return Color.Fuchsia; return pal[ind]; } } } ================================================ FILE: DS_Map/LibNDSFormats/NSBTX/pixelpalletedimage.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Drawing; namespace NSMBe4 { public abstract class PixelPalettedImage : PalettedImage { public override void replaceImgAndPal(Bitmap b, Palette p) { p.pal = ImageIndexer.createPaletteForImage(b, p.pal.Length); replaceWithPal(b, p); } public override void replaceWithPal(Bitmap b, Palette p) { for (int x = 0; x < getWidth(); x++) for (int y = 0; y < getHeight(); y++) { Color c = b.GetPixel(x, y); int i = p.getClosestColor(c); setPixel(x, y, i); } save(); } public override Bitmap render(Palette p) { if (color0 == true) { p.pal[0] = Color.Transparent; } int w = getWidth(); int h = getHeight(); Bitmap b = new Bitmap(w, h); for (int x = 0; x < w; x++) for (int y = 0; y < h; y++) b.SetPixel(x, y, p.getColorSafe(getPixel(x, y))); return b; } public void setPixelData(byte[,] a, int xx, int yy) { int tx = getWidth(); int ty = getHeight(); for (int x = 0; x < tx; x++) for (int y = 0; y < ty; y++) { setPixel(x, y, a[x + xx, y + yy]); } } public void setPixelData(int[,] a, int xx, int yy) { int tx = getWidth(); int ty = getHeight(); for (int x = 0; x < tx; x++) for (int y = 0; y < ty; y++) { setPixel(x, y, a[x + xx, y + yy]); } } public abstract void setPixel(int x, int y, int c); public abstract int getPixel(int x, int y); } } ================================================ FILE: DS_Map/LibNDSFormats/StreamExt.cs ================================================ // PG4Map - a 4th Gen Pokemon Map Viewer. // Miscellaneous stream extensions. // // Copyright (C) 2010 SentryAlphaOmega // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA namespace System.IO { /// /// Extension methods for System.IO.Stream. /// static class StreamExt { #region Methods (3) // Public Methods (3) /// /// Get remaining length from stream position. /// public static long GetRemainingLength(this Stream stream) { return stream.Length - stream.Position; } /// /// Skip a number of bytes. /// /// Number of bytes to skip. public static void Skip(this Stream stream, long skipCount) { stream.Seek(skipCount, SeekOrigin.Current); } /// /// Skip a number of bytes. /// /// Number of bytes to skip. public static void Skip(this Stream stream, uint skipCount) { Skip(stream, (long)skipCount); } #endregion Methods } } ================================================ FILE: DS_Map/LibNDSFormats/Utils.cs ================================================ // PG4Map - a 4th Gen Pokemon Map Viewer. // Utility class. // // Copyright (C) 2010 SentryAlphaOmega // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.IO; namespace LibNDSFormats { /// /// Utility class. /// public static class Utils { #region Methods (1) // Public Methods (1) /// /// Read string in file. /// /// Binary reader to use. /// Trimmed string. public static string ReadNSBMDString(EndianBinaryReader reader) { var str = new String(reader.ReadChars(System.Text.Encoding.ASCII, 16)); str = str.Replace("\0", ""); return str; } /// /// Read 2 Bytes as ushort /// /// Byte array. /// Offset in array. /// 2 Bytes as ushort. public static ushort Read2BytesAsushort(byte[] bytes, int offset) { int result = 0; for (int i = 0; i < 2; ++i) result |= bytes[offset + i] << (8 * (i)); return (ushort)result; } /// /// Read 2 Bytes as Int16 /// /// Byte array. /// Offset in array. /// 2 Bytes as Int16. public static Int16 Read2BytesAsInt16(byte[] bytes, int offset) { int result = 0; for (int i = 0; i < 2; ++i) result |= bytes[offset + i] << (8 * (i)); return (short)result; } /// /// Read 3 Bytes as Int24 /// /// Byte array. /// Offset in array. /// 3 Bytes as Int32. public static int Read3BytesAsInt24(byte[] bytes, int offset) { int result = 0; for (int i = 0; i < 3; ++i) result |= bytes[offset + i] << (8 * i); return result; } /// /// Read 4 Bytes as Int32 /// /// Byte array. /// Offset in array. /// 4 Bytes as Int32. public static int Read4BytesAsInt32(byte[] bytes, int offset) { int result = 0; for (int i = 0; i < 4; ++i) result |= bytes[offset + i] << (8 * i); return result; } /// /// Read 4 Bytes as Float /// /// Byte array. /// Offset in array. /// 4 Bytes as Int32. public static float Read4BytesAsFloat(byte[] bytes, int offset) { int result = 0; for (int i = 0; i < 4; ++i) result |= bytes[offset + i] << (8 * i); return result; } /// /// Read 4 Bytes as UInt32 /// /// Byte array. /// Offset in array. /// 4 Bytes as Int32. public static UInt32 Read4BytesAsUInt32(byte[] bytes, int offset) { UInt32 result = 0; for (int i = 0; i < 4; ++i) { result |= (uint)(bytes[offset + i] << (8 * i)); } return result; } #endregion Methods } } ================================================ FILE: DS_Map/LibNDSFormats/bytearrayoutputstream.cs ================================================ /* * This file is part of NSMB Editor 5. * * NSMB Editor 5 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * NSMB Editor 5 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NSMB Editor 5. If not, see . */ using System; using System.Collections.Generic; using System.Text; namespace NSMBe4 { public class ByteArrayOutputStream { //implements an unbonded array to store unlimited data. //writes in amortized constant time. private byte[] buf = new byte[16]; private int pos = 0; public ByteArrayOutputStream() { } public int getPos() { return pos; } public byte[] getArray() { byte[] ret = new byte[pos]; Array.Copy(buf, ret, pos); return ret; } public void writeByte(byte b) { if (buf.Length <= pos) grow(); buf[pos] = b; pos++; } public void writeUShort(ushort u) { writeByte((byte)u); writeByte((byte)(u >> 8)); } public void writeUInt(uint u) { writeByte((byte)u); writeByte((byte)(u >> 8)); writeByte((byte)(u >> 16)); writeByte((byte)(u >> 24)); } public void writeInt(int i) { writeUInt((uint)i); } public void writeLong(long u) { writeByte((byte)u); writeByte((byte)(u >> 8)); writeByte((byte)(u >> 16)); writeByte((byte)(u >> 24)); writeByte((byte)(u >> 32)); writeByte((byte)(u >> 40)); writeByte((byte)(u >> 48)); writeByte((byte)(u >> 56)); } public void align(int m) { while (pos % m != 0) writeByte(0); } private void grow() { byte[] nbuf = new byte[buf.Length * 2]; Array.Copy(buf, nbuf, buf.Length); buf = nbuf; } public void write(byte[] ar) { for (int i = 0; i < ar.Length; i++) writeByte(ar[i]); } } } ================================================ FILE: DS_Map/LibNDSFormats/convertir.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Programador: pleoNeX * Programa utilizado: Microsoft Visual C# 2010 Express * Fecha: 18/02/2011 * */ using MKDS_Course_Editor; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Windows.Media.Imaging; namespace Tinke { public static class Convertir { #region Paleta /// /// A partir de un array de bytes devuelve un array de colores. /// /// Bytes para convertir /// Colores de la paleta. public static Color[] BGR555ToColorArray(this byte[] bytes) { Color[] paleta = new Color[bytes.Length / 2]; for (int i = 0; i < paleta.Length; i++) { paleta[i] = BGR555ToColor(bytes[i * 2], bytes[i * 2 + 1]); } return paleta; } public static byte[] ColorArrayToBGR555(this Color[] palette) { byte[] ret = new byte[palette.Length * 2]; for (int i = 0; i < palette.Length; i++) { (byte b1, byte b2) = palette[i].ToBGR555(); (ret[(i * 2) + 0], ret[(i * 2) + 1]) = (b1, b2); } return ret; } public static (byte b1, byte b2) ToBGR555(this Color c) { byte[] result = BitConverter.GetBytes((short)nclr_e.encodeColor(c.ToArgb(), BGR555_)); return (result[0], result[1]); } /// /// Convierte dos bytes en un color. /// /// Primer byte /// Segundo byte /// Color convertido public static Color BGR555ToColor(byte byte1, byte byte2) { /*int r, b; double g; r = (byte1 % 0x20) * 0x8; g = (byte1 / 0x20 + ((byte2 % 0x4) * 7.96875)) * 0x8; b = byte2 / 0x4 * 0x8; try { return System.Drawing.Color.FromArgb(r, (int)g, b); } catch (Exception) { return Color.Black; }*/ return Color.FromArgb(decodeColor(BitConverter.ToInt16(new byte[] { byte1, byte2 }, 0), BGR555_)); } public static byte[][] BytesToTiles_NoChanged(byte[] bytes, int tilesX, int tilesY) { List tiles = new List(); List temp = new List(); for (int ht = 0; ht < tilesY; ht++) { for (int wt = 0; wt < tilesX; wt++) { // Get the tile data for (int h = 0; h < 8; h++) { for (int w = 0; w < 8; w++) { temp.Add(bytes[wt * 8 + ht * tilesX * 64 + (w + h * 8 * tilesX)]); } } // Set the tile data tiles.Add(temp.ToArray()); temp.Clear(); } } return tiles.ToArray(); } public static nclr_e.CColorFormat BGR555_ = new nclr_e.CColorFormat("BGR555", 10, 16, new int[] { 3, 2, 1, 5, 5, 5 }); public static int[][] shiftList = new int[][] { new int[] { 0, 0 }, new int[] { 1, 255 }, new int[] { 3, 85 }, new int[] { 7, 36 }, new int[] { 15, 17 }, new int[] { 31, 8 }, new int[] { 63, 4 }, new int[] { 127, 2 }, new int[] { 255, 1 } }; public static int decodeColor(int value, nclr_e.CColorFormat format) { int[] res = format.getResolution(); int rgb = Color.FromArgb(255, 0, 0, 0).ToArgb(); int shift = 0; int length = res.Length / 2; for (int i = 0; i < length; i++) { int mode = res[length - i - 1]; int nshift = res[length * 2 - i - 1]; int mult = shiftList[nshift][1]; int and = shiftList[nshift][0]; int n = (value >> shift & and) * mult; switch (mode) { case 0: // '\0' rgb |= n << 24; break; case 1: // '\001' rgb |= n << 16; break; case 2: // '\002' rgb |= n << 8; break; case 3: // '\003' rgb |= n; break; case 4: // '\004' rgb = n << 16 | n << 8 | n; break; } shift += nshift; } return rgb; } #endregion #region Tiles /// /// Convierte una array de Tiles en bytes /// /// Tiles para convertir /// Array de bytes public static byte[] TilesToBytes(byte[][] tiles) { List resul = new List(); for (int i = 0; i < tiles.Length; i++) for (int j = 0; j < 64; j++) resul.Add(tiles[i][j]); return resul.ToArray(); } /// /// Convierte una array de bytes en otra de tiles /// /// Bytes para convertir /// Array de tiles public static byte[][] BytesToTiles(byte[] bytes) { List resul = new List(); List temp = new List(); for (int i = 0; i < bytes.Length / 64; i++) { for (int j = 0; j < 64; j++) temp.Add(bytes[j + i * 64]); resul.Add(temp.ToArray()); temp.Clear(); } return resul.ToArray(); } #endregion /// /// Convierte una array de bytes en formato 4-bit a otro en formato 8-bit /// /// Datos de entrada en formato 4-bit (valor máximo 15 (0xF)) /// Devuelve una array de bytes en 8-bit public static Byte[] Bit4ToBit8(byte[] bits4) { List bits8 = new List(); for (int i = 0; i < bits4.Length; i += 2) { string nByte = String.Format("{0:X}", bits4[i]); nByte += String.Format("{0:X}", bits4[i + 1]); bits8.Add((byte)Convert.ToInt32(nByte, 16)); } return bits8.ToArray(); } /// /// Convierte una array de bytes en formato 8-bit a otro en formato 4-bit /// /// Datos de entrada en formato 8-bit /// Devuelve una array de bytes en 4-bit public static Byte[] Bit8ToBit4(byte[] bits8) { List bits4 = new List(); for (int i = 0; i < bits8.Length; i++) { string nByte = String.Format("{0:X}", bits8[i]); if (nByte.Length == 1) nByte = '0' + nByte; bits4.Add((byte)Convert.ToInt32(nByte[0].ToString(), 16)); bits4.Add((byte)Convert.ToInt32(nByte[1].ToString(), 16)); } return bits4.ToArray(); } /// /// Modifica algunas propiedades de un archivo gif /// /// Ruta donde se encuentra el archivo a modificar /// 1/100 segundos entre frames /// Número de repeticiones. 0 para infinito, -1 para ninguna public static void ModificarGif(string gif, int delay, int loops) { BinaryReader br = new BinaryReader(File.OpenRead(gif)); MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); // Cabecera por defecto bw.Write(br.ReadBytes(0xD)); // Añadimos campo de animación if (loops >= 0) { List bAni = new List(); byte[] rawData = new Byte[] { 0x21, 0xFF, 0x0B, 0x4E, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2E, 0x30, 0x03, 0x01 }; bAni.AddRange(rawData); bAni.Add(Convert.ToByte(loops & 0xff)); bAni.Add(Convert.ToByte((loops >> 8) & 0xff)); bAni.Add(0x00); // Terminator bw.Write(bAni.ToArray()); } // Buscamos cada campo de cada frame y le cambiamos el delay byte first, second; first = br.ReadByte(); bw.Write(first); while (br.BaseStream.Position + 1 != br.BaseStream.Length) { if (first == 0x21) { second = br.ReadByte(); bw.Write(second); if (second == 0xF9) { bw.Write(br.ReadBytes(2)); bw.Write(Convert.ToByte(delay & 0xff)); bw.Write(Convert.ToByte((delay >> 8) & 0xff)); br.ReadBytes(2); // Cambiamos esos dos bytes que son el valor del delay } else { first = second; continue; } } first = br.ReadByte(); bw.Write(first); } br.Close(); br.Dispose(); File.Delete(gif); FileStream fs = new FileStream(gif, FileMode.Create); fs.Write(ms.ToArray(), 0, (int)ms.Length); fs.Flush(); fs.Close(); fs.Dispose(); ms.Close(); ms.Dispose(); bw.Close(); bw.Dispose(); } /// /// Crea un archivos animado gif apartir de varios archivos bitmap /// /// Ruta de salida del archivo /// Cada uno de los frames /// 1/100 seg entre frame /// Número de repeticiones. 0 para infinito, -1 para ninguna public static void CrearGif(string fout, Image[] frames, int delay, int loops) { // ¡¡No funciona con mono!! GifBitmapEncoder encoder = new GifBitmapEncoder(); for (int i = 0; i < frames.Length; i++) { MemoryStream ms = new MemoryStream(); frames[i].Save(ms, System.Drawing.Imaging.ImageFormat.Png); BitmapFrame bf = BitmapFrame.Create(ms); encoder.Frames.Add(bf); } FileStream fs = new FileStream(fout, FileMode.Create); encoder.Save(fs); fs.Close(); fs.Dispose(); ModificarGif(fout, delay, loops); } } } ================================================ FILE: DS_Map/LibNDSFormats/nclr_e.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace MKDS_Course_Editor { public partial class nclr_e : Form { int r = 255; int g = 255; int b = 255; List colors = new List(); bool bpp8_ = false; uint unknown1; public nclr_e(Color[] c, bool bpp8, uint unknown) { colors.AddRange(c); bpp8_ = bpp8; unknown1 = unknown; } public nclr_e() { } public int decodeColor(int value, CColorFormat format) { int[] res = format.getResolution(); int rgb = Convert.ToInt32(0xff000000); int shift = 0; int length = res.Length / 2; for (int i = 0; i < length; i++) { int mode = res[length - i - 1]; int nshift = res[length * 2 - i - 1]; int mult = shiftList[nshift][1]; int and = shiftList[nshift][0]; int n = (value >> shift & and) * mult; switch (mode) { case 0: // '\0' rgb |= n << 24; break; case 1: // '\001' rgb |= n << 16; break; case 2: // '\002' rgb |= n << 8; break; case 3: // '\003' rgb |= n; break; case 4: // '\004' rgb = n << 16 | n << 8 | n; break; } shift += nshift; } return rgb; } public CColorFormat BGR555 = new CColorFormat("BGR555", 10, 16, new int[] { 3, 2, 1, 5, 5, 5 }); public static int encodeColor(int value, CColorFormat format) { int[] res = format.getResolution(); int rgb = 0; int shift = 0; int length = res.Length / 2; for (int i = 0; i < length; i++) { int mode = res[length - i - 1]; int nshift = res[length * 2 - i - 1]; int mult = shiftList[nshift][1]; int and = shiftList[nshift][0]; int n = 0; switch (mode) { case 0: // '\0' n = value >> 24 & 0xff; break; case 1: // '\001' n = value >> 16 & 0xff; break; case 2: // '\002' n = value >> 8 & 0xff; break; case 3: // '\003' n = value & 0xff; break; case 4: // '\004' n = value & 0xff; break; } rgb |= (n / mult & and) << shift; shift += nshift; } return rgb; } public static int[][] shiftList = new int[][] { new int[] { 0, 0 }, new int[] { 1, 255 }, new int[] { 3, 85 }, new int[] { 7, 36 }, new int[] { 15, 17 }, new int[] { 31, 8 }, new int[] { 63, 4 }, new int[] { 127, 2 }, new int[] { 255, 1 } }; public class CColorFormat { public CColorFormat(String name, int id, int depth, int[] res) { this.name = name; this.id = id; this.depth = depth; this.res = res; } public override string ToString() { return GetName(); } public string GetName() { return name; } public int getId() { return id; } public int getDepth() { return depth; } public int[] getResolution() { return res; } public int getWidth(int field) { for (int i = 0; i < res.Length / 2; i++) if (res[i] == field) return res[i + res.Length / 2]; return 0; } private String name; private int id; private int depth; private int[] res; } } } ================================================ FILE: DS_Map/Main Window.Designer.cs ================================================ namespace DSPRE { partial class MainProgram { /// /// Variabile di proGettazione necessaria. /// private System.ComponentModel.IContainer components = null; /// /// Pulire le risorse in uso. /// /// ha valore true se le risorse gestite devono essere eliminate, false in caso contrario. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Codice generato da Progettazione Windows Form /// /// Metodo necessario per il supporto della finestra di proGettazione. Non modificare /// il contenuto del metodo con l'editor di codice. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainProgram)); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle25 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle26 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle27 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle28 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle29 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle30 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle31 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle32 = new System.Windows.Forms.DataGridViewCellStyle(); this.mainTabControl = new System.Windows.Forms.TabControl(); this.headerEditorTabPage = new System.Windows.Forms.TabPage(); this.removeLastHeaderBTN = new System.Windows.Forms.Button(); this.addHeaderBTN = new System.Windows.Forms.Button(); this.worldmapCoordsGroupBox = new System.Windows.Forms.GroupBox(); this.worldmapCoordsPasteButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.worldmapCoordsCopyButton = new System.Windows.Forms.Button(); this.worldmapYCoordUpDown = new System.Windows.Forms.NumericUpDown(); this.label36 = new System.Windows.Forms.Label(); this.worldmapXCoordUpDown = new System.Windows.Forms.NumericUpDown(); this.groupBox18 = new System.Windows.Forms.GroupBox(); this.openWildEditorWithIdButton = new System.Windows.Forms.Button(); this.pasteWildEncountersButton = new System.Windows.Forms.Button(); this.wildPokeUpDown = new System.Windows.Forms.NumericUpDown(); this.copyWildEncountersButton = new System.Windows.Forms.Button(); this.importHeaderFromFileButton = new System.Windows.Forms.Button(); this.exportHeaderToFileButton = new System.Windows.Forms.Button(); this.pasteHeaderButton = new System.Windows.Forms.Button(); this.groupBox10 = new System.Windows.Forms.GroupBox(); this.pasteTextsButton = new System.Windows.Forms.Button(); this.openMessageFileButton = new System.Windows.Forms.Button(); this.copyTextsButton = new System.Windows.Forms.Button(); this.pasteEventsButton = new System.Windows.Forms.Button(); this.textFileUpDown = new System.Windows.Forms.NumericUpDown(); this.copyEventsButton = new System.Windows.Forms.Button(); this.textLabel = new System.Windows.Forms.Label(); this.openEventsButton = new System.Windows.Forms.Button(); this.eventLabel = new System.Windows.Forms.Label(); this.eventFileUpDown = new System.Windows.Forms.NumericUpDown(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.pasteAreaDataButton = new System.Windows.Forms.Button(); this.copyAreaDataButton = new System.Windows.Forms.Button(); this.pasteMatrixButton = new System.Windows.Forms.Button(); this.openAreaDataButton = new System.Windows.Forms.Button(); this.copyMatrixButton = new System.Windows.Forms.Button(); this.openMatrixButton = new System.Windows.Forms.Button(); this.areaDataLabel = new System.Windows.Forms.Label(); this.areaDataUpDown = new System.Windows.Forms.NumericUpDown(); this.matrixLabel = new System.Windows.Forms.Label(); this.matrixUpDown = new System.Windows.Forms.NumericUpDown(); this.groupBox9 = new System.Windows.Forms.GroupBox(); this.resetButton = new System.Windows.Forms.Button(); this.searchHeaderButton = new System.Windows.Forms.Button(); this.searchLocationTextBox = new System.Windows.Forms.TextBox(); this.copyHeaderButton = new System.Windows.Forms.Button(); this.areaIconPictureBox = new System.Windows.Forms.PictureBox(); this.areaImageLabel = new System.Windows.Forms.Label(); this.nameGroupBox = new System.Windows.Forms.GroupBox(); this.internalNameLenLabel = new System.Windows.Forms.Label(); this.pasteLocationNameButton = new System.Windows.Forms.Button(); this.copyLocationNameButton = new System.Windows.Forms.Button(); this.pasteInternalNameButton = new System.Windows.Forms.Button(); this.copyInternalNameButton = new System.Windows.Forms.Button(); this.pasteAreaIconButton = new System.Windows.Forms.Button(); this.copyAreaIconButton = new System.Windows.Forms.Button(); this.pasteAreaSettingsButton = new System.Windows.Forms.Button(); this.areaSettingsLabel = new System.Windows.Forms.Label(); this.copyAreaSettingsButton = new System.Windows.Forms.Button(); this.label3 = new System.Windows.Forms.Label(); this.label14 = new System.Windows.Forms.Label(); this.internalNameBox = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.areaIconComboBox = new System.Windows.Forms.ComboBox(); this.areaSettingsComboBox = new System.Windows.Forms.ComboBox(); this.locationNameComboBox = new System.Windows.Forms.ComboBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.cameraUpDown = new System.Windows.Forms.NumericUpDown(); this.weatherUpDown = new System.Windows.Forms.NumericUpDown(); this.musicNightUpDown = new System.Windows.Forms.NumericUpDown(); this.musicDayUpDown = new System.Windows.Forms.NumericUpDown(); this.pasteCameraAngleButton = new System.Windows.Forms.Button(); this.copyCameraAngleButton = new System.Windows.Forms.Button(); this.pasteWeatherButton = new System.Windows.Forms.Button(); this.copyWeatherButton = new System.Windows.Forms.Button(); this.pasteMusicNightButton = new System.Windows.Forms.Button(); this.copyMusicNightButton = new System.Windows.Forms.Button(); this.pasteMusicDayButton = new System.Windows.Forms.Button(); this.copyMusicDayButton = new System.Windows.Forms.Button(); this.weatherComboBox = new System.Windows.Forms.ComboBox(); this.musicNightComboBox = new System.Windows.Forms.ComboBox(); this.weatherLabel = new System.Windows.Forms.Label(); this.cameraLabel = new System.Windows.Forms.Label(); this.musicNightLabel = new System.Windows.Forms.Label(); this.cameraComboBox = new System.Windows.Forms.ComboBox(); this.musicDayLabel = new System.Windows.Forms.Label(); this.musicDayComboBox = new System.Windows.Forms.ComboBox(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.pasteLevelScriptsButton = new System.Windows.Forms.Button(); this.copyLevelScriptsButton = new System.Windows.Forms.Button(); this.pasteScriptsButton = new System.Windows.Forms.Button(); this.copyScriptsButton = new System.Windows.Forms.Button(); this.levelScriptUpDown = new System.Windows.Forms.NumericUpDown(); this.openLevelScriptButton = new System.Windows.Forms.Button(); this.levelScriptLabel = new System.Windows.Forms.Label(); this.openScriptButton = new System.Windows.Forms.Button(); this.scriptLabel = new System.Windows.Forms.Label(); this.scriptFileUpDown = new System.Windows.Forms.NumericUpDown(); this.headerListBox = new System.Windows.Forms.ListBox(); this.saveHeaderButton = new System.Windows.Forms.Button(); this.flagsGroupBox = new System.Windows.Forms.GroupBox(); this.followModeComboBox = new System.Windows.Forms.ComboBox(); this.johtoRadioButton = new System.Windows.Forms.RadioButton(); this.kantoRadioButton = new System.Windows.Forms.RadioButton(); this.followModeLabel = new System.Windows.Forms.Label(); this.pasteMapSettingsButton = new System.Windows.Forms.Button(); this.battleBackgroundLabel = new System.Windows.Forms.Label(); this.copyFlagsButton = new System.Windows.Forms.Button(); this.battleBackgroundUpDown = new System.Windows.Forms.NumericUpDown(); this.flag3CheckBox = new System.Windows.Forms.CheckBox(); this.flag2CheckBox = new System.Windows.Forms.CheckBox(); this.flag1CheckBox = new System.Windows.Forms.CheckBox(); this.flag0CheckBox = new System.Windows.Forms.CheckBox(); this.flag6CheckBox = new System.Windows.Forms.CheckBox(); this.flag5CheckBox = new System.Windows.Forms.CheckBox(); this.flag4CheckBox = new System.Windows.Forms.CheckBox(); this.cameraPicLabel = new System.Windows.Forms.Label(); this.cameraPictureBox = new System.Windows.Forms.PictureBox(); this.weatherPicLabel = new System.Windows.Forms.Label(); this.weatherPictureBox = new System.Windows.Forms.PictureBox(); this.matrixEditorTabPage = new System.Windows.Forms.TabPage(); this.setSpawnPointButton = new System.Windows.Forms.Button(); this.saveMatrixButton = new System.Windows.Forms.Button(); this.locateCurrentMatrixFile = new System.Windows.Forms.Button(); this.resetColorTableButton = new System.Windows.Forms.Button(); this.importColorTableButton = new System.Windows.Forms.Button(); this.importMatrixButton = new System.Windows.Forms.Button(); this.exportMatrixButton = new System.Windows.Forms.Button(); this.removeMatrixButton = new System.Windows.Forms.Button(); this.addMatrixButton = new System.Windows.Forms.Button(); this.removeHeightsButton = new System.Windows.Forms.Button(); this.removeHeadersButton = new System.Windows.Forms.Button(); this.addHeightsButton = new System.Windows.Forms.Button(); this.addHeadersButton = new System.Windows.Forms.Button(); this.labelMatrices = new System.Windows.Forms.Label(); this.matrixNameLabel = new System.Windows.Forms.Label(); this.matrixTabControl = new System.Windows.Forms.TabControl(); this.headersTabPage = new System.Windows.Forms.TabPage(); this.headersGridView = new System.Windows.Forms.DataGridView(); this.heightsTabPage = new System.Windows.Forms.TabPage(); this.heightsGridView = new System.Windows.Forms.DataGridView(); this.mapFilesTabPage = new System.Windows.Forms.TabPage(); this.mapFilesGridView = new System.Windows.Forms.DataGridView(); this.matrixNameTextBox = new System.Windows.Forms.TextBox(); this.heightUpDown = new System.Windows.Forms.NumericUpDown(); this.widthUpDown = new System.Windows.Forms.NumericUpDown(); this.widthLabel = new System.Windows.Forms.Label(); this.selectMatrixComboBox = new System.Windows.Forms.ComboBox(); this.mapEditorTabPage = new System.Windows.Forms.TabPage(); this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); this.addMapFileButton = new System.Windows.Forms.Button(); this.locateCurrentMapBin = new System.Windows.Forms.Button(); this.removeMapFileButton = new System.Windows.Forms.Button(); this.replaceMapBinButton = new System.Windows.Forms.Button(); this.exportCurrentMapBinButton = new System.Windows.Forms.Button(); this.saveMapButton = new System.Windows.Forms.Button(); this.mapScreenshotButton = new System.Windows.Forms.Button(); this.mapRenderPanel = new System.Windows.Forms.Panel(); this.mapOpenGlControl = new Tao.Platform.Windows.SimpleOpenGlControl(); this.movPictureBox = new System.Windows.Forms.PictureBox(); this.label26 = new System.Windows.Forms.Label(); this.buildTextureComboBox = new System.Windows.Forms.ComboBox(); this.mapFileLabel = new System.Windows.Forms.Label(); this.mapTextureComboBox = new System.Windows.Forms.ComboBox(); this.mapTextureLabel = new System.Windows.Forms.Label(); this.selectMapComboBox = new System.Windows.Forms.ComboBox(); this.mapPartsTabControl = new System.Windows.Forms.TabControl(); this.buildingsTabPage = new System.Windows.Forms.TabPage(); this.groupBox33 = new System.Windows.Forms.GroupBox(); this.yRotDegBldUpDown = new System.Windows.Forms.NumericUpDown(); this.xRotDegBldUpDown = new System.Windows.Forms.NumericUpDown(); this.zRotDegBldUpDown = new System.Windows.Forms.NumericUpDown(); this.yRotBuildUpDown = new System.Windows.Forms.NumericUpDown(); this.xRotBuildUpDown = new System.Windows.Forms.NumericUpDown(); this.zRotBuildUpDown = new System.Windows.Forms.NumericUpDown(); this.yLabel = new System.Windows.Forms.Label(); this.lockXZgroupbox = new System.Windows.Forms.GroupBox(); this.bldPlaceLockXcheckbox = new System.Windows.Forms.CheckBox(); this.bldPlaceLockZcheckbox = new System.Windows.Forms.CheckBox(); this.zLabel = new System.Windows.Forms.Label(); this.xLabel = new System.Windows.Forms.Label(); this.bldRoundGroupbox = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.bldRoundDecmil = new System.Windows.Forms.RadioButton(); this.bldRoundCentMil = new System.Windows.Forms.RadioButton(); this.bldRoundWhole = new System.Windows.Forms.RadioButton(); this.bldRoundDec = new System.Windows.Forms.RadioButton(); this.bldRoundCent = new System.Windows.Forms.RadioButton(); this.bldRoundMil = new System.Windows.Forms.RadioButton(); this.bldPlaceWithMouseCheckbox = new System.Windows.Forms.CheckBox(); this.importBuildingsButton = new System.Windows.Forms.Button(); this.groupBox20 = new System.Windows.Forms.GroupBox(); this.interiorbldRadioButton = new System.Windows.Forms.RadioButton(); this.exteriorbldRadioButton = new System.Windows.Forms.RadioButton(); this.buildIndexComboBox = new System.Windows.Forms.ComboBox(); this.groupBox19 = new System.Windows.Forms.GroupBox(); this.buildingHeightUpDown = new System.Windows.Forms.NumericUpDown(); this.buildingWidthUpDown = new System.Windows.Forms.NumericUpDown(); this.buildingLengthUpDown = new System.Windows.Forms.NumericUpDown(); this.duplicateBuildingButton = new System.Windows.Forms.Button(); this.exportBuildingsButton = new System.Windows.Forms.Button(); this.removeBuildingButton = new System.Windows.Forms.Button(); this.addBuildingButton = new System.Windows.Forms.Button(); this.buildPositionGroupBox = new System.Windows.Forms.GroupBox(); this.yBuildUpDown = new System.Windows.Forms.NumericUpDown(); this.xBuildUpDown = new System.Windows.Forms.NumericUpDown(); this.zBuildUpDown = new System.Windows.Forms.NumericUpDown(); this.buildingsListBox = new System.Windows.Forms.ListBox(); this.permissionsTabPage = new System.Windows.Forms.TabPage(); this.scanUnusedCollisionTypesButton = new System.Windows.Forms.Button(); this.clearCurrentButton = new System.Windows.Forms.Button(); this.typeLabel = new System.Windows.Forms.Label(); this.collisionLabel = new System.Windows.Forms.Label(); this.typeGroupBox = new System.Windows.Forms.GroupBox(); this.knownTypesRadioButton = new System.Windows.Forms.RadioButton(); this.valueTypeRadioButton = new System.Windows.Forms.RadioButton(); this.typePainterUpDown = new System.Windows.Forms.NumericUpDown(); this.collisionTypePainterComboBox = new System.Windows.Forms.ComboBox(); this.typePainterPictureBox = new System.Windows.Forms.PictureBox(); this.collisionGroupBox = new System.Windows.Forms.GroupBox(); this.collisionPainterComboBox = new System.Windows.Forms.ComboBox(); this.collisionPainterPictureBox = new System.Windows.Forms.PictureBox(); this.selectCollisionPanel = new System.Windows.Forms.Panel(); this.collisionPictureBox = new System.Windows.Forms.PictureBox(); this.selectTypePanel = new System.Windows.Forms.Panel(); this.typePictureBox = new System.Windows.Forms.PictureBox(); this.ImportMovButton = new System.Windows.Forms.Button(); this.exportMovButton = new System.Windows.Forms.Button(); this.modelTabPage = new System.Windows.Forms.TabPage(); this.glbExportButton = new System.Windows.Forms.Button(); this.daeExportButton = new System.Windows.Forms.Button(); this.embedTexturesInMapModelCheckBox = new System.Windows.Forms.CheckBox(); this.modelSizeLBL = new System.Windows.Forms.Label(); this.nsbmdSizeLabel = new System.Windows.Forms.Label(); this.unsupported3DModelEditLBL = new System.Windows.Forms.Label(); this.importMapButton = new System.Windows.Forms.Button(); this.exportMapButton = new System.Windows.Forms.Button(); this.terrainTabPage = new System.Windows.Forms.TabPage(); this.terrainSizeLBL = new System.Windows.Forms.Label(); this.terrainDataLBL = new System.Windows.Forms.Label(); this.unsupportedBDHCEditLBL = new System.Windows.Forms.Label(); this.bdhcImportButton = new System.Windows.Forms.Button(); this.bdhcExportButton = new System.Windows.Forms.Button(); this.bgsTabPage = new System.Windows.Forms.TabPage(); this.blankBGSButton = new System.Windows.Forms.Button(); this.BGSSizeLBL = new System.Windows.Forms.Label(); this.bgsDataLBL = new System.Windows.Forms.Label(); this.unsupportedBGSEditLBL = new System.Windows.Forms.Label(); this.soundPlatesImportButton = new System.Windows.Forms.Button(); this.soundPlatesExportButton = new System.Windows.Forms.Button(); this.radio3D = new System.Windows.Forms.RadioButton(); this.radio2D = new System.Windows.Forms.RadioButton(); this.wireframeCheckBox = new System.Windows.Forms.CheckBox(); this.nsbtxEditorTabPage = new System.Windows.Forms.TabPage(); this.groupBox7 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel37 = new System.Windows.Forms.TableLayoutPanel(); this.groupBox35 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel38 = new System.Windows.Forms.TableLayoutPanel(); this.scalingLabel = new System.Windows.Forms.Label(); this.scalingTrackBar = new System.Windows.Forms.TrackBar(); this.repositionImageButton = new System.Windows.Forms.Button(); this.invertDragCheckbox = new System.Windows.Forms.CheckBox(); this.locateCurrentNsbtx = new System.Windows.Forms.Button(); this.removeNSBTXButton = new System.Windows.Forms.Button(); this.areaDataGroupBox = new System.Windows.Forms.GroupBox(); this.locateCurrentAreaData = new System.Windows.Forms.Button(); this.exportAreaDataButton = new System.Windows.Forms.Button(); this.areaTypeGroupbox = new System.Windows.Forms.GroupBox(); this.outdoorAreaRadioButton = new System.Windows.Forms.RadioButton(); this.indoorAreaRadioButton = new System.Windows.Forms.RadioButton(); this.importAreaDataButton = new System.Windows.Forms.Button(); this.removeAreaDataButton = new System.Windows.Forms.Button(); this.addAreaDataButton = new System.Windows.Forms.Button(); this.saveAreaDataButton = new System.Windows.Forms.Button(); this.label35 = new System.Windows.Forms.Label(); this.areaDataDynamicTexturesNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label34 = new System.Windows.Forms.Label(); this.areaDataLightTypeComboBox = new System.Windows.Forms.ComboBox(); this.label33 = new System.Windows.Forms.Label(); this.areaDataMapTilesetUpDown = new System.Windows.Forms.NumericUpDown(); this.label32 = new System.Windows.Forms.Label(); this.areaDataBuildingTilesetUpDown = new System.Windows.Forms.NumericUpDown(); this.selectAreaDataListBox = new System.Windows.Forms.ListBox(); this.addNSBTXButton = new System.Windows.Forms.Button(); this.exportNSBTXButton = new System.Windows.Forms.Button(); this.importNSBTXButton = new System.Windows.Forms.Button(); this.texturePictureBox = new DSPRE.OffsetPictureBox(); this.palettesLabel = new System.Windows.Forms.Label(); this.texturesLabel = new System.Windows.Forms.Label(); this.palettesListBox = new System.Windows.Forms.ListBox(); this.texturesListBox = new System.Windows.Forms.ListBox(); this.buildingsTilesetRadioButton = new System.Windows.Forms.RadioButton(); this.mapTilesetRadioButton = new System.Windows.Forms.RadioButton(); this.texturePacksListBox = new System.Windows.Forms.ListBox(); this.eventEditorTabPage = new System.Windows.Forms.TabPage(); this.locateCurrentEvFile = new System.Windows.Forms.Button(); this.groupBox21 = new System.Windows.Forms.GroupBox(); this.showTriggersCheckBox = new System.Windows.Forms.CheckBox(); this.showWarpsCheckBox = new System.Windows.Forms.CheckBox(); this.showOwsCheckBox = new System.Windows.Forms.CheckBox(); this.showSpawnablesCheckBox = new System.Windows.Forms.CheckBox(); this.eventAreaDataUpDown = new System.Windows.Forms.NumericUpDown(); this.eventMapTextureLabel = new System.Windows.Forms.Label(); this.RightClickLabel = new System.Windows.Forms.Label(); this.WheelClickLabel = new System.Windows.Forms.Label(); this.LeftClickLabel = new System.Windows.Forms.Label(); this.eventMatrixYUpDown = new System.Windows.Forms.NumericUpDown(); this.eventMatrixXUpDown = new System.Windows.Forms.NumericUpDown(); this.eventMatrixYLabel = new System.Windows.Forms.Label(); this.eventMatrixXLabel = new System.Windows.Forms.Label(); this.matrixNavigatorLabel = new System.Windows.Forms.Label(); this.eventMatrixPanel = new System.Windows.Forms.Panel(); this.eventMatrixPictureBox = new System.Windows.Forms.PictureBox(); this.selectEventComboBox = new System.Windows.Forms.ComboBox(); this.backgroundMapLabel = new System.Windows.Forms.Label(); this.eventMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.eventsTabControl = new System.Windows.Forms.TabControl(); this.signsTabPage = new System.Windows.Forms.TabPage(); this.spawnableTypeComboBox = new System.Windows.Forms.ComboBox(); this.label18 = new System.Windows.Forms.Label(); this.duplicateSpawnableButton = new System.Windows.Forms.Button(); this.groupBox5 = new System.Windows.Forms.GroupBox(); this.goToSignButton = new System.Windows.Forms.Button(); this.signMatrixYLabel = new System.Windows.Forms.Label(); this.spawnableXMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.signMatrixXLabel = new System.Windows.Forms.Label(); this.spawnableYMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.signZLabel = new System.Windows.Forms.Label(); this.spawnablexMapUpDown = new System.Windows.Forms.NumericUpDown(); this.spawnableUpDown = new System.Windows.Forms.NumericUpDown(); this.signMapXLabel = new System.Windows.Forms.Label(); this.spawnableYMapUpDown = new System.Windows.Forms.NumericUpDown(); this.signMapYLabel = new System.Windows.Forms.Label(); this.removeSpawnableButton = new System.Windows.Forms.Button(); this.addSpawnableButton = new System.Windows.Forms.Button(); this.spawnableDirComboBox = new System.Windows.Forms.ComboBox(); this.signOrientationLabel = new System.Windows.Forms.Label(); this.signScriptNumberLabel = new System.Windows.Forms.Label(); this.spawnableScriptUpDown = new System.Windows.Forms.NumericUpDown(); this.spawnablesListBox = new System.Windows.Forms.ListBox(); this.overworldsTabPage = new System.Windows.Forms.TabPage(); this.sortOWsByIDDescButton = new System.Windows.Forms.Button(); this.sortOWsByIDAscButton = new System.Windows.Forms.Button(); this.groupBox22 = new System.Windows.Forms.GroupBox(); this.normalRadioButton = new System.Windows.Forms.RadioButton(); this.isTrainerRadioButton = new System.Windows.Forms.RadioButton(); this.isItemRadioButton = new System.Windows.Forms.RadioButton(); this.spriteIDlabel = new System.Windows.Forms.Label(); this.groupBox17 = new System.Windows.Forms.GroupBox(); this.button14 = new System.Windows.Forms.Button(); this.owYMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.label12 = new System.Windows.Forms.Label(); this.owXMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.label11 = new System.Windows.Forms.Label(); this.owMovementGroupBox = new System.Windows.Forms.GroupBox(); this.groupBox23 = new System.Windows.Forms.GroupBox(); this.label39 = new System.Windows.Forms.Label(); this.label20 = new System.Windows.Forms.Label(); this.owXRangeUpDown = new System.Windows.Forms.NumericUpDown(); this.owYRangeUpDown = new System.Windows.Forms.NumericUpDown(); this.label4 = new System.Windows.Forms.Label(); this.owOrientationComboBox = new System.Windows.Forms.ComboBox(); this.owMovementComboBox = new System.Windows.Forms.ComboBox(); this.positionGroupBox = new System.Windows.Forms.GroupBox(); this.label13 = new System.Windows.Forms.Label(); this.owXMapUpDown = new System.Windows.Forms.NumericUpDown(); this.owZPositionUpDown = new System.Windows.Forms.NumericUpDown(); this.owXPositionLabel = new System.Windows.Forms.Label(); this.owYMapUpDown = new System.Windows.Forms.NumericUpDown(); this.label10 = new System.Windows.Forms.Label(); this.owSpecialGroupBox = new System.Windows.Forms.GroupBox(); this.itemsSelectorHelpBtn = new System.Windows.Forms.Button(); this.owPartnerTrainerCheckBox = new System.Windows.Forms.CheckBox(); this.owItemComboBox = new System.Windows.Forms.ComboBox(); this.owItemLabel = new System.Windows.Forms.Label(); this.owTrainerComboBox = new System.Windows.Forms.ComboBox(); this.owSightRangeLabel = new System.Windows.Forms.Label(); this.owSightRangeUpDown = new System.Windows.Forms.NumericUpDown(); this.owTrainerLabel = new System.Windows.Forms.Label(); this.owScriptLabel = new System.Windows.Forms.Label(); this.owScriptNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.owFlagLabel = new System.Windows.Forms.Label(); this.owFlagNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.owSpriteLabel = new System.Windows.Forms.Label(); this.owSpriteComboBox = new System.Windows.Forms.ComboBox(); this.owIDLabel = new System.Windows.Forms.Label(); this.owIDNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.duplicateOverworldsButton = new System.Windows.Forms.Button(); this.owSpritePictureBox = new System.Windows.Forms.PictureBox(); this.removeOverworldButton = new System.Windows.Forms.Button(); this.addOverworldButton = new System.Windows.Forms.Button(); this.overworldsListBox = new System.Windows.Forms.ListBox(); this.warpsTabPage = new System.Windows.Forms.TabPage(); this.duplicateWarpsButton = new System.Windows.Forms.Button(); this.groupBox11 = new System.Windows.Forms.GroupBox(); this.eventEditorHeaderLocationNameLabel = new System.Windows.Forms.Label(); this.eventEditorWarpHeaderListBox = new System.Windows.Forms.ListBox(); this.destinationWarpGoToButton = new System.Windows.Forms.Button(); this.warpAnchorUpDown = new System.Windows.Forms.NumericUpDown(); this.warpAnchorLabel = new System.Windows.Forms.Label(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox14 = new System.Windows.Forms.GroupBox(); this.goToWarpButton = new System.Windows.Forms.Button(); this.label9 = new System.Windows.Forms.Label(); this.warpXMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.label15 = new System.Windows.Forms.Label(); this.warpYMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.groupBox12 = new System.Windows.Forms.GroupBox(); this.warpXMapUpDown = new System.Windows.Forms.NumericUpDown(); this.label24 = new System.Windows.Forms.Label(); this.label25 = new System.Windows.Forms.Label(); this.warpYMapUpDown = new System.Windows.Forms.NumericUpDown(); this.warpZUpDown = new System.Windows.Forms.NumericUpDown(); this.label16 = new System.Windows.Forms.Label(); this.removeWarpButton = new System.Windows.Forms.Button(); this.addWarpButton = new System.Windows.Forms.Button(); this.warpsListBox = new System.Windows.Forms.ListBox(); this.triggersTabPage = new System.Windows.Forms.TabPage(); this.triggerLogicGroupBox = new System.Windows.Forms.GroupBox(); this.expectedVarValueTriggerUpDown = new System.Windows.Forms.NumericUpDown(); this.label19 = new System.Windows.Forms.Label(); this.triggerVariableWatchedUpDown = new System.Windows.Forms.NumericUpDown(); this.label28 = new System.Windows.Forms.Label(); this.triggerScriptUpDown = new System.Windows.Forms.NumericUpDown(); this.label27 = new System.Windows.Forms.Label(); this.groupBox16 = new System.Windows.Forms.GroupBox(); this.triggerLengthLabel = new System.Windows.Forms.Label(); this.triggerLengthUpDown = new System.Windows.Forms.NumericUpDown(); this.triggerWidthLabel = new System.Windows.Forms.Label(); this.triggerWidthUpDown = new System.Windows.Forms.NumericUpDown(); this.groupBox15 = new System.Windows.Forms.GroupBox(); this.triggerZLabel = new System.Windows.Forms.Label(); this.triggerXMapUpDown = new System.Windows.Forms.NumericUpDown(); this.triggerZUpDown = new System.Windows.Forms.NumericUpDown(); this.triggerMapXLabel = new System.Windows.Forms.Label(); this.triggerYMapUpDown = new System.Windows.Forms.NumericUpDown(); this.triggerYMapLabel = new System.Windows.Forms.Label(); this.groupBox6 = new System.Windows.Forms.GroupBox(); this.goToTriggerButton = new System.Windows.Forms.Button(); this.triggerYMatrixLabel = new System.Windows.Forms.Label(); this.triggerXMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.triggerXMatrixLabel = new System.Windows.Forms.Label(); this.triggerYMatrixUpDown = new System.Windows.Forms.NumericUpDown(); this.duplicateTriggersButton = new System.Windows.Forms.Button(); this.removeTriggerButton = new System.Windows.Forms.Button(); this.addTriggerButton = new System.Windows.Forms.Button(); this.triggersListBox = new System.Windows.Forms.ListBox(); this.eventPanel = new System.Windows.Forms.Panel(); this.eventPictureBox = new System.Windows.Forms.PictureBox(); this.eventOpenGlControl = new Tao.Platform.Windows.SimpleOpenGlControl(); this.rightClickPicture = new System.Windows.Forms.PictureBox(); this.wheelClickPicture = new System.Windows.Forms.PictureBox(); this.LeftClickPicture = new System.Windows.Forms.PictureBox(); this.removeEventFileButton = new System.Windows.Forms.Button(); this.addEventFileButton = new System.Windows.Forms.Button(); this.eventShiftRightButton = new System.Windows.Forms.Button(); this.eventShiftLeftButton = new System.Windows.Forms.Button(); this.eventShiftUpButton = new System.Windows.Forms.Button(); this.eventShiftDownButton = new System.Windows.Forms.Button(); this.exportEventFileButton = new System.Windows.Forms.Button(); this.importEventFileButton = new System.Windows.Forms.Button(); this.saveEventsButton = new System.Windows.Forms.Button(); this.tabPageScriptEditor = new System.Windows.Forms.TabPage(); this.scriptEditor = new DSPRE.Editors.ScriptEditor(); this.tabPageLevelScriptEditor = new System.Windows.Forms.TabPage(); this.levelScriptEditor = new DSPRE.Editors.LevelScriptEditor(); this.textEditorTabPage = new System.Windows.Forms.TabPage(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.label6 = new System.Windows.Forms.Label(); this.selectedLineMoveUpButton = new System.Windows.Forms.Button(); this.selectTextFileComboBox = new System.Windows.Forms.ComboBox(); this.locateCurrentTextArchive = new System.Windows.Forms.Button(); this.saveTextArchiveButton = new System.Windows.Forms.Button(); this.importTextFileButton = new System.Windows.Forms.Button(); this.exportTextFileButton = new System.Windows.Forms.Button(); this.addTextArchiveButton = new System.Windows.Forms.Button(); this.removeMessageFileButton = new System.Windows.Forms.Button(); this.selectedLineMoveDownButton = new System.Windows.Forms.Button(); this.LineNumbersFormatgroupBox = new System.Windows.Forms.GroupBox(); this.decimalRadioButton = new System.Windows.Forms.RadioButton(); this.hexRadiobutton = new System.Windows.Forms.RadioButton(); this.groupBox13 = new System.Windows.Forms.GroupBox(); this.label67 = new System.Windows.Forms.Label(); this.searchAllArchivesCheckBox = new System.Windows.Forms.CheckBox(); this.caseSensitiveTextReplaceCheckbox = new System.Windows.Forms.CheckBox(); this.textSearchResultsListBox = new System.Windows.Forms.ListBox(); this.replaceTextLabel = new System.Windows.Forms.Label(); this.replaceMessageTextBox = new System.Windows.Forms.TextBox(); this.label8 = new System.Windows.Forms.Label(); this.textSearchProgressBar = new System.Windows.Forms.ProgressBar(); this.caseSensitiveTextSearchCheckbox = new System.Windows.Forms.CheckBox(); this.label7 = new System.Windows.Forms.Label(); this.searchMessageTextBox = new System.Windows.Forms.TextBox(); this.searchMessageButton = new System.Windows.Forms.Button(); this.replaceMessageButton = new System.Windows.Forms.Button(); this.textEditorDataGridView = new System.Windows.Forms.DataGridView(); this.messageColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.removeStringButton = new System.Windows.Forms.Button(); this.addStringButton = new System.Windows.Forms.Button(); this.cameraEditorTabPage = new System.Windows.Forms.TabPage(); this.exportCameraTableButton = new System.Windows.Forms.Button(); this.importCameraTableButton = new System.Windows.Forms.Button(); this.saveCameraTableButton = new System.Windows.Forms.Button(); this.cameraEditorDataGridView = new System.Windows.Forms.DataGridView(); this.DistanceGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.VertRotGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.HoriRotGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.zRotGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.OrthoGVCol = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.FovGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.NearClipGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.FarClipGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.XDispGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.YDispGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ZDispGVCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ExportBTN = new System.Windows.Forms.DataGridViewButtonColumn(); this.ImportBTN = new System.Windows.Forms.DataGridViewButtonColumn(); this.trainerEditorTabPage = new System.Windows.Forms.TabPage(); this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); this.exportTrainerButton = new System.Windows.Forms.Button(); this.importTrainerButton = new System.Windows.Forms.Button(); this.groupBox28 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); this.button3 = new System.Windows.Forms.Button(); this.button4 = new System.Windows.Forms.Button(); this.DVExplainButton = new System.Windows.Forms.Button(); this.label74 = new System.Windows.Forms.Label(); this.party6GroupBox = new System.Windows.Forms.GroupBox(); this.partyForm6ComboBox = new System.Windows.Forms.ComboBox(); this.partyAbility6ComboBox = new System.Windows.Forms.ComboBox(); this.partyGender6ComboBox = new System.Windows.Forms.ComboBox(); this.partyPokemonItemPictureBox6 = new System.Windows.Forms.PictureBox(); this.label60 = new System.Windows.Forms.Label(); this.label61 = new System.Windows.Forms.Label(); this.label62 = new System.Windows.Forms.Label(); this.poke6MovesGroupBox = new System.Windows.Forms.GroupBox(); this.partyMove6_1ComboBox = new DSPRE.InputComboBox(); this.partyMove6_2ComboBox = new DSPRE.InputComboBox(); this.partyMove6_3ComboBox = new DSPRE.InputComboBox(); this.partyMove6_4ComboBox = new DSPRE.InputComboBox(); this.partyIV6UpDown = new System.Windows.Forms.NumericUpDown(); this.partyLevel6UpDown = new System.Windows.Forms.NumericUpDown(); this.partyBall6UpDown = new System.Windows.Forms.NumericUpDown(); this.partyItem6ComboBox = new DSPRE.InputComboBox(); this.partyPokemon6PictureBox = new System.Windows.Forms.PictureBox(); this.partyPokemon6ComboBox = new DSPRE.InputComboBox(); this.party5GroupBox = new System.Windows.Forms.GroupBox(); this.partyForm5ComboBox = new System.Windows.Forms.ComboBox(); this.partyAbility5ComboBox = new System.Windows.Forms.ComboBox(); this.partyGender5ComboBox = new System.Windows.Forms.ComboBox(); this.partyPokemonItemPictureBox5 = new System.Windows.Forms.PictureBox(); this.label57 = new System.Windows.Forms.Label(); this.label58 = new System.Windows.Forms.Label(); this.label59 = new System.Windows.Forms.Label(); this.poke5MovesGroupBox = new System.Windows.Forms.GroupBox(); this.partyMove5_1ComboBox = new DSPRE.InputComboBox(); this.partyMove5_2ComboBox = new DSPRE.InputComboBox(); this.partyMove5_3ComboBox = new DSPRE.InputComboBox(); this.partyMove5_4ComboBox = new DSPRE.InputComboBox(); this.partyIV5UpDown = new System.Windows.Forms.NumericUpDown(); this.partyLevel5UpDown = new System.Windows.Forms.NumericUpDown(); this.partyBall5UpDown = new System.Windows.Forms.NumericUpDown(); this.partyItem5ComboBox = new DSPRE.InputComboBox(); this.partyPokemon5PictureBox = new System.Windows.Forms.PictureBox(); this.partyPokemon5ComboBox = new DSPRE.InputComboBox(); this.party4GroupBox = new System.Windows.Forms.GroupBox(); this.partyForm4ComboBox = new System.Windows.Forms.ComboBox(); this.partyAbility4ComboBox = new System.Windows.Forms.ComboBox(); this.partyGender4ComboBox = new System.Windows.Forms.ComboBox(); this.partyPokemonItemPictureBox4 = new System.Windows.Forms.PictureBox(); this.label54 = new System.Windows.Forms.Label(); this.label55 = new System.Windows.Forms.Label(); this.label56 = new System.Windows.Forms.Label(); this.poke4MovesGroupBox = new System.Windows.Forms.GroupBox(); this.partyMove4_1ComboBox = new DSPRE.InputComboBox(); this.partyMove4_2ComboBox = new DSPRE.InputComboBox(); this.partyMove4_3ComboBox = new DSPRE.InputComboBox(); this.partyMove4_4ComboBox = new DSPRE.InputComboBox(); this.partyIV4UpDown = new System.Windows.Forms.NumericUpDown(); this.partyLevel4UpDown = new System.Windows.Forms.NumericUpDown(); this.partyBall4UpDown = new System.Windows.Forms.NumericUpDown(); this.partyItem4ComboBox = new DSPRE.InputComboBox(); this.partyPokemon4PictureBox = new System.Windows.Forms.PictureBox(); this.partyPokemon4ComboBox = new DSPRE.InputComboBox(); this.party3GroupBox = new System.Windows.Forms.GroupBox(); this.partyForm3ComboBox = new System.Windows.Forms.ComboBox(); this.partyAbility3ComboBox = new System.Windows.Forms.ComboBox(); this.partyGender3ComboBox = new System.Windows.Forms.ComboBox(); this.partyPokemonItemPictureBox3 = new System.Windows.Forms.PictureBox(); this.label51 = new System.Windows.Forms.Label(); this.label52 = new System.Windows.Forms.Label(); this.label53 = new System.Windows.Forms.Label(); this.poke3MovesGroupBox = new System.Windows.Forms.GroupBox(); this.partyMove3_1ComboBox = new DSPRE.InputComboBox(); this.partyMove3_2ComboBox = new DSPRE.InputComboBox(); this.partyMove3_3ComboBox = new DSPRE.InputComboBox(); this.partyMove3_4ComboBox = new DSPRE.InputComboBox(); this.partyIV3UpDown = new System.Windows.Forms.NumericUpDown(); this.partyLevel3UpDown = new System.Windows.Forms.NumericUpDown(); this.partyBall3UpDown = new System.Windows.Forms.NumericUpDown(); this.partyItem3ComboBox = new DSPRE.InputComboBox(); this.partyPokemon3PictureBox = new System.Windows.Forms.PictureBox(); this.partyPokemon3ComboBox = new DSPRE.InputComboBox(); this.party2GroupBox = new System.Windows.Forms.GroupBox(); this.partyForm2ComboBox = new System.Windows.Forms.ComboBox(); this.partyAbility2ComboBox = new System.Windows.Forms.ComboBox(); this.partyGender2ComboBox = new System.Windows.Forms.ComboBox(); this.partyPokemonItemPictureBox2 = new System.Windows.Forms.PictureBox(); this.label48 = new System.Windows.Forms.Label(); this.label49 = new System.Windows.Forms.Label(); this.label50 = new System.Windows.Forms.Label(); this.poke2MovesGroupBox = new System.Windows.Forms.GroupBox(); this.partyMove2_1ComboBox = new DSPRE.InputComboBox(); this.partyMove2_2ComboBox = new DSPRE.InputComboBox(); this.partyMove2_3ComboBox = new DSPRE.InputComboBox(); this.partyMove2_4ComboBox = new DSPRE.InputComboBox(); this.partyIV2UpDown = new System.Windows.Forms.NumericUpDown(); this.partyLevel2UpDown = new System.Windows.Forms.NumericUpDown(); this.partyBall2UpDown = new System.Windows.Forms.NumericUpDown(); this.partyItem2ComboBox = new DSPRE.InputComboBox(); this.partyPokemon2PictureBox = new System.Windows.Forms.PictureBox(); this.partyPokemon2ComboBox = new DSPRE.InputComboBox(); this.party1GroupBox = new System.Windows.Forms.GroupBox(); this.partyForm1ComboBox = new System.Windows.Forms.ComboBox(); this.partyAbility1ComboBox = new System.Windows.Forms.ComboBox(); this.partyGender1ComboBox = new System.Windows.Forms.ComboBox(); this.partyPokemonItemPictureBox1 = new System.Windows.Forms.PictureBox(); this.label47 = new System.Windows.Forms.Label(); this.label46 = new System.Windows.Forms.Label(); this.label45 = new System.Windows.Forms.Label(); this.poke1MovesGroupBox = new System.Windows.Forms.GroupBox(); this.partyMove1_1ComboBox = new DSPRE.InputComboBox(); this.partyMove1_2ComboBox = new DSPRE.InputComboBox(); this.partyMove1_3ComboBox = new DSPRE.InputComboBox(); this.partyMove1_4ComboBox = new DSPRE.InputComboBox(); this.partyIV1UpDown = new System.Windows.Forms.NumericUpDown(); this.partyLevel1UpDown = new System.Windows.Forms.NumericUpDown(); this.partyBall1UpDown = new System.Windows.Forms.NumericUpDown(); this.partyItem1ComboBox = new DSPRE.InputComboBox(); this.partyPokemon1PictureBox = new System.Windows.Forms.PictureBox(); this.partyPokemon1ComboBox = new DSPRE.InputComboBox(); this.groupBox27 = new System.Windows.Forms.GroupBox(); this.eyeContactMusicAltLabel = new System.Windows.Forms.Label(); this.encounterSSEQAltUpDown = new System.Windows.Forms.NumericUpDown(); this.eyeContactMusicLabel = new System.Windows.Forms.Label(); this.encounterSSEQMainUpDown = new System.Windows.Forms.NumericUpDown(); this.trainerClassFrameMaxLabel = new System.Windows.Forms.Label(); this.label40 = new System.Windows.Forms.Label(); this.trClassFramePreviewUpDown = new System.Windows.Forms.NumericUpDown(); this.saveTrainerClassButton = new System.Windows.Forms.Button(); this.trainerClassNameTextbox = new System.Windows.Forms.TextBox(); this.label17 = new System.Windows.Forms.Label(); this.trainerClassPicBox = new System.Windows.Forms.PictureBox(); this.deleteTrainerButton = new System.Windows.Forms.Button(); this.groupBox25 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); this.replacePropertiesButton = new System.Windows.Forms.Button(); this.exportPropertiesButton = new System.Windows.Forms.Button(); this.TrainerAIGroupBox = new System.Windows.Forms.GroupBox(); this.trainerAI1CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI2CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI3CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI4CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI5CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI6CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI7CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI8CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI9CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI10CheckBox = new System.Windows.Forms.CheckBox(); this.trainerAI11CheckBox = new System.Windows.Forms.CheckBox(); this.trainerItemsGroupBox = new System.Windows.Forms.GroupBox(); this.trainerItem1ComboBox = new DSPRE.InputComboBox(); this.trainerItem2ComboBox = new DSPRE.InputComboBox(); this.trainerItem3ComboBox = new DSPRE.InputComboBox(); this.trainerItem4ComboBox = new DSPRE.InputComboBox(); this.trainerItemsCheckBox = new System.Windows.Forms.CheckBox(); this.trainerMovesCheckBox = new System.Windows.Forms.CheckBox(); this.trainerDoubleCheckBox = new System.Windows.Forms.CheckBox(); this.trainerNameTextBox = new System.Windows.Forms.TextBox(); this.partyCountUpDown = new System.Windows.Forms.NumericUpDown(); this.label44 = new System.Windows.Forms.Label(); this.label63 = new System.Windows.Forms.Label(); this.label43 = new System.Windows.Forms.Label(); this.trainerClassListBox = new System.Windows.Forms.ListBox(); this.addTrainerButton = new System.Windows.Forms.Button(); this.label42 = new System.Windows.Forms.Label(); this.trainerComboBox = new DSPRE.InputComboBox(); this.trainerSaveCurrentButton = new System.Windows.Forms.Button(); this.tableEditorTabPage = new System.Windows.Forms.TabPage(); this.label73 = new System.Windows.Forms.Label(); this.pbEffectsGroupBox = new System.Windows.Forms.GroupBox(); this.groupBox31 = new System.Windows.Forms.GroupBox(); this.HOWpbEffectsTableButton = new System.Windows.Forms.Button(); this.pbEffectsBattleSSEQUpDown = new System.Windows.Forms.NumericUpDown(); this.label21 = new System.Windows.Forms.Label(); this.saveEffectCombosTableBTN = new System.Windows.Forms.Button(); this.pbEffectsVSAnimationUpDown = new System.Windows.Forms.NumericUpDown(); this.pbEffectsCombosListbox = new System.Windows.Forms.ListBox(); this.label22 = new System.Windows.Forms.Label(); this.pbEffectsTrainerGroupBox = new System.Windows.Forms.GroupBox(); this.label75 = new System.Windows.Forms.Label(); this.tbEditortrainerClassFrameMaxLabel = new System.Windows.Forms.Label(); this.tbEditorTrClassFramePreviewUpDown = new System.Windows.Forms.NumericUpDown(); this.tbEditorTrClassPictureBox = new System.Windows.Forms.PictureBox(); this.label68 = new System.Windows.Forms.Label(); this.pbEffectsTrainerChooseMainCombobox = new System.Windows.Forms.ComboBox(); this.HOWVsTrainerButton = new System.Windows.Forms.Button(); this.saveVSTrainerTableBTN = new System.Windows.Forms.Button(); this.label70 = new System.Windows.Forms.Label(); this.pbEffectsTrainerCombobox = new System.Windows.Forms.ComboBox(); this.pbEffectsVsTrainerListbox = new System.Windows.Forms.ListBox(); this.pbEffectsMonGroupBox = new System.Windows.Forms.GroupBox(); this.tbEditorPokeminiPictureBox = new System.Windows.Forms.PictureBox(); this.label69 = new System.Windows.Forms.Label(); this.pbEffectsPokemonChooseMainCombobox = new System.Windows.Forms.ComboBox(); this.HOWvsPokemonButton = new System.Windows.Forms.Button(); this.saveVSPokemonTableBTN = new System.Windows.Forms.Button(); this.label71 = new System.Windows.Forms.Label(); this.pbEffectsPokemonCombobox = new System.Windows.Forms.ComboBox(); this.pbEffectsVsPokemonListbox = new System.Windows.Forms.ListBox(); this.conditionalMusicGroupBox = new System.Windows.Forms.GroupBox(); this.label66 = new System.Windows.Forms.Label(); this.HOWconditionalMusicTableButton = new System.Windows.Forms.Button(); this.saveConditionalMusicTableBTN = new System.Windows.Forms.Button(); this.label65 = new System.Windows.Forms.Label(); this.musicIDconditionalMusicUpDown = new System.Windows.Forms.NumericUpDown(); this.label64 = new System.Windows.Forms.Label(); this.flagConditionalMusicUpDown = new System.Windows.Forms.NumericUpDown(); this.label41 = new System.Windows.Forms.Label(); this.locationNameConditionalMusicLBL = new System.Windows.Forms.Label(); this.headerConditionalMusicComboBox = new System.Windows.Forms.ComboBox(); this.conditionalMusicTableListBox = new System.Windows.Forms.ListBox(); this.tabPageEncountersEditor = new System.Windows.Forms.TabPage(); this.encountersEditor = new DSPRE.Editors.EncountersEditor(); this.mainTabImageList = new System.Windows.Forms.ImageList(this.components); this.gameIcon = new System.Windows.Forms.PictureBox(); this.languageLabel = new System.Windows.Forms.Label(); this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openROMToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveROMToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.romToolboxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.headerSearchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.scriptCommandsDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.diamondAndPearlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.platinumToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.heartGoldAndSoulSilverToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.NarcUtilityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.buildFomFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.unpackToFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.listBasedBatchRenameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.listBasedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.contentBasedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.listBuilderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.fromCEnumToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.fromFolderContentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.nSBMDUtilityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.texturizeNSBMDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.untexturizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.extractNSBTXFromNSBMDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.essentialToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.simpleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.advancedStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.fullViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.otherEditorsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.personalDataEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.overlayEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.spawnEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.moveDataEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripProgressBar = new System.Windows.Forms.ToolStripProgressBar(); this.mainToolStrip = new System.Windows.Forms.ToolStrip(); this.loadRomButton = new System.Windows.Forms.ToolStripButton(); this.readDataFromFolderButton = new System.Windows.Forms.ToolStripButton(); this.saveRomButton = new System.Windows.Forms.ToolStripButton(); this.separator_AfterOpenSave = new System.Windows.Forms.ToolStripSeparator(); this.unpackAllButton = new System.Windows.Forms.ToolStripButton(); this.updateMapNarcsButton = new System.Windows.Forms.ToolStripButton(); this.separator_afterFolderUnpackers = new System.Windows.Forms.ToolStripSeparator(); this.buildNarcFromFolderToolStripButton = new System.Windows.Forms.ToolStripButton(); this.unpackNARCtoFolderToolStripButton = new System.Windows.Forms.ToolStripButton(); this.separator_afterNarcUtils = new System.Windows.Forms.ToolStripSeparator(); this.listBasedBatchRenameToolStripButton = new System.Windows.Forms.ToolStripButton(); this.contentBasedBatchRenameToolStripButton = new System.Windows.Forms.ToolStripButton(); this.separator_afterRenameUtils = new System.Windows.Forms.ToolStripSeparator(); this.enumBasedListBuilderToolStripButton = new System.Windows.Forms.ToolStripButton(); this.folderBasedListBuilderToolStriButton = new System.Windows.Forms.ToolStripButton(); this.separator_afterListUtils = new System.Windows.Forms.ToolStripSeparator(); this.nsbmdAddTexButton = new System.Windows.Forms.ToolStripButton(); this.nsbmdRemoveTexButton = new System.Windows.Forms.ToolStripButton(); this.nsbmdExportTexButton = new System.Windows.Forms.ToolStripButton(); this.separator_afterNsbmdUtils = new System.Windows.Forms.ToolStripSeparator(); this.buildingEditorButton = new System.Windows.Forms.ToolStripButton(); this.wildEditorButton = new System.Windows.Forms.ToolStripButton(); this.scriptCommandsButton = new System.Windows.Forms.ToolStripButton(); this.romToolboxToolStripButton = new System.Windows.Forms.ToolStripButton(); this.headerSearchToolStripButton = new System.Windows.Forms.ToolStripButton(); this.spawnEditorToolStripButton = new System.Windows.Forms.ToolStripButton(); this.separator_afterMiscButtons = new System.Windows.Forms.ToolStripSeparator(); this.versionLabel = new System.Windows.Forms.Label(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.mainTabControl.SuspendLayout(); this.headerEditorTabPage.SuspendLayout(); this.worldmapCoordsGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.worldmapYCoordUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.worldmapXCoordUpDown)).BeginInit(); this.groupBox18.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.wildPokeUpDown)).BeginInit(); this.groupBox10.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.textFileUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.eventFileUpDown)).BeginInit(); this.groupBox4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.areaDataUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.matrixUpDown)).BeginInit(); this.groupBox9.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.areaIconPictureBox)).BeginInit(); this.nameGroupBox.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.cameraUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.weatherUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.musicNightUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.musicDayUpDown)).BeginInit(); this.groupBox3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.levelScriptUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.scriptFileUpDown)).BeginInit(); this.flagsGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.battleBackgroundUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.cameraPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.weatherPictureBox)).BeginInit(); this.matrixEditorTabPage.SuspendLayout(); this.matrixTabControl.SuspendLayout(); this.headersTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.headersGridView)).BeginInit(); this.heightsTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.heightsGridView)).BeginInit(); this.mapFilesTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.mapFilesGridView)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.heightUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.widthUpDown)).BeginInit(); this.mapEditorTabPage.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout(); this.mapRenderPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.movPictureBox)).BeginInit(); this.mapPartsTabControl.SuspendLayout(); this.buildingsTabPage.SuspendLayout(); this.groupBox33.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.yRotDegBldUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xRotDegBldUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.zRotDegBldUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.yRotBuildUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xRotBuildUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.zRotBuildUpDown)).BeginInit(); this.lockXZgroupbox.SuspendLayout(); this.bldRoundGroupbox.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); this.groupBox20.SuspendLayout(); this.groupBox19.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.buildingHeightUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.buildingWidthUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.buildingLengthUpDown)).BeginInit(); this.buildPositionGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.yBuildUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xBuildUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.zBuildUpDown)).BeginInit(); this.permissionsTabPage.SuspendLayout(); this.typeGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.typePainterUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.typePainterPictureBox)).BeginInit(); this.collisionGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.collisionPainterPictureBox)).BeginInit(); this.selectCollisionPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.collisionPictureBox)).BeginInit(); this.selectTypePanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.typePictureBox)).BeginInit(); this.modelTabPage.SuspendLayout(); this.terrainTabPage.SuspendLayout(); this.bgsTabPage.SuspendLayout(); this.nsbtxEditorTabPage.SuspendLayout(); this.groupBox7.SuspendLayout(); this.tableLayoutPanel37.SuspendLayout(); this.groupBox35.SuspendLayout(); this.tableLayoutPanel38.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.scalingTrackBar)).BeginInit(); this.areaDataGroupBox.SuspendLayout(); this.areaTypeGroupbox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.areaDataDynamicTexturesNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.areaDataMapTilesetUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.areaDataBuildingTilesetUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.texturePictureBox)).BeginInit(); this.eventEditorTabPage.SuspendLayout(); this.groupBox21.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.eventAreaDataUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixYUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixXUpDown)).BeginInit(); this.eventMatrixPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixUpDown)).BeginInit(); this.eventsTabControl.SuspendLayout(); this.signsTabPage.SuspendLayout(); this.groupBox5.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.spawnableXMatrixUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableYMatrixUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnablexMapUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableYMapUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableScriptUpDown)).BeginInit(); this.overworldsTabPage.SuspendLayout(); this.groupBox22.SuspendLayout(); this.groupBox17.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.owYMatrixUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owXMatrixUpDown)).BeginInit(); this.owMovementGroupBox.SuspendLayout(); this.groupBox23.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.owXRangeUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owYRangeUpDown)).BeginInit(); this.positionGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.owXMapUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owZPositionUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owYMapUpDown)).BeginInit(); this.owSpecialGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.owSightRangeUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owScriptNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owFlagNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owIDNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.owSpritePictureBox)).BeginInit(); this.warpsTabPage.SuspendLayout(); this.groupBox11.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.warpAnchorUpDown)).BeginInit(); this.groupBox1.SuspendLayout(); this.groupBox14.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.warpXMatrixUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.warpYMatrixUpDown)).BeginInit(); this.groupBox12.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.warpXMapUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.warpYMapUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.warpZUpDown)).BeginInit(); this.triggersTabPage.SuspendLayout(); this.triggerLogicGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.expectedVarValueTriggerUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerVariableWatchedUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerScriptUpDown)).BeginInit(); this.groupBox16.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.triggerLengthUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerWidthUpDown)).BeginInit(); this.groupBox15.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.triggerXMapUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerZUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerYMapUpDown)).BeginInit(); this.groupBox6.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.triggerXMatrixUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerYMatrixUpDown)).BeginInit(); this.eventPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.eventPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rightClickPicture)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.wheelClickPicture)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.LeftClickPicture)).BeginInit(); this.tabPageScriptEditor.SuspendLayout(); this.tabPageLevelScriptEditor.SuspendLayout(); this.textEditorTabPage.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout(); this.LineNumbersFormatgroupBox.SuspendLayout(); this.groupBox13.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.textEditorDataGridView)).BeginInit(); this.cameraEditorTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.cameraEditorDataGridView)).BeginInit(); this.trainerEditorTabPage.SuspendLayout(); this.tableLayoutPanel4.SuspendLayout(); this.groupBox28.SuspendLayout(); this.tableLayoutPanel6.SuspendLayout(); this.party6GroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox6)).BeginInit(); this.poke6MovesGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyIV6UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel6UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall6UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon6PictureBox)).BeginInit(); this.party5GroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox5)).BeginInit(); this.poke5MovesGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyIV5UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel5UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall5UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon5PictureBox)).BeginInit(); this.party4GroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox4)).BeginInit(); this.poke4MovesGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyIV4UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel4UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall4UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon4PictureBox)).BeginInit(); this.party3GroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox3)).BeginInit(); this.poke3MovesGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyIV3UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel3UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall3UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon3PictureBox)).BeginInit(); this.party2GroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox2)).BeginInit(); this.poke2MovesGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyIV2UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel2UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall2UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon2PictureBox)).BeginInit(); this.party1GroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox1)).BeginInit(); this.poke1MovesGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyIV1UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel1UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall1UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon1PictureBox)).BeginInit(); this.groupBox27.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.encounterSSEQAltUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.encounterSSEQMainUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trClassFramePreviewUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trainerClassPicBox)).BeginInit(); this.groupBox25.SuspendLayout(); this.tableLayoutPanel5.SuspendLayout(); this.TrainerAIGroupBox.SuspendLayout(); this.trainerItemsGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyCountUpDown)).BeginInit(); this.tableEditorTabPage.SuspendLayout(); this.pbEffectsGroupBox.SuspendLayout(); this.groupBox31.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbEffectsBattleSSEQUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbEffectsVSAnimationUpDown)).BeginInit(); this.pbEffectsTrainerGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tbEditorTrClassFramePreviewUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tbEditorTrClassPictureBox)).BeginInit(); this.pbEffectsMonGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tbEditorPokeminiPictureBox)).BeginInit(); this.conditionalMusicGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.musicIDconditionalMusicUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.flagConditionalMusicUpDown)).BeginInit(); this.tabPageEncountersEditor.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.gameIcon)).BeginInit(); this.menuStrip1.SuspendLayout(); this.statusStrip1.SuspendLayout(); this.mainToolStrip.SuspendLayout(); this.SuspendLayout(); // // mainTabControl // this.mainTabControl.AllowDrop = true; this.mainTabControl.Controls.Add(this.headerEditorTabPage); this.mainTabControl.Controls.Add(this.matrixEditorTabPage); this.mainTabControl.Controls.Add(this.mapEditorTabPage); this.mainTabControl.Controls.Add(this.nsbtxEditorTabPage); this.mainTabControl.Controls.Add(this.eventEditorTabPage); this.mainTabControl.Controls.Add(this.tabPageScriptEditor); this.mainTabControl.Controls.Add(this.tabPageLevelScriptEditor); this.mainTabControl.Controls.Add(this.textEditorTabPage); this.mainTabControl.Controls.Add(this.cameraEditorTabPage); this.mainTabControl.Controls.Add(this.trainerEditorTabPage); this.mainTabControl.Controls.Add(this.tableEditorTabPage); this.mainTabControl.Controls.Add(this.tabPageEncountersEditor); this.mainTabControl.ImageList = this.mainTabImageList; this.mainTabControl.Location = new System.Drawing.Point(11, 72); this.mainTabControl.Name = "mainTabControl"; this.mainTabControl.SelectedIndex = 0; this.mainTabControl.Size = new System.Drawing.Size(1193, 702); this.mainTabControl.TabIndex = 5; this.mainTabControl.Visible = false; this.mainTabControl.SelectedIndexChanged += new System.EventHandler(this.mainTabControl_SelectedIndexChanged); // // headerEditorTabPage // this.headerEditorTabPage.BackColor = System.Drawing.SystemColors.Window; this.headerEditorTabPage.Controls.Add(this.removeLastHeaderBTN); this.headerEditorTabPage.Controls.Add(this.addHeaderBTN); this.headerEditorTabPage.Controls.Add(this.worldmapCoordsGroupBox); this.headerEditorTabPage.Controls.Add(this.groupBox18); this.headerEditorTabPage.Controls.Add(this.importHeaderFromFileButton); this.headerEditorTabPage.Controls.Add(this.exportHeaderToFileButton); this.headerEditorTabPage.Controls.Add(this.pasteHeaderButton); this.headerEditorTabPage.Controls.Add(this.groupBox10); this.headerEditorTabPage.Controls.Add(this.groupBox4); this.headerEditorTabPage.Controls.Add(this.groupBox9); this.headerEditorTabPage.Controls.Add(this.copyHeaderButton); this.headerEditorTabPage.Controls.Add(this.areaIconPictureBox); this.headerEditorTabPage.Controls.Add(this.areaImageLabel); this.headerEditorTabPage.Controls.Add(this.nameGroupBox); this.headerEditorTabPage.Controls.Add(this.groupBox2); this.headerEditorTabPage.Controls.Add(this.groupBox3); this.headerEditorTabPage.Controls.Add(this.headerListBox); this.headerEditorTabPage.Controls.Add(this.saveHeaderButton); this.headerEditorTabPage.Controls.Add(this.flagsGroupBox); this.headerEditorTabPage.Controls.Add(this.cameraPicLabel); this.headerEditorTabPage.Controls.Add(this.cameraPictureBox); this.headerEditorTabPage.Controls.Add(this.weatherPicLabel); this.headerEditorTabPage.Controls.Add(this.weatherPictureBox); this.headerEditorTabPage.ImageIndex = 0; this.headerEditorTabPage.Location = new System.Drawing.Point(4, 23); this.headerEditorTabPage.Name = "headerEditorTabPage"; this.headerEditorTabPage.Padding = new System.Windows.Forms.Padding(3); this.headerEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.headerEditorTabPage.TabIndex = 0; this.headerEditorTabPage.Text = "Header Editor"; // // removeLastHeaderBTN // this.removeLastHeaderBTN.Enabled = false; this.removeLastHeaderBTN.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeLastHeaderBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeLastHeaderBTN.Location = new System.Drawing.Point(13, 578); this.removeLastHeaderBTN.Name = "removeLastHeaderBTN"; this.removeLastHeaderBTN.Size = new System.Drawing.Size(214, 26); this.removeLastHeaderBTN.TabIndex = 52; this.removeLastHeaderBTN.Text = "Remove Last"; this.removeLastHeaderBTN.UseVisualStyleBackColor = true; this.removeLastHeaderBTN.Click += new System.EventHandler(this.removeLastHeaderBTN_Click); // // addHeaderBTN // this.addHeaderBTN.Enabled = false; this.addHeaderBTN.Image = global::DSPRE.Properties.Resources.addIcon; this.addHeaderBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addHeaderBTN.Location = new System.Drawing.Point(13, 552); this.addHeaderBTN.Name = "addHeaderBTN"; this.addHeaderBTN.Size = new System.Drawing.Size(214, 26); this.addHeaderBTN.TabIndex = 48; this.addHeaderBTN.Text = "Add Header"; this.addHeaderBTN.UseVisualStyleBackColor = true; this.addHeaderBTN.Click += new System.EventHandler(this.addHeaderBTN_Click); // // worldmapCoordsGroupBox // this.worldmapCoordsGroupBox.Controls.Add(this.worldmapCoordsPasteButton); this.worldmapCoordsGroupBox.Controls.Add(this.label1); this.worldmapCoordsGroupBox.Controls.Add(this.worldmapCoordsCopyButton); this.worldmapCoordsGroupBox.Controls.Add(this.worldmapYCoordUpDown); this.worldmapCoordsGroupBox.Controls.Add(this.label36); this.worldmapCoordsGroupBox.Controls.Add(this.worldmapXCoordUpDown); this.worldmapCoordsGroupBox.Enabled = false; this.worldmapCoordsGroupBox.Location = new System.Drawing.Point(238, 468); this.worldmapCoordsGroupBox.Name = "worldmapCoordsGroupBox"; this.worldmapCoordsGroupBox.Size = new System.Drawing.Size(84, 136); this.worldmapCoordsGroupBox.TabIndex = 34; this.worldmapCoordsGroupBox.TabStop = false; this.worldmapCoordsGroupBox.Text = "Worldmap"; // // worldmapCoordsPasteButton // this.worldmapCoordsPasteButton.Enabled = false; this.worldmapCoordsPasteButton.Image = ((System.Drawing.Image)(resources.GetObject("worldmapCoordsPasteButton.Image"))); this.worldmapCoordsPasteButton.Location = new System.Drawing.Point(43, 93); this.worldmapCoordsPasteButton.Name = "worldmapCoordsPasteButton"; this.worldmapCoordsPasteButton.Size = new System.Drawing.Size(35, 37); this.worldmapCoordsPasteButton.TabIndex = 49; this.worldmapCoordsPasteButton.UseVisualStyleBackColor = true; this.worldmapCoordsPasteButton.Click += new System.EventHandler(this.worldmapCoordsPasteButton_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(22, 52); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(14, 13); this.label1.TabIndex = 27; this.label1.Text = "Y"; // // worldmapCoordsCopyButton // this.worldmapCoordsCopyButton.Image = ((System.Drawing.Image)(resources.GetObject("worldmapCoordsCopyButton.Image"))); this.worldmapCoordsCopyButton.Location = new System.Drawing.Point(6, 93); this.worldmapCoordsCopyButton.Name = "worldmapCoordsCopyButton"; this.worldmapCoordsCopyButton.Size = new System.Drawing.Size(35, 37); this.worldmapCoordsCopyButton.TabIndex = 50; this.worldmapCoordsCopyButton.UseVisualStyleBackColor = true; this.worldmapCoordsCopyButton.Click += new System.EventHandler(this.worldmapCoordsCopyButton_Click); // // worldmapYCoordUpDown // this.worldmapYCoordUpDown.Location = new System.Drawing.Point(25, 67); this.worldmapYCoordUpDown.Maximum = new decimal(new int[] { 63, 0, 0, 0}); this.worldmapYCoordUpDown.Name = "worldmapYCoordUpDown"; this.worldmapYCoordUpDown.Size = new System.Drawing.Size(38, 20); this.worldmapYCoordUpDown.TabIndex = 26; this.worldmapYCoordUpDown.ValueChanged += new System.EventHandler(this.worldmapYCoordUpDown_ValueChanged); // // label36 // this.label36.AutoSize = true; this.label36.Location = new System.Drawing.Point(22, 14); this.label36.Name = "label36"; this.label36.Size = new System.Drawing.Size(14, 13); this.label36.TabIndex = 25; this.label36.Text = "X"; // // worldmapXCoordUpDown // this.worldmapXCoordUpDown.Location = new System.Drawing.Point(25, 29); this.worldmapXCoordUpDown.Maximum = new decimal(new int[] { 63, 0, 0, 0}); this.worldmapXCoordUpDown.Name = "worldmapXCoordUpDown"; this.worldmapXCoordUpDown.Size = new System.Drawing.Size(38, 20); this.worldmapXCoordUpDown.TabIndex = 24; this.worldmapXCoordUpDown.ValueChanged += new System.EventHandler(this.worldmapXCoordUpDown_ValueChanged); // // groupBox18 // this.groupBox18.Controls.Add(this.openWildEditorWithIdButton); this.groupBox18.Controls.Add(this.pasteWildEncountersButton); this.groupBox18.Controls.Add(this.wildPokeUpDown); this.groupBox18.Controls.Add(this.copyWildEncountersButton); this.groupBox18.Location = new System.Drawing.Point(806, 12); this.groupBox18.Name = "groupBox18"; this.groupBox18.Size = new System.Drawing.Size(94, 140); this.groupBox18.TabIndex = 51; this.groupBox18.TabStop = false; this.groupBox18.Text = "Wild Pokémon"; // // openWildEditorWithIdButton // this.openWildEditorWithIdButton.Location = new System.Drawing.Point(10, 46); this.openWildEditorWithIdButton.Name = "openWildEditorWithIdButton"; this.openWildEditorWithIdButton.Size = new System.Drawing.Size(73, 41); this.openWildEditorWithIdButton.TabIndex = 24; this.openWildEditorWithIdButton.Text = "Open Editor"; this.openWildEditorWithIdButton.UseVisualStyleBackColor = true; this.openWildEditorWithIdButton.Click += new System.EventHandler(this.openWildEditorWithIdButtonClick); // // pasteWildEncountersButton // this.pasteWildEncountersButton.Enabled = false; this.pasteWildEncountersButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteWildEncountersButton.Image"))); this.pasteWildEncountersButton.Location = new System.Drawing.Point(48, 91); this.pasteWildEncountersButton.Name = "pasteWildEncountersButton"; this.pasteWildEncountersButton.Size = new System.Drawing.Size(35, 37); this.pasteWildEncountersButton.TabIndex = 42; this.pasteWildEncountersButton.UseVisualStyleBackColor = true; this.pasteWildEncountersButton.Click += new System.EventHandler(this.pasteWildEncountersButton_Click); // // wildPokeUpDown // this.wildPokeUpDown.Location = new System.Drawing.Point(11, 20); this.wildPokeUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.wildPokeUpDown.Name = "wildPokeUpDown"; this.wildPokeUpDown.Size = new System.Drawing.Size(72, 20); this.wildPokeUpDown.TabIndex = 24; this.wildPokeUpDown.ValueChanged += new System.EventHandler(this.wildPokeUpDown_ValueChanged); // // copyWildEncountersButton // this.copyWildEncountersButton.Image = ((System.Drawing.Image)(resources.GetObject("copyWildEncountersButton.Image"))); this.copyWildEncountersButton.Location = new System.Drawing.Point(10, 91); this.copyWildEncountersButton.Name = "copyWildEncountersButton"; this.copyWildEncountersButton.Size = new System.Drawing.Size(35, 37); this.copyWildEncountersButton.TabIndex = 41; this.copyWildEncountersButton.UseVisualStyleBackColor = true; this.copyWildEncountersButton.Click += new System.EventHandler(this.copyWildEncountersButton_Click); // // importHeaderFromFileButton // this.importHeaderFromFileButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importHeaderFromFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importHeaderFromFileButton.Location = new System.Drawing.Point(912, 518); this.importHeaderFromFileButton.Name = "importHeaderFromFileButton"; this.importHeaderFromFileButton.Size = new System.Drawing.Size(74, 40); this.importHeaderFromFileButton.TabIndex = 50; this.importHeaderFromFileButton.Text = "Import"; this.importHeaderFromFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.toolTip1.SetToolTip(this.importHeaderFromFileButton, "Import header from file, replacing the current header"); this.importHeaderFromFileButton.UseVisualStyleBackColor = true; this.importHeaderFromFileButton.Click += new System.EventHandler(this.importHeaderFromFileButton_Click); // // exportHeaderToFileButton // this.exportHeaderToFileButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportHeaderToFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportHeaderToFileButton.Location = new System.Drawing.Point(992, 518); this.exportHeaderToFileButton.Name = "exportHeaderToFileButton"; this.exportHeaderToFileButton.Size = new System.Drawing.Size(74, 40); this.exportHeaderToFileButton.TabIndex = 49; this.exportHeaderToFileButton.Text = "Export"; this.exportHeaderToFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.toolTip1.SetToolTip(this.exportHeaderToFileButton, "Export current header to file"); this.exportHeaderToFileButton.UseVisualStyleBackColor = true; this.exportHeaderToFileButton.Click += new System.EventHandler(this.exportHeaderToFileButton_Click); // // pasteHeaderButton // this.pasteHeaderButton.Enabled = false; this.pasteHeaderButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteHeaderButton.Image"))); this.pasteHeaderButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.pasteHeaderButton.Location = new System.Drawing.Point(992, 563); this.pasteHeaderButton.Name = "pasteHeaderButton"; this.pasteHeaderButton.Size = new System.Drawing.Size(74, 40); this.pasteHeaderButton.TabIndex = 37; this.pasteHeaderButton.Text = "Paste"; this.pasteHeaderButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.toolTip1.SetToolTip(this.pasteHeaderButton, "Replace current header with the copied one"); this.pasteHeaderButton.UseVisualStyleBackColor = true; this.pasteHeaderButton.Click += new System.EventHandler(this.pasteHeaderButton_Click); // // groupBox10 // this.groupBox10.Controls.Add(this.pasteTextsButton); this.groupBox10.Controls.Add(this.openMessageFileButton); this.groupBox10.Controls.Add(this.copyTextsButton); this.groupBox10.Controls.Add(this.pasteEventsButton); this.groupBox10.Controls.Add(this.textFileUpDown); this.groupBox10.Controls.Add(this.copyEventsButton); this.groupBox10.Controls.Add(this.textLabel); this.groupBox10.Controls.Add(this.openEventsButton); this.groupBox10.Controls.Add(this.eventLabel); this.groupBox10.Controls.Add(this.eventFileUpDown); this.groupBox10.Location = new System.Drawing.Point(238, 389); this.groupBox10.Name = "groupBox10"; this.groupBox10.Size = new System.Drawing.Size(662, 76); this.groupBox10.TabIndex = 31; this.groupBox10.TabStop = false; this.groupBox10.Text = "Events && Texts"; // // pasteTextsButton // this.pasteTextsButton.Enabled = false; this.pasteTextsButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteTextsButton.Image"))); this.pasteTextsButton.Location = new System.Drawing.Point(616, 28); this.pasteTextsButton.Name = "pasteTextsButton"; this.pasteTextsButton.Size = new System.Drawing.Size(35, 37); this.pasteTextsButton.TabIndex = 33; this.pasteTextsButton.UseVisualStyleBackColor = true; this.pasteTextsButton.Click += new System.EventHandler(this.pasteTextsButton_Click); // // openMessageFileButton // this.openMessageFileButton.Location = new System.Drawing.Point(495, 27); this.openMessageFileButton.Name = "openMessageFileButton"; this.openMessageFileButton.Size = new System.Drawing.Size(79, 40); this.openMessageFileButton.TabIndex = 46; this.openMessageFileButton.Text = "Open &Texts"; this.openMessageFileButton.UseVisualStyleBackColor = true; this.openMessageFileButton.Click += new System.EventHandler(this.openTextArchiveButton_Click); // // copyTextsButton // this.copyTextsButton.Image = ((System.Drawing.Image)(resources.GetObject("copyTextsButton.Image"))); this.copyTextsButton.Location = new System.Drawing.Point(578, 29); this.copyTextsButton.Name = "copyTextsButton"; this.copyTextsButton.Size = new System.Drawing.Size(35, 37); this.copyTextsButton.TabIndex = 32; this.copyTextsButton.UseVisualStyleBackColor = true; this.copyTextsButton.Click += new System.EventHandler(this.copyTextsButton_Click); // // pasteEventsButton // this.pasteEventsButton.Enabled = false; this.pasteEventsButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteEventsButton.Image"))); this.pasteEventsButton.Location = new System.Drawing.Point(252, 29); this.pasteEventsButton.Name = "pasteEventsButton"; this.pasteEventsButton.Size = new System.Drawing.Size(35, 37); this.pasteEventsButton.TabIndex = 31; this.pasteEventsButton.UseVisualStyleBackColor = true; this.pasteEventsButton.Click += new System.EventHandler(this.pasteEventsButton_Click); // // textFileUpDown // this.textFileUpDown.Location = new System.Drawing.Point(376, 36); this.textFileUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.textFileUpDown.Name = "textFileUpDown"; this.textFileUpDown.Size = new System.Drawing.Size(107, 20); this.textFileUpDown.TabIndex = 47; this.textFileUpDown.ValueChanged += new System.EventHandler(this.textFileUpDown_ValueChanged); // // copyEventsButton // this.copyEventsButton.Image = ((System.Drawing.Image)(resources.GetObject("copyEventsButton.Image"))); this.copyEventsButton.Location = new System.Drawing.Point(215, 29); this.copyEventsButton.Name = "copyEventsButton"; this.copyEventsButton.Size = new System.Drawing.Size(35, 37); this.copyEventsButton.TabIndex = 30; this.copyEventsButton.UseVisualStyleBackColor = true; this.copyEventsButton.Click += new System.EventHandler(this.copyEventsButton_Click); // // textLabel // this.textLabel.AutoSize = true; this.textLabel.Location = new System.Drawing.Point(374, 20); this.textLabel.Name = "textLabel"; this.textLabel.Size = new System.Drawing.Size(80, 13); this.textLabel.TabIndex = 45; this.textLabel.Text = "Text Archive #:"; // // openEventsButton // this.openEventsButton.Location = new System.Drawing.Point(133, 28); this.openEventsButton.Name = "openEventsButton"; this.openEventsButton.Size = new System.Drawing.Size(79, 40); this.openEventsButton.TabIndex = 44; this.openEventsButton.Text = "Open &Events"; this.openEventsButton.UseVisualStyleBackColor = true; this.openEventsButton.Click += new System.EventHandler(this.openEventsButton_Click); // // eventLabel // this.eventLabel.AutoSize = true; this.eventLabel.Location = new System.Drawing.Point(12, 20); this.eventLabel.Name = "eventLabel"; this.eventLabel.Size = new System.Drawing.Size(67, 13); this.eventLabel.TabIndex = 43; this.eventLabel.Text = "Event File #:"; // // eventFileUpDown // this.eventFileUpDown.Location = new System.Drawing.Point(14, 39); this.eventFileUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.eventFileUpDown.Name = "eventFileUpDown"; this.eventFileUpDown.Size = new System.Drawing.Size(107, 20); this.eventFileUpDown.TabIndex = 42; this.eventFileUpDown.ValueChanged += new System.EventHandler(this.eventFileUpDown_ValueChanged); // // groupBox4 // this.groupBox4.Controls.Add(this.pasteAreaDataButton); this.groupBox4.Controls.Add(this.copyAreaDataButton); this.groupBox4.Controls.Add(this.pasteMatrixButton); this.groupBox4.Controls.Add(this.openAreaDataButton); this.groupBox4.Controls.Add(this.copyMatrixButton); this.groupBox4.Controls.Add(this.openMatrixButton); this.groupBox4.Controls.Add(this.areaDataLabel); this.groupBox4.Controls.Add(this.areaDataUpDown); this.groupBox4.Controls.Add(this.matrixLabel); this.groupBox4.Controls.Add(this.matrixUpDown); this.groupBox4.Location = new System.Drawing.Point(615, 468); this.groupBox4.Name = "groupBox4"; this.groupBox4.Size = new System.Drawing.Size(285, 136); this.groupBox4.TabIndex = 31; this.groupBox4.TabStop = false; this.groupBox4.Text = "Map matrix && Tileset"; // // pasteAreaDataButton // this.pasteAreaDataButton.Enabled = false; this.pasteAreaDataButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteAreaDataButton.Image"))); this.pasteAreaDataButton.Location = new System.Drawing.Point(239, 87); this.pasteAreaDataButton.Name = "pasteAreaDataButton"; this.pasteAreaDataButton.Size = new System.Drawing.Size(35, 37); this.pasteAreaDataButton.TabIndex = 33; this.pasteAreaDataButton.UseVisualStyleBackColor = true; this.pasteAreaDataButton.Click += new System.EventHandler(this.pasteAreaDataButton_Click); // // copyAreaDataButton // this.copyAreaDataButton.Image = ((System.Drawing.Image)(resources.GetObject("copyAreaDataButton.Image"))); this.copyAreaDataButton.Location = new System.Drawing.Point(201, 87); this.copyAreaDataButton.Name = "copyAreaDataButton"; this.copyAreaDataButton.Size = new System.Drawing.Size(35, 37); this.copyAreaDataButton.TabIndex = 32; this.copyAreaDataButton.UseVisualStyleBackColor = true; this.copyAreaDataButton.Click += new System.EventHandler(this.copyAreaDataButton_Click); // // pasteMatrixButton // this.pasteMatrixButton.Enabled = false; this.pasteMatrixButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteMatrixButton.Image"))); this.pasteMatrixButton.Location = new System.Drawing.Point(239, 29); this.pasteMatrixButton.Name = "pasteMatrixButton"; this.pasteMatrixButton.Size = new System.Drawing.Size(35, 37); this.pasteMatrixButton.TabIndex = 31; this.pasteMatrixButton.UseVisualStyleBackColor = true; this.pasteMatrixButton.Click += new System.EventHandler(this.pasteMatrixButton_Click); // // openAreaDataButton // this.openAreaDataButton.Location = new System.Drawing.Point(118, 85); this.openAreaDataButton.Name = "openAreaDataButton"; this.openAreaDataButton.Size = new System.Drawing.Size(79, 40); this.openAreaDataButton.TabIndex = 28; this.openAreaDataButton.Text = "Open &Area Data"; this.openAreaDataButton.UseVisualStyleBackColor = true; this.openAreaDataButton.Click += new System.EventHandler(this.openAreaDataButton_Click); // // copyMatrixButton // this.copyMatrixButton.Image = ((System.Drawing.Image)(resources.GetObject("copyMatrixButton.Image"))); this.copyMatrixButton.Location = new System.Drawing.Point(201, 29); this.copyMatrixButton.Name = "copyMatrixButton"; this.copyMatrixButton.Size = new System.Drawing.Size(35, 37); this.copyMatrixButton.TabIndex = 30; this.copyMatrixButton.UseVisualStyleBackColor = true; this.copyMatrixButton.Click += new System.EventHandler(this.copyMatrixButton_Click); // // openMatrixButton // this.openMatrixButton.Location = new System.Drawing.Point(118, 28); this.openMatrixButton.Name = "openMatrixButton"; this.openMatrixButton.Size = new System.Drawing.Size(79, 39); this.openMatrixButton.TabIndex = 27; this.openMatrixButton.Text = "Open &Matrix"; this.openMatrixButton.UseVisualStyleBackColor = true; this.openMatrixButton.Click += new System.EventHandler(this.openMatrixButton_Click); // // areaDataLabel // this.areaDataLabel.AutoSize = true; this.areaDataLabel.Location = new System.Drawing.Point(10, 80); this.areaDataLabel.Name = "areaDataLabel"; this.areaDataLabel.Size = new System.Drawing.Size(56, 13); this.areaDataLabel.TabIndex = 27; this.areaDataLabel.Text = "Area data:"; // // areaDataUpDown // this.areaDataUpDown.Location = new System.Drawing.Point(13, 98); this.areaDataUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.areaDataUpDown.Name = "areaDataUpDown"; this.areaDataUpDown.Size = new System.Drawing.Size(93, 20); this.areaDataUpDown.TabIndex = 26; this.areaDataUpDown.ValueChanged += new System.EventHandler(this.areaDataUpDown_ValueChanged); // // matrixLabel // this.matrixLabel.AutoSize = true; this.matrixLabel.Location = new System.Drawing.Point(10, 23); this.matrixLabel.Name = "matrixLabel"; this.matrixLabel.Size = new System.Drawing.Size(53, 13); this.matrixLabel.TabIndex = 25; this.matrixLabel.Text = "Matrix no."; // // matrixUpDown // this.matrixUpDown.Location = new System.Drawing.Point(13, 40); this.matrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.matrixUpDown.Name = "matrixUpDown"; this.matrixUpDown.Size = new System.Drawing.Size(93, 20); this.matrixUpDown.TabIndex = 24; this.matrixUpDown.ValueChanged += new System.EventHandler(this.matrixUpDown_ValueChanged); // // groupBox9 // this.groupBox9.Controls.Add(this.resetButton); this.groupBox9.Controls.Add(this.searchHeaderButton); this.groupBox9.Controls.Add(this.searchLocationTextBox); this.groupBox9.Location = new System.Drawing.Point(13, 12); this.groupBox9.Name = "groupBox9"; this.groupBox9.Size = new System.Drawing.Size(214, 49); this.groupBox9.TabIndex = 29; this.groupBox9.TabStop = false; this.groupBox9.Text = "Search Location Name:"; // // resetButton // this.resetButton.Location = new System.Drawing.Point(161, 17); this.resetButton.Name = "resetButton"; this.resetButton.Size = new System.Drawing.Size(47, 23); this.resetButton.TabIndex = 2; this.resetButton.Text = "Reset"; this.resetButton.UseVisualStyleBackColor = true; this.resetButton.Click += new System.EventHandler(this.resetButton_Click); // // searchHeaderButton // this.searchHeaderButton.Location = new System.Drawing.Point(131, 17); this.searchHeaderButton.Name = "searchHeaderButton"; this.searchHeaderButton.Size = new System.Drawing.Size(29, 23); this.searchHeaderButton.TabIndex = 1; this.searchHeaderButton.Text = "Go"; this.searchHeaderButton.UseVisualStyleBackColor = true; this.searchHeaderButton.Click += new System.EventHandler(this.searchHeaderButton_Click); // // searchLocationTextBox // this.searchLocationTextBox.Location = new System.Drawing.Point(8, 19); this.searchLocationTextBox.Name = "searchLocationTextBox"; this.searchLocationTextBox.Size = new System.Drawing.Size(119, 20); this.searchLocationTextBox.TabIndex = 0; this.searchLocationTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.searchHeaderTextBox_KeyPress); // // copyHeaderButton // this.copyHeaderButton.Image = ((System.Drawing.Image)(resources.GetObject("copyHeaderButton.Image"))); this.copyHeaderButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.copyHeaderButton.Location = new System.Drawing.Point(912, 563); this.copyHeaderButton.Name = "copyHeaderButton"; this.copyHeaderButton.Size = new System.Drawing.Size(74, 40); this.copyHeaderButton.TabIndex = 36; this.copyHeaderButton.Text = "Copy"; this.copyHeaderButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.toolTip1.SetToolTip(this.copyHeaderButton, "Copy entire header"); this.copyHeaderButton.UseVisualStyleBackColor = true; this.copyHeaderButton.Click += new System.EventHandler(this.copyHeaderButton_Click); // // areaIconPictureBox // this.areaIconPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.areaIconPictureBox.Location = new System.Drawing.Point(912, 28); this.areaIconPictureBox.Name = "areaIconPictureBox"; this.areaIconPictureBox.Size = new System.Drawing.Size(256, 55); this.areaIconPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.areaIconPictureBox.TabIndex = 35; this.areaIconPictureBox.TabStop = false; // // areaImageLabel // this.areaImageLabel.AutoSize = true; this.areaImageLabel.Location = new System.Drawing.Point(909, 13); this.areaImageLabel.Name = "areaImageLabel"; this.areaImageLabel.Size = new System.Drawing.Size(52, 13); this.areaImageLabel.TabIndex = 34; this.areaImageLabel.Text = "Area icon"; // // nameGroupBox // this.nameGroupBox.Controls.Add(this.internalNameLenLabel); this.nameGroupBox.Controls.Add(this.pasteLocationNameButton); this.nameGroupBox.Controls.Add(this.copyLocationNameButton); this.nameGroupBox.Controls.Add(this.pasteInternalNameButton); this.nameGroupBox.Controls.Add(this.copyInternalNameButton); this.nameGroupBox.Controls.Add(this.pasteAreaIconButton); this.nameGroupBox.Controls.Add(this.copyAreaIconButton); this.nameGroupBox.Controls.Add(this.pasteAreaSettingsButton); this.nameGroupBox.Controls.Add(this.areaSettingsLabel); this.nameGroupBox.Controls.Add(this.copyAreaSettingsButton); this.nameGroupBox.Controls.Add(this.label3); this.nameGroupBox.Controls.Add(this.label14); this.nameGroupBox.Controls.Add(this.internalNameBox); this.nameGroupBox.Controls.Add(this.label2); this.nameGroupBox.Controls.Add(this.areaIconComboBox); this.nameGroupBox.Controls.Add(this.areaSettingsComboBox); this.nameGroupBox.Controls.Add(this.locationNameComboBox); this.nameGroupBox.Location = new System.Drawing.Point(238, 12); this.nameGroupBox.Name = "nameGroupBox"; this.nameGroupBox.Size = new System.Drawing.Size(562, 140); this.nameGroupBox.TabIndex = 28; this.nameGroupBox.TabStop = false; this.nameGroupBox.Text = "Location Info"; // // internalNameLenLabel // this.internalNameLenLabel.ForeColor = System.Drawing.Color.Green; this.internalNameLenLabel.Location = new System.Drawing.Point(434, 41); this.internalNameLenLabel.Name = "internalNameLenLabel"; this.internalNameLenLabel.Size = new System.Drawing.Size(32, 16); this.internalNameLenLabel.TabIndex = 44; this.internalNameLenLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // pasteLocationNameButton // this.pasteLocationNameButton.Enabled = false; this.pasteLocationNameButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteLocationNameButton.Image"))); this.pasteLocationNameButton.Location = new System.Drawing.Point(215, 32); this.pasteLocationNameButton.Name = "pasteLocationNameButton"; this.pasteLocationNameButton.Size = new System.Drawing.Size(35, 37); this.pasteLocationNameButton.TabIndex = 43; this.pasteLocationNameButton.UseVisualStyleBackColor = true; this.pasteLocationNameButton.Click += new System.EventHandler(this.pasteLocationNameButton_Click); // // copyLocationNameButton // this.copyLocationNameButton.Image = global::DSPRE.Properties.Resources.copyIcon; this.copyLocationNameButton.Location = new System.Drawing.Point(178, 32); this.copyLocationNameButton.Name = "copyLocationNameButton"; this.copyLocationNameButton.Size = new System.Drawing.Size(35, 37); this.copyLocationNameButton.TabIndex = 42; this.copyLocationNameButton.UseVisualStyleBackColor = true; this.copyLocationNameButton.Click += new System.EventHandler(this.copyLocationNameButton_Click); // // pasteInternalNameButton // this.pasteInternalNameButton.Enabled = false; this.pasteInternalNameButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteInternalNameButton.Image"))); this.pasteInternalNameButton.Location = new System.Drawing.Point(511, 31); this.pasteInternalNameButton.Name = "pasteInternalNameButton"; this.pasteInternalNameButton.Size = new System.Drawing.Size(35, 37); this.pasteInternalNameButton.TabIndex = 41; this.pasteInternalNameButton.UseVisualStyleBackColor = true; this.pasteInternalNameButton.Click += new System.EventHandler(this.pasteInternalNameButton_Click); // // copyInternalNameButton // this.copyInternalNameButton.Image = ((System.Drawing.Image)(resources.GetObject("copyInternalNameButton.Image"))); this.copyInternalNameButton.Location = new System.Drawing.Point(474, 31); this.copyInternalNameButton.Name = "copyInternalNameButton"; this.copyInternalNameButton.Size = new System.Drawing.Size(35, 37); this.copyInternalNameButton.TabIndex = 40; this.copyInternalNameButton.UseVisualStyleBackColor = true; this.copyInternalNameButton.Click += new System.EventHandler(this.copyInternalNameButton_Click); // // pasteAreaIconButton // this.pasteAreaIconButton.Enabled = false; this.pasteAreaIconButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteAreaIconButton.Image"))); this.pasteAreaIconButton.Location = new System.Drawing.Point(511, 91); this.pasteAreaIconButton.Name = "pasteAreaIconButton"; this.pasteAreaIconButton.Size = new System.Drawing.Size(35, 37); this.pasteAreaIconButton.TabIndex = 39; this.pasteAreaIconButton.UseVisualStyleBackColor = true; this.pasteAreaIconButton.Click += new System.EventHandler(this.pasteAreaIconButton_Click); // // copyAreaIconButton // this.copyAreaIconButton.Image = ((System.Drawing.Image)(resources.GetObject("copyAreaIconButton.Image"))); this.copyAreaIconButton.Location = new System.Drawing.Point(474, 91); this.copyAreaIconButton.Name = "copyAreaIconButton"; this.copyAreaIconButton.Size = new System.Drawing.Size(35, 37); this.copyAreaIconButton.TabIndex = 38; this.copyAreaIconButton.UseVisualStyleBackColor = true; this.copyAreaIconButton.Click += new System.EventHandler(this.copyAreaIconButton_Click); // // pasteAreaSettingsButton // this.pasteAreaSettingsButton.Enabled = false; this.pasteAreaSettingsButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteAreaSettingsButton.Image"))); this.pasteAreaSettingsButton.Location = new System.Drawing.Point(215, 91); this.pasteAreaSettingsButton.Name = "pasteAreaSettingsButton"; this.pasteAreaSettingsButton.Size = new System.Drawing.Size(35, 37); this.pasteAreaSettingsButton.TabIndex = 37; this.pasteAreaSettingsButton.UseVisualStyleBackColor = true; this.pasteAreaSettingsButton.Click += new System.EventHandler(this.pasteAreaSettingsButton_Click); // // areaSettingsLabel // this.areaSettingsLabel.AutoSize = true; this.areaSettingsLabel.Location = new System.Drawing.Point(11, 86); this.areaSettingsLabel.Name = "areaSettingsLabel"; this.areaSettingsLabel.Size = new System.Drawing.Size(73, 13); this.areaSettingsLabel.TabIndex = 27; this.areaSettingsLabel.Text = "Area Settings:"; // // copyAreaSettingsButton // this.copyAreaSettingsButton.Image = ((System.Drawing.Image)(resources.GetObject("copyAreaSettingsButton.Image"))); this.copyAreaSettingsButton.Location = new System.Drawing.Point(178, 91); this.copyAreaSettingsButton.Name = "copyAreaSettingsButton"; this.copyAreaSettingsButton.Size = new System.Drawing.Size(35, 37); this.copyAreaSettingsButton.TabIndex = 36; this.copyAreaSettingsButton.UseVisualStyleBackColor = true; this.copyAreaSettingsButton.Click += new System.EventHandler(this.copyAreaSettingsButton_Click); // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(11, 24); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(79, 13); this.label3.TabIndex = 28; this.label3.Text = "Location Name"; // // label14 // this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(307, 24); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(71, 13); this.label14.TabIndex = 27; this.label14.Text = "Internal name"; // // internalNameBox // this.internalNameBox.Location = new System.Drawing.Point(310, 40); this.internalNameBox.MaxLength = 16; this.internalNameBox.Name = "internalNameBox"; this.internalNameBox.Size = new System.Drawing.Size(157, 20); this.internalNameBox.TabIndex = 6; this.internalNameBox.TextChanged += new System.EventHandler(this.internalNameBox_TextChanged); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(307, 86); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(55, 13); this.label2.TabIndex = 4; this.label2.Text = "Area icon:"; // // areaIconComboBox // this.areaIconComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.areaIconComboBox.FormattingEnabled = true; this.areaIconComboBox.IntegralHeight = false; this.areaIconComboBox.Location = new System.Drawing.Point(310, 102); this.areaIconComboBox.Name = "areaIconComboBox"; this.areaIconComboBox.Size = new System.Drawing.Size(157, 21); this.areaIconComboBox.TabIndex = 3; this.areaIconComboBox.SelectedIndexChanged += new System.EventHandler(this.areaIconComboBox_SelectedIndexChanged); // // areaSettingsComboBox // this.areaSettingsComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.areaSettingsComboBox.FormattingEnabled = true; this.areaSettingsComboBox.IntegralHeight = false; this.areaSettingsComboBox.Location = new System.Drawing.Point(14, 102); this.areaSettingsComboBox.Name = "areaSettingsComboBox"; this.areaSettingsComboBox.Size = new System.Drawing.Size(157, 21); this.areaSettingsComboBox.TabIndex = 1; this.areaSettingsComboBox.SelectedIndexChanged += new System.EventHandler(this.areaSettingsComboBox_SelectedIndexChanged); // // locationNameComboBox // this.locationNameComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.locationNameComboBox.FormattingEnabled = true; this.locationNameComboBox.Location = new System.Drawing.Point(14, 40); this.locationNameComboBox.Name = "locationNameComboBox"; this.locationNameComboBox.Size = new System.Drawing.Size(157, 21); this.locationNameComboBox.TabIndex = 0; this.locationNameComboBox.SelectedIndexChanged += new System.EventHandler(this.mapNameComboBox_SelectedIndexChanged); // // groupBox2 // this.groupBox2.BackColor = System.Drawing.SystemColors.Window; this.groupBox2.Controls.Add(this.cameraUpDown); this.groupBox2.Controls.Add(this.weatherUpDown); this.groupBox2.Controls.Add(this.musicNightUpDown); this.groupBox2.Controls.Add(this.musicDayUpDown); this.groupBox2.Controls.Add(this.pasteCameraAngleButton); this.groupBox2.Controls.Add(this.copyCameraAngleButton); this.groupBox2.Controls.Add(this.pasteWeatherButton); this.groupBox2.Controls.Add(this.copyWeatherButton); this.groupBox2.Controls.Add(this.pasteMusicNightButton); this.groupBox2.Controls.Add(this.copyMusicNightButton); this.groupBox2.Controls.Add(this.pasteMusicDayButton); this.groupBox2.Controls.Add(this.copyMusicDayButton); this.groupBox2.Controls.Add(this.weatherComboBox); this.groupBox2.Controls.Add(this.musicNightComboBox); this.groupBox2.Controls.Add(this.weatherLabel); this.groupBox2.Controls.Add(this.cameraLabel); this.groupBox2.Controls.Add(this.musicNightLabel); this.groupBox2.Controls.Add(this.cameraComboBox); this.groupBox2.Controls.Add(this.musicDayLabel); this.groupBox2.Controls.Add(this.musicDayComboBox); this.groupBox2.Location = new System.Drawing.Point(238, 157); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(662, 149); this.groupBox2.TabIndex = 29; this.groupBox2.TabStop = false; this.groupBox2.Text = "Appearance && Sound"; // // cameraUpDown // this.cameraUpDown.Location = new System.Drawing.Point(376, 108); this.cameraUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.cameraUpDown.Name = "cameraUpDown"; this.cameraUpDown.Size = new System.Drawing.Size(45, 20); this.cameraUpDown.TabIndex = 41; this.cameraUpDown.ValueChanged += new System.EventHandler(this.cameraUpDown_ValueChanged); // // weatherUpDown // this.weatherUpDown.Location = new System.Drawing.Point(14, 108); this.weatherUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.weatherUpDown.Name = "weatherUpDown"; this.weatherUpDown.Size = new System.Drawing.Size(45, 20); this.weatherUpDown.TabIndex = 40; this.weatherUpDown.ValueChanged += new System.EventHandler(this.weatherUpDown_ValueChanged); // // musicNightUpDown // this.musicNightUpDown.Location = new System.Drawing.Point(376, 40); this.musicNightUpDown.Maximum = new decimal(new int[] { 9999, 0, 0, 0}); this.musicNightUpDown.Name = "musicNightUpDown"; this.musicNightUpDown.Size = new System.Drawing.Size(45, 20); this.musicNightUpDown.TabIndex = 39; this.musicNightUpDown.ValueChanged += new System.EventHandler(this.musicNightUpDown_ValueChanged); // // musicDayUpDown // this.musicDayUpDown.Location = new System.Drawing.Point(14, 41); this.musicDayUpDown.Maximum = new decimal(new int[] { 9999, 0, 0, 0}); this.musicDayUpDown.Name = "musicDayUpDown"; this.musicDayUpDown.Size = new System.Drawing.Size(45, 20); this.musicDayUpDown.TabIndex = 38; this.musicDayUpDown.ValueChanged += new System.EventHandler(this.musicDayUpDown_ValueChanged); // // pasteCameraAngleButton // this.pasteCameraAngleButton.Enabled = false; this.pasteCameraAngleButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteCameraAngleButton.Image"))); this.pasteCameraAngleButton.Location = new System.Drawing.Point(616, 97); this.pasteCameraAngleButton.Name = "pasteCameraAngleButton"; this.pasteCameraAngleButton.Size = new System.Drawing.Size(35, 37); this.pasteCameraAngleButton.TabIndex = 37; this.pasteCameraAngleButton.UseVisualStyleBackColor = true; this.pasteCameraAngleButton.Click += new System.EventHandler(this.pasteCameraAngleButton_Click); // // copyCameraAngleButton // this.copyCameraAngleButton.Image = ((System.Drawing.Image)(resources.GetObject("copyCameraAngleButton.Image"))); this.copyCameraAngleButton.Location = new System.Drawing.Point(578, 97); this.copyCameraAngleButton.Name = "copyCameraAngleButton"; this.copyCameraAngleButton.Size = new System.Drawing.Size(35, 37); this.copyCameraAngleButton.TabIndex = 36; this.copyCameraAngleButton.UseVisualStyleBackColor = true; this.copyCameraAngleButton.Click += new System.EventHandler(this.copyCameraAngleButton_Click); // // pasteWeatherButton // this.pasteWeatherButton.Enabled = false; this.pasteWeatherButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteWeatherButton.Image"))); this.pasteWeatherButton.Location = new System.Drawing.Point(252, 99); this.pasteWeatherButton.Name = "pasteWeatherButton"; this.pasteWeatherButton.Size = new System.Drawing.Size(35, 37); this.pasteWeatherButton.TabIndex = 35; this.pasteWeatherButton.UseVisualStyleBackColor = true; this.pasteWeatherButton.Click += new System.EventHandler(this.pasteWeatherButton_Click); // // copyWeatherButton // this.copyWeatherButton.Image = ((System.Drawing.Image)(resources.GetObject("copyWeatherButton.Image"))); this.copyWeatherButton.Location = new System.Drawing.Point(215, 99); this.copyWeatherButton.Name = "copyWeatherButton"; this.copyWeatherButton.Size = new System.Drawing.Size(35, 37); this.copyWeatherButton.TabIndex = 34; this.copyWeatherButton.UseVisualStyleBackColor = true; this.copyWeatherButton.Click += new System.EventHandler(this.copyWeatherButton_Click); // // pasteMusicNightButton // this.pasteMusicNightButton.Enabled = false; this.pasteMusicNightButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteMusicNightButton.Image"))); this.pasteMusicNightButton.Location = new System.Drawing.Point(616, 31); this.pasteMusicNightButton.Name = "pasteMusicNightButton"; this.pasteMusicNightButton.Size = new System.Drawing.Size(35, 37); this.pasteMusicNightButton.TabIndex = 33; this.pasteMusicNightButton.UseVisualStyleBackColor = true; this.pasteMusicNightButton.Click += new System.EventHandler(this.pasteMusicNightButton_Click); // // copyMusicNightButton // this.copyMusicNightButton.Image = ((System.Drawing.Image)(resources.GetObject("copyMusicNightButton.Image"))); this.copyMusicNightButton.Location = new System.Drawing.Point(578, 31); this.copyMusicNightButton.Name = "copyMusicNightButton"; this.copyMusicNightButton.Size = new System.Drawing.Size(35, 37); this.copyMusicNightButton.TabIndex = 32; this.copyMusicNightButton.UseVisualStyleBackColor = true; this.copyMusicNightButton.Click += new System.EventHandler(this.copyMusicNightButton_Click); // // pasteMusicDayButton // this.pasteMusicDayButton.Enabled = false; this.pasteMusicDayButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteMusicDayButton.Image"))); this.pasteMusicDayButton.Location = new System.Drawing.Point(252, 32); this.pasteMusicDayButton.Name = "pasteMusicDayButton"; this.pasteMusicDayButton.Size = new System.Drawing.Size(35, 37); this.pasteMusicDayButton.TabIndex = 31; this.pasteMusicDayButton.UseVisualStyleBackColor = true; this.pasteMusicDayButton.Click += new System.EventHandler(this.pasteMusicDayButton_Click); // // copyMusicDayButton // this.copyMusicDayButton.Image = ((System.Drawing.Image)(resources.GetObject("copyMusicDayButton.Image"))); this.copyMusicDayButton.Location = new System.Drawing.Point(215, 32); this.copyMusicDayButton.Name = "copyMusicDayButton"; this.copyMusicDayButton.Size = new System.Drawing.Size(35, 37); this.copyMusicDayButton.TabIndex = 30; this.copyMusicDayButton.UseVisualStyleBackColor = true; this.copyMusicDayButton.Click += new System.EventHandler(this.copyMusicDayButton_Click); // // weatherComboBox // this.weatherComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.weatherComboBox.FormattingEnabled = true; this.weatherComboBox.IntegralHeight = false; this.weatherComboBox.Location = new System.Drawing.Point(65, 107); this.weatherComboBox.MaxDropDownItems = 20; this.weatherComboBox.Name = "weatherComboBox"; this.weatherComboBox.Size = new System.Drawing.Size(145, 21); this.weatherComboBox.TabIndex = 26; this.weatherComboBox.SelectedIndexChanged += new System.EventHandler(this.weatherComboBox_SelectedIndexChanged); // // musicNightComboBox // this.musicNightComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.musicNightComboBox.FormattingEnabled = true; this.musicNightComboBox.IntegralHeight = false; this.musicNightComboBox.Location = new System.Drawing.Point(427, 39); this.musicNightComboBox.MaxDropDownItems = 20; this.musicNightComboBox.Name = "musicNightComboBox"; this.musicNightComboBox.Size = new System.Drawing.Size(145, 21); this.musicNightComboBox.TabIndex = 25; this.musicNightComboBox.SelectedIndexChanged += new System.EventHandler(this.musicNightComboBox_SelectedIndexChanged); // // weatherLabel // this.weatherLabel.AutoSize = true; this.weatherLabel.Location = new System.Drawing.Point(11, 88); this.weatherLabel.Name = "weatherLabel"; this.weatherLabel.Size = new System.Drawing.Size(51, 13); this.weatherLabel.TabIndex = 12; this.weatherLabel.Text = "Weather:"; // // cameraLabel // this.cameraLabel.AutoSize = true; this.cameraLabel.Location = new System.Drawing.Point(373, 88); this.cameraLabel.Name = "cameraLabel"; this.cameraLabel.Size = new System.Drawing.Size(76, 13); this.cameraLabel.TabIndex = 10; this.cameraLabel.Text = "Camera Angle:"; // // musicNightLabel // this.musicNightLabel.AutoSize = true; this.musicNightLabel.Location = new System.Drawing.Point(373, 21); this.musicNightLabel.Name = "musicNightLabel"; this.musicNightLabel.Size = new System.Drawing.Size(72, 13); this.musicNightLabel.TabIndex = 8; this.musicNightLabel.Text = "Music (Night):"; // // cameraComboBox // this.cameraComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cameraComboBox.FormattingEnabled = true; this.cameraComboBox.Location = new System.Drawing.Point(427, 107); this.cameraComboBox.Name = "cameraComboBox"; this.cameraComboBox.Size = new System.Drawing.Size(145, 21); this.cameraComboBox.TabIndex = 9; this.cameraComboBox.SelectedIndexChanged += new System.EventHandler(this.cameraComboBox_SelectedIndexChanged); // // musicDayLabel // this.musicDayLabel.AutoSize = true; this.musicDayLabel.Location = new System.Drawing.Point(11, 22); this.musicDayLabel.Name = "musicDayLabel"; this.musicDayLabel.Size = new System.Drawing.Size(66, 13); this.musicDayLabel.TabIndex = 6; this.musicDayLabel.Text = "Music (Day):"; // // musicDayComboBox // this.musicDayComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.musicDayComboBox.FormattingEnabled = true; this.musicDayComboBox.IntegralHeight = false; this.musicDayComboBox.Location = new System.Drawing.Point(65, 40); this.musicDayComboBox.MaxDropDownItems = 20; this.musicDayComboBox.Name = "musicDayComboBox"; this.musicDayComboBox.Size = new System.Drawing.Size(145, 21); this.musicDayComboBox.TabIndex = 0; this.musicDayComboBox.SelectedIndexChanged += new System.EventHandler(this.musicDayComboBox_SelectedIndexChanged); // // groupBox3 // this.groupBox3.Controls.Add(this.pasteLevelScriptsButton); this.groupBox3.Controls.Add(this.copyLevelScriptsButton); this.groupBox3.Controls.Add(this.pasteScriptsButton); this.groupBox3.Controls.Add(this.copyScriptsButton); this.groupBox3.Controls.Add(this.levelScriptUpDown); this.groupBox3.Controls.Add(this.openLevelScriptButton); this.groupBox3.Controls.Add(this.levelScriptLabel); this.groupBox3.Controls.Add(this.openScriptButton); this.groupBox3.Controls.Add(this.scriptLabel); this.groupBox3.Controls.Add(this.scriptFileUpDown); this.groupBox3.Location = new System.Drawing.Point(238, 310); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(662, 76); this.groupBox3.TabIndex = 30; this.groupBox3.TabStop = false; this.groupBox3.Text = "Scripts"; // // pasteLevelScriptsButton // this.pasteLevelScriptsButton.Enabled = false; this.pasteLevelScriptsButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteLevelScriptsButton.Image"))); this.pasteLevelScriptsButton.Location = new System.Drawing.Point(616, 30); this.pasteLevelScriptsButton.Name = "pasteLevelScriptsButton"; this.pasteLevelScriptsButton.Size = new System.Drawing.Size(35, 37); this.pasteLevelScriptsButton.TabIndex = 29; this.pasteLevelScriptsButton.UseVisualStyleBackColor = true; this.pasteLevelScriptsButton.Click += new System.EventHandler(this.pasteLevelScriptsButton_Click); // // copyLevelScriptsButton // this.copyLevelScriptsButton.Image = ((System.Drawing.Image)(resources.GetObject("copyLevelScriptsButton.Image"))); this.copyLevelScriptsButton.Location = new System.Drawing.Point(578, 30); this.copyLevelScriptsButton.Name = "copyLevelScriptsButton"; this.copyLevelScriptsButton.Size = new System.Drawing.Size(35, 37); this.copyLevelScriptsButton.TabIndex = 28; this.copyLevelScriptsButton.UseVisualStyleBackColor = true; this.copyLevelScriptsButton.Click += new System.EventHandler(this.copyLevelScriptsButton_Click); // // pasteScriptsButton // this.pasteScriptsButton.Enabled = false; this.pasteScriptsButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteScriptsButton.Image"))); this.pasteScriptsButton.Location = new System.Drawing.Point(252, 30); this.pasteScriptsButton.Name = "pasteScriptsButton"; this.pasteScriptsButton.Size = new System.Drawing.Size(35, 37); this.pasteScriptsButton.TabIndex = 27; this.pasteScriptsButton.UseVisualStyleBackColor = true; this.pasteScriptsButton.Click += new System.EventHandler(this.pasteScriptsButton_Click); // // copyScriptsButton // this.copyScriptsButton.Image = ((System.Drawing.Image)(resources.GetObject("copyScriptsButton.Image"))); this.copyScriptsButton.Location = new System.Drawing.Point(215, 30); this.copyScriptsButton.Name = "copyScriptsButton"; this.copyScriptsButton.Size = new System.Drawing.Size(35, 37); this.copyScriptsButton.TabIndex = 26; this.copyScriptsButton.UseVisualStyleBackColor = true; this.copyScriptsButton.Click += new System.EventHandler(this.copyScriptsButton_Click); // // levelScriptUpDown // this.levelScriptUpDown.Location = new System.Drawing.Point(377, 39); this.levelScriptUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.levelScriptUpDown.Name = "levelScriptUpDown"; this.levelScriptUpDown.Size = new System.Drawing.Size(107, 20); this.levelScriptUpDown.TabIndex = 25; this.levelScriptUpDown.ValueChanged += new System.EventHandler(this.levelScriptUpDown_ValueChanged); // // openLevelScriptButton // this.openLevelScriptButton.Location = new System.Drawing.Point(495, 28); this.openLevelScriptButton.Name = "openLevelScriptButton"; this.openLevelScriptButton.Size = new System.Drawing.Size(79, 40); this.openLevelScriptButton.TabIndex = 17; this.openLevelScriptButton.Text = "Open Level Scripts"; this.openLevelScriptButton.UseVisualStyleBackColor = true; this.openLevelScriptButton.Click += new System.EventHandler(this.openLevelScriptButton_Click); // // levelScriptLabel // this.levelScriptLabel.AutoSize = true; this.levelScriptLabel.Location = new System.Drawing.Point(374, 21); this.levelScriptLabel.Name = "levelScriptLabel"; this.levelScriptLabel.Size = new System.Drawing.Size(95, 13); this.levelScriptLabel.TabIndex = 16; this.levelScriptLabel.Text = "Level Script File #:"; // // openScriptButton // this.openScriptButton.Location = new System.Drawing.Point(133, 28); this.openScriptButton.Name = "openScriptButton"; this.openScriptButton.Size = new System.Drawing.Size(79, 40); this.openScriptButton.TabIndex = 14; this.openScriptButton.Text = "Open &Scripts"; this.openScriptButton.UseVisualStyleBackColor = true; this.openScriptButton.Click += new System.EventHandler(this.openScriptButton_Click); // // scriptLabel // this.scriptLabel.AutoSize = true; this.scriptLabel.Location = new System.Drawing.Point(12, 21); this.scriptLabel.Name = "scriptLabel"; this.scriptLabel.Size = new System.Drawing.Size(66, 13); this.scriptLabel.TabIndex = 13; this.scriptLabel.Text = "Script File #:"; // // scriptFileUpDown // this.scriptFileUpDown.Location = new System.Drawing.Point(14, 39); this.scriptFileUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.scriptFileUpDown.Name = "scriptFileUpDown"; this.scriptFileUpDown.Size = new System.Drawing.Size(107, 20); this.scriptFileUpDown.TabIndex = 0; this.scriptFileUpDown.ValueChanged += new System.EventHandler(this.scriptFileUpDown_ValueChanged); // // headerListBox // this.headerListBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.headerListBox.FormattingEnabled = true; this.headerListBox.ItemHeight = 15; this.headerListBox.Location = new System.Drawing.Point(13, 67); this.headerListBox.Name = "headerListBox"; this.headerListBox.Size = new System.Drawing.Size(214, 469); this.headerListBox.TabIndex = 2; this.headerListBox.SelectedValueChanged += new System.EventHandler(this.headerListBox_SelectedValueChanged); this.headerListBox.Leave += new System.EventHandler(this.headerListBox_Leave); // // saveHeaderButton // this.saveHeaderButton.Image = global::DSPRE.Properties.Resources.save_rom; this.saveHeaderButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveHeaderButton.Location = new System.Drawing.Point(1072, 517); this.saveHeaderButton.Name = "saveHeaderButton"; this.saveHeaderButton.Size = new System.Drawing.Size(96, 86); this.saveHeaderButton.TabIndex = 33; this.saveHeaderButton.Text = "Save &This Header"; this.saveHeaderButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveHeaderButton.UseVisualStyleBackColor = true; this.saveHeaderButton.Click += new System.EventHandler(this.saveHeaderButton_Click); // // flagsGroupBox // this.flagsGroupBox.Controls.Add(this.followModeComboBox); this.flagsGroupBox.Controls.Add(this.johtoRadioButton); this.flagsGroupBox.Controls.Add(this.kantoRadioButton); this.flagsGroupBox.Controls.Add(this.followModeLabel); this.flagsGroupBox.Controls.Add(this.pasteMapSettingsButton); this.flagsGroupBox.Controls.Add(this.battleBackgroundLabel); this.flagsGroupBox.Controls.Add(this.copyFlagsButton); this.flagsGroupBox.Controls.Add(this.battleBackgroundUpDown); this.flagsGroupBox.Controls.Add(this.flag3CheckBox); this.flagsGroupBox.Controls.Add(this.flag2CheckBox); this.flagsGroupBox.Controls.Add(this.flag1CheckBox); this.flagsGroupBox.Controls.Add(this.flag0CheckBox); this.flagsGroupBox.Controls.Add(this.flag6CheckBox); this.flagsGroupBox.Controls.Add(this.flag5CheckBox); this.flagsGroupBox.Controls.Add(this.flag4CheckBox); this.flagsGroupBox.Location = new System.Drawing.Point(328, 468); this.flagsGroupBox.Name = "flagsGroupBox"; this.flagsGroupBox.Size = new System.Drawing.Size(281, 136); this.flagsGroupBox.TabIndex = 32; this.flagsGroupBox.TabStop = false; this.flagsGroupBox.Text = "Map Settings"; // // followModeComboBox // this.followModeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.followModeComboBox.FormattingEnabled = true; this.followModeComboBox.IntegralHeight = false; this.followModeComboBox.Items.AddRange(new object[] { "Unallowed", "Small only", "All"}); this.followModeComboBox.Location = new System.Drawing.Point(153, 29); this.followModeComboBox.MaxDropDownItems = 20; this.followModeComboBox.Name = "followModeComboBox"; this.followModeComboBox.Size = new System.Drawing.Size(76, 21); this.followModeComboBox.TabIndex = 57; this.followModeComboBox.Visible = false; this.followModeComboBox.SelectedIndexChanged += new System.EventHandler(this.followModeComboBox_SelectedIndexChanged); // // johtoRadioButton // this.johtoRadioButton.AutoSize = true; this.johtoRadioButton.Location = new System.Drawing.Point(148, 105); this.johtoRadioButton.Name = "johtoRadioButton"; this.johtoRadioButton.Size = new System.Drawing.Size(51, 17); this.johtoRadioButton.TabIndex = 60; this.johtoRadioButton.TabStop = true; this.johtoRadioButton.Text = "Johto"; this.johtoRadioButton.UseVisualStyleBackColor = true; this.johtoRadioButton.Visible = false; // // kantoRadioButton // this.kantoRadioButton.AutoSize = true; this.kantoRadioButton.Location = new System.Drawing.Point(92, 105); this.kantoRadioButton.Name = "kantoRadioButton"; this.kantoRadioButton.Size = new System.Drawing.Size(53, 17); this.kantoRadioButton.TabIndex = 59; this.kantoRadioButton.TabStop = true; this.kantoRadioButton.Text = "Kanto"; this.kantoRadioButton.UseVisualStyleBackColor = true; this.kantoRadioButton.Visible = false; this.kantoRadioButton.CheckedChanged += new System.EventHandler(this.kantoRadioButton_CheckedChanged); // // followModeLabel // this.followModeLabel.AutoSize = true; this.followModeLabel.Location = new System.Drawing.Point(150, 13); this.followModeLabel.Name = "followModeLabel"; this.followModeLabel.Size = new System.Drawing.Size(102, 13); this.followModeLabel.TabIndex = 58; this.followModeLabel.Text = "Following Pokemon:"; this.followModeLabel.Visible = false; // // pasteMapSettingsButton // this.pasteMapSettingsButton.Enabled = false; this.pasteMapSettingsButton.Image = ((System.Drawing.Image)(resources.GetObject("pasteMapSettingsButton.Image"))); this.pasteMapSettingsButton.Location = new System.Drawing.Point(239, 74); this.pasteMapSettingsButton.Name = "pasteMapSettingsButton"; this.pasteMapSettingsButton.Size = new System.Drawing.Size(35, 37); this.pasteMapSettingsButton.TabIndex = 52; this.pasteMapSettingsButton.UseVisualStyleBackColor = true; this.pasteMapSettingsButton.Click += new System.EventHandler(this.pasteMapSettingsButton_Click); // // battleBackgroundLabel // this.battleBackgroundLabel.AutoSize = true; this.battleBackgroundLabel.Location = new System.Drawing.Point(151, 58); this.battleBackgroundLabel.Name = "battleBackgroundLabel"; this.battleBackgroundLabel.Size = new System.Drawing.Size(52, 13); this.battleBackgroundLabel.TabIndex = 37; this.battleBackgroundLabel.Text = "Battle BG"; // // copyFlagsButton // this.copyFlagsButton.Image = ((System.Drawing.Image)(resources.GetObject("copyFlagsButton.Image"))); this.copyFlagsButton.Location = new System.Drawing.Point(239, 31); this.copyFlagsButton.Name = "copyFlagsButton"; this.copyFlagsButton.Size = new System.Drawing.Size(35, 37); this.copyFlagsButton.TabIndex = 53; this.copyFlagsButton.UseVisualStyleBackColor = true; this.copyFlagsButton.Click += new System.EventHandler(this.copyMapSettingsButton_Click); // // battleBackgroundUpDown // this.battleBackgroundUpDown.Location = new System.Drawing.Point(154, 73); this.battleBackgroundUpDown.Maximum = new decimal(new int[] { 31, 0, 0, 0}); this.battleBackgroundUpDown.Name = "battleBackgroundUpDown"; this.battleBackgroundUpDown.Size = new System.Drawing.Size(75, 20); this.battleBackgroundUpDown.TabIndex = 36; this.battleBackgroundUpDown.ValueChanged += new System.EventHandler(this.battleBackgroundUpDown_ValueChanged); // // flag3CheckBox // this.flag3CheckBox.AutoSize = true; this.flag3CheckBox.Location = new System.Drawing.Point(11, 26); this.flag3CheckBox.Name = "flag3CheckBox"; this.flag3CheckBox.Size = new System.Drawing.Size(39, 17); this.flag3CheckBox.TabIndex = 28; this.flag3CheckBox.Text = "Fly"; this.flag3CheckBox.UseVisualStyleBackColor = true; this.flag3CheckBox.CheckedChanged += new System.EventHandler(this.headerFlagsCheckBoxes_CheckedChanged); // // flag2CheckBox // this.flag2CheckBox.AutoSize = true; this.flag2CheckBox.Location = new System.Drawing.Point(11, 53); this.flag2CheckBox.Name = "flag2CheckBox"; this.flag2CheckBox.Size = new System.Drawing.Size(76, 17); this.flag2CheckBox.TabIndex = 29; this.flag2CheckBox.Text = "Esc. Rope"; this.flag2CheckBox.UseVisualStyleBackColor = true; this.flag2CheckBox.CheckedChanged += new System.EventHandler(this.headerFlagsCheckBoxes_CheckedChanged); // // flag1CheckBox // this.flag1CheckBox.AutoSize = true; this.flag1CheckBox.Location = new System.Drawing.Point(11, 79); this.flag1CheckBox.Name = "flag1CheckBox"; this.flag1CheckBox.Size = new System.Drawing.Size(46, 17); this.flag1CheckBox.TabIndex = 30; this.flag1CheckBox.Text = "Unused"; this.flag1CheckBox.UseVisualStyleBackColor = true; this.flag1CheckBox.CheckedChanged += new System.EventHandler(this.headerFlagsCheckBoxes_CheckedChanged); // // flag0CheckBox // this.flag0CheckBox.AutoSize = true; this.flag0CheckBox.Location = new System.Drawing.Point(11, 105); this.flag0CheckBox.Name = "flag0CheckBox"; this.flag0CheckBox.Size = new System.Drawing.Size(60, 17); this.flag0CheckBox.TabIndex = 31; this.flag0CheckBox.Text = "Bicycle"; this.flag0CheckBox.UseVisualStyleBackColor = true; this.flag0CheckBox.CheckedChanged += new System.EventHandler(this.headerFlagsCheckBoxes_CheckedChanged); // // flag6CheckBox // this.flag6CheckBox.AutoSize = true; this.flag6CheckBox.Location = new System.Drawing.Point(92, 28); this.flag6CheckBox.Name = "Radio"; this.flag6CheckBox.Size = new System.Drawing.Size(15, 14); this.flag6CheckBox.TabIndex = 35; this.flag6CheckBox.UseVisualStyleBackColor = true; this.flag6CheckBox.Visible = false; this.flag6CheckBox.CheckedChanged += new System.EventHandler(this.headerFlagsCheckBoxes_CheckedChanged); // // flag5CheckBox // this.flag5CheckBox.AutoSize = true; this.flag5CheckBox.Location = new System.Drawing.Point(92, 54); this.flag5CheckBox.Name = "Inbound Calls"; this.flag5CheckBox.Size = new System.Drawing.Size(15, 14); this.flag5CheckBox.TabIndex = 32; this.flag5CheckBox.UseVisualStyleBackColor = true; this.flag5CheckBox.Visible = false; this.flag5CheckBox.CheckedChanged += new System.EventHandler(this.headerFlagsCheckBoxes_CheckedChanged); // // flag4CheckBox // this.flag4CheckBox.AutoSize = true; this.flag4CheckBox.Location = new System.Drawing.Point(92, 80); this.flag4CheckBox.Name = "Outbound Calls"; this.flag4CheckBox.Size = new System.Drawing.Size(15, 14); this.flag4CheckBox.TabIndex = 33; this.flag4CheckBox.UseVisualStyleBackColor = true; this.flag4CheckBox.Visible = false; this.flag4CheckBox.CheckedChanged += new System.EventHandler(this.headerFlagsCheckBoxes_CheckedChanged); // // cameraPicLabel // this.cameraPicLabel.AutoSize = true; this.cameraPicLabel.Location = new System.Drawing.Point(909, 304); this.cameraPicLabel.Name = "cameraPicLabel"; this.cameraPicLabel.Size = new System.Drawing.Size(72, 13); this.cameraPicLabel.TabIndex = 3; this.cameraPicLabel.Text = "Camera angle"; // // cameraPictureBox // this.cameraPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.cameraPictureBox.Location = new System.Drawing.Point(912, 320); this.cameraPictureBox.Name = "cameraPictureBox"; this.cameraPictureBox.Size = new System.Drawing.Size(256, 192); this.cameraPictureBox.TabIndex = 2; this.cameraPictureBox.TabStop = false; // // weatherPicLabel // this.weatherPicLabel.AutoSize = true; this.weatherPicLabel.Location = new System.Drawing.Point(909, 90); this.weatherPicLabel.Name = "weatherPicLabel"; this.weatherPicLabel.Size = new System.Drawing.Size(48, 13); this.weatherPicLabel.TabIndex = 1; this.weatherPicLabel.Text = "Weather"; // // weatherPictureBox // this.weatherPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.weatherPictureBox.Location = new System.Drawing.Point(912, 106); this.weatherPictureBox.Name = "weatherPictureBox"; this.weatherPictureBox.Size = new System.Drawing.Size(256, 192); this.weatherPictureBox.TabIndex = 0; this.weatherPictureBox.TabStop = false; // // matrixEditorTabPage // this.matrixEditorTabPage.BackColor = System.Drawing.SystemColors.Window; this.matrixEditorTabPage.Controls.Add(this.setSpawnPointButton); this.matrixEditorTabPage.Controls.Add(this.saveMatrixButton); this.matrixEditorTabPage.Controls.Add(this.locateCurrentMatrixFile); this.matrixEditorTabPage.Controls.Add(this.resetColorTableButton); this.matrixEditorTabPage.Controls.Add(this.importColorTableButton); this.matrixEditorTabPage.Controls.Add(this.importMatrixButton); this.matrixEditorTabPage.Controls.Add(this.exportMatrixButton); this.matrixEditorTabPage.Controls.Add(this.removeMatrixButton); this.matrixEditorTabPage.Controls.Add(this.addMatrixButton); this.matrixEditorTabPage.Controls.Add(this.removeHeightsButton); this.matrixEditorTabPage.Controls.Add(this.removeHeadersButton); this.matrixEditorTabPage.Controls.Add(this.addHeightsButton); this.matrixEditorTabPage.Controls.Add(this.addHeadersButton); this.matrixEditorTabPage.Controls.Add(this.labelMatrices); this.matrixEditorTabPage.Controls.Add(this.matrixNameLabel); this.matrixEditorTabPage.Controls.Add(this.matrixTabControl); this.matrixEditorTabPage.Controls.Add(this.matrixNameTextBox); this.matrixEditorTabPage.Controls.Add(this.heightUpDown); this.matrixEditorTabPage.Controls.Add(this.widthUpDown); this.matrixEditorTabPage.Controls.Add(this.widthLabel); this.matrixEditorTabPage.Controls.Add(this.selectMatrixComboBox); this.matrixEditorTabPage.ImageIndex = 1; this.matrixEditorTabPage.Location = new System.Drawing.Point(4, 23); this.matrixEditorTabPage.Name = "matrixEditorTabPage"; this.matrixEditorTabPage.Padding = new System.Windows.Forms.Padding(3); this.matrixEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.matrixEditorTabPage.TabIndex = 1; this.matrixEditorTabPage.Text = "Matrix Editor"; // // setSpawnPointButton // this.setSpawnPointButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.setSpawnPointButton.Image = global::DSPRE.Properties.Resources.spawnCoordsMatrixeditorIcon; this.setSpawnPointButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.setSpawnPointButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.setSpawnPointButton.Location = new System.Drawing.Point(11, -73); this.setSpawnPointButton.Name = "setSpawnPointButton"; this.setSpawnPointButton.Size = new System.Drawing.Size(117, 43); this.setSpawnPointButton.TabIndex = 35; this.setSpawnPointButton.Text = "Set Spawn\r\nto Selection"; this.setSpawnPointButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.toolTip1.SetToolTip(this.setSpawnPointButton, "Sets the current matrix cell as the player\'s Spawn Point"); this.setSpawnPointButton.UseVisualStyleBackColor = true; this.setSpawnPointButton.Click += new System.EventHandler(this.setSpawnPointButton_Click); // // saveMatrixButton // this.saveMatrixButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.saveMatrixButton.Image = global::DSPRE.Properties.Resources.save_rom; this.saveMatrixButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveMatrixButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.saveMatrixButton.Location = new System.Drawing.Point(11, 589); this.saveMatrixButton.Name = "saveMatrixButton"; this.saveMatrixButton.Size = new System.Drawing.Size(117, 43); this.saveMatrixButton.TabIndex = 34; this.saveMatrixButton.Text = "Save Matrix"; this.saveMatrixButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveMatrixButton.UseVisualStyleBackColor = true; this.saveMatrixButton.Click += new System.EventHandler(this.saveMatrixButton_Click); // // locateCurrentMatrixFile // this.locateCurrentMatrixFile.Image = global::DSPRE.Properties.Resources.open_file; this.locateCurrentMatrixFile.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.locateCurrentMatrixFile.Location = new System.Drawing.Point(50, 232); this.locateCurrentMatrixFile.Name = "locateCurrentMatrixFile"; this.locateCurrentMatrixFile.Size = new System.Drawing.Size(41, 38); this.locateCurrentMatrixFile.TabIndex = 33; this.locateCurrentMatrixFile.UseVisualStyleBackColor = true; this.locateCurrentMatrixFile.Click += new System.EventHandler(this.locateCurrentMatrixFile_Click); // // resetColorTableButton // this.resetColorTableButton.Image = global::DSPRE.Properties.Resources.resetColorTable; this.resetColorTableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.resetColorTableButton.Location = new System.Drawing.Point(11, 451); this.resetColorTableButton.Name = "resetColorTableButton"; this.resetColorTableButton.Size = new System.Drawing.Size(117, 32); this.resetColorTableButton.TabIndex = 31; this.resetColorTableButton.Text = "Reset Color Table"; this.resetColorTableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.resetColorTableButton.UseVisualStyleBackColor = true; this.resetColorTableButton.Click += new System.EventHandler(this.resetColorTableButton_Click); // // importColorTableButton // this.importColorTableButton.Image = global::DSPRE.Properties.Resources.loadColorTable; this.importColorTableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importColorTableButton.Location = new System.Drawing.Point(11, 484); this.importColorTableButton.Name = "importColorTableButton"; this.importColorTableButton.Size = new System.Drawing.Size(117, 32); this.importColorTableButton.TabIndex = 30; this.importColorTableButton.Text = "Import Color Table"; this.importColorTableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importColorTableButton.UseVisualStyleBackColor = true; this.importColorTableButton.Click += new System.EventHandler(this.importColorTableButton_Click); // // importMatrixButton // this.importMatrixButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importMatrixButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importMatrixButton.Location = new System.Drawing.Point(11, 152); this.importMatrixButton.Name = "importMatrixButton"; this.importMatrixButton.Size = new System.Drawing.Size(117, 29); this.importMatrixButton.TabIndex = 29; this.importMatrixButton.Text = "Replace Matrix"; this.importMatrixButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importMatrixButton.UseVisualStyleBackColor = true; this.importMatrixButton.Click += new System.EventHandler(this.importMatrixButton_Click); // // exportMatrixButton // this.exportMatrixButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportMatrixButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportMatrixButton.Location = new System.Drawing.Point(11, 122); this.exportMatrixButton.Name = "exportMatrixButton"; this.exportMatrixButton.Size = new System.Drawing.Size(117, 29); this.exportMatrixButton.TabIndex = 28; this.exportMatrixButton.Text = "Export Matrix"; this.exportMatrixButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportMatrixButton.UseVisualStyleBackColor = true; this.exportMatrixButton.Click += new System.EventHandler(this.exportMatrixButton_Click); // // removeMatrixButton // this.removeMatrixButton.Image = ((System.Drawing.Image)(resources.GetObject("removeMatrixButton.Image"))); this.removeMatrixButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeMatrixButton.Location = new System.Drawing.Point(64, 183); this.removeMatrixButton.Name = "removeMatrixButton"; this.removeMatrixButton.Size = new System.Drawing.Size(64, 35); this.removeMatrixButton.TabIndex = 27; this.removeMatrixButton.Text = "Delete Last"; this.removeMatrixButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeMatrixButton.UseVisualStyleBackColor = true; this.removeMatrixButton.Click += new System.EventHandler(this.removeMatrixButton_Click); // // addMatrixButton // this.addMatrixButton.Image = ((System.Drawing.Image)(resources.GetObject("addMatrixButton.Image"))); this.addMatrixButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addMatrixButton.Location = new System.Drawing.Point(11, 183); this.addMatrixButton.Name = "addMatrixButton"; this.addMatrixButton.Size = new System.Drawing.Size(51, 35); this.addMatrixButton.TabIndex = 2; this.addMatrixButton.Text = "Add"; this.addMatrixButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addMatrixButton.UseVisualStyleBackColor = true; this.addMatrixButton.Click += new System.EventHandler(this.addMatrixButton_Click); // // removeHeightsButton // this.removeHeightsButton.Image = ((System.Drawing.Image)(resources.GetObject("removeHeightsButton.Image"))); this.removeHeightsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeHeightsButton.Location = new System.Drawing.Point(11, 403); this.removeHeightsButton.Name = "removeHeightsButton"; this.removeHeightsButton.Size = new System.Drawing.Size(117, 35); this.removeHeightsButton.TabIndex = 26; this.removeHeightsButton.Text = "Remove Heights"; this.removeHeightsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeHeightsButton.UseVisualStyleBackColor = true; this.removeHeightsButton.Click += new System.EventHandler(this.removeHeightsButton_Click); // // removeHeadersButton // this.removeHeadersButton.Image = ((System.Drawing.Image)(resources.GetObject("removeHeadersButton.Image"))); this.removeHeadersButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeHeadersButton.Location = new System.Drawing.Point(11, 319); this.removeHeadersButton.Name = "removeHeadersButton"; this.removeHeadersButton.Size = new System.Drawing.Size(117, 35); this.removeHeadersButton.TabIndex = 25; this.removeHeadersButton.Text = "Remove Headers"; this.removeHeadersButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeHeadersButton.UseVisualStyleBackColor = true; this.removeHeadersButton.Click += new System.EventHandler(this.removeHeadersButton_Click); // // addHeightsButton // this.addHeightsButton.Image = ((System.Drawing.Image)(resources.GetObject("addHeightsButton.Image"))); this.addHeightsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addHeightsButton.Location = new System.Drawing.Point(11, 367); this.addHeightsButton.Name = "addHeightsButton"; this.addHeightsButton.Size = new System.Drawing.Size(117, 35); this.addHeightsButton.TabIndex = 24; this.addHeightsButton.Text = "Add Heights Tab"; this.addHeightsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addHeightsButton.UseVisualStyleBackColor = true; this.addHeightsButton.Click += new System.EventHandler(this.addHeightsButton_Click); // // addHeadersButton // this.addHeadersButton.Image = ((System.Drawing.Image)(resources.GetObject("addHeadersButton.Image"))); this.addHeadersButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addHeadersButton.Location = new System.Drawing.Point(11, 283); this.addHeadersButton.Name = "addHeadersButton"; this.addHeadersButton.Size = new System.Drawing.Size(117, 35); this.addHeadersButton.TabIndex = 23; this.addHeadersButton.Text = "Add Header Tab"; this.addHeadersButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addHeadersButton.UseVisualStyleBackColor = true; this.addHeadersButton.Click += new System.EventHandler(this.addHeaderSectionButton_Click); // // labelMatrices // this.labelMatrices.AutoSize = true; this.labelMatrices.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.labelMatrices.Location = new System.Drawing.Point(9, 11); this.labelMatrices.Name = "labelMatrices"; this.labelMatrices.Size = new System.Drawing.Size(47, 13); this.labelMatrices.TabIndex = 21; this.labelMatrices.Text = "Matrices"; // // matrixNameLabel // this.matrixNameLabel.AutoSize = true; this.matrixNameLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.matrixNameLabel.Location = new System.Drawing.Point(10, 55); this.matrixNameLabel.Name = "matrixNameLabel"; this.matrixNameLabel.Size = new System.Drawing.Size(64, 13); this.matrixNameLabel.TabIndex = 20; this.matrixNameLabel.Text = "Matrix name"; // // matrixTabControl // this.matrixTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.matrixTabControl.Controls.Add(this.headersTabPage); this.matrixTabControl.Controls.Add(this.heightsTabPage); this.matrixTabControl.Controls.Add(this.mapFilesTabPage); this.matrixTabControl.Location = new System.Drawing.Point(139, 11); this.matrixTabControl.MaximumSize = new System.Drawing.Size(1185, 675); this.matrixTabControl.MinimumSize = new System.Drawing.Size(1000, 625); this.matrixTabControl.Multiline = true; this.matrixTabControl.Name = "matrixTabControl"; this.matrixTabControl.SelectedIndex = 0; this.matrixTabControl.Size = new System.Drawing.Size(1000, 625); this.matrixTabControl.TabIndex = 18; // // headersTabPage // this.headersTabPage.Controls.Add(this.headersGridView); this.headersTabPage.Location = new System.Drawing.Point(4, 22); this.headersTabPage.Name = "headersTabPage"; this.headersTabPage.Padding = new System.Windows.Forms.Padding(3); this.headersTabPage.Size = new System.Drawing.Size(992, 599); this.headersTabPage.TabIndex = 1; this.headersTabPage.Text = "Map Headers"; this.headersTabPage.UseVisualStyleBackColor = true; // // headersGridView // this.headersGridView.AllowUserToAddRows = false; this.headersGridView.AllowUserToDeleteRows = false; this.headersGridView.AllowUserToResizeColumns = false; this.headersGridView.AllowUserToResizeRows = false; this.headersGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; dataGridViewCellStyle17.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); dataGridViewCellStyle17.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); dataGridViewCellStyle17.ForeColor = System.Drawing.SystemColors.Info; dataGridViewCellStyle17.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle17.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.headersGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle17; this.headersGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle18.BackColor = System.Drawing.SystemColors.Window; dataGridViewCellStyle18.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); dataGridViewCellStyle18.ForeColor = System.Drawing.SystemColors.ControlText; dataGridViewCellStyle18.Format = "D4"; dataGridViewCellStyle18.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle18.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle18.WrapMode = System.Windows.Forms.DataGridViewTriState.False; this.headersGridView.DefaultCellStyle = dataGridViewCellStyle18; this.headersGridView.Location = new System.Drawing.Point(0, 0); this.headersGridView.MultiSelect = false; this.headersGridView.Name = "headersGridView"; dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle19.BackColor = System.Drawing.SystemColors.Control; dataGridViewCellStyle19.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F); dataGridViewCellStyle19.ForeColor = System.Drawing.SystemColors.WindowText; dataGridViewCellStyle19.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle19.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle19.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.headersGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle19; this.headersGridView.RowHeadersWidth = 50; this.headersGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle20.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.headersGridView.RowsDefaultCellStyle = dataGridViewCellStyle20; this.headersGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.headersGridView.RowTemplate.Height = 18; this.headersGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False; this.headersGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; this.headersGridView.ShowCellErrors = false; this.headersGridView.Size = new System.Drawing.Size(1032, 576); this.headersGridView.TabIndex = 1; this.headersGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.headersGridView_CellFormatting); this.headersGridView.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.headersGridView_CellMouseDoubleClick); this.headersGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.headersGridView_CellValueChanged); this.headersGridView.SelectionChanged += new System.EventHandler(this.headersGridView_SelectionChanged); // // heightsTabPage // this.heightsTabPage.Controls.Add(this.heightsGridView); this.heightsTabPage.Location = new System.Drawing.Point(4, 22); this.heightsTabPage.Name = "heightsTabPage"; this.heightsTabPage.Size = new System.Drawing.Size(992, 599); this.heightsTabPage.TabIndex = 2; this.heightsTabPage.Text = "Map Heights"; this.heightsTabPage.UseVisualStyleBackColor = true; // // heightsGridView // this.heightsGridView.AllowUserToAddRows = false; this.heightsGridView.AllowUserToDeleteRows = false; this.heightsGridView.AllowUserToResizeColumns = false; this.heightsGridView.AllowUserToResizeRows = false; dataGridViewCellStyle21.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.heightsGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle21; this.heightsGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; dataGridViewCellStyle22.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle22.BackColor = System.Drawing.SystemColors.Control; dataGridViewCellStyle22.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F); dataGridViewCellStyle22.ForeColor = System.Drawing.SystemColors.WindowText; dataGridViewCellStyle22.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle22.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle22.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.heightsGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle22; this.heightsGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewCellStyle23.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle23.BackColor = System.Drawing.SystemColors.Window; dataGridViewCellStyle23.Font = new System.Drawing.Font("Tahoma", 8.25F); dataGridViewCellStyle23.ForeColor = System.Drawing.SystemColors.ControlText; dataGridViewCellStyle23.Format = "D2"; dataGridViewCellStyle23.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle23.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle23.WrapMode = System.Windows.Forms.DataGridViewTriState.False; this.heightsGridView.DefaultCellStyle = dataGridViewCellStyle23; this.heightsGridView.Location = new System.Drawing.Point(0, 0); this.heightsGridView.MultiSelect = false; this.heightsGridView.Name = "heightsGridView"; dataGridViewCellStyle24.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle24.BackColor = System.Drawing.SystemColors.Control; dataGridViewCellStyle24.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F); dataGridViewCellStyle24.ForeColor = System.Drawing.SystemColors.WindowText; dataGridViewCellStyle24.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle24.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle24.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.heightsGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle24; this.heightsGridView.RowHeadersWidth = 50; this.heightsGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; dataGridViewCellStyle25.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle25.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.heightsGridView.RowsDefaultCellStyle = dataGridViewCellStyle25; this.heightsGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.heightsGridView.RowTemplate.Height = 18; this.heightsGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False; this.heightsGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; this.heightsGridView.Size = new System.Drawing.Size(1032, 576); this.heightsGridView.TabIndex = 2; this.heightsGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.heightsGridView_CellFormatting); this.heightsGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.heightsGridView_CellValueChanged); this.heightsGridView.SelectionChanged += new System.EventHandler(this.heightsGridView_SelectionChanged); // // mapFilesTabPage // this.mapFilesTabPage.Controls.Add(this.mapFilesGridView); this.mapFilesTabPage.Location = new System.Drawing.Point(4, 22); this.mapFilesTabPage.Name = "mapFilesTabPage"; this.mapFilesTabPage.Size = new System.Drawing.Size(992, 599); this.mapFilesTabPage.TabIndex = 3; this.mapFilesTabPage.Text = "Map Files"; this.mapFilesTabPage.UseVisualStyleBackColor = true; // // mapFilesGridView // this.mapFilesGridView.AllowUserToAddRows = false; this.mapFilesGridView.AllowUserToDeleteRows = false; this.mapFilesGridView.AllowUserToResizeColumns = false; this.mapFilesGridView.AllowUserToResizeRows = false; dataGridViewCellStyle26.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.mapFilesGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle26; this.mapFilesGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; dataGridViewCellStyle27.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle27.BackColor = System.Drawing.SystemColors.Control; dataGridViewCellStyle27.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F); dataGridViewCellStyle27.ForeColor = System.Drawing.SystemColors.WindowText; dataGridViewCellStyle27.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle27.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle27.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.mapFilesGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle27; this.mapFilesGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewCellStyle28.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle28.BackColor = System.Drawing.SystemColors.Window; dataGridViewCellStyle28.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); dataGridViewCellStyle28.ForeColor = System.Drawing.SystemColors.ControlText; dataGridViewCellStyle28.Format = "D4"; dataGridViewCellStyle28.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle28.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle28.WrapMode = System.Windows.Forms.DataGridViewTriState.False; this.mapFilesGridView.DefaultCellStyle = dataGridViewCellStyle28; this.mapFilesGridView.Location = new System.Drawing.Point(0, 0); this.mapFilesGridView.MultiSelect = false; this.mapFilesGridView.Name = "mapFilesGridView"; dataGridViewCellStyle29.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle29.BackColor = System.Drawing.SystemColors.Control; dataGridViewCellStyle29.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F); dataGridViewCellStyle29.ForeColor = System.Drawing.SystemColors.WindowText; dataGridViewCellStyle29.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle29.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle29.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.mapFilesGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle29; this.mapFilesGridView.RowHeadersWidth = 50; this.mapFilesGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; dataGridViewCellStyle30.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle30.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.mapFilesGridView.RowsDefaultCellStyle = dataGridViewCellStyle30; this.mapFilesGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.mapFilesGridView.RowTemplate.Height = 18; this.mapFilesGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False; this.mapFilesGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; this.mapFilesGridView.Size = new System.Drawing.Size(1032, 576); this.mapFilesGridView.TabIndex = 2; this.mapFilesGridView.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.mapFilesGridView_CellMouseDoubleClick); this.mapFilesGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.mapFilesGridView_CellFormatting); this.mapFilesGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.mapFilesGridView_CellValueChanged); this.mapFilesGridView.SelectionChanged += new System.EventHandler(this.mapFilesGridView_SelectionChanged); // // matrixNameTextBox // this.matrixNameTextBox.Location = new System.Drawing.Point(13, 69); this.matrixNameTextBox.MaxLength = 16; this.matrixNameTextBox.Name = "matrixNameTextBox"; this.matrixNameTextBox.Size = new System.Drawing.Size(112, 20); this.matrixNameTextBox.TabIndex = 17; this.matrixNameTextBox.TextChanged += new System.EventHandler(this.matrixNameTextBox_TextChanged); // // heightUpDown // this.heightUpDown.Location = new System.Drawing.Point(84, 98); this.heightUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.heightUpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.heightUpDown.Name = "heightUpDown"; this.heightUpDown.Size = new System.Drawing.Size(37, 20); this.heightUpDown.TabIndex = 16; this.heightUpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); this.heightUpDown.ValueChanged += new System.EventHandler(this.heightUpDown_ValueChanged); // // widthUpDown // this.widthUpDown.Location = new System.Drawing.Point(41, 98); this.widthUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.widthUpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.widthUpDown.Name = "widthUpDown"; this.widthUpDown.Size = new System.Drawing.Size(37, 20); this.widthUpDown.TabIndex = 15; this.widthUpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); this.widthUpDown.ValueChanged += new System.EventHandler(this.widthUpDown_ValueChanged); // // widthLabel // this.widthLabel.AutoSize = true; this.widthLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.widthLabel.Location = new System.Drawing.Point(10, 101); this.widthLabel.Name = "widthLabel"; this.widthLabel.Size = new System.Drawing.Size(27, 13); this.widthLabel.TabIndex = 13; this.widthLabel.Text = "Size"; // // selectMatrixComboBox // this.selectMatrixComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectMatrixComboBox.FormattingEnabled = true; this.selectMatrixComboBox.Location = new System.Drawing.Point(13, 27); this.selectMatrixComboBox.Name = "selectMatrixComboBox"; this.selectMatrixComboBox.Size = new System.Drawing.Size(112, 21); this.selectMatrixComboBox.TabIndex = 12; this.selectMatrixComboBox.SelectedIndexChanged += new System.EventHandler(this.selectMatrixComboBox_SelectedIndexChanged); // // mapEditorTabPage // this.mapEditorTabPage.BackColor = System.Drawing.SystemColors.Window; this.mapEditorTabPage.Controls.Add(this.tableLayoutPanel3); this.mapEditorTabPage.Controls.Add(this.mapScreenshotButton); this.mapEditorTabPage.Controls.Add(this.mapRenderPanel); this.mapEditorTabPage.Controls.Add(this.label26); this.mapEditorTabPage.Controls.Add(this.buildTextureComboBox); this.mapEditorTabPage.Controls.Add(this.mapFileLabel); this.mapEditorTabPage.Controls.Add(this.mapTextureComboBox); this.mapEditorTabPage.Controls.Add(this.mapTextureLabel); this.mapEditorTabPage.Controls.Add(this.selectMapComboBox); this.mapEditorTabPage.Controls.Add(this.mapPartsTabControl); this.mapEditorTabPage.Controls.Add(this.radio3D); this.mapEditorTabPage.Controls.Add(this.radio2D); this.mapEditorTabPage.Controls.Add(this.wireframeCheckBox); this.mapEditorTabPage.ImageIndex = 2; this.mapEditorTabPage.Location = new System.Drawing.Point(4, 23); this.mapEditorTabPage.Name = "mapEditorTabPage"; this.mapEditorTabPage.Padding = new System.Windows.Forms.Padding(3); this.mapEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.mapEditorTabPage.TabIndex = 2; this.mapEditorTabPage.Text = "Map Editor"; this.mapEditorTabPage.Enter += new System.EventHandler(this.mapEditorTabPage_Enter); // // tableLayoutPanel3 // this.tableLayoutPanel3.ColumnCount = 4; this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel3.Controls.Add(this.addMapFileButton, 0, 0); this.tableLayoutPanel3.Controls.Add(this.locateCurrentMapBin, 3, 2); this.tableLayoutPanel3.Controls.Add(this.removeMapFileButton, 2, 0); this.tableLayoutPanel3.Controls.Add(this.replaceMapBinButton, 0, 1); this.tableLayoutPanel3.Controls.Add(this.exportCurrentMapBinButton, 2, 1); this.tableLayoutPanel3.Controls.Add(this.saveMapButton, 0, 2); this.tableLayoutPanel3.Location = new System.Drawing.Point(271, 486); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 3; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel3.Size = new System.Drawing.Size(199, 129); this.tableLayoutPanel3.TabIndex = 41; // // addMapFileButton // this.tableLayoutPanel3.SetColumnSpan(this.addMapFileButton, 2); this.addMapFileButton.Dock = System.Windows.Forms.DockStyle.Fill; this.addMapFileButton.Image = ((System.Drawing.Image)(resources.GetObject("addMapFileButton.Image"))); this.addMapFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addMapFileButton.Location = new System.Drawing.Point(3, 3); this.addMapFileButton.Name = "addMapFileButton"; this.addMapFileButton.Size = new System.Drawing.Size(92, 37); this.addMapFileButton.TabIndex = 36; this.addMapFileButton.Text = "Add \r\nMap File"; this.addMapFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addMapFileButton.UseVisualStyleBackColor = true; this.addMapFileButton.Click += new System.EventHandler(this.addMapFileButton_Click); // // locateCurrentMapBin // this.locateCurrentMapBin.Dock = System.Windows.Forms.DockStyle.Fill; this.locateCurrentMapBin.Image = global::DSPRE.Properties.Resources.open_file; this.locateCurrentMapBin.Location = new System.Drawing.Point(150, 89); this.locateCurrentMapBin.Name = "locateCurrentMapBin"; this.locateCurrentMapBin.Size = new System.Drawing.Size(46, 37); this.locateCurrentMapBin.TabIndex = 40; this.locateCurrentMapBin.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.locateCurrentMapBin.UseVisualStyleBackColor = true; this.locateCurrentMapBin.Click += new System.EventHandler(this.locateCurrentMapBin_Click); // // removeMapFileButton // this.tableLayoutPanel3.SetColumnSpan(this.removeMapFileButton, 2); this.removeMapFileButton.Dock = System.Windows.Forms.DockStyle.Fill; this.removeMapFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeMapFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeMapFileButton.Location = new System.Drawing.Point(101, 3); this.removeMapFileButton.Name = "removeMapFileButton"; this.removeMapFileButton.Size = new System.Drawing.Size(95, 37); this.removeMapFileButton.TabIndex = 35; this.removeMapFileButton.Text = "Remove \r\nLast Map"; this.removeMapFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeMapFileButton.UseVisualStyleBackColor = true; this.removeMapFileButton.Click += new System.EventHandler(this.removeLastMapFileButton_Click); // // replaceMapBinButton // this.tableLayoutPanel3.SetColumnSpan(this.replaceMapBinButton, 2); this.replaceMapBinButton.Dock = System.Windows.Forms.DockStyle.Fill; this.replaceMapBinButton.Image = ((System.Drawing.Image)(resources.GetObject("replaceMapBinButton.Image"))); this.replaceMapBinButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.replaceMapBinButton.Location = new System.Drawing.Point(3, 46); this.replaceMapBinButton.Name = "replaceMapBinButton"; this.replaceMapBinButton.Size = new System.Drawing.Size(92, 37); this.replaceMapBinButton.TabIndex = 37; this.replaceMapBinButton.Text = "Replace \r\nMap BIN"; this.replaceMapBinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.replaceMapBinButton.UseVisualStyleBackColor = true; this.replaceMapBinButton.Click += new System.EventHandler(this.replaceMapBinButton_Click); // // exportCurrentMapBinButton // this.tableLayoutPanel3.SetColumnSpan(this.exportCurrentMapBinButton, 2); this.exportCurrentMapBinButton.Dock = System.Windows.Forms.DockStyle.Fill; this.exportCurrentMapBinButton.Image = ((System.Drawing.Image)(resources.GetObject("exportCurrentMapBinButton.Image"))); this.exportCurrentMapBinButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportCurrentMapBinButton.Location = new System.Drawing.Point(101, 46); this.exportCurrentMapBinButton.Name = "exportCurrentMapBinButton"; this.exportCurrentMapBinButton.Size = new System.Drawing.Size(95, 37); this.exportCurrentMapBinButton.TabIndex = 38; this.exportCurrentMapBinButton.Text = "Export \r\nMap BIN"; this.exportCurrentMapBinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportCurrentMapBinButton.UseVisualStyleBackColor = true; this.exportCurrentMapBinButton.Click += new System.EventHandler(this.exportCurrentMapBinButton_Click); // // saveMapButton // this.tableLayoutPanel3.SetColumnSpan(this.saveMapButton, 3); this.saveMapButton.Dock = System.Windows.Forms.DockStyle.Fill; this.saveMapButton.Image = global::DSPRE.Properties.Resources.save_rom; this.saveMapButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveMapButton.Location = new System.Drawing.Point(3, 89); this.saveMapButton.Name = "saveMapButton"; this.saveMapButton.Size = new System.Drawing.Size(141, 37); this.saveMapButton.TabIndex = 34; this.saveMapButton.Text = "Save This\r\nMap BIN\r\n"; this.saveMapButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveMapButton.UseVisualStyleBackColor = true; this.saveMapButton.Click += new System.EventHandler(this.saveMapButton_Click); // // mapScreenshotButton // this.mapScreenshotButton.Image = global::DSPRE.Properties.Resources.cameraIcon; this.mapScreenshotButton.Location = new System.Drawing.Point(1138, 569); this.mapScreenshotButton.Name = "mapScreenshotButton"; this.mapScreenshotButton.Size = new System.Drawing.Size(41, 40); this.mapScreenshotButton.TabIndex = 39; this.mapScreenshotButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.mapScreenshotButton.UseVisualStyleBackColor = true; this.mapScreenshotButton.Click += new System.EventHandler(this.mapScreenshotButton_Click); // // mapRenderPanel // this.mapRenderPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.mapRenderPanel.Controls.Add(this.mapOpenGlControl); this.mapRenderPanel.Controls.Add(this.movPictureBox); this.mapRenderPanel.Location = new System.Drawing.Point(519, 3); this.mapRenderPanel.Name = "mapRenderPanel"; this.mapRenderPanel.Size = new System.Drawing.Size(610, 610); this.mapRenderPanel.TabIndex = 23; // // mapOpenGlControl // this.mapOpenGlControl.AccumBits = ((byte)(0)); this.mapOpenGlControl.AutoCheckErrors = false; this.mapOpenGlControl.AutoFinish = false; this.mapOpenGlControl.AutoMakeCurrent = true; this.mapOpenGlControl.AutoSwapBuffers = true; this.mapOpenGlControl.BackColor = System.Drawing.Color.Black; this.mapOpenGlControl.ColorBits = ((byte)(32)); this.mapOpenGlControl.DepthBits = ((byte)(64)); this.mapOpenGlControl.Dock = System.Windows.Forms.DockStyle.Fill; this.mapOpenGlControl.ForeColor = System.Drawing.Color.Black; this.mapOpenGlControl.Location = new System.Drawing.Point(0, 0); this.mapOpenGlControl.Name = "mapOpenGlControl"; this.mapOpenGlControl.Size = new System.Drawing.Size(608, 608); this.mapOpenGlControl.StencilBits = ((byte)(0)); this.mapOpenGlControl.TabIndex = 2; this.mapOpenGlControl.Click += new System.EventHandler(this.mapOpenGlControl_Click); this.mapOpenGlControl.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mapOpenGlControl_KeyUp); this.mapOpenGlControl.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.mapOpenGlControl_PreviewKeyDown); // // movPictureBox // this.movPictureBox.BackColor = System.Drawing.Color.White; this.movPictureBox.Location = new System.Drawing.Point(0, 0); this.movPictureBox.Name = "movPictureBox"; this.movPictureBox.Size = new System.Drawing.Size(608, 608); this.movPictureBox.TabIndex = 3; this.movPictureBox.TabStop = false; this.movPictureBox.Click += new System.EventHandler(this.movPictureBox_Click); this.movPictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.movPictureBox_MouseMove); // // label26 // this.label26.AutoSize = true; this.label26.Location = new System.Drawing.Point(16, 574); this.label26.Name = "label26"; this.label26.Size = new System.Drawing.Size(84, 13); this.label26.TabIndex = 33; this.label26.Text = "Buildings texture"; // // buildTextureComboBox // this.buildTextureComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.buildTextureComboBox.FormattingEnabled = true; this.buildTextureComboBox.Location = new System.Drawing.Point(19, 588); this.buildTextureComboBox.Name = "buildTextureComboBox"; this.buildTextureComboBox.Size = new System.Drawing.Size(233, 21); this.buildTextureComboBox.TabIndex = 32; this.buildTextureComboBox.SelectedIndexChanged += new System.EventHandler(this.buildTextureComboBox_SelectedIndexChanged); // // mapFileLabel // this.mapFileLabel.AutoSize = true; this.mapFileLabel.Location = new System.Drawing.Point(16, 486); this.mapFileLabel.Name = "mapFileLabel"; this.mapFileLabel.Size = new System.Drawing.Size(44, 13); this.mapFileLabel.TabIndex = 31; this.mapFileLabel.Text = "Map file"; // // mapTextureComboBox // this.mapTextureComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.mapTextureComboBox.FormattingEnabled = true; this.mapTextureComboBox.Location = new System.Drawing.Point(19, 544); this.mapTextureComboBox.Name = "mapTextureComboBox"; this.mapTextureComboBox.Size = new System.Drawing.Size(233, 21); this.mapTextureComboBox.TabIndex = 30; this.mapTextureComboBox.SelectedIndexChanged += new System.EventHandler(this.mapTextureComboBox_SelectedIndexChanged); // // mapTextureLabel // this.mapTextureLabel.AutoSize = true; this.mapTextureLabel.Location = new System.Drawing.Point(16, 530); this.mapTextureLabel.Name = "mapTextureLabel"; this.mapTextureLabel.Size = new System.Drawing.Size(63, 13); this.mapTextureLabel.TabIndex = 29; this.mapTextureLabel.Text = "Map texture"; // // selectMapComboBox // this.selectMapComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectMapComboBox.FormattingEnabled = true; this.selectMapComboBox.Location = new System.Drawing.Point(19, 500); this.selectMapComboBox.Name = "selectMapComboBox"; this.selectMapComboBox.Size = new System.Drawing.Size(233, 21); this.selectMapComboBox.TabIndex = 28; this.selectMapComboBox.SelectedIndexChanged += new System.EventHandler(this.selectMapComboBox_SelectedIndexChanged); // // mapPartsTabControl // this.mapPartsTabControl.Controls.Add(this.buildingsTabPage); this.mapPartsTabControl.Controls.Add(this.permissionsTabPage); this.mapPartsTabControl.Controls.Add(this.modelTabPage); this.mapPartsTabControl.Controls.Add(this.terrainTabPage); this.mapPartsTabControl.Controls.Add(this.bgsTabPage); this.mapPartsTabControl.Location = new System.Drawing.Point(15, 6); this.mapPartsTabControl.Name = "mapPartsTabControl"; this.mapPartsTabControl.SelectedIndex = 0; this.mapPartsTabControl.Size = new System.Drawing.Size(489, 476); this.mapPartsTabControl.TabIndex = 24; this.mapPartsTabControl.SelectedIndexChanged += new System.EventHandler(this.mapPartsTabControl_SelectedIndexChanged); // // buildingsTabPage // this.buildingsTabPage.Controls.Add(this.groupBox33); this.buildingsTabPage.Controls.Add(this.yLabel); this.buildingsTabPage.Controls.Add(this.lockXZgroupbox); this.buildingsTabPage.Controls.Add(this.zLabel); this.buildingsTabPage.Controls.Add(this.xLabel); this.buildingsTabPage.Controls.Add(this.bldRoundGroupbox); this.buildingsTabPage.Controls.Add(this.bldPlaceWithMouseCheckbox); this.buildingsTabPage.Controls.Add(this.importBuildingsButton); this.buildingsTabPage.Controls.Add(this.groupBox20); this.buildingsTabPage.Controls.Add(this.groupBox19); this.buildingsTabPage.Controls.Add(this.duplicateBuildingButton); this.buildingsTabPage.Controls.Add(this.exportBuildingsButton); this.buildingsTabPage.Controls.Add(this.removeBuildingButton); this.buildingsTabPage.Controls.Add(this.addBuildingButton); this.buildingsTabPage.Controls.Add(this.buildPositionGroupBox); this.buildingsTabPage.Controls.Add(this.buildingsListBox); this.buildingsTabPage.Location = new System.Drawing.Point(4, 22); this.buildingsTabPage.Name = "buildingsTabPage"; this.buildingsTabPage.Padding = new System.Windows.Forms.Padding(3); this.buildingsTabPage.Size = new System.Drawing.Size(481, 450); this.buildingsTabPage.TabIndex = 0; this.buildingsTabPage.Text = "Buildings"; this.buildingsTabPage.UseVisualStyleBackColor = true; // // groupBox33 // this.groupBox33.Controls.Add(this.yRotDegBldUpDown); this.groupBox33.Controls.Add(this.xRotDegBldUpDown); this.groupBox33.Controls.Add(this.zRotDegBldUpDown); this.groupBox33.Controls.Add(this.yRotBuildUpDown); this.groupBox33.Controls.Add(this.xRotBuildUpDown); this.groupBox33.Controls.Add(this.zRotBuildUpDown); this.groupBox33.Enabled = false; this.groupBox33.Location = new System.Drawing.Point(339, 141); this.groupBox33.Name = "groupBox33"; this.groupBox33.Size = new System.Drawing.Size(131, 123); this.groupBox33.TabIndex = 44; this.groupBox33.TabStop = false; this.groupBox33.Text = "Rotation"; // // yRotDegBldUpDown // this.yRotDegBldUpDown.DecimalPlaces = 2; this.yRotDegBldUpDown.Location = new System.Drawing.Point(66, 56); this.yRotDegBldUpDown.Maximum = new decimal(new int[] { 360, 0, 0, 0}); this.yRotDegBldUpDown.Name = "yRotDegBldUpDown"; this.yRotDegBldUpDown.Size = new System.Drawing.Size(58, 20); this.yRotDegBldUpDown.TabIndex = 27; this.yRotDegBldUpDown.ValueChanged += new System.EventHandler(this.yRotDegBldUpDown_ValueChanged); // // xRotDegBldUpDown // this.xRotDegBldUpDown.DecimalPlaces = 2; this.xRotDegBldUpDown.Location = new System.Drawing.Point(66, 20); this.xRotDegBldUpDown.Maximum = new decimal(new int[] { 360, 0, 0, 0}); this.xRotDegBldUpDown.Name = "xRotDegBldUpDown"; this.xRotDegBldUpDown.Size = new System.Drawing.Size(58, 20); this.xRotDegBldUpDown.TabIndex = 25; this.xRotDegBldUpDown.ValueChanged += new System.EventHandler(this.xRotDegBldUpDown_ValueChanged); // // zRotDegBldUpDown // this.zRotDegBldUpDown.DecimalPlaces = 2; this.zRotDegBldUpDown.Location = new System.Drawing.Point(66, 93); this.zRotDegBldUpDown.Maximum = new decimal(new int[] { 360, 0, 0, 0}); this.zRotDegBldUpDown.Name = "zRotDegBldUpDown"; this.zRotDegBldUpDown.Size = new System.Drawing.Size(58, 20); this.zRotDegBldUpDown.TabIndex = 26; this.zRotDegBldUpDown.ValueChanged += new System.EventHandler(this.zRotDegBldUpDown_ValueChanged); // // yRotBuildUpDown // this.yRotBuildUpDown.Location = new System.Drawing.Point(6, 56); this.yRotBuildUpDown.Maximum = new decimal(new int[] { 65536, 0, 0, 0}); this.yRotBuildUpDown.Name = "yRotBuildUpDown"; this.yRotBuildUpDown.Size = new System.Drawing.Size(56, 20); this.yRotBuildUpDown.TabIndex = 24; this.yRotBuildUpDown.ValueChanged += new System.EventHandler(this.yRotBuildUpDown_ValueChanged); // // xRotBuildUpDown // this.xRotBuildUpDown.Location = new System.Drawing.Point(6, 20); this.xRotBuildUpDown.Maximum = new decimal(new int[] { 65536, 0, 0, 0}); this.xRotBuildUpDown.Name = "xRotBuildUpDown"; this.xRotBuildUpDown.Size = new System.Drawing.Size(56, 20); this.xRotBuildUpDown.TabIndex = 22; this.xRotBuildUpDown.ValueChanged += new System.EventHandler(this.xRotBuildUpDown_ValueChanged); // // zRotBuildUpDown // this.zRotBuildUpDown.Location = new System.Drawing.Point(6, 93); this.zRotBuildUpDown.Maximum = new decimal(new int[] { 65536, 0, 0, 0}); this.zRotBuildUpDown.Name = "zRotBuildUpDown"; this.zRotBuildUpDown.Size = new System.Drawing.Size(56, 20); this.zRotBuildUpDown.TabIndex = 23; this.zRotBuildUpDown.ValueChanged += new System.EventHandler(this.zRotBuildUpDown_ValueChanged); // // yLabel // this.yLabel.AutoSize = true; this.yLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.yLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); this.yLabel.Location = new System.Drawing.Point(183, 198); this.yLabel.Name = "yLabel"; this.yLabel.Size = new System.Drawing.Size(15, 15); this.yLabel.TabIndex = 10; this.yLabel.Text = "Y"; // // lockXZgroupbox // this.lockXZgroupbox.Controls.Add(this.bldPlaceLockXcheckbox); this.lockXZgroupbox.Controls.Add(this.bldPlaceLockZcheckbox); this.lockXZgroupbox.Enabled = false; this.lockXZgroupbox.Location = new System.Drawing.Point(272, 271); this.lockXZgroupbox.Name = "lockXZgroupbox"; this.lockXZgroupbox.Size = new System.Drawing.Size(154, 36); this.lockXZgroupbox.TabIndex = 43; this.lockXZgroupbox.TabStop = false; // // bldPlaceLockXcheckbox // this.bldPlaceLockXcheckbox.Appearance = System.Windows.Forms.Appearance.Button; this.bldPlaceLockXcheckbox.AutoSize = true; this.bldPlaceLockXcheckbox.Enabled = false; this.bldPlaceLockXcheckbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.bldPlaceLockXcheckbox.ForeColor = System.Drawing.Color.Red; this.bldPlaceLockXcheckbox.Location = new System.Drawing.Point(10, 9); this.bldPlaceLockXcheckbox.Name = "bldPlaceLockXcheckbox"; this.bldPlaceLockXcheckbox.Size = new System.Drawing.Size(57, 23); this.bldPlaceLockXcheckbox.TabIndex = 41; this.bldPlaceLockXcheckbox.Text = "Lock X"; this.bldPlaceLockXcheckbox.UseVisualStyleBackColor = true; this.bldPlaceLockXcheckbox.CheckedChanged += new System.EventHandler(this.bldPlaceLockXcheckbox_CheckedChanged); // // bldPlaceLockZcheckbox // this.bldPlaceLockZcheckbox.Appearance = System.Windows.Forms.Appearance.Button; this.bldPlaceLockZcheckbox.AutoSize = true; this.bldPlaceLockZcheckbox.Enabled = false; this.bldPlaceLockZcheckbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.bldPlaceLockZcheckbox.ForeColor = System.Drawing.Color.Blue; this.bldPlaceLockZcheckbox.Location = new System.Drawing.Point(85, 9); this.bldPlaceLockZcheckbox.Name = "bldPlaceLockZcheckbox"; this.bldPlaceLockZcheckbox.Size = new System.Drawing.Size(57, 23); this.bldPlaceLockZcheckbox.TabIndex = 42; this.bldPlaceLockZcheckbox.Text = "Lock Z"; this.bldPlaceLockZcheckbox.UseVisualStyleBackColor = true; this.bldPlaceLockZcheckbox.CheckedChanged += new System.EventHandler(this.bldPlaceLockZcheckbox_CheckedChanged); // // zLabel // this.zLabel.AutoSize = true; this.zLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.zLabel.ForeColor = System.Drawing.Color.Blue; this.zLabel.Location = new System.Drawing.Point(183, 233); this.zLabel.Name = "zLabel"; this.zLabel.Size = new System.Drawing.Size(15, 15); this.zLabel.TabIndex = 9; this.zLabel.Text = "Z"; // // xLabel // this.xLabel.AutoSize = true; this.xLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.xLabel.ForeColor = System.Drawing.Color.Red; this.xLabel.Location = new System.Drawing.Point(182, 162); this.xLabel.Name = "xLabel"; this.xLabel.Size = new System.Drawing.Size(16, 15); this.xLabel.TabIndex = 8; this.xLabel.Text = "X"; // // bldRoundGroupbox // this.bldRoundGroupbox.Controls.Add(this.tableLayoutPanel2); this.bldRoundGroupbox.Enabled = false; this.bldRoundGroupbox.Location = new System.Drawing.Point(195, 316); this.bldRoundGroupbox.Name = "bldRoundGroupbox"; this.bldRoundGroupbox.Size = new System.Drawing.Size(269, 83); this.bldRoundGroupbox.TabIndex = 40; this.bldRoundGroupbox.TabStop = false; this.bldRoundGroupbox.Text = "Round"; // // tableLayoutPanel2 // this.tableLayoutPanel2.ColumnCount = 3; this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel2.Controls.Add(this.bldRoundDecmil, 1, 1); this.tableLayoutPanel2.Controls.Add(this.bldRoundCentMil, 2, 1); this.tableLayoutPanel2.Controls.Add(this.bldRoundWhole, 0, 0); this.tableLayoutPanel2.Controls.Add(this.bldRoundDec, 1, 0); this.tableLayoutPanel2.Controls.Add(this.bldRoundCent, 2, 0); this.tableLayoutPanel2.Controls.Add(this.bldRoundMil, 0, 1); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 2; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.Size = new System.Drawing.Size(263, 64); this.tableLayoutPanel2.TabIndex = 45; // // bldRoundDecmil // this.bldRoundDecmil.Appearance = System.Windows.Forms.Appearance.Button; this.bldRoundDecmil.Dock = System.Windows.Forms.DockStyle.Fill; this.bldRoundDecmil.Location = new System.Drawing.Point(90, 35); this.bldRoundDecmil.Name = "bldRoundDecmil"; this.bldRoundDecmil.Size = new System.Drawing.Size(81, 26); this.bldRoundDecmil.TabIndex = 4; this.bldRoundDecmil.Text = ".0001"; this.bldRoundDecmil.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.bldRoundDecmil.UseVisualStyleBackColor = true; this.bldRoundDecmil.CheckedChanged += new System.EventHandler(this.bldRoundDecmil_CheckedChanged); // // bldRoundCentMil // this.bldRoundCentMil.Appearance = System.Windows.Forms.Appearance.Button; this.bldRoundCentMil.Dock = System.Windows.Forms.DockStyle.Fill; this.bldRoundCentMil.Location = new System.Drawing.Point(177, 35); this.bldRoundCentMil.Name = "bldRoundCentMil"; this.bldRoundCentMil.Size = new System.Drawing.Size(83, 26); this.bldRoundCentMil.TabIndex = 5; this.bldRoundCentMil.Text = ".00001"; this.bldRoundCentMil.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.bldRoundCentMil.UseVisualStyleBackColor = true; this.bldRoundCentMil.CheckedChanged += new System.EventHandler(this.bldRoundCentMil_CheckedChanged); // // bldRoundWhole // this.bldRoundWhole.Appearance = System.Windows.Forms.Appearance.Button; this.bldRoundWhole.Dock = System.Windows.Forms.DockStyle.Fill; this.bldRoundWhole.Location = new System.Drawing.Point(3, 3); this.bldRoundWhole.Name = "bldRoundWhole"; this.bldRoundWhole.Size = new System.Drawing.Size(81, 26); this.bldRoundWhole.TabIndex = 0; this.bldRoundWhole.Text = "Whole"; this.bldRoundWhole.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.bldRoundWhole.UseVisualStyleBackColor = true; this.bldRoundWhole.CheckedChanged += new System.EventHandler(this.bldRoundWhole_CheckedChanged); // // bldRoundDec // this.bldRoundDec.Appearance = System.Windows.Forms.Appearance.Button; this.bldRoundDec.Checked = true; this.bldRoundDec.Dock = System.Windows.Forms.DockStyle.Fill; this.bldRoundDec.Location = new System.Drawing.Point(90, 3); this.bldRoundDec.Name = "bldRoundDec"; this.bldRoundDec.Size = new System.Drawing.Size(81, 26); this.bldRoundDec.TabIndex = 1; this.bldRoundDec.TabStop = true; this.bldRoundDec.Text = ".1"; this.bldRoundDec.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.bldRoundDec.UseVisualStyleBackColor = true; this.bldRoundDec.CheckedChanged += new System.EventHandler(this.bldRoundDec_CheckedChanged); // // bldRoundCent // this.bldRoundCent.Appearance = System.Windows.Forms.Appearance.Button; this.bldRoundCent.Dock = System.Windows.Forms.DockStyle.Fill; this.bldRoundCent.Location = new System.Drawing.Point(177, 3); this.bldRoundCent.Name = "bldRoundCent"; this.bldRoundCent.Size = new System.Drawing.Size(83, 26); this.bldRoundCent.TabIndex = 2; this.bldRoundCent.Text = ".01"; this.bldRoundCent.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.bldRoundCent.UseVisualStyleBackColor = true; this.bldRoundCent.CheckedChanged += new System.EventHandler(this.bldRoundCent_CheckedChanged); // // bldRoundMil // this.bldRoundMil.Appearance = System.Windows.Forms.Appearance.Button; this.bldRoundMil.Dock = System.Windows.Forms.DockStyle.Fill; this.bldRoundMil.Location = new System.Drawing.Point(3, 35); this.bldRoundMil.Name = "bldRoundMil"; this.bldRoundMil.Size = new System.Drawing.Size(81, 26); this.bldRoundMil.TabIndex = 3; this.bldRoundMil.Text = ".001"; this.bldRoundMil.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.bldRoundMil.UseVisualStyleBackColor = true; this.bldRoundMil.CheckedChanged += new System.EventHandler(this.bldRoundMil_CheckedChanged); // // bldPlaceWithMouseCheckbox // this.bldPlaceWithMouseCheckbox.Appearance = System.Windows.Forms.Appearance.Button; this.bldPlaceWithMouseCheckbox.Enabled = false; this.bldPlaceWithMouseCheckbox.Image = global::DSPRE.Properties.Resources.selectBldWithMouse; this.bldPlaceWithMouseCheckbox.Location = new System.Drawing.Point(227, 271); this.bldPlaceWithMouseCheckbox.Name = "bldPlaceWithMouseCheckbox"; this.bldPlaceWithMouseCheckbox.Size = new System.Drawing.Size(39, 40); this.bldPlaceWithMouseCheckbox.TabIndex = 40; this.bldPlaceWithMouseCheckbox.UseVisualStyleBackColor = true; this.bldPlaceWithMouseCheckbox.CheckedChanged += new System.EventHandler(this.bldPlaceWithMouseCheckbox_CheckedChanged); // // importBuildingsButton // this.importBuildingsButton.Image = ((System.Drawing.Image)(resources.GetObject("importBuildingsButton.Image"))); this.importBuildingsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importBuildingsButton.Location = new System.Drawing.Point(193, 11); this.importBuildingsButton.Name = "importBuildingsButton"; this.importBuildingsButton.Size = new System.Drawing.Size(102, 40); this.importBuildingsButton.TabIndex = 21; this.importBuildingsButton.Text = "Import\r\nBuildings"; this.importBuildingsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importBuildingsButton.UseVisualStyleBackColor = true; this.importBuildingsButton.Click += new System.EventHandler(this.importBuildingsButton_Click); // // groupBox20 // this.groupBox20.Controls.Add(this.interiorbldRadioButton); this.groupBox20.Controls.Add(this.exteriorbldRadioButton); this.groupBox20.Controls.Add(this.buildIndexComboBox); this.groupBox20.Location = new System.Drawing.Point(189, 57); this.groupBox20.Name = "groupBox20"; this.groupBox20.Size = new System.Drawing.Size(284, 81); this.groupBox20.TabIndex = 26; this.groupBox20.TabStop = false; this.groupBox20.Text = "Building Selector"; // // interiorbldRadioButton // this.interiorbldRadioButton.Appearance = System.Windows.Forms.Appearance.Button; this.interiorbldRadioButton.AutoSize = true; this.interiorbldRadioButton.Enabled = false; this.interiorbldRadioButton.Location = new System.Drawing.Point(9, 18); this.interiorbldRadioButton.Name = "interiorbldRadioButton"; this.interiorbldRadioButton.Size = new System.Drawing.Size(68, 23); this.interiorbldRadioButton.TabIndex = 3; this.interiorbldRadioButton.Text = "Interior List"; this.interiorbldRadioButton.UseVisualStyleBackColor = true; this.interiorbldRadioButton.CheckedChanged += new System.EventHandler(this.interiorRadioButton_CheckedChanged); // // exteriorbldRadioButton // this.exteriorbldRadioButton.Appearance = System.Windows.Forms.Appearance.Button; this.exteriorbldRadioButton.AutoSize = true; this.exteriorbldRadioButton.Checked = true; this.exteriorbldRadioButton.Enabled = false; this.exteriorbldRadioButton.Location = new System.Drawing.Point(83, 18); this.exteriorbldRadioButton.Name = "exteriorbldRadioButton"; this.exteriorbldRadioButton.Size = new System.Drawing.Size(71, 23); this.exteriorbldRadioButton.TabIndex = 4; this.exteriorbldRadioButton.TabStop = true; this.exteriorbldRadioButton.Text = "Exterior List"; this.exteriorbldRadioButton.UseVisualStyleBackColor = true; // // buildIndexComboBox // this.buildIndexComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.buildIndexComboBox.FormattingEnabled = true; this.buildIndexComboBox.Location = new System.Drawing.Point(9, 48); this.buildIndexComboBox.Name = "buildIndexComboBox"; this.buildIndexComboBox.Size = new System.Drawing.Size(264, 21); this.buildIndexComboBox.TabIndex = 1; this.buildIndexComboBox.SelectedIndexChanged += new System.EventHandler(this.buildIndexComboBox_SelectedIndexChanged); // // groupBox19 // this.groupBox19.Controls.Add(this.buildingHeightUpDown); this.groupBox19.Controls.Add(this.buildingWidthUpDown); this.groupBox19.Controls.Add(this.buildingLengthUpDown); this.groupBox19.Location = new System.Drawing.Point(283, 141); this.groupBox19.Name = "groupBox19"; this.groupBox19.Size = new System.Drawing.Size(53, 123); this.groupBox19.TabIndex = 12; this.groupBox19.TabStop = false; this.groupBox19.Text = "Scale"; // // buildingHeightUpDown // this.buildingHeightUpDown.Location = new System.Drawing.Point(4, 56); this.buildingHeightUpDown.Name = "buildingHeightUpDown"; this.buildingHeightUpDown.Size = new System.Drawing.Size(43, 20); this.buildingHeightUpDown.TabIndex = 24; this.buildingHeightUpDown.ValueChanged += new System.EventHandler(this.buildingHeightUpDown_ValueChanged); // // buildingWidthUpDown // this.buildingWidthUpDown.Location = new System.Drawing.Point(4, 20); this.buildingWidthUpDown.Name = "buildingWidthUpDown"; this.buildingWidthUpDown.Size = new System.Drawing.Size(43, 20); this.buildingWidthUpDown.TabIndex = 22; this.buildingWidthUpDown.ValueChanged += new System.EventHandler(this.buildingWidthUpDown_ValueChanged); // // buildingLengthUpDown // this.buildingLengthUpDown.Location = new System.Drawing.Point(4, 93); this.buildingLengthUpDown.Name = "buildingLengthUpDown"; this.buildingLengthUpDown.Size = new System.Drawing.Size(43, 20); this.buildingLengthUpDown.TabIndex = 23; this.buildingLengthUpDown.ValueChanged += new System.EventHandler(this.buildingLengthUpDown_ValueChanged); // // duplicateBuildingButton // this.duplicateBuildingButton.Image = global::DSPRE.Properties.Resources.copyIcon_small; this.duplicateBuildingButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.duplicateBuildingButton.Location = new System.Drawing.Point(352, 405); this.duplicateBuildingButton.Name = "duplicateBuildingButton"; this.duplicateBuildingButton.Size = new System.Drawing.Size(80, 32); this.duplicateBuildingButton.TabIndex = 25; this.duplicateBuildingButton.Text = "Duplicate"; this.duplicateBuildingButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.duplicateBuildingButton.UseVisualStyleBackColor = true; this.duplicateBuildingButton.Click += new System.EventHandler(this.duplicateBuildingButton_Click); // // exportBuildingsButton // this.exportBuildingsButton.Image = ((System.Drawing.Image)(resources.GetObject("exportBuildingsButton.Image"))); this.exportBuildingsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportBuildingsButton.Location = new System.Drawing.Point(298, 11); this.exportBuildingsButton.Name = "exportBuildingsButton"; this.exportBuildingsButton.Size = new System.Drawing.Size(102, 40); this.exportBuildingsButton.TabIndex = 20; this.exportBuildingsButton.Text = "Export\r\nBuildings"; this.exportBuildingsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportBuildingsButton.UseVisualStyleBackColor = true; this.exportBuildingsButton.Click += new System.EventHandler(this.exportBuildingsButton_Click); // // removeBuildingButton // this.removeBuildingButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeBuildingButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeBuildingButton.Location = new System.Drawing.Point(281, 405); this.removeBuildingButton.Name = "removeBuildingButton"; this.removeBuildingButton.Size = new System.Drawing.Size(70, 32); this.removeBuildingButton.TabIndex = 13; this.removeBuildingButton.Text = "Delete"; this.removeBuildingButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeBuildingButton.UseVisualStyleBackColor = true; this.removeBuildingButton.Click += new System.EventHandler(this.removeBuildingButton_Click); // // addBuildingButton // this.addBuildingButton.Image = ((System.Drawing.Image)(resources.GetObject("addBuildingButton.Image"))); this.addBuildingButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addBuildingButton.Location = new System.Drawing.Point(224, 405); this.addBuildingButton.Name = "addBuildingButton"; this.addBuildingButton.Size = new System.Drawing.Size(56, 32); this.addBuildingButton.TabIndex = 12; this.addBuildingButton.Text = "Add"; this.addBuildingButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addBuildingButton.UseVisualStyleBackColor = true; this.addBuildingButton.Click += new System.EventHandler(this.addBuildingButton_Click); // // buildPositionGroupBox // this.buildPositionGroupBox.Controls.Add(this.yBuildUpDown); this.buildPositionGroupBox.Controls.Add(this.xBuildUpDown); this.buildPositionGroupBox.Controls.Add(this.zBuildUpDown); this.buildPositionGroupBox.Location = new System.Drawing.Point(198, 141); this.buildPositionGroupBox.Name = "buildPositionGroupBox"; this.buildPositionGroupBox.Size = new System.Drawing.Size(81, 123); this.buildPositionGroupBox.TabIndex = 11; this.buildPositionGroupBox.TabStop = false; this.buildPositionGroupBox.Text = "Position"; // // yBuildUpDown // this.yBuildUpDown.DecimalPlaces = 5; this.yBuildUpDown.Location = new System.Drawing.Point(6, 56); this.yBuildUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.yBuildUpDown.Minimum = new decimal(new int[] { 255, 0, 0, -2147483648}); this.yBuildUpDown.Name = "yBuildUpDown"; this.yBuildUpDown.Size = new System.Drawing.Size(69, 20); this.yBuildUpDown.TabIndex = 7; this.yBuildUpDown.ValueChanged += new System.EventHandler(this.yBuildUpDown_ValueChanged); // // xBuildUpDown // this.xBuildUpDown.DecimalPlaces = 5; this.xBuildUpDown.Location = new System.Drawing.Point(6, 20); this.xBuildUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.xBuildUpDown.Minimum = new decimal(new int[] { 255, 0, 0, -2147483648}); this.xBuildUpDown.Name = "xBuildUpDown"; this.xBuildUpDown.Size = new System.Drawing.Size(69, 20); this.xBuildUpDown.TabIndex = 5; this.xBuildUpDown.ValueChanged += new System.EventHandler(this.xBuildUpDown_ValueChanged); // // zBuildUpDown // this.zBuildUpDown.DecimalPlaces = 5; this.zBuildUpDown.Location = new System.Drawing.Point(6, 93); this.zBuildUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.zBuildUpDown.Minimum = new decimal(new int[] { 255, 0, 0, -2147483648}); this.zBuildUpDown.Name = "zBuildUpDown"; this.zBuildUpDown.Size = new System.Drawing.Size(69, 20); this.zBuildUpDown.TabIndex = 6; this.zBuildUpDown.ValueChanged += new System.EventHandler(this.zBuildUpDown_ValueChanged); // // buildingsListBox // this.buildingsListBox.FormattingEnabled = true; this.buildingsListBox.Location = new System.Drawing.Point(9, 7); this.buildingsListBox.Name = "buildingsListBox"; this.buildingsListBox.Size = new System.Drawing.Size(168, 433); this.buildingsListBox.TabIndex = 0; this.buildingsListBox.SelectedIndexChanged += new System.EventHandler(this.buildingsListBox_SelectedIndexChanged); // // permissionsTabPage // this.permissionsTabPage.Controls.Add(this.scanUnusedCollisionTypesButton); this.permissionsTabPage.Controls.Add(this.clearCurrentButton); this.permissionsTabPage.Controls.Add(this.typeLabel); this.permissionsTabPage.Controls.Add(this.collisionLabel); this.permissionsTabPage.Controls.Add(this.typeGroupBox); this.permissionsTabPage.Controls.Add(this.collisionGroupBox); this.permissionsTabPage.Controls.Add(this.selectCollisionPanel); this.permissionsTabPage.Controls.Add(this.selectTypePanel); this.permissionsTabPage.Controls.Add(this.ImportMovButton); this.permissionsTabPage.Controls.Add(this.exportMovButton); this.permissionsTabPage.Location = new System.Drawing.Point(4, 22); this.permissionsTabPage.Name = "permissionsTabPage"; this.permissionsTabPage.Padding = new System.Windows.Forms.Padding(3); this.permissionsTabPage.Size = new System.Drawing.Size(481, 450); this.permissionsTabPage.TabIndex = 1; this.permissionsTabPage.Text = "Move Permissions"; this.permissionsTabPage.UseVisualStyleBackColor = true; // // scanUnusedCollisionTypesButton // this.scanUnusedCollisionTypesButton.Image = global::DSPRE.Properties.Resources.SearchMiniIcon; this.scanUnusedCollisionTypesButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.scanUnusedCollisionTypesButton.Location = new System.Drawing.Point(345, 110); this.scanUnusedCollisionTypesButton.Name = "scanUnusedCollisionTypesButton"; this.scanUnusedCollisionTypesButton.Size = new System.Drawing.Size(111, 27); this.scanUnusedCollisionTypesButton.TabIndex = 33; this.scanUnusedCollisionTypesButton.Text = "Scan used types"; this.scanUnusedCollisionTypesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.scanUnusedCollisionTypesButton.UseVisualStyleBackColor = true; this.scanUnusedCollisionTypesButton.Click += new System.EventHandler(this.scanUsedCollisionTypesButton_Click); // // clearCurrentButton // this.clearCurrentButton.Location = new System.Drawing.Point(11, 134); this.clearCurrentButton.Name = "clearCurrentButton"; this.clearCurrentButton.Size = new System.Drawing.Size(212, 23); this.clearCurrentButton.TabIndex = 32; this.clearCurrentButton.Text = "Clear current"; this.clearCurrentButton.UseVisualStyleBackColor = true; this.clearCurrentButton.Click += new System.EventHandler(this.clearCurrentButton_Click); // // typeLabel // this.typeLabel.AutoSize = true; this.typeLabel.ForeColor = System.Drawing.SystemColors.ControlDarkDark; this.typeLabel.Location = new System.Drawing.Point(155, 9); this.typeLabel.Name = "typeLabel"; this.typeLabel.Size = new System.Drawing.Size(31, 13); this.typeLabel.TabIndex = 29; this.typeLabel.Text = "Type"; // // collisionLabel // this.collisionLabel.AutoSize = true; this.collisionLabel.ForeColor = System.Drawing.SystemColors.ControlDarkDark; this.collisionLabel.Location = new System.Drawing.Point(40, 9); this.collisionLabel.Name = "collisionLabel"; this.collisionLabel.Size = new System.Drawing.Size(45, 13); this.collisionLabel.TabIndex = 28; this.collisionLabel.Text = "Collision"; // // typeGroupBox // this.typeGroupBox.Controls.Add(this.knownTypesRadioButton); this.typeGroupBox.Controls.Add(this.valueTypeRadioButton); this.typeGroupBox.Controls.Add(this.typePainterUpDown); this.typeGroupBox.Controls.Add(this.collisionTypePainterComboBox); this.typeGroupBox.Controls.Add(this.typePainterPictureBox); this.typeGroupBox.Enabled = false; this.typeGroupBox.Location = new System.Drawing.Point(12, 301); this.typeGroupBox.Name = "typeGroupBox"; this.typeGroupBox.Size = new System.Drawing.Size(444, 134); this.typeGroupBox.TabIndex = 25; this.typeGroupBox.TabStop = false; this.typeGroupBox.Text = "Type Painter"; // // knownTypesRadioButton // this.knownTypesRadioButton.AutoSize = true; this.knownTypesRadioButton.Checked = true; this.knownTypesRadioButton.Location = new System.Drawing.Point(135, 21); this.knownTypesRadioButton.Name = "knownTypesRadioButton"; this.knownTypesRadioButton.Size = new System.Drawing.Size(90, 17); this.knownTypesRadioButton.TabIndex = 5; this.knownTypesRadioButton.TabStop = true; this.knownTypesRadioButton.Text = "Known Types"; this.knownTypesRadioButton.UseVisualStyleBackColor = true; this.knownTypesRadioButton.CheckedChanged += new System.EventHandler(this.typesRadioButton_CheckedChanged); // // valueTypeRadioButton // this.valueTypeRadioButton.AutoSize = true; this.valueTypeRadioButton.Location = new System.Drawing.Point(135, 78); this.valueTypeRadioButton.Name = "valueTypeRadioButton"; this.valueTypeRadioButton.Size = new System.Drawing.Size(52, 17); this.valueTypeRadioButton.TabIndex = 4; this.valueTypeRadioButton.Text = "Value"; this.valueTypeRadioButton.UseVisualStyleBackColor = true; this.valueTypeRadioButton.CheckedChanged += new System.EventHandler(this.valueTypeRadioButton_CheckedChanged); // // typePainterUpDown // this.typePainterUpDown.Enabled = false; this.typePainterUpDown.Hexadecimal = true; this.typePainterUpDown.Location = new System.Drawing.Point(134, 101); this.typePainterUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.typePainterUpDown.Name = "typePainterUpDown"; this.typePainterUpDown.Size = new System.Drawing.Size(78, 20); this.typePainterUpDown.TabIndex = 3; this.typePainterUpDown.ValueChanged += new System.EventHandler(this.typePainterUpDown_ValueChanged); // // collisionTypePainterComboBox // this.collisionTypePainterComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.collisionTypePainterComboBox.FormattingEnabled = true; this.collisionTypePainterComboBox.IntegralHeight = false; this.collisionTypePainterComboBox.Location = new System.Drawing.Point(135, 44); this.collisionTypePainterComboBox.MaxDropDownItems = 10; this.collisionTypePainterComboBox.Name = "collisionTypePainterComboBox"; this.collisionTypePainterComboBox.Size = new System.Drawing.Size(283, 21); this.collisionTypePainterComboBox.TabIndex = 2; this.collisionTypePainterComboBox.SelectedIndexChanged += new System.EventHandler(this.typePainterComboBox_SelectedIndexChanged); // // typePainterPictureBox // this.typePainterPictureBox.BackColor = System.Drawing.Color.White; this.typePainterPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.typePainterPictureBox.Location = new System.Drawing.Point(18, 31); this.typePainterPictureBox.Name = "typePainterPictureBox"; this.typePainterPictureBox.Size = new System.Drawing.Size(80, 80); this.typePainterPictureBox.TabIndex = 1; this.typePainterPictureBox.TabStop = false; // // collisionGroupBox // this.collisionGroupBox.Controls.Add(this.collisionPainterComboBox); this.collisionGroupBox.Controls.Add(this.collisionPainterPictureBox); this.collisionGroupBox.Location = new System.Drawing.Point(12, 167); this.collisionGroupBox.Name = "collisionGroupBox"; this.collisionGroupBox.Size = new System.Drawing.Size(444, 118); this.collisionGroupBox.TabIndex = 24; this.collisionGroupBox.TabStop = false; this.collisionGroupBox.Text = "Collision Painter"; // // collisionPainterComboBox // this.collisionPainterComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.collisionPainterComboBox.FormattingEnabled = true; this.collisionPainterComboBox.Location = new System.Drawing.Point(134, 50); this.collisionPainterComboBox.Name = "collisionPainterComboBox"; this.collisionPainterComboBox.Size = new System.Drawing.Size(284, 21); this.collisionPainterComboBox.TabIndex = 1; this.collisionPainterComboBox.SelectedIndexChanged += new System.EventHandler(this.collisionPainterComboBox_SelectedIndexChange); // // collisionPainterPictureBox // this.collisionPainterPictureBox.BackColor = System.Drawing.Color.White; this.collisionPainterPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.collisionPainterPictureBox.Location = new System.Drawing.Point(18, 23); this.collisionPainterPictureBox.Name = "collisionPainterPictureBox"; this.collisionPainterPictureBox.Size = new System.Drawing.Size(80, 80); this.collisionPainterPictureBox.TabIndex = 0; this.collisionPainterPictureBox.TabStop = false; // // selectCollisionPanel // this.selectCollisionPanel.Controls.Add(this.collisionPictureBox); this.selectCollisionPanel.Location = new System.Drawing.Point(10, 23); this.selectCollisionPanel.Name = "selectCollisionPanel"; this.selectCollisionPanel.Size = new System.Drawing.Size(102, 102); this.selectCollisionPanel.TabIndex = 30; // // collisionPictureBox // this.collisionPictureBox.BackColor = System.Drawing.Color.White; this.collisionPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.collisionPictureBox.Location = new System.Drawing.Point(3, 3); this.collisionPictureBox.Name = "collisionPictureBox"; this.collisionPictureBox.Size = new System.Drawing.Size(96, 96); this.collisionPictureBox.TabIndex = 26; this.collisionPictureBox.TabStop = false; this.collisionPictureBox.Click += new System.EventHandler(this.collisionPictureBox_Click); // // selectTypePanel // this.selectTypePanel.Controls.Add(this.typePictureBox); this.selectTypePanel.Location = new System.Drawing.Point(122, 23); this.selectTypePanel.Name = "selectTypePanel"; this.selectTypePanel.Size = new System.Drawing.Size(102, 102); this.selectTypePanel.TabIndex = 31; // // typePictureBox // this.typePictureBox.BackColor = System.Drawing.Color.White; this.typePictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.typePictureBox.Location = new System.Drawing.Point(3, 3); this.typePictureBox.Name = "typePictureBox"; this.typePictureBox.Size = new System.Drawing.Size(96, 96); this.typePictureBox.TabIndex = 27; this.typePictureBox.TabStop = false; this.typePictureBox.Click += new System.EventHandler(this.typePictureBox_Click); // // ImportMovButton // this.ImportMovButton.Image = global::DSPRE.Properties.Resources.importArrow; this.ImportMovButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.ImportMovButton.Location = new System.Drawing.Point(318, 22); this.ImportMovButton.Name = "ImportMovButton"; this.ImportMovButton.Size = new System.Drawing.Size(138, 38); this.ImportMovButton.TabIndex = 23; this.ImportMovButton.Text = "Import Permissions"; this.ImportMovButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.ImportMovButton.UseVisualStyleBackColor = true; this.ImportMovButton.Click += new System.EventHandler(this.importMovButton_Click); // // exportMovButton // this.exportMovButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportMovButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportMovButton.Location = new System.Drawing.Point(318, 64); this.exportMovButton.Name = "exportMovButton"; this.exportMovButton.Size = new System.Drawing.Size(138, 38); this.exportMovButton.TabIndex = 22; this.exportMovButton.Text = "Export Permissions"; this.exportMovButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportMovButton.UseVisualStyleBackColor = true; this.exportMovButton.Click += new System.EventHandler(this.exportMovButton_Click); // // modelTabPage // this.modelTabPage.Controls.Add(this.glbExportButton); this.modelTabPage.Controls.Add(this.daeExportButton); this.modelTabPage.Controls.Add(this.embedTexturesInMapModelCheckBox); this.modelTabPage.Controls.Add(this.modelSizeLBL); this.modelTabPage.Controls.Add(this.nsbmdSizeLabel); this.modelTabPage.Controls.Add(this.unsupported3DModelEditLBL); this.modelTabPage.Controls.Add(this.importMapButton); this.modelTabPage.Controls.Add(this.exportMapButton); this.modelTabPage.Location = new System.Drawing.Point(4, 22); this.modelTabPage.Name = "modelTabPage"; this.modelTabPage.Padding = new System.Windows.Forms.Padding(3); this.modelTabPage.Size = new System.Drawing.Size(481, 450); this.modelTabPage.TabIndex = 2; this.modelTabPage.Text = "3D Model"; this.modelTabPage.UseVisualStyleBackColor = true; // // glbExportButton // this.glbExportButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.glbExportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.glbExportButton.Location = new System.Drawing.Point(351, 156); this.glbExportButton.Margin = new System.Windows.Forms.Padding(4); this.glbExportButton.Name = "glbExportButton"; this.glbExportButton.Size = new System.Drawing.Size(120, 38); this.glbExportButton.TabIndex = 31; this.glbExportButton.Text = "Export GLB"; this.glbExportButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.glbExportButton.UseVisualStyleBackColor = true; this.glbExportButton.Click += new System.EventHandler(this.glbExportButton_Click); // // daeExportButton // this.daeExportButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.daeExportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.daeExportButton.Location = new System.Drawing.Point(351, 111); this.daeExportButton.Name = "daeExportButton"; this.daeExportButton.Size = new System.Drawing.Size(120, 38); this.daeExportButton.TabIndex = 30; this.daeExportButton.Text = "Export DAE"; this.daeExportButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.daeExportButton.UseVisualStyleBackColor = true; this.daeExportButton.Click += new System.EventHandler(this.daeExportButton_Click); // // embedTexturesInMapModelCheckBox // this.embedTexturesInMapModelCheckBox.AutoSize = true; this.embedTexturesInMapModelCheckBox.Checked = true; this.embedTexturesInMapModelCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.embedTexturesInMapModelCheckBox.Location = new System.Drawing.Point(284, 66); this.embedTexturesInMapModelCheckBox.Name = "embedTexturesInMapModelCheckBox"; this.embedTexturesInMapModelCheckBox.Size = new System.Drawing.Size(68, 17); this.embedTexturesInMapModelCheckBox.TabIndex = 29; this.embedTexturesInMapModelCheckBox.Text = "Textured"; this.embedTexturesInMapModelCheckBox.UseVisualStyleBackColor = true; // // modelSizeLBL // this.modelSizeLBL.AutoSize = true; this.modelSizeLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.modelSizeLBL.ForeColor = System.Drawing.SystemColors.ControlText; this.modelSizeLBL.Location = new System.Drawing.Point(104, 9); this.modelSizeLBL.Name = "modelSizeLBL"; this.modelSizeLBL.Size = new System.Drawing.Size(97, 16); this.modelSizeLBL.TabIndex = 28; this.modelSizeLBL.Text = "ModelSizeTXT"; // // nsbmdSizeLabel // this.nsbmdSizeLabel.AutoSize = true; this.nsbmdSizeLabel.BackColor = System.Drawing.Color.Transparent; this.nsbmdSizeLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.nsbmdSizeLabel.ForeColor = System.Drawing.SystemColors.ControlText; this.nsbmdSizeLabel.Location = new System.Drawing.Point(6, 9); this.nsbmdSizeLabel.Name = "nsbmdSizeLabel"; this.nsbmdSizeLabel.Size = new System.Drawing.Size(100, 16); this.nsbmdSizeLabel.TabIndex = 27; this.nsbmdSizeLabel.Text = "3D Model Size: "; // // unsupported3DModelEditLBL // this.unsupported3DModelEditLBL.AutoSize = true; this.unsupported3DModelEditLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F); this.unsupported3DModelEditLBL.ForeColor = System.Drawing.SystemColors.ControlText; this.unsupported3DModelEditLBL.Location = new System.Drawing.Point(132, 248); this.unsupported3DModelEditLBL.Name = "unsupported3DModelEditLBL"; this.unsupported3DModelEditLBL.Size = new System.Drawing.Size(256, 48); this.unsupported3DModelEditLBL.TabIndex = 26; this.unsupported3DModelEditLBL.Text = "DSPRE cannot edit nor create 3D models.\r\nPlease use Blender, Sketchup, or \r\nTrifi" + "ndo\'s Pokemon DS Map Studio."; this.unsupported3DModelEditLBL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // importMapButton // this.importMapButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importMapButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importMapButton.Location = new System.Drawing.Point(351, 9); this.importMapButton.Name = "importMapButton"; this.importMapButton.Size = new System.Drawing.Size(120, 38); this.importMapButton.TabIndex = 25; this.importMapButton.Text = "Import NSBMD"; this.importMapButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importMapButton.UseVisualStyleBackColor = true; this.importMapButton.Click += new System.EventHandler(this.importMapButton_Click); // // exportMapButton // this.exportMapButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportMapButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportMapButton.Location = new System.Drawing.Point(351, 54); this.exportMapButton.Name = "exportMapButton"; this.exportMapButton.Size = new System.Drawing.Size(120, 38); this.exportMapButton.TabIndex = 24; this.exportMapButton.Text = "Export NSBMD"; this.exportMapButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportMapButton.UseVisualStyleBackColor = true; this.exportMapButton.Click += new System.EventHandler(this.exportMapButton_Click); // // terrainTabPage // this.terrainTabPage.Controls.Add(this.terrainSizeLBL); this.terrainTabPage.Controls.Add(this.terrainDataLBL); this.terrainTabPage.Controls.Add(this.unsupportedBDHCEditLBL); this.terrainTabPage.Controls.Add(this.bdhcImportButton); this.terrainTabPage.Controls.Add(this.bdhcExportButton); this.terrainTabPage.Location = new System.Drawing.Point(4, 22); this.terrainTabPage.Name = "terrainTabPage"; this.terrainTabPage.Padding = new System.Windows.Forms.Padding(3); this.terrainTabPage.Size = new System.Drawing.Size(481, 450); this.terrainTabPage.TabIndex = 3; this.terrainTabPage.Text = "Terrain Data"; this.terrainTabPage.UseVisualStyleBackColor = true; // // terrainSizeLBL // this.terrainSizeLBL.AutoSize = true; this.terrainSizeLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.terrainSizeLBL.Location = new System.Drawing.Point(124, 9); this.terrainSizeLBL.Name = "terrainSizeLBL"; this.terrainSizeLBL.Size = new System.Drawing.Size(102, 16); this.terrainSizeLBL.TabIndex = 30; this.terrainSizeLBL.Text = "TerrainSizeTXT"; // // terrainDataLBL // this.terrainDataLBL.AutoSize = true; this.terrainDataLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.terrainDataLBL.Location = new System.Drawing.Point(6, 9); this.terrainDataLBL.Name = "terrainDataLBL"; this.terrainDataLBL.Size = new System.Drawing.Size(117, 16); this.terrainDataLBL.TabIndex = 29; this.terrainDataLBL.Text = "Terrain Data Size: "; // // unsupportedBDHCEditLBL // this.unsupportedBDHCEditLBL.AutoSize = true; this.unsupportedBDHCEditLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.unsupportedBDHCEditLBL.Location = new System.Drawing.Point(113, 257); this.unsupportedBDHCEditLBL.Name = "unsupportedBDHCEditLBL"; this.unsupportedBDHCEditLBL.Size = new System.Drawing.Size(290, 32); this.unsupportedBDHCEditLBL.TabIndex = 28; this.unsupportedBDHCEditLBL.Text = "DSPRE cannot edit nor create BDHC data.\r\nPlease use Trifindo\'s Pokemon DS Map Stu" + "dio."; this.unsupportedBDHCEditLBL.TextAlign = System.Drawing.ContentAlignment.TopCenter; // // bdhcImportButton // this.bdhcImportButton.Image = global::DSPRE.Properties.Resources.importArrow; this.bdhcImportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.bdhcImportButton.Location = new System.Drawing.Point(351, 9); this.bdhcImportButton.Name = "bdhcImportButton"; this.bdhcImportButton.Size = new System.Drawing.Size(120, 38); this.bdhcImportButton.TabIndex = 27; this.bdhcImportButton.Text = "Import BDHC"; this.bdhcImportButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.bdhcImportButton.UseVisualStyleBackColor = true; this.bdhcImportButton.Click += new System.EventHandler(this.bdhcImportButton_Click); // // bdhcExportButton // this.bdhcExportButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.bdhcExportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.bdhcExportButton.Location = new System.Drawing.Point(351, 54); this.bdhcExportButton.Name = "bdhcExportButton"; this.bdhcExportButton.Size = new System.Drawing.Size(120, 38); this.bdhcExportButton.TabIndex = 26; this.bdhcExportButton.Text = "Export BDHC"; this.bdhcExportButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.bdhcExportButton.UseVisualStyleBackColor = true; this.bdhcExportButton.Click += new System.EventHandler(this.bdhcExportButton_Click); // // bgsTabPage // this.bgsTabPage.Controls.Add(this.blankBGSButton); this.bgsTabPage.Controls.Add(this.BGSSizeLBL); this.bgsTabPage.Controls.Add(this.bgsDataLBL); this.bgsTabPage.Controls.Add(this.unsupportedBGSEditLBL); this.bgsTabPage.Controls.Add(this.soundPlatesImportButton); this.bgsTabPage.Controls.Add(this.soundPlatesExportButton); this.bgsTabPage.Location = new System.Drawing.Point(4, 22); this.bgsTabPage.Name = "bgsTabPage"; this.bgsTabPage.Size = new System.Drawing.Size(481, 450); this.bgsTabPage.TabIndex = 4; this.bgsTabPage.Text = "Sound Plates"; this.bgsTabPage.UseVisualStyleBackColor = true; // // blankBGSButton // this.blankBGSButton.Image = global::DSPRE.Properties.Resources.muteIcon; this.blankBGSButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.blankBGSButton.Location = new System.Drawing.Point(344, 112); this.blankBGSButton.Name = "blankBGSButton"; this.blankBGSButton.Size = new System.Drawing.Size(120, 38); this.blankBGSButton.TabIndex = 34; this.blankBGSButton.Text = "Blank BGS"; this.blankBGSButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.blankBGSButton.UseVisualStyleBackColor = true; this.blankBGSButton.Click += new System.EventHandler(this.soundPlatesBlankButton_Click); // // BGSSizeLBL // this.BGSSizeLBL.AutoSize = true; this.BGSSizeLBL.BackColor = System.Drawing.Color.Transparent; this.BGSSizeLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.BGSSizeLBL.ForeColor = System.Drawing.SystemColors.ControlText; this.BGSSizeLBL.Location = new System.Drawing.Point(73, 9); this.BGSSizeLBL.Name = "BGSSizeLBL"; this.BGSSizeLBL.Size = new System.Drawing.Size(84, 16); this.BGSSizeLBL.TabIndex = 33; this.BGSSizeLBL.Text = "BGSSizeLBL"; // // bgsDataLBL // this.bgsDataLBL.AutoSize = true; this.bgsDataLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.bgsDataLBL.Location = new System.Drawing.Point(7, 9); this.bgsDataLBL.Name = "bgsDataLBL"; this.bgsDataLBL.Size = new System.Drawing.Size(73, 16); this.bgsDataLBL.TabIndex = 32; this.bgsDataLBL.Text = "BGS Data: "; // // unsupportedBGSEditLBL // this.unsupportedBGSEditLBL.AutoSize = true; this.unsupportedBGSEditLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.unsupportedBGSEditLBL.Location = new System.Drawing.Point(73, 266); this.unsupportedBGSEditLBL.Name = "unsupportedBGSEditLBL"; this.unsupportedBGSEditLBL.Size = new System.Drawing.Size(338, 32); this.unsupportedBGSEditLBL.TabIndex = 31; this.unsupportedBGSEditLBL.Text = "DSPRE cannot edit nor create Background Sound Files.\r\nPlease use Trifindo\'s Pokem" + "on DS Map Studio.\r\n"; this.unsupportedBGSEditLBL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // soundPlatesImportButton // this.soundPlatesImportButton.Image = global::DSPRE.Properties.Resources.importArrow; this.soundPlatesImportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.soundPlatesImportButton.Location = new System.Drawing.Point(344, 10); this.soundPlatesImportButton.Name = "soundPlatesImportButton"; this.soundPlatesImportButton.Size = new System.Drawing.Size(120, 38); this.soundPlatesImportButton.TabIndex = 30; this.soundPlatesImportButton.Text = "Import BGS"; this.soundPlatesImportButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.soundPlatesImportButton.UseVisualStyleBackColor = true; this.soundPlatesImportButton.Click += new System.EventHandler(this.soundPlatesImportButton_Click); // // soundPlatesExportButton // this.soundPlatesExportButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.soundPlatesExportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.soundPlatesExportButton.Location = new System.Drawing.Point(344, 55); this.soundPlatesExportButton.Name = "soundPlatesExportButton"; this.soundPlatesExportButton.Size = new System.Drawing.Size(120, 38); this.soundPlatesExportButton.TabIndex = 29; this.soundPlatesExportButton.Text = "Export BGS"; this.soundPlatesExportButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.soundPlatesExportButton.UseVisualStyleBackColor = true; this.soundPlatesExportButton.Click += new System.EventHandler(this.soundPlatesExportButton_Click); // // radio3D // this.radio3D.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.radio3D.Appearance = System.Windows.Forms.Appearance.Button; this.radio3D.AutoSize = true; this.radio3D.Checked = true; this.radio3D.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.radio3D.Location = new System.Drawing.Point(147, -566); this.radio3D.Name = "radio3D"; this.radio3D.Size = new System.Drawing.Size(31, 23); this.radio3D.TabIndex = 26; this.radio3D.TabStop = true; this.radio3D.Text = "3D"; this.radio3D.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.radio3D.UseVisualStyleBackColor = true; // // radio2D // this.radio2D.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.radio2D.Appearance = System.Windows.Forms.Appearance.Button; this.radio2D.AutoSize = true; this.radio2D.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.radio2D.Location = new System.Drawing.Point(147, -595); this.radio2D.Name = "radio2D"; this.radio2D.Size = new System.Drawing.Size(31, 23); this.radio2D.TabIndex = 25; this.radio2D.Text = "2D"; this.radio2D.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.radio2D.UseVisualStyleBackColor = true; this.radio2D.CheckedChanged += new System.EventHandler(this.radio2D_CheckedChanged); // // wireframeCheckBox // this.wireframeCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.wireframeCheckBox.Appearance = System.Windows.Forms.Appearance.Button; this.wireframeCheckBox.AutoSize = true; this.wireframeCheckBox.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.wireframeCheckBox.Location = new System.Drawing.Point(1140, -537); this.wireframeCheckBox.Name = "wireframeCheckBox"; this.wireframeCheckBox.Size = new System.Drawing.Size(31, 23); this.wireframeCheckBox.TabIndex = 27; this.wireframeCheckBox.Text = " W"; this.wireframeCheckBox.UseVisualStyleBackColor = true; this.wireframeCheckBox.CheckedChanged += new System.EventHandler(this.wireframeCheckBox_CheckedChanged); // // nsbtxEditorTabPage // this.nsbtxEditorTabPage.Controls.Add(this.groupBox7); this.nsbtxEditorTabPage.ImageIndex = 6; this.nsbtxEditorTabPage.Location = new System.Drawing.Point(4, 23); this.nsbtxEditorTabPage.Name = "nsbtxEditorTabPage"; this.nsbtxEditorTabPage.Padding = new System.Windows.Forms.Padding(3); this.nsbtxEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.nsbtxEditorTabPage.TabIndex = 6; this.nsbtxEditorTabPage.Text = "NSBTX Editor"; this.nsbtxEditorTabPage.UseVisualStyleBackColor = true; // // groupBox7 // this.groupBox7.Controls.Add(this.tableLayoutPanel37); this.groupBox7.Controls.Add(this.locateCurrentNsbtx); this.groupBox7.Controls.Add(this.removeNSBTXButton); this.groupBox7.Controls.Add(this.areaDataGroupBox); this.groupBox7.Controls.Add(this.addNSBTXButton); this.groupBox7.Controls.Add(this.exportNSBTXButton); this.groupBox7.Controls.Add(this.importNSBTXButton); this.groupBox7.Controls.Add(this.texturePictureBox); this.groupBox7.Controls.Add(this.palettesLabel); this.groupBox7.Controls.Add(this.texturesLabel); this.groupBox7.Controls.Add(this.palettesListBox); this.groupBox7.Controls.Add(this.texturesListBox); this.groupBox7.Controls.Add(this.buildingsTilesetRadioButton); this.groupBox7.Controls.Add(this.mapTilesetRadioButton); this.groupBox7.Controls.Add(this.texturePacksListBox); this.groupBox7.Location = new System.Drawing.Point(6, 6); this.groupBox7.Name = "groupBox7"; this.groupBox7.Size = new System.Drawing.Size(1171, 599); this.groupBox7.TabIndex = 1; this.groupBox7.TabStop = false; this.groupBox7.Text = "Texture Packs"; // // tableLayoutPanel37 // this.tableLayoutPanel37.ColumnCount = 1; this.tableLayoutPanel37.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel37.Controls.Add(this.groupBox35, 0, 2); this.tableLayoutPanel37.Controls.Add(this.repositionImageButton, 0, 0); this.tableLayoutPanel37.Controls.Add(this.invertDragCheckbox, 0, 1); this.tableLayoutPanel37.Location = new System.Drawing.Point(1007, 52); this.tableLayoutPanel37.Name = "tableLayoutPanel37"; this.tableLayoutPanel37.RowCount = 3; this.tableLayoutPanel37.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel37.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel37.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel37.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel37.Size = new System.Drawing.Size(85, 256); this.tableLayoutPanel37.TabIndex = 42; // // groupBox35 // this.groupBox35.Controls.Add(this.tableLayoutPanel38); this.groupBox35.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox35.Location = new System.Drawing.Point(3, 78); this.groupBox35.Name = "groupBox35"; this.groupBox35.Padding = new System.Windows.Forms.Padding(4); this.groupBox35.Size = new System.Drawing.Size(79, 178); this.groupBox35.TabIndex = 23; this.groupBox35.TabStop = false; this.groupBox35.Text = "Scaling"; // // tableLayoutPanel38 // this.tableLayoutPanel38.AutoSize = true; this.tableLayoutPanel38.ColumnCount = 2; this.tableLayoutPanel38.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel38.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel38.Controls.Add(this.scalingLabel, 1, 0); this.tableLayoutPanel38.Controls.Add(this.scalingTrackBar, 0, 0); this.tableLayoutPanel38.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel38.Location = new System.Drawing.Point(4, 17); this.tableLayoutPanel38.Name = "tableLayoutPanel38"; this.tableLayoutPanel38.Padding = new System.Windows.Forms.Padding(4); this.tableLayoutPanel38.RowCount = 1; this.tableLayoutPanel38.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel38.Size = new System.Drawing.Size(71, 157); this.tableLayoutPanel38.TabIndex = 0; // // scalingLabel // this.scalingLabel.AutoSize = true; this.scalingLabel.Dock = System.Windows.Forms.DockStyle.Fill; this.scalingLabel.Location = new System.Drawing.Point(40, 4); this.scalingLabel.Name = "scalingLabel"; this.scalingLabel.Size = new System.Drawing.Size(24, 149); this.scalingLabel.TabIndex = 3; this.scalingLabel.Text = "x1"; this.scalingLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // scalingTrackBar // this.scalingTrackBar.AutoSize = false; this.scalingTrackBar.Dock = System.Windows.Forms.DockStyle.Fill; this.scalingTrackBar.LargeChange = 1; this.scalingTrackBar.Location = new System.Drawing.Point(7, 7); this.scalingTrackBar.Maximum = 5; this.scalingTrackBar.Minimum = -1; this.scalingTrackBar.Name = "scalingTrackBar"; this.scalingTrackBar.Orientation = System.Windows.Forms.Orientation.Vertical; this.scalingTrackBar.Size = new System.Drawing.Size(27, 143); this.scalingTrackBar.TabIndex = 2; this.scalingTrackBar.Scroll += new System.EventHandler(this.scalingTrackBar_Scroll); // // repositionImageButton // this.repositionImageButton.Dock = System.Windows.Forms.DockStyle.Fill; this.repositionImageButton.Location = new System.Drawing.Point(3, 3); this.repositionImageButton.Name = "repositionImageButton"; this.repositionImageButton.Size = new System.Drawing.Size(79, 40); this.repositionImageButton.TabIndex = 21; this.repositionImageButton.Text = "Reposition"; this.repositionImageButton.UseVisualStyleBackColor = true; this.repositionImageButton.Click += new System.EventHandler(this.repositionImageButton_Click); // // invertDragCheckbox // this.invertDragCheckbox.Appearance = System.Windows.Forms.Appearance.Button; this.invertDragCheckbox.AutoSize = true; this.invertDragCheckbox.Checked = true; this.invertDragCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.invertDragCheckbox.Dock = System.Windows.Forms.DockStyle.Fill; this.invertDragCheckbox.Location = new System.Drawing.Point(3, 49); this.invertDragCheckbox.Name = "invertDragCheckbox"; this.invertDragCheckbox.Size = new System.Drawing.Size(79, 23); this.invertDragCheckbox.TabIndex = 22; this.invertDragCheckbox.Text = "Invert Drag"; this.invertDragCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.invertDragCheckbox.UseVisualStyleBackColor = true; this.invertDragCheckbox.CheckedChanged += new System.EventHandler(this.invertDragCheckbox_CheckedChanged); // // locateCurrentNsbtx // this.locateCurrentNsbtx.Image = global::DSPRE.Properties.Resources.open_file; this.locateCurrentNsbtx.Location = new System.Drawing.Point(438, 20); this.locateCurrentNsbtx.Name = "locateCurrentNsbtx"; this.locateCurrentNsbtx.Size = new System.Drawing.Size(42, 40); this.locateCurrentNsbtx.TabIndex = 41; this.locateCurrentNsbtx.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.locateCurrentNsbtx.UseVisualStyleBackColor = true; this.locateCurrentNsbtx.Click += new System.EventHandler(this.locateCurrentNsbtx_Click); // // removeNSBTXButton // this.removeNSBTXButton.Image = ((System.Drawing.Image)(resources.GetObject("removeNSBTXButton.Image"))); this.removeNSBTXButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeNSBTXButton.Location = new System.Drawing.Point(331, 18); this.removeNSBTXButton.Name = "removeNSBTXButton"; this.removeNSBTXButton.Size = new System.Drawing.Size(94, 44); this.removeNSBTXButton.TabIndex = 11; this.removeNSBTXButton.Text = "Remove Last"; this.removeNSBTXButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeNSBTXButton.UseVisualStyleBackColor = true; this.removeNSBTXButton.Click += new System.EventHandler(this.removeNSBTXButton_Click); // // areaDataGroupBox // this.areaDataGroupBox.Controls.Add(this.locateCurrentAreaData); this.areaDataGroupBox.Controls.Add(this.exportAreaDataButton); this.areaDataGroupBox.Controls.Add(this.areaTypeGroupbox); this.areaDataGroupBox.Controls.Add(this.importAreaDataButton); this.areaDataGroupBox.Controls.Add(this.removeAreaDataButton); this.areaDataGroupBox.Controls.Add(this.addAreaDataButton); this.areaDataGroupBox.Controls.Add(this.saveAreaDataButton); this.areaDataGroupBox.Controls.Add(this.label35); this.areaDataGroupBox.Controls.Add(this.areaDataDynamicTexturesNumericUpDown); this.areaDataGroupBox.Controls.Add(this.label34); this.areaDataGroupBox.Controls.Add(this.areaDataLightTypeComboBox); this.areaDataGroupBox.Controls.Add(this.label33); this.areaDataGroupBox.Controls.Add(this.areaDataMapTilesetUpDown); this.areaDataGroupBox.Controls.Add(this.label32); this.areaDataGroupBox.Controls.Add(this.areaDataBuildingTilesetUpDown); this.areaDataGroupBox.Controls.Add(this.selectAreaDataListBox); this.areaDataGroupBox.Location = new System.Drawing.Point(641, 333); this.areaDataGroupBox.Name = "areaDataGroupBox"; this.areaDataGroupBox.Size = new System.Drawing.Size(511, 249); this.areaDataGroupBox.TabIndex = 0; this.areaDataGroupBox.TabStop = false; this.areaDataGroupBox.Text = "Area Data"; // // locateCurrentAreaData // this.locateCurrentAreaData.Image = global::DSPRE.Properties.Resources.open_file; this.locateCurrentAreaData.Location = new System.Drawing.Point(395, 74); this.locateCurrentAreaData.Name = "locateCurrentAreaData"; this.locateCurrentAreaData.Size = new System.Drawing.Size(42, 40); this.locateCurrentAreaData.TabIndex = 42; this.locateCurrentAreaData.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.locateCurrentAreaData.UseVisualStyleBackColor = true; this.locateCurrentAreaData.Click += new System.EventHandler(this.locateCurrentAreaData_Click); // // exportAreaDataButton // this.exportAreaDataButton.Image = ((System.Drawing.Image)(resources.GetObject("exportAreaDataButton.Image"))); this.exportAreaDataButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportAreaDataButton.Location = new System.Drawing.Point(177, 72); this.exportAreaDataButton.Name = "exportAreaDataButton"; this.exportAreaDataButton.Size = new System.Drawing.Size(107, 45); this.exportAreaDataButton.TabIndex = 13; this.exportAreaDataButton.Text = "Export \r\nSelected"; this.exportAreaDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportAreaDataButton.UseVisualStyleBackColor = true; this.exportAreaDataButton.Click += new System.EventHandler(this.exportAreaDataButton_Click); // // areaTypeGroupbox // this.areaTypeGroupbox.Controls.Add(this.outdoorAreaRadioButton); this.areaTypeGroupbox.Controls.Add(this.indoorAreaRadioButton); this.areaTypeGroupbox.Enabled = false; this.areaTypeGroupbox.Location = new System.Drawing.Point(188, 185); this.areaTypeGroupbox.Name = "areaTypeGroupbox"; this.areaTypeGroupbox.Size = new System.Drawing.Size(154, 52); this.areaTypeGroupbox.TabIndex = 15; this.areaTypeGroupbox.TabStop = false; this.areaTypeGroupbox.Text = "Area Type"; // // outdoorAreaRadioButton // this.outdoorAreaRadioButton.Appearance = System.Windows.Forms.Appearance.Button; this.outdoorAreaRadioButton.Checked = true; this.outdoorAreaRadioButton.Location = new System.Drawing.Point(80, 19); this.outdoorAreaRadioButton.Name = "outdoorAreaRadioButton"; this.outdoorAreaRadioButton.Size = new System.Drawing.Size(61, 25); this.outdoorAreaRadioButton.TabIndex = 1; this.outdoorAreaRadioButton.TabStop = true; this.outdoorAreaRadioButton.Text = "Outdoor"; this.outdoorAreaRadioButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.outdoorAreaRadioButton.UseVisualStyleBackColor = true; // // indoorAreaRadioButton // this.indoorAreaRadioButton.Appearance = System.Windows.Forms.Appearance.Button; this.indoorAreaRadioButton.Location = new System.Drawing.Point(13, 19); this.indoorAreaRadioButton.Name = "indoorAreaRadioButton"; this.indoorAreaRadioButton.Size = new System.Drawing.Size(61, 25); this.indoorAreaRadioButton.TabIndex = 0; this.indoorAreaRadioButton.Text = "Indoor"; this.indoorAreaRadioButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.indoorAreaRadioButton.UseVisualStyleBackColor = true; this.indoorAreaRadioButton.CheckedChanged += new System.EventHandler(this.indoorAreaRadioButton_CheckedChanged); // // importAreaDataButton // this.importAreaDataButton.Image = ((System.Drawing.Image)(resources.GetObject("importAreaDataButton.Image"))); this.importAreaDataButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importAreaDataButton.Location = new System.Drawing.Point(286, 72); this.importAreaDataButton.Name = "importAreaDataButton"; this.importAreaDataButton.Size = new System.Drawing.Size(107, 45); this.importAreaDataButton.TabIndex = 12; this.importAreaDataButton.Text = "Import and\r\nReplace"; this.importAreaDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importAreaDataButton.UseVisualStyleBackColor = true; this.importAreaDataButton.Click += new System.EventHandler(this.importAreaDataButton_Click); // // removeAreaDataButton // this.removeAreaDataButton.Image = ((System.Drawing.Image)(resources.GetObject("removeAreaDataButton.Image"))); this.removeAreaDataButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeAreaDataButton.Location = new System.Drawing.Point(395, 23); this.removeAreaDataButton.Name = "removeAreaDataButton"; this.removeAreaDataButton.Size = new System.Drawing.Size(107, 45); this.removeAreaDataButton.TabIndex = 14; this.removeAreaDataButton.Text = "Remove Last"; this.removeAreaDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeAreaDataButton.UseVisualStyleBackColor = true; this.removeAreaDataButton.Click += new System.EventHandler(this.removeAreaDataButton_Click); // // addAreaDataButton // this.addAreaDataButton.Image = ((System.Drawing.Image)(resources.GetObject("addAreaDataButton.Image"))); this.addAreaDataButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addAreaDataButton.Location = new System.Drawing.Point(286, 23); this.addAreaDataButton.Name = "addAreaDataButton"; this.addAreaDataButton.Size = new System.Drawing.Size(107, 45); this.addAreaDataButton.TabIndex = 13; this.addAreaDataButton.Text = "Add Area Data"; this.addAreaDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addAreaDataButton.UseVisualStyleBackColor = true; this.addAreaDataButton.Click += new System.EventHandler(this.addAreaDataButton_Click); // // saveAreaDataButton // this.saveAreaDataButton.Image = global::DSPRE.Properties.Resources.save_rom; this.saveAreaDataButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveAreaDataButton.Location = new System.Drawing.Point(177, 23); this.saveAreaDataButton.Name = "saveAreaDataButton"; this.saveAreaDataButton.Size = new System.Drawing.Size(107, 45); this.saveAreaDataButton.TabIndex = 12; this.saveAreaDataButton.Text = "&Save \r\nArea Data"; this.saveAreaDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveAreaDataButton.UseVisualStyleBackColor = true; this.saveAreaDataButton.Click += new System.EventHandler(this.saveAreaDataButton_Click); // // label35 // this.label35.AutoSize = true; this.label35.Location = new System.Drawing.Point(397, 141); this.label35.Name = "label35"; this.label35.Size = new System.Drawing.Size(76, 13); this.label35.TabIndex = 8; this.label35.Text = "Global NSBTA"; // // areaDataDynamicTexturesNumericUpDown // this.areaDataDynamicTexturesNumericUpDown.Enabled = false; this.areaDataDynamicTexturesNumericUpDown.Location = new System.Drawing.Point(400, 157); this.areaDataDynamicTexturesNumericUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.areaDataDynamicTexturesNumericUpDown.Name = "areaDataDynamicTexturesNumericUpDown"; this.areaDataDynamicTexturesNumericUpDown.Size = new System.Drawing.Size(82, 20); this.areaDataDynamicTexturesNumericUpDown.TabIndex = 7; this.areaDataDynamicTexturesNumericUpDown.ValueChanged += new System.EventHandler(this.areaDataDynamicTexturesUpDown_ValueChanged); // // label34 // this.label34.AutoSize = true; this.label34.Location = new System.Drawing.Point(352, 191); this.label34.Name = "label34"; this.label34.Size = new System.Drawing.Size(53, 13); this.label34.TabIndex = 6; this.label34.Text = "Light type"; // // areaDataLightTypeComboBox // this.areaDataLightTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.areaDataLightTypeComboBox.FormattingEnabled = true; this.areaDataLightTypeComboBox.Location = new System.Drawing.Point(355, 207); this.areaDataLightTypeComboBox.Name = "areaDataLightTypeComboBox"; this.areaDataLightTypeComboBox.Size = new System.Drawing.Size(137, 21); this.areaDataLightTypeComboBox.TabIndex = 5; this.areaDataLightTypeComboBox.SelectedIndexChanged += new System.EventHandler(this.areaDataLightTypeComboBox_SelectedIndexChanged); // // label33 // this.label33.AutoSize = true; this.label33.Location = new System.Drawing.Point(187, 141); this.label33.Name = "label33"; this.label33.Size = new System.Drawing.Size(72, 13); this.label33.TabIndex = 4; this.label33.Text = "Map Textures"; // // areaDataMapTilesetUpDown // this.areaDataMapTilesetUpDown.Location = new System.Drawing.Point(191, 157); this.areaDataMapTilesetUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.areaDataMapTilesetUpDown.Name = "areaDataMapTilesetUpDown"; this.areaDataMapTilesetUpDown.Size = new System.Drawing.Size(82, 20); this.areaDataMapTilesetUpDown.TabIndex = 3; this.areaDataMapTilesetUpDown.ValueChanged += new System.EventHandler(this.areaDataMapTilesetUpDown_ValueChanged); // // label32 // this.label32.AutoSize = true; this.label32.Location = new System.Drawing.Point(293, 141); this.label32.Name = "label32"; this.label32.Size = new System.Drawing.Size(88, 13); this.label32.TabIndex = 2; this.label32.Text = "Building Textures"; // // areaDataBuildingTilesetUpDown // this.areaDataBuildingTilesetUpDown.Location = new System.Drawing.Point(296, 157); this.areaDataBuildingTilesetUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.areaDataBuildingTilesetUpDown.Name = "areaDataBuildingTilesetUpDown"; this.areaDataBuildingTilesetUpDown.Size = new System.Drawing.Size(82, 20); this.areaDataBuildingTilesetUpDown.TabIndex = 1; this.areaDataBuildingTilesetUpDown.ValueChanged += new System.EventHandler(this.areaDataBuildingTilesetUpDown_ValueChanged); // // selectAreaDataListBox // this.selectAreaDataListBox.FormattingEnabled = true; this.selectAreaDataListBox.Location = new System.Drawing.Point(12, 24); this.selectAreaDataListBox.Name = "selectAreaDataListBox"; this.selectAreaDataListBox.Size = new System.Drawing.Size(156, 212); this.selectAreaDataListBox.TabIndex = 0; this.selectAreaDataListBox.SelectedIndexChanged += new System.EventHandler(this.selectAreaDataListBox_SelectedIndexChanged); // // addNSBTXButton // this.addNSBTXButton.Image = ((System.Drawing.Image)(resources.GetObject("addNSBTXButton.Image"))); this.addNSBTXButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addNSBTXButton.Location = new System.Drawing.Point(240, 18); this.addNSBTXButton.Name = "addNSBTXButton"; this.addNSBTXButton.Size = new System.Drawing.Size(88, 44); this.addNSBTXButton.TabIndex = 10; this.addNSBTXButton.Text = "Add NSBTX"; this.addNSBTXButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addNSBTXButton.UseVisualStyleBackColor = true; this.addNSBTXButton.Click += new System.EventHandler(this.addNSBTXButton_Click); // // exportNSBTXButton // this.exportNSBTXButton.Image = ((System.Drawing.Image)(resources.GetObject("exportNSBTXButton.Image"))); this.exportNSBTXButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportNSBTXButton.Location = new System.Drawing.Point(125, 18); this.exportNSBTXButton.Name = "exportNSBTXButton"; this.exportNSBTXButton.Size = new System.Drawing.Size(92, 44); this.exportNSBTXButton.TabIndex = 9; this.exportNSBTXButton.Text = "&Export\r\nSelected"; this.exportNSBTXButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportNSBTXButton.UseVisualStyleBackColor = true; this.exportNSBTXButton.Click += new System.EventHandler(this.exportNSBTXButton_Click); // // importNSBTXButton // this.importNSBTXButton.Image = ((System.Drawing.Image)(resources.GetObject("importNSBTXButton.Image"))); this.importNSBTXButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importNSBTXButton.Location = new System.Drawing.Point(21, 18); this.importNSBTXButton.Name = "importNSBTXButton"; this.importNSBTXButton.Size = new System.Drawing.Size(100, 44); this.importNSBTXButton.TabIndex = 8; this.importNSBTXButton.Text = "&Replace\r\nSelected..."; this.importNSBTXButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importNSBTXButton.UseVisualStyleBackColor = true; this.importNSBTXButton.Click += new System.EventHandler(this.importNSBTXButton_Click); // // texturePictureBox // this.texturePictureBox.BackColor = System.Drawing.Color.White; this.texturePictureBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.texturePictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.texturePictureBox.Image = global::DSPRE.Properties.Resources.alphabgCheckerboard; this.texturePictureBox.invertDrag = true; this.texturePictureBox.Location = new System.Drawing.Point(732, 52); this.texturePictureBox.Name = "texturePictureBox"; this.texturePictureBox.Size = new System.Drawing.Size(256, 256); this.texturePictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.texturePictureBox.TabIndex = 7; this.texturePictureBox.TabStop = false; // // palettesLabel // this.palettesLabel.AutoSize = true; this.palettesLabel.Location = new System.Drawing.Point(435, 68); this.palettesLabel.Name = "palettesLabel"; this.palettesLabel.Size = new System.Drawing.Size(45, 13); this.palettesLabel.TabIndex = 6; this.palettesLabel.Text = "Palettes"; // // texturesLabel // this.texturesLabel.AutoSize = true; this.texturesLabel.Location = new System.Drawing.Point(237, 68); this.texturesLabel.Name = "texturesLabel"; this.texturesLabel.Size = new System.Drawing.Size(48, 13); this.texturesLabel.TabIndex = 5; this.texturesLabel.Text = "Textures"; // // palettesListBox // this.palettesListBox.FormattingEnabled = true; this.palettesListBox.Location = new System.Drawing.Point(438, 84); this.palettesListBox.Name = "palettesListBox"; this.palettesListBox.Size = new System.Drawing.Size(185, 498); this.palettesListBox.TabIndex = 4; this.palettesListBox.SelectedIndexChanged += new System.EventHandler(this.palettesListBox_SelectedIndexChanged); // // texturesListBox // this.texturesListBox.FormattingEnabled = true; this.texturesListBox.Location = new System.Drawing.Point(240, 84); this.texturesListBox.Name = "texturesListBox"; this.texturesListBox.Size = new System.Drawing.Size(185, 498); this.texturesListBox.TabIndex = 3; this.texturesListBox.SelectedIndexChanged += new System.EventHandler(this.texturesListBox_SelectedIndexChanged); // // buildingsTilesetRadioButton // this.buildingsTilesetRadioButton.AutoSize = true; this.buildingsTilesetRadioButton.Location = new System.Drawing.Point(115, 66); this.buildingsTilesetRadioButton.Name = "buildingsTilesetRadioButton"; this.buildingsTilesetRadioButton.Size = new System.Drawing.Size(106, 17); this.buildingsTilesetRadioButton.TabIndex = 2; this.buildingsTilesetRadioButton.Text = "Buildings NSBTX"; this.buildingsTilesetRadioButton.UseVisualStyleBackColor = true; this.buildingsTilesetRadioButton.CheckedChanged += new System.EventHandler(this.buildingsTilesetRadioButton_CheckedChanged); // // mapTilesetRadioButton // this.mapTilesetRadioButton.AutoSize = true; this.mapTilesetRadioButton.Checked = true; this.mapTilesetRadioButton.Location = new System.Drawing.Point(21, 66); this.mapTilesetRadioButton.Name = "mapTilesetRadioButton"; this.mapTilesetRadioButton.Size = new System.Drawing.Size(90, 17); this.mapTilesetRadioButton.TabIndex = 1; this.mapTilesetRadioButton.TabStop = true; this.mapTilesetRadioButton.Text = "Maps NSBTX"; this.mapTilesetRadioButton.UseVisualStyleBackColor = true; this.mapTilesetRadioButton.CheckedChanged += new System.EventHandler(this.mapTilesetRadioButton_CheckedChanged); // // texturePacksListBox // this.texturePacksListBox.FormattingEnabled = true; this.texturePacksListBox.Location = new System.Drawing.Point(21, 84); this.texturePacksListBox.Name = "texturePacksListBox"; this.texturePacksListBox.Size = new System.Drawing.Size(196, 498); this.texturePacksListBox.TabIndex = 0; this.texturePacksListBox.SelectedIndexChanged += new System.EventHandler(this.texturePacksListBox_SelectedIndexChanged); // // eventEditorTabPage // this.eventEditorTabPage.BackColor = System.Drawing.SystemColors.Window; this.eventEditorTabPage.Controls.Add(this.locateCurrentEvFile); this.eventEditorTabPage.Controls.Add(this.groupBox21); this.eventEditorTabPage.Controls.Add(this.RightClickLabel); this.eventEditorTabPage.Controls.Add(this.WheelClickLabel); this.eventEditorTabPage.Controls.Add(this.LeftClickLabel); this.eventEditorTabPage.Controls.Add(this.eventMatrixYUpDown); this.eventEditorTabPage.Controls.Add(this.eventMatrixXUpDown); this.eventEditorTabPage.Controls.Add(this.eventMatrixYLabel); this.eventEditorTabPage.Controls.Add(this.eventMatrixXLabel); this.eventEditorTabPage.Controls.Add(this.matrixNavigatorLabel); this.eventEditorTabPage.Controls.Add(this.eventMatrixPanel); this.eventEditorTabPage.Controls.Add(this.selectEventComboBox); this.eventEditorTabPage.Controls.Add(this.backgroundMapLabel); this.eventEditorTabPage.Controls.Add(this.eventMatrixUpDown); this.eventEditorTabPage.Controls.Add(this.eventsTabControl); this.eventEditorTabPage.Controls.Add(this.eventPanel); this.eventEditorTabPage.Controls.Add(this.rightClickPicture); this.eventEditorTabPage.Controls.Add(this.wheelClickPicture); this.eventEditorTabPage.Controls.Add(this.LeftClickPicture); this.eventEditorTabPage.Controls.Add(this.removeEventFileButton); this.eventEditorTabPage.Controls.Add(this.addEventFileButton); this.eventEditorTabPage.Controls.Add(this.eventShiftRightButton); this.eventEditorTabPage.Controls.Add(this.eventShiftLeftButton); this.eventEditorTabPage.Controls.Add(this.eventShiftUpButton); this.eventEditorTabPage.Controls.Add(this.eventShiftDownButton); this.eventEditorTabPage.Controls.Add(this.exportEventFileButton); this.eventEditorTabPage.Controls.Add(this.importEventFileButton); this.eventEditorTabPage.Controls.Add(this.saveEventsButton); this.eventEditorTabPage.ImageIndex = 3; this.eventEditorTabPage.Location = new System.Drawing.Point(4, 23); this.eventEditorTabPage.Name = "eventEditorTabPage"; this.eventEditorTabPage.Padding = new System.Windows.Forms.Padding(3); this.eventEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.eventEditorTabPage.TabIndex = 3; this.eventEditorTabPage.Text = "Event Editor"; this.eventEditorTabPage.Enter += new System.EventHandler(this.eventEditorTabPage_Enter); // // locateCurrentEvFile // this.locateCurrentEvFile.Image = global::DSPRE.Properties.Resources.open_file; this.locateCurrentEvFile.Location = new System.Drawing.Point(461, 14); this.locateCurrentEvFile.Name = "locateCurrentEvFile"; this.locateCurrentEvFile.Size = new System.Drawing.Size(42, 40); this.locateCurrentEvFile.TabIndex = 62; this.locateCurrentEvFile.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.locateCurrentEvFile.UseVisualStyleBackColor = true; this.locateCurrentEvFile.Click += new System.EventHandler(this.locateCurrentEvFile_Click); // // groupBox21 // this.groupBox21.Controls.Add(this.showTriggersCheckBox); this.groupBox21.Controls.Add(this.showWarpsCheckBox); this.groupBox21.Controls.Add(this.showOwsCheckBox); this.groupBox21.Controls.Add(this.showSpawnablesCheckBox); this.groupBox21.Controls.Add(this.eventAreaDataUpDown); this.groupBox21.Controls.Add(this.eventMapTextureLabel); this.groupBox21.Location = new System.Drawing.Point(463, 477); this.groupBox21.Name = "groupBox21"; this.groupBox21.Size = new System.Drawing.Size(128, 135); this.groupBox21.TabIndex = 61; this.groupBox21.TabStop = false; this.groupBox21.Text = "Renderer Settings"; // // showTriggersCheckBox // this.showTriggersCheckBox.AutoSize = true; this.showTriggersCheckBox.Checked = true; this.showTriggersCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.showTriggersCheckBox.Location = new System.Drawing.Point(9, 86); this.showTriggersCheckBox.Name = "showTriggersCheckBox"; this.showTriggersCheckBox.Size = new System.Drawing.Size(94, 17); this.showTriggersCheckBox.TabIndex = 44; this.showTriggersCheckBox.Text = "Show Triggers"; this.showTriggersCheckBox.UseVisualStyleBackColor = true; this.showTriggersCheckBox.CheckedChanged += new System.EventHandler(this.showEventsCheckBoxes_CheckedChanged); // // showWarpsCheckBox // this.showWarpsCheckBox.AutoSize = true; this.showWarpsCheckBox.Checked = true; this.showWarpsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.showWarpsCheckBox.Location = new System.Drawing.Point(9, 64); this.showWarpsCheckBox.Name = "showWarpsCheckBox"; this.showWarpsCheckBox.Size = new System.Drawing.Size(87, 17); this.showWarpsCheckBox.TabIndex = 43; this.showWarpsCheckBox.Text = "Show Warps"; this.showWarpsCheckBox.UseVisualStyleBackColor = true; this.showWarpsCheckBox.CheckedChanged += new System.EventHandler(this.showEventsCheckBoxes_CheckedChanged); // // showOwsCheckBox // this.showOwsCheckBox.AutoSize = true; this.showOwsCheckBox.Checked = true; this.showOwsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.showOwsCheckBox.Location = new System.Drawing.Point(9, 42); this.showOwsCheckBox.Name = "showOwsCheckBox"; this.showOwsCheckBox.Size = new System.Drawing.Size(109, 17); this.showOwsCheckBox.TabIndex = 42; this.showOwsCheckBox.Text = "Show Overworlds"; this.showOwsCheckBox.UseVisualStyleBackColor = true; this.showOwsCheckBox.CheckedChanged += new System.EventHandler(this.showEventsCheckBoxes_CheckedChanged); // // showSpawnablesCheckBox // this.showSpawnablesCheckBox.AutoSize = true; this.showSpawnablesCheckBox.Checked = true; this.showSpawnablesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.showSpawnablesCheckBox.Location = new System.Drawing.Point(9, 20); this.showSpawnablesCheckBox.Name = "showSpawnablesCheckBox"; this.showSpawnablesCheckBox.Size = new System.Drawing.Size(114, 17); this.showSpawnablesCheckBox.TabIndex = 41; this.showSpawnablesCheckBox.Text = "Show Spawnables"; this.showSpawnablesCheckBox.UseVisualStyleBackColor = true; this.showSpawnablesCheckBox.CheckedChanged += new System.EventHandler(this.showEventsCheckBoxes_CheckedChanged); // // eventAreaDataUpDown // this.eventAreaDataUpDown.Location = new System.Drawing.Point(9, 108); this.eventAreaDataUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.eventAreaDataUpDown.Name = "eventAreaDataUpDown"; this.eventAreaDataUpDown.Size = new System.Drawing.Size(40, 20); this.eventAreaDataUpDown.TabIndex = 30; this.eventAreaDataUpDown.ValueChanged += new System.EventHandler(this.eventAreaDataUpDown_ValueChanged); // // eventMapTextureLabel // this.eventMapTextureLabel.AutoSize = true; this.eventMapTextureLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.eventMapTextureLabel.Location = new System.Drawing.Point(51, 110); this.eventMapTextureLabel.Name = "eventMapTextureLabel"; this.eventMapTextureLabel.Size = new System.Drawing.Size(70, 15); this.eventMapTextureLabel.TabIndex = 31; this.eventMapTextureLabel.Text = "Area Data"; // // RightClickLabel // this.RightClickLabel.AutoSize = true; this.RightClickLabel.Location = new System.Drawing.Point(469, 458); this.RightClickLabel.Name = "RightClickLabel"; this.RightClickLabel.Size = new System.Drawing.Size(37, 13); this.RightClickLabel.TabIndex = 60; this.RightClickLabel.Text = "Select"; // // WheelClickLabel // this.WheelClickLabel.AutoSize = true; this.WheelClickLabel.Location = new System.Drawing.Point(555, 458); this.WheelClickLabel.Name = "WheelClickLabel"; this.WheelClickLabel.Size = new System.Drawing.Size(33, 13); this.WheelClickLabel.TabIndex = 58; this.WheelClickLabel.Text = "Warp"; // // LeftClickLabel // this.LeftClickLabel.AutoSize = true; this.LeftClickLabel.Location = new System.Drawing.Point(513, 458); this.LeftClickLabel.Name = "LeftClickLabel"; this.LeftClickLabel.Size = new System.Drawing.Size(34, 13); this.LeftClickLabel.TabIndex = 57; this.LeftClickLabel.Text = "Move"; // // eventMatrixYUpDown // this.eventMatrixYUpDown.Location = new System.Drawing.Point(466, 173); this.eventMatrixYUpDown.Name = "eventMatrixYUpDown"; this.eventMatrixYUpDown.Size = new System.Drawing.Size(40, 20); this.eventMatrixYUpDown.TabIndex = 52; this.eventMatrixYUpDown.ValueChanged += new System.EventHandler(this.eventMatrixCoordsUpDown_ValueChanged); // // eventMatrixXUpDown // this.eventMatrixXUpDown.Location = new System.Drawing.Point(466, 147); this.eventMatrixXUpDown.Name = "eventMatrixXUpDown"; this.eventMatrixXUpDown.Size = new System.Drawing.Size(40, 20); this.eventMatrixXUpDown.TabIndex = 51; this.eventMatrixXUpDown.ValueChanged += new System.EventHandler(this.eventMatrixCoordsUpDown_ValueChanged); // // eventMatrixYLabel // this.eventMatrixYLabel.AutoSize = true; this.eventMatrixYLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.eventMatrixYLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); this.eventMatrixYLabel.Location = new System.Drawing.Point(512, 174); this.eventMatrixYLabel.Name = "eventMatrixYLabel"; this.eventMatrixYLabel.Size = new System.Drawing.Size(60, 13); this.eventMatrixYLabel.TabIndex = 50; this.eventMatrixYLabel.Text = "Current Y"; // // eventMatrixXLabel // this.eventMatrixXLabel.AutoSize = true; this.eventMatrixXLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.eventMatrixXLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.eventMatrixXLabel.Location = new System.Drawing.Point(512, 149); this.eventMatrixXLabel.Name = "eventMatrixXLabel"; this.eventMatrixXLabel.Size = new System.Drawing.Size(60, 13); this.eventMatrixXLabel.TabIndex = 49; this.eventMatrixXLabel.Text = "Current X"; // // matrixNavigatorLabel // this.matrixNavigatorLabel.AutoSize = true; this.matrixNavigatorLabel.Location = new System.Drawing.Point(8, 68); this.matrixNavigatorLabel.Name = "matrixNavigatorLabel"; this.matrixNavigatorLabel.Size = new System.Drawing.Size(84, 13); this.matrixNavigatorLabel.TabIndex = 48; this.matrixNavigatorLabel.Text = "Matrix Navigator"; // // eventMatrixPanel // this.eventMatrixPanel.AutoScroll = true; this.eventMatrixPanel.BackColor = System.Drawing.SystemColors.Menu; this.eventMatrixPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.eventMatrixPanel.Controls.Add(this.eventMatrixPictureBox); this.eventMatrixPanel.Location = new System.Drawing.Point(9, 82); this.eventMatrixPanel.Name = "eventMatrixPanel"; this.eventMatrixPanel.Size = new System.Drawing.Size(448, 149); this.eventMatrixPanel.TabIndex = 47; // // eventMatrixPictureBox // this.eventMatrixPictureBox.Location = new System.Drawing.Point(0, -1); this.eventMatrixPictureBox.Name = "eventMatrixPictureBox"; this.eventMatrixPictureBox.Size = new System.Drawing.Size(440, 150); this.eventMatrixPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; this.eventMatrixPictureBox.TabIndex = 46; this.eventMatrixPictureBox.TabStop = false; this.eventMatrixPictureBox.Click += new System.EventHandler(this.eventMatrixPictureBox_Click); // // selectEventComboBox // this.selectEventComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectEventComboBox.FormattingEnabled = true; this.selectEventComboBox.Location = new System.Drawing.Point(10, 11); this.selectEventComboBox.Name = "selectEventComboBox"; this.selectEventComboBox.Size = new System.Drawing.Size(164, 21); this.selectEventComboBox.TabIndex = 41; this.selectEventComboBox.SelectedIndexChanged += new System.EventHandler(this.selectEventComboBox_SelectedIndexChanged); // // backgroundMapLabel // this.backgroundMapLabel.AutoSize = true; this.backgroundMapLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.backgroundMapLabel.Location = new System.Drawing.Point(510, 103); this.backgroundMapLabel.Name = "backgroundMapLabel"; this.backgroundMapLabel.Size = new System.Drawing.Size(79, 15); this.backgroundMapLabel.TabIndex = 29; this.backgroundMapLabel.Text = "Map Matrix"; // // eventMatrixUpDown // this.eventMatrixUpDown.Location = new System.Drawing.Point(466, 101); this.eventMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.eventMatrixUpDown.Name = "eventMatrixUpDown"; this.eventMatrixUpDown.Size = new System.Drawing.Size(40, 20); this.eventMatrixUpDown.TabIndex = 28; this.eventMatrixUpDown.ValueChanged += new System.EventHandler(this.eventMatrixUpDown_ValueChanged); // // eventsTabControl // this.eventsTabControl.Controls.Add(this.signsTabPage); this.eventsTabControl.Controls.Add(this.overworldsTabPage); this.eventsTabControl.Controls.Add(this.warpsTabPage); this.eventsTabControl.Controls.Add(this.triggersTabPage); this.eventsTabControl.Location = new System.Drawing.Point(9, 236); this.eventsTabControl.Name = "eventsTabControl"; this.eventsTabControl.SelectedIndex = 0; this.eventsTabControl.Size = new System.Drawing.Size(452, 378); this.eventsTabControl.TabIndex = 25; this.eventsTabControl.SelectedIndexChanged += new System.EventHandler(this.eventsTabControl_SelectedIndexChanged); // // signsTabPage // this.signsTabPage.Controls.Add(this.spawnableTypeComboBox); this.signsTabPage.Controls.Add(this.label18); this.signsTabPage.Controls.Add(this.duplicateSpawnableButton); this.signsTabPage.Controls.Add(this.groupBox5); this.signsTabPage.Controls.Add(this.removeSpawnableButton); this.signsTabPage.Controls.Add(this.addSpawnableButton); this.signsTabPage.Controls.Add(this.spawnableDirComboBox); this.signsTabPage.Controls.Add(this.signOrientationLabel); this.signsTabPage.Controls.Add(this.signScriptNumberLabel); this.signsTabPage.Controls.Add(this.spawnableScriptUpDown); this.signsTabPage.Controls.Add(this.spawnablesListBox); this.signsTabPage.Location = new System.Drawing.Point(4, 22); this.signsTabPage.Name = "signsTabPage"; this.signsTabPage.Padding = new System.Windows.Forms.Padding(3); this.signsTabPage.Size = new System.Drawing.Size(444, 352); this.signsTabPage.TabIndex = 0; this.signsTabPage.Text = "Spawnables"; this.signsTabPage.UseVisualStyleBackColor = true; // // spawnableTypeComboBox // this.spawnableTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.spawnableTypeComboBox.FormattingEnabled = true; this.spawnableTypeComboBox.Location = new System.Drawing.Point(229, 71); this.spawnableTypeComboBox.Name = "spawnableTypeComboBox"; this.spawnableTypeComboBox.Size = new System.Drawing.Size(205, 21); this.spawnableTypeComboBox.TabIndex = 25; this.spawnableTypeComboBox.SelectedIndexChanged += new System.EventHandler(this.spawnableTypeComboBox_SelectedIndexChanged); // // label18 // this.label18.AutoSize = true; this.label18.Location = new System.Drawing.Point(226, 55); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(87, 13); this.label18.TabIndex = 24; this.label18.Text = "Spawnable Type"; // // duplicateSpawnableButton // this.duplicateSpawnableButton.Image = global::DSPRE.Properties.Resources.copyIcon_small; this.duplicateSpawnableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.duplicateSpawnableButton.Location = new System.Drawing.Point(139, 318); this.duplicateSpawnableButton.Name = "duplicateSpawnableButton"; this.duplicateSpawnableButton.Size = new System.Drawing.Size(79, 28); this.duplicateSpawnableButton.TabIndex = 23; this.duplicateSpawnableButton.Text = "Duplicate"; this.duplicateSpawnableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.duplicateSpawnableButton.UseVisualStyleBackColor = true; this.duplicateSpawnableButton.Click += new System.EventHandler(this.duplicateSpawnableButton_Click); // // groupBox5 // this.groupBox5.Controls.Add(this.goToSignButton); this.groupBox5.Controls.Add(this.signMatrixYLabel); this.groupBox5.Controls.Add(this.spawnableXMatrixUpDown); this.groupBox5.Controls.Add(this.signMatrixXLabel); this.groupBox5.Controls.Add(this.spawnableYMatrixUpDown); this.groupBox5.Controls.Add(this.signZLabel); this.groupBox5.Controls.Add(this.spawnablexMapUpDown); this.groupBox5.Controls.Add(this.spawnableUpDown); this.groupBox5.Controls.Add(this.signMapXLabel); this.groupBox5.Controls.Add(this.spawnableYMapUpDown); this.groupBox5.Controls.Add(this.signMapYLabel); this.groupBox5.Location = new System.Drawing.Point(229, 150); this.groupBox5.Name = "groupBox5"; this.groupBox5.Size = new System.Drawing.Size(205, 190); this.groupBox5.TabIndex = 22; this.groupBox5.TabStop = false; this.groupBox5.Text = "Position"; // // goToSignButton // this.goToSignButton.Image = global::DSPRE.Properties.Resources.goToSpawnable; this.goToSignButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.goToSignButton.Location = new System.Drawing.Point(30, 137); this.goToSignButton.Name = "goToSignButton"; this.goToSignButton.Size = new System.Drawing.Size(141, 39); this.goToSignButton.TabIndex = 20; this.goToSignButton.Text = "Find this Spawnable"; this.goToSignButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.goToSignButton.UseVisualStyleBackColor = true; this.goToSignButton.Click += new System.EventHandler(this.centerEventViewOnSelectedEvent_Click); // // signMatrixYLabel // this.signMatrixYLabel.AutoSize = true; this.signMatrixYLabel.Location = new System.Drawing.Point(25, 107); this.signMatrixYLabel.Name = "signMatrixYLabel"; this.signMatrixYLabel.Size = new System.Drawing.Size(45, 13); this.signMatrixYLabel.TabIndex = 19; this.signMatrixYLabel.Text = "Matrix Y"; // // spawnableXMatrixUpDown // this.spawnableXMatrixUpDown.Location = new System.Drawing.Point(74, 74); this.spawnableXMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.spawnableXMatrixUpDown.Name = "spawnableXMatrixUpDown"; this.spawnableXMatrixUpDown.Size = new System.Drawing.Size(101, 20); this.spawnableXMatrixUpDown.TabIndex = 16; this.spawnableXMatrixUpDown.ValueChanged += new System.EventHandler(this.spawnableMatrixXUpDown_ValueChanged); // // signMatrixXLabel // this.signMatrixXLabel.AutoSize = true; this.signMatrixXLabel.Location = new System.Drawing.Point(25, 76); this.signMatrixXLabel.Name = "signMatrixXLabel"; this.signMatrixXLabel.Size = new System.Drawing.Size(45, 13); this.signMatrixXLabel.TabIndex = 17; this.signMatrixXLabel.Text = "Matrix X"; // // spawnableYMatrixUpDown // this.spawnableYMatrixUpDown.Location = new System.Drawing.Point(74, 104); this.spawnableYMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.spawnableYMatrixUpDown.Name = "spawnableYMatrixUpDown"; this.spawnableYMatrixUpDown.Size = new System.Drawing.Size(101, 20); this.spawnableYMatrixUpDown.TabIndex = 18; this.spawnableYMatrixUpDown.ValueChanged += new System.EventHandler(this.spawnableMatrixYUpDown_ValueChanged); // // signZLabel // this.signZLabel.AutoSize = true; this.signZLabel.Location = new System.Drawing.Point(137, 22); this.signZLabel.Name = "signZLabel"; this.signZLabel.Size = new System.Drawing.Size(38, 13); this.signZLabel.TabIndex = 15; this.signZLabel.Text = "Map Z"; // // spawnablexMapUpDown // this.spawnablexMapUpDown.Location = new System.Drawing.Point(28, 38); this.spawnablexMapUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.spawnablexMapUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.spawnablexMapUpDown.Name = "spawnablexMapUpDown"; this.spawnablexMapUpDown.Size = new System.Drawing.Size(36, 20); this.spawnablexMapUpDown.TabIndex = 10; this.spawnablexMapUpDown.ValueChanged += new System.EventHandler(this.spawnableMapXUpDown_ValueChanged); // // spawnableUpDown // this.spawnableUpDown.Location = new System.Drawing.Point(138, 38); this.spawnableUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.spawnableUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.spawnableUpDown.Name = "spawnableUpDown"; this.spawnableUpDown.Size = new System.Drawing.Size(36, 20); this.spawnableUpDown.TabIndex = 14; this.spawnableUpDown.ValueChanged += new System.EventHandler(this.spawnableZUpDown_ValueChanged); // // signMapXLabel // this.signMapXLabel.AutoSize = true; this.signMapXLabel.Location = new System.Drawing.Point(27, 22); this.signMapXLabel.Name = "signMapXLabel"; this.signMapXLabel.Size = new System.Drawing.Size(38, 13); this.signMapXLabel.TabIndex = 11; this.signMapXLabel.Text = "Map X"; // // spawnableYMapUpDown // this.spawnableYMapUpDown.Location = new System.Drawing.Point(83, 38); this.spawnableYMapUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.spawnableYMapUpDown.Name = "spawnableYMapUpDown"; this.spawnableYMapUpDown.Size = new System.Drawing.Size(36, 20); this.spawnableYMapUpDown.TabIndex = 12; this.spawnableYMapUpDown.ValueChanged += new System.EventHandler(this.spawnableMapYUpDown_ValueChanged); // // signMapYLabel // this.signMapYLabel.AutoSize = true; this.signMapYLabel.Location = new System.Drawing.Point(82, 22); this.signMapYLabel.Name = "signMapYLabel"; this.signMapYLabel.Size = new System.Drawing.Size(38, 13); this.signMapYLabel.TabIndex = 13; this.signMapYLabel.Text = "Map Y"; // // removeSpawnableButton // this.removeSpawnableButton.Image = ((System.Drawing.Image)(resources.GetObject("removeSpawnableButton.Image"))); this.removeSpawnableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeSpawnableButton.Location = new System.Drawing.Point(68, 317); this.removeSpawnableButton.Name = "removeSpawnableButton"; this.removeSpawnableButton.Size = new System.Drawing.Size(67, 28); this.removeSpawnableButton.TabIndex = 8; this.removeSpawnableButton.Text = "Delete"; this.removeSpawnableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeSpawnableButton.UseVisualStyleBackColor = true; this.removeSpawnableButton.Click += new System.EventHandler(this.removeSpawnableButton_Click); // // addSpawnableButton // this.addSpawnableButton.Image = ((System.Drawing.Image)(resources.GetObject("addSpawnableButton.Image"))); this.addSpawnableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addSpawnableButton.Location = new System.Drawing.Point(10, 317); this.addSpawnableButton.Name = "addSpawnableButton"; this.addSpawnableButton.Size = new System.Drawing.Size(54, 28); this.addSpawnableButton.TabIndex = 7; this.addSpawnableButton.Text = "Add"; this.addSpawnableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addSpawnableButton.UseVisualStyleBackColor = true; this.addSpawnableButton.Click += new System.EventHandler(this.addSpawnableButton_Click); // // spawnableDirComboBox // this.spawnableDirComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.spawnableDirComboBox.FormattingEnabled = true; this.spawnableDirComboBox.Location = new System.Drawing.Point(229, 121); this.spawnableDirComboBox.Name = "spawnableDirComboBox"; this.spawnableDirComboBox.Size = new System.Drawing.Size(205, 21); this.spawnableDirComboBox.TabIndex = 6; this.spawnableDirComboBox.SelectedIndexChanged += new System.EventHandler(this.spawnableDirComboBox_SelectedIndexChanged); // // signOrientationLabel // this.signOrientationLabel.AutoSize = true; this.signOrientationLabel.Location = new System.Drawing.Point(226, 105); this.signOrientationLabel.Name = "signOrientationLabel"; this.signOrientationLabel.Size = new System.Drawing.Size(89, 13); this.signOrientationLabel.TabIndex = 5; this.signOrientationLabel.Text = "Activation Criteria"; // // signScriptNumberLabel // this.signScriptNumberLabel.AutoSize = true; this.signScriptNumberLabel.Location = new System.Drawing.Point(224, 25); this.signScriptNumberLabel.Name = "signScriptNumberLabel"; this.signScriptNumberLabel.Size = new System.Drawing.Size(87, 13); this.signScriptNumberLabel.TabIndex = 4; this.signScriptNumberLabel.Text = "Script to activate"; // // spawnableScriptUpDown // this.spawnableScriptUpDown.Location = new System.Drawing.Point(325, 22); this.spawnableScriptUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.spawnableScriptUpDown.Name = "spawnableScriptUpDown"; this.spawnableScriptUpDown.Size = new System.Drawing.Size(108, 20); this.spawnableScriptUpDown.TabIndex = 3; this.spawnableScriptUpDown.ValueChanged += new System.EventHandler(this.spawnableScriptUpDown_ValueChanged); // // spawnablesListBox // this.spawnablesListBox.FormattingEnabled = true; this.spawnablesListBox.Location = new System.Drawing.Point(10, 11); this.spawnablesListBox.Name = "spawnablesListBox"; this.spawnablesListBox.Size = new System.Drawing.Size(208, 303); this.spawnablesListBox.TabIndex = 0; this.spawnablesListBox.SelectedIndexChanged += new System.EventHandler(this.spawnablesListBox_SelectedIndexChanged); // // overworldsTabPage // this.overworldsTabPage.Controls.Add(this.sortOWsByIDDescButton); this.overworldsTabPage.Controls.Add(this.sortOWsByIDAscButton); this.overworldsTabPage.Controls.Add(this.groupBox22); this.overworldsTabPage.Controls.Add(this.spriteIDlabel); this.overworldsTabPage.Controls.Add(this.groupBox17); this.overworldsTabPage.Controls.Add(this.owMovementGroupBox); this.overworldsTabPage.Controls.Add(this.positionGroupBox); this.overworldsTabPage.Controls.Add(this.owSpecialGroupBox); this.overworldsTabPage.Controls.Add(this.owScriptLabel); this.overworldsTabPage.Controls.Add(this.owScriptNumericUpDown); this.overworldsTabPage.Controls.Add(this.owFlagLabel); this.overworldsTabPage.Controls.Add(this.owFlagNumericUpDown); this.overworldsTabPage.Controls.Add(this.owSpriteLabel); this.overworldsTabPage.Controls.Add(this.owSpriteComboBox); this.overworldsTabPage.Controls.Add(this.owIDLabel); this.overworldsTabPage.Controls.Add(this.owIDNumericUpDown); this.overworldsTabPage.Controls.Add(this.duplicateOverworldsButton); this.overworldsTabPage.Controls.Add(this.owSpritePictureBox); this.overworldsTabPage.Controls.Add(this.removeOverworldButton); this.overworldsTabPage.Controls.Add(this.addOverworldButton); this.overworldsTabPage.Controls.Add(this.overworldsListBox); this.overworldsTabPage.Location = new System.Drawing.Point(4, 22); this.overworldsTabPage.Name = "overworldsTabPage"; this.overworldsTabPage.Padding = new System.Windows.Forms.Padding(3); this.overworldsTabPage.Size = new System.Drawing.Size(444, 352); this.overworldsTabPage.TabIndex = 1; this.overworldsTabPage.Text = "Overworlds"; this.overworldsTabPage.UseVisualStyleBackColor = true; // // sortOWsByIDDescButton // this.sortOWsByIDDescButton.Image = global::DSPRE.Properties.Resources.sortDescending; this.sortOWsByIDDescButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.sortOWsByIDDescButton.Location = new System.Drawing.Point(102, 9); this.sortOWsByIDDescButton.Name = "sortOWsByIDDescButton"; this.sortOWsByIDDescButton.Size = new System.Drawing.Size(86, 28); this.sortOWsByIDDescButton.TabIndex = 30; this.sortOWsByIDDescButton.Text = "Sort Desc"; this.sortOWsByIDDescButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.sortOWsByIDDescButton.UseVisualStyleBackColor = true; this.sortOWsByIDDescButton.Click += new System.EventHandler(this.sortOWsByIDDescButton_Click); // // sortOWsByIDAscButton // this.sortOWsByIDAscButton.Image = global::DSPRE.Properties.Resources.sortAscending; this.sortOWsByIDAscButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.sortOWsByIDAscButton.Location = new System.Drawing.Point(8, 9); this.sortOWsByIDAscButton.Name = "sortOWsByIDAscButton"; this.sortOWsByIDAscButton.Size = new System.Drawing.Size(86, 28); this.sortOWsByIDAscButton.TabIndex = 29; this.sortOWsByIDAscButton.Text = "Sort Asc"; this.sortOWsByIDAscButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.sortOWsByIDAscButton.UseVisualStyleBackColor = true; this.sortOWsByIDAscButton.Click += new System.EventHandler(this.sortOWsByIDAscButton_Click); // // groupBox22 // this.groupBox22.Controls.Add(this.normalRadioButton); this.groupBox22.Controls.Add(this.isTrainerRadioButton); this.groupBox22.Controls.Add(this.isItemRadioButton); this.groupBox22.Location = new System.Drawing.Point(197, 98); this.groupBox22.Name = "groupBox22"; this.groupBox22.Size = new System.Drawing.Size(162, 45); this.groupBox22.TabIndex = 28; this.groupBox22.TabStop = false; this.groupBox22.Text = "Overworld Properties"; // // normalRadioButton // this.normalRadioButton.AutoSize = true; this.normalRadioButton.Checked = true; this.normalRadioButton.Location = new System.Drawing.Point(6, 19); this.normalRadioButton.Name = "normalRadioButton"; this.normalRadioButton.Size = new System.Drawing.Size(51, 17); this.normalRadioButton.TabIndex = 15; this.normalRadioButton.TabStop = true; this.normalRadioButton.Text = "None"; this.normalRadioButton.UseVisualStyleBackColor = true; this.normalRadioButton.CheckedChanged += new System.EventHandler(this.OWTypeChanged); // // isTrainerRadioButton // this.isTrainerRadioButton.AutoSize = true; this.isTrainerRadioButton.Location = new System.Drawing.Point(57, 19); this.isTrainerRadioButton.Name = "isTrainerRadioButton"; this.isTrainerRadioButton.Size = new System.Drawing.Size(58, 17); this.isTrainerRadioButton.TabIndex = 16; this.isTrainerRadioButton.Text = "Trainer"; this.isTrainerRadioButton.UseVisualStyleBackColor = true; this.isTrainerRadioButton.CheckedChanged += new System.EventHandler(this.OWTypeChanged); // // isItemRadioButton // this.isItemRadioButton.AutoSize = true; this.isItemRadioButton.Location = new System.Drawing.Point(115, 19); this.isItemRadioButton.Name = "isItemRadioButton"; this.isItemRadioButton.Size = new System.Drawing.Size(45, 17); this.isItemRadioButton.TabIndex = 21; this.isItemRadioButton.Text = "Item"; this.isItemRadioButton.UseVisualStyleBackColor = true; this.isItemRadioButton.CheckedChanged += new System.EventHandler(this.OWTypeChanged); // // spriteIDlabel // this.spriteIDlabel.AutoSize = true; this.spriteIDlabel.Location = new System.Drawing.Point(359, 122); this.spriteIDlabel.Name = "spriteIDlabel"; this.spriteIDlabel.Size = new System.Drawing.Size(0, 13); this.spriteIDlabel.TabIndex = 27; // // groupBox17 // this.groupBox17.Controls.Add(this.button14); this.groupBox17.Controls.Add(this.owYMatrixUpDown); this.groupBox17.Controls.Add(this.label12); this.groupBox17.Controls.Add(this.owXMatrixUpDown); this.groupBox17.Controls.Add(this.label11); this.groupBox17.Location = new System.Drawing.Point(9, 287); this.groupBox17.Name = "groupBox17"; this.groupBox17.Size = new System.Drawing.Size(179, 59); this.groupBox17.TabIndex = 20; this.groupBox17.TabStop = false; this.groupBox17.Text = "Global Coordinates [Matrix]"; // // button14 // this.button14.Image = global::DSPRE.Properties.Resources.goToOW; this.button14.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.button14.Location = new System.Drawing.Point(108, 15); this.button14.Name = "button14"; this.button14.Size = new System.Drawing.Size(63, 39); this.button14.TabIndex = 5; this.button14.Text = "Find"; this.button14.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.button14.UseVisualStyleBackColor = true; this.button14.Click += new System.EventHandler(this.centerEventViewOnSelectedEvent_Click); // // owYMatrixUpDown // this.owYMatrixUpDown.Location = new System.Drawing.Point(67, 25); this.owYMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.owYMatrixUpDown.Name = "owYMatrixUpDown"; this.owYMatrixUpDown.Size = new System.Drawing.Size(35, 20); this.owYMatrixUpDown.TabIndex = 6; this.owYMatrixUpDown.ValueChanged += new System.EventHandler(this.owYMatrixUpDown_ValueChanged); // // label12 // this.label12.AutoSize = true; this.label12.Location = new System.Drawing.Point(3, 27); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(14, 13); this.label12.TabIndex = 5; this.label12.Text = "X"; // // owXMatrixUpDown // this.owXMatrixUpDown.Location = new System.Drawing.Point(18, 24); this.owXMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.owXMatrixUpDown.Name = "owXMatrixUpDown"; this.owXMatrixUpDown.Size = new System.Drawing.Size(33, 20); this.owXMatrixUpDown.TabIndex = 4; this.owXMatrixUpDown.ValueChanged += new System.EventHandler(this.owXMatrixUpDown_ValueChanged); // // label11 // this.label11.AutoSize = true; this.label11.Location = new System.Drawing.Point(54, 28); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(14, 13); this.label11.TabIndex = 7; this.label11.Text = "Y"; // // owMovementGroupBox // this.owMovementGroupBox.Controls.Add(this.groupBox23); this.owMovementGroupBox.Controls.Add(this.label4); this.owMovementGroupBox.Controls.Add(this.owOrientationComboBox); this.owMovementGroupBox.Controls.Add(this.owMovementComboBox); this.owMovementGroupBox.Location = new System.Drawing.Point(197, 256); this.owMovementGroupBox.Name = "owMovementGroupBox"; this.owMovementGroupBox.Size = new System.Drawing.Size(232, 90); this.owMovementGroupBox.TabIndex = 18; this.owMovementGroupBox.TabStop = false; this.owMovementGroupBox.Text = "Movement"; // // groupBox23 // this.groupBox23.Controls.Add(this.label39); this.groupBox23.Controls.Add(this.label20); this.groupBox23.Controls.Add(this.owXRangeUpDown); this.groupBox23.Controls.Add(this.owYRangeUpDown); this.groupBox23.Location = new System.Drawing.Point(99, 41); this.groupBox23.Name = "groupBox23"; this.groupBox23.Size = new System.Drawing.Size(123, 45); this.groupBox23.TabIndex = 7; this.groupBox23.TabStop = false; this.groupBox23.Text = "Movement Range"; // // label39 // this.label39.AutoSize = true; this.label39.Location = new System.Drawing.Point(63, 20); this.label39.Name = "label39"; this.label39.Size = new System.Drawing.Size(14, 13); this.label39.TabIndex = 4; this.label39.Text = "Y"; // // label20 // this.label20.AutoSize = true; this.label20.Location = new System.Drawing.Point(4, 20); this.label20.Name = "label20"; this.label20.Size = new System.Drawing.Size(14, 13); this.label20.TabIndex = 3; this.label20.Text = "X"; // // owXRangeUpDown // this.owXRangeUpDown.Location = new System.Drawing.Point(18, 17); this.owXRangeUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.owXRangeUpDown.Name = "owXRangeUpDown"; this.owXRangeUpDown.Size = new System.Drawing.Size(38, 20); this.owXRangeUpDown.TabIndex = 1; this.owXRangeUpDown.ValueChanged += new System.EventHandler(this.owXRangeUpDown_ValueChanged); // // owYRangeUpDown // this.owYRangeUpDown.Location = new System.Drawing.Point(77, 17); this.owYRangeUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.owYRangeUpDown.Name = "owYRangeUpDown"; this.owYRangeUpDown.Size = new System.Drawing.Size(38, 20); this.owYRangeUpDown.TabIndex = 2; this.owYRangeUpDown.ValueChanged += new System.EventHandler(this.owYRangeUpDown_ValueChanged); // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(8, 46); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(80, 13); this.label4.TabIndex = 6; this.label4.Text = "First Orientation"; // // owOrientationComboBox // this.owOrientationComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.owOrientationComboBox.FormattingEnabled = true; this.owOrientationComboBox.Items.AddRange(new object[] { "Up", "Down", "Left", "Right"}); this.owOrientationComboBox.Location = new System.Drawing.Point(11, 61); this.owOrientationComboBox.Name = "owOrientationComboBox"; this.owOrientationComboBox.Size = new System.Drawing.Size(82, 21); this.owOrientationComboBox.TabIndex = 5; this.owOrientationComboBox.SelectedIndexChanged += new System.EventHandler(this.owOrientationComboBox_SelectedIndexChanged); // // owMovementComboBox // this.owMovementComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.owMovementComboBox.FormattingEnabled = true; this.owMovementComboBox.Location = new System.Drawing.Point(11, 16); this.owMovementComboBox.Name = "owMovementComboBox"; this.owMovementComboBox.Size = new System.Drawing.Size(211, 21); this.owMovementComboBox.TabIndex = 0; this.owMovementComboBox.SelectedIndexChanged += new System.EventHandler(this.owMovementComboBox_SelectedIndexChanged); // // positionGroupBox // this.positionGroupBox.Controls.Add(this.label13); this.positionGroupBox.Controls.Add(this.owXMapUpDown); this.positionGroupBox.Controls.Add(this.owZPositionUpDown); this.positionGroupBox.Controls.Add(this.owXPositionLabel); this.positionGroupBox.Controls.Add(this.owYMapUpDown); this.positionGroupBox.Controls.Add(this.label10); this.positionGroupBox.Location = new System.Drawing.Point(8, 231); this.positionGroupBox.Name = "positionGroupBox"; this.positionGroupBox.Size = new System.Drawing.Size(180, 57); this.positionGroupBox.TabIndex = 19; this.positionGroupBox.TabStop = false; this.positionGroupBox.Text = "Local Coordinates [Map]"; // // label13 // this.label13.AutoSize = true; this.label13.Location = new System.Drawing.Point(122, 27); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(14, 13); this.label13.TabIndex = 9; this.label13.Text = "Z"; // // owXMapUpDown // this.owXMapUpDown.Location = new System.Drawing.Point(18, 24); this.owXMapUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.owXMapUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.owXMapUpDown.Name = "owXMapUpDown"; this.owXMapUpDown.Size = new System.Drawing.Size(35, 20); this.owXMapUpDown.TabIndex = 0; this.owXMapUpDown.ValueChanged += new System.EventHandler(this.owXMapUpDown_ValueChanged); // // owZPositionUpDown // this.owZPositionUpDown.Location = new System.Drawing.Point(136, 24); this.owZPositionUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.owZPositionUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.owZPositionUpDown.Name = "owZPositionUpDown"; this.owZPositionUpDown.Size = new System.Drawing.Size(35, 20); this.owZPositionUpDown.TabIndex = 8; this.owZPositionUpDown.ValueChanged += new System.EventHandler(this.owZPositionUpDown_ValueChanged); // // owXPositionLabel // this.owXPositionLabel.AutoSize = true; this.owXPositionLabel.Location = new System.Drawing.Point(3, 27); this.owXPositionLabel.Name = "owXPositionLabel"; this.owXPositionLabel.Size = new System.Drawing.Size(14, 13); this.owXPositionLabel.TabIndex = 1; this.owXPositionLabel.Text = "X"; // // owYMapUpDown // this.owYMapUpDown.Location = new System.Drawing.Point(77, 24); this.owYMapUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.owYMapUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.owYMapUpDown.Name = "owYMapUpDown"; this.owYMapUpDown.Size = new System.Drawing.Size(35, 20); this.owYMapUpDown.TabIndex = 2; this.owYMapUpDown.ValueChanged += new System.EventHandler(this.owYMapUpDown_ValueChanged); // // label10 // this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(63, 27); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(14, 13); this.label10.TabIndex = 3; this.label10.Text = "Y"; // // owSpecialGroupBox // this.owSpecialGroupBox.Controls.Add(this.itemsSelectorHelpBtn); this.owSpecialGroupBox.Controls.Add(this.owPartnerTrainerCheckBox); this.owSpecialGroupBox.Controls.Add(this.owItemComboBox); this.owSpecialGroupBox.Controls.Add(this.owItemLabel); this.owSpecialGroupBox.Controls.Add(this.owTrainerComboBox); this.owSpecialGroupBox.Controls.Add(this.owSightRangeLabel); this.owSpecialGroupBox.Controls.Add(this.owSightRangeUpDown); this.owSpecialGroupBox.Controls.Add(this.owTrainerLabel); this.owSpecialGroupBox.Enabled = false; this.owSpecialGroupBox.Location = new System.Drawing.Point(197, 150); this.owSpecialGroupBox.Name = "owSpecialGroupBox"; this.owSpecialGroupBox.Size = new System.Drawing.Size(232, 102); this.owSpecialGroupBox.TabIndex = 14; this.owSpecialGroupBox.TabStop = false; this.owSpecialGroupBox.Text = "Special Settings"; // // itemsSelectorHelpBtn // this.itemsSelectorHelpBtn.Image = global::DSPRE.Properties.Resources.questionMark; this.itemsSelectorHelpBtn.Location = new System.Drawing.Point(194, 67); this.itemsSelectorHelpBtn.Name = "itemsSelectorHelpBtn"; this.itemsSelectorHelpBtn.Size = new System.Drawing.Size(28, 29); this.itemsSelectorHelpBtn.TabIndex = 45; this.itemsSelectorHelpBtn.UseVisualStyleBackColor = true; this.itemsSelectorHelpBtn.Click += new System.EventHandler(this.itemsSelectorHelpBtn_Click); // // owPartnerTrainerCheckBox // this.owPartnerTrainerCheckBox.AutoSize = true; this.owPartnerTrainerCheckBox.Location = new System.Drawing.Point(168, 49); this.owPartnerTrainerCheckBox.Name = "owPartnerTrainerCheckBox"; this.owPartnerTrainerCheckBox.Size = new System.Drawing.Size(60, 17); this.owPartnerTrainerCheckBox.TabIndex = 7; this.owPartnerTrainerCheckBox.Text = "Partner"; this.owPartnerTrainerCheckBox.UseVisualStyleBackColor = true; this.owPartnerTrainerCheckBox.CheckedChanged += new System.EventHandler(this.owPartnerTrainerCheckBox_CheckedChanged); // // owItemComboBox // this.owItemComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.owItemComboBox.FormattingEnabled = true; this.owItemComboBox.Location = new System.Drawing.Point(49, 72); this.owItemComboBox.Name = "owItemComboBox"; this.owItemComboBox.Size = new System.Drawing.Size(142, 21); this.owItemComboBox.TabIndex = 6; this.owItemComboBox.SelectedIndexChanged += new System.EventHandler(this.owItemComboBox_SelectedIndexChanged); // // owItemLabel // this.owItemLabel.AutoSize = true; this.owItemLabel.Enabled = false; this.owItemLabel.Location = new System.Drawing.Point(7, 78); this.owItemLabel.Name = "owItemLabel"; this.owItemLabel.Size = new System.Drawing.Size(27, 13); this.owItemLabel.TabIndex = 5; this.owItemLabel.Text = "Item"; // // owTrainerComboBox // this.owTrainerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.owTrainerComboBox.Enabled = false; this.owTrainerComboBox.FormattingEnabled = true; this.owTrainerComboBox.Location = new System.Drawing.Point(49, 19); this.owTrainerComboBox.Name = "owTrainerComboBox"; this.owTrainerComboBox.Size = new System.Drawing.Size(173, 21); this.owTrainerComboBox.TabIndex = 4; this.owTrainerComboBox.SelectedIndexChanged += new System.EventHandler(this.owTrainerComboBox_SelectedIndexChanged); // // owSightRangeLabel // this.owSightRangeLabel.AutoSize = true; this.owSightRangeLabel.Enabled = false; this.owSightRangeLabel.Location = new System.Drawing.Point(6, 50); this.owSightRangeLabel.Name = "owSightRangeLabel"; this.owSightRangeLabel.Size = new System.Drawing.Size(97, 13); this.owSightRangeLabel.TabIndex = 3; this.owSightRangeLabel.Text = "Sight Range (Tiles)"; // // owSightRangeUpDown // this.owSightRangeUpDown.Enabled = false; this.owSightRangeUpDown.Location = new System.Drawing.Point(108, 46); this.owSightRangeUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.owSightRangeUpDown.Name = "owSightRangeUpDown"; this.owSightRangeUpDown.Size = new System.Drawing.Size(48, 20); this.owSightRangeUpDown.TabIndex = 2; this.owSightRangeUpDown.ValueChanged += new System.EventHandler(this.owSightRangeUpDown_ValueChanged); // // owTrainerLabel // this.owTrainerLabel.AutoSize = true; this.owTrainerLabel.Enabled = false; this.owTrainerLabel.Location = new System.Drawing.Point(5, 22); this.owTrainerLabel.Name = "owTrainerLabel"; this.owTrainerLabel.Size = new System.Drawing.Size(40, 13); this.owTrainerLabel.TabIndex = 1; this.owTrainerLabel.Text = "Trainer"; // // owScriptLabel // this.owScriptLabel.AutoSize = true; this.owScriptLabel.Location = new System.Drawing.Point(365, 6); this.owScriptLabel.Name = "owScriptLabel"; this.owScriptLabel.Size = new System.Drawing.Size(34, 13); this.owScriptLabel.TabIndex = 13; this.owScriptLabel.Text = "Script"; // // owScriptNumericUpDown // this.owScriptNumericUpDown.Location = new System.Drawing.Point(368, 22); this.owScriptNumericUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.owScriptNumericUpDown.Name = "owScriptNumericUpDown"; this.owScriptNumericUpDown.Size = new System.Drawing.Size(54, 20); this.owScriptNumericUpDown.TabIndex = 12; this.owScriptNumericUpDown.ValueChanged += new System.EventHandler(this.owScriptNumericUpDown_ValueChanged); // // owFlagLabel // this.owFlagLabel.AutoSize = true; this.owFlagLabel.Location = new System.Drawing.Point(283, 6); this.owFlagLabel.Name = "owFlagLabel"; this.owFlagLabel.Size = new System.Drawing.Size(27, 13); this.owFlagLabel.TabIndex = 11; this.owFlagLabel.Text = "Flag"; // // owFlagNumericUpDown // this.owFlagNumericUpDown.Location = new System.Drawing.Point(286, 22); this.owFlagNumericUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.owFlagNumericUpDown.Name = "owFlagNumericUpDown"; this.owFlagNumericUpDown.Size = new System.Drawing.Size(60, 20); this.owFlagNumericUpDown.TabIndex = 10; this.owFlagNumericUpDown.ValueChanged += new System.EventHandler(this.owFlagNumericUpDown_ValueChanged); // // owSpriteLabel // this.owSpriteLabel.AutoSize = true; this.owSpriteLabel.Location = new System.Drawing.Point(197, 51); this.owSpriteLabel.Name = "owSpriteLabel"; this.owSpriteLabel.Size = new System.Drawing.Size(45, 13); this.owSpriteLabel.TabIndex = 9; this.owSpriteLabel.Text = "Entry ID"; // // owSpriteComboBox // this.owSpriteComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.owSpriteComboBox.FormattingEnabled = true; this.owSpriteComboBox.Location = new System.Drawing.Point(200, 67); this.owSpriteComboBox.Name = "owSpriteComboBox"; this.owSpriteComboBox.Size = new System.Drawing.Size(159, 21); this.owSpriteComboBox.TabIndex = 8; this.owSpriteComboBox.SelectedIndexChanged += new System.EventHandler(this.owSpriteComboBox_SelectedIndexChanged); // // owIDLabel // this.owIDLabel.AutoSize = true; this.owIDLabel.Location = new System.Drawing.Point(198, 6); this.owIDLabel.Name = "owIDLabel"; this.owIDLabel.Size = new System.Drawing.Size(58, 13); this.owIDLabel.TabIndex = 7; this.owIDLabel.Text = "ID Number"; // // owIDNumericUpDown // this.owIDNumericUpDown.Location = new System.Drawing.Point(201, 22); this.owIDNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.owIDNumericUpDown.Name = "owIDNumericUpDown"; this.owIDNumericUpDown.Size = new System.Drawing.Size(63, 20); this.owIDNumericUpDown.TabIndex = 6; this.owIDNumericUpDown.ValueChanged += new System.EventHandler(this.owIDNumericUpDown_ValueChanged); // // duplicateOverworldsButton // this.duplicateOverworldsButton.Image = global::DSPRE.Properties.Resources.copyIcon_small; this.duplicateOverworldsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.duplicateOverworldsButton.Location = new System.Drawing.Point(116, 202); this.duplicateOverworldsButton.Name = "duplicateOverworldsButton"; this.duplicateOverworldsButton.Size = new System.Drawing.Size(72, 25); this.duplicateOverworldsButton.TabIndex = 26; this.duplicateOverworldsButton.Text = "Duplicate"; this.duplicateOverworldsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.duplicateOverworldsButton.UseVisualStyleBackColor = true; this.duplicateOverworldsButton.Click += new System.EventHandler(this.duplicateOverworldsButton_Click); // // owSpritePictureBox // this.owSpritePictureBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; this.owSpritePictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.owSpritePictureBox.Location = new System.Drawing.Point(367, 53); this.owSpritePictureBox.Name = "owSpritePictureBox"; this.owSpritePictureBox.Size = new System.Drawing.Size(66, 66); this.owSpritePictureBox.TabIndex = 20; this.owSpritePictureBox.TabStop = false; // // removeOverworldButton // this.removeOverworldButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeOverworldButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeOverworldButton.Location = new System.Drawing.Point(56, 202); this.removeOverworldButton.Name = "removeOverworldButton"; this.removeOverworldButton.Size = new System.Drawing.Size(60, 25); this.removeOverworldButton.TabIndex = 5; this.removeOverworldButton.Text = "Delete"; this.removeOverworldButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeOverworldButton.UseVisualStyleBackColor = true; this.removeOverworldButton.Click += new System.EventHandler(this.removeOverworldButton_Click); // // addOverworldButton // this.addOverworldButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addOverworldButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addOverworldButton.Location = new System.Drawing.Point(8, 202); this.addOverworldButton.Name = "addOverworldButton"; this.addOverworldButton.Size = new System.Drawing.Size(48, 25); this.addOverworldButton.TabIndex = 4; this.addOverworldButton.Text = "Add"; this.addOverworldButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addOverworldButton.UseVisualStyleBackColor = true; this.addOverworldButton.Click += new System.EventHandler(this.addOverworldButton_Click); // // overworldsListBox // this.overworldsListBox.FormattingEnabled = true; this.overworldsListBox.Location = new System.Drawing.Point(8, 41); this.overworldsListBox.Name = "overworldsListBox"; this.overworldsListBox.Size = new System.Drawing.Size(180, 160); this.overworldsListBox.TabIndex = 3; this.overworldsListBox.SelectedIndexChanged += new System.EventHandler(this.overworldsListBox_SelectedIndexChanged); // // warpsTabPage // this.warpsTabPage.Controls.Add(this.duplicateWarpsButton); this.warpsTabPage.Controls.Add(this.groupBox11); this.warpsTabPage.Controls.Add(this.groupBox1); this.warpsTabPage.Controls.Add(this.removeWarpButton); this.warpsTabPage.Controls.Add(this.addWarpButton); this.warpsTabPage.Controls.Add(this.warpsListBox); this.warpsTabPage.Location = new System.Drawing.Point(4, 22); this.warpsTabPage.Name = "warpsTabPage"; this.warpsTabPage.Padding = new System.Windows.Forms.Padding(3); this.warpsTabPage.Size = new System.Drawing.Size(444, 352); this.warpsTabPage.TabIndex = 2; this.warpsTabPage.Text = "Warps"; this.warpsTabPage.UseVisualStyleBackColor = true; // // duplicateWarpsButton // this.duplicateWarpsButton.Image = global::DSPRE.Properties.Resources.copyIcon_small; this.duplicateWarpsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.duplicateWarpsButton.Location = new System.Drawing.Point(112, 308); this.duplicateWarpsButton.Name = "duplicateWarpsButton"; this.duplicateWarpsButton.Size = new System.Drawing.Size(74, 32); this.duplicateWarpsButton.TabIndex = 23; this.duplicateWarpsButton.Text = "Duplicate"; this.duplicateWarpsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.duplicateWarpsButton.UseVisualStyleBackColor = true; this.duplicateWarpsButton.Click += new System.EventHandler(this.duplicateWarpsButton_Click); // // groupBox11 // this.groupBox11.Controls.Add(this.eventEditorHeaderLocationNameLabel); this.groupBox11.Controls.Add(this.eventEditorWarpHeaderListBox); this.groupBox11.Controls.Add(this.destinationWarpGoToButton); this.groupBox11.Controls.Add(this.warpAnchorUpDown); this.groupBox11.Controls.Add(this.warpAnchorLabel); this.groupBox11.Location = new System.Drawing.Point(193, 193); this.groupBox11.Name = "groupBox11"; this.groupBox11.Size = new System.Drawing.Size(242, 150); this.groupBox11.TabIndex = 22; this.groupBox11.TabStop = false; this.groupBox11.Text = "Destination"; // // eventEditorHeaderLocationNameLabel // this.eventEditorHeaderLocationNameLabel.Location = new System.Drawing.Point(135, 20); this.eventEditorHeaderLocationNameLabel.Name = "eventEditorHeaderLocationNameLabel"; this.eventEditorHeaderLocationNameLabel.Size = new System.Drawing.Size(97, 35); this.eventEditorHeaderLocationNameLabel.TabIndex = 31; this.eventEditorHeaderLocationNameLabel.Text = "LOCATION NAME"; // // eventEditorWarpHeaderListBox // this.eventEditorWarpHeaderListBox.FormattingEnabled = true; this.eventEditorWarpHeaderListBox.Location = new System.Drawing.Point(7, 20); this.eventEditorWarpHeaderListBox.Name = "eventEditorWarpHeaderListBox"; this.eventEditorWarpHeaderListBox.Size = new System.Drawing.Size(125, 121); this.eventEditorWarpHeaderListBox.TabIndex = 30; this.eventEditorWarpHeaderListBox.SelectedIndexChanged += new System.EventHandler(this.eventEditorWarpHeaderListBox_SelectedIndexChanged); // // destinationWarpGoToButton // this.destinationWarpGoToButton.Image = global::DSPRE.Properties.Resources.warpGo; this.destinationWarpGoToButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.destinationWarpGoToButton.Location = new System.Drawing.Point(138, 98); this.destinationWarpGoToButton.Name = "destinationWarpGoToButton"; this.destinationWarpGoToButton.Size = new System.Drawing.Size(94, 41); this.destinationWarpGoToButton.TabIndex = 26; this.destinationWarpGoToButton.Text = "Test\r\nWarp"; this.destinationWarpGoToButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.destinationWarpGoToButton.UseVisualStyleBackColor = true; this.destinationWarpGoToButton.Click += new System.EventHandler(this.goToWarpDestination_Click); // // warpAnchorUpDown // this.warpAnchorUpDown.Location = new System.Drawing.Point(138, 73); this.warpAnchorUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.warpAnchorUpDown.Name = "warpAnchorUpDown"; this.warpAnchorUpDown.Size = new System.Drawing.Size(94, 20); this.warpAnchorUpDown.TabIndex = 29; this.warpAnchorUpDown.ValueChanged += new System.EventHandler(this.warpAnchorUpDown_ValueChanged); // // warpAnchorLabel // this.warpAnchorLabel.AutoSize = true; this.warpAnchorLabel.Location = new System.Drawing.Point(159, 57); this.warpAnchorLabel.Name = "warpAnchorLabel"; this.warpAnchorLabel.Size = new System.Drawing.Size(47, 13); this.warpAnchorLabel.TabIndex = 27; this.warpAnchorLabel.Text = "Hook ID"; // // groupBox1 // this.groupBox1.Controls.Add(this.groupBox14); this.groupBox1.Controls.Add(this.groupBox12); this.groupBox1.Location = new System.Drawing.Point(193, 6); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(242, 182); this.groupBox1.TabIndex = 21; this.groupBox1.TabStop = false; this.groupBox1.Text = "Start coordinates"; // // groupBox14 // this.groupBox14.Controls.Add(this.goToWarpButton); this.groupBox14.Controls.Add(this.label9); this.groupBox14.Controls.Add(this.warpXMatrixUpDown); this.groupBox14.Controls.Add(this.label15); this.groupBox14.Controls.Add(this.warpYMatrixUpDown); this.groupBox14.Location = new System.Drawing.Point(9, 74); this.groupBox14.Name = "groupBox14"; this.groupBox14.Size = new System.Drawing.Size(223, 97); this.groupBox14.TabIndex = 23; this.groupBox14.TabStop = false; this.groupBox14.Text = "Matrix coordinates"; // // goToWarpButton // this.goToWarpButton.Image = global::DSPRE.Properties.Resources.goToWarp; this.goToWarpButton.ImageAlign = System.Drawing.ContentAlignment.BottomRight; this.goToWarpButton.Location = new System.Drawing.Point(63, 51); this.goToWarpButton.Name = "goToWarpButton"; this.goToWarpButton.Size = new System.Drawing.Size(102, 39); this.goToWarpButton.TabIndex = 25; this.goToWarpButton.Text = "Go to start \r\ncoordinates"; this.goToWarpButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.goToWarpButton.UseVisualStyleBackColor = true; this.goToWarpButton.Click += new System.EventHandler(this.centerEventViewOnSelectedEvent_Click); // // label9 // this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(117, 27); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(38, 13); this.label9.TabIndex = 24; this.label9.Text = "Mat. Y"; // // warpXMatrixUpDown // this.warpXMatrixUpDown.Location = new System.Drawing.Point(49, 23); this.warpXMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.warpXMatrixUpDown.Name = "warpXMatrixUpDown"; this.warpXMatrixUpDown.Size = new System.Drawing.Size(47, 20); this.warpXMatrixUpDown.TabIndex = 21; this.warpXMatrixUpDown.ValueChanged += new System.EventHandler(this.warpMatrixXUpDown_ValueChanged); // // label15 // this.label15.AutoSize = true; this.label15.Location = new System.Drawing.Point(10, 27); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(38, 13); this.label15.TabIndex = 22; this.label15.Text = "Mat. X"; // // warpYMatrixUpDown // this.warpYMatrixUpDown.Location = new System.Drawing.Point(157, 23); this.warpYMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.warpYMatrixUpDown.Name = "warpYMatrixUpDown"; this.warpYMatrixUpDown.Size = new System.Drawing.Size(47, 20); this.warpYMatrixUpDown.TabIndex = 23; this.warpYMatrixUpDown.ValueChanged += new System.EventHandler(this.warpMatrixYUpDown_ValueChanged); // // groupBox12 // this.groupBox12.Controls.Add(this.warpXMapUpDown); this.groupBox12.Controls.Add(this.label24); this.groupBox12.Controls.Add(this.label25); this.groupBox12.Controls.Add(this.warpYMapUpDown); this.groupBox12.Controls.Add(this.warpZUpDown); this.groupBox12.Controls.Add(this.label16); this.groupBox12.Location = new System.Drawing.Point(9, 19); this.groupBox12.Name = "groupBox12"; this.groupBox12.Size = new System.Drawing.Size(223, 49); this.groupBox12.TabIndex = 22; this.groupBox12.TabStop = false; this.groupBox12.Text = "Map coordinates"; // // warpXMapUpDown // this.warpXMapUpDown.Location = new System.Drawing.Point(25, 19); this.warpXMapUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.warpXMapUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.warpXMapUpDown.Name = "warpXMapUpDown"; this.warpXMapUpDown.Size = new System.Drawing.Size(34, 20); this.warpXMapUpDown.TabIndex = 10; this.warpXMapUpDown.ValueChanged += new System.EventHandler(this.warpXMapUpDown_ValueChanged); // // label24 // this.label24.AutoSize = true; this.label24.Location = new System.Drawing.Point(86, 22); this.label24.Name = "label24"; this.label24.Size = new System.Drawing.Size(14, 13); this.label24.TabIndex = 21; this.label24.Text = "Y"; // // label25 // this.label25.AutoSize = true; this.label25.Location = new System.Drawing.Point(10, 22); this.label25.Name = "label25"; this.label25.Size = new System.Drawing.Size(14, 13); this.label25.TabIndex = 13; this.label25.Text = "X"; // // warpYMapUpDown // this.warpYMapUpDown.Location = new System.Drawing.Point(100, 19); this.warpYMapUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.warpYMapUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.warpYMapUpDown.Name = "warpYMapUpDown"; this.warpYMapUpDown.Size = new System.Drawing.Size(34, 20); this.warpYMapUpDown.TabIndex = 12; this.warpYMapUpDown.ValueChanged += new System.EventHandler(this.warpYMapUpDown_ValueChanged); // // warpZUpDown // this.warpZUpDown.Location = new System.Drawing.Point(175, 19); this.warpZUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.warpZUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.warpZUpDown.Name = "warpZUpDown"; this.warpZUpDown.Size = new System.Drawing.Size(34, 20); this.warpZUpDown.TabIndex = 14; this.warpZUpDown.ValueChanged += new System.EventHandler(this.warpZUpDown_ValueChanged); // // label16 // this.label16.AutoSize = true; this.label16.Location = new System.Drawing.Point(160, 22); this.label16.Name = "label16"; this.label16.Size = new System.Drawing.Size(14, 13); this.label16.TabIndex = 15; this.label16.Text = "Z"; // // removeWarpButton // this.removeWarpButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeWarpButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeWarpButton.Location = new System.Drawing.Point(60, 308); this.removeWarpButton.Name = "removeWarpButton"; this.removeWarpButton.Size = new System.Drawing.Size(52, 32); this.removeWarpButton.TabIndex = 10; this.removeWarpButton.Text = "Rem"; this.removeWarpButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeWarpButton.UseVisualStyleBackColor = true; this.removeWarpButton.Click += new System.EventHandler(this.removeWarpButton_Click); // // addWarpButton // this.addWarpButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addWarpButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addWarpButton.Location = new System.Drawing.Point(8, 308); this.addWarpButton.Name = "addWarpButton"; this.addWarpButton.Size = new System.Drawing.Size(52, 32); this.addWarpButton.TabIndex = 9; this.addWarpButton.Text = "Add"; this.addWarpButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addWarpButton.UseVisualStyleBackColor = true; this.addWarpButton.Click += new System.EventHandler(this.addWarpButton_Click); // // warpsListBox // this.warpsListBox.FormattingEnabled = true; this.warpsListBox.Location = new System.Drawing.Point(9, 12); this.warpsListBox.Name = "warpsListBox"; this.warpsListBox.Size = new System.Drawing.Size(177, 290); this.warpsListBox.TabIndex = 4; this.warpsListBox.SelectedIndexChanged += new System.EventHandler(this.warpsListBox_SelectedIndexChanged); // // triggersTabPage // this.triggersTabPage.Controls.Add(this.triggerLogicGroupBox); this.triggersTabPage.Controls.Add(this.groupBox16); this.triggersTabPage.Controls.Add(this.groupBox15); this.triggersTabPage.Controls.Add(this.groupBox6); this.triggersTabPage.Controls.Add(this.duplicateTriggersButton); this.triggersTabPage.Controls.Add(this.removeTriggerButton); this.triggersTabPage.Controls.Add(this.addTriggerButton); this.triggersTabPage.Controls.Add(this.triggersListBox); this.triggersTabPage.Location = new System.Drawing.Point(4, 22); this.triggersTabPage.Name = "triggersTabPage"; this.triggersTabPage.Padding = new System.Windows.Forms.Padding(3); this.triggersTabPage.Size = new System.Drawing.Size(444, 352); this.triggersTabPage.TabIndex = 3; this.triggersTabPage.Text = "Triggers"; this.triggersTabPage.UseVisualStyleBackColor = true; // // triggerLogicGroupBox // this.triggerLogicGroupBox.Controls.Add(this.expectedVarValueTriggerUpDown); this.triggerLogicGroupBox.Controls.Add(this.label19); this.triggerLogicGroupBox.Controls.Add(this.triggerVariableWatchedUpDown); this.triggerLogicGroupBox.Controls.Add(this.label28); this.triggerLogicGroupBox.Controls.Add(this.triggerScriptUpDown); this.triggerLogicGroupBox.Controls.Add(this.label27); this.triggerLogicGroupBox.Location = new System.Drawing.Point(225, 9); this.triggerLogicGroupBox.Name = "triggerLogicGroupBox"; this.triggerLogicGroupBox.Size = new System.Drawing.Size(200, 108); this.triggerLogicGroupBox.TabIndex = 39; this.triggerLogicGroupBox.TabStop = false; this.triggerLogicGroupBox.Text = "Logic"; // // expectedVarValueTriggerUpDown // this.expectedVarValueTriggerUpDown.Location = new System.Drawing.Point(112, 36); this.expectedVarValueTriggerUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.expectedVarValueTriggerUpDown.Name = "expectedVarValueTriggerUpDown"; this.expectedVarValueTriggerUpDown.Size = new System.Drawing.Size(71, 20); this.expectedVarValueTriggerUpDown.TabIndex = 37; this.expectedVarValueTriggerUpDown.ValueChanged += new System.EventHandler(this.expectedVarValueTriggerUpDown_ValueChanged); // // label19 // this.label19.AutoSize = true; this.label19.Location = new System.Drawing.Point(107, 20); this.label19.Name = "label19"; this.label19.Size = new System.Drawing.Size(82, 13); this.label19.TabIndex = 38; this.label19.Text = "Expected Value"; // // triggerVariableWatchedUpDown // this.triggerVariableWatchedUpDown.Location = new System.Drawing.Point(17, 36); this.triggerVariableWatchedUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.triggerVariableWatchedUpDown.Name = "triggerVariableWatchedUpDown"; this.triggerVariableWatchedUpDown.Size = new System.Drawing.Size(71, 20); this.triggerVariableWatchedUpDown.TabIndex = 26; this.triggerVariableWatchedUpDown.ValueChanged += new System.EventHandler(this.triggerVariableWatchedUpDown_ValueChanged); // // label28 // this.label28.AutoSize = true; this.label28.Location = new System.Drawing.Point(9, 20); this.label28.Name = "label28"; this.label28.Size = new System.Drawing.Size(89, 13); this.label28.TabIndex = 27; this.label28.Text = "Variable watched"; // // triggerScriptUpDown // this.triggerScriptUpDown.Location = new System.Drawing.Point(68, 77); this.triggerScriptUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.triggerScriptUpDown.Name = "triggerScriptUpDown"; this.triggerScriptUpDown.Size = new System.Drawing.Size(66, 20); this.triggerScriptUpDown.TabIndex = 23; this.triggerScriptUpDown.ValueChanged += new System.EventHandler(this.triggerScriptUpDown_ValueChanged); // // label27 // this.label27.AutoSize = true; this.label27.Location = new System.Drawing.Point(58, 62); this.label27.Name = "label27"; this.label27.Size = new System.Drawing.Size(78, 13); this.label27.TabIndex = 24; this.label27.Text = "Script to trigger"; // // groupBox16 // this.groupBox16.Controls.Add(this.triggerLengthLabel); this.groupBox16.Controls.Add(this.triggerLengthUpDown); this.groupBox16.Controls.Add(this.triggerWidthLabel); this.groupBox16.Controls.Add(this.triggerWidthUpDown); this.groupBox16.Location = new System.Drawing.Point(225, 119); this.groupBox16.Name = "groupBox16"; this.groupBox16.Size = new System.Drawing.Size(200, 67); this.groupBox16.TabIndex = 33; this.groupBox16.TabStop = false; this.groupBox16.Text = "Trigger Size"; // // triggerLengthLabel // this.triggerLengthLabel.AutoSize = true; this.triggerLengthLabel.Location = new System.Drawing.Point(116, 19); this.triggerLengthLabel.Name = "triggerLengthLabel"; this.triggerLengthLabel.Size = new System.Drawing.Size(56, 13); this.triggerLengthLabel.TabIndex = 35; this.triggerLengthLabel.Text = "Length [Y]"; // // triggerLengthUpDown // this.triggerLengthUpDown.Location = new System.Drawing.Point(119, 36); this.triggerLengthUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.triggerLengthUpDown.Name = "triggerLengthUpDown"; this.triggerLengthUpDown.Size = new System.Drawing.Size(64, 20); this.triggerLengthUpDown.TabIndex = 34; this.triggerLengthUpDown.ValueChanged += new System.EventHandler(this.triggerLengthUpDown_ValueChanged); // // triggerWidthLabel // this.triggerWidthLabel.AutoSize = true; this.triggerWidthLabel.Location = new System.Drawing.Point(15, 19); this.triggerWidthLabel.Name = "triggerWidthLabel"; this.triggerWidthLabel.Size = new System.Drawing.Size(51, 13); this.triggerWidthLabel.TabIndex = 33; this.triggerWidthLabel.Text = "Width [X]"; // // triggerWidthUpDown // this.triggerWidthUpDown.Location = new System.Drawing.Point(18, 36); this.triggerWidthUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.triggerWidthUpDown.Name = "triggerWidthUpDown"; this.triggerWidthUpDown.Size = new System.Drawing.Size(62, 20); this.triggerWidthUpDown.TabIndex = 32; this.triggerWidthUpDown.ValueChanged += new System.EventHandler(this.triggerWidthUpDown_ValueChanged); // // groupBox15 // this.groupBox15.Controls.Add(this.triggerZLabel); this.groupBox15.Controls.Add(this.triggerXMapUpDown); this.groupBox15.Controls.Add(this.triggerZUpDown); this.groupBox15.Controls.Add(this.triggerMapXLabel); this.groupBox15.Controls.Add(this.triggerYMapUpDown); this.groupBox15.Controls.Add(this.triggerYMapLabel); this.groupBox15.Location = new System.Drawing.Point(225, 191); this.groupBox15.Name = "groupBox15"; this.groupBox15.Size = new System.Drawing.Size(200, 54); this.groupBox15.TabIndex = 32; this.groupBox15.TabStop = false; this.groupBox15.Text = "Map Coordinates"; // // triggerZLabel // this.triggerZLabel.AutoSize = true; this.triggerZLabel.Location = new System.Drawing.Point(141, 27); this.triggerZLabel.Name = "triggerZLabel"; this.triggerZLabel.Size = new System.Drawing.Size(14, 13); this.triggerZLabel.TabIndex = 21; this.triggerZLabel.Text = "Z"; // // triggerXMapUpDown // this.triggerXMapUpDown.Location = new System.Drawing.Point(28, 23); this.triggerXMapUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.triggerXMapUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.triggerXMapUpDown.Name = "triggerXMapUpDown"; this.triggerXMapUpDown.Size = new System.Drawing.Size(34, 20); this.triggerXMapUpDown.TabIndex = 16; this.triggerXMapUpDown.ValueChanged += new System.EventHandler(this.triggerXMapUpDown_ValueChanged); // // triggerZUpDown // this.triggerZUpDown.Location = new System.Drawing.Point(156, 23); this.triggerZUpDown.Maximum = new decimal(new int[] { 32768, 0, 0, 0}); this.triggerZUpDown.Minimum = new decimal(new int[] { 32768, 0, 0, -2147483648}); this.triggerZUpDown.Name = "triggerZUpDown"; this.triggerZUpDown.Size = new System.Drawing.Size(34, 20); this.triggerZUpDown.TabIndex = 20; this.triggerZUpDown.ValueChanged += new System.EventHandler(this.triggerZUpDown_ValueChanged); // // triggerMapXLabel // this.triggerMapXLabel.AutoSize = true; this.triggerMapXLabel.Location = new System.Drawing.Point(11, 27); this.triggerMapXLabel.Name = "triggerMapXLabel"; this.triggerMapXLabel.Size = new System.Drawing.Size(14, 13); this.triggerMapXLabel.TabIndex = 17; this.triggerMapXLabel.Text = "X"; // // triggerYMapUpDown // this.triggerYMapUpDown.Location = new System.Drawing.Point(91, 23); this.triggerYMapUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.triggerYMapUpDown.Name = "triggerYMapUpDown"; this.triggerYMapUpDown.Size = new System.Drawing.Size(34, 20); this.triggerYMapUpDown.TabIndex = 18; this.triggerYMapUpDown.ValueChanged += new System.EventHandler(this.triggerYMapUpDown_ValueChanged); // // triggerYMapLabel // this.triggerYMapLabel.AutoSize = true; this.triggerYMapLabel.Location = new System.Drawing.Point(76, 27); this.triggerYMapLabel.Name = "triggerYMapLabel"; this.triggerYMapLabel.Size = new System.Drawing.Size(14, 13); this.triggerYMapLabel.TabIndex = 19; this.triggerYMapLabel.Text = "Y"; // // groupBox6 // this.groupBox6.Controls.Add(this.goToTriggerButton); this.groupBox6.Controls.Add(this.triggerYMatrixLabel); this.groupBox6.Controls.Add(this.triggerXMatrixUpDown); this.groupBox6.Controls.Add(this.triggerXMatrixLabel); this.groupBox6.Controls.Add(this.triggerYMatrixUpDown); this.groupBox6.Location = new System.Drawing.Point(225, 248); this.groupBox6.Name = "groupBox6"; this.groupBox6.Size = new System.Drawing.Size(200, 94); this.groupBox6.TabIndex = 25; this.groupBox6.TabStop = false; this.groupBox6.Text = "Matrix Coordinates"; // // goToTriggerButton // this.goToTriggerButton.Image = global::DSPRE.Properties.Resources.goToTrigger; this.goToTriggerButton.ImageAlign = System.Drawing.ContentAlignment.BottomRight; this.goToTriggerButton.Location = new System.Drawing.Point(44, 47); this.goToTriggerButton.Name = "goToTriggerButton"; this.goToTriggerButton.Size = new System.Drawing.Size(120, 39); this.goToTriggerButton.TabIndex = 20; this.goToTriggerButton.Text = "Find this trigger"; this.goToTriggerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.goToTriggerButton.UseVisualStyleBackColor = true; this.goToTriggerButton.Click += new System.EventHandler(this.centerEventViewOnSelectedEvent_Click); // // triggerYMatrixLabel // this.triggerYMatrixLabel.AutoSize = true; this.triggerYMatrixLabel.Location = new System.Drawing.Point(105, 24); this.triggerYMatrixLabel.Name = "triggerYMatrixLabel"; this.triggerYMatrixLabel.Size = new System.Drawing.Size(45, 13); this.triggerYMatrixLabel.TabIndex = 19; this.triggerYMatrixLabel.Text = "Matrix Y"; // // triggerXMatrixUpDown // this.triggerXMatrixUpDown.Location = new System.Drawing.Point(52, 21); this.triggerXMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.triggerXMatrixUpDown.Name = "triggerXMatrixUpDown"; this.triggerXMatrixUpDown.Size = new System.Drawing.Size(37, 20); this.triggerXMatrixUpDown.TabIndex = 16; this.triggerXMatrixUpDown.ValueChanged += new System.EventHandler(this.triggerXMatrixUpDown_ValueChanged); // // triggerXMatrixLabel // this.triggerXMatrixLabel.AutoSize = true; this.triggerXMatrixLabel.Location = new System.Drawing.Point(6, 24); this.triggerXMatrixLabel.Name = "triggerXMatrixLabel"; this.triggerXMatrixLabel.Size = new System.Drawing.Size(45, 13); this.triggerXMatrixLabel.TabIndex = 17; this.triggerXMatrixLabel.Text = "Matrix X"; // // triggerYMatrixUpDown // this.triggerYMatrixUpDown.Location = new System.Drawing.Point(152, 21); this.triggerYMatrixUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.triggerYMatrixUpDown.Name = "triggerYMatrixUpDown"; this.triggerYMatrixUpDown.Size = new System.Drawing.Size(37, 20); this.triggerYMatrixUpDown.TabIndex = 18; this.triggerYMatrixUpDown.ValueChanged += new System.EventHandler(this.triggerYMatrixUpDown_ValueChanged); // // duplicateTriggersButton // this.duplicateTriggersButton.Image = global::DSPRE.Properties.Resources.copyIcon_small; this.duplicateTriggersButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.duplicateTriggersButton.Location = new System.Drawing.Point(130, 308); this.duplicateTriggersButton.Name = "duplicateTriggersButton"; this.duplicateTriggersButton.Size = new System.Drawing.Size(74, 32); this.duplicateTriggersButton.TabIndex = 36; this.duplicateTriggersButton.Text = "Duplicate"; this.duplicateTriggersButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.duplicateTriggersButton.UseVisualStyleBackColor = true; this.duplicateTriggersButton.Click += new System.EventHandler(this.duplicateTriggersButton_Click); // // removeTriggerButton // this.removeTriggerButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeTriggerButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeTriggerButton.Location = new System.Drawing.Point(66, 308); this.removeTriggerButton.Name = "removeTriggerButton"; this.removeTriggerButton.Size = new System.Drawing.Size(63, 32); this.removeTriggerButton.TabIndex = 10; this.removeTriggerButton.Text = "Delete"; this.removeTriggerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeTriggerButton.UseVisualStyleBackColor = true; this.removeTriggerButton.Click += new System.EventHandler(this.removeTriggerButton_Click); // // addTriggerButton // this.addTriggerButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addTriggerButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addTriggerButton.Location = new System.Drawing.Point(14, 308); this.addTriggerButton.Name = "addTriggerButton"; this.addTriggerButton.Size = new System.Drawing.Size(51, 32); this.addTriggerButton.TabIndex = 9; this.addTriggerButton.Text = "Add"; this.addTriggerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addTriggerButton.UseVisualStyleBackColor = true; this.addTriggerButton.Click += new System.EventHandler(this.addTriggerButton_Click); // // triggersListBox // this.triggersListBox.FormattingEnabled = true; this.triggersListBox.Location = new System.Drawing.Point(14, 12); this.triggersListBox.Name = "triggersListBox"; this.triggersListBox.Size = new System.Drawing.Size(190, 290); this.triggersListBox.TabIndex = 4; this.triggersListBox.SelectedIndexChanged += new System.EventHandler(this.triggersListBox_SelectedIndexChanged); // // eventPanel // this.eventPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.eventPanel.Controls.Add(this.eventPictureBox); this.eventPanel.Controls.Add(this.eventOpenGlControl); this.eventPanel.Location = new System.Drawing.Point(601, 39); this.eventPanel.Name = "eventPanel"; this.eventPanel.Size = new System.Drawing.Size(546, 546); this.eventPanel.TabIndex = 24; // // eventPictureBox // this.eventPictureBox.BackColor = System.Drawing.Color.White; this.eventPictureBox.Location = new System.Drawing.Point(0, 0); this.eventPictureBox.Name = "eventPictureBox"; this.eventPictureBox.Size = new System.Drawing.Size(544, 544); this.eventPictureBox.TabIndex = 3; this.eventPictureBox.TabStop = false; this.eventPictureBox.Click += new System.EventHandler(this.eventPictureBox_Click); this.eventPictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.eventPictureBox_MouseMove); // // eventOpenGlControl // this.eventOpenGlControl.AccumBits = ((byte)(0)); this.eventOpenGlControl.AutoCheckErrors = false; this.eventOpenGlControl.AutoFinish = false; this.eventOpenGlControl.AutoMakeCurrent = true; this.eventOpenGlControl.AutoSwapBuffers = true; this.eventOpenGlControl.BackColor = System.Drawing.Color.Black; this.eventOpenGlControl.ColorBits = ((byte)(32)); this.eventOpenGlControl.DepthBits = ((byte)(64)); this.eventOpenGlControl.Dock = System.Windows.Forms.DockStyle.Fill; this.eventOpenGlControl.ForeColor = System.Drawing.Color.Black; this.eventOpenGlControl.Location = new System.Drawing.Point(0, 0); this.eventOpenGlControl.Name = "eventOpenGlControl"; this.eventOpenGlControl.Size = new System.Drawing.Size(544, 544); this.eventOpenGlControl.StencilBits = ((byte)(0)); this.eventOpenGlControl.TabIndex = 2; // // rightClickPicture // this.rightClickPicture.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.rightClickPicture.Image = global::DSPRE.Properties.Resources.RightClick; this.rightClickPicture.ImageLocation = ""; this.rightClickPicture.Location = new System.Drawing.Point(468, 420); this.rightClickPicture.Name = "rightClickPicture"; this.rightClickPicture.Size = new System.Drawing.Size(0, 38); this.rightClickPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.rightClickPicture.TabIndex = 59; this.rightClickPicture.TabStop = false; // // wheelClickPicture // this.wheelClickPicture.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.wheelClickPicture.Image = global::DSPRE.Properties.Resources.WheelClick; this.wheelClickPicture.ImageLocation = ""; this.wheelClickPicture.Location = new System.Drawing.Point(552, 420); this.wheelClickPicture.Name = "wheelClickPicture"; this.wheelClickPicture.Size = new System.Drawing.Size(0, 38); this.wheelClickPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.wheelClickPicture.TabIndex = 56; this.wheelClickPicture.TabStop = false; // // LeftClickPicture // this.LeftClickPicture.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.LeftClickPicture.Image = global::DSPRE.Properties.Resources.LeftClick; this.LeftClickPicture.ImageLocation = ""; this.LeftClickPicture.Location = new System.Drawing.Point(510, 420); this.LeftClickPicture.Name = "LeftClickPicture"; this.LeftClickPicture.Size = new System.Drawing.Size(0, 38); this.LeftClickPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.LeftClickPicture.TabIndex = 55; this.LeftClickPicture.TabStop = false; // // removeEventFileButton // this.removeEventFileButton.Image = ((System.Drawing.Image)(resources.GetObject("removeEventFileButton.Image"))); this.removeEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeEventFileButton.Location = new System.Drawing.Point(354, 36); this.removeEventFileButton.Name = "removeEventFileButton"; this.removeEventFileButton.Size = new System.Drawing.Size(101, 25); this.removeEventFileButton.TabIndex = 54; this.removeEventFileButton.Text = "Remove Last"; this.removeEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeEventFileButton.UseVisualStyleBackColor = true; this.removeEventFileButton.Click += new System.EventHandler(this.removeEventFileButton_Click); // // addEventFileButton // this.addEventFileButton.Image = ((System.Drawing.Image)(resources.GetObject("addEventFileButton.Image"))); this.addEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addEventFileButton.Location = new System.Drawing.Point(354, 9); this.addEventFileButton.Name = "addEventFileButton"; this.addEventFileButton.Size = new System.Drawing.Size(101, 25); this.addEventFileButton.TabIndex = 53; this.addEventFileButton.Text = "Add Event File"; this.addEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addEventFileButton.UseVisualStyleBackColor = true; this.addEventFileButton.Click += new System.EventHandler(this.addEventFileButton_Click); // // eventShiftRightButton // this.eventShiftRightButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; this.eventShiftRightButton.Image = global::DSPRE.Properties.Resources.arrowright; this.eventShiftRightButton.Location = new System.Drawing.Point(1152, 233); this.eventShiftRightButton.Name = "eventShiftRightButton"; this.eventShiftRightButton.Size = new System.Drawing.Size(25, 156); this.eventShiftRightButton.TabIndex = 45; this.eventShiftRightButton.UseVisualStyleBackColor = true; this.eventShiftRightButton.Click += new System.EventHandler(this.eventShiftRightButton_Click); // // eventShiftLeftButton // this.eventShiftLeftButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; this.eventShiftLeftButton.Image = global::DSPRE.Properties.Resources.arrowleft; this.eventShiftLeftButton.Location = new System.Drawing.Point(570, 233); this.eventShiftLeftButton.Name = "eventShiftLeftButton"; this.eventShiftLeftButton.Size = new System.Drawing.Size(25, 156); this.eventShiftLeftButton.TabIndex = 44; this.eventShiftLeftButton.UseVisualStyleBackColor = true; this.eventShiftLeftButton.Click += new System.EventHandler(this.eventShiftLeftButton_Click); // // eventShiftUpButton // this.eventShiftUpButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; this.eventShiftUpButton.Image = global::DSPRE.Properties.Resources.arrowup; this.eventShiftUpButton.Location = new System.Drawing.Point(795, 8); this.eventShiftUpButton.Name = "eventShiftUpButton"; this.eventShiftUpButton.Size = new System.Drawing.Size(156, 25); this.eventShiftUpButton.TabIndex = 43; this.eventShiftUpButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.eventShiftUpButton.UseVisualStyleBackColor = true; this.eventShiftUpButton.Click += new System.EventHandler(this.eventShiftUpButton_Click); // // eventShiftDownButton // this.eventShiftDownButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; this.eventShiftDownButton.Image = global::DSPRE.Properties.Resources.arrowdown; this.eventShiftDownButton.Location = new System.Drawing.Point(795, 589); this.eventShiftDownButton.Name = "eventShiftDownButton"; this.eventShiftDownButton.Size = new System.Drawing.Size(156, 25); this.eventShiftDownButton.TabIndex = 42; this.eventShiftDownButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.eventShiftDownButton.UseVisualStyleBackColor = true; this.eventShiftDownButton.Click += new System.EventHandler(this.eventShiftDownButton_Click); // // exportEventFileButton // this.exportEventFileButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportEventFileButton.Location = new System.Drawing.Point(266, 9); this.exportEventFileButton.Name = "exportEventFileButton"; this.exportEventFileButton.Size = new System.Drawing.Size(84, 52); this.exportEventFileButton.TabIndex = 36; this.exportEventFileButton.Text = "Export"; this.exportEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportEventFileButton.UseVisualStyleBackColor = true; this.exportEventFileButton.Click += new System.EventHandler(this.exportEventFileButton_Click); // // importEventFileButton // this.importEventFileButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importEventFileButton.Location = new System.Drawing.Point(178, 9); this.importEventFileButton.Name = "importEventFileButton"; this.importEventFileButton.Size = new System.Drawing.Size(84, 52); this.importEventFileButton.TabIndex = 35; this.importEventFileButton.Text = "Import"; this.importEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importEventFileButton.UseVisualStyleBackColor = true; this.importEventFileButton.Click += new System.EventHandler(this.importEventFileButton_Click); // // saveEventsButton // this.saveEventsButton.Image = global::DSPRE.Properties.Resources.saveButton; this.saveEventsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveEventsButton.Location = new System.Drawing.Point(9, 36); this.saveEventsButton.Name = "saveEventsButton"; this.saveEventsButton.Size = new System.Drawing.Size(166, 25); this.saveEventsButton.TabIndex = 34; this.saveEventsButton.Text = "Save Event File"; this.saveEventsButton.UseVisualStyleBackColor = true; this.saveEventsButton.Click += new System.EventHandler(this.saveEventsButton_Click); // // tabPageScriptEditor // this.tabPageScriptEditor.Controls.Add(this.scriptEditor); this.tabPageScriptEditor.ImageIndex = 5; this.tabPageScriptEditor.Location = new System.Drawing.Point(4, 23); this.tabPageScriptEditor.Name = "tabPageScriptEditor"; this.tabPageScriptEditor.Padding = new System.Windows.Forms.Padding(3); this.tabPageScriptEditor.Size = new System.Drawing.Size(1185, 675); this.tabPageScriptEditor.TabIndex = 10; this.tabPageScriptEditor.Text = "Script Editor"; this.tabPageScriptEditor.UseVisualStyleBackColor = true; // // scriptEditor // this.scriptEditor.Location = new System.Drawing.Point(2, 3); this.scriptEditor.Margin = new System.Windows.Forms.Padding(4); this.scriptEditor.Name = "scriptEditor"; this.scriptEditor.scriptEditorIsReady = false; this.scriptEditor.Size = new System.Drawing.Size(1177, 735); this.scriptEditor.TabIndex = 0; // // tabPageLevelScriptEditor // this.tabPageLevelScriptEditor.Controls.Add(this.levelScriptEditor); this.tabPageLevelScriptEditor.ImageIndex = 5; this.tabPageLevelScriptEditor.Location = new System.Drawing.Point(4, 23); this.tabPageLevelScriptEditor.Name = "tabPageLevelScriptEditor"; this.tabPageLevelScriptEditor.Padding = new System.Windows.Forms.Padding(3); this.tabPageLevelScriptEditor.Size = new System.Drawing.Size(1185, 675); this.tabPageLevelScriptEditor.TabIndex = 11; this.tabPageLevelScriptEditor.Text = "Level Script Editor"; this.tabPageLevelScriptEditor.UseVisualStyleBackColor = true; // // levelScriptEditor // this.levelScriptEditor.BackColor = System.Drawing.SystemColors.Control; this.levelScriptEditor.levelScriptEditorIsReady = false; this.levelScriptEditor.Location = new System.Drawing.Point(6, 8); this.levelScriptEditor.Margin = new System.Windows.Forms.Padding(4); this.levelScriptEditor.Name = "levelScriptEditor"; this.levelScriptEditor.Size = new System.Drawing.Size(408, 622); this.levelScriptEditor.TabIndex = 0; // // textEditorTabPage // this.textEditorTabPage.Controls.Add(this.tableLayoutPanel1); this.textEditorTabPage.Controls.Add(this.groupBox13); this.textEditorTabPage.Controls.Add(this.textEditorDataGridView); this.textEditorTabPage.Controls.Add(this.removeStringButton); this.textEditorTabPage.Controls.Add(this.addStringButton); this.textEditorTabPage.ImageIndex = 4; this.textEditorTabPage.Location = new System.Drawing.Point(4, 23); this.textEditorTabPage.Name = "textEditorTabPage"; this.textEditorTabPage.Padding = new System.Windows.Forms.Padding(3); this.textEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.textEditorTabPage.TabIndex = 5; this.textEditorTabPage.Text = "Text Editor"; this.textEditorTabPage.UseVisualStyleBackColor = true; // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 12; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.Controls.Add(this.label6, 0, 0); this.tableLayoutPanel1.Controls.Add(this.selectedLineMoveUpButton, 8, 1); this.tableLayoutPanel1.Controls.Add(this.selectTextFileComboBox, 0, 1); this.tableLayoutPanel1.Controls.Add(this.locateCurrentTextArchive, 6, 1); this.tableLayoutPanel1.Controls.Add(this.saveTextArchiveButton, 0, 2); this.tableLayoutPanel1.Controls.Add(this.importTextFileButton, 1, 1); this.tableLayoutPanel1.Controls.Add(this.exportTextFileButton, 2, 1); this.tableLayoutPanel1.Controls.Add(this.addTextArchiveButton, 4, 1); this.tableLayoutPanel1.Controls.Add(this.removeMessageFileButton, 5, 1); this.tableLayoutPanel1.Controls.Add(this.selectedLineMoveDownButton, 9, 1); this.tableLayoutPanel1.Controls.Add(this.LineNumbersFormatgroupBox, 11, 1); this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 4); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 3; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.Size = new System.Drawing.Size(1161, 70); this.tableLayoutPanel1.TabIndex = 66; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(3, 0); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(67, 13); this.label6.TabIndex = 18; this.label6.Text = "Text Archive"; // // selectedLineMoveUpButton // this.selectedLineMoveUpButton.Image = global::DSPRE.Properties.Resources.arrowup; this.selectedLineMoveUpButton.Location = new System.Drawing.Point(681, 16); this.selectedLineMoveUpButton.Name = "selectedLineMoveUpButton"; this.tableLayoutPanel1.SetRowSpan(this.selectedLineMoveUpButton, 2); this.selectedLineMoveUpButton.Size = new System.Drawing.Size(42, 40); this.selectedLineMoveUpButton.TabIndex = 65; this.selectedLineMoveUpButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.toolTip1.SetToolTip(this.selectedLineMoveUpButton, "Shift up selected line"); this.selectedLineMoveUpButton.UseVisualStyleBackColor = true; this.selectedLineMoveUpButton.Click += new System.EventHandler(this.selectedLineMoveUpButton_Click); // // selectTextFileComboBox // this.selectTextFileComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectTextFileComboBox.FormattingEnabled = true; this.selectTextFileComboBox.Location = new System.Drawing.Point(3, 16); this.selectTextFileComboBox.Name = "selectTextFileComboBox"; this.selectTextFileComboBox.Size = new System.Drawing.Size(184, 21); this.selectTextFileComboBox.TabIndex = 17; this.selectTextFileComboBox.SelectedIndexChanged += new System.EventHandler(this.selectTextFileComboBox_SelectedIndexChanged); // // locateCurrentTextArchive // this.locateCurrentTextArchive.Image = global::DSPRE.Properties.Resources.open_file; this.locateCurrentTextArchive.Location = new System.Drawing.Point(613, 16); this.locateCurrentTextArchive.Name = "locateCurrentTextArchive"; this.tableLayoutPanel1.SetRowSpan(this.locateCurrentTextArchive, 2); this.locateCurrentTextArchive.Size = new System.Drawing.Size(42, 40); this.locateCurrentTextArchive.TabIndex = 64; this.locateCurrentTextArchive.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.locateCurrentTextArchive.UseVisualStyleBackColor = true; this.locateCurrentTextArchive.Click += new System.EventHandler(this.locateCurrentTextArchive_Click); // // saveTextArchiveButton // this.saveTextArchiveButton.Dock = System.Windows.Forms.DockStyle.Fill; this.saveTextArchiveButton.Image = global::DSPRE.Properties.Resources.saveButton; this.saveTextArchiveButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveTextArchiveButton.Location = new System.Drawing.Point(3, 43); this.saveTextArchiveButton.Name = "saveTextArchiveButton"; this.saveTextArchiveButton.Size = new System.Drawing.Size(184, 30); this.saveTextArchiveButton.TabIndex = 21; this.saveTextArchiveButton.Text = "&Save Current Archive"; this.saveTextArchiveButton.UseVisualStyleBackColor = true; this.saveTextArchiveButton.Click += new System.EventHandler(this.saveTextArchiveButton_Click); // // importTextFileButton // this.importTextFileButton.Dock = System.Windows.Forms.DockStyle.Fill; this.importTextFileButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importTextFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importTextFileButton.Location = new System.Drawing.Point(193, 16); this.importTextFileButton.Name = "importTextFileButton"; this.tableLayoutPanel1.SetRowSpan(this.importTextFileButton, 2); this.importTextFileButton.Size = new System.Drawing.Size(94, 57); this.importTextFileButton.TabIndex = 22; this.importTextFileButton.Text = "&Replace\r\nCurrent"; this.importTextFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importTextFileButton.UseVisualStyleBackColor = true; this.importTextFileButton.Click += new System.EventHandler(this.importTextFileButton_Click); // // exportTextFileButton // this.exportTextFileButton.Dock = System.Windows.Forms.DockStyle.Fill; this.exportTextFileButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportTextFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportTextFileButton.Location = new System.Drawing.Point(293, 16); this.exportTextFileButton.Name = "exportTextFileButton"; this.tableLayoutPanel1.SetRowSpan(this.exportTextFileButton, 2); this.exportTextFileButton.Size = new System.Drawing.Size(94, 57); this.exportTextFileButton.TabIndex = 23; this.exportTextFileButton.Text = "&Export File"; this.exportTextFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportTextFileButton.UseVisualStyleBackColor = true; this.exportTextFileButton.Click += new System.EventHandler(this.exportTextFileButton_Click); // // addTextArchiveButton // this.addTextArchiveButton.Dock = System.Windows.Forms.DockStyle.Fill; this.addTextArchiveButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addTextArchiveButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addTextArchiveButton.Location = new System.Drawing.Point(413, 16); this.addTextArchiveButton.Name = "addTextArchiveButton"; this.tableLayoutPanel1.SetRowSpan(this.addTextArchiveButton, 2); this.addTextArchiveButton.Size = new System.Drawing.Size(91, 57); this.addTextArchiveButton.TabIndex = 19; this.addTextArchiveButton.Text = "Add Text \r\nArchive"; this.addTextArchiveButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addTextArchiveButton.UseVisualStyleBackColor = true; this.addTextArchiveButton.Click += new System.EventHandler(this.addTextArchiveButton_Click); // // removeMessageFileButton // this.removeMessageFileButton.Dock = System.Windows.Forms.DockStyle.Fill; this.removeMessageFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeMessageFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeMessageFileButton.Location = new System.Drawing.Point(510, 16); this.removeMessageFileButton.Name = "removeMessageFileButton"; this.tableLayoutPanel1.SetRowSpan(this.removeMessageFileButton, 2); this.removeMessageFileButton.Size = new System.Drawing.Size(97, 57); this.removeMessageFileButton.TabIndex = 20; this.removeMessageFileButton.Text = "Remove \r\nLast Archive"; this.removeMessageFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeMessageFileButton.UseVisualStyleBackColor = true; this.removeMessageFileButton.Click += new System.EventHandler(this.removeMessageFileButton_Click); // // selectedLineMoveDownButton // this.selectedLineMoveDownButton.Image = global::DSPRE.Properties.Resources.arrowdown; this.selectedLineMoveDownButton.Location = new System.Drawing.Point(729, 16); this.selectedLineMoveDownButton.Name = "selectedLineMoveDownButton"; this.tableLayoutPanel1.SetRowSpan(this.selectedLineMoveDownButton, 2); this.selectedLineMoveDownButton.Size = new System.Drawing.Size(42, 40); this.selectedLineMoveDownButton.TabIndex = 66; this.selectedLineMoveDownButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.toolTip1.SetToolTip(this.selectedLineMoveDownButton, "Shift down selected line"); this.selectedLineMoveDownButton.UseVisualStyleBackColor = true; this.selectedLineMoveDownButton.Click += new System.EventHandler(this.selectedLineMoveDownButton_Click); // // LineNumbersFormatgroupBox // this.LineNumbersFormatgroupBox.Controls.Add(this.decimalRadioButton); this.LineNumbersFormatgroupBox.Controls.Add(this.hexRadiobutton); this.LineNumbersFormatgroupBox.Location = new System.Drawing.Point(797, 16); this.LineNumbersFormatgroupBox.Name = "LineNumbersFormatgroupBox"; this.tableLayoutPanel1.SetRowSpan(this.LineNumbersFormatgroupBox, 2); this.LineNumbersFormatgroupBox.Size = new System.Drawing.Size(134, 35); this.LineNumbersFormatgroupBox.TabIndex = 34; this.LineNumbersFormatgroupBox.TabStop = false; this.LineNumbersFormatgroupBox.Text = "Line Number Format"; // // decimalRadioButton // this.decimalRadioButton.AutoSize = true; this.decimalRadioButton.Checked = true; this.decimalRadioButton.Location = new System.Drawing.Point(68, 14); this.decimalRadioButton.Name = "decimalRadioButton"; this.decimalRadioButton.Size = new System.Drawing.Size(63, 17); this.decimalRadioButton.TabIndex = 35; this.decimalRadioButton.TabStop = true; this.decimalRadioButton.Text = "Decimal"; this.decimalRadioButton.UseVisualStyleBackColor = true; // // hexRadiobutton // this.hexRadiobutton.AutoSize = true; this.hexRadiobutton.Location = new System.Drawing.Point(6, 14); this.hexRadiobutton.Name = "hexRadiobutton"; this.hexRadiobutton.Size = new System.Drawing.Size(44, 17); this.hexRadiobutton.TabIndex = 34; this.hexRadiobutton.Text = "Hex"; this.hexRadiobutton.UseVisualStyleBackColor = true; this.hexRadiobutton.CheckedChanged += new System.EventHandler(this.hexRadiobutton_CheckedChanged); // // groupBox13 // this.groupBox13.Controls.Add(this.label67); this.groupBox13.Controls.Add(this.searchAllArchivesCheckBox); this.groupBox13.Controls.Add(this.caseSensitiveTextReplaceCheckbox); this.groupBox13.Controls.Add(this.textSearchResultsListBox); this.groupBox13.Controls.Add(this.replaceTextLabel); this.groupBox13.Controls.Add(this.replaceMessageTextBox); this.groupBox13.Controls.Add(this.label8); this.groupBox13.Controls.Add(this.textSearchProgressBar); this.groupBox13.Controls.Add(this.caseSensitiveTextSearchCheckbox); this.groupBox13.Controls.Add(this.label7); this.groupBox13.Controls.Add(this.searchMessageTextBox); this.groupBox13.Controls.Add(this.searchMessageButton); this.groupBox13.Controls.Add(this.replaceMessageButton); this.groupBox13.Location = new System.Drawing.Point(891, 75); this.groupBox13.Name = "groupBox13"; this.groupBox13.Size = new System.Drawing.Size(282, 502); this.groupBox13.TabIndex = 31; this.groupBox13.TabStop = false; this.groupBox13.Text = "Search / Replace"; // // label67 // this.label67.AutoSize = true; this.label67.Enabled = false; this.label67.ForeColor = System.Drawing.SystemColors.ControlDark; this.label67.Location = new System.Drawing.Point(190, 133); this.label67.Name = "label67"; this.label67.Size = new System.Drawing.Size(74, 13); this.label67.TabIndex = 41; this.label67.Text = "[Coming soon]"; // // searchAllArchivesCheckBox // this.searchAllArchivesCheckBox.AutoSize = true; this.searchAllArchivesCheckBox.Checked = true; this.searchAllArchivesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.searchAllArchivesCheckBox.Location = new System.Drawing.Point(190, 22); this.searchAllArchivesCheckBox.Name = "searchAllArchivesCheckBox"; this.searchAllArchivesCheckBox.Size = new System.Drawing.Size(81, 17); this.searchAllArchivesCheckBox.TabIndex = 40; this.searchAllArchivesCheckBox.Text = "All Archives"; this.searchAllArchivesCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.searchAllArchivesCheckBox.UseVisualStyleBackColor = true; // // caseSensitiveTextReplaceCheckbox // this.caseSensitiveTextReplaceCheckbox.AutoSize = true; this.caseSensitiveTextReplaceCheckbox.Enabled = false; this.caseSensitiveTextReplaceCheckbox.Location = new System.Drawing.Point(190, 115); this.caseSensitiveTextReplaceCheckbox.Name = "caseSensitiveTextReplaceCheckbox"; this.caseSensitiveTextReplaceCheckbox.Size = new System.Drawing.Size(77, 17); this.caseSensitiveTextReplaceCheckbox.TabIndex = 39; this.caseSensitiveTextReplaceCheckbox.Text = "Copy Case"; this.caseSensitiveTextReplaceCheckbox.UseVisualStyleBackColor = true; // // textSearchResultsListBox // this.textSearchResultsListBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.textSearchResultsListBox.ItemHeight = 15; this.textSearchResultsListBox.Location = new System.Drawing.Point(9, 182); this.textSearchResultsListBox.Name = "textSearchResultsListBox"; this.textSearchResultsListBox.Size = new System.Drawing.Size(267, 244); this.textSearchResultsListBox.TabIndex = 38; this.textSearchResultsListBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textSearchResultsListBox_KeyDown); this.textSearchResultsListBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.textSearchResultsListBox_GoToEntryResult); // // replaceTextLabel // this.replaceTextLabel.AutoSize = true; this.replaceTextLabel.Location = new System.Drawing.Point(6, 87); this.replaceTextLabel.Name = "replaceTextLabel"; this.replaceTextLabel.Size = new System.Drawing.Size(93, 13); this.replaceTextLabel.TabIndex = 37; this.replaceTextLabel.Text = "Replacement text:"; // // replaceMessageTextBox // this.replaceMessageTextBox.Location = new System.Drawing.Point(8, 103); this.replaceMessageTextBox.MaxLength = 100; this.replaceMessageTextBox.Name = "replaceMessageTextBox"; this.replaceMessageTextBox.Size = new System.Drawing.Size(173, 20); this.replaceMessageTextBox.TabIndex = 36; // // label8 // this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(6, 450); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(48, 13); this.label8.TabIndex = 35; this.label8.Text = "Progress"; // // textSearchProgressBar // this.textSearchProgressBar.Location = new System.Drawing.Point(9, 466); this.textSearchProgressBar.Name = "textSearchProgressBar"; this.textSearchProgressBar.Size = new System.Drawing.Size(267, 27); this.textSearchProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous; this.textSearchProgressBar.TabIndex = 34; // // caseSensitiveTextSearchCheckbox // this.caseSensitiveTextSearchCheckbox.AutoSize = true; this.caseSensitiveTextSearchCheckbox.Location = new System.Drawing.Point(190, 50); this.caseSensitiveTextSearchCheckbox.Name = "caseSensitiveTextSearchCheckbox"; this.caseSensitiveTextSearchCheckbox.Size = new System.Drawing.Size(83, 17); this.caseSensitiveTextSearchCheckbox.TabIndex = 33; this.caseSensitiveTextSearchCheckbox.Text = "Match Case"; this.caseSensitiveTextSearchCheckbox.UseVisualStyleBackColor = true; // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(5, 166); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(42, 13); this.label7.TabIndex = 32; this.label7.Text = "Results"; // // searchMessageTextBox // this.searchMessageTextBox.Location = new System.Drawing.Point(6, 20); this.searchMessageTextBox.MaxLength = 100; this.searchMessageTextBox.Name = "searchMessageTextBox"; this.searchMessageTextBox.Size = new System.Drawing.Size(175, 20); this.searchMessageTextBox.TabIndex = 27; this.searchMessageTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.searchMessageTextBox_KeyDown); // // searchMessageButton // this.searchMessageButton.Image = global::DSPRE.Properties.Resources.SearchMiniIcon; this.searchMessageButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.searchMessageButton.Location = new System.Drawing.Point(6, 44); this.searchMessageButton.Name = "searchMessageButton"; this.searchMessageButton.Size = new System.Drawing.Size(175, 27); this.searchMessageButton.TabIndex = 30; this.searchMessageButton.Text = "Search"; this.searchMessageButton.UseVisualStyleBackColor = true; this.searchMessageButton.Click += new System.EventHandler(this.searchMessageButton_Click); // // replaceMessageButton // this.replaceMessageButton.Location = new System.Drawing.Point(8, 127); this.replaceMessageButton.Name = "replaceMessageButton"; this.replaceMessageButton.Size = new System.Drawing.Size(173, 27); this.replaceMessageButton.TabIndex = 30; this.replaceMessageButton.Text = "Search and Replace All"; this.replaceMessageButton.UseVisualStyleBackColor = true; this.replaceMessageButton.Click += new System.EventHandler(this.replaceMessageButton_Click); // // textEditorDataGridView // this.textEditorDataGridView.AllowDrop = true; this.textEditorDataGridView.AllowUserToAddRows = false; this.textEditorDataGridView.AllowUserToDeleteRows = false; this.textEditorDataGridView.AllowUserToResizeColumns = false; this.textEditorDataGridView.AllowUserToResizeRows = false; this.textEditorDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.textEditorDataGridView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; this.textEditorDataGridView.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight; this.textEditorDataGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None; this.textEditorDataGridView.ColumnHeadersHeight = 29; this.textEditorDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; this.textEditorDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.messageColumn}); this.textEditorDataGridView.Location = new System.Drawing.Point(12, 77); this.textEditorDataGridView.Name = "textEditorDataGridView"; this.textEditorDataGridView.RowHeadersWidth = 68; dataGridViewCellStyle31.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.textEditorDataGridView.RowsDefaultCellStyle = dataGridViewCellStyle31; this.textEditorDataGridView.Size = new System.Drawing.Size(873, 500); this.textEditorDataGridView.TabIndex = 24; this.textEditorDataGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.textEditorDataGridView_CellValueChanged); this.textEditorDataGridView.CurrentCellChanged += new System.EventHandler(this.textEditorDataGridView_CurrentCellChanged); // // messageColumn // this.messageColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; this.messageColumn.HeaderText = "Message"; this.messageColumn.MinimumWidth = 6; this.messageColumn.Name = "messageColumn"; this.messageColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; this.messageColumn.Width = 56; // // removeStringButton // this.removeStringButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeStringButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeStringButton.Location = new System.Drawing.Point(113, 580); this.removeStringButton.Name = "removeStringButton"; this.removeStringButton.Size = new System.Drawing.Size(124, 34); this.removeStringButton.TabIndex = 26; this.removeStringButton.Text = "Remove Last Line"; this.removeStringButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeStringButton.UseVisualStyleBackColor = true; this.removeStringButton.Click += new System.EventHandler(this.removeStringButton_Click); // // addStringButton // this.addStringButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addStringButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addStringButton.Location = new System.Drawing.Point(12, 580); this.addStringButton.Name = "addStringButton"; this.addStringButton.Size = new System.Drawing.Size(95, 34); this.addStringButton.TabIndex = 25; this.addStringButton.Text = "&Append Line"; this.addStringButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addStringButton.UseVisualStyleBackColor = true; this.addStringButton.Click += new System.EventHandler(this.addStringButton_Click); // // cameraEditorTabPage // this.cameraEditorTabPage.Controls.Add(this.exportCameraTableButton); this.cameraEditorTabPage.Controls.Add(this.importCameraTableButton); this.cameraEditorTabPage.Controls.Add(this.saveCameraTableButton); this.cameraEditorTabPage.Controls.Add(this.cameraEditorDataGridView); this.cameraEditorTabPage.ImageIndex = 7; this.cameraEditorTabPage.Location = new System.Drawing.Point(4, 23); this.cameraEditorTabPage.Name = "cameraEditorTabPage"; this.cameraEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.cameraEditorTabPage.TabIndex = 7; this.cameraEditorTabPage.Text = "Camera Editor"; this.cameraEditorTabPage.UseVisualStyleBackColor = true; // // exportCameraTableButton // this.exportCameraTableButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportCameraTableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportCameraTableButton.Location = new System.Drawing.Point(3, 563); this.exportCameraTableButton.Name = "exportCameraTableButton"; this.exportCameraTableButton.Size = new System.Drawing.Size(115, 45); this.exportCameraTableButton.TabIndex = 16; this.exportCameraTableButton.Text = "Export \r\nCamera Table"; this.exportCameraTableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportCameraTableButton.UseVisualStyleBackColor = true; this.exportCameraTableButton.Click += new System.EventHandler(this.exportCameraTableButton_Click); // // importCameraTableButton // this.importCameraTableButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importCameraTableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importCameraTableButton.Location = new System.Drawing.Point(123, 563); this.importCameraTableButton.Name = "importCameraTableButton"; this.importCameraTableButton.Size = new System.Drawing.Size(115, 45); this.importCameraTableButton.TabIndex = 14; this.importCameraTableButton.Text = "Import\r\nCamera Table"; this.importCameraTableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importCameraTableButton.UseVisualStyleBackColor = true; this.importCameraTableButton.Click += new System.EventHandler(this.importCameraTableButton_Click); // // saveCameraTableButton // this.saveCameraTableButton.Image = global::DSPRE.Properties.Resources.save_rom; this.saveCameraTableButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveCameraTableButton.Location = new System.Drawing.Point(1060, 563); this.saveCameraTableButton.Name = "saveCameraTableButton"; this.saveCameraTableButton.Size = new System.Drawing.Size(115, 45); this.saveCameraTableButton.TabIndex = 15; this.saveCameraTableButton.Text = "&Save \r\nCam Table"; this.saveCameraTableButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveCameraTableButton.UseVisualStyleBackColor = true; this.saveCameraTableButton.Click += new System.EventHandler(this.saveCameraTableButton_Click); // // cameraEditorDataGridView // this.cameraEditorDataGridView.AllowUserToAddRows = false; this.cameraEditorDataGridView.AllowUserToDeleteRows = false; this.cameraEditorDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.cameraEditorDataGridView.BackgroundColor = System.Drawing.SystemColors.ControlDarkDark; this.cameraEditorDataGridView.BorderStyle = System.Windows.Forms.BorderStyle.None; this.cameraEditorDataGridView.CausesValidation = false; this.cameraEditorDataGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Raised; this.cameraEditorDataGridView.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; dataGridViewCellStyle32.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); dataGridViewCellStyle32.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.cameraEditorDataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle32; this.cameraEditorDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.cameraEditorDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.DistanceGVCol, this.VertRotGVCol, this.HoriRotGVCol, this.zRotGVCol, this.OrthoGVCol, this.FovGVCol, this.NearClipGVCol, this.FarClipGVCol, this.XDispGVCol, this.YDispGVCol, this.ZDispGVCol, this.ExportBTN, this.ImportBTN}); this.cameraEditorDataGridView.Location = new System.Drawing.Point(5, 4); this.cameraEditorDataGridView.MultiSelect = false; this.cameraEditorDataGridView.Name = "cameraEditorDataGridView"; this.cameraEditorDataGridView.RowHeadersWidth = 60; this.cameraEditorDataGridView.RowTemplate.DividerHeight = 1; this.cameraEditorDataGridView.RowTemplate.Height = 32; this.cameraEditorDataGridView.ScrollBars = System.Windows.Forms.ScrollBars.None; this.cameraEditorDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; this.cameraEditorDataGridView.Size = new System.Drawing.Size(1172, 551); this.cameraEditorDataGridView.TabIndex = 0; this.cameraEditorDataGridView.TabStop = false; this.cameraEditorDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.cameraEditorDataGridView_CellContentClick); this.cameraEditorDataGridView.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.cameraEditorDataGridView_CellValidated); // // DistanceGVCol // this.DistanceGVCol.FillWeight = 44.49141F; this.DistanceGVCol.HeaderText = "Distance"; this.DistanceGVCol.MinimumWidth = 6; this.DistanceGVCol.Name = "DistanceGVCol"; this.DistanceGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // VertRotGVCol // this.VertRotGVCol.FillWeight = 28.66745F; this.VertRotGVCol.HeaderText = "Vertical Rotation"; this.VertRotGVCol.MinimumWidth = 6; this.VertRotGVCol.Name = "VertRotGVCol"; this.VertRotGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // HoriRotGVCol // this.HoriRotGVCol.FillWeight = 28.66745F; this.HoriRotGVCol.HeaderText = "Horizontal Rotation"; this.HoriRotGVCol.MinimumWidth = 6; this.HoriRotGVCol.Name = "HoriRotGVCol"; this.HoriRotGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // zRotGVCol // this.zRotGVCol.FillWeight = 28F; this.zRotGVCol.HeaderText = "Z Rotation"; this.zRotGVCol.MinimumWidth = 6; this.zRotGVCol.Name = "zRotGVCol"; this.zRotGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // OrthoGVCol // this.OrthoGVCol.FillWeight = 44.49141F; this.OrthoGVCol.HeaderText = "Orthographic"; this.OrthoGVCol.MinimumWidth = 6; this.OrthoGVCol.Name = "OrthoGVCol"; // // FovGVCol // this.FovGVCol.FillWeight = 19.11163F; this.FovGVCol.HeaderText = "FOV"; this.FovGVCol.MinimumWidth = 6; this.FovGVCol.Name = "FovGVCol"; this.FovGVCol.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.FovGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // NearClipGVCol // this.NearClipGVCol.FillWeight = 44.49141F; this.NearClipGVCol.HeaderText = "Near Clip Distance"; this.NearClipGVCol.MinimumWidth = 6; this.NearClipGVCol.Name = "NearClipGVCol"; this.NearClipGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // FarClipGVCol // this.FarClipGVCol.FillWeight = 44.49141F; this.FarClipGVCol.HeaderText = "Far Clip Distance"; this.FarClipGVCol.MinimumWidth = 6; this.FarClipGVCol.Name = "FarClipGVCol"; this.FarClipGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // XDispGVCol // this.XDispGVCol.FillWeight = 44.49141F; this.XDispGVCol.HeaderText = "X Displacement"; this.XDispGVCol.MinimumWidth = 6; this.XDispGVCol.Name = "XDispGVCol"; this.XDispGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // YDispGVCol // this.YDispGVCol.FillWeight = 44.49141F; this.YDispGVCol.HeaderText = "Y Displacement"; this.YDispGVCol.MinimumWidth = 6; this.YDispGVCol.Name = "YDispGVCol"; this.YDispGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // ZDispGVCol // this.ZDispGVCol.FillWeight = 44.49141F; this.ZDispGVCol.HeaderText = "Z Displacement"; this.ZDispGVCol.MinimumWidth = 6; this.ZDispGVCol.Name = "ZDispGVCol"; this.ZDispGVCol.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // ExportBTN // this.ExportBTN.FillWeight = 44.49141F; this.ExportBTN.HeaderText = ""; this.ExportBTN.MinimumWidth = 6; this.ExportBTN.Name = "ExportBTN"; this.ExportBTN.Text = "Export"; this.ExportBTN.UseColumnTextForButtonValue = true; // // ImportBTN // this.ImportBTN.FillWeight = 44.49141F; this.ImportBTN.HeaderText = ""; this.ImportBTN.MinimumWidth = 6; this.ImportBTN.Name = "ImportBTN"; this.ImportBTN.Text = "Import"; this.ImportBTN.UseColumnTextForButtonValue = true; // // trainerEditorTabPage // this.trainerEditorTabPage.Controls.Add(this.tableLayoutPanel4); this.trainerEditorTabPage.Controls.Add(this.groupBox28); this.trainerEditorTabPage.Controls.Add(this.groupBox27); this.trainerEditorTabPage.Controls.Add(this.deleteTrainerButton); this.trainerEditorTabPage.Controls.Add(this.groupBox25); this.trainerEditorTabPage.Controls.Add(this.addTrainerButton); this.trainerEditorTabPage.Controls.Add(this.label42); this.trainerEditorTabPage.Controls.Add(this.trainerComboBox); this.trainerEditorTabPage.Controls.Add(this.trainerSaveCurrentButton); this.trainerEditorTabPage.ImageIndex = 8; this.trainerEditorTabPage.Location = new System.Drawing.Point(4, 23); this.trainerEditorTabPage.Name = "trainerEditorTabPage"; this.trainerEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.trainerEditorTabPage.TabIndex = 8; this.trainerEditorTabPage.Text = "Trainer Editor"; this.trainerEditorTabPage.UseVisualStyleBackColor = true; // // tableLayoutPanel4 // this.tableLayoutPanel4.ColumnCount = 1; this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 47.0167F)); this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel4.Controls.Add(this.exportTrainerButton, 0, 0); this.tableLayoutPanel4.Controls.Add(this.importTrainerButton, 0, 1); this.tableLayoutPanel4.Location = new System.Drawing.Point(219, 15); this.tableLayoutPanel4.Name = "tableLayoutPanel4"; this.tableLayoutPanel4.RowCount = 2; this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel4.Size = new System.Drawing.Size(108, 62); this.tableLayoutPanel4.TabIndex = 47; // // exportTrainerButton // this.exportTrainerButton.Dock = System.Windows.Forms.DockStyle.Fill; this.exportTrainerButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportTrainerButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportTrainerButton.Location = new System.Drawing.Point(3, 3); this.exportTrainerButton.Name = "exportTrainerButton"; this.exportTrainerButton.Size = new System.Drawing.Size(102, 25); this.exportTrainerButton.TabIndex = 42; this.exportTrainerButton.Text = "Export Full"; this.exportTrainerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportTrainerButton.UseVisualStyleBackColor = true; this.exportTrainerButton.Click += new System.EventHandler(this.exportTrainerButton_Click); // // importTrainerButton // this.importTrainerButton.Dock = System.Windows.Forms.DockStyle.Fill; this.importTrainerButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importTrainerButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importTrainerButton.Location = new System.Drawing.Point(3, 34); this.importTrainerButton.Name = "importTrainerButton"; this.importTrainerButton.Size = new System.Drawing.Size(102, 25); this.importTrainerButton.TabIndex = 43; this.importTrainerButton.Text = "Replace Full"; this.importTrainerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importTrainerButton.UseVisualStyleBackColor = true; this.importTrainerButton.Click += new System.EventHandler(this.importTrainerButton_Click); // // groupBox28 // this.groupBox28.Controls.Add(this.tableLayoutPanel6); this.groupBox28.Controls.Add(this.DVExplainButton); this.groupBox28.Controls.Add(this.label74); this.groupBox28.Controls.Add(this.party6GroupBox); this.groupBox28.Controls.Add(this.party5GroupBox); this.groupBox28.Controls.Add(this.party4GroupBox); this.groupBox28.Controls.Add(this.party3GroupBox); this.groupBox28.Controls.Add(this.party2GroupBox); this.groupBox28.Controls.Add(this.party1GroupBox); this.groupBox28.Location = new System.Drawing.Point(439, 3); this.groupBox28.Name = "groupBox28"; this.groupBox28.Size = new System.Drawing.Size(731, 609); this.groupBox28.TabIndex = 32; this.groupBox28.TabStop = false; this.groupBox28.Text = "Party"; // // tableLayoutPanel6 // this.tableLayoutPanel6.ColumnCount = 2; this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.00001F)); this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel6.Controls.Add(this.button3, 1, 0); this.tableLayoutPanel6.Controls.Add(this.button4, 0, 0); this.tableLayoutPanel6.Location = new System.Drawing.Point(471, 10); this.tableLayoutPanel6.Name = "tableLayoutPanel6"; this.tableLayoutPanel6.RowCount = 1; this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel6.Size = new System.Drawing.Size(237, 29); this.tableLayoutPanel6.TabIndex = 48; // // button3 // this.button3.Dock = System.Windows.Forms.DockStyle.Fill; this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image"))); this.button3.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.button3.Location = new System.Drawing.Point(121, 3); this.button3.Name = "button3"; this.button3.Size = new System.Drawing.Size(113, 23); this.button3.TabIndex = 41; this.button3.Text = "Replace Party"; this.button3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.button3.UseVisualStyleBackColor = true; // // button4 // this.button4.Dock = System.Windows.Forms.DockStyle.Fill; this.button4.Image = ((System.Drawing.Image)(resources.GetObject("button4.Image"))); this.button4.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.button4.Location = new System.Drawing.Point(3, 3); this.button4.Name = "button4"; this.button4.Size = new System.Drawing.Size(112, 23); this.button4.TabIndex = 38; this.button4.Text = "Export Party"; this.button4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.button4.UseVisualStyleBackColor = true; // // DVExplainButton // this.DVExplainButton.Image = ((System.Drawing.Image)(resources.GetObject("DVExplainButton.Image"))); this.DVExplainButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.DVExplainButton.Location = new System.Drawing.Point(242, 11); this.DVExplainButton.Name = "DVExplainButton"; this.DVExplainButton.Size = new System.Drawing.Size(118, 29); this.DVExplainButton.TabIndex = 45; this.DVExplainButton.Text = "Open DV Calculator"; this.DVExplainButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.DVExplainButton.UseVisualStyleBackColor = true; this.DVExplainButton.Click += new System.EventHandler(this.DVExplainButton_Click); // // label74 // this.label74.AutoSize = true; this.label74.Location = new System.Drawing.Point(247, 16); this.label74.Name = "label74"; this.label74.Size = new System.Drawing.Size(0, 13); this.label74.TabIndex = 46; // // party6GroupBox // this.party6GroupBox.Controls.Add(this.partyForm6ComboBox); this.party6GroupBox.Controls.Add(this.partyAbility6ComboBox); this.party6GroupBox.Controls.Add(this.partyGender6ComboBox); this.party6GroupBox.Controls.Add(this.partyPokemonItemPictureBox6); this.party6GroupBox.Controls.Add(this.label60); this.party6GroupBox.Controls.Add(this.label61); this.party6GroupBox.Controls.Add(this.label62); this.party6GroupBox.Controls.Add(this.poke6MovesGroupBox); this.party6GroupBox.Controls.Add(this.partyIV6UpDown); this.party6GroupBox.Controls.Add(this.partyLevel6UpDown); this.party6GroupBox.Controls.Add(this.partyBall6UpDown); this.party6GroupBox.Controls.Add(this.partyItem6ComboBox); this.party6GroupBox.Controls.Add(this.partyPokemon6PictureBox); this.party6GroupBox.Controls.Add(this.partyPokemon6ComboBox); this.party6GroupBox.Enabled = false; this.party6GroupBox.Location = new System.Drawing.Point(371, 408); this.party6GroupBox.Name = "party6GroupBox"; this.party6GroupBox.Size = new System.Drawing.Size(343, 183); this.party6GroupBox.TabIndex = 13; this.party6GroupBox.TabStop = false; this.party6GroupBox.Text = "Pokemon 6"; // // partyForm6ComboBox // this.partyForm6ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyForm6ComboBox.FormattingEnabled = true; this.partyForm6ComboBox.Items.AddRange(new object[] { "Defense form"}); this.partyForm6ComboBox.Location = new System.Drawing.Point(228, 151); this.partyForm6ComboBox.Name = "partyForm6ComboBox"; this.partyForm6ComboBox.Size = new System.Drawing.Size(103, 21); this.partyForm6ComboBox.TabIndex = 20; // // partyAbility6ComboBox // this.partyAbility6ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyAbility6ComboBox.FormattingEnabled = true; this.partyAbility6ComboBox.Location = new System.Drawing.Point(15, 151); this.partyAbility6ComboBox.Name = "partyAbility6ComboBox"; this.partyAbility6ComboBox.Size = new System.Drawing.Size(105, 21); this.partyAbility6ComboBox.TabIndex = 19; // // partyGender6ComboBox // this.partyGender6ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyGender6ComboBox.FormattingEnabled = true; this.partyGender6ComboBox.Location = new System.Drawing.Point(126, 151); this.partyGender6ComboBox.Name = "partyGender6ComboBox"; this.partyGender6ComboBox.Size = new System.Drawing.Size(95, 21); this.partyGender6ComboBox.TabIndex = 15; // // partyPokemonItemPictureBox6 // this.partyPokemonItemPictureBox6.Image = global::DSPRE.Properties.Resources.IconItem; this.partyPokemonItemPictureBox6.Location = new System.Drawing.Point(198, 26); this.partyPokemonItemPictureBox6.Name = "partyPokemonItemPictureBox6"; this.partyPokemonItemPictureBox6.Size = new System.Drawing.Size(24, 25); this.partyPokemonItemPictureBox6.TabIndex = 13; this.partyPokemonItemPictureBox6.TabStop = false; this.partyPokemonItemPictureBox6.Visible = false; // // label60 // this.label60.AutoSize = true; this.label60.Location = new System.Drawing.Point(12, 118); this.label60.Name = "label60"; this.label60.Size = new System.Drawing.Size(28, 26); this.label60.TabIndex = 9; this.label60.Text = "Ball\r\nSeal"; // // label61 // this.label61.AutoSize = true; this.label61.Location = new System.Drawing.Point(12, 94); this.label61.Name = "label61"; this.label61.Size = new System.Drawing.Size(22, 13); this.label61.TabIndex = 8; this.label61.Text = "DV"; // // label62 // this.label62.AutoSize = true; this.label62.Location = new System.Drawing.Point(12, 67); this.label62.Name = "label62"; this.label62.Size = new System.Drawing.Size(22, 13); this.label62.TabIndex = 7; this.label62.Text = "Lv."; // // poke6MovesGroupBox // this.poke6MovesGroupBox.Controls.Add(this.partyMove6_1ComboBox); this.poke6MovesGroupBox.Controls.Add(this.partyMove6_2ComboBox); this.poke6MovesGroupBox.Controls.Add(this.partyMove6_3ComboBox); this.poke6MovesGroupBox.Controls.Add(this.partyMove6_4ComboBox); this.poke6MovesGroupBox.Location = new System.Drawing.Point(110, 57); this.poke6MovesGroupBox.Name = "poke6MovesGroupBox"; this.poke6MovesGroupBox.Size = new System.Drawing.Size(227, 85); this.poke6MovesGroupBox.TabIndex = 6; this.poke6MovesGroupBox.TabStop = false; this.poke6MovesGroupBox.Text = "Moves"; // // partyMove6_1ComboBox // this.partyMove6_1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove6_1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove6_1ComboBox.Enabled = false; this.partyMove6_1ComboBox.FormattingEnabled = true; this.partyMove6_1ComboBox.Location = new System.Drawing.Point(10, 21); this.partyMove6_1ComboBox.Name = "partyMove6_1ComboBox"; this.partyMove6_1ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove6_1ComboBox.TabIndex = 3; this.partyMove6_1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove6_2ComboBox // this.partyMove6_2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove6_2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove6_2ComboBox.Enabled = false; this.partyMove6_2ComboBox.FormattingEnabled = true; this.partyMove6_2ComboBox.Location = new System.Drawing.Point(116, 21); this.partyMove6_2ComboBox.Name = "partyMove6_2ComboBox"; this.partyMove6_2ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove6_2ComboBox.TabIndex = 6; this.partyMove6_2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove6_3ComboBox // this.partyMove6_3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove6_3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove6_3ComboBox.Enabled = false; this.partyMove6_3ComboBox.FormattingEnabled = true; this.partyMove6_3ComboBox.Location = new System.Drawing.Point(10, 48); this.partyMove6_3ComboBox.Name = "partyMove6_3ComboBox"; this.partyMove6_3ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove6_3ComboBox.TabIndex = 5; this.partyMove6_3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove6_4ComboBox // this.partyMove6_4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove6_4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove6_4ComboBox.Enabled = false; this.partyMove6_4ComboBox.FormattingEnabled = true; this.partyMove6_4ComboBox.Location = new System.Drawing.Point(116, 48); this.partyMove6_4ComboBox.Name = "partyMove6_4ComboBox"; this.partyMove6_4ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove6_4ComboBox.TabIndex = 7; this.partyMove6_4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyIV6UpDown // this.partyIV6UpDown.Location = new System.Drawing.Point(48, 92); this.partyIV6UpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.partyIV6UpDown.Name = "partyIV6UpDown"; this.partyIV6UpDown.Size = new System.Drawing.Size(49, 20); this.partyIV6UpDown.TabIndex = 5; // // partyLevel6UpDown // this.partyLevel6UpDown.Location = new System.Drawing.Point(48, 63); this.partyLevel6UpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.partyLevel6UpDown.Name = "partyLevel6UpDown"; this.partyLevel6UpDown.Size = new System.Drawing.Size(49, 20); this.partyLevel6UpDown.TabIndex = 4; this.partyLevel6UpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); // // partyBall6UpDown // this.partyBall6UpDown.Location = new System.Drawing.Point(48, 121); this.partyBall6UpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.partyBall6UpDown.Name = "partyBall6UpDown"; this.partyBall6UpDown.Size = new System.Drawing.Size(49, 20); this.partyBall6UpDown.TabIndex = 3; // // partyItem6ComboBox // this.partyItem6ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyItem6ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyItem6ComboBox.Enabled = false; this.partyItem6ComboBox.FormattingEnabled = true; this.partyItem6ComboBox.Location = new System.Drawing.Point(228, 28); this.partyItem6ComboBox.Name = "partyItem6ComboBox"; this.partyItem6ComboBox.Size = new System.Drawing.Size(103, 21); this.partyItem6ComboBox.TabIndex = 2; this.partyItem6ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyItem6ComboBox_SelectedIndexChanged); // // partyPokemon6PictureBox // this.partyPokemon6PictureBox.Location = new System.Drawing.Point(11, 23); this.partyPokemon6PictureBox.Name = "partyPokemon6PictureBox"; this.partyPokemon6PictureBox.Size = new System.Drawing.Size(40, 30); this.partyPokemon6PictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.partyPokemon6PictureBox.TabIndex = 1; this.partyPokemon6PictureBox.TabStop = false; // // partyPokemon6ComboBox // this.partyPokemon6ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyPokemon6ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyPokemon6ComboBox.FormattingEnabled = true; this.partyPokemon6ComboBox.Location = new System.Drawing.Point(58, 28); this.partyPokemon6ComboBox.Name = "partyPokemon6ComboBox"; this.partyPokemon6ComboBox.Size = new System.Drawing.Size(126, 21); this.partyPokemon6ComboBox.TabIndex = 0; this.partyPokemon6ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyPokemon6ComboBox_SelectedIndexChanged); // // party5GroupBox // this.party5GroupBox.Controls.Add(this.partyForm5ComboBox); this.party5GroupBox.Controls.Add(this.partyAbility5ComboBox); this.party5GroupBox.Controls.Add(this.partyGender5ComboBox); this.party5GroupBox.Controls.Add(this.partyPokemonItemPictureBox5); this.party5GroupBox.Controls.Add(this.label57); this.party5GroupBox.Controls.Add(this.label58); this.party5GroupBox.Controls.Add(this.label59); this.party5GroupBox.Controls.Add(this.poke5MovesGroupBox); this.party5GroupBox.Controls.Add(this.partyIV5UpDown); this.party5GroupBox.Controls.Add(this.partyLevel5UpDown); this.party5GroupBox.Controls.Add(this.partyBall5UpDown); this.party5GroupBox.Controls.Add(this.partyItem5ComboBox); this.party5GroupBox.Controls.Add(this.partyPokemon5PictureBox); this.party5GroupBox.Controls.Add(this.partyPokemon5ComboBox); this.party5GroupBox.Enabled = false; this.party5GroupBox.Location = new System.Drawing.Point(16, 408); this.party5GroupBox.Name = "party5GroupBox"; this.party5GroupBox.Size = new System.Drawing.Size(343, 183); this.party5GroupBox.TabIndex = 12; this.party5GroupBox.TabStop = false; this.party5GroupBox.Text = "Pokemon 5"; // // partyForm5ComboBox // this.partyForm5ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyForm5ComboBox.FormattingEnabled = true; this.partyForm5ComboBox.Items.AddRange(new object[] { "Defense form"}); this.partyForm5ComboBox.Location = new System.Drawing.Point(228, 151); this.partyForm5ComboBox.Name = "partyForm5ComboBox"; this.partyForm5ComboBox.Size = new System.Drawing.Size(103, 21); this.partyForm5ComboBox.TabIndex = 19; // // partyAbility5ComboBox // this.partyAbility5ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyAbility5ComboBox.FormattingEnabled = true; this.partyAbility5ComboBox.Location = new System.Drawing.Point(15, 151); this.partyAbility5ComboBox.Name = "partyAbility5ComboBox"; this.partyAbility5ComboBox.Size = new System.Drawing.Size(105, 21); this.partyAbility5ComboBox.TabIndex = 18; // // partyGender5ComboBox // this.partyGender5ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyGender5ComboBox.FormattingEnabled = true; this.partyGender5ComboBox.Location = new System.Drawing.Point(126, 151); this.partyGender5ComboBox.Name = "partyGender5ComboBox"; this.partyGender5ComboBox.Size = new System.Drawing.Size(95, 21); this.partyGender5ComboBox.TabIndex = 14; // // partyPokemonItemPictureBox5 // this.partyPokemonItemPictureBox5.Image = global::DSPRE.Properties.Resources.IconItem; this.partyPokemonItemPictureBox5.Location = new System.Drawing.Point(198, 26); this.partyPokemonItemPictureBox5.Name = "partyPokemonItemPictureBox5"; this.partyPokemonItemPictureBox5.Size = new System.Drawing.Size(24, 25); this.partyPokemonItemPictureBox5.TabIndex = 12; this.partyPokemonItemPictureBox5.TabStop = false; this.partyPokemonItemPictureBox5.Visible = false; // // label57 // this.label57.AutoSize = true; this.label57.Location = new System.Drawing.Point(12, 118); this.label57.Name = "label57"; this.label57.Size = new System.Drawing.Size(28, 26); this.label57.TabIndex = 9; this.label57.Text = "Ball\r\nSeal"; // // label58 // this.label58.AutoSize = true; this.label58.Location = new System.Drawing.Point(12, 94); this.label58.Name = "label58"; this.label58.Size = new System.Drawing.Size(22, 13); this.label58.TabIndex = 8; this.label58.Text = "DV"; // // label59 // this.label59.AutoSize = true; this.label59.Location = new System.Drawing.Point(12, 67); this.label59.Name = "label59"; this.label59.Size = new System.Drawing.Size(22, 13); this.label59.TabIndex = 7; this.label59.Text = "Lv."; // // poke5MovesGroupBox // this.poke5MovesGroupBox.Controls.Add(this.partyMove5_1ComboBox); this.poke5MovesGroupBox.Controls.Add(this.partyMove5_2ComboBox); this.poke5MovesGroupBox.Controls.Add(this.partyMove5_3ComboBox); this.poke5MovesGroupBox.Controls.Add(this.partyMove5_4ComboBox); this.poke5MovesGroupBox.Location = new System.Drawing.Point(110, 57); this.poke5MovesGroupBox.Name = "poke5MovesGroupBox"; this.poke5MovesGroupBox.Size = new System.Drawing.Size(227, 85); this.poke5MovesGroupBox.TabIndex = 6; this.poke5MovesGroupBox.TabStop = false; this.poke5MovesGroupBox.Text = "Moves"; // // partyMove5_1ComboBox // this.partyMove5_1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove5_1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove5_1ComboBox.Enabled = false; this.partyMove5_1ComboBox.FormattingEnabled = true; this.partyMove5_1ComboBox.Location = new System.Drawing.Point(10, 21); this.partyMove5_1ComboBox.Name = "partyMove5_1ComboBox"; this.partyMove5_1ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove5_1ComboBox.TabIndex = 3; this.partyMove5_1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove5_2ComboBox // this.partyMove5_2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove5_2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove5_2ComboBox.Enabled = false; this.partyMove5_2ComboBox.FormattingEnabled = true; this.partyMove5_2ComboBox.Location = new System.Drawing.Point(116, 21); this.partyMove5_2ComboBox.Name = "partyMove5_2ComboBox"; this.partyMove5_2ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove5_2ComboBox.TabIndex = 6; this.partyMove5_2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove5_3ComboBox // this.partyMove5_3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove5_3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove5_3ComboBox.Enabled = false; this.partyMove5_3ComboBox.FormattingEnabled = true; this.partyMove5_3ComboBox.Location = new System.Drawing.Point(10, 48); this.partyMove5_3ComboBox.Name = "partyMove5_3ComboBox"; this.partyMove5_3ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove5_3ComboBox.TabIndex = 5; this.partyMove5_3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove5_4ComboBox // this.partyMove5_4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove5_4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove5_4ComboBox.Enabled = false; this.partyMove5_4ComboBox.FormattingEnabled = true; this.partyMove5_4ComboBox.Location = new System.Drawing.Point(116, 48); this.partyMove5_4ComboBox.Name = "partyMove5_4ComboBox"; this.partyMove5_4ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove5_4ComboBox.TabIndex = 7; this.partyMove5_4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyIV5UpDown // this.partyIV5UpDown.Location = new System.Drawing.Point(48, 92); this.partyIV5UpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.partyIV5UpDown.Name = "partyIV5UpDown"; this.partyIV5UpDown.Size = new System.Drawing.Size(49, 20); this.partyIV5UpDown.TabIndex = 5; // // partyLevel5UpDown // this.partyLevel5UpDown.Location = new System.Drawing.Point(48, 63); this.partyLevel5UpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.partyLevel5UpDown.Name = "partyLevel5UpDown"; this.partyLevel5UpDown.Size = new System.Drawing.Size(49, 20); this.partyLevel5UpDown.TabIndex = 4; this.partyLevel5UpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); // // partyBall5UpDown // this.partyBall5UpDown.Location = new System.Drawing.Point(48, 121); this.partyBall5UpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.partyBall5UpDown.Name = "partyBall5UpDown"; this.partyBall5UpDown.Size = new System.Drawing.Size(49, 20); this.partyBall5UpDown.TabIndex = 3; // // partyItem5ComboBox // this.partyItem5ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyItem5ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyItem5ComboBox.Enabled = false; this.partyItem5ComboBox.FormattingEnabled = true; this.partyItem5ComboBox.Location = new System.Drawing.Point(228, 28); this.partyItem5ComboBox.Name = "partyItem5ComboBox"; this.partyItem5ComboBox.Size = new System.Drawing.Size(103, 21); this.partyItem5ComboBox.TabIndex = 2; this.partyItem5ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyItem5ComboBox_SelectedIndexChanged); // // partyPokemon5PictureBox // this.partyPokemon5PictureBox.Location = new System.Drawing.Point(11, 23); this.partyPokemon5PictureBox.Name = "partyPokemon5PictureBox"; this.partyPokemon5PictureBox.Size = new System.Drawing.Size(40, 30); this.partyPokemon5PictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.partyPokemon5PictureBox.TabIndex = 1; this.partyPokemon5PictureBox.TabStop = false; // // partyPokemon5ComboBox // this.partyPokemon5ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyPokemon5ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyPokemon5ComboBox.FormattingEnabled = true; this.partyPokemon5ComboBox.Location = new System.Drawing.Point(58, 28); this.partyPokemon5ComboBox.Name = "partyPokemon5ComboBox"; this.partyPokemon5ComboBox.Size = new System.Drawing.Size(126, 21); this.partyPokemon5ComboBox.TabIndex = 0; this.partyPokemon5ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyPokemon5ComboBox_SelectedIndexChanged); // // party4GroupBox // this.party4GroupBox.Controls.Add(this.partyForm4ComboBox); this.party4GroupBox.Controls.Add(this.partyAbility4ComboBox); this.party4GroupBox.Controls.Add(this.partyGender4ComboBox); this.party4GroupBox.Controls.Add(this.partyPokemonItemPictureBox4); this.party4GroupBox.Controls.Add(this.label54); this.party4GroupBox.Controls.Add(this.label55); this.party4GroupBox.Controls.Add(this.label56); this.party4GroupBox.Controls.Add(this.poke4MovesGroupBox); this.party4GroupBox.Controls.Add(this.partyIV4UpDown); this.party4GroupBox.Controls.Add(this.partyLevel4UpDown); this.party4GroupBox.Controls.Add(this.partyBall4UpDown); this.party4GroupBox.Controls.Add(this.partyItem4ComboBox); this.party4GroupBox.Controls.Add(this.partyPokemon4PictureBox); this.party4GroupBox.Controls.Add(this.partyPokemon4ComboBox); this.party4GroupBox.Enabled = false; this.party4GroupBox.Location = new System.Drawing.Point(371, 223); this.party4GroupBox.Name = "party4GroupBox"; this.party4GroupBox.Size = new System.Drawing.Size(343, 183); this.party4GroupBox.TabIndex = 11; this.party4GroupBox.TabStop = false; this.party4GroupBox.Text = "Pokemon 4"; // // partyForm4ComboBox // this.partyForm4ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyForm4ComboBox.FormattingEnabled = true; this.partyForm4ComboBox.Items.AddRange(new object[] { "Defense form"}); this.partyForm4ComboBox.Location = new System.Drawing.Point(228, 151); this.partyForm4ComboBox.Name = "partyForm4ComboBox"; this.partyForm4ComboBox.Size = new System.Drawing.Size(103, 21); this.partyForm4ComboBox.TabIndex = 18; // // partyAbility4ComboBox // this.partyAbility4ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyAbility4ComboBox.FormattingEnabled = true; this.partyAbility4ComboBox.Location = new System.Drawing.Point(15, 151); this.partyAbility4ComboBox.Name = "partyAbility4ComboBox"; this.partyAbility4ComboBox.Size = new System.Drawing.Size(105, 21); this.partyAbility4ComboBox.TabIndex = 17; // // partyGender4ComboBox // this.partyGender4ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyGender4ComboBox.FormattingEnabled = true; this.partyGender4ComboBox.Location = new System.Drawing.Point(126, 151); this.partyGender4ComboBox.Name = "partyGender4ComboBox"; this.partyGender4ComboBox.Size = new System.Drawing.Size(95, 21); this.partyGender4ComboBox.TabIndex = 16; // // partyPokemonItemPictureBox4 // this.partyPokemonItemPictureBox4.Image = global::DSPRE.Properties.Resources.IconItem; this.partyPokemonItemPictureBox4.Location = new System.Drawing.Point(198, 26); this.partyPokemonItemPictureBox4.Name = "partyPokemonItemPictureBox4"; this.partyPokemonItemPictureBox4.Size = new System.Drawing.Size(24, 25); this.partyPokemonItemPictureBox4.TabIndex = 14; this.partyPokemonItemPictureBox4.TabStop = false; this.partyPokemonItemPictureBox4.Visible = false; // // label54 // this.label54.AutoSize = true; this.label54.Location = new System.Drawing.Point(12, 118); this.label54.Name = "label54"; this.label54.Size = new System.Drawing.Size(28, 26); this.label54.TabIndex = 9; this.label54.Text = "Ball\r\nSeal"; // // label55 // this.label55.AutoSize = true; this.label55.Location = new System.Drawing.Point(12, 94); this.label55.Name = "label55"; this.label55.Size = new System.Drawing.Size(22, 13); this.label55.TabIndex = 8; this.label55.Text = "DV"; // // label56 // this.label56.AutoSize = true; this.label56.Location = new System.Drawing.Point(12, 67); this.label56.Name = "label56"; this.label56.Size = new System.Drawing.Size(22, 13); this.label56.TabIndex = 7; this.label56.Text = "Lv."; // // poke4MovesGroupBox // this.poke4MovesGroupBox.Controls.Add(this.partyMove4_1ComboBox); this.poke4MovesGroupBox.Controls.Add(this.partyMove4_2ComboBox); this.poke4MovesGroupBox.Controls.Add(this.partyMove4_3ComboBox); this.poke4MovesGroupBox.Controls.Add(this.partyMove4_4ComboBox); this.poke4MovesGroupBox.Location = new System.Drawing.Point(110, 57); this.poke4MovesGroupBox.Name = "poke4MovesGroupBox"; this.poke4MovesGroupBox.Size = new System.Drawing.Size(227, 85); this.poke4MovesGroupBox.TabIndex = 6; this.poke4MovesGroupBox.TabStop = false; this.poke4MovesGroupBox.Text = "Moves"; // // partyMove4_1ComboBox // this.partyMove4_1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove4_1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove4_1ComboBox.Enabled = false; this.partyMove4_1ComboBox.FormattingEnabled = true; this.partyMove4_1ComboBox.Location = new System.Drawing.Point(10, 21); this.partyMove4_1ComboBox.Name = "partyMove4_1ComboBox"; this.partyMove4_1ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove4_1ComboBox.TabIndex = 3; this.partyMove4_1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove4_2ComboBox // this.partyMove4_2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove4_2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove4_2ComboBox.Enabled = false; this.partyMove4_2ComboBox.FormattingEnabled = true; this.partyMove4_2ComboBox.Location = new System.Drawing.Point(116, 21); this.partyMove4_2ComboBox.Name = "partyMove4_2ComboBox"; this.partyMove4_2ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove4_2ComboBox.TabIndex = 6; this.partyMove4_2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove4_3ComboBox // this.partyMove4_3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove4_3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove4_3ComboBox.Enabled = false; this.partyMove4_3ComboBox.FormattingEnabled = true; this.partyMove4_3ComboBox.Location = new System.Drawing.Point(10, 48); this.partyMove4_3ComboBox.Name = "partyMove4_3ComboBox"; this.partyMove4_3ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove4_3ComboBox.TabIndex = 5; this.partyMove4_3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove4_4ComboBox // this.partyMove4_4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove4_4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove4_4ComboBox.Enabled = false; this.partyMove4_4ComboBox.FormattingEnabled = true; this.partyMove4_4ComboBox.Location = new System.Drawing.Point(116, 48); this.partyMove4_4ComboBox.Name = "partyMove4_4ComboBox"; this.partyMove4_4ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove4_4ComboBox.TabIndex = 7; this.partyMove4_4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyIV4UpDown // this.partyIV4UpDown.Location = new System.Drawing.Point(48, 92); this.partyIV4UpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.partyIV4UpDown.Name = "partyIV4UpDown"; this.partyIV4UpDown.Size = new System.Drawing.Size(49, 20); this.partyIV4UpDown.TabIndex = 5; // // partyLevel4UpDown // this.partyLevel4UpDown.Location = new System.Drawing.Point(48, 63); this.partyLevel4UpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.partyLevel4UpDown.Name = "partyLevel4UpDown"; this.partyLevel4UpDown.Size = new System.Drawing.Size(49, 20); this.partyLevel4UpDown.TabIndex = 4; this.partyLevel4UpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); // // partyBall4UpDown // this.partyBall4UpDown.Location = new System.Drawing.Point(48, 121); this.partyBall4UpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.partyBall4UpDown.Name = "partyBall4UpDown"; this.partyBall4UpDown.Size = new System.Drawing.Size(49, 20); this.partyBall4UpDown.TabIndex = 3; // // partyItem4ComboBox // this.partyItem4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyItem4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyItem4ComboBox.Enabled = false; this.partyItem4ComboBox.FormattingEnabled = true; this.partyItem4ComboBox.Location = new System.Drawing.Point(228, 28); this.partyItem4ComboBox.Name = "partyItem4ComboBox"; this.partyItem4ComboBox.Size = new System.Drawing.Size(103, 21); this.partyItem4ComboBox.TabIndex = 2; this.partyItem4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyItem4ComboBox_SelectedIndexChanged); // // partyPokemon4PictureBox // this.partyPokemon4PictureBox.Location = new System.Drawing.Point(11, 23); this.partyPokemon4PictureBox.Name = "partyPokemon4PictureBox"; this.partyPokemon4PictureBox.Size = new System.Drawing.Size(40, 30); this.partyPokemon4PictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.partyPokemon4PictureBox.TabIndex = 1; this.partyPokemon4PictureBox.TabStop = false; // // partyPokemon4ComboBox // this.partyPokemon4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyPokemon4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyPokemon4ComboBox.FormattingEnabled = true; this.partyPokemon4ComboBox.Location = new System.Drawing.Point(58, 28); this.partyPokemon4ComboBox.Name = "partyPokemon4ComboBox"; this.partyPokemon4ComboBox.Size = new System.Drawing.Size(126, 21); this.partyPokemon4ComboBox.TabIndex = 0; this.partyPokemon4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyPokemon4ComboBox_SelectedIndexChanged); // // party3GroupBox // this.party3GroupBox.Controls.Add(this.partyForm3ComboBox); this.party3GroupBox.Controls.Add(this.partyAbility3ComboBox); this.party3GroupBox.Controls.Add(this.partyGender3ComboBox); this.party3GroupBox.Controls.Add(this.partyPokemonItemPictureBox3); this.party3GroupBox.Controls.Add(this.label51); this.party3GroupBox.Controls.Add(this.label52); this.party3GroupBox.Controls.Add(this.label53); this.party3GroupBox.Controls.Add(this.poke3MovesGroupBox); this.party3GroupBox.Controls.Add(this.partyIV3UpDown); this.party3GroupBox.Controls.Add(this.partyLevel3UpDown); this.party3GroupBox.Controls.Add(this.partyBall3UpDown); this.party3GroupBox.Controls.Add(this.partyItem3ComboBox); this.party3GroupBox.Controls.Add(this.partyPokemon3PictureBox); this.party3GroupBox.Controls.Add(this.partyPokemon3ComboBox); this.party3GroupBox.Enabled = false; this.party3GroupBox.Location = new System.Drawing.Point(16, 223); this.party3GroupBox.Name = "party3GroupBox"; this.party3GroupBox.Size = new System.Drawing.Size(343, 183); this.party3GroupBox.TabIndex = 10; this.party3GroupBox.TabStop = false; this.party3GroupBox.Text = "Pokemon 3"; // // partyForm3ComboBox // this.partyForm3ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyForm3ComboBox.FormattingEnabled = true; this.partyForm3ComboBox.Items.AddRange(new object[] { "Defense form"}); this.partyForm3ComboBox.Location = new System.Drawing.Point(228, 151); this.partyForm3ComboBox.Name = "partyForm3ComboBox"; this.partyForm3ComboBox.Size = new System.Drawing.Size(103, 21); this.partyForm3ComboBox.TabIndex = 15; // // partyAbility3ComboBox // this.partyAbility3ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyAbility3ComboBox.FormattingEnabled = true; this.partyAbility3ComboBox.Location = new System.Drawing.Point(15, 151); this.partyAbility3ComboBox.Name = "partyAbility3ComboBox"; this.partyAbility3ComboBox.Size = new System.Drawing.Size(105, 21); this.partyAbility3ComboBox.TabIndex = 14; // // partyGender3ComboBox // this.partyGender3ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyGender3ComboBox.FormattingEnabled = true; this.partyGender3ComboBox.Location = new System.Drawing.Point(126, 151); this.partyGender3ComboBox.Name = "partyGender3ComboBox"; this.partyGender3ComboBox.Size = new System.Drawing.Size(95, 21); this.partyGender3ComboBox.TabIndex = 13; // // partyPokemonItemPictureBox3 // this.partyPokemonItemPictureBox3.Image = global::DSPRE.Properties.Resources.IconItem; this.partyPokemonItemPictureBox3.Location = new System.Drawing.Point(198, 26); this.partyPokemonItemPictureBox3.Name = "partyPokemonItemPictureBox3"; this.partyPokemonItemPictureBox3.Size = new System.Drawing.Size(24, 25); this.partyPokemonItemPictureBox3.TabIndex = 11; this.partyPokemonItemPictureBox3.TabStop = false; this.partyPokemonItemPictureBox3.Visible = false; // // label51 // this.label51.AutoSize = true; this.label51.Location = new System.Drawing.Point(12, 118); this.label51.Name = "label51"; this.label51.Size = new System.Drawing.Size(28, 26); this.label51.TabIndex = 9; this.label51.Text = "Ball\r\nSeal"; // // label52 // this.label52.AutoSize = true; this.label52.Location = new System.Drawing.Point(12, 94); this.label52.Name = "label52"; this.label52.Size = new System.Drawing.Size(22, 13); this.label52.TabIndex = 8; this.label52.Text = "DV"; // // label53 // this.label53.AutoSize = true; this.label53.Location = new System.Drawing.Point(12, 67); this.label53.Name = "label53"; this.label53.Size = new System.Drawing.Size(22, 13); this.label53.TabIndex = 7; this.label53.Text = "Lv."; // // poke3MovesGroupBox // this.poke3MovesGroupBox.Controls.Add(this.partyMove3_1ComboBox); this.poke3MovesGroupBox.Controls.Add(this.partyMove3_2ComboBox); this.poke3MovesGroupBox.Controls.Add(this.partyMove3_3ComboBox); this.poke3MovesGroupBox.Controls.Add(this.partyMove3_4ComboBox); this.poke3MovesGroupBox.Location = new System.Drawing.Point(110, 57); this.poke3MovesGroupBox.Name = "poke3MovesGroupBox"; this.poke3MovesGroupBox.Size = new System.Drawing.Size(227, 85); this.poke3MovesGroupBox.TabIndex = 6; this.poke3MovesGroupBox.TabStop = false; this.poke3MovesGroupBox.Text = "Moves"; // // partyMove3_1ComboBox // this.partyMove3_1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove3_1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove3_1ComboBox.Enabled = false; this.partyMove3_1ComboBox.FormattingEnabled = true; this.partyMove3_1ComboBox.Location = new System.Drawing.Point(10, 21); this.partyMove3_1ComboBox.Name = "partyMove3_1ComboBox"; this.partyMove3_1ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove3_1ComboBox.TabIndex = 3; this.partyMove3_1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove3_2ComboBox // this.partyMove3_2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove3_2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove3_2ComboBox.Enabled = false; this.partyMove3_2ComboBox.FormattingEnabled = true; this.partyMove3_2ComboBox.Location = new System.Drawing.Point(116, 21); this.partyMove3_2ComboBox.Name = "partyMove3_2ComboBox"; this.partyMove3_2ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove3_2ComboBox.TabIndex = 6; this.partyMove3_2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove3_3ComboBox // this.partyMove3_3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove3_3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove3_3ComboBox.Enabled = false; this.partyMove3_3ComboBox.FormattingEnabled = true; this.partyMove3_3ComboBox.Location = new System.Drawing.Point(10, 48); this.partyMove3_3ComboBox.Name = "partyMove3_3ComboBox"; this.partyMove3_3ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove3_3ComboBox.TabIndex = 5; this.partyMove3_3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove3_4ComboBox // this.partyMove3_4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove3_4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove3_4ComboBox.Enabled = false; this.partyMove3_4ComboBox.FormattingEnabled = true; this.partyMove3_4ComboBox.Location = new System.Drawing.Point(116, 48); this.partyMove3_4ComboBox.Name = "partyMove3_4ComboBox"; this.partyMove3_4ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove3_4ComboBox.TabIndex = 7; this.partyMove3_4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyIV3UpDown // this.partyIV3UpDown.Location = new System.Drawing.Point(48, 92); this.partyIV3UpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.partyIV3UpDown.Name = "partyIV3UpDown"; this.partyIV3UpDown.Size = new System.Drawing.Size(49, 20); this.partyIV3UpDown.TabIndex = 5; // // partyLevel3UpDown // this.partyLevel3UpDown.Location = new System.Drawing.Point(48, 63); this.partyLevel3UpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.partyLevel3UpDown.Name = "partyLevel3UpDown"; this.partyLevel3UpDown.Size = new System.Drawing.Size(49, 20); this.partyLevel3UpDown.TabIndex = 4; this.partyLevel3UpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); // // partyBall3UpDown // this.partyBall3UpDown.Location = new System.Drawing.Point(48, 121); this.partyBall3UpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.partyBall3UpDown.Name = "partyBall3UpDown"; this.partyBall3UpDown.Size = new System.Drawing.Size(49, 20); this.partyBall3UpDown.TabIndex = 3; // // partyItem3ComboBox // this.partyItem3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyItem3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyItem3ComboBox.Enabled = false; this.partyItem3ComboBox.FormattingEnabled = true; this.partyItem3ComboBox.Location = new System.Drawing.Point(228, 28); this.partyItem3ComboBox.Name = "partyItem3ComboBox"; this.partyItem3ComboBox.Size = new System.Drawing.Size(103, 21); this.partyItem3ComboBox.TabIndex = 2; this.partyItem3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyItem3ComboBox_SelectedIndexChanged); // // partyPokemon3PictureBox // this.partyPokemon3PictureBox.Location = new System.Drawing.Point(11, 23); this.partyPokemon3PictureBox.Name = "partyPokemon3PictureBox"; this.partyPokemon3PictureBox.Size = new System.Drawing.Size(40, 30); this.partyPokemon3PictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.partyPokemon3PictureBox.TabIndex = 1; this.partyPokemon3PictureBox.TabStop = false; // // partyPokemon3ComboBox // this.partyPokemon3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyPokemon3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyPokemon3ComboBox.FormattingEnabled = true; this.partyPokemon3ComboBox.Location = new System.Drawing.Point(58, 28); this.partyPokemon3ComboBox.Name = "partyPokemon3ComboBox"; this.partyPokemon3ComboBox.Size = new System.Drawing.Size(126, 21); this.partyPokemon3ComboBox.TabIndex = 0; this.partyPokemon3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyPokemon3ComboBox_SelectedIndexChanged); // // party2GroupBox // this.party2GroupBox.Controls.Add(this.partyForm2ComboBox); this.party2GroupBox.Controls.Add(this.partyAbility2ComboBox); this.party2GroupBox.Controls.Add(this.partyGender2ComboBox); this.party2GroupBox.Controls.Add(this.partyPokemonItemPictureBox2); this.party2GroupBox.Controls.Add(this.label48); this.party2GroupBox.Controls.Add(this.label49); this.party2GroupBox.Controls.Add(this.label50); this.party2GroupBox.Controls.Add(this.poke2MovesGroupBox); this.party2GroupBox.Controls.Add(this.partyIV2UpDown); this.party2GroupBox.Controls.Add(this.partyLevel2UpDown); this.party2GroupBox.Controls.Add(this.partyBall2UpDown); this.party2GroupBox.Controls.Add(this.partyItem2ComboBox); this.party2GroupBox.Controls.Add(this.partyPokemon2PictureBox); this.party2GroupBox.Controls.Add(this.partyPokemon2ComboBox); this.party2GroupBox.Enabled = false; this.party2GroupBox.Location = new System.Drawing.Point(371, 37); this.party2GroupBox.Name = "party2GroupBox"; this.party2GroupBox.Size = new System.Drawing.Size(343, 183); this.party2GroupBox.TabIndex = 10; this.party2GroupBox.TabStop = false; this.party2GroupBox.Text = "Pokemon 2"; // // partyForm2ComboBox // this.partyForm2ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyForm2ComboBox.FormattingEnabled = true; this.partyForm2ComboBox.Items.AddRange(new object[] { "Defense form"}); this.partyForm2ComboBox.Location = new System.Drawing.Point(228, 151); this.partyForm2ComboBox.Name = "partyForm2ComboBox"; this.partyForm2ComboBox.Size = new System.Drawing.Size(103, 21); this.partyForm2ComboBox.TabIndex = 20; // // partyAbility2ComboBox // this.partyAbility2ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyAbility2ComboBox.FormattingEnabled = true; this.partyAbility2ComboBox.Location = new System.Drawing.Point(15, 151); this.partyAbility2ComboBox.Name = "partyAbility2ComboBox"; this.partyAbility2ComboBox.Size = new System.Drawing.Size(105, 21); this.partyAbility2ComboBox.TabIndex = 18; // // partyGender2ComboBox // this.partyGender2ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyGender2ComboBox.FormattingEnabled = true; this.partyGender2ComboBox.Location = new System.Drawing.Point(126, 151); this.partyGender2ComboBox.Name = "partyGender2ComboBox"; this.partyGender2ComboBox.Size = new System.Drawing.Size(95, 21); this.partyGender2ComboBox.TabIndex = 17; // // partyPokemonItemPictureBox2 // this.partyPokemonItemPictureBox2.Image = global::DSPRE.Properties.Resources.IconItem; this.partyPokemonItemPictureBox2.Location = new System.Drawing.Point(198, 26); this.partyPokemonItemPictureBox2.Name = "partyPokemonItemPictureBox2"; this.partyPokemonItemPictureBox2.Size = new System.Drawing.Size(24, 25); this.partyPokemonItemPictureBox2.TabIndex = 15; this.partyPokemonItemPictureBox2.TabStop = false; this.partyPokemonItemPictureBox2.Visible = false; // // label48 // this.label48.AutoSize = true; this.label48.Location = new System.Drawing.Point(12, 118); this.label48.Name = "label48"; this.label48.Size = new System.Drawing.Size(28, 26); this.label48.TabIndex = 9; this.label48.Text = "Ball\r\nSeal"; // // label49 // this.label49.AutoSize = true; this.label49.Location = new System.Drawing.Point(12, 94); this.label49.Name = "label49"; this.label49.Size = new System.Drawing.Size(22, 13); this.label49.TabIndex = 8; this.label49.Text = "DV"; // // label50 // this.label50.AutoSize = true; this.label50.Location = new System.Drawing.Point(12, 67); this.label50.Name = "label50"; this.label50.Size = new System.Drawing.Size(22, 13); this.label50.TabIndex = 7; this.label50.Text = "Lv."; // // poke2MovesGroupBox // this.poke2MovesGroupBox.Controls.Add(this.partyMove2_1ComboBox); this.poke2MovesGroupBox.Controls.Add(this.partyMove2_2ComboBox); this.poke2MovesGroupBox.Controls.Add(this.partyMove2_3ComboBox); this.poke2MovesGroupBox.Controls.Add(this.partyMove2_4ComboBox); this.poke2MovesGroupBox.Location = new System.Drawing.Point(110, 57); this.poke2MovesGroupBox.Name = "poke2MovesGroupBox"; this.poke2MovesGroupBox.Size = new System.Drawing.Size(227, 85); this.poke2MovesGroupBox.TabIndex = 6; this.poke2MovesGroupBox.TabStop = false; this.poke2MovesGroupBox.Text = "Moves"; // // partyMove2_1ComboBox // this.partyMove2_1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove2_1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove2_1ComboBox.Enabled = false; this.partyMove2_1ComboBox.FormattingEnabled = true; this.partyMove2_1ComboBox.Location = new System.Drawing.Point(10, 21); this.partyMove2_1ComboBox.Name = "partyMove2_1ComboBox"; this.partyMove2_1ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove2_1ComboBox.TabIndex = 3; this.partyMove2_1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove2_2ComboBox // this.partyMove2_2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove2_2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove2_2ComboBox.Enabled = false; this.partyMove2_2ComboBox.FormattingEnabled = true; this.partyMove2_2ComboBox.Location = new System.Drawing.Point(116, 21); this.partyMove2_2ComboBox.Name = "partyMove2_2ComboBox"; this.partyMove2_2ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove2_2ComboBox.TabIndex = 6; this.partyMove2_2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove2_3ComboBox // this.partyMove2_3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove2_3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove2_3ComboBox.Enabled = false; this.partyMove2_3ComboBox.FormattingEnabled = true; this.partyMove2_3ComboBox.Location = new System.Drawing.Point(10, 48); this.partyMove2_3ComboBox.Name = "partyMove2_3ComboBox"; this.partyMove2_3ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove2_3ComboBox.TabIndex = 5; this.partyMove2_3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove2_4ComboBox // this.partyMove2_4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove2_4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove2_4ComboBox.Enabled = false; this.partyMove2_4ComboBox.FormattingEnabled = true; this.partyMove2_4ComboBox.Location = new System.Drawing.Point(116, 48); this.partyMove2_4ComboBox.Name = "partyMove2_4ComboBox"; this.partyMove2_4ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove2_4ComboBox.TabIndex = 7; this.partyMove2_4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyIV2UpDown // this.partyIV2UpDown.Location = new System.Drawing.Point(48, 92); this.partyIV2UpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.partyIV2UpDown.Name = "partyIV2UpDown"; this.partyIV2UpDown.Size = new System.Drawing.Size(49, 20); this.partyIV2UpDown.TabIndex = 5; // // partyLevel2UpDown // this.partyLevel2UpDown.Location = new System.Drawing.Point(48, 63); this.partyLevel2UpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.partyLevel2UpDown.Name = "partyLevel2UpDown"; this.partyLevel2UpDown.Size = new System.Drawing.Size(49, 20); this.partyLevel2UpDown.TabIndex = 4; this.partyLevel2UpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); // // partyBall2UpDown // this.partyBall2UpDown.Location = new System.Drawing.Point(48, 121); this.partyBall2UpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.partyBall2UpDown.Name = "partyBall2UpDown"; this.partyBall2UpDown.Size = new System.Drawing.Size(49, 20); this.partyBall2UpDown.TabIndex = 3; // // partyItem2ComboBox // this.partyItem2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyItem2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyItem2ComboBox.Enabled = false; this.partyItem2ComboBox.FormattingEnabled = true; this.partyItem2ComboBox.Location = new System.Drawing.Point(228, 28); this.partyItem2ComboBox.Name = "partyItem2ComboBox"; this.partyItem2ComboBox.Size = new System.Drawing.Size(103, 21); this.partyItem2ComboBox.TabIndex = 2; this.partyItem2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyItem2ComboBox_SelectedIndexChanged); // // partyPokemon2PictureBox // this.partyPokemon2PictureBox.Location = new System.Drawing.Point(11, 23); this.partyPokemon2PictureBox.Name = "partyPokemon2PictureBox"; this.partyPokemon2PictureBox.Size = new System.Drawing.Size(40, 30); this.partyPokemon2PictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.partyPokemon2PictureBox.TabIndex = 1; this.partyPokemon2PictureBox.TabStop = false; // // partyPokemon2ComboBox // this.partyPokemon2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyPokemon2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyPokemon2ComboBox.FormattingEnabled = true; this.partyPokemon2ComboBox.Location = new System.Drawing.Point(58, 28); this.partyPokemon2ComboBox.Name = "partyPokemon2ComboBox"; this.partyPokemon2ComboBox.Size = new System.Drawing.Size(126, 21); this.partyPokemon2ComboBox.TabIndex = 0; this.partyPokemon2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyPokemon2ComboBox_SelectedIndexChanged); // // party1GroupBox // this.party1GroupBox.Controls.Add(this.partyForm1ComboBox); this.party1GroupBox.Controls.Add(this.partyAbility1ComboBox); this.party1GroupBox.Controls.Add(this.partyGender1ComboBox); this.party1GroupBox.Controls.Add(this.partyPokemonItemPictureBox1); this.party1GroupBox.Controls.Add(this.label47); this.party1GroupBox.Controls.Add(this.label46); this.party1GroupBox.Controls.Add(this.label45); this.party1GroupBox.Controls.Add(this.poke1MovesGroupBox); this.party1GroupBox.Controls.Add(this.partyIV1UpDown); this.party1GroupBox.Controls.Add(this.partyLevel1UpDown); this.party1GroupBox.Controls.Add(this.partyBall1UpDown); this.party1GroupBox.Controls.Add(this.partyItem1ComboBox); this.party1GroupBox.Controls.Add(this.partyPokemon1PictureBox); this.party1GroupBox.Controls.Add(this.partyPokemon1ComboBox); this.party1GroupBox.Enabled = false; this.party1GroupBox.Location = new System.Drawing.Point(16, 37); this.party1GroupBox.Name = "party1GroupBox"; this.party1GroupBox.Size = new System.Drawing.Size(343, 183); this.party1GroupBox.TabIndex = 0; this.party1GroupBox.TabStop = false; this.party1GroupBox.Text = "Pokemon 1"; // // partyForm1ComboBox // this.partyForm1ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyForm1ComboBox.FormattingEnabled = true; this.partyForm1ComboBox.Items.AddRange(new object[] { "Defense form"}); this.partyForm1ComboBox.Location = new System.Drawing.Point(228, 151); this.partyForm1ComboBox.Name = "partyForm1ComboBox"; this.partyForm1ComboBox.Size = new System.Drawing.Size(103, 21); this.partyForm1ComboBox.TabIndex = 14; // // partyAbility1ComboBox // this.partyAbility1ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyAbility1ComboBox.FormattingEnabled = true; this.partyAbility1ComboBox.Location = new System.Drawing.Point(15, 151); this.partyAbility1ComboBox.Name = "partyAbility1ComboBox"; this.partyAbility1ComboBox.Size = new System.Drawing.Size(105, 21); this.partyAbility1ComboBox.TabIndex = 13; // // partyGender1ComboBox // this.partyGender1ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.partyGender1ComboBox.FormattingEnabled = true; this.partyGender1ComboBox.Location = new System.Drawing.Point(126, 151); this.partyGender1ComboBox.Name = "partyGender1ComboBox"; this.partyGender1ComboBox.Size = new System.Drawing.Size(95, 21); this.partyGender1ComboBox.TabIndex = 12; // // partyPokemonItemPictureBox1 // this.partyPokemonItemPictureBox1.Image = global::DSPRE.Properties.Resources.IconItem; this.partyPokemonItemPictureBox1.Location = new System.Drawing.Point(198, 26); this.partyPokemonItemPictureBox1.Name = "partyPokemonItemPictureBox1"; this.partyPokemonItemPictureBox1.Size = new System.Drawing.Size(24, 25); this.partyPokemonItemPictureBox1.TabIndex = 10; this.partyPokemonItemPictureBox1.TabStop = false; this.partyPokemonItemPictureBox1.Visible = false; // // label47 // this.label47.AutoSize = true; this.label47.Location = new System.Drawing.Point(12, 118); this.label47.Name = "label47"; this.label47.Size = new System.Drawing.Size(28, 26); this.label47.TabIndex = 9; this.label47.Text = "Ball\r\nSeal"; // // label46 // this.label46.AutoSize = true; this.label46.Location = new System.Drawing.Point(12, 94); this.label46.Name = "label46"; this.label46.Size = new System.Drawing.Size(22, 13); this.label46.TabIndex = 8; this.label46.Text = "DV"; // // label45 // this.label45.AutoSize = true; this.label45.Location = new System.Drawing.Point(12, 67); this.label45.Name = "label45"; this.label45.Size = new System.Drawing.Size(22, 13); this.label45.TabIndex = 7; this.label45.Text = "Lv."; // // poke1MovesGroupBox // this.poke1MovesGroupBox.Controls.Add(this.partyMove1_1ComboBox); this.poke1MovesGroupBox.Controls.Add(this.partyMove1_2ComboBox); this.poke1MovesGroupBox.Controls.Add(this.partyMove1_3ComboBox); this.poke1MovesGroupBox.Controls.Add(this.partyMove1_4ComboBox); this.poke1MovesGroupBox.Location = new System.Drawing.Point(110, 57); this.poke1MovesGroupBox.Name = "poke1MovesGroupBox"; this.poke1MovesGroupBox.Size = new System.Drawing.Size(227, 85); this.poke1MovesGroupBox.TabIndex = 6; this.poke1MovesGroupBox.TabStop = false; this.poke1MovesGroupBox.Text = "Moves"; // // partyMove1_1ComboBox // this.partyMove1_1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove1_1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove1_1ComboBox.Enabled = false; this.partyMove1_1ComboBox.FormattingEnabled = true; this.partyMove1_1ComboBox.Location = new System.Drawing.Point(10, 21); this.partyMove1_1ComboBox.Name = "partyMove1_1ComboBox"; this.partyMove1_1ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove1_1ComboBox.TabIndex = 3; this.partyMove1_1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove1_2ComboBox // this.partyMove1_2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove1_2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove1_2ComboBox.Enabled = false; this.partyMove1_2ComboBox.FormattingEnabled = true; this.partyMove1_2ComboBox.Location = new System.Drawing.Point(116, 21); this.partyMove1_2ComboBox.Name = "partyMove1_2ComboBox"; this.partyMove1_2ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove1_2ComboBox.TabIndex = 6; this.partyMove1_2ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove1_3ComboBox // this.partyMove1_3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove1_3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove1_3ComboBox.Enabled = false; this.partyMove1_3ComboBox.FormattingEnabled = true; this.partyMove1_3ComboBox.Location = new System.Drawing.Point(10, 48); this.partyMove1_3ComboBox.Name = "partyMove1_3ComboBox"; this.partyMove1_3ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove1_3ComboBox.TabIndex = 5; this.partyMove1_3ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyMove1_4ComboBox // this.partyMove1_4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyMove1_4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyMove1_4ComboBox.Enabled = false; this.partyMove1_4ComboBox.FormattingEnabled = true; this.partyMove1_4ComboBox.Location = new System.Drawing.Point(116, 48); this.partyMove1_4ComboBox.Name = "partyMove1_4ComboBox"; this.partyMove1_4ComboBox.Size = new System.Drawing.Size(100, 21); this.partyMove1_4ComboBox.TabIndex = 7; this.partyMove1_4ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyMoveComboBox_SelectedIndexChanged); // // partyIV1UpDown // this.partyIV1UpDown.Location = new System.Drawing.Point(48, 92); this.partyIV1UpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.partyIV1UpDown.Name = "partyIV1UpDown"; this.partyIV1UpDown.Size = new System.Drawing.Size(49, 20); this.partyIV1UpDown.TabIndex = 5; // // partyLevel1UpDown // this.partyLevel1UpDown.Location = new System.Drawing.Point(48, 63); this.partyLevel1UpDown.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.partyLevel1UpDown.Name = "partyLevel1UpDown"; this.partyLevel1UpDown.Size = new System.Drawing.Size(49, 20); this.partyLevel1UpDown.TabIndex = 4; this.partyLevel1UpDown.Value = new decimal(new int[] { 1, 0, 0, 0}); // // partyBall1UpDown // this.partyBall1UpDown.Location = new System.Drawing.Point(48, 121); this.partyBall1UpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.partyBall1UpDown.Name = "partyBall1UpDown"; this.partyBall1UpDown.Size = new System.Drawing.Size(49, 20); this.partyBall1UpDown.TabIndex = 3; // // partyItem1ComboBox // this.partyItem1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyItem1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyItem1ComboBox.Enabled = false; this.partyItem1ComboBox.FormattingEnabled = true; this.partyItem1ComboBox.Location = new System.Drawing.Point(228, 28); this.partyItem1ComboBox.Name = "partyItem1ComboBox"; this.partyItem1ComboBox.Size = new System.Drawing.Size(103, 21); this.partyItem1ComboBox.TabIndex = 2; this.partyItem1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyItem1ComboBox_SelectedIndexChanged); // // partyPokemon1PictureBox // this.partyPokemon1PictureBox.Location = new System.Drawing.Point(11, 23); this.partyPokemon1PictureBox.Name = "partyPokemon1PictureBox"; this.partyPokemon1PictureBox.Size = new System.Drawing.Size(40, 30); this.partyPokemon1PictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.partyPokemon1PictureBox.TabIndex = 1; this.partyPokemon1PictureBox.TabStop = false; // // partyPokemon1ComboBox // this.partyPokemon1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.partyPokemon1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.partyPokemon1ComboBox.FormattingEnabled = true; this.partyPokemon1ComboBox.Location = new System.Drawing.Point(58, 28); this.partyPokemon1ComboBox.Name = "partyPokemon1ComboBox"; this.partyPokemon1ComboBox.Size = new System.Drawing.Size(126, 21); this.partyPokemon1ComboBox.TabIndex = 0; this.partyPokemon1ComboBox.SelectedIndexChanged += new System.EventHandler(this.partyPokemon1ComboBox_SelectedIndexChanged); // // groupBox27 // this.groupBox27.Controls.Add(this.eyeContactMusicAltLabel); this.groupBox27.Controls.Add(this.encounterSSEQAltUpDown); this.groupBox27.Controls.Add(this.eyeContactMusicLabel); this.groupBox27.Controls.Add(this.encounterSSEQMainUpDown); this.groupBox27.Controls.Add(this.trainerClassFrameMaxLabel); this.groupBox27.Controls.Add(this.label40); this.groupBox27.Controls.Add(this.trClassFramePreviewUpDown); this.groupBox27.Controls.Add(this.saveTrainerClassButton); this.groupBox27.Controls.Add(this.trainerClassNameTextbox); this.groupBox27.Controls.Add(this.label17); this.groupBox27.Controls.Add(this.trainerClassPicBox); this.groupBox27.Location = new System.Drawing.Point(15, 489); this.groupBox27.Name = "groupBox27"; this.groupBox27.Size = new System.Drawing.Size(414, 123); this.groupBox27.TabIndex = 30; this.groupBox27.TabStop = false; this.groupBox27.Text = "Trainer Class Editor"; // // eyeContactMusicAltLabel // this.eyeContactMusicAltLabel.AutoSize = true; this.eyeContactMusicAltLabel.Location = new System.Drawing.Point(286, 69); this.eyeContactMusicAltLabel.Name = "eyeContactMusicAltLabel"; this.eyeContactMusicAltLabel.Size = new System.Drawing.Size(117, 13); this.eyeContactMusicAltLabel.TabIndex = 36; this.eyeContactMusicAltLabel.Text = "Eye Contact Music [Alt]"; // // encounterSSEQAltUpDown // this.encounterSSEQAltUpDown.Enabled = false; this.encounterSSEQAltUpDown.Location = new System.Drawing.Point(290, 85); this.encounterSSEQAltUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.encounterSSEQAltUpDown.Name = "encounterSSEQAltUpDown"; this.encounterSSEQAltUpDown.Size = new System.Drawing.Size(81, 20); this.encounterSSEQAltUpDown.TabIndex = 35; // // eyeContactMusicLabel // this.eyeContactMusicLabel.AutoSize = true; this.eyeContactMusicLabel.Location = new System.Drawing.Point(143, 69); this.eyeContactMusicLabel.Name = "eyeContactMusicLabel"; this.eyeContactMusicLabel.Size = new System.Drawing.Size(128, 13); this.eyeContactMusicLabel.TabIndex = 34; this.eyeContactMusicLabel.Text = "Eye Contact Music [Main]"; // // encounterSSEQMainUpDown // this.encounterSSEQMainUpDown.Location = new System.Drawing.Point(146, 85); this.encounterSSEQMainUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.encounterSSEQMainUpDown.Name = "encounterSSEQMainUpDown"; this.encounterSSEQMainUpDown.Size = new System.Drawing.Size(81, 20); this.encounterSSEQMainUpDown.TabIndex = 33; // // trainerClassFrameMaxLabel // this.trainerClassFrameMaxLabel.AutoSize = true; this.trainerClassFrameMaxLabel.Location = new System.Drawing.Point(180, 33); this.trainerClassFrameMaxLabel.Name = "trainerClassFrameMaxLabel"; this.trainerClassFrameMaxLabel.Size = new System.Drawing.Size(18, 13); this.trainerClassFrameMaxLabel.TabIndex = 32; this.trainerClassFrameMaxLabel.Text = "/0"; // // label40 // this.label40.AutoSize = true; this.label40.Location = new System.Drawing.Point(143, 14); this.label40.Name = "label40"; this.label40.Size = new System.Drawing.Size(45, 13); this.label40.TabIndex = 31; this.label40.Text = "Preview"; // // trClassFramePreviewUpDown // this.trClassFramePreviewUpDown.Location = new System.Drawing.Point(146, 30); this.trClassFramePreviewUpDown.Name = "trClassFramePreviewUpDown"; this.trClassFramePreviewUpDown.Size = new System.Drawing.Size(34, 20); this.trClassFramePreviewUpDown.TabIndex = 30; this.trClassFramePreviewUpDown.ValueChanged += new System.EventHandler(this.trClassFramePreviewUpDown_ValueChanged); // // saveTrainerClassButton // this.saveTrainerClassButton.Image = global::DSPRE.Properties.Resources.save_rom; this.saveTrainerClassButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveTrainerClassButton.Location = new System.Drawing.Point(322, 15); this.saveTrainerClassButton.Name = "saveTrainerClassButton"; this.saveTrainerClassButton.Size = new System.Drawing.Size(80, 45); this.saveTrainerClassButton.TabIndex = 29; this.saveTrainerClassButton.Text = "&Save\r\nClass"; this.saveTrainerClassButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveTrainerClassButton.UseVisualStyleBackColor = true; this.saveTrainerClassButton.Click += new System.EventHandler(this.saveTrainerClassButton_Click); // // trainerClassNameTextbox // this.trainerClassNameTextbox.Location = new System.Drawing.Point(213, 29); this.trainerClassNameTextbox.Name = "trainerClassNameTextbox"; this.trainerClassNameTextbox.Size = new System.Drawing.Size(99, 20); this.trainerClassNameTextbox.TabIndex = 24; // // label17 // this.label17.AutoSize = true; this.label17.Location = new System.Drawing.Point(210, 13); this.label17.Name = "label17"; this.label17.Size = new System.Drawing.Size(63, 13); this.label17.TabIndex = 23; this.label17.Text = "Class Name"; // // trainerClassPicBox // this.trainerClassPicBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.trainerClassPicBox.Location = new System.Drawing.Point(9, 17); this.trainerClassPicBox.Name = "trainerClassPicBox"; this.trainerClassPicBox.Size = new System.Drawing.Size(128, 96); this.trainerClassPicBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.trainerClassPicBox.TabIndex = 0; this.trainerClassPicBox.TabStop = false; // // deleteTrainerButton // this.deleteTrainerButton.Enabled = false; this.deleteTrainerButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.deleteTrainerButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.deleteTrainerButton.Location = new System.Drawing.Point(333, 50); this.deleteTrainerButton.Name = "deleteTrainerButton"; this.deleteTrainerButton.Size = new System.Drawing.Size(100, 23); this.deleteTrainerButton.TabIndex = 44; this.deleteTrainerButton.Text = "Delete Trainer"; this.deleteTrainerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.deleteTrainerButton.UseVisualStyleBackColor = true; this.deleteTrainerButton.Visible = false; // // groupBox25 // this.groupBox25.Controls.Add(this.tableLayoutPanel5); this.groupBox25.Controls.Add(this.TrainerAIGroupBox); this.groupBox25.Controls.Add(this.trainerItemsGroupBox); this.groupBox25.Controls.Add(this.trainerItemsCheckBox); this.groupBox25.Controls.Add(this.trainerMovesCheckBox); this.groupBox25.Controls.Add(this.trainerDoubleCheckBox); this.groupBox25.Controls.Add(this.trainerNameTextBox); this.groupBox25.Controls.Add(this.partyCountUpDown); this.groupBox25.Controls.Add(this.label44); this.groupBox25.Controls.Add(this.label63); this.groupBox25.Controls.Add(this.label43); this.groupBox25.Controls.Add(this.trainerClassListBox); this.groupBox25.Location = new System.Drawing.Point(15, 80); this.groupBox25.Name = "groupBox25"; this.groupBox25.Size = new System.Drawing.Size(414, 405); this.groupBox25.TabIndex = 29; this.groupBox25.TabStop = false; this.groupBox25.Text = "Trainer Properties [TRP]"; // // tableLayoutPanel5 // this.tableLayoutPanel5.ColumnCount = 1; this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.Controls.Add(this.replacePropertiesButton, 0, 1); this.tableLayoutPanel5.Controls.Add(this.exportPropertiesButton, 0, 0); this.tableLayoutPanel5.Location = new System.Drawing.Point(288, 304); this.tableLayoutPanel5.Name = "tableLayoutPanel5"; this.tableLayoutPanel5.RowCount = 2; this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.Size = new System.Drawing.Size(121, 62); this.tableLayoutPanel5.TabIndex = 48; // // replacePropertiesButton // this.replacePropertiesButton.Dock = System.Windows.Forms.DockStyle.Fill; this.replacePropertiesButton.Image = ((System.Drawing.Image)(resources.GetObject("replacePropertiesButton.Image"))); this.replacePropertiesButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.replacePropertiesButton.Location = new System.Drawing.Point(3, 34); this.replacePropertiesButton.Name = "replacePropertiesButton"; this.replacePropertiesButton.Size = new System.Drawing.Size(115, 25); this.replacePropertiesButton.TabIndex = 42; this.replacePropertiesButton.Text = "Replace TRP"; this.replacePropertiesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.replacePropertiesButton.UseVisualStyleBackColor = true; this.replacePropertiesButton.Click += new System.EventHandler(this.replacePropertiesButton_Click); // // exportPropertiesButton // this.exportPropertiesButton.Dock = System.Windows.Forms.DockStyle.Fill; this.exportPropertiesButton.Image = ((System.Drawing.Image)(resources.GetObject("exportPropertiesButton.Image"))); this.exportPropertiesButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportPropertiesButton.Location = new System.Drawing.Point(3, 3); this.exportPropertiesButton.Name = "exportPropertiesButton"; this.exportPropertiesButton.Size = new System.Drawing.Size(115, 25); this.exportPropertiesButton.TabIndex = 41; this.exportPropertiesButton.Text = "Export TRP"; this.exportPropertiesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportPropertiesButton.UseVisualStyleBackColor = true; this.exportPropertiesButton.Click += new System.EventHandler(this.exportPropertiesButton_Click); // // TrainerAIGroupBox // this.TrainerAIGroupBox.Controls.Add(this.trainerAI1CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI2CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI3CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI4CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI5CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI6CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI7CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI8CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI9CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI10CheckBox); this.TrainerAIGroupBox.Controls.Add(this.trainerAI11CheckBox); this.TrainerAIGroupBox.Location = new System.Drawing.Point(9, 282); this.TrainerAIGroupBox.Name = "TrainerAIGroupBox"; this.TrainerAIGroupBox.Size = new System.Drawing.Size(272, 116); this.TrainerAIGroupBox.TabIndex = 27; this.TrainerAIGroupBox.TabStop = false; this.TrainerAIGroupBox.Text = "AI"; // // trainerAI1CheckBox // this.trainerAI1CheckBox.AutoSize = true; this.trainerAI1CheckBox.Location = new System.Drawing.Point(10, 21); this.trainerAI1CheckBox.Name = "trainerAI1CheckBox"; this.trainerAI1CheckBox.Size = new System.Drawing.Size(52, 17); this.trainerAI1CheckBox.TabIndex = 0; this.trainerAI1CheckBox.Text = "Basic"; this.trainerAI1CheckBox.UseVisualStyleBackColor = true; // // trainerAI2CheckBox // this.trainerAI2CheckBox.AutoSize = true; this.trainerAI2CheckBox.Location = new System.Drawing.Point(80, 21); this.trainerAI2CheckBox.Name = "trainerAI2CheckBox"; this.trainerAI2CheckBox.Size = new System.Drawing.Size(102, 17); this.trainerAI2CheckBox.TabIndex = 1; this.trainerAI2CheckBox.Text = "Evaluate Attack"; this.trainerAI2CheckBox.UseVisualStyleBackColor = true; // // trainerAI3CheckBox // this.trainerAI3CheckBox.AutoSize = true; this.trainerAI3CheckBox.Location = new System.Drawing.Point(10, 44); this.trainerAI3CheckBox.Name = "trainerAI3CheckBox"; this.trainerAI3CheckBox.Size = new System.Drawing.Size(56, 17); this.trainerAI3CheckBox.TabIndex = 2; this.trainerAI3CheckBox.Text = "Expert"; this.trainerAI3CheckBox.UseVisualStyleBackColor = true; // // trainerAI4CheckBox // this.trainerAI4CheckBox.AutoSize = true; this.trainerAI4CheckBox.Location = new System.Drawing.Point(10, 90); this.trainerAI4CheckBox.Name = "trainerAI4CheckBox"; this.trainerAI4CheckBox.Size = new System.Drawing.Size(56, 17); this.trainerAI4CheckBox.TabIndex = 3; this.trainerAI4CheckBox.Text = "Status"; this.trainerAI4CheckBox.UseVisualStyleBackColor = true; // // trainerAI5CheckBox // this.trainerAI5CheckBox.AutoSize = true; this.trainerAI5CheckBox.Location = new System.Drawing.Point(10, 67); this.trainerAI5CheckBox.Name = "trainerAI5CheckBox"; this.trainerAI5CheckBox.Size = new System.Drawing.Size(47, 17); this.trainerAI5CheckBox.TabIndex = 4; this.trainerAI5CheckBox.Text = "Risk"; this.trainerAI5CheckBox.UseVisualStyleBackColor = true; // // trainerAI6CheckBox // this.trainerAI6CheckBox.AutoSize = true; this.trainerAI6CheckBox.Location = new System.Drawing.Point(80, 44); this.trainerAI6CheckBox.Name = "trainerAI6CheckBox"; this.trainerAI6CheckBox.Size = new System.Drawing.Size(100, 17); this.trainerAI6CheckBox.TabIndex = 5; this.trainerAI6CheckBox.Text = "Damage Priority"; this.trainerAI6CheckBox.UseVisualStyleBackColor = true; // // trainerAI7CheckBox // this.trainerAI7CheckBox.AutoSize = true; this.trainerAI7CheckBox.Location = new System.Drawing.Point(80, 67); this.trainerAI7CheckBox.Name = "trainerAI7CheckBox"; this.trainerAI7CheckBox.Size = new System.Drawing.Size(80, 17); this.trainerAI7CheckBox.TabIndex = 6; this.trainerAI7CheckBox.Text = "Baton Pass"; this.trainerAI7CheckBox.UseVisualStyleBackColor = true; // // trainerAI8CheckBox // this.trainerAI8CheckBox.AutoSize = true; this.trainerAI8CheckBox.Location = new System.Drawing.Point(80, 90); this.trainerAI8CheckBox.Name = "trainerAI8CheckBox"; this.trainerAI8CheckBox.Size = new System.Drawing.Size(87, 17); this.trainerAI8CheckBox.TabIndex = 7; this.trainerAI8CheckBox.Text = "Tag Strategy"; this.trainerAI8CheckBox.UseVisualStyleBackColor = true; // // trainerAI9CheckBox // this.trainerAI9CheckBox.AutoSize = true; this.trainerAI9CheckBox.Location = new System.Drawing.Point(191, 21); this.trainerAI9CheckBox.Name = "trainerAI9CheckBox"; this.trainerAI9CheckBox.Size = new System.Drawing.Size(75, 17); this.trainerAI9CheckBox.TabIndex = 8; this.trainerAI9CheckBox.Text = "Check HP"; this.trainerAI9CheckBox.UseVisualStyleBackColor = true; // // trainerAI10CheckBox // this.trainerAI10CheckBox.AutoSize = true; this.trainerAI10CheckBox.Location = new System.Drawing.Point(191, 44); this.trainerAI10CheckBox.Name = "trainerAI10CheckBox"; this.trainerAI10CheckBox.Size = new System.Drawing.Size(67, 17); this.trainerAI10CheckBox.TabIndex = 9; this.trainerAI10CheckBox.Text = "Weather"; this.trainerAI10CheckBox.UseVisualStyleBackColor = true; // // trainerAI11CheckBox // this.trainerAI11CheckBox.AutoSize = true; this.trainerAI11CheckBox.Location = new System.Drawing.Point(191, 67); this.trainerAI11CheckBox.Name = "trainerAI11CheckBox"; this.trainerAI11CheckBox.Size = new System.Drawing.Size(44, 17); this.trainerAI11CheckBox.TabIndex = 10; this.trainerAI11CheckBox.Text = "???"; this.trainerAI11CheckBox.UseVisualStyleBackColor = true; // // trainerItemsGroupBox // this.trainerItemsGroupBox.Controls.Add(this.trainerItem1ComboBox); this.trainerItemsGroupBox.Controls.Add(this.trainerItem2ComboBox); this.trainerItemsGroupBox.Controls.Add(this.trainerItem3ComboBox); this.trainerItemsGroupBox.Controls.Add(this.trainerItem4ComboBox); this.trainerItemsGroupBox.Location = new System.Drawing.Point(211, 146); this.trainerItemsGroupBox.Name = "trainerItemsGroupBox"; this.trainerItemsGroupBox.Size = new System.Drawing.Size(191, 130); this.trainerItemsGroupBox.TabIndex = 26; this.trainerItemsGroupBox.TabStop = false; this.trainerItemsGroupBox.Text = "Trainer Items"; // // trainerItem1ComboBox // this.trainerItem1ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.trainerItem1ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.trainerItem1ComboBox.FormattingEnabled = true; this.trainerItem1ComboBox.Location = new System.Drawing.Point(9, 20); this.trainerItem1ComboBox.Name = "trainerItem1ComboBox"; this.trainerItem1ComboBox.Size = new System.Drawing.Size(171, 21); this.trainerItem1ComboBox.TabIndex = 0; // // trainerItem2ComboBox // this.trainerItem2ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.trainerItem2ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.trainerItem2ComboBox.FormattingEnabled = true; this.trainerItem2ComboBox.Location = new System.Drawing.Point(9, 47); this.trainerItem2ComboBox.Name = "trainerItem2ComboBox"; this.trainerItem2ComboBox.Size = new System.Drawing.Size(171, 21); this.trainerItem2ComboBox.TabIndex = 1; // // trainerItem3ComboBox // this.trainerItem3ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.trainerItem3ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.trainerItem3ComboBox.FormattingEnabled = true; this.trainerItem3ComboBox.Location = new System.Drawing.Point(9, 74); this.trainerItem3ComboBox.Name = "trainerItem3ComboBox"; this.trainerItem3ComboBox.Size = new System.Drawing.Size(171, 21); this.trainerItem3ComboBox.TabIndex = 2; // // trainerItem4ComboBox // this.trainerItem4ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.trainerItem4ComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.trainerItem4ComboBox.FormattingEnabled = true; this.trainerItem4ComboBox.Location = new System.Drawing.Point(9, 101); this.trainerItem4ComboBox.Name = "trainerItem4ComboBox"; this.trainerItem4ComboBox.Size = new System.Drawing.Size(171, 21); this.trainerItem4ComboBox.TabIndex = 3; // // trainerItemsCheckBox // this.trainerItemsCheckBox.AutoSize = true; this.trainerItemsCheckBox.Location = new System.Drawing.Point(215, 115); this.trainerItemsCheckBox.Name = "trainerItemsCheckBox"; this.trainerItemsCheckBox.Size = new System.Drawing.Size(117, 17); this.trainerItemsCheckBox.TabIndex = 25; this.trainerItemsCheckBox.Text = "Choose Party Items"; this.trainerItemsCheckBox.UseVisualStyleBackColor = true; this.trainerItemsCheckBox.CheckedChanged += new System.EventHandler(this.trainerItemsCheckBox_CheckedChanged); // // trainerMovesCheckBox // this.trainerMovesCheckBox.AutoSize = true; this.trainerMovesCheckBox.Location = new System.Drawing.Point(215, 94); this.trainerMovesCheckBox.Name = "trainerMovesCheckBox"; this.trainerMovesCheckBox.Size = new System.Drawing.Size(97, 17); this.trainerMovesCheckBox.TabIndex = 24; this.trainerMovesCheckBox.Text = "Choose Moves"; this.trainerMovesCheckBox.UseVisualStyleBackColor = true; this.trainerMovesCheckBox.CheckedChanged += new System.EventHandler(this.trainerMovesCheckBox_CheckedChanged); // // trainerDoubleCheckBox // this.trainerDoubleCheckBox.AutoSize = true; this.trainerDoubleCheckBox.Location = new System.Drawing.Point(215, 72); this.trainerDoubleCheckBox.Name = "trainerDoubleCheckBox"; this.trainerDoubleCheckBox.Size = new System.Drawing.Size(90, 17); this.trainerDoubleCheckBox.TabIndex = 23; this.trainerDoubleCheckBox.Text = "Double Battle"; this.trainerDoubleCheckBox.UseVisualStyleBackColor = true; // // trainerNameTextBox // this.trainerNameTextBox.Location = new System.Drawing.Point(215, 39); this.trainerNameTextBox.Name = "trainerNameTextBox"; this.trainerNameTextBox.Size = new System.Drawing.Size(148, 20); this.trainerNameTextBox.TabIndex = 22; // // partyCountUpDown // this.partyCountUpDown.Location = new System.Drawing.Point(346, 99); this.partyCountUpDown.Maximum = new decimal(new int[] { 6, 0, 0, 0}); this.partyCountUpDown.Name = "partyCountUpDown"; this.partyCountUpDown.Size = new System.Drawing.Size(41, 20); this.partyCountUpDown.TabIndex = 33; this.partyCountUpDown.ValueChanged += new System.EventHandler(this.partyCountUpDown_ValueChanged); // // label44 // this.label44.AutoSize = true; this.label44.Location = new System.Drawing.Point(212, 23); this.label44.Name = "label44"; this.label44.Size = new System.Drawing.Size(71, 13); this.label44.TabIndex = 21; this.label44.Text = "Trainer Name"; // // label63 // this.label63.AutoSize = true; this.label63.Location = new System.Drawing.Point(339, 83); this.label63.Name = "label63"; this.label63.Size = new System.Drawing.Size(57, 13); this.label63.TabIndex = 34; this.label63.Text = "Party Slots"; // // label43 // this.label43.AutoSize = true; this.label43.Location = new System.Drawing.Point(10, 23); this.label43.Name = "label43"; this.label43.Size = new System.Drawing.Size(68, 13); this.label43.TabIndex = 20; this.label43.Text = "Trainer Class"; // // trainerClassListBox // this.trainerClassListBox.FormattingEnabled = true; this.trainerClassListBox.Location = new System.Drawing.Point(11, 39); this.trainerClassListBox.Name = "trainerClassListBox"; this.trainerClassListBox.Size = new System.Drawing.Size(193, 238); this.trainerClassListBox.TabIndex = 0; this.trainerClassListBox.SelectedIndexChanged += new System.EventHandler(this.trainerClassListBox_SelectedIndexChanged); // // addTrainerButton // this.addTrainerButton.Enabled = false; this.addTrainerButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addTrainerButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addTrainerButton.Location = new System.Drawing.Point(333, 20); this.addTrainerButton.Name = "addTrainerButton"; this.addTrainerButton.Size = new System.Drawing.Size(100, 23); this.addTrainerButton.TabIndex = 35; this.addTrainerButton.Text = "Add Trainer"; this.addTrainerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addTrainerButton.UseVisualStyleBackColor = true; this.addTrainerButton.Visible = false; this.addTrainerButton.Click += new System.EventHandler(this.addTrainerButton_Click); // // label42 // this.label42.AutoSize = true; this.label42.Location = new System.Drawing.Point(12, 7); this.label42.Name = "label42"; this.label42.Size = new System.Drawing.Size(59, 13); this.label42.TabIndex = 28; this.label42.Text = "Trainer File"; // // trainerComboBox // this.trainerComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.trainerComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.trainerComboBox.FormattingEnabled = true; this.trainerComboBox.Location = new System.Drawing.Point(15, 22); this.trainerComboBox.Name = "trainerComboBox"; this.trainerComboBox.Size = new System.Drawing.Size(199, 21); this.trainerComboBox.TabIndex = 27; this.trainerComboBox.SelectedIndexChanged += new System.EventHandler(this.trainerComboBox_SelectedIndexChanged); // // trainerSaveCurrentButton // this.trainerSaveCurrentButton.Image = global::DSPRE.Properties.Resources.saveButton; this.trainerSaveCurrentButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.trainerSaveCurrentButton.Location = new System.Drawing.Point(15, 49); this.trainerSaveCurrentButton.Name = "trainerSaveCurrentButton"; this.trainerSaveCurrentButton.Size = new System.Drawing.Size(199, 23); this.trainerSaveCurrentButton.TabIndex = 31; this.trainerSaveCurrentButton.Text = "&Save Full Trainer File"; this.trainerSaveCurrentButton.UseVisualStyleBackColor = true; this.trainerSaveCurrentButton.Click += new System.EventHandler(this.trainerSaveCurrentButton_Click); // // tableEditorTabPage // this.tableEditorTabPage.Controls.Add(this.label73); this.tableEditorTabPage.Controls.Add(this.pbEffectsGroupBox); this.tableEditorTabPage.Controls.Add(this.conditionalMusicGroupBox); this.tableEditorTabPage.ImageIndex = 9; this.tableEditorTabPage.Location = new System.Drawing.Point(4, 23); this.tableEditorTabPage.Name = "tableEditorTabPage"; this.tableEditorTabPage.Padding = new System.Windows.Forms.Padding(3); this.tableEditorTabPage.Size = new System.Drawing.Size(1185, 675); this.tableEditorTabPage.TabIndex = 9; this.tableEditorTabPage.Text = "Table Editor"; this.tableEditorTabPage.UseVisualStyleBackColor = true; // // label73 // this.label73.AutoSize = true; this.label73.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label73.ForeColor = System.Drawing.SystemColors.GradientInactiveCaption; this.label73.Location = new System.Drawing.Point(414, 598); this.label73.Name = "label73"; this.label73.Size = new System.Drawing.Size(314, 18); this.label73.TabIndex = 12; this.label73.Text = "This Editor Tab is currently under construction."; this.label73.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // pbEffectsGroupBox // this.pbEffectsGroupBox.Controls.Add(this.groupBox31); this.pbEffectsGroupBox.Controls.Add(this.pbEffectsTrainerGroupBox); this.pbEffectsGroupBox.Controls.Add(this.pbEffectsMonGroupBox); this.pbEffectsGroupBox.Location = new System.Drawing.Point(382, 9); this.pbEffectsGroupBox.Name = "pbEffectsGroupBox"; this.pbEffectsGroupBox.Size = new System.Drawing.Size(788, 451); this.pbEffectsGroupBox.TabIndex = 11; this.pbEffectsGroupBox.TabStop = false; this.pbEffectsGroupBox.Text = "Pre-Battle Effects"; // // groupBox31 // this.groupBox31.Controls.Add(this.HOWpbEffectsTableButton); this.groupBox31.Controls.Add(this.pbEffectsBattleSSEQUpDown); this.groupBox31.Controls.Add(this.label21); this.groupBox31.Controls.Add(this.saveEffectCombosTableBTN); this.groupBox31.Controls.Add(this.pbEffectsVSAnimationUpDown); this.groupBox31.Controls.Add(this.pbEffectsCombosListbox); this.groupBox31.Controls.Add(this.label22); this.groupBox31.Location = new System.Drawing.Point(6, 24); this.groupBox31.Name = "groupBox31"; this.groupBox31.Size = new System.Drawing.Size(274, 415); this.groupBox31.TabIndex = 45; this.groupBox31.TabStop = false; this.groupBox31.Text = "Maintable Effect Combos"; // // HOWpbEffectsTableButton // this.HOWpbEffectsTableButton.Image = ((System.Drawing.Image)(resources.GetObject("HOWpbEffectsTableButton.Image"))); this.HOWpbEffectsTableButton.Location = new System.Drawing.Point(154, 376); this.HOWpbEffectsTableButton.Name = "HOWpbEffectsTableButton"; this.HOWpbEffectsTableButton.Size = new System.Drawing.Size(28, 29); this.HOWpbEffectsTableButton.TabIndex = 44; this.HOWpbEffectsTableButton.UseVisualStyleBackColor = true; this.HOWpbEffectsTableButton.Click += new System.EventHandler(this.HOWpbEffectsTableButton_Click); // // pbEffectsBattleSSEQUpDown // this.pbEffectsBattleSSEQUpDown.Location = new System.Drawing.Point(86, 382); this.pbEffectsBattleSSEQUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.pbEffectsBattleSSEQUpDown.Name = "pbEffectsBattleSSEQUpDown"; this.pbEffectsBattleSSEQUpDown.Size = new System.Drawing.Size(54, 20); this.pbEffectsBattleSSEQUpDown.TabIndex = 29; // // label21 // this.label21.AutoSize = true; this.label21.Location = new System.Drawing.Point(82, 367); this.label21.Name = "label21"; this.label21.Size = new System.Drawing.Size(66, 13); this.label21.TabIndex = 30; this.label21.Text = "Battle SSEQ"; // // saveEffectCombosTableBTN // this.saveEffectCombosTableBTN.Image = ((System.Drawing.Image)(resources.GetObject("saveEffectCombosTableBTN.Image"))); this.saveEffectCombosTableBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveEffectCombosTableBTN.Location = new System.Drawing.Point(184, 372); this.saveEffectCombosTableBTN.Name = "saveEffectCombosTableBTN"; this.saveEffectCombosTableBTN.Size = new System.Drawing.Size(78, 37); this.saveEffectCombosTableBTN.TabIndex = 43; this.saveEffectCombosTableBTN.Text = "Save This Combo"; this.saveEffectCombosTableBTN.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveEffectCombosTableBTN.UseVisualStyleBackColor = true; this.saveEffectCombosTableBTN.Click += new System.EventHandler(this.saveEffectComboBTN_Click); // // pbEffectsVSAnimationUpDown // this.pbEffectsVSAnimationUpDown.Location = new System.Drawing.Point(14, 382); this.pbEffectsVSAnimationUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.pbEffectsVSAnimationUpDown.Name = "pbEffectsVSAnimationUpDown"; this.pbEffectsVSAnimationUpDown.Size = new System.Drawing.Size(58, 20); this.pbEffectsVSAnimationUpDown.TabIndex = 31; // // pbEffectsCombosListbox // this.pbEffectsCombosListbox.FormattingEnabled = true; this.pbEffectsCombosListbox.Location = new System.Drawing.Point(9, 18); this.pbEffectsCombosListbox.Name = "pbEffectsCombosListbox"; this.pbEffectsCombosListbox.Size = new System.Drawing.Size(259, 342); this.pbEffectsCombosListbox.TabIndex = 43; this.pbEffectsCombosListbox.SelectedIndexChanged += new System.EventHandler(this.pbEffectsCombosListbox_SelectedIndexChanged); // // label22 // this.label22.AutoSize = true; this.label22.Location = new System.Drawing.Point(9, 367); this.label22.Name = "label22"; this.label22.Size = new System.Drawing.Size(70, 13); this.label22.TabIndex = 32; this.label22.Text = "VS Animation"; // // pbEffectsTrainerGroupBox // this.pbEffectsTrainerGroupBox.Controls.Add(this.label75); this.pbEffectsTrainerGroupBox.Controls.Add(this.tbEditortrainerClassFrameMaxLabel); this.pbEffectsTrainerGroupBox.Controls.Add(this.tbEditorTrClassFramePreviewUpDown); this.pbEffectsTrainerGroupBox.Controls.Add(this.tbEditorTrClassPictureBox); this.pbEffectsTrainerGroupBox.Controls.Add(this.label68); this.pbEffectsTrainerGroupBox.Controls.Add(this.pbEffectsTrainerChooseMainCombobox); this.pbEffectsTrainerGroupBox.Controls.Add(this.HOWVsTrainerButton); this.pbEffectsTrainerGroupBox.Controls.Add(this.saveVSTrainerTableBTN); this.pbEffectsTrainerGroupBox.Controls.Add(this.label70); this.pbEffectsTrainerGroupBox.Controls.Add(this.pbEffectsTrainerCombobox); this.pbEffectsTrainerGroupBox.Controls.Add(this.pbEffectsVsTrainerListbox); this.pbEffectsTrainerGroupBox.Location = new System.Drawing.Point(286, 14); this.pbEffectsTrainerGroupBox.Name = "pbEffectsTrainerGroupBox"; this.pbEffectsTrainerGroupBox.Size = new System.Drawing.Size(481, 250); this.pbEffectsTrainerGroupBox.TabIndex = 34; this.pbEffectsTrainerGroupBox.TabStop = false; this.pbEffectsTrainerGroupBox.Text = "VS. Trainer"; // // label75 // this.label75.AutoSize = true; this.label75.Location = new System.Drawing.Point(390, 84); this.label75.Name = "label75"; this.label75.Size = new System.Drawing.Size(79, 13); this.label75.TabIndex = 46; this.label75.Text = "Preview frames"; // // tbEditortrainerClassFrameMaxLabel // this.tbEditortrainerClassFrameMaxLabel.AutoSize = true; this.tbEditortrainerClassFrameMaxLabel.Location = new System.Drawing.Point(440, 103); this.tbEditortrainerClassFrameMaxLabel.Name = "tbEditortrainerClassFrameMaxLabel"; this.tbEditortrainerClassFrameMaxLabel.Size = new System.Drawing.Size(18, 13); this.tbEditortrainerClassFrameMaxLabel.TabIndex = 45; this.tbEditortrainerClassFrameMaxLabel.Text = "/0"; // // tbEditorTrClassFramePreviewUpDown // this.tbEditorTrClassFramePreviewUpDown.Location = new System.Drawing.Point(402, 100); this.tbEditorTrClassFramePreviewUpDown.Name = "tbEditorTrClassFramePreviewUpDown"; this.tbEditorTrClassFramePreviewUpDown.Size = new System.Drawing.Size(38, 20); this.tbEditorTrClassFramePreviewUpDown.TabIndex = 44; this.tbEditorTrClassFramePreviewUpDown.ValueChanged += new System.EventHandler(this.TBLEditortrainerClassPreviewPic_ValueChanged); // // tbEditorTrClassPictureBox // this.tbEditorTrClassPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.tbEditorTrClassPictureBox.Location = new System.Drawing.Point(253, 59); this.tbEditorTrClassPictureBox.Name = "tbEditorTrClassPictureBox"; this.tbEditorTrClassPictureBox.Size = new System.Drawing.Size(128, 96); this.tbEditorTrClassPictureBox.TabIndex = 43; this.tbEditorTrClassPictureBox.TabStop = false; // // label68 // this.label68.AutoSize = true; this.label68.Location = new System.Drawing.Point(249, 164); this.label68.Name = "label68"; this.label68.Size = new System.Drawing.Size(120, 13); this.label68.TabIndex = 42; this.label68.Text = "Maintable Effect Combo"; // // pbEffectsTrainerChooseMainCombobox // this.pbEffectsTrainerChooseMainCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.pbEffectsTrainerChooseMainCombobox.FormattingEnabled = true; this.pbEffectsTrainerChooseMainCombobox.Location = new System.Drawing.Point(252, 178); this.pbEffectsTrainerChooseMainCombobox.Name = "pbEffectsTrainerChooseMainCombobox"; this.pbEffectsTrainerChooseMainCombobox.Size = new System.Drawing.Size(218, 21); this.pbEffectsTrainerChooseMainCombobox.TabIndex = 41; // // HOWVsTrainerButton // this.HOWVsTrainerButton.Image = ((System.Drawing.Image)(resources.GetObject("HOWVsTrainerButton.Image"))); this.HOWVsTrainerButton.Location = new System.Drawing.Point(307, 209); this.HOWVsTrainerButton.Name = "HOWVsTrainerButton"; this.HOWVsTrainerButton.Size = new System.Drawing.Size(28, 29); this.HOWVsTrainerButton.TabIndex = 39; this.HOWVsTrainerButton.UseVisualStyleBackColor = true; this.HOWVsTrainerButton.Click += new System.EventHandler(this.HOWVsTrainerButton_Click); // // saveVSTrainerTableBTN // this.saveVSTrainerTableBTN.Image = ((System.Drawing.Image)(resources.GetObject("saveVSTrainerTableBTN.Image"))); this.saveVSTrainerTableBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveVSTrainerTableBTN.Location = new System.Drawing.Point(337, 205); this.saveVSTrainerTableBTN.Name = "saveVSTrainerTableBTN"; this.saveVSTrainerTableBTN.Size = new System.Drawing.Size(80, 37); this.saveVSTrainerTableBTN.TabIndex = 38; this.saveVSTrainerTableBTN.Text = "Save This Entry"; this.saveVSTrainerTableBTN.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveVSTrainerTableBTN.UseVisualStyleBackColor = true; this.saveVSTrainerTableBTN.Click += new System.EventHandler(this.saveVSTrainerEntryBTN_Click); // // label70 // this.label70.AutoSize = true; this.label70.Location = new System.Drawing.Point(248, 14); this.label70.Name = "label70"; this.label70.Size = new System.Drawing.Size(68, 13); this.label70.TabIndex = 37; this.label70.Text = "Trainer Class"; // // pbEffectsTrainerCombobox // this.pbEffectsTrainerCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.pbEffectsTrainerCombobox.FormattingEnabled = true; this.pbEffectsTrainerCombobox.Location = new System.Drawing.Point(252, 29); this.pbEffectsTrainerCombobox.Name = "pbEffectsTrainerCombobox"; this.pbEffectsTrainerCombobox.Size = new System.Drawing.Size(218, 21); this.pbEffectsTrainerCombobox.TabIndex = 36; this.pbEffectsTrainerCombobox.SelectedIndexChanged += new System.EventHandler(this.pbEffectsTrainerCombobox_SelectedIndexChanged); // // pbEffectsVsTrainerListbox // this.pbEffectsVsTrainerListbox.FormattingEnabled = true; this.pbEffectsVsTrainerListbox.Location = new System.Drawing.Point(9, 18); this.pbEffectsVsTrainerListbox.Name = "pbEffectsVsTrainerListbox"; this.pbEffectsVsTrainerListbox.Size = new System.Drawing.Size(234, 225); this.pbEffectsVsTrainerListbox.TabIndex = 35; this.pbEffectsVsTrainerListbox.SelectedIndexChanged += new System.EventHandler(this.pbEffectsVsTrainerListbox_SelectedIndexChanged); // // pbEffectsMonGroupBox // this.pbEffectsMonGroupBox.Controls.Add(this.tbEditorPokeminiPictureBox); this.pbEffectsMonGroupBox.Controls.Add(this.label69); this.pbEffectsMonGroupBox.Controls.Add(this.pbEffectsPokemonChooseMainCombobox); this.pbEffectsMonGroupBox.Controls.Add(this.HOWvsPokemonButton); this.pbEffectsMonGroupBox.Controls.Add(this.saveVSPokemonTableBTN); this.pbEffectsMonGroupBox.Controls.Add(this.label71); this.pbEffectsMonGroupBox.Controls.Add(this.pbEffectsPokemonCombobox); this.pbEffectsMonGroupBox.Controls.Add(this.pbEffectsVsPokemonListbox); this.pbEffectsMonGroupBox.Location = new System.Drawing.Point(286, 265); this.pbEffectsMonGroupBox.Name = "pbEffectsMonGroupBox"; this.pbEffectsMonGroupBox.Size = new System.Drawing.Size(481, 174); this.pbEffectsMonGroupBox.TabIndex = 33; this.pbEffectsMonGroupBox.TabStop = false; this.pbEffectsMonGroupBox.Text = "VS. Pokémon"; // // tbEditorPokeminiPictureBox // this.tbEditorPokeminiPictureBox.Location = new System.Drawing.Point(297, 12); this.tbEditorPokeminiPictureBox.Name = "tbEditorPokeminiPictureBox"; this.tbEditorPokeminiPictureBox.Size = new System.Drawing.Size(40, 30); this.tbEditorPokeminiPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.tbEditorPokeminiPictureBox.TabIndex = 43; this.tbEditorPokeminiPictureBox.TabStop = false; // // label69 // this.label69.AutoSize = true; this.label69.Location = new System.Drawing.Point(249, 80); this.label69.Name = "label69"; this.label69.Size = new System.Drawing.Size(120, 13); this.label69.TabIndex = 42; this.label69.Text = "Maintable Effect Combo"; // // pbEffectsPokemonChooseMainCombobox // this.pbEffectsPokemonChooseMainCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.pbEffectsPokemonChooseMainCombobox.FormattingEnabled = true; this.pbEffectsPokemonChooseMainCombobox.Location = new System.Drawing.Point(252, 96); this.pbEffectsPokemonChooseMainCombobox.Name = "pbEffectsPokemonChooseMainCombobox"; this.pbEffectsPokemonChooseMainCombobox.Size = new System.Drawing.Size(218, 21); this.pbEffectsPokemonChooseMainCombobox.TabIndex = 41; // // HOWvsPokemonButton // this.HOWvsPokemonButton.Image = ((System.Drawing.Image)(resources.GetObject("HOWvsPokemonButton.Image"))); this.HOWvsPokemonButton.Location = new System.Drawing.Point(307, 127); this.HOWvsPokemonButton.Name = "HOWvsPokemonButton"; this.HOWvsPokemonButton.Size = new System.Drawing.Size(28, 29); this.HOWvsPokemonButton.TabIndex = 39; this.HOWvsPokemonButton.UseVisualStyleBackColor = true; this.HOWvsPokemonButton.Click += new System.EventHandler(this.HOWvsPokemonButton_Click); // // saveVSPokemonTableBTN // this.saveVSPokemonTableBTN.Image = ((System.Drawing.Image)(resources.GetObject("saveVSPokemonTableBTN.Image"))); this.saveVSPokemonTableBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveVSPokemonTableBTN.Location = new System.Drawing.Point(337, 123); this.saveVSPokemonTableBTN.Name = "saveVSPokemonTableBTN"; this.saveVSPokemonTableBTN.Size = new System.Drawing.Size(80, 37); this.saveVSPokemonTableBTN.TabIndex = 38; this.saveVSPokemonTableBTN.Text = "Save This Entry"; this.saveVSPokemonTableBTN.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveVSPokemonTableBTN.UseVisualStyleBackColor = true; this.saveVSPokemonTableBTN.Click += new System.EventHandler(this.saveVSPokemonEntryBTN_Click); // // label71 // this.label71.AutoSize = true; this.label71.Location = new System.Drawing.Point(249, 29); this.label71.Name = "label71"; this.label71.Size = new System.Drawing.Size(52, 13); this.label71.TabIndex = 37; this.label71.Text = "Pokémon"; // // pbEffectsPokemonCombobox // this.pbEffectsPokemonCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.pbEffectsPokemonCombobox.FormattingEnabled = true; this.pbEffectsPokemonCombobox.Location = new System.Drawing.Point(252, 45); this.pbEffectsPokemonCombobox.Name = "pbEffectsPokemonCombobox"; this.pbEffectsPokemonCombobox.Size = new System.Drawing.Size(218, 21); this.pbEffectsPokemonCombobox.TabIndex = 36; this.pbEffectsPokemonCombobox.SelectedIndexChanged += new System.EventHandler(this.pbEffectsPokemonCombobox_SelectedIndexChanged); // // pbEffectsVsPokemonListbox // this.pbEffectsVsPokemonListbox.FormattingEnabled = true; this.pbEffectsVsPokemonListbox.Location = new System.Drawing.Point(9, 17); this.pbEffectsVsPokemonListbox.Name = "pbEffectsVsPokemonListbox"; this.pbEffectsVsPokemonListbox.Size = new System.Drawing.Size(234, 147); this.pbEffectsVsPokemonListbox.TabIndex = 35; this.pbEffectsVsPokemonListbox.SelectedIndexChanged += new System.EventHandler(this.pbEffectsVsPokemonListbox_SelectedIndexChanged); // // conditionalMusicGroupBox // this.conditionalMusicGroupBox.Controls.Add(this.label66); this.conditionalMusicGroupBox.Controls.Add(this.HOWconditionalMusicTableButton); this.conditionalMusicGroupBox.Controls.Add(this.saveConditionalMusicTableBTN); this.conditionalMusicGroupBox.Controls.Add(this.label65); this.conditionalMusicGroupBox.Controls.Add(this.musicIDconditionalMusicUpDown); this.conditionalMusicGroupBox.Controls.Add(this.label64); this.conditionalMusicGroupBox.Controls.Add(this.flagConditionalMusicUpDown); this.conditionalMusicGroupBox.Controls.Add(this.label41); this.conditionalMusicGroupBox.Controls.Add(this.locationNameConditionalMusicLBL); this.conditionalMusicGroupBox.Controls.Add(this.headerConditionalMusicComboBox); this.conditionalMusicGroupBox.Controls.Add(this.conditionalMusicTableListBox); this.conditionalMusicGroupBox.Location = new System.Drawing.Point(16, 9); this.conditionalMusicGroupBox.Name = "conditionalMusicGroupBox"; this.conditionalMusicGroupBox.Size = new System.Drawing.Size(360, 190); this.conditionalMusicGroupBox.TabIndex = 0; this.conditionalMusicGroupBox.TabStop = false; this.conditionalMusicGroupBox.Text = "Conditional Music Table"; // // label66 // this.label66.AutoSize = true; this.label66.Location = new System.Drawing.Point(5, 20); this.label66.Name = "label66"; this.label66.Size = new System.Drawing.Size(72, 13); this.label66.TabIndex = 10; this.label66.Text = "Locations List"; // // HOWconditionalMusicTableButton // this.HOWconditionalMusicTableButton.Image = ((System.Drawing.Image)(resources.GetObject("HOWconditionalMusicTableButton.Image"))); this.HOWconditionalMusicTableButton.Location = new System.Drawing.Point(232, 146); this.HOWconditionalMusicTableButton.Name = "HOWconditionalMusicTableButton"; this.HOWconditionalMusicTableButton.Size = new System.Drawing.Size(28, 29); this.HOWconditionalMusicTableButton.TabIndex = 9; this.HOWconditionalMusicTableButton.UseVisualStyleBackColor = true; this.HOWconditionalMusicTableButton.Click += new System.EventHandler(this.HOWconditionalMusicTableButton_Click); // // saveConditionalMusicTableBTN // this.saveConditionalMusicTableBTN.Image = ((System.Drawing.Image)(resources.GetObject("saveConditionalMusicTableBTN.Image"))); this.saveConditionalMusicTableBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveConditionalMusicTableBTN.Location = new System.Drawing.Point(262, 142); this.saveConditionalMusicTableBTN.Name = "saveConditionalMusicTableBTN"; this.saveConditionalMusicTableBTN.Size = new System.Drawing.Size(89, 37); this.saveConditionalMusicTableBTN.TabIndex = 8; this.saveConditionalMusicTableBTN.Text = "Save Table"; this.saveConditionalMusicTableBTN.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveConditionalMusicTableBTN.UseVisualStyleBackColor = true; this.saveConditionalMusicTableBTN.Click += new System.EventHandler(this.saveConditionalMusicTableBTN_Click); // // label65 // this.label65.AutoSize = true; this.label65.Location = new System.Drawing.Point(262, 83); this.label65.Name = "label65"; this.label65.Size = new System.Drawing.Size(49, 13); this.label65.TabIndex = 7; this.label65.Text = "Music ID"; // // musicIDconditionalMusicUpDown // this.musicIDconditionalMusicUpDown.Location = new System.Drawing.Point(265, 99); this.musicIDconditionalMusicUpDown.Maximum = new decimal(new int[] { 32767, 0, 0, 0}); this.musicIDconditionalMusicUpDown.Name = "musicIDconditionalMusicUpDown"; this.musicIDconditionalMusicUpDown.Size = new System.Drawing.Size(67, 20); this.musicIDconditionalMusicUpDown.TabIndex = 6; this.musicIDconditionalMusicUpDown.ValueChanged += new System.EventHandler(this.musicIDconditionalMusicUpDown_ValueChanged); // // label64 // this.label64.AutoSize = true; this.label64.Location = new System.Drawing.Point(179, 83); this.label64.Name = "label64"; this.label64.Size = new System.Drawing.Size(27, 13); this.label64.TabIndex = 5; this.label64.Text = "Flag"; // // flagConditionalMusicUpDown // this.flagConditionalMusicUpDown.Location = new System.Drawing.Point(182, 99); this.flagConditionalMusicUpDown.Maximum = new decimal(new int[] { 32767, 0, 0, 0}); this.flagConditionalMusicUpDown.Name = "flagConditionalMusicUpDown"; this.flagConditionalMusicUpDown.Size = new System.Drawing.Size(67, 20); this.flagConditionalMusicUpDown.TabIndex = 4; this.flagConditionalMusicUpDown.ValueChanged += new System.EventHandler(this.flagConditionalMusicUpDown_ValueChanged); // // label41 // this.label41.AutoSize = true; this.label41.Location = new System.Drawing.Point(175, 20); this.label41.Name = "label41"; this.label41.Size = new System.Drawing.Size(42, 13); this.label41.TabIndex = 3; this.label41.Text = "Header"; // // locationNameConditionalMusicLBL // this.locationNameConditionalMusicLBL.AutoSize = true; this.locationNameConditionalMusicLBL.Location = new System.Drawing.Point(175, 59); this.locationNameConditionalMusicLBL.Name = "locationNameConditionalMusicLBL"; this.locationNameConditionalMusicLBL.Size = new System.Drawing.Size(79, 13); this.locationNameConditionalMusicLBL.TabIndex = 2; this.locationNameConditionalMusicLBL.Text = "Location Name"; // // headerConditionalMusicComboBox // this.headerConditionalMusicComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.headerConditionalMusicComboBox.FormattingEnabled = true; this.headerConditionalMusicComboBox.Location = new System.Drawing.Point(178, 35); this.headerConditionalMusicComboBox.Name = "headerConditionalMusicComboBox"; this.headerConditionalMusicComboBox.Size = new System.Drawing.Size(173, 21); this.headerConditionalMusicComboBox.TabIndex = 1; this.headerConditionalMusicComboBox.SelectedIndexChanged += new System.EventHandler(this.headerConditionalMusicComboBox_SelectedIndexChanged); // // conditionalMusicTableListBox // this.conditionalMusicTableListBox.FormattingEnabled = true; this.conditionalMusicTableListBox.Location = new System.Drawing.Point(6, 34); this.conditionalMusicTableListBox.Name = "conditionalMusicTableListBox"; this.conditionalMusicTableListBox.Size = new System.Drawing.Size(165, 147); this.conditionalMusicTableListBox.TabIndex = 0; this.conditionalMusicTableListBox.SelectedIndexChanged += new System.EventHandler(this.conditionalMusicTableListBox_SelectedIndexChanged); // // tabPageEncountersEditor // this.tabPageEncountersEditor.Controls.Add(this.encountersEditor); this.tabPageEncountersEditor.Location = new System.Drawing.Point(4, 23); this.tabPageEncountersEditor.Name = "tabPageEncountersEditor"; this.tabPageEncountersEditor.Padding = new System.Windows.Forms.Padding(3); this.tabPageEncountersEditor.Size = new System.Drawing.Size(1185, 675); this.tabPageEncountersEditor.TabIndex = 12; this.tabPageEncountersEditor.Text = "Encounters"; this.tabPageEncountersEditor.UseVisualStyleBackColor = true; // // encountersEditor // this.encountersEditor.Location = new System.Drawing.Point(6, 3); this.encountersEditor.Margin = new System.Windows.Forms.Padding(4); this.encountersEditor.Name = "encountersEditor"; this.encountersEditor.Size = new System.Drawing.Size(1176, 672); this.encountersEditor.TabIndex = 0; // // mainTabImageList // this.mainTabImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("mainTabImageList.ImageStream"))); this.mainTabImageList.TransparentColor = System.Drawing.Color.White; this.mainTabImageList.Images.SetKeyName(0, "map_header.ico"); this.mainTabImageList.Images.SetKeyName(1, "matrix_editor.png"); this.mainTabImageList.Images.SetKeyName(2, "map_editor.png"); this.mainTabImageList.Images.SetKeyName(3, "event_editor.png"); this.mainTabImageList.Images.SetKeyName(4, "text_editor.png"); this.mainTabImageList.Images.SetKeyName(5, "script_editor.png"); this.mainTabImageList.Images.SetKeyName(6, "tileset_editor.png"); this.mainTabImageList.Images.SetKeyName(7, "gamecamera_editor.png"); this.mainTabImageList.Images.SetKeyName(8, "trainer_editor.png"); this.mainTabImageList.Images.SetKeyName(9, "tableEditor.png"); // // gameIcon // this.gameIcon.ErrorImage = null; this.gameIcon.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.gameIcon.InitialImage = null; this.gameIcon.Location = new System.Drawing.Point(1167, 35); this.gameIcon.Name = "gameIcon"; this.gameIcon.Size = new System.Drawing.Size(32, 32); this.gameIcon.TabIndex = 8; this.gameIcon.TabStop = false; this.gameIcon.Paint += new System.Windows.Forms.PaintEventHandler(this.PaintGameIcon); // // languageLabel // this.languageLabel.AutoSize = true; this.languageLabel.Location = new System.Drawing.Point(1042, 52); this.languageLabel.Name = "languageLabel"; this.languageLabel.Size = new System.Drawing.Size(58, 13); this.languageLabel.TabIndex = 10; this.languageLabel.Text = "Language:"; this.languageLabel.Visible = false; // // menuStrip1 // this.menuStrip1.BackColor = System.Drawing.SystemColors.Window; this.menuStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, this.aboutToolStripMenuItem, this.menuViewToolStripMenuItem, this.otherEditorsToolStripMenuItem, this.aboutToolStripMenuItem1}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Padding = new System.Windows.Forms.Padding(4, 2, 0, 2); this.menuStrip1.Size = new System.Drawing.Size(1214, 24); this.menuStrip1.TabIndex = 12; this.menuStrip1.Text = "menuStrip1"; // // fileToolStripMenuItem // this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.openROMToolStripMenuItem, this.openFolderToolStripMenuItem, this.saveROMToolStripMenuItem}); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); this.fileToolStripMenuItem.Text = "File"; // // openROMToolStripMenuItem // this.openROMToolStripMenuItem.Image = global::DSPRE.Properties.Resources.open_rom; this.openROMToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.openROMToolStripMenuItem.Name = "openROMToolStripMenuItem"; this.openROMToolStripMenuItem.Size = new System.Drawing.Size(155, 38); this.openROMToolStripMenuItem.Text = "Open ROM"; this.openROMToolStripMenuItem.Click += new System.EventHandler(this.loadRom_Click); // // openFolderToolStripMenuItem // this.openFolderToolStripMenuItem.Image = global::DSPRE.Properties.Resources.open_file; this.openFolderToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.openFolderToolStripMenuItem.Name = "openFolderToolStripMenuItem"; this.openFolderToolStripMenuItem.Size = new System.Drawing.Size(155, 38); this.openFolderToolStripMenuItem.Text = "Open Folder"; this.openFolderToolStripMenuItem.Click += new System.EventHandler(this.readDataFromFolderButton_Click); // // saveROMToolStripMenuItem // this.saveROMToolStripMenuItem.Enabled = false; this.saveROMToolStripMenuItem.Image = global::DSPRE.Properties.Resources.save_rom; this.saveROMToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.saveROMToolStripMenuItem.Name = "saveROMToolStripMenuItem"; this.saveROMToolStripMenuItem.Size = new System.Drawing.Size(155, 38); this.saveROMToolStripMenuItem.Text = "Save ROM"; this.saveROMToolStripMenuItem.Click += new System.EventHandler(this.saveRom_Click); // // aboutToolStripMenuItem // this.aboutToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.romToolboxToolStripMenuItem, this.headerSearchToolStripMenuItem, this.scriptCommandsDatabaseToolStripMenuItem, this.NarcUtilityToolStripMenuItem, this.listBasedBatchRenameToolStripMenuItem, this.listBuilderToolStripMenuItem, this.nSBMDUtilityToolStripMenuItem}); this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; this.aboutToolStripMenuItem.Size = new System.Drawing.Size(47, 20); this.aboutToolStripMenuItem.Text = "Tools"; // // romToolboxToolStripMenuItem // this.romToolboxToolStripMenuItem.Enabled = false; this.romToolboxToolStripMenuItem.Name = "romToolboxToolStripMenuItem"; this.romToolboxToolStripMenuItem.Size = new System.Drawing.Size(220, 22); this.romToolboxToolStripMenuItem.Text = "Patch Toolbox"; this.romToolboxToolStripMenuItem.Click += new System.EventHandler(this.romToolBoxToolStripMenuItem_Click); // // headerSearchToolStripMenuItem // this.headerSearchToolStripMenuItem.Enabled = false; this.headerSearchToolStripMenuItem.Name = "headerSearchToolStripMenuItem"; this.headerSearchToolStripMenuItem.Size = new System.Drawing.Size(220, 22); this.headerSearchToolStripMenuItem.Text = "Advanced Header Search"; this.headerSearchToolStripMenuItem.Click += new System.EventHandler(this.advancedHeaderSearchToolStripMenuItem_Click); // // scriptCommandsDatabaseToolStripMenuItem // this.scriptCommandsDatabaseToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.diamondAndPearlToolStripMenuItem, this.platinumToolStripMenuItem, this.heartGoldAndSoulSilverToolStripMenuItem}); this.scriptCommandsDatabaseToolStripMenuItem.Name = "scriptCommandsDatabaseToolStripMenuItem"; this.scriptCommandsDatabaseToolStripMenuItem.Size = new System.Drawing.Size(220, 22); this.scriptCommandsDatabaseToolStripMenuItem.Text = "Script Commands Database"; // // diamondAndPearlToolStripMenuItem // this.diamondAndPearlToolStripMenuItem.Image = global::DSPRE.Properties.Resources.scriptDBIconDP; this.diamondAndPearlToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.diamondAndPearlToolStripMenuItem.Name = "diamondAndPearlToolStripMenuItem"; this.diamondAndPearlToolStripMenuItem.Size = new System.Drawing.Size(211, 38); this.diamondAndPearlToolStripMenuItem.Text = "Diamond && Pearl"; this.diamondAndPearlToolStripMenuItem.Click += new System.EventHandler(this.diamondAndPearlToolStripMenuItem_Click); // // platinumToolStripMenuItem // this.platinumToolStripMenuItem.Image = global::DSPRE.Properties.Resources.scriptDBIconPt; this.platinumToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.platinumToolStripMenuItem.Name = "platinumToolStripMenuItem"; this.platinumToolStripMenuItem.Size = new System.Drawing.Size(211, 38); this.platinumToolStripMenuItem.Text = "Platinum"; this.platinumToolStripMenuItem.Click += new System.EventHandler(this.platinumToolStripMenuItem_Click); // // heartGoldAndSoulSilverToolStripMenuItem // this.heartGoldAndSoulSilverToolStripMenuItem.Image = global::DSPRE.Properties.Resources.scriptDBIconHGSS; this.heartGoldAndSoulSilverToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.heartGoldAndSoulSilverToolStripMenuItem.Name = "heartGoldAndSoulSilverToolStripMenuItem"; this.heartGoldAndSoulSilverToolStripMenuItem.Size = new System.Drawing.Size(211, 38); this.heartGoldAndSoulSilverToolStripMenuItem.Text = "HeartGold && SoulSilver"; this.heartGoldAndSoulSilverToolStripMenuItem.Click += new System.EventHandler(this.heartGoldAndSoulSilverToolStripMenuItem_Click); // // NarcUtilityToolStripMenuItem // this.NarcUtilityToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.buildFomFolderToolStripMenuItem, this.unpackToFolderToolStripMenuItem}); this.NarcUtilityToolStripMenuItem.Name = "NarcUtilityToolStripMenuItem"; this.NarcUtilityToolStripMenuItem.Size = new System.Drawing.Size(220, 22); this.NarcUtilityToolStripMenuItem.Text = "NARC Utility"; // // buildFomFolderToolStripMenuItem // this.buildFomFolderToolStripMenuItem.Image = global::DSPRE.Properties.Resources.folderToNarcIcon; this.buildFomFolderToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.buildFomFolderToolStripMenuItem.Name = "buildFomFolderToolStripMenuItem"; this.buildFomFolderToolStripMenuItem.Size = new System.Drawing.Size(214, 38); this.buildFomFolderToolStripMenuItem.Text = "Build from Folder"; this.buildFomFolderToolStripMenuItem.Click += new System.EventHandler(this.buildFromFolderToolStripMenuItem_Click); // // unpackToFolderToolStripMenuItem // this.unpackToFolderToolStripMenuItem.Image = global::DSPRE.Properties.Resources.narcToFolderIcon; this.unpackToFolderToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.unpackToFolderToolStripMenuItem.Name = "unpackToFolderToolStripMenuItem"; this.unpackToFolderToolStripMenuItem.Size = new System.Drawing.Size(214, 38); this.unpackToFolderToolStripMenuItem.Text = "Unpack to Folder"; this.unpackToFolderToolStripMenuItem.Click += new System.EventHandler(this.unpackToFolderToolStripMenuItem_Click); // // listBasedBatchRenameToolStripMenuItem // this.listBasedBatchRenameToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.listBasedToolStripMenuItem, this.contentBasedToolStripMenuItem}); this.listBasedBatchRenameToolStripMenuItem.Name = "listBasedBatchRenameToolStripMenuItem"; this.listBasedBatchRenameToolStripMenuItem.Size = new System.Drawing.Size(220, 22); this.listBasedBatchRenameToolStripMenuItem.Text = "Batch Rename Utility"; // // listBasedToolStripMenuItem // this.listBasedToolStripMenuItem.Image = global::DSPRE.Properties.Resources.listbasedRenameIcon; this.listBasedToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.listBasedToolStripMenuItem.Name = "listBasedToolStripMenuItem"; this.listBasedToolStripMenuItem.Size = new System.Drawing.Size(185, 38); this.listBasedToolStripMenuItem.Text = "List-Based"; this.listBasedToolStripMenuItem.Click += new System.EventHandler(this.listBasedToolStripMenuItem_Click); // // contentBasedToolStripMenuItem // this.contentBasedToolStripMenuItem.Image = global::DSPRE.Properties.Resources.contentbasedRenameIcon; this.contentBasedToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.contentBasedToolStripMenuItem.Name = "contentBasedToolStripMenuItem"; this.contentBasedToolStripMenuItem.Size = new System.Drawing.Size(185, 38); this.contentBasedToolStripMenuItem.Text = "Content-Based"; this.contentBasedToolStripMenuItem.Click += new System.EventHandler(this.contentBasedToolStripMenuItem_Click); // // listBuilderToolStripMenuItem // this.listBuilderToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fromCEnumToolStripMenuItem, this.fromFolderContentsToolStripMenuItem}); this.listBuilderToolStripMenuItem.Name = "listBuilderToolStripMenuItem"; this.listBuilderToolStripMenuItem.Size = new System.Drawing.Size(220, 22); this.listBuilderToolStripMenuItem.Text = "Folder-Based List Builder"; // // fromCEnumToolStripMenuItem // this.fromCEnumToolStripMenuItem.Image = global::DSPRE.Properties.Resources.enumToListIcon; this.fromCEnumToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.fromCEnumToolStripMenuItem.Name = "fromCEnumToolStripMenuItem"; this.fromCEnumToolStripMenuItem.Size = new System.Drawing.Size(237, 38); this.fromCEnumToolStripMenuItem.Text = "From C Enum"; this.fromCEnumToolStripMenuItem.Click += new System.EventHandler(this.enumBasedListBuilderToolStripButton_Click); // // fromFolderContentsToolStripMenuItem // this.fromFolderContentsToolStripMenuItem.Image = global::DSPRE.Properties.Resources.folderToListIcon; this.fromFolderContentsToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.fromFolderContentsToolStripMenuItem.Name = "fromFolderContentsToolStripMenuItem"; this.fromFolderContentsToolStripMenuItem.Size = new System.Drawing.Size(237, 38); this.fromFolderContentsToolStripMenuItem.Text = "From Folder Contents"; this.fromFolderContentsToolStripMenuItem.Click += new System.EventHandler(this.fromFolderContentsToolStripMenuItem_Click); // // nSBMDUtilityToolStripMenuItem // this.nSBMDUtilityToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.texturizeNSBMDToolStripMenuItem, this.untexturizeToolStripMenuItem, this.extractNSBTXFromNSBMDToolStripMenuItem}); this.nSBMDUtilityToolStripMenuItem.Name = "nSBMDUtilityToolStripMenuItem"; this.nSBMDUtilityToolStripMenuItem.Size = new System.Drawing.Size(220, 22); this.nSBMDUtilityToolStripMenuItem.Text = "NSBMD Utility"; // // texturizeNSBMDToolStripMenuItem // this.texturizeNSBMDToolStripMenuItem.Image = global::DSPRE.Properties.Resources.addTextureToNSBMD; this.texturizeNSBMDToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.texturizeNSBMDToolStripMenuItem.Name = "texturizeNSBMDToolStripMenuItem"; this.texturizeNSBMDToolStripMenuItem.Size = new System.Drawing.Size(250, 38); this.texturizeNSBMDToolStripMenuItem.Text = "Add/Replace NSBMD textures"; this.texturizeNSBMDToolStripMenuItem.Click += new System.EventHandler(this.nsbmdAddTexButton_Click); // // untexturizeToolStripMenuItem // this.untexturizeToolStripMenuItem.Image = global::DSPRE.Properties.Resources.removeTextureNSBMD; this.untexturizeToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.untexturizeToolStripMenuItem.Name = "untexturizeToolStripMenuItem"; this.untexturizeToolStripMenuItem.Size = new System.Drawing.Size(250, 38); this.untexturizeToolStripMenuItem.Text = "Remove textures from NSBMD"; this.untexturizeToolStripMenuItem.Click += new System.EventHandler(this.nsbmdRemoveTexButton_Click); // // extractNSBTXFromNSBMDToolStripMenuItem // this.extractNSBTXFromNSBMDToolStripMenuItem.Image = global::DSPRE.Properties.Resources.saveTextureFromNSBMD; this.extractNSBTXFromNSBMDToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.extractNSBTXFromNSBMDToolStripMenuItem.Name = "extractNSBTXFromNSBMDToolStripMenuItem"; this.extractNSBTXFromNSBMDToolStripMenuItem.Size = new System.Drawing.Size(250, 38); this.extractNSBTXFromNSBMDToolStripMenuItem.Text = "Save textures from NSBMD"; this.extractNSBTXFromNSBMDToolStripMenuItem.Click += new System.EventHandler(this.nsbmdExportTexButton_Click); // // menuViewToolStripMenuItem // this.menuViewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.essentialToolStripMenuItem, this.simpleToolStripMenuItem, this.advancedStripMenuItem, this.fullViewToolStripMenuItem}); this.menuViewToolStripMenuItem.Name = "menuViewToolStripMenuItem"; this.menuViewToolStripMenuItem.Size = new System.Drawing.Size(78, 20); this.menuViewToolStripMenuItem.Text = "Menu View"; // // essentialToolStripMenuItem // this.essentialToolStripMenuItem.Name = "essentialToolStripMenuItem"; this.essentialToolStripMenuItem.Size = new System.Drawing.Size(127, 22); this.essentialToolStripMenuItem.Text = "Essential"; this.essentialToolStripMenuItem.MouseDown += new System.Windows.Forms.MouseEventHandler(this.simpleToolStripMenuItem_MouseDown); // // simpleToolStripMenuItem // this.simpleToolStripMenuItem.Name = "simpleToolStripMenuItem"; this.simpleToolStripMenuItem.Size = new System.Drawing.Size(127, 22); this.simpleToolStripMenuItem.Text = "Simple"; this.simpleToolStripMenuItem.MouseDown += new System.Windows.Forms.MouseEventHandler(this.simpleToolStripMenuItem_MouseDown); // // advancedStripMenuItem // this.advancedStripMenuItem.Checked = true; this.advancedStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.advancedStripMenuItem.Name = "advancedStripMenuItem"; this.advancedStripMenuItem.Size = new System.Drawing.Size(127, 22); this.advancedStripMenuItem.Text = "Advanced"; this.advancedStripMenuItem.MouseDown += new System.Windows.Forms.MouseEventHandler(this.simpleToolStripMenuItem_MouseDown); // // fullViewToolStripMenuItem // this.fullViewToolStripMenuItem.Name = "fullViewToolStripMenuItem"; this.fullViewToolStripMenuItem.Size = new System.Drawing.Size(127, 22); this.fullViewToolStripMenuItem.Text = "Complete"; this.fullViewToolStripMenuItem.MouseDown += new System.Windows.Forms.MouseEventHandler(this.simpleToolStripMenuItem_MouseDown); // // otherEditorsToolStripMenuItem // this.otherEditorsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.personalDataEditorToolStripMenuItem, this.overlayEditorToolStripMenuItem, this.spawnEditorToolStripMenuItem, this.moveDataEditorToolStripMenuItem}); this.otherEditorsToolStripMenuItem.Enabled = false; this.otherEditorsToolStripMenuItem.Name = "otherEditorsToolStripMenuItem"; this.otherEditorsToolStripMenuItem.Size = new System.Drawing.Size(88, 20); this.otherEditorsToolStripMenuItem.Text = "Other Editors"; // // personalDataEditorToolStripMenuItem // this.personalDataEditorToolStripMenuItem.Name = "personalDataEditorToolStripMenuItem"; this.personalDataEditorToolStripMenuItem.Size = new System.Drawing.Size(174, 22); this.personalDataEditorToolStripMenuItem.Text = "Pokémon Editor"; this.personalDataEditorToolStripMenuItem.Click += new System.EventHandler(this.pokemonDataEditorToolStripMenuItem_Click); // // overlayEditorToolStripMenuItem // this.overlayEditorToolStripMenuItem.Name = "overlayEditorToolStripMenuItem"; this.overlayEditorToolStripMenuItem.Size = new System.Drawing.Size(174, 22); this.overlayEditorToolStripMenuItem.Text = "Overlay Editor"; this.overlayEditorToolStripMenuItem.Click += new System.EventHandler(this.overlayEditorToolStripMenuItem_Click); // // spawnEditorToolStripMenuItem // this.spawnEditorToolStripMenuItem.Name = "spawnEditorToolStripMenuItem"; this.spawnEditorToolStripMenuItem.Size = new System.Drawing.Size(174, 22); this.spawnEditorToolStripMenuItem.Text = "Spawn Point Editor"; this.spawnEditorToolStripMenuItem.Click += new System.EventHandler(this.spawnEditorToolStripButton_Click); // // moveDataEditorToolStripMenuItem // this.moveDataEditorToolStripMenuItem.Name = "moveDataEditorToolStripMenuItem"; this.moveDataEditorToolStripMenuItem.Size = new System.Drawing.Size(174, 22); this.moveDataEditorToolStripMenuItem.Text = "Move Data Editor"; this.moveDataEditorToolStripMenuItem.Click += new System.EventHandler(this.moveDataEditorToolStripMenuItem_Click); // // aboutToolStripMenuItem1 // this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(52, 20); this.aboutToolStripMenuItem1.Text = "About"; this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); // // statusStrip1 // this.statusStrip1.BackColor = System.Drawing.SystemColors.Control; this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusLabel, this.toolStripProgressBar}); this.statusStrip1.Location = new System.Drawing.Point(0, 777); this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Size = new System.Drawing.Size(1214, 22); this.statusStrip1.TabIndex = 13; this.statusStrip1.Text = "statusStrip1"; // // statusLabel // this.statusLabel.Name = "statusLabel"; this.statusLabel.Size = new System.Drawing.Size(39, 17); this.statusLabel.Text = "Ready"; // // toolStripProgressBar // this.toolStripProgressBar.Name = "toolStripProgressBar"; this.toolStripProgressBar.Size = new System.Drawing.Size(180, 16); this.toolStripProgressBar.Visible = false; // // mainToolStrip // this.mainToolStrip.AllowMerge = false; this.mainToolStrip.BackColor = System.Drawing.SystemColors.Menu; this.mainToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; this.mainToolStrip.ImageScalingSize = new System.Drawing.Size(20, 20); this.mainToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.loadRomButton, this.readDataFromFolderButton, this.saveRomButton, this.separator_AfterOpenSave, this.unpackAllButton, this.updateMapNarcsButton, this.separator_afterFolderUnpackers, this.buildNarcFromFolderToolStripButton, this.unpackNARCtoFolderToolStripButton, this.separator_afterNarcUtils, this.listBasedBatchRenameToolStripButton, this.contentBasedBatchRenameToolStripButton, this.separator_afterRenameUtils, this.enumBasedListBuilderToolStripButton, this.folderBasedListBuilderToolStriButton, this.separator_afterListUtils, this.nsbmdAddTexButton, this.nsbmdRemoveTexButton, this.nsbmdExportTexButton, this.separator_afterNsbmdUtils, this.buildingEditorButton, this.wildEditorButton, this.scriptCommandsButton, this.romToolboxToolStripButton, this.headerSearchToolStripButton, this.spawnEditorToolStripButton, this.separator_afterMiscButtons}); this.mainToolStrip.Location = new System.Drawing.Point(0, 24); this.mainToolStrip.Name = "mainToolStrip"; this.mainToolStrip.Size = new System.Drawing.Size(1214, 44); this.mainToolStrip.TabIndex = 16; this.mainToolStrip.Text = "mainToolStrip"; // // loadRomButton // this.loadRomButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.loadRomButton.Image = global::DSPRE.Properties.Resources.open_rom; this.loadRomButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.loadRomButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.loadRomButton.Margin = new System.Windows.Forms.Padding(13, 6, 0, 2); this.loadRomButton.Name = "loadRomButton"; this.loadRomButton.Size = new System.Drawing.Size(36, 36); this.loadRomButton.Text = "Open ROM"; this.loadRomButton.Click += new System.EventHandler(this.loadRom_Click); // // readDataFromFolderButton // this.readDataFromFolderButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.readDataFromFolderButton.Image = global::DSPRE.Properties.Resources.open_file; this.readDataFromFolderButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.readDataFromFolderButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.readDataFromFolderButton.Margin = new System.Windows.Forms.Padding(0, 6, 0, 2); this.readDataFromFolderButton.Name = "readDataFromFolderButton"; this.readDataFromFolderButton.Size = new System.Drawing.Size(36, 36); this.readDataFromFolderButton.Text = "Open Extracted Data"; this.readDataFromFolderButton.ToolTipText = "Open Extracted Data"; this.readDataFromFolderButton.Click += new System.EventHandler(this.readDataFromFolderButton_Click); // // saveRomButton // this.saveRomButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.saveRomButton.Enabled = false; this.saveRomButton.Image = global::DSPRE.Properties.Resources.save_rom; this.saveRomButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.saveRomButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.saveRomButton.Margin = new System.Windows.Forms.Padding(0, 6, 0, 2); this.saveRomButton.Name = "saveRomButton"; this.saveRomButton.Size = new System.Drawing.Size(36, 36); this.saveRomButton.Text = "Save ROM"; this.saveRomButton.Click += new System.EventHandler(this.saveRom_Click); // // separator_AfterOpenSave // this.separator_AfterOpenSave.Name = "separator_AfterOpenSave"; this.separator_AfterOpenSave.Size = new System.Drawing.Size(6, 44); // // unpackAllButton // this.unpackAllButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.unpackAllButton.Enabled = false; this.unpackAllButton.Image = global::DSPRE.Properties.Resources.unpackAllIcon; this.unpackAllButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.unpackAllButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.unpackAllButton.Margin = new System.Windows.Forms.Padding(0, 6, 0, 2); this.unpackAllButton.Name = "unpackAllButton"; this.unpackAllButton.Size = new System.Drawing.Size(36, 36); this.unpackAllButton.Text = "Unpack All Narcs"; this.unpackAllButton.Click += new System.EventHandler(this.unpackAllButton_Click); // // updateMapNarcsButton // this.updateMapNarcsButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.updateMapNarcsButton.Enabled = false; this.updateMapNarcsButton.Image = global::DSPRE.Properties.Resources.unpackBuildingNarcsIcon; this.updateMapNarcsButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.updateMapNarcsButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.updateMapNarcsButton.Margin = new System.Windows.Forms.Padding(0, 6, 0, 2); this.updateMapNarcsButton.Name = "updateMapNarcsButton"; this.updateMapNarcsButton.Size = new System.Drawing.Size(36, 36); this.updateMapNarcsButton.Text = "Unpack Building NARCs"; this.updateMapNarcsButton.Click += new System.EventHandler(this.updateMapNarcsButton_Click); // // separator_afterFolderUnpackers // this.separator_afterFolderUnpackers.Name = "separator_afterFolderUnpackers"; this.separator_afterFolderUnpackers.Size = new System.Drawing.Size(6, 44); // // buildNarcFromFolderToolStripButton // this.buildNarcFromFolderToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.buildNarcFromFolderToolStripButton.Image = global::DSPRE.Properties.Resources.folderToNarcIcon; this.buildNarcFromFolderToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.buildNarcFromFolderToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.buildNarcFromFolderToolStripButton.Margin = new System.Windows.Forms.Padding(2, 6, 2, 2); this.buildNarcFromFolderToolStripButton.Name = "buildNarcFromFolderToolStripButton"; this.buildNarcFromFolderToolStripButton.Size = new System.Drawing.Size(68, 36); this.buildNarcFromFolderToolStripButton.Text = "Build NARC from Folder"; this.buildNarcFromFolderToolStripButton.Click += new System.EventHandler(this.buildFromFolderToolStripMenuItem_Click); // // unpackNARCtoFolderToolStripButton // this.unpackNARCtoFolderToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.unpackNARCtoFolderToolStripButton.Image = global::DSPRE.Properties.Resources.narcToFolderIcon; this.unpackNARCtoFolderToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.unpackNARCtoFolderToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.unpackNARCtoFolderToolStripButton.Margin = new System.Windows.Forms.Padding(2, 6, 2, 2); this.unpackNARCtoFolderToolStripButton.Name = "unpackNARCtoFolderToolStripButton"; this.unpackNARCtoFolderToolStripButton.Size = new System.Drawing.Size(68, 36); this.unpackNARCtoFolderToolStripButton.Text = "Unpack NARC to Folder"; this.unpackNARCtoFolderToolStripButton.Click += new System.EventHandler(this.unpackToFolderToolStripMenuItem_Click); // // separator_afterNarcUtils // this.separator_afterNarcUtils.Name = "separator_afterNarcUtils"; this.separator_afterNarcUtils.Size = new System.Drawing.Size(6, 44); // // listBasedBatchRenameToolStripButton // this.listBasedBatchRenameToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.listBasedBatchRenameToolStripButton.Image = global::DSPRE.Properties.Resources.listbasedRenameIcon; this.listBasedBatchRenameToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.listBasedBatchRenameToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.listBasedBatchRenameToolStripButton.Margin = new System.Windows.Forms.Padding(2, 6, 3, 2); this.listBasedBatchRenameToolStripButton.Name = "listBasedBatchRenameToolStripButton"; this.listBasedBatchRenameToolStripButton.Size = new System.Drawing.Size(52, 36); this.listBasedBatchRenameToolStripButton.Text = "List-Based Batch Rename"; this.listBasedBatchRenameToolStripButton.Click += new System.EventHandler(this.listBasedToolStripMenuItem_Click); // // contentBasedBatchRenameToolStripButton // this.contentBasedBatchRenameToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.contentBasedBatchRenameToolStripButton.Image = global::DSPRE.Properties.Resources.contentbasedRenameIcon; this.contentBasedBatchRenameToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.contentBasedBatchRenameToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.contentBasedBatchRenameToolStripButton.Margin = new System.Windows.Forms.Padding(3, 6, 2, 2); this.contentBasedBatchRenameToolStripButton.Name = "contentBasedBatchRenameToolStripButton"; this.contentBasedBatchRenameToolStripButton.Size = new System.Drawing.Size(52, 36); this.contentBasedBatchRenameToolStripButton.Text = "Content-Based Batch Rename"; this.contentBasedBatchRenameToolStripButton.Click += new System.EventHandler(this.contentBasedToolStripMenuItem_Click); // // separator_afterRenameUtils // this.separator_afterRenameUtils.Name = "separator_afterRenameUtils"; this.separator_afterRenameUtils.Size = new System.Drawing.Size(6, 44); // // enumBasedListBuilderToolStripButton // this.enumBasedListBuilderToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.enumBasedListBuilderToolStripButton.Image = global::DSPRE.Properties.Resources.enumToListIcon; this.enumBasedListBuilderToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.enumBasedListBuilderToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.enumBasedListBuilderToolStripButton.Margin = new System.Windows.Forms.Padding(3, 6, 2, 2); this.enumBasedListBuilderToolStripButton.Name = "enumBasedListBuilderToolStripButton"; this.enumBasedListBuilderToolStripButton.Size = new System.Drawing.Size(68, 36); this.enumBasedListBuilderToolStripButton.Text = "Enum-Based List Builder"; this.enumBasedListBuilderToolStripButton.Click += new System.EventHandler(this.enumBasedListBuilderToolStripButton_Click); // // folderBasedListBuilderToolStriButton // this.folderBasedListBuilderToolStriButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.folderBasedListBuilderToolStriButton.Image = global::DSPRE.Properties.Resources.folderToListIcon; this.folderBasedListBuilderToolStriButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.folderBasedListBuilderToolStriButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.folderBasedListBuilderToolStriButton.Margin = new System.Windows.Forms.Padding(2, 6, 3, 2); this.folderBasedListBuilderToolStriButton.Name = "folderBasedListBuilderToolStriButton"; this.folderBasedListBuilderToolStriButton.Size = new System.Drawing.Size(68, 36); this.folderBasedListBuilderToolStriButton.Text = "Folder-Based List Builder"; this.folderBasedListBuilderToolStriButton.Click += new System.EventHandler(this.fromFolderContentsToolStripMenuItem_Click); // // separator_afterListUtils // this.separator_afterListUtils.Name = "separator_afterListUtils"; this.separator_afterListUtils.Size = new System.Drawing.Size(6, 44); // // nsbmdAddTexButton // this.nsbmdAddTexButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.nsbmdAddTexButton.Image = global::DSPRE.Properties.Resources.addTextureToNSBMD; this.nsbmdAddTexButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.nsbmdAddTexButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.nsbmdAddTexButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.nsbmdAddTexButton.Name = "nsbmdAddTexButton"; this.nsbmdAddTexButton.Size = new System.Drawing.Size(36, 36); this.nsbmdAddTexButton.Text = "Add texture to NSBMD"; this.nsbmdAddTexButton.ToolTipText = "Add textures to NSBMD"; this.nsbmdAddTexButton.Click += new System.EventHandler(this.nsbmdAddTexButton_Click); // // nsbmdRemoveTexButton // this.nsbmdRemoveTexButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.nsbmdRemoveTexButton.Image = global::DSPRE.Properties.Resources.removeTextureNSBMD; this.nsbmdRemoveTexButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.nsbmdRemoveTexButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.nsbmdRemoveTexButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.nsbmdRemoveTexButton.Name = "nsbmdRemoveTexButton"; this.nsbmdRemoveTexButton.Size = new System.Drawing.Size(36, 36); this.nsbmdRemoveTexButton.Text = "Remove texture from NSBMD"; this.nsbmdRemoveTexButton.ToolTipText = "Remove textures from NSBMD"; this.nsbmdRemoveTexButton.Click += new System.EventHandler(this.nsbmdRemoveTexButton_Click); // // nsbmdExportTexButton // this.nsbmdExportTexButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.nsbmdExportTexButton.Image = global::DSPRE.Properties.Resources.saveTextureFromNSBMD; this.nsbmdExportTexButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.nsbmdExportTexButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.nsbmdExportTexButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.nsbmdExportTexButton.Name = "nsbmdExportTexButton"; this.nsbmdExportTexButton.Size = new System.Drawing.Size(36, 36); this.nsbmdExportTexButton.Text = "Extract texture from NSBMD"; this.nsbmdExportTexButton.ToolTipText = "Extract textures from NSBMD"; this.nsbmdExportTexButton.Click += new System.EventHandler(this.nsbmdExportTexButton_Click); // // separator_afterNsbmdUtils // this.separator_afterNsbmdUtils.Name = "separator_afterNsbmdUtils"; this.separator_afterNsbmdUtils.Size = new System.Drawing.Size(6, 44); // // buildingEditorButton // this.buildingEditorButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.buildingEditorButton.Enabled = false; this.buildingEditorButton.Image = global::DSPRE.Properties.Resources.buildingEditorButton; this.buildingEditorButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.buildingEditorButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.buildingEditorButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.buildingEditorButton.Name = "buildingEditorButton"; this.buildingEditorButton.Size = new System.Drawing.Size(36, 36); this.buildingEditorButton.Text = "Buildings Editor"; this.buildingEditorButton.ToolTipText = "Building Editor"; this.buildingEditorButton.Click += new System.EventHandler(this.buildingEditorButton_Click); // // wildEditorButton // this.wildEditorButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.wildEditorButton.Enabled = false; this.wildEditorButton.Image = global::DSPRE.Properties.Resources.wildEditorButton; this.wildEditorButton.ImageAlign = System.Drawing.ContentAlignment.BottomCenter; this.wildEditorButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.wildEditorButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.wildEditorButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.wildEditorButton.Name = "wildEditorButton"; this.wildEditorButton.Size = new System.Drawing.Size(36, 36); this.wildEditorButton.Text = "Wild Pokémon Editor"; this.wildEditorButton.Click += new System.EventHandler(this.wildEditorButton_Click); // // scriptCommandsButton // this.scriptCommandsButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.scriptCommandsButton.Enabled = false; this.scriptCommandsButton.Image = global::DSPRE.Properties.Resources.scriptDBIcon; this.scriptCommandsButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.scriptCommandsButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.scriptCommandsButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.scriptCommandsButton.Name = "scriptCommandsButton"; this.scriptCommandsButton.Size = new System.Drawing.Size(36, 36); this.scriptCommandsButton.Text = "Script Commands Database"; this.scriptCommandsButton.Click += new System.EventHandler(this.scriptCommandsDatabaseToolStripButton_Click); // // romToolboxToolStripButton // this.romToolboxToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.romToolboxToolStripButton.Enabled = false; this.romToolboxToolStripButton.Image = global::DSPRE.Properties.Resources.exploreKit; this.romToolboxToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.romToolboxToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.romToolboxToolStripButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.romToolboxToolStripButton.Name = "romToolboxToolStripButton"; this.romToolboxToolStripButton.Size = new System.Drawing.Size(36, 36); this.romToolboxToolStripButton.Text = "Patch Toolbox"; this.romToolboxToolStripButton.ToolTipText = "Patch Toolbox"; this.romToolboxToolStripButton.Click += new System.EventHandler(this.romToolBoxToolStripMenuItem_Click); // // headerSearchToolStripButton // this.headerSearchToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.headerSearchToolStripButton.Enabled = false; this.headerSearchToolStripButton.Image = global::DSPRE.Properties.Resources.wideLensImage; this.headerSearchToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.headerSearchToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.headerSearchToolStripButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.headerSearchToolStripButton.Name = "headerSearchToolStripButton"; this.headerSearchToolStripButton.Size = new System.Drawing.Size(36, 36); this.headerSearchToolStripButton.Text = "Advanced Search (Experimental)"; this.headerSearchToolStripButton.ToolTipText = "Search Header by Property"; this.headerSearchToolStripButton.Click += new System.EventHandler(this.headerSearchToolStripButton_Click); // // spawnEditorToolStripButton // this.spawnEditorToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.spawnEditorToolStripButton.Enabled = false; this.spawnEditorToolStripButton.Image = global::DSPRE.Properties.Resources.spawnCoordsMatrixeditorIcon; this.spawnEditorToolStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.spawnEditorToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.spawnEditorToolStripButton.Margin = new System.Windows.Forms.Padding(4, 6, 0, 2); this.spawnEditorToolStripButton.Name = "spawnEditorToolStripButton"; this.spawnEditorToolStripButton.Size = new System.Drawing.Size(57, 36); this.spawnEditorToolStripButton.Text = "Spawn Point Editor"; this.spawnEditorToolStripButton.Click += new System.EventHandler(this.spawnEditorToolStripButton_Click); // // separator_afterMiscButtons // this.separator_afterMiscButtons.Name = "separator_afterMiscButtons"; this.separator_afterMiscButtons.Size = new System.Drawing.Size(6, 44); // // versionLabel // this.versionLabel.AutoSize = true; this.versionLabel.Location = new System.Drawing.Point(1042, 36); this.versionLabel.Name = "versionLabel"; this.versionLabel.Size = new System.Drawing.Size(35, 13); this.versionLabel.TabIndex = 9; this.versionLabel.Text = "ROM:"; this.versionLabel.Visible = false; // // MainProgram // this.AllowDrop = true; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1214, 799); this.Controls.Add(this.versionLabel); this.Controls.Add(this.languageLabel); this.Controls.Add(this.gameIcon); this.Controls.Add(this.mainToolStrip); this.Controls.Add(this.statusStrip1); this.Controls.Add(this.mainTabControl); this.Controls.Add(this.menuStrip1); this.DoubleBuffered = true; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MainMenuStrip = this.menuStrip1; this.MaximizeBox = false; this.Name = "MainProgram"; this.Text = "DS Pokémon Rom Editor Reloaded 1.11.1 (Nømura, AdAstra/LD3005, Mixone)"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainProgram_FormClosing); this.mainTabControl.ResumeLayout(false); this.headerEditorTabPage.ResumeLayout(false); this.headerEditorTabPage.PerformLayout(); this.worldmapCoordsGroupBox.ResumeLayout(false); this.worldmapCoordsGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.worldmapYCoordUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.worldmapXCoordUpDown)).EndInit(); this.groupBox18.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.wildPokeUpDown)).EndInit(); this.groupBox10.ResumeLayout(false); this.groupBox10.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.textFileUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.eventFileUpDown)).EndInit(); this.groupBox4.ResumeLayout(false); this.groupBox4.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.areaDataUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.matrixUpDown)).EndInit(); this.groupBox9.ResumeLayout(false); this.groupBox9.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.areaIconPictureBox)).EndInit(); this.nameGroupBox.ResumeLayout(false); this.nameGroupBox.PerformLayout(); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.cameraUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.weatherUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.musicNightUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.musicDayUpDown)).EndInit(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.levelScriptUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.scriptFileUpDown)).EndInit(); this.flagsGroupBox.ResumeLayout(false); this.flagsGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.battleBackgroundUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.cameraPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.weatherPictureBox)).EndInit(); this.matrixEditorTabPage.ResumeLayout(false); this.matrixEditorTabPage.PerformLayout(); this.matrixTabControl.ResumeLayout(false); this.headersTabPage.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.headersGridView)).EndInit(); this.heightsTabPage.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.heightsGridView)).EndInit(); this.mapFilesTabPage.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.mapFilesGridView)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.heightUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.widthUpDown)).EndInit(); this.mapEditorTabPage.ResumeLayout(false); this.mapEditorTabPage.PerformLayout(); this.tableLayoutPanel3.ResumeLayout(false); this.mapRenderPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.movPictureBox)).EndInit(); this.mapPartsTabControl.ResumeLayout(false); this.buildingsTabPage.ResumeLayout(false); this.buildingsTabPage.PerformLayout(); this.groupBox33.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.yRotDegBldUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.xRotDegBldUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.zRotDegBldUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.yRotBuildUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.xRotBuildUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.zRotBuildUpDown)).EndInit(); this.lockXZgroupbox.ResumeLayout(false); this.lockXZgroupbox.PerformLayout(); this.bldRoundGroupbox.ResumeLayout(false); this.tableLayoutPanel2.ResumeLayout(false); this.groupBox20.ResumeLayout(false); this.groupBox20.PerformLayout(); this.groupBox19.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.buildingHeightUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.buildingWidthUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.buildingLengthUpDown)).EndInit(); this.buildPositionGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.yBuildUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.xBuildUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.zBuildUpDown)).EndInit(); this.permissionsTabPage.ResumeLayout(false); this.permissionsTabPage.PerformLayout(); this.typeGroupBox.ResumeLayout(false); this.typeGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.typePainterUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.typePainterPictureBox)).EndInit(); this.collisionGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.collisionPainterPictureBox)).EndInit(); this.selectCollisionPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.collisionPictureBox)).EndInit(); this.selectTypePanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.typePictureBox)).EndInit(); this.modelTabPage.ResumeLayout(false); this.modelTabPage.PerformLayout(); this.terrainTabPage.ResumeLayout(false); this.terrainTabPage.PerformLayout(); this.bgsTabPage.ResumeLayout(false); this.bgsTabPage.PerformLayout(); this.nsbtxEditorTabPage.ResumeLayout(false); this.groupBox7.ResumeLayout(false); this.groupBox7.PerformLayout(); this.tableLayoutPanel37.ResumeLayout(false); this.tableLayoutPanel37.PerformLayout(); this.groupBox35.ResumeLayout(false); this.groupBox35.PerformLayout(); this.tableLayoutPanel38.ResumeLayout(false); this.tableLayoutPanel38.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.scalingTrackBar)).EndInit(); this.areaDataGroupBox.ResumeLayout(false); this.areaDataGroupBox.PerformLayout(); this.areaTypeGroupbox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.areaDataDynamicTexturesNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.areaDataMapTilesetUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.areaDataBuildingTilesetUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.texturePictureBox)).EndInit(); this.eventEditorTabPage.ResumeLayout(false); this.eventEditorTabPage.PerformLayout(); this.groupBox21.ResumeLayout(false); this.groupBox21.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.eventAreaDataUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixYUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixXUpDown)).EndInit(); this.eventMatrixPanel.ResumeLayout(false); this.eventMatrixPanel.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.eventMatrixUpDown)).EndInit(); this.eventsTabControl.ResumeLayout(false); this.signsTabPage.ResumeLayout(false); this.signsTabPage.PerformLayout(); this.groupBox5.ResumeLayout(false); this.groupBox5.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.spawnableXMatrixUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableYMatrixUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnablexMapUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableYMapUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.spawnableScriptUpDown)).EndInit(); this.overworldsTabPage.ResumeLayout(false); this.overworldsTabPage.PerformLayout(); this.groupBox22.ResumeLayout(false); this.groupBox22.PerformLayout(); this.groupBox17.ResumeLayout(false); this.groupBox17.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.owYMatrixUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owXMatrixUpDown)).EndInit(); this.owMovementGroupBox.ResumeLayout(false); this.owMovementGroupBox.PerformLayout(); this.groupBox23.ResumeLayout(false); this.groupBox23.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.owXRangeUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owYRangeUpDown)).EndInit(); this.positionGroupBox.ResumeLayout(false); this.positionGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.owXMapUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owZPositionUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owYMapUpDown)).EndInit(); this.owSpecialGroupBox.ResumeLayout(false); this.owSpecialGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.owSightRangeUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owScriptNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owFlagNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owIDNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.owSpritePictureBox)).EndInit(); this.warpsTabPage.ResumeLayout(false); this.groupBox11.ResumeLayout(false); this.groupBox11.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.warpAnchorUpDown)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox14.ResumeLayout(false); this.groupBox14.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.warpXMatrixUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.warpYMatrixUpDown)).EndInit(); this.groupBox12.ResumeLayout(false); this.groupBox12.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.warpXMapUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.warpYMapUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.warpZUpDown)).EndInit(); this.triggersTabPage.ResumeLayout(false); this.triggerLogicGroupBox.ResumeLayout(false); this.triggerLogicGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.expectedVarValueTriggerUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerVariableWatchedUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerScriptUpDown)).EndInit(); this.groupBox16.ResumeLayout(false); this.groupBox16.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.triggerLengthUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerWidthUpDown)).EndInit(); this.groupBox15.ResumeLayout(false); this.groupBox15.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.triggerXMapUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerZUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerYMapUpDown)).EndInit(); this.groupBox6.ResumeLayout(false); this.groupBox6.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.triggerXMatrixUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.triggerYMatrixUpDown)).EndInit(); this.eventPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.eventPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rightClickPicture)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.wheelClickPicture)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.LeftClickPicture)).EndInit(); this.tabPageScriptEditor.ResumeLayout(false); this.tabPageLevelScriptEditor.ResumeLayout(false); this.textEditorTabPage.ResumeLayout(false); this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.PerformLayout(); this.LineNumbersFormatgroupBox.ResumeLayout(false); this.LineNumbersFormatgroupBox.PerformLayout(); this.groupBox13.ResumeLayout(false); this.groupBox13.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.textEditorDataGridView)).EndInit(); this.cameraEditorTabPage.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.cameraEditorDataGridView)).EndInit(); this.trainerEditorTabPage.ResumeLayout(false); this.trainerEditorTabPage.PerformLayout(); this.tableLayoutPanel4.ResumeLayout(false); this.groupBox28.ResumeLayout(false); this.groupBox28.PerformLayout(); this.tableLayoutPanel6.ResumeLayout(false); this.party6GroupBox.ResumeLayout(false); this.party6GroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox6)).EndInit(); this.poke6MovesGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.partyIV6UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel6UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall6UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon6PictureBox)).EndInit(); this.party5GroupBox.ResumeLayout(false); this.party5GroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox5)).EndInit(); this.poke5MovesGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.partyIV5UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel5UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall5UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon5PictureBox)).EndInit(); this.party4GroupBox.ResumeLayout(false); this.party4GroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox4)).EndInit(); this.poke4MovesGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.partyIV4UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel4UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall4UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon4PictureBox)).EndInit(); this.party3GroupBox.ResumeLayout(false); this.party3GroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox3)).EndInit(); this.poke3MovesGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.partyIV3UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel3UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall3UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon3PictureBox)).EndInit(); this.party2GroupBox.ResumeLayout(false); this.party2GroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox2)).EndInit(); this.poke2MovesGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.partyIV2UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel2UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall2UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon2PictureBox)).EndInit(); this.party1GroupBox.ResumeLayout(false); this.party1GroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemonItemPictureBox1)).EndInit(); this.poke1MovesGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.partyIV1UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyLevel1UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyBall1UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.partyPokemon1PictureBox)).EndInit(); this.groupBox27.ResumeLayout(false); this.groupBox27.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.encounterSSEQAltUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.encounterSSEQMainUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trClassFramePreviewUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trainerClassPicBox)).EndInit(); this.groupBox25.ResumeLayout(false); this.groupBox25.PerformLayout(); this.tableLayoutPanel5.ResumeLayout(false); this.TrainerAIGroupBox.ResumeLayout(false); this.TrainerAIGroupBox.PerformLayout(); this.trainerItemsGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.partyCountUpDown)).EndInit(); this.tableEditorTabPage.ResumeLayout(false); this.tableEditorTabPage.PerformLayout(); this.pbEffectsGroupBox.ResumeLayout(false); this.groupBox31.ResumeLayout(false); this.groupBox31.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbEffectsBattleSSEQUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbEffectsVSAnimationUpDown)).EndInit(); this.pbEffectsTrainerGroupBox.ResumeLayout(false); this.pbEffectsTrainerGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.tbEditorTrClassFramePreviewUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.tbEditorTrClassPictureBox)).EndInit(); this.pbEffectsMonGroupBox.ResumeLayout(false); this.pbEffectsMonGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.tbEditorPokeminiPictureBox)).EndInit(); this.conditionalMusicGroupBox.ResumeLayout(false); this.conditionalMusicGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.musicIDconditionalMusicUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.flagConditionalMusicUpDown)).EndInit(); this.tabPageEncountersEditor.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.gameIcon)).EndInit(); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.statusStrip1.ResumeLayout(false); this.statusStrip1.PerformLayout(); this.mainToolStrip.ResumeLayout(false); this.mainToolStrip.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.TabPage matrixEditorTabPage; private System.Windows.Forms.PictureBox gameIcon; private System.Windows.Forms.Label languageLabel; private System.Windows.Forms.Label labelMatrices; private System.Windows.Forms.Label matrixNameLabel; private System.Windows.Forms.TabControl matrixTabControl; private System.Windows.Forms.TabPage headersTabPage; private System.Windows.Forms.TabPage heightsTabPage; private System.Windows.Forms.DataGridView heightsGridView; private System.Windows.Forms.TabPage mapFilesTabPage; private System.Windows.Forms.DataGridView mapFilesGridView; private System.Windows.Forms.TextBox matrixNameTextBox; private System.Windows.Forms.NumericUpDown heightUpDown; private System.Windows.Forms.NumericUpDown widthUpDown; private System.Windows.Forms.Label widthLabel; private System.Windows.Forms.ComboBox selectMatrixComboBox; private System.Windows.Forms.DataGridView headersGridView; private System.Windows.Forms.Button addHeadersButton; private System.Windows.Forms.Button addHeightsButton; private System.Windows.Forms.Button removeHeadersButton; private System.Windows.Forms.Button removeHeightsButton; private System.Windows.Forms.TabPage mapEditorTabPage; private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openROMToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem saveROMToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; private System.Windows.Forms.Button saveMapButton; private System.Windows.Forms.Label label26; private System.Windows.Forms.ComboBox buildTextureComboBox; private System.Windows.Forms.Label mapFileLabel; private System.Windows.Forms.ComboBox mapTextureComboBox; private System.Windows.Forms.Label mapTextureLabel; private System.Windows.Forms.ComboBox selectMapComboBox; private System.Windows.Forms.TabControl mapPartsTabControl; private System.Windows.Forms.TabPage buildingsTabPage; private System.Windows.Forms.Button importBuildingsButton; private System.Windows.Forms.Button exportBuildingsButton; private System.Windows.Forms.Button removeBuildingButton; private System.Windows.Forms.Button addBuildingButton; private System.Windows.Forms.GroupBox buildPositionGroupBox; private System.Windows.Forms.Label yLabel; private System.Windows.Forms.Label zLabel; private System.Windows.Forms.Label xLabel; private System.Windows.Forms.NumericUpDown yBuildUpDown; private System.Windows.Forms.NumericUpDown zBuildUpDown; private System.Windows.Forms.NumericUpDown xBuildUpDown; private System.Windows.Forms.RadioButton exteriorbldRadioButton; private System.Windows.Forms.RadioButton interiorbldRadioButton; private System.Windows.Forms.ComboBox buildIndexComboBox; private System.Windows.Forms.ListBox buildingsListBox; private System.Windows.Forms.TabPage permissionsTabPage; private System.Windows.Forms.Button ImportMovButton; private System.Windows.Forms.Button exportMovButton; private System.Windows.Forms.TabPage modelTabPage; private System.Windows.Forms.Label unsupported3DModelEditLBL; private System.Windows.Forms.Button importMapButton; private System.Windows.Forms.Button exportMapButton; private System.Windows.Forms.TabPage terrainTabPage; private System.Windows.Forms.Label unsupportedBDHCEditLBL; private System.Windows.Forms.Button bdhcImportButton; private System.Windows.Forms.Button bdhcExportButton; private System.Windows.Forms.RadioButton radio3D; private System.Windows.Forms.RadioButton radio2D; private System.Windows.Forms.CheckBox wireframeCheckBox; private System.Windows.Forms.StatusStrip statusStrip1; private System.Windows.Forms.PictureBox collisionPictureBox; private System.Windows.Forms.PictureBox typePictureBox; private System.Windows.Forms.Label typeLabel; private System.Windows.Forms.Label collisionLabel; private System.Windows.Forms.Panel selectCollisionPanel; private System.Windows.Forms.Panel selectTypePanel; private System.Windows.Forms.ImageList mainTabImageList; private System.Windows.Forms.ToolStripButton loadRomButton; private System.Windows.Forms.ToolStripButton saveRomButton; private System.Windows.Forms.ToolStrip mainToolStrip; private System.Windows.Forms.Label versionLabel; private System.Windows.Forms.ToolStripSeparator separator_afterNsbmdUtils; private System.Windows.Forms.Button clearCurrentButton; private System.Windows.Forms.GroupBox typeGroupBox; private System.Windows.Forms.GroupBox collisionGroupBox; private System.Windows.Forms.PictureBox collisionPainterPictureBox; private System.Windows.Forms.PictureBox typePainterPictureBox; private System.Windows.Forms.ComboBox collisionPainterComboBox; private System.Windows.Forms.NumericUpDown typePainterUpDown; private System.Windows.Forms.ComboBox collisionTypePainterComboBox; private System.Windows.Forms.RadioButton knownTypesRadioButton; private System.Windows.Forms.RadioButton valueTypeRadioButton; private System.Windows.Forms.TabPage eventEditorTabPage; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem romToolboxToolStripMenuItem; private System.Windows.Forms.Panel mapRenderPanel; private Tao.Platform.Windows.SimpleOpenGlControl mapOpenGlControl; private System.Windows.Forms.PictureBox movPictureBox; private System.Windows.Forms.Panel eventPanel; private Tao.Platform.Windows.SimpleOpenGlControl eventOpenGlControl; private System.Windows.Forms.PictureBox eventPictureBox; private System.Windows.Forms.TabControl eventsTabControl; private System.Windows.Forms.TabPage signsTabPage; private System.Windows.Forms.TabPage warpsTabPage; private System.Windows.Forms.TabPage triggersTabPage; private System.Windows.Forms.Label eventMapTextureLabel; private System.Windows.Forms.NumericUpDown eventAreaDataUpDown; private System.Windows.Forms.Label backgroundMapLabel; private System.Windows.Forms.NumericUpDown eventMatrixUpDown; private System.Windows.Forms.Button saveEventsButton; private System.Windows.Forms.Button exportEventFileButton; private System.Windows.Forms.Button importEventFileButton; private System.Windows.Forms.ListBox spawnablesListBox; private System.Windows.Forms.ComboBox selectEventComboBox; private System.Windows.Forms.Label signScriptNumberLabel; private System.Windows.Forms.NumericUpDown spawnableScriptUpDown; private System.Windows.Forms.TabPage textEditorTabPage; private System.Windows.Forms.ListBox warpsListBox; private System.Windows.Forms.ListBox triggersListBox; private System.Windows.Forms.Button eventShiftUpButton; private System.Windows.Forms.Button eventShiftDownButton; private System.Windows.Forms.Button eventShiftLeftButton; private System.Windows.Forms.Button eventShiftRightButton; private System.Windows.Forms.Panel eventMatrixPanel; private System.Windows.Forms.PictureBox eventMatrixPictureBox; private System.Windows.Forms.Label matrixNavigatorLabel; private System.Windows.Forms.Label eventMatrixYLabel; private System.Windows.Forms.Label eventMatrixXLabel; private System.Windows.Forms.NumericUpDown eventMatrixYUpDown; private System.Windows.Forms.NumericUpDown eventMatrixXUpDown; private System.Windows.Forms.Label signOrientationLabel; private System.Windows.Forms.ComboBox spawnableDirComboBox; private System.Windows.Forms.Button addSpawnableButton; private System.Windows.Forms.Button removeSpawnableButton; private System.Windows.Forms.Button removeWarpButton; private System.Windows.Forms.Button addWarpButton; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Label label16; private System.Windows.Forms.NumericUpDown warpXMapUpDown; private System.Windows.Forms.NumericUpDown warpZUpDown; private System.Windows.Forms.NumericUpDown warpYMapUpDown; private System.Windows.Forms.Label label25; private System.Windows.Forms.GroupBox groupBox5; private System.Windows.Forms.Button goToSignButton; private System.Windows.Forms.Label signMatrixYLabel; private System.Windows.Forms.NumericUpDown spawnableXMatrixUpDown; private System.Windows.Forms.Label signMatrixXLabel; private System.Windows.Forms.NumericUpDown spawnableYMatrixUpDown; private System.Windows.Forms.Label signZLabel; private System.Windows.Forms.NumericUpDown spawnablexMapUpDown; private System.Windows.Forms.NumericUpDown spawnableUpDown; private System.Windows.Forms.Label signMapXLabel; private System.Windows.Forms.NumericUpDown spawnableYMapUpDown; private System.Windows.Forms.Label signMapYLabel; private System.Windows.Forms.Button removeTriggerButton; private System.Windows.Forms.Button addTriggerButton; private System.Windows.Forms.Label label27; private System.Windows.Forms.NumericUpDown triggerScriptUpDown; private System.Windows.Forms.Label label28; private System.Windows.Forms.NumericUpDown triggerVariableWatchedUpDown; private System.Windows.Forms.Button removeEventFileButton; private System.Windows.Forms.Button addEventFileButton; private System.Windows.Forms.Button removeMatrixButton; private System.Windows.Forms.Button addMatrixButton; private System.Windows.Forms.Button importMatrixButton; private System.Windows.Forms.Button exportMatrixButton; private System.Windows.Forms.Button exportTextFileButton; private System.Windows.Forms.Button saveTextArchiveButton; private System.Windows.Forms.Button removeMessageFileButton; private System.Windows.Forms.Button addTextArchiveButton; private System.Windows.Forms.Label label6; private System.Windows.Forms.ComboBox selectTextFileComboBox; private System.Windows.Forms.DataGridView textEditorDataGridView; private System.Windows.Forms.Button removeStringButton; private System.Windows.Forms.Button addStringButton; private System.Windows.Forms.TextBox searchMessageTextBox; private System.Windows.Forms.GroupBox groupBox13; private System.Windows.Forms.Label label7; private System.Windows.Forms.Button searchMessageButton; private System.Windows.Forms.Button replaceMessageButton; private System.Windows.Forms.CheckBox caseSensitiveTextSearchCheckbox; private System.Windows.Forms.ProgressBar textSearchProgressBar; private System.Windows.Forms.Label label8; private System.Windows.Forms.ToolStripButton wildEditorButton; private System.Windows.Forms.TabPage nsbtxEditorTabPage; private System.Windows.Forms.GroupBox areaDataGroupBox; private System.Windows.Forms.ListBox selectAreaDataListBox; private System.Windows.Forms.Label label35; private System.Windows.Forms.NumericUpDown areaDataDynamicTexturesNumericUpDown; private System.Windows.Forms.Label label34; private System.Windows.Forms.ComboBox areaDataLightTypeComboBox; private System.Windows.Forms.Label label33; private System.Windows.Forms.NumericUpDown areaDataMapTilesetUpDown; private System.Windows.Forms.Label label32; private System.Windows.Forms.NumericUpDown areaDataBuildingTilesetUpDown; private System.Windows.Forms.GroupBox groupBox7; private System.Windows.Forms.RadioButton buildingsTilesetRadioButton; private System.Windows.Forms.RadioButton mapTilesetRadioButton; private System.Windows.Forms.ListBox texturePacksListBox; private System.Windows.Forms.Label palettesLabel; private System.Windows.Forms.Label texturesLabel; private System.Windows.Forms.ListBox palettesListBox; private System.Windows.Forms.ListBox texturesListBox; private System.Windows.Forms.Button removeNSBTXButton; private System.Windows.Forms.Button addNSBTXButton; private System.Windows.Forms.Button exportNSBTXButton; private System.Windows.Forms.Button importNSBTXButton; private OffsetPictureBox texturePictureBox; private System.Windows.Forms.Button saveAreaDataButton; private System.Windows.Forms.Button removeAreaDataButton; private System.Windows.Forms.Button addAreaDataButton; private System.Windows.Forms.Button importTextFileButton; private System.Windows.Forms.NumericUpDown buildingHeightUpDown; private System.Windows.Forms.NumericUpDown buildingLengthUpDown; private System.Windows.Forms.NumericUpDown buildingWidthUpDown; private System.Windows.Forms.ToolStripButton romToolboxToolStripButton; private System.Windows.Forms.Button removeMapFileButton; private System.Windows.Forms.Button addMapFileButton; private System.Windows.Forms.Label replaceTextLabel; private System.Windows.Forms.TextBox replaceMessageTextBox; private System.Windows.Forms.TabPage headerEditorTabPage; private System.Windows.Forms.GroupBox groupBox10; private System.Windows.Forms.Button openMessageFileButton; private System.Windows.Forms.NumericUpDown textFileUpDown; private System.Windows.Forms.Label textLabel; private System.Windows.Forms.Button openEventsButton; private System.Windows.Forms.Label eventLabel; private System.Windows.Forms.NumericUpDown eventFileUpDown; private System.Windows.Forms.GroupBox groupBox9; private System.Windows.Forms.Button resetButton; private System.Windows.Forms.Button searchHeaderButton; private System.Windows.Forms.TextBox searchLocationTextBox; private System.Windows.Forms.PictureBox areaIconPictureBox; private System.Windows.Forms.Label areaImageLabel; private System.Windows.Forms.GroupBox nameGroupBox; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label14; private System.Windows.Forms.Button openWildEditorWithIdButton; private System.Windows.Forms.TextBox internalNameBox; private System.Windows.Forms.NumericUpDown wildPokeUpDown; private System.Windows.Forms.Label label2; private System.Windows.Forms.ComboBox areaIconComboBox; private System.Windows.Forms.Label areaSettingsLabel; private System.Windows.Forms.ComboBox areaSettingsComboBox; private System.Windows.Forms.ComboBox locationNameComboBox; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.ComboBox weatherComboBox; private System.Windows.Forms.ComboBox musicNightComboBox; private System.Windows.Forms.Label weatherLabel; private System.Windows.Forms.Label cameraLabel; private System.Windows.Forms.Label musicNightLabel; private System.Windows.Forms.ComboBox cameraComboBox; private System.Windows.Forms.Label musicDayLabel; private System.Windows.Forms.ComboBox musicDayComboBox; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.NumericUpDown levelScriptUpDown; private System.Windows.Forms.Button openLevelScriptButton; private System.Windows.Forms.Label levelScriptLabel; private System.Windows.Forms.Button openScriptButton; private System.Windows.Forms.Label scriptLabel; private System.Windows.Forms.ListBox headerListBox; private System.Windows.Forms.Button saveHeaderButton; private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.Button openAreaDataButton; private System.Windows.Forms.Button openMatrixButton; private System.Windows.Forms.Label areaDataLabel; private System.Windows.Forms.NumericUpDown areaDataUpDown; private System.Windows.Forms.Label matrixLabel; private System.Windows.Forms.NumericUpDown matrixUpDown; private System.Windows.Forms.GroupBox flagsGroupBox; private System.Windows.Forms.CheckBox flag3CheckBox; private System.Windows.Forms.CheckBox flag2CheckBox; private System.Windows.Forms.CheckBox flag1CheckBox; private System.Windows.Forms.CheckBox flag0CheckBox; private System.Windows.Forms.CheckBox flag6CheckBox; private System.Windows.Forms.CheckBox flag5CheckBox; private System.Windows.Forms.CheckBox flag4CheckBox; private System.Windows.Forms.Label cameraPicLabel; private System.Windows.Forms.PictureBox cameraPictureBox; private System.Windows.Forms.Label weatherPicLabel; private System.Windows.Forms.PictureBox weatherPictureBox; private System.Windows.Forms.ToolStripButton buildingEditorButton; private System.Windows.Forms.GroupBox groupBox11; private System.Windows.Forms.Button destinationWarpGoToButton; private System.Windows.Forms.NumericUpDown warpAnchorUpDown; private System.Windows.Forms.Label warpAnchorLabel; private System.Windows.Forms.GroupBox groupBox14; private System.Windows.Forms.Button goToWarpButton; private System.Windows.Forms.Label label9; private System.Windows.Forms.NumericUpDown warpXMatrixUpDown; private System.Windows.Forms.Label label15; private System.Windows.Forms.NumericUpDown warpYMatrixUpDown; private System.Windows.Forms.GroupBox groupBox12; private System.Windows.Forms.Label label24; private System.Windows.Forms.GroupBox groupBox15; private System.Windows.Forms.Label triggerZLabel; private System.Windows.Forms.NumericUpDown triggerXMapUpDown; private System.Windows.Forms.NumericUpDown triggerZUpDown; private System.Windows.Forms.Label triggerMapXLabel; private System.Windows.Forms.NumericUpDown triggerYMapUpDown; private System.Windows.Forms.Label triggerYMapLabel; private System.Windows.Forms.GroupBox groupBox6; private System.Windows.Forms.Button goToTriggerButton; private System.Windows.Forms.Label triggerYMatrixLabel; private System.Windows.Forms.NumericUpDown triggerXMatrixUpDown; private System.Windows.Forms.Label triggerXMatrixLabel; private System.Windows.Forms.NumericUpDown triggerYMatrixUpDown; private System.Windows.Forms.GroupBox groupBox16; private System.Windows.Forms.Label triggerLengthLabel; private System.Windows.Forms.NumericUpDown triggerLengthUpDown; private System.Windows.Forms.Label triggerWidthLabel; private System.Windows.Forms.NumericUpDown triggerWidthUpDown; private System.Windows.Forms.GroupBox LineNumbersFormatgroupBox; private System.Windows.Forms.RadioButton decimalRadioButton; private System.Windows.Forms.RadioButton hexRadiobutton; private System.Windows.Forms.TabPage overworldsTabPage; private System.Windows.Forms.GroupBox groupBox17; private System.Windows.Forms.Button button14; private System.Windows.Forms.NumericUpDown owYMatrixUpDown; private System.Windows.Forms.Label label12; private System.Windows.Forms.NumericUpDown owXMatrixUpDown; private System.Windows.Forms.Label label11; private System.Windows.Forms.RadioButton isItemRadioButton; private System.Windows.Forms.PictureBox owSpritePictureBox; private System.Windows.Forms.GroupBox owMovementGroupBox; private System.Windows.Forms.Label label4; private System.Windows.Forms.ComboBox owOrientationComboBox; private System.Windows.Forms.NumericUpDown owYRangeUpDown; private System.Windows.Forms.NumericUpDown owXRangeUpDown; private System.Windows.Forms.ComboBox owMovementComboBox; private System.Windows.Forms.GroupBox positionGroupBox; private System.Windows.Forms.Label label13; private System.Windows.Forms.NumericUpDown owXMapUpDown; private System.Windows.Forms.NumericUpDown owZPositionUpDown; private System.Windows.Forms.Label owXPositionLabel; private System.Windows.Forms.NumericUpDown owYMapUpDown; private System.Windows.Forms.Label label10; private System.Windows.Forms.RadioButton isTrainerRadioButton; private System.Windows.Forms.RadioButton normalRadioButton; private System.Windows.Forms.GroupBox owSpecialGroupBox; private System.Windows.Forms.CheckBox owPartnerTrainerCheckBox; private System.Windows.Forms.ComboBox owItemComboBox; private System.Windows.Forms.Label owItemLabel; private System.Windows.Forms.ComboBox owTrainerComboBox; private System.Windows.Forms.Label owSightRangeLabel; private System.Windows.Forms.NumericUpDown owSightRangeUpDown; private System.Windows.Forms.Label owTrainerLabel; private System.Windows.Forms.Label owScriptLabel; private System.Windows.Forms.NumericUpDown owScriptNumericUpDown; private System.Windows.Forms.Label owFlagLabel; private System.Windows.Forms.NumericUpDown owFlagNumericUpDown; private System.Windows.Forms.Label owSpriteLabel; private System.Windows.Forms.ComboBox owSpriteComboBox; private System.Windows.Forms.Label owIDLabel; private System.Windows.Forms.NumericUpDown owIDNumericUpDown; private System.Windows.Forms.Button removeOverworldButton; private System.Windows.Forms.Button addOverworldButton; private System.Windows.Forms.ListBox overworldsListBox; private System.Windows.Forms.PictureBox LeftClickPicture; private System.Windows.Forms.PictureBox wheelClickPicture; private System.Windows.Forms.Label RightClickLabel; private System.Windows.Forms.PictureBox rightClickPicture; private System.Windows.Forms.Label WheelClickLabel; private System.Windows.Forms.Label LeftClickLabel; private System.Windows.Forms.ToolStripButton unpackAllButton; private System.Windows.Forms.Button pasteHeaderButton; private System.Windows.Forms.Button copyHeaderButton; private System.Windows.Forms.Button pasteScriptsButton; private System.Windows.Forms.Button copyScriptsButton; private System.Windows.Forms.Button pasteTextsButton; private System.Windows.Forms.Button copyTextsButton; private System.Windows.Forms.Button pasteEventsButton; private System.Windows.Forms.Button copyEventsButton; private System.Windows.Forms.Button pasteLevelScriptsButton; private System.Windows.Forms.Button copyLevelScriptsButton; private System.Windows.Forms.Button pasteAreaDataButton; private System.Windows.Forms.Button copyAreaDataButton; private System.Windows.Forms.Button pasteMatrixButton; private System.Windows.Forms.Button copyMatrixButton; private System.Windows.Forms.Button pasteWeatherButton; private System.Windows.Forms.Button copyWeatherButton; private System.Windows.Forms.Button pasteMusicNightButton; private System.Windows.Forms.Button copyMusicNightButton; private System.Windows.Forms.Button pasteMusicDayButton; private System.Windows.Forms.Button copyMusicDayButton; private System.Windows.Forms.Button pasteAreaSettingsButton; private System.Windows.Forms.Button copyAreaSettingsButton; private System.Windows.Forms.Button pasteLocationNameButton; private System.Windows.Forms.Button copyLocationNameButton; private System.Windows.Forms.Button pasteInternalNameButton; private System.Windows.Forms.Button copyInternalNameButton; private System.Windows.Forms.Button pasteAreaIconButton; private System.Windows.Forms.Button copyAreaIconButton; private System.Windows.Forms.Button pasteCameraAngleButton; private System.Windows.Forms.Button copyCameraAngleButton; private System.Windows.Forms.ListBox textSearchResultsListBox; private System.Windows.Forms.CheckBox caseSensitiveTextReplaceCheckbox; private System.Windows.Forms.CheckBox searchAllArchivesCheckBox; private System.Windows.Forms.NumericUpDown musicDayUpDown; private System.Windows.Forms.NumericUpDown musicNightUpDown; private System.Windows.Forms.NumericUpDown weatherUpDown; private System.Windows.Forms.Button pasteWildEncountersButton; private System.Windows.Forms.Button copyWildEncountersButton; private System.Windows.Forms.GroupBox areaTypeGroupbox; private System.Windows.Forms.RadioButton outdoorAreaRadioButton; private System.Windows.Forms.RadioButton indoorAreaRadioButton; private System.Windows.Forms.Button exportAreaDataButton; private System.Windows.Forms.Button importAreaDataButton; private System.Windows.Forms.Button importHeaderFromFileButton; private System.Windows.Forms.Button exportHeaderToFileButton; private System.Windows.Forms.ToolTip toolTip1; private System.Windows.Forms.GroupBox groupBox18; private System.Windows.Forms.ToolStripButton updateMapNarcsButton; private System.Windows.Forms.Button importColorTableButton; private System.Windows.Forms.Button resetColorTableButton; private System.Windows.Forms.Button duplicateBuildingButton; private System.Windows.Forms.Button replaceMapBinButton; private System.Windows.Forms.GroupBox worldmapCoordsGroupBox; private System.Windows.Forms.Label label1; private System.Windows.Forms.NumericUpDown worldmapYCoordUpDown; private System.Windows.Forms.Label label36; private System.Windows.Forms.NumericUpDown worldmapXCoordUpDown; private System.Windows.Forms.Button worldmapCoordsPasteButton; private System.Windows.Forms.Button worldmapCoordsCopyButton; private System.Windows.Forms.Button pasteMapSettingsButton; private System.Windows.Forms.Button copyFlagsButton; private System.Windows.Forms.ToolStripButton headerSearchToolStripButton; private System.Windows.Forms.Label battleBackgroundLabel; private System.Windows.Forms.NumericUpDown battleBackgroundUpDown; private System.Windows.Forms.Button duplicateSpawnableButton; private System.Windows.Forms.Button duplicateOverworldsButton; private System.Windows.Forms.Label internalNameLenLabel; private System.Windows.Forms.DataGridViewTextBoxColumn messageColumn; private System.Windows.Forms.GroupBox groupBox19; private System.Windows.Forms.GroupBox groupBox20; private System.Windows.Forms.TabPage bgsTabPage; private System.Windows.Forms.Label unsupportedBGSEditLBL; private System.Windows.Forms.Button soundPlatesImportButton; private System.Windows.Forms.Button soundPlatesExportButton; private System.Windows.Forms.Label modelSizeLBL; private System.Windows.Forms.Label nsbmdSizeLabel; private System.Windows.Forms.Label terrainSizeLBL; private System.Windows.Forms.Label terrainDataLBL; private System.Windows.Forms.Label BGSSizeLBL; private System.Windows.Forms.Label bgsDataLBL; private System.Windows.Forms.GroupBox groupBox21; private System.Windows.Forms.CheckBox showTriggersCheckBox; private System.Windows.Forms.CheckBox showWarpsCheckBox; private System.Windows.Forms.CheckBox showOwsCheckBox; private System.Windows.Forms.CheckBox showSpawnablesCheckBox; private System.Windows.Forms.Button duplicateWarpsButton; private System.Windows.Forms.Button duplicateTriggersButton; private System.Windows.Forms.ToolStripMenuItem headerSearchToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator separator_afterRenameUtils; private System.Windows.Forms.ToolStripSeparator separator_AfterOpenSave; private System.Windows.Forms.ComboBox spawnableTypeComboBox; private System.Windows.Forms.Label label18; private System.Windows.Forms.Label label19; private System.Windows.Forms.NumericUpDown expectedVarValueTriggerUpDown; private System.Windows.Forms.GroupBox triggerLogicGroupBox; private System.Windows.Forms.Button exportCurrentMapBinButton; private System.Windows.Forms.ToolStripButton scriptCommandsButton; private System.Windows.Forms.ToolStripMenuItem scriptCommandsDatabaseToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem diamondAndPearlToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem platinumToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem heartGoldAndSoulSilverToolStripMenuItem; private System.Windows.Forms.Label spriteIDlabel; private System.Windows.Forms.ToolStripButton spawnEditorToolStripButton; private System.Windows.Forms.GroupBox groupBox22; private System.Windows.Forms.GroupBox groupBox23; private System.Windows.Forms.Label label39; private System.Windows.Forms.Label label20; private System.Windows.Forms.TabPage cameraEditorTabPage; private System.Windows.Forms.DataGridView cameraEditorDataGridView; private System.Windows.Forms.Button exportCameraTableButton; private System.Windows.Forms.Button importCameraTableButton; private System.Windows.Forms.Button saveCameraTableButton; private System.Windows.Forms.ToolStripButton nsbmdExportTexButton; private System.Windows.Forms.ToolStripButton nsbmdRemoveTexButton; private System.Windows.Forms.ToolStripButton nsbmdAddTexButton; private System.Windows.Forms.ToolStripSeparator separator_afterMiscButtons; private System.Windows.Forms.CheckBox embedTexturesInMapModelCheckBox; private System.Windows.Forms.GroupBox bldRoundGroupbox; private System.Windows.Forms.RadioButton bldRoundDecmil; private System.Windows.Forms.RadioButton bldRoundMil; private System.Windows.Forms.RadioButton bldRoundCent; private System.Windows.Forms.RadioButton bldRoundDec; private System.Windows.Forms.RadioButton bldRoundWhole; private System.Windows.Forms.CheckBox bldPlaceLockZcheckbox; private System.Windows.Forms.CheckBox bldPlaceLockXcheckbox; private System.Windows.Forms.RadioButton bldRoundCentMil; private System.Windows.Forms.CheckBox bldPlaceWithMouseCheckbox; private System.Windows.Forms.GroupBox lockXZgroupbox; private System.Windows.Forms.Button blankBGSButton; private System.Windows.Forms.DataGridViewTextBoxColumn DistanceGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn VertRotGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn HoriRotGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn zRotGVCol; private System.Windows.Forms.DataGridViewCheckBoxColumn OrthoGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn FovGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn NearClipGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn FarClipGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn XDispGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn YDispGVCol; private System.Windows.Forms.DataGridViewTextBoxColumn ZDispGVCol; private System.Windows.Forms.DataGridViewButtonColumn ExportBTN; private System.Windows.Forms.DataGridViewButtonColumn ImportBTN; private System.Windows.Forms.Button removeLastHeaderBTN; private System.Windows.Forms.Button addHeaderBTN; private System.Windows.Forms.NumericUpDown cameraUpDown; private System.Windows.Forms.TabPage trainerEditorTabPage; private System.Windows.Forms.Button addTrainerButton; private System.Windows.Forms.Label label63; private System.Windows.Forms.NumericUpDown partyCountUpDown; private System.Windows.Forms.GroupBox groupBox28; private System.Windows.Forms.GroupBox party6GroupBox; private System.Windows.Forms.Label label60; private System.Windows.Forms.Label label61; private System.Windows.Forms.Label label62; private System.Windows.Forms.GroupBox poke6MovesGroupBox; private DSPRE.InputComboBox partyMove6_1ComboBox; private DSPRE.InputComboBox partyMove6_2ComboBox; private DSPRE.InputComboBox partyMove6_3ComboBox; private DSPRE.InputComboBox partyMove6_4ComboBox; private System.Windows.Forms.NumericUpDown partyIV6UpDown; private System.Windows.Forms.NumericUpDown partyLevel6UpDown; private System.Windows.Forms.NumericUpDown partyBall6UpDown; private DSPRE.InputComboBox partyItem6ComboBox; private System.Windows.Forms.PictureBox partyPokemon6PictureBox; private DSPRE.InputComboBox partyPokemon6ComboBox; private System.Windows.Forms.GroupBox party5GroupBox; private System.Windows.Forms.Label label57; private System.Windows.Forms.Label label58; private System.Windows.Forms.Label label59; private System.Windows.Forms.GroupBox poke5MovesGroupBox; private DSPRE.InputComboBox partyMove5_1ComboBox; private DSPRE.InputComboBox partyMove5_2ComboBox; private DSPRE.InputComboBox partyMove5_3ComboBox; private DSPRE.InputComboBox partyMove5_4ComboBox; private System.Windows.Forms.NumericUpDown partyIV5UpDown; private System.Windows.Forms.NumericUpDown partyLevel5UpDown; private System.Windows.Forms.NumericUpDown partyBall5UpDown; private DSPRE.InputComboBox partyItem5ComboBox; private System.Windows.Forms.PictureBox partyPokemon5PictureBox; private DSPRE.InputComboBox partyPokemon5ComboBox; private System.Windows.Forms.GroupBox party4GroupBox; private System.Windows.Forms.Label label54; private System.Windows.Forms.Label label55; private System.Windows.Forms.Label label56; private System.Windows.Forms.GroupBox poke4MovesGroupBox; private DSPRE.InputComboBox partyMove4_1ComboBox; private DSPRE.InputComboBox partyMove4_2ComboBox; private DSPRE.InputComboBox partyMove4_3ComboBox; private DSPRE.InputComboBox partyMove4_4ComboBox; private System.Windows.Forms.NumericUpDown partyIV4UpDown; private System.Windows.Forms.NumericUpDown partyLevel4UpDown; private System.Windows.Forms.NumericUpDown partyBall4UpDown; private DSPRE.InputComboBox partyItem4ComboBox; private System.Windows.Forms.PictureBox partyPokemon4PictureBox; private DSPRE.InputComboBox partyPokemon4ComboBox; private System.Windows.Forms.GroupBox party3GroupBox; private System.Windows.Forms.Label label51; private System.Windows.Forms.Label label52; private System.Windows.Forms.Label label53; private System.Windows.Forms.GroupBox poke3MovesGroupBox; private DSPRE.InputComboBox partyMove3_1ComboBox; private DSPRE.InputComboBox partyMove3_2ComboBox; private DSPRE.InputComboBox partyMove3_3ComboBox; private DSPRE.InputComboBox partyMove3_4ComboBox; private System.Windows.Forms.NumericUpDown partyIV3UpDown; private System.Windows.Forms.NumericUpDown partyLevel3UpDown; private System.Windows.Forms.NumericUpDown partyBall3UpDown; private DSPRE.InputComboBox partyItem3ComboBox; private System.Windows.Forms.PictureBox partyPokemon3PictureBox; private DSPRE.InputComboBox partyPokemon3ComboBox; private System.Windows.Forms.GroupBox party2GroupBox; private System.Windows.Forms.Label label48; private System.Windows.Forms.Label label49; private System.Windows.Forms.Label label50; private System.Windows.Forms.GroupBox poke2MovesGroupBox; private DSPRE.InputComboBox partyMove2_1ComboBox; private DSPRE.InputComboBox partyMove2_2ComboBox; private DSPRE.InputComboBox partyMove2_3ComboBox; private DSPRE.InputComboBox partyMove2_4ComboBox; private System.Windows.Forms.NumericUpDown partyIV2UpDown; private System.Windows.Forms.NumericUpDown partyLevel2UpDown; private System.Windows.Forms.NumericUpDown partyBall2UpDown; private DSPRE.InputComboBox partyItem2ComboBox; private System.Windows.Forms.PictureBox partyPokemon2PictureBox; private DSPRE.InputComboBox partyPokemon2ComboBox; private System.Windows.Forms.GroupBox party1GroupBox; private System.Windows.Forms.Label label47; private System.Windows.Forms.Label label46; private System.Windows.Forms.Label label45; private System.Windows.Forms.GroupBox poke1MovesGroupBox; private DSPRE.InputComboBox partyMove1_1ComboBox; private DSPRE.InputComboBox partyMove1_2ComboBox; private DSPRE.InputComboBox partyMove1_3ComboBox; private DSPRE.InputComboBox partyMove1_4ComboBox; private System.Windows.Forms.NumericUpDown partyIV1UpDown; private System.Windows.Forms.NumericUpDown partyLevel1UpDown; private System.Windows.Forms.NumericUpDown partyBall1UpDown; private DSPRE.InputComboBox partyItem1ComboBox; private System.Windows.Forms.PictureBox partyPokemon1PictureBox; private DSPRE.InputComboBox partyPokemon1ComboBox; private System.Windows.Forms.Button trainerSaveCurrentButton; private System.Windows.Forms.GroupBox groupBox27; private System.Windows.Forms.GroupBox groupBox25; private System.Windows.Forms.GroupBox TrainerAIGroupBox; private System.Windows.Forms.CheckBox trainerAI11CheckBox; private System.Windows.Forms.CheckBox trainerAI10CheckBox; private System.Windows.Forms.CheckBox trainerAI9CheckBox; private System.Windows.Forms.CheckBox trainerAI8CheckBox; private System.Windows.Forms.CheckBox trainerAI7CheckBox; private System.Windows.Forms.CheckBox trainerAI6CheckBox; private System.Windows.Forms.CheckBox trainerAI5CheckBox; private System.Windows.Forms.CheckBox trainerAI4CheckBox; private System.Windows.Forms.CheckBox trainerAI3CheckBox; private System.Windows.Forms.CheckBox trainerAI2CheckBox; private System.Windows.Forms.CheckBox trainerAI1CheckBox; private System.Windows.Forms.GroupBox trainerItemsGroupBox; private DSPRE.InputComboBox trainerItem4ComboBox; private DSPRE.InputComboBox trainerItem3ComboBox; private DSPRE.InputComboBox trainerItem2ComboBox; private DSPRE.InputComboBox trainerItem1ComboBox; private System.Windows.Forms.CheckBox trainerItemsCheckBox; private System.Windows.Forms.CheckBox trainerMovesCheckBox; private System.Windows.Forms.CheckBox trainerDoubleCheckBox; private System.Windows.Forms.TextBox trainerNameTextBox; private System.Windows.Forms.Label label44; private System.Windows.Forms.Label label43; private System.Windows.Forms.ListBox trainerClassListBox; private System.Windows.Forms.Label label42; private DSPRE.InputComboBox trainerComboBox; private System.Windows.Forms.ComboBox followModeComboBox; private System.Windows.Forms.RadioButton johtoRadioButton; private System.Windows.Forms.RadioButton kantoRadioButton; private System.Windows.Forms.Label followModeLabel; private System.Windows.Forms.Button importTrainerButton; private System.Windows.Forms.Button exportTrainerButton; private System.Windows.Forms.PictureBox trainerClassPicBox; private System.Windows.Forms.TextBox trainerClassNameTextbox; private System.Windows.Forms.Label label17; private System.Windows.Forms.Button saveTrainerClassButton; private System.Windows.Forms.Label label40; private System.Windows.Forms.NumericUpDown trClassFramePreviewUpDown; private System.Windows.Forms.Label trainerClassFrameMaxLabel; private System.Windows.Forms.ToolStripButton readDataFromFolderButton; private System.Windows.Forms.TabPage tableEditorTabPage; private System.Windows.Forms.GroupBox conditionalMusicGroupBox; private System.Windows.Forms.Button saveConditionalMusicTableBTN; private System.Windows.Forms.Label label65; private System.Windows.Forms.NumericUpDown musicIDconditionalMusicUpDown; private System.Windows.Forms.Label label64; private System.Windows.Forms.NumericUpDown flagConditionalMusicUpDown; private System.Windows.Forms.Label label41; private System.Windows.Forms.Label locationNameConditionalMusicLBL; private System.Windows.Forms.ComboBox headerConditionalMusicComboBox; private System.Windows.Forms.ListBox conditionalMusicTableListBox; private System.Windows.Forms.Button HOWconditionalMusicTableButton; private System.Windows.Forms.Label label66; private System.Windows.Forms.Button mapScreenshotButton; private System.Windows.Forms.NumericUpDown encounterSSEQAltUpDown; private System.Windows.Forms.Label eyeContactMusicLabel; private System.Windows.Forms.NumericUpDown encounterSSEQMainUpDown; private System.Windows.Forms.GroupBox pbEffectsGroupBox; private System.Windows.Forms.Label label22; private System.Windows.Forms.NumericUpDown pbEffectsVSAnimationUpDown; private System.Windows.Forms.Label label21; private System.Windows.Forms.NumericUpDown pbEffectsBattleSSEQUpDown; private System.Windows.Forms.Button HOWpbEffectsTableButton; private System.Windows.Forms.Button saveEffectCombosTableBTN; private System.Windows.Forms.ListBox pbEffectsCombosListbox; private System.Windows.Forms.GroupBox pbEffectsTrainerGroupBox; private System.Windows.Forms.Label label68; private System.Windows.Forms.ComboBox pbEffectsTrainerChooseMainCombobox; private System.Windows.Forms.Button HOWVsTrainerButton; private System.Windows.Forms.Button saveVSTrainerTableBTN; private System.Windows.Forms.Label label70; private System.Windows.Forms.ComboBox pbEffectsTrainerCombobox; private System.Windows.Forms.ListBox pbEffectsVsTrainerListbox; private System.Windows.Forms.GroupBox pbEffectsMonGroupBox; private System.Windows.Forms.Label label69; private System.Windows.Forms.ComboBox pbEffectsPokemonChooseMainCombobox; private System.Windows.Forms.Button HOWvsPokemonButton; private System.Windows.Forms.Button saveVSPokemonTableBTN; private System.Windows.Forms.Label label71; private System.Windows.Forms.ComboBox pbEffectsPokemonCombobox; private System.Windows.Forms.ListBox pbEffectsVsPokemonListbox; private System.Windows.Forms.Label eyeContactMusicAltLabel; private System.Windows.Forms.PictureBox tbEditorTrClassPictureBox; private System.Windows.Forms.Label tbEditortrainerClassFrameMaxLabel; private System.Windows.Forms.NumericUpDown tbEditorTrClassFramePreviewUpDown; private System.Windows.Forms.PictureBox tbEditorPokeminiPictureBox; private System.Windows.Forms.ToolStripMenuItem openFolderToolStripMenuItem; private System.Windows.Forms.Button itemsSelectorHelpBtn; private System.Windows.Forms.Button deleteTrainerButton; private System.Windows.Forms.Label label67; private System.Windows.Forms.ToolStripMenuItem NarcUtilityToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem unpackToFolderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem buildFomFolderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem listBasedBatchRenameToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem listBasedToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem contentBasedToolStripMenuItem; private System.Windows.Forms.Label label73; private System.Windows.Forms.Label label74; private System.Windows.Forms.Button DVExplainButton; private System.Windows.Forms.PictureBox partyPokemonItemPictureBox6; private System.Windows.Forms.PictureBox partyPokemonItemPictureBox5; private System.Windows.Forms.PictureBox partyPokemonItemPictureBox4; private System.Windows.Forms.PictureBox partyPokemonItemPictureBox3; private System.Windows.Forms.PictureBox partyPokemonItemPictureBox2; private System.Windows.Forms.PictureBox partyPokemonItemPictureBox1; private System.Windows.Forms.ToolStripSeparator separator_afterFolderUnpackers; private System.Windows.Forms.ToolStripButton listBasedBatchRenameToolStripButton; private System.Windows.Forms.ToolStripButton contentBasedBatchRenameToolStripButton; private System.Windows.Forms.ToolStripButton unpackNARCtoFolderToolStripButton; private System.Windows.Forms.ToolStripButton buildNarcFromFolderToolStripButton; private System.Windows.Forms.ToolStripSeparator separator_afterNarcUtils; private System.Windows.Forms.ToolStripMenuItem listBuilderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem fromCEnumToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem fromFolderContentsToolStripMenuItem; private System.Windows.Forms.ToolStripButton folderBasedListBuilderToolStriButton; private System.Windows.Forms.ToolStripButton enumBasedListBuilderToolStripButton; private System.Windows.Forms.ToolStripSeparator separator_afterListUtils; private System.Windows.Forms.ToolStripMenuItem menuViewToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem essentialToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem simpleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem fullViewToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem nSBMDUtilityToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem texturizeNSBMDToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem untexturizeToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem extractNSBTXFromNSBMDToolStripMenuItem; private System.Windows.Forms.ListBox eventEditorWarpHeaderListBox; private System.Windows.Forms.Label eventEditorHeaderLocationNameLabel; private System.Windows.Forms.Button locateCurrentMatrixFile; private System.Windows.Forms.Button locateCurrentMapBin; private System.Windows.Forms.Button locateCurrentNsbtx; private System.Windows.Forms.Button locateCurrentAreaData; private System.Windows.Forms.Button locateCurrentEvFile; private System.Windows.Forms.Button locateCurrentTextArchive; private System.Windows.Forms.GroupBox groupBox31; private System.Windows.Forms.Label label75; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.Button selectedLineMoveUpButton; private System.Windows.Forms.Button selectedLineMoveDownButton; private System.Windows.Forms.Button daeExportButton; private System.Windows.Forms.GroupBox groupBox33; private System.Windows.Forms.NumericUpDown yRotDegBldUpDown; private System.Windows.Forms.NumericUpDown xRotDegBldUpDown; private System.Windows.Forms.NumericUpDown zRotDegBldUpDown; private System.Windows.Forms.NumericUpDown yRotBuildUpDown; private System.Windows.Forms.NumericUpDown xRotBuildUpDown; private System.Windows.Forms.NumericUpDown zRotBuildUpDown; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel37; private System.Windows.Forms.GroupBox groupBox35; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel38; private System.Windows.Forms.Label scalingLabel; private System.Windows.Forms.TrackBar scalingTrackBar; private System.Windows.Forms.Button repositionImageButton; private System.Windows.Forms.CheckBox invertDragCheckbox; private System.Windows.Forms.ToolStripMenuItem advancedStripMenuItem; private System.Windows.Forms.Button glbExportButton; private System.Windows.Forms.Button sortOWsByIDAscButton; private System.Windows.Forms.Button sortOWsByIDDescButton; private System.Windows.Forms.ComboBox partyGender6ComboBox; private System.Windows.Forms.ComboBox partyGender5ComboBox; private System.Windows.Forms.ComboBox partyGender4ComboBox; private System.Windows.Forms.ComboBox partyGender3ComboBox; private System.Windows.Forms.ComboBox partyGender2ComboBox; private System.Windows.Forms.ComboBox partyAbility1ComboBox; private System.Windows.Forms.ComboBox partyAbility6ComboBox; private System.Windows.Forms.ComboBox partyAbility5ComboBox; private System.Windows.Forms.ComboBox partyAbility4ComboBox; private System.Windows.Forms.ComboBox partyAbility3ComboBox; private System.Windows.Forms.ComboBox partyAbility2ComboBox; private System.Windows.Forms.ComboBox partyGender1ComboBox; private System.Windows.Forms.ComboBox partyForm1ComboBox; private System.Windows.Forms.ComboBox partyForm6ComboBox; private System.Windows.Forms.ComboBox partyForm5ComboBox; private System.Windows.Forms.ComboBox partyForm4ComboBox; private System.Windows.Forms.ComboBox partyForm3ComboBox; private System.Windows.Forms.ComboBox partyForm2ComboBox; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; private System.Windows.Forms.Button exportPropertiesButton; private System.Windows.Forms.Button replacePropertiesButton; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; private System.Windows.Forms.Button button3; private System.Windows.Forms.Button button4; private System.Windows.Forms.ToolStripMenuItem otherEditorsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem personalDataEditorToolStripMenuItem; private System.Windows.Forms.Button setSpawnPointButton; private System.Windows.Forms.Button saveMatrixButton; public System.Windows.Forms.ToolStripStatusLabel statusLabel; public System.Windows.Forms.ToolStripProgressBar toolStripProgressBar; public System.Windows.Forms.TabPage tabPageScriptEditor; public System.Windows.Forms.TabPage tabPageLevelScriptEditor; public Editors.ScriptEditor scriptEditor; public DSPRE.Editors.LevelScriptEditor levelScriptEditor; public System.Windows.Forms.TabControl mainTabControl; public System.Windows.Forms.NumericUpDown scriptFileUpDown; public System.Windows.Forms.TabPage tabPageEncountersEditor; public Editors.EncountersEditor encountersEditor; private System.Windows.Forms.Button scanUnusedCollisionTypesButton; private System.Windows.Forms.ToolStripMenuItem overlayEditorToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem spawnEditorToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem moveDataEditorToolStripMenuItem; } } ================================================ FILE: DS_Map/Main Window.cs ================================================ using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; using NarcAPI; using Tao.OpenGl; using LibNDSFormats.NSBMD; using LibNDSFormats.NSBTX; using DSPRE.Resources; using DSPRE.ROMFiles; using static DSPRE.RomInfo; using Images; using Ekona.Images; using Microsoft.WindowsAPICodePack.Dialogs; using ScintillaNET; using ScintillaNET.Utils; using System.Globalization; using static DSPRE.ROMFiles.Event; using NSMBe4.NSBMD; using static DSPRE.ROMFiles.SpeciesFile; using System.Reflection; using System.ComponentModel; using DSPRE.Editors; namespace DSPRE { public partial class MainProgram : Form { public MainProgram() { InitializeComponent(); EditorPanels.Initialize(this); Helpers.Initialize(this); SetMenuLayout(Properties.Settings.Default.menuLayout); //Read user settings for menu layout Text = "DS Pokémon Rom Editor Reloaded " + GetDSPREVersion() + " (Nømura, AdAstra/LD3005, Mixone)"; } #region Program Window #region Variables public bool iconON = false; /* Editors Setup */ public bool matrixEditorIsReady { get; private set; } = false; public bool mapEditorIsReady { get; private set; } = false; public bool nsbtxEditorIsReady { get; private set; } = false; public bool eventEditorIsReady { get; private set; } = false; public bool scriptEditorIsReady { get; private set; } = false; public bool textEditorIsReady { get; private set; } = false; public bool cameraEditorIsReady { get; private set; } = false; public bool trainerEditorIsReady { get; private set; } = false; public bool tableEditorIsReady { get; private set; } = false; /* ROM Information */ public static string gameCode; public static byte europeByte; RomInfo romInfo; public Dictionary eventToHeader = new Dictionary(); #endregion #region Subroutines private void MainProgram_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Are you sure you want to quit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { e.Cancel = true; } Properties.Settings.Default.Save(); } private string[] GetBuildingsList(bool interior) { List names = new List(); string path = romInfo.GetBuildingModelsDirPath(interior); int buildModelsCount = Directory.GetFiles(path).Length; for (int i = 0; i < buildModelsCount; i++) { using (DSUtils.EasyReader reader = new DSUtils.EasyReader(path + "\\" + i.ToString("D4"), 0x38)) { string nsbmdName = Encoding.UTF8.GetString(reader.ReadBytes(16)).TrimEnd(); names.Add(nsbmdName); } } return names.ToArray(); } private string[] GetTrainerNames() { List trainerList = new List(); /* Store all trainer names and classes */ TextArchive trainerClasses = new TextArchive(RomInfo.trainerClassMessageNumber); TextArchive trainerNames = new TextArchive(RomInfo.trainerNamesMessageNumber); string trainerPropertiesUnpackedDir = RomInfo.gameDirs[DirNames.trainerProperties].unpackedDir; int trainerCount = Directory.GetFiles(trainerPropertiesUnpackedDir).Length; for (int i = 0; i < trainerCount; i++) { int classMessageID = DSUtils.ReadFromFile(trainerPropertiesUnpackedDir + "\\" + i.ToString("D4"), startOffset: 1, 1)[0]; string currentTrainerName; if (i < trainerNames.messages.Count) { currentTrainerName = trainerNames.messages[i]; } else { currentTrainerName = TrainerFile.NAME_NOT_FOUND; } trainerList.Add("[" + i.ToString("D2") + "] " + trainerClasses.messages[classMessageID] + " " + currentTrainerName); } return trainerList.ToArray(); } private void PaintGameIcon(object sender, PaintEventArgs e) { if (iconON) { FileStream banner; try { banner = File.OpenRead(RomInfo.workDir + @"banner.bin"); } catch (FileNotFoundException) { MessageBox.Show("Couldn't load " + '"' + "banner.bin" + '"' + '.', "Open Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } BinaryReader readIcon = new BinaryReader(banner); #region Read Icon Palette readIcon.BaseStream.Position = 0x220; byte firstByte, secondByte; int palR, palG, palB; int palCounter = 0; int[] paletteArray = new int[48]; for (int i = 0; i < 16; i++) { palR = 0; palG = 0; palB = 0; secondByte = readIcon.ReadByte(); firstByte = readIcon.ReadByte(); if ((firstByte & (1 << 6)) != 0) palB |= (1 << 4); if ((firstByte & (1 << 5)) != 0) palB |= (1 << 3); if ((firstByte & (1 << 4)) != 0) palB |= (1 << 2); if ((firstByte & (1 << 3)) != 0) palB |= (1 << 1); if ((firstByte & (1 << 2)) != 0) palB |= (1 << 0); if ((firstByte & (1 << 1)) != 0) palG |= (1 << 4); if ((firstByte & (1 << 0)) != 0) palG |= (1 << 3); if ((secondByte & (1 << 7)) != 0) palG |= (1 << 2); if ((secondByte & (1 << 6)) != 0) palG |= (1 << 1); if ((secondByte & (1 << 5)) != 0) palG |= (1 << 0); if ((secondByte & (1 << 4)) != 0) palR |= (1 << 4); if ((secondByte & (1 << 3)) != 0) palR |= (1 << 3); if ((secondByte & (1 << 2)) != 0) palR |= (1 << 2); if ((secondByte & (1 << 1)) != 0) palR |= (1 << 1); if ((secondByte & (1 << 0)) != 0) palR |= (1 << 0); paletteArray[palCounter++] = palR * 8; paletteArray[palCounter++] = palG * 8; paletteArray[palCounter++] = palB * 8; } #endregion #region Read Icon Image readIcon.BaseStream.Position = 0x20; int iconY = 0; int xTile = 0; int yTile = 0; for (int o = 0; o < 4; o++) { for (int a = 0; a < 4; a++) { for (int i = 0; i < 8; i++) { int iconX = xTile; for (int counter = 0; counter < 4; counter++) { byte pixelByte = readIcon.ReadByte(); int pixelPalId = pixelByte & 0x0F; Brush icon = new SolidBrush(Color.FromArgb(255, paletteArray[pixelPalId * 3], paletteArray[pixelPalId * 3 + 1], paletteArray[pixelPalId * 3 + 2])); e.Graphics.FillRectangle(icon, iconX, i + yTile, 1, 1); iconX++; pixelPalId = (pixelByte & 0xF0) >> 4; icon = new SolidBrush(Color.FromArgb(255, paletteArray[pixelPalId * 3], paletteArray[pixelPalId * 3 + 1], paletteArray[pixelPalId * 3 + 2])); e.Graphics.FillRectangle(icon, iconX, i + yTile, 1, 1); iconX++; } iconY++; } iconY = 0; xTile += 8; } xTile = 0; yTile += 8; } #endregion readIcon.Close(); } } private void updateBuildingListComboBox(bool interior) { string[] bldList = GetBuildingsList(interior); buildIndexComboBox.Items.Clear(); for (int i = 0; i < bldList.Length; i++) { buildIndexComboBox.Items.Add("[" + i + "] " + bldList[i]); } toolStripProgressBar.Value++; } private void SetupTextEditor() { DSUtils.TryUnpackNarcs(new List { DirNames.textArchives }); Helpers.statusLabelMessage("Setting up Text Editor..."); Update(); selectTextFileComboBox.Items.Clear(); int textCount = romInfo.GetTextArchivesCount(); for (int i = 0; i < textCount; i++) { selectTextFileComboBox.Items.Add("Text Archive " + i); } Helpers.DisableHandlers(); hexRadiobutton.Checked = Properties.Settings.Default.textEditorPreferHex; Helpers.EnableHandlers(); selectTextFileComboBox.SelectedIndex = 0; Helpers.statusLabelMessage(); } private int UnpackRomCheckUserChoice() { // Check if extracted data for the ROM exists, and ask user if they want to load it. // Returns true if user aborted the process if (Directory.Exists(RomInfo.workDir)) { DialogResult d = MessageBox.Show("Extracted data of this ROM has been found.\n" + "Do you want to load it and unpack it?", "Data detected", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (d == DialogResult.Cancel) { return -1; //user wants to abort loading } else if (d == DialogResult.Yes) { return 0; //user wants to load data } else { DialogResult nd = MessageBox.Show("All data of this ROM will be re-extracted. Proceed?\n", "Existing data will be deleted", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (nd == DialogResult.No) { return -1; //user wants to abort loading } else { return 1; //user wants to re-extract data } } } else { return 2; //No data found } } private bool UnpackRom(string ndsFileName) { Helpers.statusLabelMessage("Unpacking ROM contents to " + RomInfo.workDir + " ..."); Update(); Directory.CreateDirectory(RomInfo.workDir); Process unpack = new Process(); unpack.StartInfo.FileName = @"Tools\ndstool.exe"; unpack.StartInfo.Arguments = "-x " + '"' + ndsFileName + '"' + " -9 " + '"' + RomInfo.arm9Path + '"' + " -7 " + '"' + RomInfo.workDir + "arm7.bin" + '"' + " -y9 " + '"' + RomInfo.workDir + "y9.bin" + '"' + " -y7 " + '"' + RomInfo.workDir + "y7.bin" + '"' + " -d " + '"' + RomInfo.workDir + "data" + '"' + " -y " + '"' + RomInfo.workDir + "overlay" + '"' + " -t " + '"' + RomInfo.workDir + "banner.bin" + '"' + " -h " + '"' + RomInfo.workDir + "header.bin" + '"'; Application.DoEvents(); unpack.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; unpack.StartInfo.CreateNoWindow = true; try { unpack.Start(); unpack.WaitForExit(); } catch (System.ComponentModel.Win32Exception) { MessageBox.Show("Failed to call ndstool.exe" + Environment.NewLine + "Make sure DSPRE's Tools folder is intact.", "Couldn't unpack ROM", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } return true; } #endregion public string GetDSPREVersion() { return "" + Assembly.GetExecutingAssembly().GetName().Version.Major + "." + Assembly.GetExecutingAssembly().GetName().Version.Minor + "." + Assembly.GetExecutingAssembly().GetName().Version.Build; } private void romToolBoxToolStripMenuItem_Click(object sender, EventArgs e) { using (PatchToolboxDialog window = new PatchToolboxDialog()) { window.ShowDialog(); if (PatchToolboxDialog.flag_standardizedItems && eventEditorIsReady) { selectEventComboBox_SelectedIndexChanged(null, null); UpdateItemComboBox(RomInfo.GetItemNames()); } if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied) { addHeaderBTN.Enabled = true; removeLastHeaderBTN.Enabled = true; } } } private void UpdateItemComboBox(string[] itemNames) { if (itemComboboxIsUpToDate) { return; } itemsSelectorHelpBtn.Visible = false; owItemComboBox.Size = new Size(new Point(owItemComboBox.Size.Width + 30, owItemComboBox.Size.Height)); owItemComboBox.Items.Clear(); owItemComboBox.Items.AddRange(itemNames); OWTypeChanged(null, null); itemComboboxIsUpToDate = true; } private void scriptCommandsDatabaseToolStripButton_Click(object sender, EventArgs e) { OpenCommandsDatabase(RomInfo.ScriptCommandNamesDict, RomInfo.ScriptCommandParametersDict, RomInfo.ScriptActionNamesDict, RomInfo.ScriptComparisonOperatorsDict); } private void nsbmdExportTexButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = MapFile.TexturedNSBMDFilter }; if (of.ShowDialog(this) != DialogResult.OK) { return; } byte[] modelFile = DSUtils.ReadFromFile(of.FileName); if (NSBUtils.CheckNSBMDHeader(modelFile) == NSBUtils.NSBMD_DOESNTHAVE_TEXTURE) { MessageBox.Show("This NSBMD file is untextured.", "No textures to extract", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //============================================================ MessageBox.Show("Choose where to save the textures.", "Choose destination path", MessageBoxButtons.OK, MessageBoxIcon.Information); SaveFileDialog texSf = new SaveFileDialog { Filter = "NSBTX File(*.nsbtx)|*.nsbtx", FileName = Path.GetFileNameWithoutExtension(of.FileName) }; if (texSf.ShowDialog() != DialogResult.OK) { return; } DSUtils.WriteToFile(texSf.FileName, NSBUtils.GetTexturesFromTexturedNSBMD(modelFile)); MessageBox.Show("The textures of " + of.FileName + " have been extracted and saved.", "Textures saved", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void nsbmdRemoveTexButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = MapFile.TexturedNSBMDFilter }; if (of.ShowDialog(this) != DialogResult.OK) { return; } byte[] modelFile = DSUtils.ReadFromFile(of.FileName); if (NSBUtils.CheckNSBMDHeader(modelFile) == NSBUtils.NSBMD_DOESNTHAVE_TEXTURE) { MessageBox.Show("This NSBMD file is already untextured.", "No textures to remove", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string extramsg = ""; DialogResult d = MessageBox.Show("Would you like to save the removed textures to a file?", "Save textures?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.Yes)) { MessageBox.Show("Choose where to save the textures.", "Choose destination path", MessageBoxButtons.OK, MessageBoxIcon.Information); SaveFileDialog texSf = new SaveFileDialog { Filter = "NSBTX File(*.nsbtx)|*.nsbtx", FileName = Path.GetFileNameWithoutExtension(of.FileName) }; if (texSf.ShowDialog() == DialogResult.OK) { DSUtils.WriteToFile(texSf.FileName, NSBUtils.GetTexturesFromTexturedNSBMD(modelFile)); extramsg = " exported and"; } } //============================================================ MessageBox.Show("Choose where to save the untextured model.", "Choose destination path", MessageBoxButtons.OK, MessageBoxIcon.Information); SaveFileDialog sf = new SaveFileDialog { Filter = "Untextured NSBMD File(*.nsbmd)|*.nsbmd", FileName = Path.GetFileNameWithoutExtension(of.FileName) + "_untextured" }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } DSUtils.WriteToFile(sf.FileName, NSBUtils.GetModelWithoutTextures(modelFile)); MessageBox.Show("Textures correctly" + extramsg + " removed!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void nsbmdAddTexButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = MapFile.UntexturedNSBMDFilter }; if (of.ShowDialog(this) != DialogResult.OK) return; byte[] modelFile = File.ReadAllBytes(of.FileName); if (NSBUtils.CheckNSBMDHeader(modelFile) == NSBUtils.NSBMD_HAS_TEXTURE) { DialogResult d = MessageBox.Show("This NSBMD file is already textured.\nDo you want to overwrite its textures?", "Textures found", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.No)) { return; } } MessageBox.Show("Select the new NSBTX texture file.", "Choose NSBTX", MessageBoxButtons.OK, MessageBoxIcon.Information); OpenFileDialog openNsbtx = new OpenFileDialog { Filter = "NSBTX File(*.nsbtx)|*.nsbtx" }; if (openNsbtx.ShowDialog(this) != DialogResult.OK) { return; } byte[] textureFile = File.ReadAllBytes(openNsbtx.FileName); //============================================================ MessageBox.Show("Choose where to save the new textured model.", "Choose destination path", MessageBoxButtons.OK, MessageBoxIcon.Information); string texturedPath = Path.GetFileNameWithoutExtension(of.FileName); if (texturedPath.Contains("_untextured")) { texturedPath = texturedPath.Substring(0, texturedPath.Length - "_untextured".Length); } SaveFileDialog sf = new SaveFileDialog { Filter = MapFile.TexturedNSBMDFilter, FileName = Path.GetFileNameWithoutExtension(of.FileName) + "_textured" }; if (sf.ShowDialog(this) != DialogResult.OK) return; DSUtils.WriteToFile(sf.FileName, NSBUtils.BuildNSBMDwithTextures(modelFile, textureFile), fmode: FileMode.Create); MessageBox.Show("Textures correctly written to NSBMD file.", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void OpenCommandsDatabase(Dictionary namesDict, Dictionary paramsDict, Dictionary actionsDict, Dictionary comparisonOPsDict) { Helpers.statusLabelMessage("Setting up Commands Database. Please wait..."); Update(); CommandsDatabase form = new CommandsDatabase(namesDict, paramsDict, actionsDict, comparisonOPsDict); form.Show(); Helpers.statusLabelMessage(); } private void headerSearchToolStripButton_Click(object sender, EventArgs e) { mainTabControl.SelectedIndex = 0; //Select Header Editor using (HeaderSearch h = new HeaderSearch(ref internalNames, headerListBox, statusLabel)) { h.ShowDialog(); } } private void advancedHeaderSearchToolStripMenuItem_Click(object sender, EventArgs e) { headerSearchToolStripButton_Click(null, null); } private void buildingEditorButton_Click(object sender, EventArgs e) { unpackBuildingEditorNARCs(); using (BuildingEditor editor = new BuildingEditor(romInfo)) editor.ShowDialog(); } private void unpackBuildingEditorNARCs(bool forceUnpack = false) { toolStripProgressBar.Visible = true; Helpers.statusLabelMessage("Attempting to unpack Building Editor NARCs... Please wait. This might take a while"); toolStripProgressBar.Visible = true; toolStripProgressBar.Maximum = 4; toolStripProgressBar.Value = 0; Update(); List toUnpack = new List { DirNames.exteriorBuildingModels, DirNames.buildingConfigFiles, DirNames.buildingTextures, DirNames.areaData }; if (forceUnpack) { DSUtils.ForceUnpackNarcs(toUnpack); if (RomInfo.gameFamily == GameFamilies.HGSS) { DSUtils.ForceUnpackNarcs(new List { DirNames.interiorBuildingModels });// Last = interior buildings dir } } else { DSUtils.TryUnpackNarcs(toUnpack); if (RomInfo.gameFamily == GameFamilies.HGSS) { DSUtils.TryUnpackNarcs(new List { DirNames.interiorBuildingModels }); } } toolStripProgressBar.Value = 0; toolStripProgressBar.Visible = false; Helpers.statusLabelMessage(); Update(); } private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { string message = "DS Pokémon ROM Editor Reloaded by AdAstra/LD3005" + Environment.NewLine + "version " + GetDSPREVersion() + Environment.NewLine + Environment.NewLine + "Based on Nømura's DS Pokémon ROM Editor 1.0.4." + Environment.NewLine + "Largely inspired by Markitus95's \"Spiky's DS Map Editor\" (SDSME), from which certain assets were also reused." + "Credits go to Markitus, Ark, Zark, Florian, and everyone else who deserves credit for SDSME." + Environment.NewLine + Environment.NewLine + "Special thanks to Trifindo, Mikelan98, Mixone, JackHack96, Pleonex and BagBoy." + Environment.NewLine + "Their help, research and expertise in many fields of NDS ROM Hacking made the development of this tool possible."; MessageBox.Show(message, "About...", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void loadRom_Click(object sender, EventArgs e) { OpenFileDialog openRom = new OpenFileDialog { Filter = DSUtils.NDSRomFilter }; // Select ROM if (openRom.ShowDialog(this) != DialogResult.OK) { return; } SetupROMLanguage(openRom.FileName); /* Set ROM gameVersion and language */ romInfo = new RomInfo(gameCode, openRom.FileName, useSuffix: true); Helpers.romInfo = new RomInfo(gameCode, openRom.FileName, useSuffix: true); if (string.IsNullOrWhiteSpace(RomInfo.romID) || string.IsNullOrWhiteSpace(RomInfo.fileName)) { return; } CheckROMLanguage(); int userchoice = UnpackRomCheckUserChoice(); switch (userchoice) { case -1: Helpers.statusLabelMessage("Loading aborted"); Update(); return; case 0: break; case 1: case 2: Application.DoEvents(); if (userchoice == 1) { Helpers.statusLabelMessage("Deleting old data..."); try { Directory.Delete(RomInfo.workDir, true); } catch (IOException) { MessageBox.Show("Concurrent access detected: \n" + RomInfo.workDir + "\nMake sure no other process is using the extracted ROM folder while DSPRE is running.", "Concurrent Access", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Update(); } try { if (!UnpackRom(openRom.FileName)) { Helpers.statusLabelError("ERROR"); languageLabel.Text = ""; versionLabel.Text = "Error"; return; } ARM9.EditSize(-12); } catch (IOException) { MessageBox.Show("Can't access temp directory: \n" + RomInfo.workDir + "\nThis might be a temporary issue.\nMake sure no other process is using it and try again.", "Open Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Helpers.statusLabelError("ERROR: Concurrent access to " + RomInfo.workDir); Update(); return; } break; } iconON = true; gameIcon.Refresh(); // Paint game icon Helpers.statusLabelMessage("Attempting to unpack NARCs from folder..."); Update(); //for (int i = 0; i < 128; i++) { // if (OverlayUtils.IsCompressed(i)) { // OverlayUtils.Decompress(i); // } //} ReadROMInitData(); } private void CheckROMLanguage() { versionLabel.Visible = true; languageLabel.Visible = true; versionLabel.Text = RomInfo.gameVersion.ToString() + " " + "[" + RomInfo.romID + "]"; languageLabel.Text = "Lang: " + RomInfo.gameLanguage; if (RomInfo.gameLanguage == GameLanguages.English) { if (europeByte == 0x0A) { languageLabel.Text += " [Europe]"; } else { languageLabel.Text += " [America]"; } } } private void readDataFromFolderButton_Click(object sender, EventArgs e) { CommonOpenFileDialog romFolder = new CommonOpenFileDialog { IsFolderPicker = true, Multiselect = false }; if (romFolder.ShowDialog() != CommonFileDialogResult.Ok) { return; } try { SetupROMLanguage(Directory.GetFiles(romFolder.FileName).First(x => x.Contains("header.bin"))); } catch (InvalidOperationException) { MessageBox.Show("This folder does not seem to contain any data from a NDS Pokémon ROM.", "No ROM Data", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } /* Set ROM gameVersion and language */ romInfo = new RomInfo(gameCode, romFolder.FileName, useSuffix: false); if (string.IsNullOrWhiteSpace(RomInfo.romID) || string.IsNullOrWhiteSpace(RomInfo.fileName)) { return; } CheckROMLanguage(); iconON = true; gameIcon.Refresh(); // Paint game icon ReadROMInitData(); } private void SetupROMLanguage(string headerPath) { using (DSUtils.EasyReader br = new DSUtils.EasyReader(headerPath, 0xC)) { gameCode = Encoding.UTF8.GetString(br.ReadBytes(4)); br.BaseStream.Position = 0x1E; europeByte = br.ReadByte(); } } private void ReadROMInitData() { if (ARM9.CheckCompressionMark()) { if (!RomInfo.gameFamily.Equals(GameFamilies.HGSS)) { MessageBox.Show("Unexpected compressed ARM9. It is advised that you double check the ARM9."); } if (!ARM9.Decompress(RomInfo.arm9Path)) { MessageBox.Show("ARM9 decompression failed. The program can't proceed.\nAborting.", "Error with ARM9 decompression", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } /* Setup essential editors */ SetupHeaderEditor(); eventOpenGlControl.InitializeContexts(); mapOpenGlControl.InitializeContexts(); mainTabControl.Show(); loadRomButton.Enabled = false; readDataFromFolderButton.Enabled = false; saveRomButton.Enabled = true; saveROMToolStripMenuItem.Enabled = true; openROMToolStripMenuItem.Enabled = false; openFolderToolStripMenuItem.Enabled = false; unpackAllButton.Enabled = true; updateMapNarcsButton.Enabled = true; buildingEditorButton.Enabled = true; wildEditorButton.Enabled = true; romToolboxToolStripButton.Enabled = true; romToolboxToolStripMenuItem.Enabled = true; headerSearchToolStripButton.Enabled = true; headerSearchToolStripMenuItem.Enabled = true; spawnEditorToolStripMenuItem.Enabled = true; otherEditorsToolStripMenuItem.Enabled = true; scriptCommandsButton.Enabled = true; if (!RomInfo.gameFamily.Equals(GameFamilies.HGSS)) { mainTabControl.TabPages.Remove(tabPageEncountersEditor); } else { overlayEditorToolStripMenuItem.Enabled = true; } Helpers.statusLabelMessage(); this.Text += " - " + RomInfo.fileName; } private void saveRom_Click(object sender, EventArgs e) { SaveFileDialog saveRom = new SaveFileDialog { Filter = DSUtils.NDSRomFilter }; if (saveRom.ShowDialog(this) != DialogResult.OK) { return; } Helpers.statusLabelMessage("Repacking NARCS..."); Update(); // Repack NARCs foreach (KeyValuePair kvp in RomInfo.gameDirs) { DirectoryInfo di = new DirectoryInfo(kvp.Value.unpackedDir); if (di.Exists) { Narc.FromFolder(kvp.Value.unpackedDir).Save(kvp.Value.packedDir); // Make new NARC from folder } } if (ARM9.CheckCompressionMark()) { Helpers.statusLabelMessage("Awaiting user response..."); DialogResult d = MessageBox.Show("The ARM9 file of this ROM is currently uncompressed, but marked as compressed.\n" + "This will prevent your ROM from working on native hardware.\n\n" + "Do you want to mark the ARM9 as uncompressed?", "ARM9 compression mismatch detected", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { ARM9.WriteBytes(new byte[4] { 0, 0, 0, 0 }, (uint)(RomInfo.gameFamily == GameFamilies.DP ? 0xB7C : 0xBB4)); } } Helpers.statusLabelMessage("Repacking ROM..."); if (OverlayUtils.OverlayTable.IsDefaultCompressed(1)) { if (PatchToolboxDialog.overlay1MustBeRestoredFromBackup) { OverlayUtils.RestoreFromCompressedBackup(1, eventEditorIsReady); } else { if (!OverlayUtils.IsCompressed(1)) { OverlayUtils.Compress(1); } } } if (OverlayUtils.OverlayTable.IsDefaultCompressed(RomInfo.initialMoneyOverlayNumber)) { if (!OverlayUtils.IsCompressed(RomInfo.initialMoneyOverlayNumber)) { OverlayUtils.Compress(RomInfo.initialMoneyOverlayNumber); } } Update(); //for (int i = 0; i < 128; i++) { // if (!OverlayUtils.IsCompressed(i)) { // OverlayUtils.Compress(i); // } //} DSUtils.RepackROM(saveRom.FileName); if (RomInfo.gameFamily != GameFamilies.DP && RomInfo.gameFamily != GameFamilies.Plat) { if (eventEditorIsReady) { if (OverlayUtils.IsCompressed(1)) { OverlayUtils.Decompress(1); } } } Properties.Settings.Default.Save(); Helpers.statusLabelMessage(); } private void unpackAllButton_Click(object sender, EventArgs e) { Helpers.statusLabelMessage("Awaiting user response..."); DialogResult d = MessageBox.Show("Do you wish to unpack all extracted NARCS?\n" + "This operation might be long and can't be interrupted.\n\n" + "Any unsaved changes made to the ROM in this session will be lost." + "\nProceed?", "About to unpack all NARCS", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { toolStripProgressBar.Maximum = RomInfo.gameDirs.Count; toolStripProgressBar.Visible = true; toolStripProgressBar.Value = 0; Helpers.statusLabelMessage("Attempting to unpack all NARCs... Be patient. This might take a while..."); Update(); DSUtils.ForceUnpackNarcs(Enum.GetValues(typeof(DirNames)).Cast().ToList()); MessageBox.Show("Operation completed.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); toolStripProgressBar.Value = 0; toolStripProgressBar.Visible = false; SetupHeaderEditor(); SetupMatrixEditor(); SetupMapEditor(); SetupNSBTXEditor(); SetupEventEditor(); scriptEditor.SetupScriptEditor(this); SetupTextEditor(); SetupTrainerEditor(); Helpers.statusLabelMessage(); Update(); } } private void updateMapNarcsButton_Click(object sender, EventArgs e) { Helpers.statusLabelMessage("Awaiting user response..."); DialogResult d = MessageBox.Show("Do you wish to unpack all NARC files necessary for the Building Editor ?\n" + "This operation might be long and can't be interrupted.\n\n" + "Any unsaved changes made to building models and textures in this session will be lost." + "\nProceed?", "About to unpack Building NARCs", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { unpackBuildingEditorNARCs(forceUnpack: true); MessageBox.Show("Operation completed.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); Helpers.statusLabelMessage(); if (mapEditorIsReady) { updateBuildingListComboBox(interiorbldRadioButton.Checked); } Update(); } } private void diamondAndPearlToolStripMenuItem_Click(object sender, EventArgs e) { OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase(GameFamilies.DP), RomInfo.BuildCommandParametersDatabase(GameFamilies.DP), RomInfo.BuildActionNamesDatabase(GameFamilies.DP), RomInfo.BuildComparisonOperatorsDatabase(GameFamilies.DP)); } private void platinumToolStripMenuItem_Click(object sender, EventArgs e) { OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase(GameFamilies.Plat), RomInfo.BuildCommandParametersDatabase(GameFamilies.Plat), RomInfo.BuildActionNamesDatabase(GameFamilies.Plat), RomInfo.BuildComparisonOperatorsDatabase(GameFamilies.Plat)); } private void heartGoldAndSoulSilverToolStripMenuItem_Click(object sender, EventArgs e) { OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase(GameFamilies.HGSS), RomInfo.BuildCommandParametersDatabase(GameFamilies.HGSS), RomInfo.BuildActionNamesDatabase(GameFamilies.HGSS), RomInfo.BuildComparisonOperatorsDatabase(GameFamilies.HGSS)); } private void mainTabControl_SelectedIndexChanged(object sender, EventArgs e) { if (mainTabControl.SelectedTab == headerEditorTabPage) { // } else if (mainTabControl.SelectedTab == matrixEditorTabPage) { if (!matrixEditorIsReady) { SetupMatrixEditor(); matrixEditorIsReady = true; } } else if (mainTabControl.SelectedTab == mapEditorTabPage) { if (!mapEditorIsReady) { SetupMapEditor(); mapOpenGlControl.MouseWheel += new MouseEventHandler(mapOpenGlControl_MouseWheel); mapEditorIsReady = true; } } else if (mainTabControl.SelectedTab == nsbtxEditorTabPage) { if (!nsbtxEditorIsReady) { SetupNSBTXEditor(); nsbtxEditorIsReady = true; } } else if (mainTabControl.SelectedTab == eventEditorTabPage) { if (!eventEditorIsReady) { SetupEventEditor(); eventEditorIsReady = true; } } else if (mainTabControl.SelectedTab == textEditorTabPage) { if (!textEditorIsReady) { SetupTextEditor(); textEditorIsReady = true; } } else if (mainTabControl.SelectedTab == cameraEditorTabPage) { if (!cameraEditorIsReady) { SetupCameraEditor(); cameraEditorIsReady = true; } } else if (mainTabControl.SelectedTab == trainerEditorTabPage) { if (!trainerEditorIsReady) { SetupTrainerEditor(); trainerEditorIsReady = true; } } else if (mainTabControl.SelectedTab == tableEditorTabPage) { if (!tableEditorIsReady) { resetHeaderSearch(); SetupConditionalMusicTable(); SetupBattleEffectsTables(); tableEditorIsReady = true; } } else if (mainTabControl.SelectedTab == EditorPanels.scriptEditorTabPage) { scriptEditor.SetupScriptEditor(this); } else if (mainTabControl.SelectedTab == EditorPanels.levelScriptEditorTabPage) { levelScriptEditor.SetUpLevelScriptEditor(this); } else if (mainTabControl.SelectedTab == EditorPanels.tabPageEncountersEditor) { encountersEditor.SetupEncountersEditor(); } } private void tabPageScriptEditor_Enter(object sender, EventArgs e) { scriptEditor.SetupScriptEditor(this); } private void tabPageLevelScriptEditor_Enter(object sender, EventArgs e) { levelScriptEditor.SetUpLevelScriptEditor(this); } private void tabPageEncountersEditor_Enter(object sender, EventArgs e) { encountersEditor.SetupEncountersEditor(); } private void spawnEditorToolStripButton_Click(object sender, EventArgs e) { if (!matrixEditorIsReady) { SetupMatrixEditor(); } using (SpawnEditor ed = new SpawnEditor(headerListBoxNames)) { ed.ShowDialog(); } } private void spawnEditorToolStripMenuItem_Click(object sender, EventArgs e) { spawnEditorToolStripButton_Click(null, null); } private void wildEditorButton_Click(object sender, EventArgs e) { openWildEditor(loadCurrent: false); } private void openWildEditorWithIdButtonClick(object sender, EventArgs e) { openWildEditor(loadCurrent: true); } private void openWildEditor(bool loadCurrent) { Helpers.statusLabelMessage("Attempting to extract Wild Encounters NARC..."); Update(); DSUtils.TryUnpackNarcs(new List() { DirNames.encounters, DirNames.monIcons }); Helpers.statusLabelMessage("Passing control to Wild Pokémon Editor..."); Update(); int encToOpen = loadCurrent ? (int)wildPokeUpDown.Value : 0; string wildPokeUnpackedPath = gameDirs[DirNames.encounters].unpackedDir; switch (RomInfo.gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: using (WildEditorDPPt editor = new WildEditorDPPt(wildPokeUnpackedPath, RomInfo.GetPokemonNames(), encToOpen, internalNames.Count)) editor.ShowDialog(); break; default: using (WildEditorHGSS editor = new WildEditorHGSS(wildPokeUnpackedPath, RomInfo.GetPokemonNames(), encToOpen, internalNames.Count)) editor.ShowDialog(); break; } Helpers.statusLabelMessage(); } #endregion #region Header Editor #region Variables public MapHeader currentHeader; public List internalNames; public List headerListBoxNames; #endregion private void SetupHeaderEditor() { /* Extract essential NARCs sub-archives*/ Helpers.statusLabelMessage("Attempting to unpack Header Editor NARCs... Please wait."); Update(); DSUtils.TryUnpackNarcs(new List { DirNames.synthOverlay, DirNames.textArchives, DirNames.dynamicHeaders }); Helpers.statusLabelMessage("Reading internal names... Please wait."); Update(); internalNames = new List(); headerListBoxNames = new List(); int headerCount; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { addHeaderBTN.Enabled = true; removeLastHeaderBTN.Enabled = true; headerCount = Directory.GetFiles(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir).Length; } else { headerCount = RomInfo.GetHeaderCount(); } /* Read Header internal names */ try { headerListBoxNames = Helpers.getHeaderListBoxNames(); internalNames = Helpers.getInternalNames(); headerListBox.Items.Clear(); headerListBox.Items.AddRange(headerListBoxNames.ToArray()); } catch (FileNotFoundException) { MessageBox.Show(RomInfo.internalNamesPath + " doesn't exist.", "Couldn't read internal names", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } /*Add list of options to each control */ currentTextArchive = new TextArchive(RomInfo.locationNamesTextNumber); ReloadHeaderEditorLocationsList(currentTextArchive.messages); areaIconComboBox.Items.Clear(); cameraComboBox.Items.Clear(); areaSettingsComboBox.Items.Clear(); musicDayComboBox.Items.Clear(); musicNightComboBox.Items.Clear(); weatherComboBox.Items.Clear(); switch (RomInfo.gameFamily) { case GameFamilies.DP: areaIconComboBox.Enabled = false; areaIconPictureBox.Image = (Image)Properties.Resources.ResourceManager.GetObject("dpareaicon"); cameraComboBox.Items.AddRange(PokeDatabase.CameraAngles.DPPtCameraDict.Values.ToArray()); musicDayComboBox.Items.AddRange(PokeDatabase.MusicDB.DPMusicDict.Values.ToArray()); musicNightComboBox.Items.AddRange(PokeDatabase.MusicDB.DPMusicDict.Values.ToArray()); areaSettingsComboBox.Items.AddRange(PokeDatabase.HeaderTypes.DPHeaderTypes); weatherComboBox.Items.AddRange(PokeDatabase.Weather.DPWeatherDict.Values.ToArray()); wildPokeUpDown.Maximum = 65535; battleBackgroundLabel.Location = new Point(battleBackgroundLabel.Location.X - 25, battleBackgroundLabel.Location.Y - 8); battleBackgroundUpDown.Location = new Point(battleBackgroundUpDown.Location.X - 25, battleBackgroundUpDown.Location.Y - 8); break; case GameFamilies.Plat: areaIconComboBox.Items.AddRange(PokeDatabase.Area.PtAreaIconValues); cameraComboBox.Items.AddRange(PokeDatabase.CameraAngles.DPPtCameraDict.Values.ToArray()); musicDayComboBox.Items.AddRange(PokeDatabase.MusicDB.PtMusicDict.Values.ToArray()); musicNightComboBox.Items.AddRange(PokeDatabase.MusicDB.PtMusicDict.Values.ToArray()); areaSettingsComboBox.Items.AddRange(PokeDatabase.HeaderTypes.PtHGSSHeaderTypes); weatherComboBox.Items.AddRange(PokeDatabase.Weather.PtWeatherDict.Values.ToArray()); wildPokeUpDown.Maximum = 65535; battleBackgroundLabel.Location = new Point(battleBackgroundLabel.Location.X - 25, battleBackgroundLabel.Location.Y - 8); battleBackgroundUpDown.Location = new Point(battleBackgroundUpDown.Location.X - 25, battleBackgroundUpDown.Location.Y - 8); break; default: areaIconComboBox.Items.AddRange(PokeDatabase.Area.HGSSAreaIconsDict.Values.ToArray()); cameraComboBox.Items.AddRange(PokeDatabase.CameraAngles.HGSSCameraDict.Values.ToArray()); areaSettingsComboBox.Items.AddRange(PokeDatabase.HeaderTypes.PtHGSSHeaderTypes); musicDayComboBox.Items.AddRange(PokeDatabase.MusicDB.HGSSMusicDict.Values.ToArray()); musicNightComboBox.Items.AddRange(PokeDatabase.MusicDB.HGSSMusicDict.Values.ToArray()); weatherComboBox.Items.AddRange(PokeDatabase.Weather.HGSSWeatherDict.Values.ToArray()); wildPokeUpDown.Maximum = 255; followModeComboBox.Visible = true; followModeLabel.Visible = true; johtoRadioButton.Visible = true; kantoRadioButton.Visible = true; flag6CheckBox.Visible = true; flag5CheckBox.Visible = true; flag4CheckBox.Visible = true; worldmapCoordsGroupBox.Enabled = true; break; } if (headerListBox.Items.Count > 0) { headerListBox.SelectedIndex = 0; } Helpers.statusLabelMessage(); } private void addHeaderBTN_Click(object sender, EventArgs e) { // Add new file in the dynamic headers directory string sourcePath = RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + "0000"; string destPath = RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + RomInfo.GetHeaderCount().ToString("D4"); File.Copy(sourcePath, destPath); // Add row to internal names table const string newmap = "NEWMAP"; DSUtils.WriteToFile(RomInfo.internalNamesPath, StringToInternalName(newmap), (uint)RomInfo.GetHeaderCount() * RomInfo.internalNameLength); // Update headers ListBox and internal names list headerListBox.Items.Add(headerListBox.Items.Count + MapHeader.nameSeparator + " " + newmap); headerListBoxNames.Add(headerListBox.Items.Count + MapHeader.nameSeparator + " " + newmap); internalNames.Add(newmap); // Select new header headerListBox.SelectedIndex = headerListBox.Items.Count - 1; } private void removeLastHeaderBTN_Click(object sender, EventArgs e) { /* Check if currently selected file is the last one, and in that case select the one before it */ int lastIndex = headerListBox.Items.Count - 1; if (lastIndex > 0) { //there are at least 2 elements if (headerListBox.SelectedIndex == lastIndex) { headerListBox.SelectedIndex--; } /* Physically delete last header file */ File.Delete(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + lastIndex.ToString("D4")); using (DSUtils.EasyWriter ew = new DSUtils.EasyWriter(RomInfo.internalNamesPath)) { ew.EditSize(-internalNameLength); //Delete internalNameLength amount of bytes from file end } /* Remove item from collections */ headerListBox.Items.RemoveAt(lastIndex); internalNames.RemoveAt(lastIndex); headerListBoxNames.RemoveAt(lastIndex); } else { MessageBox.Show("You must have at least one header!", "Can't delete last header", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void areaDataUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentHeader.areaDataID = (byte)areaDataUpDown.Value; } private void internalNameBox_TextChanged(object sender, EventArgs e) { if (internalNameBox.Text.Length > 13) { internalNameLenLabel.ForeColor = Color.FromArgb(255, 0, 0); } else if (internalNameBox.Text.Length > 7) { internalNameLenLabel.ForeColor = Color.FromArgb(190, 190, 0); } else { internalNameLenLabel.ForeColor = Color.FromArgb(0, 180, 0); } internalNameLenLabel.Text = "[ " + (internalNameBox.Text.Length) + " ]"; } private void areaIconComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } string imageName; switch (RomInfo.gameFamily) { case GameFamilies.DP: break; case GameFamilies.Plat: ((HeaderPt)currentHeader).areaIcon = (byte)areaIconComboBox.SelectedIndex; imageName = "areaicon0" + areaIconComboBox.SelectedIndex.ToString(); areaIconPictureBox.Image = (Image)Properties.Resources.ResourceManager.GetObject(imageName); break; default: ((HeaderHGSS)currentHeader).areaIcon = (byte)areaIconComboBox.SelectedIndex; imageName = PokeDatabase.System.AreaPics.hgssAreaPicDict[areaIconComboBox.SelectedIndex]; areaIconPictureBox.Image = (Image)Properties.Resources.ResourceManager.GetObject(imageName); break; } } private void eventFileUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentHeader.eventFileID = (ushort)eventFileUpDown.Value; } private void battleBackgroundUpDown_ValueChanged(object sender, EventArgs e) { currentHeader.battleBackground = (byte)battleBackgroundUpDown.Value; } private void followModeComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } if (RomInfo.gameFamily == GameFamilies.HGSS) { HeaderHGSS currentHeaderHGSS = (HeaderHGSS)currentHeader; currentHeaderHGSS.followMode = (byte)followModeComboBox.SelectedIndex; } } private void kantoRadioButton_CheckedChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } if (RomInfo.gameFamily == GameFamilies.HGSS) { HeaderHGSS currentHeaderHGSS = (HeaderHGSS)currentHeader; currentHeaderHGSS.kantoFlag = kantoRadioButton.Checked; } } private void headerFlagsCheckBoxes_CheckedChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } byte flagVal = 0; if (flag0CheckBox.Checked) flagVal += (byte)Math.Pow(2, 0); if (flag1CheckBox.Checked) flagVal += (byte)Math.Pow(2, 1); if (flag2CheckBox.Checked) flagVal += (byte)Math.Pow(2, 2); if (flag3CheckBox.Checked) flagVal += (byte)Math.Pow(2, 3); if (RomInfo.gameFamily == GameFamilies.HGSS) { if (flag4CheckBox.Checked) flagVal += (byte)Math.Pow(2, 4); if (flag5CheckBox.Checked) flagVal += (byte)Math.Pow(2, 5); if (flag6CheckBox.Checked) flagVal += (byte)Math.Pow(2, 6); } currentHeader.flags = flagVal; } private void headerListBox_SelectedValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || headerListBox.SelectedIndex < 0) { return; } /* Obtain current header ID from listbox*/ if (!ushort.TryParse(headerListBox.SelectedItem.ToString().Substring(0, 3), out ushort headerNumber)) { headerListBox.SelectedIndex = -1; return; } /* Check if dynamic headers patch has been applied, and load header from arm9 or a/0/5/0 accordingly */ if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { currentHeader = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + headerNumber.ToString("D4"), headerNumber, 0); } else { currentHeader = MapHeader.LoadFromARM9(headerNumber); } RefreshHeaderEditorFields(); } private void RefreshHeaderEditorFields() { /* Setup controls for common fields across headers */ if (currentHeader == null) { return; } internalNameBox.Text = internalNames[currentHeader.ID]; matrixUpDown.Value = currentHeader.matrixID; areaDataUpDown.Value = currentHeader.areaDataID; scriptFileUpDown.Value = currentHeader.scriptFileID; levelScriptUpDown.Value = currentHeader.levelScriptID; eventFileUpDown.Value = currentHeader.eventFileID; textFileUpDown.Value = currentHeader.textArchiveID; wildPokeUpDown.Value = currentHeader.wildPokemon; weatherUpDown.Value = currentHeader.weatherID; cameraUpDown.Value = currentHeader.cameraAngleID; battleBackgroundUpDown.Value = currentHeader.battleBackground; areaSettingsComboBox.SelectedIndex = areaSettingsComboBox.FindString("[" + $"{currentHeader.locationSpecifier:D2}"); openWildEditorWithIdButton.Enabled = currentHeader.wildPokemon != RomInfo.nullEncounterID; /* Setup controls for fields with version-specific differences */ try { switch (RomInfo.gameFamily) { case GameFamilies.DP: { HeaderDP h = (HeaderDP)currentHeader; locationNameComboBox.SelectedIndex = h.locationName; musicDayUpDown.Value = h.musicDayID; musicNightUpDown.Value = h.musicNightID; break; } case GameFamilies.Plat: { HeaderPt h = (HeaderPt)currentHeader; areaIconComboBox.SelectedIndex = h.areaIcon; locationNameComboBox.SelectedIndex = h.locationName; musicDayUpDown.Value = h.musicDayID; musicNightUpDown.Value = h.musicNightID; break; } default: { HeaderHGSS h = (HeaderHGSS)currentHeader; areaIconComboBox.SelectedIndex = h.areaIcon; locationNameComboBox.SelectedIndex = h.locationName; musicDayUpDown.Value = h.musicDayID; musicNightUpDown.Value = h.musicNightID; worldmapXCoordUpDown.Value = h.worldmapX; worldmapYCoordUpDown.Value = h.worldmapY; followModeComboBox.SelectedIndex = h.followMode; kantoRadioButton.Checked = h.kantoFlag; johtoRadioButton.Checked = !h.kantoFlag; break; } } } catch (ArgumentOutOfRangeException) { MessageBox.Show("This header contains an irregular/unsupported field.", "Error loading header file", MessageBoxButtons.OK, MessageBoxIcon.Error); } RefreshFlags(); updateWeatherPicAndComboBox(); updateCameraPicAndComboBox(); } private void RefreshFlags() { BitArray ba = new BitArray(new byte[] { currentHeader.flags }); flag0CheckBox.Checked = ba[0]; flag1CheckBox.Checked = ba[1]; flag2CheckBox.Checked = ba[2]; flag3CheckBox.Checked = ba[3]; if (RomInfo.gameFamily == GameFamilies.HGSS) { flag4CheckBox.Checked = ba[4]; flag5CheckBox.Checked = ba[5]; flag6CheckBox.Checked = ba[6]; } } private void eventsTabControl_SelectedIndexChanged(object sender, EventArgs e) { if (eventsTabControl.SelectedTab == signsTabPage) { int spawnablesCount = spawnablesListBox.Items.Count; if (spawnablesCount > 0) { spawnablesListBox.SelectedIndex = 0; } } else if (eventsTabControl.SelectedTab == overworldsTabPage) { int overworldsCount = overworldsListBox.Items.Count; int selected = 0; if (overworldsCount > 0) { if (selectedEvent is Overworld) { int owId = (selectedEvent as Overworld).owID; if (owId < overworldsCount) { selected = owId; } } overworldsListBox.SelectedIndex = selected; } } else if (eventsTabControl.SelectedTab == warpsTabPage) { int warpsCount = warpsListBox.Items.Count; if (warpsCount > 0) { warpsListBox.SelectedIndex = 0; } } else if (eventsTabControl.SelectedTab == triggersTabPage) { int triggersCount = triggersListBox.Items.Count; if (triggersCount > 0) { triggersListBox.SelectedIndex = 0; } } } private void headerListBox_Leave(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } headerListBox.Refresh(); } private void levelScriptUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentHeader.levelScriptID = (ushort)levelScriptUpDown.Value; } private void mapNameComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } switch (RomInfo.gameFamily) { case GameFamilies.DP: ((HeaderDP)currentHeader).locationName = (ushort)locationNameComboBox.SelectedIndex; break; case GameFamilies.Plat: ((HeaderPt)currentHeader).locationName = (byte)locationNameComboBox.SelectedIndex; break; default: ((HeaderHGSS)currentHeader).locationName = (byte)locationNameComboBox.SelectedIndex; break; } } private void matrixUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentHeader.matrixID = (ushort)matrixUpDown.Value; } private void openScriptButton_Click(object sender, EventArgs e) { EditorPanels.scriptEditor.OpenScriptEditor(this, (int)scriptFileUpDown.Value); } private void openLevelScriptButton_Click(object sender, EventArgs e) { EditorPanels.levelScriptEditor.OpenLevelScriptEditor(this, (int)levelScriptUpDown.Value); } private void musicDayComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } switch (RomInfo.gameFamily) { case GameFamilies.DP: currentHeader.musicDayID = (ushort)(musicDayUpDown.Value = PokeDatabase.MusicDB.DPMusicDict.Keys.ElementAt(musicDayComboBox.SelectedIndex)); break; case GameFamilies.Plat: currentHeader.musicDayID = (ushort)(musicDayUpDown.Value = PokeDatabase.MusicDB.PtMusicDict.Keys.ElementAt(musicDayComboBox.SelectedIndex)); break; default: currentHeader.musicDayID = (ushort)(musicDayUpDown.Value = PokeDatabase.MusicDB.HGSSMusicDict.Keys.ElementAt(musicDayComboBox.SelectedIndex)); break; } } private void musicNightComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } switch (RomInfo.gameFamily) { case GameFamilies.DP: currentHeader.musicNightID = (ushort)(musicNightUpDown.Value = PokeDatabase.MusicDB.DPMusicDict.Keys.ElementAt(musicNightComboBox.SelectedIndex)); break; case GameFamilies.Plat: currentHeader.musicNightID = (ushort)(musicNightUpDown.Value = PokeDatabase.MusicDB.PtMusicDict.Keys.ElementAt(musicNightComboBox.SelectedIndex)); break; default: currentHeader.musicNightID = (ushort)(musicNightUpDown.Value = PokeDatabase.MusicDB.HGSSMusicDict.Keys.ElementAt(musicNightComboBox.SelectedIndex)); break; } } private void musicDayUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); ushort updValue = (ushort)((NumericUpDown)sender).Value; currentHeader.musicDayID = updValue; try { switch (RomInfo.gameFamily) { case GameFamilies.DP: musicDayComboBox.SelectedItem = PokeDatabase.MusicDB.DPMusicDict[updValue]; break; case GameFamilies.Plat: musicDayComboBox.SelectedItem = PokeDatabase.MusicDB.PtMusicDict[updValue]; break; default: musicDayComboBox.SelectedItem = PokeDatabase.MusicDB.HGSSMusicDict[updValue]; break; } } catch (KeyNotFoundException) { musicDayComboBox.SelectedItem = null; } Helpers.EnableHandlers(); } private void musicNightUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); ushort updValue = (ushort)((NumericUpDown)sender).Value; currentHeader.musicNightID = updValue; try { switch (RomInfo.gameFamily) { case GameFamilies.DP: musicNightComboBox.SelectedItem = PokeDatabase.MusicDB.DPMusicDict[updValue]; break; case GameFamilies.Plat: musicNightComboBox.SelectedItem = PokeDatabase.MusicDB.PtMusicDict[updValue]; break; default: musicNightComboBox.SelectedItem = PokeDatabase.MusicDB.HGSSMusicDict[updValue]; break; } } catch (KeyNotFoundException) { musicNightComboBox.SelectedItem = null; } Helpers.EnableHandlers(); } private void worldmapXCoordUpDown_ValueChanged(object sender, EventArgs e) { ((HeaderHGSS)currentHeader).worldmapX = (byte)worldmapXCoordUpDown.Value; } private void worldmapYCoordUpDown_ValueChanged(object sender, EventArgs e) { ((HeaderHGSS)currentHeader).worldmapY = (byte)worldmapYCoordUpDown.Value; } private void updateWeatherPicAndComboBox() { if (Helpers.HandlersDisabled) { return; } /* Update Weather Combobox*/ Helpers.DisableHandlers(); try { switch (RomInfo.gameFamily) { case GameFamilies.DP: weatherComboBox.SelectedItem = PokeDatabase.Weather.DPWeatherDict[currentHeader.weatherID]; break; case GameFamilies.Plat: weatherComboBox.SelectedItem = PokeDatabase.Weather.PtWeatherDict[currentHeader.weatherID]; break; default: weatherComboBox.SelectedItem = PokeDatabase.Weather.HGSSWeatherDict[currentHeader.weatherID]; break; } } catch (KeyNotFoundException) { weatherComboBox.SelectedItem = null; } Helpers.EnableHandlers(); /* Update Weather Picture */ try { Dictionary dict; switch (RomInfo.gameFamily) { case GameFamilies.DP: dict = PokeDatabase.System.WeatherPics.dpWeatherImageDict; break; case GameFamilies.Plat: dict = PokeDatabase.System.WeatherPics.ptWeatherImageDict; break; default: dict = PokeDatabase.System.WeatherPics.hgssweatherImageDict; break; } bool found = false; foreach (KeyValuePair dictEntry in dict) { if (Array.IndexOf(dictEntry.Key, (byte)weatherUpDown.Value) >= 0) { weatherPictureBox.Image = (Image)Properties.Resources.ResourceManager.GetObject(dictEntry.Value); found = true; break; } } if (!found) throw new KeyNotFoundException(); } catch (KeyNotFoundException) { weatherPictureBox.Image = null; } } private void updateCameraPicAndComboBox() { if (Helpers.HandlersDisabled) { return; } /* Update Camera Combobox*/ Helpers.DisableHandlers(); try { switch (RomInfo.gameFamily) { case GameFamilies.DP: cameraComboBox.SelectedItem = PokeDatabase.CameraAngles.DPPtCameraDict[currentHeader.cameraAngleID]; break; case GameFamilies.Plat: cameraComboBox.SelectedItem = PokeDatabase.CameraAngles.DPPtCameraDict[currentHeader.cameraAngleID]; break; default: cameraComboBox.SelectedItem = PokeDatabase.CameraAngles.HGSSCameraDict[currentHeader.cameraAngleID]; break; } } catch (KeyNotFoundException) { cameraComboBox.SelectedItem = null; } Helpers.EnableHandlers(); /* Update Camera Picture */ string imageName; try { switch (RomInfo.gameFamily) { case GameFamilies.DP: currentHeader.cameraAngleID = (byte)cameraComboBox.SelectedIndex; imageName = "dpcamera" + cameraUpDown.Value.ToString(); break; case GameFamilies.Plat: currentHeader.cameraAngleID = (byte)cameraComboBox.SelectedIndex; imageName = "ptcamera" + cameraUpDown.Value.ToString(); break; default: currentHeader.cameraAngleID = (byte)cameraComboBox.SelectedIndex; imageName = "hgsscamera" + cameraUpDown.Value.ToString(); break; } cameraPictureBox.Image = (Image)Properties.Resources.ResourceManager.GetObject(imageName); } catch (NullReferenceException) { MessageBox.Show("The current header uses an unrecognized camera.\n", "Unknown camera settings", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void weatherComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || weatherComboBox.SelectedIndex < 0) { return; } switch (RomInfo.gameFamily) { case GameFamilies.DP: weatherUpDown.Value = PokeDatabase.Weather.DPWeatherDict.Keys.ElementAt(weatherComboBox.SelectedIndex); break; case GameFamilies.Plat: weatherUpDown.Value = PokeDatabase.Weather.PtWeatherDict.Keys.ElementAt(weatherComboBox.SelectedIndex); break; default: weatherUpDown.Value = PokeDatabase.Weather.HGSSWeatherDict.Keys.ElementAt(weatherComboBox.SelectedIndex); break; } currentHeader.weatherID = (byte)weatherUpDown.Value; } private void weatherUpDown_ValueChanged(object sender, EventArgs e) { currentHeader.weatherID = (byte)weatherUpDown.Value; updateWeatherPicAndComboBox(); } private void cameraComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || cameraComboBox.SelectedIndex < 0) { return; } switch (RomInfo.gameFamily) { case GameFamilies.DP: cameraUpDown.Value = PokeDatabase.CameraAngles.DPPtCameraDict.Keys.ElementAt(cameraComboBox.SelectedIndex); break; case GameFamilies.Plat: cameraUpDown.Value = PokeDatabase.CameraAngles.DPPtCameraDict.Keys.ElementAt(cameraComboBox.SelectedIndex); break; default: cameraUpDown.Value = PokeDatabase.CameraAngles.HGSSCameraDict.Keys.ElementAt(cameraComboBox.SelectedIndex); break; } currentHeader.cameraAngleID = (byte)cameraUpDown.Value; } private void cameraUpDown_ValueChanged(object sender, EventArgs e) { currentHeader.cameraAngleID = (byte)cameraUpDown.Value; updateCameraPicAndComboBox(); } private void openAreaDataButton_Click(object sender, EventArgs e) { if (!nsbtxEditorIsReady) { SetupNSBTXEditor(); nsbtxEditorIsReady = true; } selectAreaDataListBox.SelectedIndex = (int)areaDataUpDown.Value; texturePacksListBox.SelectedIndex = (mapTilesetRadioButton.Checked ? (int)areaDataMapTilesetUpDown.Value : (int)areaDataBuildingTilesetUpDown.Value); mainTabControl.SelectedTab = nsbtxEditorTabPage; if (texturesListBox.Items.Count > 0) texturesListBox.SelectedIndex = 0; if (palettesListBox.Items.Count > 0) palettesListBox.SelectedIndex = 0; } private void openEventsButton_Click(object sender, EventArgs e) { if (!eventEditorIsReady) { SetupEventEditor(); eventEditorIsReady = true; } if (matrixUpDown.Value != 0) { eventAreaDataUpDown.Value = areaDataUpDown.Value; // Use Area Data for textures if matrix is not 0 } eventMatrixUpDown.Value = matrixUpDown.Value; // Open the right matrix in event editor selectEventComboBox.SelectedIndex = (int)eventFileUpDown.Value; // Select event file mainTabControl.SelectedTab = eventEditorTabPage; eventMatrixUpDown_ValueChanged(null, null); } private void openMatrixButton_Click(object sender, EventArgs e) { if (!matrixEditorIsReady) { SetupMatrixEditor(); matrixEditorIsReady = true; } mainTabControl.SelectedTab = matrixEditorTabPage; int matrixNumber = (int)matrixUpDown.Value; selectMatrixComboBox.SelectedIndex = matrixNumber; if (currentMatrix.hasHeadersSection) { matrixTabControl.SelectedTab = headersTabPage; //Autoselect cell containing current header, if such cell exists [and if current matrix has headers sections] for (int i = 0; i < headersGridView.RowCount; i++) { for (int j = 0; j < headersGridView.ColumnCount; j++) { if (currentHeader.ID.ToString() == headersGridView.Rows[i].Cells[j].Value.ToString()) { headersGridView.CurrentCell = headersGridView.Rows[i].Cells[j]; return; } } } } } private void openTextArchiveButton_Click(object sender, EventArgs e) { if (!textEditorIsReady) { SetupTextEditor(); textEditorIsReady = true; } selectTextFileComboBox.SelectedIndex = (int)textFileUpDown.Value; mainTabControl.SelectedTab = textEditorTabPage; } private void saveHeaderButton_Click(object sender, EventArgs e) { /* Check if dynamic headers patch has been applied, and save header to arm9 or a/0/5/0 accordingly */ if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { DSUtils.WriteToFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + currentHeader.ID.ToString("D4"), currentHeader.ToByteArray(), 0, 0, fmode: FileMode.Create); } else { uint headerOffset = (uint)(RomInfo.headerTableOffset + MapHeader.length * currentHeader.ID); ARM9.WriteBytes(currentHeader.ToByteArray(), headerOffset); } Helpers.DisableHandlers(); updateCurrentInternalName(); updateHeaderNameShown(headerListBox.SelectedIndex); headerListBox.Focus(); Helpers.EnableHandlers(); } private byte[] StringToInternalName(string text) { if (text.Length > internalNameLength) { MessageBox.Show("Internal names can't be longer than " + internalNameLength + " characters!", "Length error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return Encoding.ASCII.GetBytes(text.Substring(0, Math.Min(text.Length, internalNameLength)).PadRight(internalNameLength, '\0')); } private void updateCurrentInternalName() { /* Update internal name according to internalNameBox text*/ ushort headerID = currentHeader.ID; using (DSUtils.EasyWriter writer = new DSUtils.EasyWriter(RomInfo.internalNamesPath, headerID * RomInfo.internalNameLength)) { writer.Write(StringToInternalName(internalNameBox.Text)); } internalNames[headerID] = internalNameBox.Text; string elem = headerID.ToString("D3") + MapHeader.nameSeparator + internalNames[headerID]; headerListBoxNames[headerID] = elem; if (eventEditorIsReady) { eventEditorWarpHeaderListBox.Items[headerID] = elem; } } private void updateHeaderNameShown(int thisIndex) { Helpers.DisableHandlers(); string val = (string)(headerListBox.Items[thisIndex] = headerListBoxNames[currentHeader.ID]); if (eventEditorIsReady) { eventEditorWarpHeaderListBox.Items[thisIndex] = val; } Helpers.EnableHandlers(); } private void resetButton_Click(object sender, EventArgs e) { resetHeaderSearch(); } void resetHeaderSearch() { searchLocationTextBox.Clear(); HeaderSearch.ResetResults(headerListBox, headerListBoxNames, prependNumbers: false); Helpers.statusLabelMessage(); } private void searchHeaderTextBox_KeyPress(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { startSearchGameLocation(); } } private void searchHeaderButton_Click(object sender, EventArgs e) { startSearchGameLocation(); } private void startSearchGameLocation() { if (searchLocationTextBox.Text.Length != 0) { headerListBox.Items.Clear(); bool noResult = true; /* Check if dynamic headers patch has been applied, and load header from arm9 or a/0/5/0 accordingly */ for (ushort i = 0; i < internalNames.Count; i++) { MapHeader h; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + i.ToString("D4"), i, 0); } else { h = MapHeader.LoadFromARM9(i); } string locationName = ""; switch (RomInfo.gameFamily) { case GameFamilies.DP: locationName = locationNameComboBox.Items[((HeaderDP)h).locationName].ToString(); break; case GameFamilies.Plat: locationName = locationNameComboBox.Items[((HeaderPt)h).locationName].ToString(); break; case GameFamilies.HGSS: locationName = locationNameComboBox.Items[((HeaderHGSS)h).locationName].ToString(); break; } if (locationName.IndexOf(searchLocationTextBox.Text, StringComparison.InvariantCultureIgnoreCase) >= 0) { headerListBox.Items.Add(i.ToString("D3") + MapHeader.nameSeparator + internalNames[i]); noResult = false; } } if (noResult) { headerListBox.Items.Add("No result for " + '"' + searchLocationTextBox.Text + '"'); headerListBox.Enabled = false; } else { headerListBox.SelectedIndex = 0; headerListBox.Enabled = true; } } else if (headerListBox.Items.Count < internalNames.Count) { HeaderSearch.ResetResults(headerListBox, headerListBoxNames, prependNumbers: false); } } private void PrintMapHeadersSummary() { List output = new List(); int sameInARow = 0; MapHeader[] hBuff = new MapHeader[2] { null, MapHeader.LoadFromARM9(0), }; string[] locBuff = new string[2]; switch (RomInfo.gameFamily) { case GameFamilies.DP: locBuff[1] = locationNameComboBox.Items[((HeaderDP)hBuff[1]).locationName].ToString(); break; case GameFamilies.Plat: locBuff[1] = locationNameComboBox.Items[((HeaderPt)hBuff[1]).locationName].ToString(); break; case GameFamilies.HGSS: locBuff[1] = locationNameComboBox.Items[((HeaderHGSS)hBuff[1]).locationName].ToString(); break; } for (ushort i = 0; i < internalNames.Count; i++) { hBuff[0] = hBuff[1]; hBuff[1] = MapHeader.LoadFromARM9((ushort)(i + 1)); string lastName = locBuff[0]; //Kind of a locBuff[-1] locBuff[0] = locBuff[1]; switch (RomInfo.gameFamily) { case GameFamilies.DP: locBuff[1] = locationNameComboBox.Items[((HeaderDP)hBuff[1]).locationName].ToString(); break; case GameFamilies.Plat: locBuff[1] = locationNameComboBox.Items[((HeaderPt)hBuff[1]).locationName].ToString(); break; case GameFamilies.HGSS: locBuff[1] = locationNameComboBox.Items[((HeaderHGSS)hBuff[1]).locationName].ToString(); break; } string newStr = i.ToString("D3") + " - " + internalNames[i] + " - " + locBuff[0]; if (output.Count > 0) { if (lastName.Equals(locBuff[0])) { output.Add(newStr); sameInARow++; } else { if (sameInARow > 0 || (sameInARow == 0 && locBuff[0].Equals(locBuff[1]))) { output.Add(""); } output.Add(newStr); sameInARow = 0; } } else { output.Add(newStr); } } //File.WriteAllLines("dummy.txt", output); } private void scriptFileUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentHeader.scriptFileID = (ushort)scriptFileUpDown.Value; } private void areaSettingsComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || areaSettingsComboBox.SelectedItem is null) { return; } currentHeader.locationSpecifier = Byte.Parse(areaSettingsComboBox.SelectedItem.ToString().Substring(1, 1)); } private void textFileUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentHeader.textArchiveID = (ushort)textFileUpDown.Value; } private void wildPokeUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentHeader.wildPokemon = (ushort)wildPokeUpDown.Value; if (wildPokeUpDown.Value == RomInfo.nullEncounterID) { wildPokeUpDown.ForeColor = Color.Red; } else { wildPokeUpDown.ForeColor = Color.Black; } if (currentHeader.wildPokemon == RomInfo.nullEncounterID) openWildEditorWithIdButton.Enabled = false; else openWildEditorWithIdButton.Enabled = true; } private void importHeaderFromFileButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = MapHeader.DefaultFilter }; if (of.ShowDialog(this) != DialogResult.OK) { return; } MapHeader h = null; try { if (new FileInfo(of.FileName).Length > 48) throw new FileFormatException(); h = MapHeader.LoadFromFile(of.FileName, currentHeader.ID, 0); if (h == null) throw new FileFormatException(); } catch (FileFormatException) { MessageBox.Show("The file you tried to import is either malformed or not a Header file.\nNo changes have been made.", "Import Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } currentHeader = h; /* Check if dynamic headers patch has been applied, and save header to arm9 or a/0/5/0 accordingly */ if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { DSUtils.WriteToFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + currentHeader.ID.ToString("D4"), currentHeader.ToByteArray(), 0, 0, fmode: FileMode.Create); } else { uint headerOffset = (uint)(RomInfo.headerTableOffset + MapHeader.length * currentHeader.ID); ARM9.WriteBytes(currentHeader.ToByteArray(), headerOffset); } try { using (DSUtils.EasyReader reader = new DSUtils.EasyReader(of.FileName, MapHeader.length + 8)) { internalNameBox.Text = Encoding.UTF8.GetString(reader.ReadBytes(RomInfo.internalNameLength)); } updateCurrentInternalName(); updateHeaderNameShown(headerListBox.SelectedIndex); } catch (EndOfStreamException) { } RefreshHeaderEditorFields(); } private void exportHeaderToFileButton_Click(object sender, EventArgs e) { SaveFileDialog sf = new SaveFileDialog { Filter = MapHeader.DefaultFilter, FileName = "Header " + currentHeader.ID + " - " + internalNames[currentHeader.ID] + " (" + locationNameComboBox.SelectedItem.ToString() + ")" }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } using (DSUtils.EasyWriter writer = new DSUtils.EasyWriter(sf.FileName)) { writer.Write(currentHeader.ToByteArray()); //Write full header writer.Write((byte)0x00); //Padding writer.Write(Encoding.UTF8.GetBytes("INTNAME")); //Signature writer.Write(Encoding.UTF8.GetBytes(internalNames[currentHeader.ID])); //Save Internal name } } #region CopyPaste Buttons /*Copy Paste Functions*/ #region Variables int locationNameCopy; string internalNameCopy; decimal encountersIDCopy; int areaIconCopy; int musicdayCopy; int musicnightCopy; int weatherCopy; int camAngleCopy; int areaSettingsCopy; decimal scriptsCopy; decimal levelScriptsCopy; decimal eventsCopy; decimal textsCopy; decimal matrixCopy; decimal areadataCopy; decimal worldmapXCoordCopy; decimal worldmapYCoordCopy; decimal battleBGCopy; byte flagsCopy; int followingPokeCopy; bool kantoFlagCopy; #endregion private void copyHeaderButton_Click(object sender, EventArgs e) { locationNameCopy = locationNameComboBox.SelectedIndex; internalNameCopy = internalNameBox.Text; areaIconCopy = areaIconComboBox.SelectedIndex; areaSettingsCopy = areaSettingsComboBox.SelectedIndex; encountersIDCopy = wildPokeUpDown.Value; musicdayCopy = musicDayComboBox.SelectedIndex; musicnightCopy = musicNightComboBox.SelectedIndex; weatherCopy = weatherComboBox.SelectedIndex; camAngleCopy = cameraComboBox.SelectedIndex; scriptsCopy = scriptFileUpDown.Value; levelScriptsCopy = levelScriptUpDown.Value; eventsCopy = eventFileUpDown.Value; textsCopy = textFileUpDown.Value; matrixCopy = matrixUpDown.Value; areadataCopy = areaDataUpDown.Value; worldmapXCoordCopy = worldmapXCoordUpDown.Value; worldmapYCoordCopy = worldmapYCoordUpDown.Value; battleBGCopy = battleBackgroundUpDown.Value; flagsCopy = currentHeader.flags; followingPokeCopy = followModeComboBox.SelectedIndex; kantoFlagCopy = kantoRadioButton.Checked; /*Enable paste buttons*/ pasteHeaderButton.Enabled = true; pasteLocationNameButton.Enabled = true; pasteInternalNameButton.Enabled = true; pasteAreaSettingsButton.Enabled = true; pasteAreaIconButton.Enabled = true; pasteWildEncountersButton.Enabled = true; pasteMusicDayButton.Enabled = true; pasteMusicNightButton.Enabled = true; pasteWeatherButton.Enabled = true; pasteCameraAngleButton.Enabled = true; pasteScriptsButton.Enabled = true; pasteLevelScriptsButton.Enabled = true; pasteEventsButton.Enabled = true; pasteTextsButton.Enabled = true; pasteMatrixButton.Enabled = true; pasteAreaDataButton.Enabled = true; worldmapCoordsCopyButton.Enabled = true; pasteMapSettingsButton.Enabled = true; headerListBox.Focus(); } private void copyInternalNameButton_Click(object sender, EventArgs e) { internalNameCopy = internalNameBox.Text; Clipboard.SetData(DataFormats.Text, internalNameCopy); pasteInternalNameButton.Enabled = true; } private void copyLocationNameButton_Click(object sender, EventArgs e) { locationNameCopy = locationNameComboBox.SelectedIndex; pasteLocationNameButton.Enabled = true; } private void copyAreaSettingsButton_Click(object sender, EventArgs e) { areaSettingsCopy = areaSettingsComboBox.SelectedIndex; pasteAreaSettingsButton.Enabled = true; } private void copyAreaIconButton_Click(object sender, EventArgs e) { areaIconCopy = areaIconComboBox.SelectedIndex; pasteAreaIconButton.Enabled = true; } private void copyWildEncountersButton_Click(object sender, EventArgs e) { encountersIDCopy = wildPokeUpDown.Value; Clipboard.SetData(DataFormats.Text, encountersIDCopy); pasteWildEncountersButton.Enabled = true; } private void copyMusicDayButton_Click(object sender, EventArgs e) { musicdayCopy = musicDayComboBox.SelectedIndex; pasteMusicDayButton.Enabled = true; } private void copyWeatherButton_Click(object sender, EventArgs e) { weatherCopy = weatherComboBox.SelectedIndex; pasteWeatherButton.Enabled = true; } private void copyMusicNightButton_Click(object sender, EventArgs e) { musicnightCopy = musicNightComboBox.SelectedIndex; pasteMusicNightButton.Enabled = true; } private void copyCameraAngleButton_Click(object sender, EventArgs e) { camAngleCopy = cameraComboBox.SelectedIndex; pasteCameraAngleButton.Enabled = true; } private void copyScriptsButton_Click(object sender, EventArgs e) { scriptsCopy = scriptFileUpDown.Value; Clipboard.SetData(DataFormats.Text, scriptsCopy); pasteScriptsButton.Enabled = true; } private void copyLevelScriptsButton_Click(object sender, EventArgs e) { levelScriptsCopy = levelScriptUpDown.Value; Clipboard.SetData(DataFormats.Text, levelScriptsCopy); pasteLevelScriptsButton.Enabled = true; } private void copyEventsButton_Click(object sender, EventArgs e) { eventsCopy = eventFileUpDown.Value; Clipboard.SetData(DataFormats.Text, eventsCopy); pasteEventsButton.Enabled = true; } private void copyTextsButton_Click(object sender, EventArgs e) { textsCopy = textFileUpDown.Value; Clipboard.SetData(DataFormats.Text, textsCopy); pasteTextsButton.Enabled = true; } private void copyMatrixButton_Click(object sender, EventArgs e) { matrixCopy = matrixUpDown.Value; Clipboard.SetData(DataFormats.Text, matrixCopy); pasteMatrixButton.Enabled = true; } private void copyAreaDataButton_Click(object sender, EventArgs e) { areadataCopy = areaDataUpDown.Value; Clipboard.SetData(DataFormats.Text, areadataCopy); pasteAreaDataButton.Enabled = true; } private void worldmapCoordsCopyButton_Click(object sender, EventArgs e) { worldmapXCoordCopy = worldmapXCoordUpDown.Value; worldmapYCoordCopy = worldmapYCoordUpDown.Value; worldmapCoordsPasteButton.Enabled = true; } private void copyMapSettingsButton_Click(object sender, EventArgs e) { flagsCopy = currentHeader.flags; battleBGCopy = currentHeader.battleBackground; followingPokeCopy = followModeComboBox.SelectedIndex; kantoFlagCopy = kantoRadioButton.Checked; pasteMapSettingsButton.Enabled = true; } /* Paste Buttons */ private void pasteHeaderButton_Click(object sender, EventArgs e) { locationNameComboBox.SelectedIndex = locationNameCopy; internalNameBox.Text = internalNameCopy; wildPokeUpDown.Value = encountersIDCopy; areaSettingsComboBox.SelectedIndex = areaSettingsCopy; areaIconComboBox.SelectedIndex = areaIconCopy; musicDayComboBox.SelectedIndex = musicdayCopy; musicNightComboBox.SelectedIndex = musicnightCopy; weatherComboBox.SelectedIndex = weatherCopy; cameraComboBox.SelectedIndex = camAngleCopy; scriptFileUpDown.Value = scriptsCopy; levelScriptUpDown.Value = levelScriptsCopy; eventFileUpDown.Value = eventsCopy; textFileUpDown.Value = textsCopy; matrixUpDown.Value = matrixCopy; areaDataUpDown.Value = areadataCopy; currentHeader.flags = flagsCopy; worldmapXCoordUpDown.Value = worldmapXCoordCopy; worldmapYCoordUpDown.Value = worldmapYCoordCopy; battleBackgroundUpDown.Value = battleBGCopy; RefreshFlags(); } private void pasteInternalNameButton_Click(object sender, EventArgs e) { internalNameBox.Text = internalNameCopy; } private void pasteLocationNameButton_Click(object sender, EventArgs e) { locationNameComboBox.SelectedIndex = locationNameCopy; } private void pasteAreaSettingsButton_Click(object sender, EventArgs e) { areaSettingsComboBox.SelectedIndex = areaSettingsCopy; } private void pasteAreaIconButton_Click(object sender, EventArgs e) { if (areaIconComboBox.Enabled) { areaIconComboBox.SelectedIndex = areaIconCopy; } } private void pasteWildEncountersButton_Click(object sender, EventArgs e) { wildPokeUpDown.Value = encountersIDCopy; } private void pasteMusicDayButton_Click(object sender, EventArgs e) { musicDayComboBox.SelectedIndex = musicdayCopy; } private void pasteScriptsButton_Click(object sender, EventArgs e) { scriptFileUpDown.Value = scriptsCopy; } private void pasteLevelScriptsButton_Click(object sender, EventArgs e) { levelScriptUpDown.Value = levelScriptsCopy; } private void pasteEventsButton_Click(object sender, EventArgs e) { eventFileUpDown.Value = eventsCopy; } private void pasteTextsButton_Click(object sender, EventArgs e) { textFileUpDown.Value = textsCopy; } private void pasteMatrixButton_Click(object sender, EventArgs e) { matrixUpDown.Value = matrixCopy; } private void pasteAreaDataButton_Click(object sender, EventArgs e) { areaDataUpDown.Value = areadataCopy; } private void pasteWeatherButton_Click(object sender, EventArgs e) { weatherComboBox.SelectedIndex = weatherCopy; } private void pasteMusicNightButton_Click(object sender, EventArgs e) { musicNightComboBox.SelectedIndex = musicnightCopy; } private void pasteCameraAngleButton_Click(object sender, EventArgs e) { cameraComboBox.SelectedIndex = camAngleCopy; } private void worldmapCoordsPasteButton_Click(object sender, EventArgs e) { worldmapXCoordUpDown.Value = worldmapXCoordCopy; worldmapYCoordUpDown.Value = worldmapYCoordCopy; } private void pasteMapSettingsButton_Click(object sender, EventArgs e) { currentHeader.flags = flagsCopy; battleBackgroundUpDown.Value = battleBGCopy; followModeComboBox.SelectedIndex = followingPokeCopy; kantoRadioButton.Checked = kantoFlagCopy; RefreshFlags(); } #endregion #endregion #region Matrix Editor GameMatrix currentMatrix; #region Subroutines private void ClearMatrixTables() { headersGridView.Rows.Clear(); headersGridView.Columns.Clear(); heightsGridView.Rows.Clear(); heightsGridView.Columns.Clear(); mapFilesGridView.Rows.Clear(); mapFilesGridView.Columns.Clear(); matrixTabControl.TabPages.Remove(headersTabPage); matrixTabControl.TabPages.Remove(heightsTabPage); } private (Color background, Color foreground) FormatMapCell(uint cellValue) { foreach (KeyValuePair, (Color background, Color foreground)> entry in romInfo.MapCellsColorDictionary) { if (entry.Key.Contains(cellValue)) return entry.Value; } return (Color.White, Color.Black); } private void GenerateMatrixTables() { /* Generate table columns */ if (currentMatrix is null) { return; } for (int i = 0; i < currentMatrix.width; i++) { headersGridView.Columns.Add("Column" + i, i.ToString("D")); headersGridView.Columns[i].Width = 32; // Set column size headersGridView.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; headersGridView.Columns[i].Frozen = false; heightsGridView.Columns.Add("Column" + i, i.ToString("D")); heightsGridView.Columns[i].Width = 21; // Set column size heightsGridView.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; heightsGridView.Columns[i].Frozen = false; mapFilesGridView.Columns.Add("Column" + i, i.ToString("D")); mapFilesGridView.Columns[i].Width = 32; // Set column size mapFilesGridView.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; mapFilesGridView.Columns[i].Frozen = false; } /* Generate table rows */ for (int i = 0; i < currentMatrix.height; i++) { mapFilesGridView.Rows.Add(); mapFilesGridView.Rows[i].HeaderCell.Value = i.ToString(); headersGridView.Rows.Add(); headersGridView.Rows[i].HeaderCell.Value = i.ToString(); heightsGridView.Rows.Add(); heightsGridView.Rows[i].HeaderCell.Value = i.ToString(); } /* Fill tables */ for (int i = 0; i < currentMatrix.height; i++) { for (int j = 0; j < currentMatrix.width; j++) { headersGridView.Rows[i].Cells[j].Value = currentMatrix.headers[i, j]; heightsGridView.Rows[i].Cells[j].Value = currentMatrix.altitudes[i, j]; mapFilesGridView.Rows[i].Cells[j].Value = currentMatrix.maps[i, j]; } } if (currentMatrix.hasHeadersSection) { matrixTabControl.TabPages.Add(headersTabPage); } if (currentMatrix.hasHeightsSection) { matrixTabControl.TabPages.Add(heightsTabPage); } } #endregion private void SetupMatrixEditor() { Helpers.statusLabelMessage("Setting up Matrix Editor..."); Update(); DSUtils.TryUnpackNarcs(new List { DirNames.matrices }); Helpers.DisableHandlers(); /* Add matrix entries to ComboBox */ selectMatrixComboBox.Items.Clear(); selectMatrixComboBox.Items.Add("Matrix 0 - Main"); for (int i = 1; i < romInfo.GetMatrixCount(); i++) { selectMatrixComboBox.Items.Add(new GameMatrix(i)); } if (!ReadColorTable(Properties.Settings.Default.lastColorTablePath, silent: true)) { romInfo.ResetMapCellsColorDictionary(); } RomInfo.SetupSpawnSettings(); Helpers.EnableHandlers(); selectMatrixComboBox.SelectedIndex = 0; Helpers.statusLabelMessage(); } private void addHeaderSectionButton_Click(object sender, EventArgs e) { if (!currentMatrix.hasHeadersSection) { currentMatrix.hasHeadersSection = true; matrixTabControl.TabPages.Add(headersTabPage); } } private void addHeightsButton_Click(object sender, EventArgs e) { if (!currentMatrix.hasHeightsSection) { currentMatrix.hasHeightsSection = true; matrixTabControl.TabPages.Add(heightsTabPage); } } private void addMatrixButton_Click(object sender, EventArgs e) { GameMatrix blankMatrix = new GameMatrix(); /* Add new matrix file to matrix folder */ blankMatrix.SaveToFile(RomInfo.gameDirs[DirNames.matrices].unpackedDir + "\\" + romInfo.GetMatrixCount().ToString("D4"), false); /* Update ComboBox*/ selectMatrixComboBox.Items.Add(selectMatrixComboBox.Items.Count.ToString() + blankMatrix); selectMatrixComboBox.SelectedIndex = selectMatrixComboBox.Items.Count - 1; if (eventEditorIsReady) { eventMatrixUpDown.Maximum++; } } private void exportMatrixButton_Click(object sender, EventArgs e) { currentMatrix.SaveToFileExplorePath("Matrix " + selectMatrixComboBox.SelectedIndex); } private void saveMatrixButton_Click(object sender, EventArgs e) { currentMatrix.SaveToFileDefaultDir(selectMatrixComboBox.SelectedIndex); GameMatrix saved = new GameMatrix(selectMatrixComboBox.SelectedIndex); selectMatrixComboBox.Items[selectMatrixComboBox.SelectedIndex] = saved.ToString(); eventMatrix = saved; } private void headersGridView_SelectionChanged(object sender, EventArgs e) { DisplaySelection(headersGridView.SelectedCells); } private void heightsGridView_SelectionChanged(object sender, EventArgs e) { DisplaySelection(heightsGridView.SelectedCells); } private void mapFilesGridView_SelectionChanged(object sender, EventArgs e) { DisplaySelection(mapFilesGridView.SelectedCells); } private void DisplaySelection(DataGridViewSelectedCellCollection selectedCells) { if (selectedCells.Count > 0) { Helpers.statusLabelMessage("Selection: " + selectedCells[0].ColumnIndex + ", " + selectedCells[0].RowIndex); } } private void headersGridView_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { if (headerListBox.Items.Count < internalNames.Count) { HeaderSearch.ResetResults(headerListBox, headerListBoxNames, prependNumbers: false); } if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { int headerNumber = Convert.ToInt32(headersGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); headerListBox.SelectedIndex = headerNumber; mainTabControl.SelectedTab = headerEditorTabPage; } } private void headersGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (Helpers.HandlersDisabled) { return; } if (e.RowIndex > -1 && e.ColumnIndex > -1) { /* If input is junk, use 0000 as placeholder value */ ushort cellValue; try { if (!ushort.TryParse(headersGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out cellValue)) { throw new NullReferenceException(); } } catch (NullReferenceException) { cellValue = 0; } /* Change value in matrix object */ currentMatrix.headers[e.RowIndex, e.ColumnIndex] = cellValue; } } private void headersGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.Value is null) { return; } Helpers.DisableHandlers(); /* Format table cells corresponding to border maps or void */ if (!ushort.TryParse(mapFilesGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out ushort colorValue)) { colorValue = GameMatrix.EMPTY; } (Color back, Color fore) = FormatMapCell(colorValue); e.CellStyle.BackColor = back; e.CellStyle.ForeColor = fore; /* If invalid input is entered, show 00 */ if (!ushort.TryParse(headersGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out _)) { e.Value = 0; } Helpers.EnableHandlers(); } private void heightsGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (Helpers.HandlersDisabled) { return; } if (e.RowIndex > -1 && e.ColumnIndex > -1) { /* If input is junk, use 00 as placeholder value */ byte cellValue = 0; try { cellValue = byte.Parse(heightsGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); } catch { } /* Change value in matrix object */ currentMatrix.altitudes[e.RowIndex, e.ColumnIndex] = cellValue; } } private void widthUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); /* Add or remove rows in DataGridView control */ int delta = (int)widthUpDown.Value - currentMatrix.width; for (int i = 0; i < Math.Abs(delta); i++) { if (delta < 0) { headersGridView.Columns.RemoveAt(currentMatrix.width - 1 - i); heightsGridView.Columns.RemoveAt(currentMatrix.width - 1 - i); mapFilesGridView.Columns.RemoveAt(currentMatrix.width - 1 - i); } else { /* Add columns */ int index = currentMatrix.width + i; headersGridView.Columns.Add(" ", (index).ToString()); heightsGridView.Columns.Add(" ", (index).ToString()); mapFilesGridView.Columns.Add(" ", (index).ToString()); /* Adjust column width */ headersGridView.Columns[index].Width = 34; heightsGridView.Columns[index].Width = 22; mapFilesGridView.Columns[index].Width = 34; /* Fill new rows */ for (int j = 0; j < currentMatrix.height; j++) { headersGridView.Rows[j].Cells[index].Value = 0; heightsGridView.Rows[j].Cells[index].Value = 0; mapFilesGridView.Rows[j].Cells[index].Value = GameMatrix.EMPTY; } } } /* Modify matrix object */ currentMatrix.ResizeMatrix((int)heightUpDown.Value, (int)widthUpDown.Value); Helpers.EnableHandlers(); } private void heightUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); /* Add or remove rows in DataGridView control */ int delta = (int)heightUpDown.Value - currentMatrix.height; for (int i = 0; i < Math.Abs(delta); i++) { if (delta < 0) { // Remove rows headersGridView.Rows.RemoveAt(currentMatrix.height - 1 - i); heightsGridView.Rows.RemoveAt(currentMatrix.height - 1 - i); mapFilesGridView.Rows.RemoveAt(currentMatrix.height - 1 - i); } else { /* Add row in DataGridView */ headersGridView.Rows.Add(); heightsGridView.Rows.Add(); mapFilesGridView.Rows.Add(); int index = currentMatrix.height + i; headersGridView.Rows[index].HeaderCell.Value = (index).ToString(); heightsGridView.Rows[index].HeaderCell.Value = (index).ToString(); mapFilesGridView.Rows[index].HeaderCell.Value = (index).ToString(); /* Fill new rows */ for (int j = 0; j < currentMatrix.width; j++) { headersGridView.Rows[index].Cells[j].Value = 0; heightsGridView.Rows[index].Cells[j].Value = 0; mapFilesGridView.Rows[index].Cells[j].Value = GameMatrix.EMPTY; } } } /* Modify matrix object */ currentMatrix.ResizeMatrix((int)heightUpDown.Value, (int)widthUpDown.Value); Helpers.EnableHandlers(); } private void heightsGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.Value is null) { return; } Helpers.DisableHandlers(); /* Format table cells corresponding to border maps or void */ ushort colorValue = 0; try { colorValue = ushort.Parse(mapFilesGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); } catch { } (Color back, Color fore) = FormatMapCell(colorValue); e.CellStyle.BackColor = back; e.CellStyle.ForeColor = fore; /* If invalid input is entered, show 00 */ byte cellValue = 0; try { cellValue = byte.Parse(heightsGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); } catch { } e.Value = cellValue; Helpers.EnableHandlers(); } private void importMatrixButton_Click(object sender, EventArgs e) { /* Prompt user to select .mtx file */ if (selectMatrixComboBox.SelectedIndex == 0) { Helpers.statusLabelMessage("Awaiting user response..."); DialogResult d = MessageBox.Show("Replacing a matrix - especially Matrix 0 - with a new file is risky.\n" + "Do not do it unless you are absolutely sure.\nProceed?", "Risky operation", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.No) { return; } } OpenFileDialog importMatrix = new OpenFileDialog { Filter = GameMatrix.DefaultFilter }; if (importMatrix.ShowDialog(this) != DialogResult.OK) { return; } /* Update matrix object in memory */ currentMatrix = new GameMatrix(new FileStream(importMatrix.FileName, FileMode.Open)); /* Refresh DataGridView tables */ ClearMatrixTables(); GenerateMatrixTables(); /* Setup matrix editor controls */ Helpers.DisableHandlers(); matrixNameTextBox.Text = currentMatrix.name; widthUpDown.Value = currentMatrix.width; heightUpDown.Value = currentMatrix.height; Helpers.EnableHandlers(); /* Display success message */ MessageBox.Show("Matrix imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); Helpers.statusLabelMessage(); } private void mapFilesGridView_CellMouseDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { if (currentMatrix.maps[e.RowIndex, e.ColumnIndex] == GameMatrix.EMPTY) { MessageBox.Show("You can't load an empty map.\nSelect a valid map and try again.\n\n" + "If you only meant to change the value of this cell, wait some time between one mouse click and the other.\n" + "Alternatively, highlight the cell and press F2 on your keyboard.", "User attempted to load VOID", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!mapEditorIsReady) { SetupMapEditor(); mapOpenGlControl.MouseWheel += new MouseEventHandler(mapOpenGlControl_MouseWheel); mapEditorIsReady = true; } int mapCount = romInfo.GetMapCount(); if (currentMatrix.maps[e.RowIndex, e.ColumnIndex] >= mapCount) { MessageBox.Show("This matrix cell points to a map file that doesn't exist.", "There " + ((mapCount > 1) ? "are only " + mapCount + " map files." : "is only 1 map file."), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } /* Determine area data */ ushort headerID = 0; if (currentMatrix.hasHeadersSection) { headerID = currentMatrix.headers[e.RowIndex, e.ColumnIndex]; } else { ushort[] result = HeaderSearch.AdvancedSearch(0, (ushort)internalNames.Count, internalNames, (int)MapHeader.SearchableFields.MatrixID, (int)HeaderSearch.NumOperators.Equal, selectMatrixComboBox.SelectedIndex.ToString()) .Select(x => ushort.Parse(x.Split()[0])) .ToArray(); if (result.Length < 1) { headerID = currentHeader.ID; Helpers.statusLabelMessage("This Matrix is not linked to any Header. DSPRE can't determine the most appropriate AreaData (and textures) to use.\nDisplaying Textures from the last selected Header (" + headerID + ")'s AreaData..."); } else { if (result.Length > 1) { if (result.Contains(currentHeader.ID)) { headerID = currentHeader.ID; Helpers.statusLabelMessage("Multiple Headers are associated to this Matrix, including the last selected one [Header " + headerID + "]. Now using its textures."); } else { if (gameFamily.Equals(GameFamilies.DP)) { foreach (ushort r in result) { HeaderDP hdp; hdp = (HeaderDP)MapHeader.LoadFromARM9(r); if (hdp.locationName != 0) { headerID = hdp.ID; break; } } } else if (gameFamily.Equals(GameFamilies.Plat)) { foreach (ushort r in result) { HeaderPt hpt; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { hpt = (HeaderPt)MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + r.ToString("D4"), r, 0); } else { hpt = (HeaderPt)MapHeader.LoadFromARM9(r); } if (hpt.locationName != 0) { headerID = hpt.ID; break; } } } else { foreach (ushort r in result) { HeaderHGSS hgss; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { hgss = (HeaderHGSS)MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + r.ToString("D4"), r, 0); } else { hgss = (HeaderHGSS)MapHeader.LoadFromARM9(r); } if (hgss.locationName != 0) { headerID = hgss.ID; break; } } } Helpers.statusLabelMessage("Multiple Headers are using this Matrix. Header " + headerID + "'s textures are currently being displayed."); } } else { headerID = result[0]; Helpers.statusLabelMessage("Loading Header " + headerID + "'s textures."); } } } Update(); if (headerID > internalNames.Count) { MessageBox.Show("This map is associated to a non-existent header.\nThis will lead to unpredictable behaviour and, possibily, problems, if you attempt to load it in game.", "Invalid header", MessageBoxButtons.OK, MessageBoxIcon.Information); headerID = 0; } /* get texture file numbers from area data */ MapHeader h; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + headerID.ToString("D4"), headerID, 0); } else { h = MapHeader.LoadFromARM9(headerID); } /* Load Map File and switch to Map Editor tab */ Helpers.DisableHandlers(); AreaData areaData = new AreaData(h.areaDataID); selectMapComboBox.SelectedIndex = currentMatrix.maps[e.RowIndex, e.ColumnIndex]; mapTextureComboBox.SelectedIndex = areaData.mapTileset + 1; buildTextureComboBox.SelectedIndex = areaData.buildingsTileset + 1; mainTabControl.SelectedTab = mapEditorTabPage; if (areaData.areaType == AreaData.TYPE_INDOOR) { interiorbldRadioButton.Checked = true; } else { exteriorbldRadioButton.Checked = true; } Helpers.EnableHandlers(); selectMapComboBox_SelectedIndexChanged(null, null); } } private void mapFilesGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (Helpers.HandlersDisabled) { return; } if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { /* If input is junk, use '\' (FF FF) as placeholder value */ ushort cellValue = GameMatrix.EMPTY; try { cellValue = ushort.Parse(mapFilesGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); } catch { } /* Change value in matrix object */ currentMatrix.maps[e.RowIndex, e.ColumnIndex] = cellValue; } } private void mapFilesGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { Helpers.DisableHandlers(); /* Format table cells corresponding to border maps or void */ ushort colorValue = GameMatrix.EMPTY; try { colorValue = ushort.Parse(mapFilesGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); } catch { } (Color backColor, Color foreColor) cellColors = FormatMapCell(colorValue); e.CellStyle.BackColor = cellColors.backColor; e.CellStyle.ForeColor = cellColors.foreColor; if (colorValue == GameMatrix.EMPTY) e.Value = '-'; Helpers.EnableHandlers(); } private void matrixNameTextBox_TextChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentMatrix.name = matrixNameTextBox.Text; } private void removeHeadersButton_Click(object sender, EventArgs e) { matrixTabControl.TabPages.Remove(headersTabPage); currentMatrix.hasHeadersSection = false; } private void removeHeightsButton_Click(object sender, EventArgs e) { matrixTabControl.TabPages.Remove(heightsTabPage); currentMatrix.hasHeightsSection = false; } private void removeMatrixButton_Click(object sender, EventArgs e) { if (selectMatrixComboBox.Items.Count > 1) { DialogResult d = MessageBox.Show("Are you sure you want to delete the last matrix?", "Confirm deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d.Equals(DialogResult.Yes)) { /* Delete matrix file */ int matrixToDelete = romInfo.GetMatrixCount() - 1; string matrixPath = RomInfo.gameDirs[DirNames.matrices].unpackedDir + "\\" + matrixToDelete.ToString("D4"); File.Delete(matrixPath); /* Change selected index if the matrix to be deleted is currently selected */ if (selectMatrixComboBox.SelectedIndex == matrixToDelete) { selectMatrixComboBox.SelectedIndex--; } if (eventEditorIsReady) { eventMatrixUpDown.Maximum--; } /* Remove entry from ComboBox, and decrease matrix count */ selectMatrixComboBox.Items.RemoveAt(matrixToDelete); } } else { MessageBox.Show("At least one matrix must be kept.", "Can't delete Matrix", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } private void setSpawnPointButton_Click(object sender, EventArgs e) { DataGridViewCell selectedCell = null; switch (matrixTabControl.SelectedIndex) { case 0: //Maps selectedCell = mapFilesGridView.SelectedCells[0]; selectedCell = headersGridView.Rows[selectedCell.RowIndex].Cells[selectedCell.ColumnIndex]; break; case 1: //Headers selectedCell = headersGridView.SelectedCells[0]; break; case 2: //Altitudes selectedCell = heightsGridView.SelectedCells[0]; selectedCell = headersGridView.Rows[selectedCell.RowIndex].Cells[selectedCell.ColumnIndex]; break; } ushort headerNumber = 0; HashSet result = null; if (currentMatrix.hasHeadersSection) { headerNumber = Convert.ToUInt16(selectedCell.Value); } else { DialogResult d; d = MessageBox.Show("This Matrix doesn't have a Header Tab. " + Environment.NewLine + "Do you want to check if any Header uses this Matrix and choose that one as your Spawn Header? " + Environment.NewLine + "\nChoosing 'No' will pick the last selected Header.", "Couldn't find Header Tab", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { result = HeaderSearch.AdvancedSearch(0, (ushort)internalNames.Count, internalNames, (int)MapHeader.SearchableFields.MatrixID, (int)HeaderSearch.NumOperators.Equal, selectMatrixComboBox.SelectedIndex.ToString()); if (result.Count < 1) { MessageBox.Show("The current Matrix isn't assigned to any Header.\nThe default choice has been set to the last selected Header.", "No result", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); headerNumber = currentHeader.ID; } else if (result.Count == 1) { headerNumber = ushort.Parse(result.First().Split()[0]); } else { MessageBox.Show("Multiple Headers are using this Matrix.\nPick one from the list or reset the filter results to choose a different Header.", "Multiple results", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { headerNumber = currentHeader.ID; } } int matrixX = selectedCell.ColumnIndex; int matrixY = selectedCell.RowIndex; using (SpawnEditor ed = new SpawnEditor(result, headerListBoxNames, headerNumber, matrixX, matrixY)) { ed.ShowDialog(); } } private void selectMatrixComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } ClearMatrixTables(); currentMatrix = new GameMatrix(selectMatrixComboBox.SelectedIndex); GenerateMatrixTables(); /* Setup matrix editor controls */ Helpers.DisableHandlers(); matrixNameTextBox.Text = currentMatrix.name; widthUpDown.Value = currentMatrix.width; heightUpDown.Value = currentMatrix.height; Helpers.EnableHandlers(); } private void importColorTableButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = "DSPRE Color Table File (*.ctb)|*.ctb" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } ReadColorTable(of.FileName, silent: false); } private bool ReadColorTable(string fileName, bool silent) { if (string.IsNullOrWhiteSpace(fileName)) { return false; } string[] fileTableContent = File.ReadAllLines(fileName); if (fileTableContent.Length > 0) { const string mapKeyword = "[Maplist]"; const string colorKeyword = "[Color]"; const string textColorKeyword = "[TextColor]"; const string dashSeparator = "-"; string problematicSegment = "incomplete line"; Dictionary, (Color background, Color foreground)> colorsDict = new Dictionary, (Color background, Color foreground)>(); List linesWithErrors = new List(); for (int i = 0; i < fileTableContent.Length; i++) { if (fileTableContent[i].Length > 0) { string[] lineParts = fileTableContent[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); try { int j = 0; if (!lineParts[j].Equals(mapKeyword)) { problematicSegment = nameof(mapKeyword); throw new FormatException(); } j++; List mapList = new List(); while (!lineParts[j].Equals(dashSeparator)) { if (lineParts[j].Equals("and")) { j++; } uint firstValue = uint.Parse(lineParts[j++]); mapList.Add(firstValue); if (lineParts[j].Equals("to")) { j++; uint finalValue = uint.Parse(lineParts[j++]); //Add all numbers ranging from maplist[0] to finalValue if (firstValue > finalValue) Swap(ref firstValue, ref finalValue); for (uint k = firstValue + 1; k <= finalValue; k++) { mapList.Add(k); } } } if (!lineParts[j].Equals(dashSeparator)) { problematicSegment = nameof(dashSeparator); throw new FormatException(); } j++; if (!lineParts[j].Equals(colorKeyword)) { problematicSegment = nameof(colorKeyword); throw new FormatException(); } j++; int r = Int32.Parse(lineParts[j++]); int g = Int32.Parse(lineParts[j++]); int b = Int32.Parse(lineParts[j++]); if (!lineParts[j].Equals(dashSeparator)) { problematicSegment = nameof(dashSeparator); throw new FormatException(); } j++; if (!lineParts[j].Equals(textColorKeyword)) { problematicSegment = nameof(textColorKeyword); throw new FormatException(); } j++; colorsDict.Add(mapList, (Color.FromArgb(r, g, b), Color.FromName(lineParts[j++]))); } catch { if (!silent) { linesWithErrors.Add(i + 1 + " (err. " + problematicSegment + ")\n"); } continue; } } } colorsDict.Add(new List { GameMatrix.EMPTY }, (Color.Black, Color.White)); string errorMsg = ""; MessageBoxIcon iconType = MessageBoxIcon.Information; if (!silent) { if (linesWithErrors.Count > 0) { errorMsg = "\nHowever, the following lines couldn't be parsed correctly:\n"; foreach (string s in linesWithErrors) { errorMsg += "- Line " + s; } iconType = MessageBoxIcon.Warning; } } romInfo.MapCellsColorDictionary = colorsDict; ClearMatrixTables(); GenerateMatrixTables(); Properties.Settings.Default.lastColorTablePath = fileName; if (!silent) { MessageBox.Show("Color file has been read." + errorMsg, "Operation completed", MessageBoxButtons.OK, iconType); } return true; } else { if (!silent) { MessageBox.Show("No readable content was found in this file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return false; } } public void Swap(ref uint a, ref uint b) { uint temp = a; a = b; b = temp; } private void resetColorTableButton_Click(object sender, EventArgs e) { romInfo.ResetMapCellsColorDictionary(); ClearMatrixTables(); GenerateMatrixTables(); Properties.Settings.Default.lastColorTablePath = ""; } /* private void ExportAllMovePermissionsInMatrix(object sender, EventArgs e) { CommonOpenFileDialog romFolder = new CommonOpenFileDialog(); romFolder.IsFolderPicker = true; romFolder.Multiselect = false; if (romFolder.ShowDialog() != CommonFileDialogResult.Ok) { return; } for (int i = 0; i < currentMatrix.height; i++) { for (int j = 0; j < currentMatrix.width; j++) { ushort val = currentMatrix.maps[i, j]; if (val < ushort.MaxValue) { string path = romFolder.FileName + "\\" + currentMatrix.id + j.ToString("D2") + "_" + i.ToString("D2") + ".per"; File.WriteAllBytes(path, new MapFile(val).CollisionsToByteArray()); } } } } */ #endregion #region Map Editor #region Variables & Constants public const int mapEditorSquareSize = 19; /* Map Rotation vars */ public bool lRot; public bool rRot; public bool uRot; public bool dRot; /* Screenshot Interpolation mode */ public InterpolationMode intMode; /* Camera settings */ public bool hideBuildings = new bool(); public bool mapTexturesOn = true; public bool bldTexturesOn = true; public static float ang = 0.0f; public static float dist = 12.8f; public static float elev = 50.0f; public float perspective = 45f; private byte bldDecimalPositions = 1; /* Renderers */ public static NSBMDGlRenderer mapRenderer = new NSBMDGlRenderer(); public static NSBMDGlRenderer buildingsRenderer = new NSBMDGlRenderer(); /* Map file */ MapFile currentMapFile; /* Permission painters */ public Pen paintPen; public SolidBrush paintBrush; public SolidBrush textBrush; public byte paintByte; StringFormat sf; public Rectangle mainCell; public Rectangle smallCell; public Rectangle painterBox = new Rectangle(0, 0, 100, 100); public Font textFont; #endregion #region Subroutines private void FillBuildingsBox() { buildingsListBox.Items.Clear(); uint id = 0; for (int i = 0; i < currentMapFile.buildings.Count; i++) { id = currentMapFile.buildings[i].modelID; string baseName = (i + 1).ToString("D2") + MapHeader.nameSeparator; try { buildingsListBox.Items.Add(baseName + buildIndexComboBox.Items[(int)id]); } catch (ArgumentOutOfRangeException) { DialogResult d = MessageBox.Show("Building #" + id + " couldn't be found in the Building List.\n" + "Do you want to load Building 0 in its place?\n" + "(Choosing \"Cancel\" will discard this building altogether.)", "Building not found", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Error); if (d == DialogResult.Yes) { buildingsListBox.Items.Add(baseName + buildIndexComboBox.Items[0]); } else if (d == DialogResult.No) { buildingsListBox.Items.Add(baseName + "MISSING " + (int)id + '!'); } // else do nothing } } } private void MW_LoadModelTextures(NSBMD model, string textureFolder, int fileID) { if (fileID < 0) { return; } string texturePath = textureFolder + "\\" + fileID.ToString("D4"); model.materials = NSBTXLoader.LoadNsbtx(new MemoryStream(File.ReadAllBytes(texturePath)), out model.Textures, out model.Palettes); try { model.MatchTextures(); } catch { } } private void RenderMap(ref NSBMDGlRenderer mapRenderer, ref NSBMDGlRenderer buildingsRenderer, ref MapFile mapFile, float ang, float dist, float elev, float perspective, int width, int height, bool mapTexturesON = true, bool buildingTexturesON = true) { #region Useless variables that the rendering API still needs MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File ani = new MKDS_Course_Editor.NSBTA.NSBTA.NSBTA_File(); MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File tp = new MKDS_Course_Editor.NSBTP.NSBTP.NSBTP_File(); MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File ca = new MKDS_Course_Editor.NSBCA.NSBCA.NSBCA_File(); int[] aniframeS = new int[0]; #endregion /* Invalidate drawing surfaces */ mapOpenGlControl.Invalidate(); eventOpenGlControl.Invalidate(); /* Adjust rendering settings */ SetupRenderer(ang, dist, elev, perspective, width, height); /* Render the map model */ mapRenderer.Model = mapFile.mapModel.models[0]; Gl.glScalef(mapFile.mapModel.models[0].modelScale / 64, mapFile.mapModel.models[0].modelScale / 64, mapFile.mapModel.models[0].modelScale / 64); /* Determine if map textures must be rendered */ if (!mapTexturesON) { Gl.glDisable(Gl.GL_TEXTURE_2D); } else { Gl.glEnable(Gl.GL_TEXTURE_2D); } mapRenderer.RenderModel("", ani, aniframeS, aniframeS, aniframeS, aniframeS, aniframeS, ca, false, -1, 0.0f, 0.0f, dist, elev, ang, true, tp, mapFile.mapModel); // Render map model if (!hideBuildings) { if (buildingTexturesON) { Gl.glEnable(Gl.GL_TEXTURE_2D); } else { Gl.glDisable(Gl.GL_TEXTURE_2D); } for (int i = 0; i < mapFile.buildings.Count; i++) { NSBMD file = mapFile.buildings[i].NSBMDFile; if (file is null) { Console.WriteLine("Null building can't be rendered"); } else { buildingsRenderer.Model = file.models[0]; ScaleTranslateRotateBuilding(mapFile.buildings[i]); buildingsRenderer.RenderModel("", ani, aniframeS, aniframeS, aniframeS, aniframeS, aniframeS, ca, false, -1, 0.0f, 0.0f, dist, elev, ang, true, tp, file); } } } } private void ScaleTranslateRotateBuilding(Building building) { float fullXcoord = building.xPosition + building.xFraction / 65536f; float fullYcoord = building.yPosition + building.yFraction / 65536f; float fullZcoord = building.zPosition + building.zFraction / 65536f; float scaleFactor = building.NSBMDFile.models[0].modelScale / 1024; float translateFactor = 256 / building.NSBMDFile.models[0].modelScale; Gl.glScalef(scaleFactor * building.width, scaleFactor * building.height, scaleFactor * building.length); Gl.glTranslatef(fullXcoord * translateFactor / building.width, fullYcoord * translateFactor / building.height, fullZcoord * translateFactor / building.length); Gl.glRotatef(Building.U16ToDeg(building.xRotation), 1, 0, 0); Gl.glRotatef(Building.U16ToDeg(building.yRotation), 0, 1, 0); Gl.glRotatef(Building.U16ToDeg(building.zRotation), 0, 0, 1); } private void SetupRenderer(float ang, float dist, float elev, float perspective, int width, int height) { //TODO: improve this Gl.glEnable(Gl.GL_RESCALE_NORMAL); Gl.glEnable(Gl.GL_COLOR_MATERIAL); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glEnable(Gl.GL_NORMALIZE); Gl.glDisable(Gl.GL_CULL_FACE); Gl.glFrontFace(Gl.GL_CCW); Gl.glClearDepth(1); Gl.glEnable(Gl.GL_ALPHA_TEST); Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA); Gl.glEnable(Gl.GL_BLEND); Gl.glAlphaFunc(Gl.GL_GREATER, 0f); Gl.glClearColor(51f / 255f, 51f / 255f, 51f / 255f, 1f); float aspect; Gl.glViewport(0, 0, width, height); aspect = mapOpenGlControl.Width / mapOpenGlControl.Height;//(vp[2] - vp[0]) / (vp[3] - vp[1]); Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(perspective, aspect, 0.2f, 500.0f);//0.02f, 32.0f); Gl.glTranslatef(0, 0, -dist); Gl.glRotatef(elev, 1, 0, 0); Gl.glRotatef(ang, 0, 1, 0); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glTranslatef(0, 0, -dist); Gl.glRotatef(elev, 1, 0, 0); Gl.glRotatef(-ang, 0, 1, 0); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT2, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLightfv(Gl.GL_LIGHT3, Gl.GL_POSITION, new float[] { 1, 1, 1, 0 }); Gl.glLoadIdentity(); Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0); Gl.glColor3f(1.0f, 1.0f, 1.0f); Gl.glDepthMask(Gl.GL_TRUE); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); } #endregion private void SetupMapEditor() { /* Extract essential NARCs sub-archives*/ toolStripProgressBar.Visible = true; toolStripProgressBar.Maximum = 9; toolStripProgressBar.Value = 0; Helpers.statusLabelMessage("Attempting to unpack Map Editor NARCs... Please wait."); Update(); DSUtils.TryUnpackNarcs(new List { DirNames.maps, DirNames.exteriorBuildingModels, DirNames.buildingConfigFiles, DirNames.buildingTextures, DirNames.mapTextures, DirNames.areaData, }); if (RomInfo.gameFamily == GameFamilies.HGSS) { DSUtils.TryUnpackNarcs(new List { DirNames.interiorBuildingModels }); } Helpers.DisableHandlers(); collisionPainterPictureBox.Image = new Bitmap(100, 100); typePainterPictureBox.Image = new Bitmap(100, 100); switch (RomInfo.gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: mapPartsTabControl.TabPages.Remove(bgsTabPage); break; default: interiorbldRadioButton.Enabled = true; exteriorbldRadioButton.Enabled = true; break; }; /* Add map names to box */ selectMapComboBox.Items.Clear(); int mapCount = romInfo.GetMapCount(); for (int i = 0; i < mapCount; i++) { using (DSUtils.EasyReader reader = new DSUtils.EasyReader(RomInfo.gameDirs[DirNames.maps].unpackedDir + "\\" + i.ToString("D4"))) { switch (RomInfo.gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: reader.BaseStream.Position = 0x10 + reader.ReadUInt32() + reader.ReadUInt32(); break; default: reader.BaseStream.Position = 0x12; short bgsSize = reader.ReadInt16(); long backupPos = reader.BaseStream.Position; reader.BaseStream.Position = 0; reader.BaseStream.Position = backupPos + bgsSize + reader.ReadUInt32() + reader.ReadUInt32(); break; }; reader.BaseStream.Position += 0x14; selectMapComboBox.Items.Add(i.ToString("D3") + MapHeader.nameSeparator + NSBUtils.ReadNSBMDname(reader)); } } toolStripProgressBar.Value++; /* Fill building models list */ updateBuildingListComboBox(false); /* Fill map textures list */ mapTextureComboBox.Items.Clear(); mapTextureComboBox.Items.Add("Untextured"); for (int i = 0; i < romInfo.GetMapTexturesCount(); i++) { mapTextureComboBox.Items.Add("Map Texture Pack [" + i.ToString("D2") + "]"); } toolStripProgressBar.Value++; /* Fill building textures list */ buildTextureComboBox.Items.Clear(); buildTextureComboBox.Items.Add("Untextured"); for (int i = 0; i < romInfo.GetBuildingTexturesCount(); i++) { buildTextureComboBox.Items.Add("Building Texture Pack [" + i.ToString("D2") + "]"); } toolStripProgressBar.Value++; collisionPainterComboBox.Items.Clear(); foreach (string s in PokeDatabase.System.MapCollisionPainters.Values) { collisionPainterComboBox.Items.Add(s); } collisionTypePainterComboBox.Items.Clear(); foreach (string s in PokeDatabase.System.MapCollisionTypePainters.Values) { collisionTypePainterComboBox.Items.Add(s); } toolStripProgressBar.Value++; /* Set controls' initial values */ selectCollisionPanel.BackColor = Color.MidnightBlue; collisionTypePainterComboBox.SelectedIndex = 0; collisionPainterComboBox.SelectedIndex = 1; toolStripProgressBar.Value = 0; toolStripProgressBar.Visible = false; Helpers.EnableHandlers(); //Default selections selectMapComboBox.SelectedIndex = 0; exteriorbldRadioButton.Checked = true; switch (RomInfo.gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: mapTextureComboBox.SelectedIndex = 7; buildTextureComboBox.SelectedIndex = 1; break; case GameFamilies.HGSS: mapTextureComboBox.SelectedIndex = 3; buildTextureComboBox.SelectedIndex = 1; break; default: mapTextureComboBox.SelectedIndex = 2; buildTextureComboBox.SelectedIndex = 1; break; }; Helpers.statusLabelMessage(); } private void addMapFileButton_Click(object sender, EventArgs e) { /* Add new map file to map folder */ new MapFile(0, RomInfo.gameFamily, discardMoveperms: true).SaveToFileDefaultDir(selectMapComboBox.Items.Count); /* Update ComboBox and select new file */ selectMapComboBox.Items.Add(selectMapComboBox.Items.Count.ToString("D3") + MapHeader.nameSeparator + "newmap"); selectMapComboBox.SelectedIndex = selectMapComboBox.Items.Count - 1; } private void replaceMapBinButton_Click(object sender, EventArgs e) { /* Prompt user to select .bin file */ OpenFileDialog of = new OpenFileDialog { Filter = "Map BIN File (*.bin)|*.bin" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } MapFile temp = new MapFile(of.FileName, RomInfo.gameFamily, false); if (temp.correctnessFlag) { UpdateMapBinAndRefresh(temp, "Map BIN imported successfully!"); return; } else { if (RomInfo.gameFamily == GameFamilies.HGSS) { //If HGSS didn't work try reading as Platinum Map temp = new MapFile(of.FileName, GameFamilies.Plat, false); } else { //If Plat didn't work try reading as HGSS Map temp = new MapFile(of.FileName, GameFamilies.HGSS, false); } if (temp.correctnessFlag) { UpdateMapBinAndRefresh(temp, "Map BIN imported and adapted successfully!"); return; } } MessageBox.Show("The BIN file you imported is corrupted!", "", MessageBoxButtons.OK, MessageBoxIcon.Error); } private void UpdateMapBinAndRefresh(MapFile newerVersion, string message) { currentMapFile = newerVersion; /* Update map BIN file */ currentMapFile.SaveToFileDefaultDir(selectMapComboBox.SelectedIndex, showSuccessMessage: false); /* Refresh controls */ selectMapComboBox_SelectedIndexChanged(null, null); /* Display success message */ MessageBox.Show(message, "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void buildTextureComboBox_SelectedIndexChanged(object sender, EventArgs e) { int btIndex = buildTextureComboBox.SelectedIndex; if (Helpers.HandlersDisabled || btIndex < 0) { return; } if (btIndex == 0) { bldTexturesOn = false; } else { string texturePath = RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + (btIndex - 1).ToString("D4"); byte[] textureFile = File.ReadAllBytes(texturePath); Stream str = new MemoryStream(textureFile); foreach (Building building in currentMapFile.buildings) { str.Position = 0; NSBMD file = building.NSBMDFile; if (file != null) { file.materials = NSBTXLoader.LoadNsbtx(str, out file.Textures, out file.Palettes); try { file.MatchTextures(); bldTexturesOn = true; } catch { string itemAtIndex = buildTextureComboBox.Items[btIndex].ToString(); if (!itemAtIndex.StartsWith("Error!")) { Helpers.DisableHandlers(); buildTextureComboBox.Items[btIndex] = itemAtIndex.Insert(0, "Error! - "); Helpers.EnableHandlers(); } bldTexturesOn = false; } } } //buildTextureComboBox.Items[buildTextureComboBox.SelectedIndex] = "Error - Building Texture Pack too small [" + (buildTextureComboBox.SelectedIndex - 1).ToString("D2") + "]"; } RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void mapTextureComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } if (mapTextureComboBox.SelectedIndex == 0) mapTexturesOn = false; else { mapTexturesOn = true; string texturePath = RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + (mapTextureComboBox.SelectedIndex - 1).ToString("D4"); currentMapFile.mapModel.materials = NSBTXLoader.LoadNsbtx(new MemoryStream(File.ReadAllBytes(texturePath)), out currentMapFile.mapModel.Textures, out currentMapFile.mapModel.Palettes); try { currentMapFile.mapModel.MatchTextures(); } catch { } } RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void mapEditorTabPage_Enter(object sender, EventArgs e) { mapOpenGlControl.MakeCurrent(); if (selectMapComboBox.SelectedIndex > -1) RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void mapOpenGlControl_MouseWheel(object sender, MouseEventArgs e) { if (mapPartsTabControl.SelectedTab == buildingsTabPage && bldPlaceWithMouseCheckbox.Checked) { return; } dist -= (float)e.Delta / 200; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void mapOpenGlControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { byte multiplier = 2; if (e.Modifiers == Keys.Shift) { multiplier = 1; } else if (e.Modifiers == Keys.Control) { multiplier = 4; } switch (e.KeyCode) { case Keys.Right: rRot = true; lRot = false; break; case Keys.Left: rRot = false; lRot = true; break; case Keys.Up: dRot = false; uRot = true; break; case Keys.Down: dRot = true; uRot = false; break; } if (rRot ^ lRot) { if (rRot) { ang += 1 * multiplier; } else if (lRot) { ang -= 1 * multiplier; } } if (uRot ^ dRot) { if (uRot) { elev -= 1 * multiplier; } else if (dRot) { elev += 1 * multiplier; } } mapOpenGlControl.Invalidate(); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void mapOpenGlControl_KeyUp(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Right: rRot = false; break; case Keys.Left: lRot = false; break; case Keys.Up: uRot = false; break; case Keys.Down: dRot = false; break; } } private void mapOpenGlControl_Click(object sender, EventArgs e) { if (radio2D.Checked && bldPlaceWithMouseCheckbox.Checked) { PointF coordinates = mapRenderPanel.PointToClient(Cursor.Position); PointF mouseTilePos = new PointF(coordinates.X / mapEditorSquareSize, coordinates.Y / mapEditorSquareSize); if (buildingsListBox.SelectedIndex > -1) { if (!bldPlaceLockXcheckbox.Checked) xBuildUpDown.Value = (decimal)(Math.Round(mouseTilePos.X, bldDecimalPositions) - 16); if (!bldPlaceLockZcheckbox.Checked) zBuildUpDown.Value = (decimal)(Math.Round(mouseTilePos.Y, bldDecimalPositions) - 16); } } } private void bldRoundWhole_CheckedChanged(object sender, EventArgs e) { bldDecimalPositions = 0; } private void bldRoundDec_CheckedChanged(object sender, EventArgs e) { bldDecimalPositions = 1; } private void bldRoundCent_CheckedChanged(object sender, EventArgs e) { bldDecimalPositions = 2; } private void bldRoundMil_CheckedChanged(object sender, EventArgs e) { bldDecimalPositions = 3; } private void bldRoundDecmil_CheckedChanged(object sender, EventArgs e) { bldDecimalPositions = 4; } private void bldRoundCentMil_CheckedChanged(object sender, EventArgs e) { bldDecimalPositions = 5; } private void bldPlaceWithMouseCheckbox_CheckedChanged(object sender, EventArgs e) { bool status = bldPlaceWithMouseCheckbox.Checked && radio2D.Checked; bldPlaceLockXcheckbox.Enabled = status; bldPlaceLockZcheckbox.Enabled = status; bldRoundGroupbox.Enabled = status; lockXZgroupbox.Enabled = status; if (status) { SetCam2D(); } } private void bldPlaceLockXcheckbox_CheckedChanged(object sender, EventArgs e) { ExclusiveCBInvert(bldPlaceLockZcheckbox); } private void bldPlaceLockZcheckbox_CheckedChanged(object sender, EventArgs e) { ExclusiveCBInvert(bldPlaceLockXcheckbox); } private void mapPartsTabControl_SelectedIndexChanged(object sender, EventArgs e) { if (mapPartsTabControl.SelectedTab == buildingsTabPage) { radio2D.Checked = false; hideBuildings = false; radio3D.Enabled = true; radio2D.Enabled = true; wireframeCheckBox.Enabled = true; mapOpenGlControl.BringToFront(); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } else if (mapPartsTabControl.SelectedTab == permissionsTabPage) { radio2D.Checked = true; hideBuildings = false; radio3D.Enabled = false; radio2D.Enabled = false; wireframeCheckBox.Enabled = false; SetCam2D(); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); movPictureBox.BackgroundImage = GrabMapScreenshot(movPictureBox.Width, movPictureBox.Height); movPictureBox.BringToFront(); } else if (mapPartsTabControl.SelectedTab == modelTabPage) { radio2D.Checked = false; hideBuildings = true; radio3D.Enabled = true; radio2D.Enabled = true; wireframeCheckBox.Enabled = true; mapOpenGlControl.BringToFront(); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } else { // Terrain and BGS radio2D.Checked = true; hideBuildings = false; radio3D.Enabled = false; radio2D.Enabled = false; wireframeCheckBox.Enabled = false; mapOpenGlControl.BringToFront(); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } } private void radio2D_CheckedChanged(object sender, EventArgs e) { bool _2dmodeSelected = radio2D.Checked; if (_2dmodeSelected) { SetCam2D(); } else { SetCam3D(); } bldPlaceWithMouseCheckbox.Enabled = _2dmodeSelected; radio3D.Checked = !_2dmodeSelected; bldPlaceWithMouseCheckbox_CheckedChanged(null, null); } private void SetCam2D() { perspective = 4f; ang = 0f; dist = 115.2f; elev = 90f; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void SetCam3D() { perspective = 45f; ang = 0f; dist = 12.8f; elev = 50.0f; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void mapScreenshotButton_Click(object sender, EventArgs e) { MessageBox.Show("Choose where to save the map screenshot.", "Choose destination path", MessageBoxButtons.OK, MessageBoxIcon.Information); SaveFileDialog imageSFD = new SaveFileDialog { Filter = "PNG File(*.png)|*.png", }; if (imageSFD.ShowDialog() != DialogResult.OK) { return; } RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); int newW = 512, newH = 512; Bitmap newImage = new Bitmap(newW, newH); using (var graphCtr = Graphics.FromImage(newImage)) { graphCtr.SmoothingMode = SmoothingMode.HighQuality; graphCtr.InterpolationMode = InterpolationMode.NearestNeighbor; graphCtr.PixelOffsetMode = PixelOffsetMode.HighQuality; graphCtr.DrawImage(GrabMapScreenshot(mapOpenGlControl.Width, mapOpenGlControl.Height), 0, 0, newW, newH); } newImage.Save(imageSFD.FileName); MessageBox.Show("Screenshot saved.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void removeLastMapFileButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("Are you sure you want to delete the last Map BIN File?", "Confirm deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d.Equals(DialogResult.Yes)) { /* Delete last map file */ File.Delete(RomInfo.gameDirs[DirNames.maps].unpackedDir + "\\" + (selectMapComboBox.Items.Count - 1).ToString("D4")); /* Check if currently selected file is the last one, and in that case select the one before it */ int lastIndex = selectMapComboBox.Items.Count - 1; if (selectMapComboBox.SelectedIndex == lastIndex) selectMapComboBox.SelectedIndex--; /* Remove item from ComboBox */ selectMapComboBox.Items.RemoveAt(lastIndex); } } private void saveMapButton_Click(object sender, EventArgs e) { currentMapFile.SaveToFileDefaultDir(selectMapComboBox.SelectedIndex); } private void exportCurrentMapBinButton_Click(object sender, EventArgs e) { currentMapFile.SaveToFileExplorePath(selectMapComboBox.SelectedItem.ToString()); } private void selectMapComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } /* Load map data into MapFile class instance */ currentMapFile = new MapFile(selectMapComboBox.SelectedIndex, RomInfo.gameFamily); /* Load map textures for renderer */ if (mapTextureComboBox.SelectedIndex > 0) { MW_LoadModelTextures(currentMapFile.mapModel, RomInfo.gameDirs[DirNames.mapTextures].unpackedDir, mapTextureComboBox.SelectedIndex - 1); } /* Load buildings nsbmd and textures for renderer into MapFile's building objects */ for (int i = 0; i < currentMapFile.buildings.Count; i++) { currentMapFile.buildings[i].LoadModelData(romInfo.GetBuildingModelsDirPath(interiorbldRadioButton.Checked)); // Load building nsbmd if (buildTextureComboBox.SelectedIndex > 0) { MW_LoadModelTextures(currentMapFile.buildings[i].NSBMDFile, RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir, buildTextureComboBox.SelectedIndex - 1); // Load building textures } } /* Render the map */ RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); /* Draw permissions in the small selection boxes */ DrawSmallCollision(); DrawSmallTypeCollision(); /* Draw selected permissions category */ if (selectCollisionPanel.BackColor == Color.MidnightBlue) { DrawCollisionGrid(); } else { DrawTypeGrid(); } /* Set map screenshot as background picture in permissions editor PictureBox */ movPictureBox.BackgroundImage = GrabMapScreenshot(movPictureBox.Width, movPictureBox.Height); RestorePainter(); /* Fill buildings ListBox, and if not empty select first item */ FillBuildingsBox(); if (buildingsListBox.Items.Count > 0) { buildingsListBox.SelectedIndex = 0; } modelSizeLBL.Text = currentMapFile.mapModelData.Length.ToString() + " B"; terrainSizeLBL.Text = currentMapFile.bdhc.Length.ToString() + " B"; if (RomInfo.gameFamily == GameFamilies.HGSS) { BGSSizeLBL.Text = currentMapFile.bgs.Length.ToString() + " B"; } } private void wireframeCheckBox_CheckedChanged(object sender, EventArgs e) { if (wireframeCheckBox.Checked) { Gl.glPolygonMode(Gl.GL_FRONT_AND_BACK, Gl.GL_LINE); } else { Gl.glPolygonMode(Gl.GL_FRONT_AND_BACK, Gl.GL_FILL); } RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } #region Building Editor private void addBuildingButton_Click(object sender, EventArgs e) { AddBuildingToMap(new Building()); } private void duplicateBuildingButton_Click(object sender, EventArgs e) { if (buildingsListBox.SelectedIndex > -1) { AddBuildingToMap(new Building(currentMapFile.buildings[buildingsListBox.SelectedIndex])); } } private void AddBuildingToMap(Building b) { currentMapFile.buildings.Add(b); /* Load new building's model and textures for the renderer */ b.LoadModelData(romInfo.GetBuildingModelsDirPath(interiorbldRadioButton.Checked)); MW_LoadModelTextures(b.NSBMDFile, RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir, buildTextureComboBox.SelectedIndex - 1); currentMapFile.buildings[currentMapFile.buildings.Count - 1] = b; /* Add new entry to buildings ListBox */ buildingsListBox.Items.Add((buildingsListBox.Items.Count + 1).ToString("D2") + MapHeader.nameSeparator + buildIndexComboBox.Items[(int)b.modelID]); buildingsListBox.SelectedIndex = buildingsListBox.Items.Count - 1; /* Redraw scene with new building */ RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void buildIndexComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || buildingsListBox.SelectedIndex < 0) { return; } Helpers.DisableHandlers(); buildingsListBox.Items[buildingsListBox.SelectedIndex] = (buildingsListBox.SelectedIndex + 1).ToString("D2") + MapHeader.nameSeparator + buildIndexComboBox.SelectedItem; Helpers.EnableHandlers(); currentMapFile.buildings[buildingsListBox.SelectedIndex].modelID = (uint)buildIndexComboBox.SelectedIndex; currentMapFile.buildings[buildingsListBox.SelectedIndex].LoadModelData(romInfo.GetBuildingModelsDirPath(interiorbldRadioButton.Checked)); MW_LoadModelTextures(currentMapFile.buildings[buildingsListBox.SelectedIndex].NSBMDFile, RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir, buildTextureComboBox.SelectedIndex - 1); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void buildingsListBox_SelectedIndexChanged(object sender, EventArgs e) { int buildingNumber = buildingsListBox.SelectedIndex; if (Helpers.HandlersDisabled || buildingNumber < 0) { return; } Helpers.BackUpDisableHandler(); Helpers.DisableHandlers(); Building selected = currentMapFile.buildings[buildingNumber]; if (selected.NSBMDFile != null) { buildIndexComboBox.SelectedIndex = (int)selected.modelID; xBuildUpDown.Value = selected.xPosition + (decimal)selected.xFraction / 65535; yBuildUpDown.Value = selected.yPosition + (decimal)selected.yFraction / 65535; zBuildUpDown.Value = selected.zPosition + (decimal)selected.zFraction / 65535; xRotBuildUpDown.Value = selected.xRotation; yRotBuildUpDown.Value = selected.yRotation; zRotBuildUpDown.Value = selected.zRotation; xRotDegBldUpDown.Value = (decimal)Building.U16ToDeg((ushort)xRotBuildUpDown.Value); yRotDegBldUpDown.Value = (decimal)Building.U16ToDeg((ushort)yRotBuildUpDown.Value); zRotDegBldUpDown.Value = (decimal)Building.U16ToDeg((ushort)zRotBuildUpDown.Value); buildingWidthUpDown.Value = selected.width; buildingHeightUpDown.Value = selected.height; buildingLengthUpDown.Value = selected.length; } Helpers.RestoreDisableHandler(); } private void xRotBuildUpDown_ValueChanged(object sender, EventArgs e) { int selection = buildingsListBox.SelectedIndex; if (selection <= -1 || Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); currentMapFile.buildings[selection].xRotation = (ushort)((int)xRotBuildUpDown.Value & ushort.MaxValue); xRotDegBldUpDown.Value = (decimal)Building.U16ToDeg(currentMapFile.buildings[selection].xRotation); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); Console.WriteLine("X Rot " + currentMapFile.buildings[selection].xRotation.ToString()); } private void yRotBuildUpDown_ValueChanged(object sender, EventArgs e) { int selection = buildingsListBox.SelectedIndex; if (selection <= -1 || Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); yRotDegBldUpDown.Value = (decimal)Building.U16ToDeg(currentMapFile.buildings[selection].yRotation = (ushort)((int)yRotBuildUpDown.Value & ushort.MaxValue)); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); } private void zRotBuildUpDown_ValueChanged(object sender, EventArgs e) { int selection = buildingsListBox.SelectedIndex; if (selection <= -1 || Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); zRotDegBldUpDown.Value = (decimal)Building.U16ToDeg(currentMapFile.buildings[selection].zRotation = (ushort)((int)zRotBuildUpDown.Value & ushort.MaxValue)); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); } private void xRotDegBldUpDown_ValueChanged(object sender, EventArgs e) { if (buildingsListBox.SelectedIndex <= -1 || Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); currentMapFile.buildings[buildingsListBox.SelectedIndex].xRotation = (ushort)(xRotBuildUpDown.Value = Building.DegToU16((float)xRotDegBldUpDown.Value)); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); } private void yRotDegBldUpDown_ValueChanged(object sender, EventArgs e) { if (buildingsListBox.SelectedIndex <= -1 || Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); currentMapFile.buildings[buildingsListBox.SelectedIndex].yRotation = (ushort)(yRotBuildUpDown.Value = Building.DegToU16((float)yRotDegBldUpDown.Value)); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); } private void zRotDegBldUpDown_ValueChanged(object sender, EventArgs e) { if (buildingsListBox.SelectedIndex <= -1 || Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); currentMapFile.buildings[buildingsListBox.SelectedIndex].zRotation = (ushort)(zRotBuildUpDown.Value = Building.DegToU16((float)zRotDegBldUpDown.Value)); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); } private void buildingHeightUpDown_ValueChanged(object sender, EventArgs e) { if (buildingsListBox.SelectedIndex > -1) { currentMapFile.buildings[buildingsListBox.SelectedIndex].height = (uint)buildingHeightUpDown.Value; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } } private void buildingLengthUpDown_ValueChanged(object sender, EventArgs e) { if (buildingsListBox.SelectedIndex > -1) { currentMapFile.buildings[buildingsListBox.SelectedIndex].length = (uint)buildingLengthUpDown.Value; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } } private void buildingWidthUpDown_ValueChanged(object sender, EventArgs e) { if (buildingsListBox.SelectedIndex > -1) { currentMapFile.buildings[buildingsListBox.SelectedIndex].width = (uint)buildingWidthUpDown.Value; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } } private void exportBuildingsButton_Click(object sender, EventArgs e) { SaveFileDialog sf = new SaveFileDialog { Filter = MapFile.BuildingsFilter, FileName = selectMapComboBox.SelectedItem.ToString() }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } File.WriteAllBytes(sf.FileName, currentMapFile.BuildingsToByteArray()); MessageBox.Show("Buildings exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void importBuildingsButton_Click(object sender, EventArgs e) { OpenFileDialog ib = new OpenFileDialog { Filter = MapFile.BuildingsFilter }; if (ib.ShowDialog(this) != DialogResult.OK) { return; } currentMapFile.ImportBuildings(File.ReadAllBytes(ib.FileName)); FillBuildingsBox(); if (buildingsListBox.Items.Count > 0){ buildingsListBox.SelectedIndex = 0; } for (int i = 0; i < currentMapFile.buildings.Count; i++) { currentMapFile.buildings[i].LoadModelData(romInfo.GetBuildingModelsDirPath(interiorbldRadioButton.Checked)); // Load building nsbmd MW_LoadModelTextures(currentMapFile.buildings[i].NSBMDFile, RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir, buildTextureComboBox.SelectedIndex - 1); // Load building textures } RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); MessageBox.Show("Buildings imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void interiorRadioButton_CheckedChanged(object sender, EventArgs e) { Helpers.DisableHandlers(); int index = buildIndexComboBox.SelectedIndex; buildIndexComboBox.Items.Clear(); /* Fill building models list */ updateBuildingListComboBox(interiorbldRadioButton.Checked); FillBuildingsBox(); try { buildIndexComboBox.SelectedIndex = index; } catch (ArgumentOutOfRangeException) { buildIndexComboBox.SelectedIndex = 0; currentMapFile.buildings[buildIndexComboBox.SelectedIndex].modelID = 0; } /* Load buildings nsbmd and textures for renderer into MapFile's building objects */ for (int i = 0; i < currentMapFile.buildings.Count; i++) { currentMapFile.buildings[i].LoadModelData(romInfo.GetBuildingModelsDirPath(interiorbldRadioButton.Checked)); // Load building nsbmd MW_LoadModelTextures(currentMapFile.buildings[i].NSBMDFile, RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir, buildTextureComboBox.SelectedIndex - 1); // Load building textures } /* Render the map */ RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); } private void removeBuildingButton_Click(object sender, EventArgs e) { int toRemoveListBoxID = buildingsListBox.SelectedIndex; if (toRemoveListBoxID > -1) { Helpers.DisableHandlers(); /* Remove building object from list and the corresponding entry in the ListBox */ currentMapFile.buildings.RemoveAt(toRemoveListBoxID); buildingsListBox.Items.RemoveAt(toRemoveListBoxID); FillBuildingsBox(); // Update ListBox RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); Helpers.EnableHandlers(); if (buildingsListBox.Items.Count > 0) { if (toRemoveListBoxID > 0) { buildingsListBox.SelectedIndex = toRemoveListBoxID - 1; } else { buildingsListBox.SelectedIndex = 0; } } } } private void xBuildUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || buildingsListBox.SelectedIndex < 0) { return; } var wholePart = Math.Truncate(xBuildUpDown.Value); var decPart = xBuildUpDown.Value - wholePart; if (decPart < 0) { decPart += 1; wholePart -= 1; } currentMapFile.buildings[buildingsListBox.SelectedIndex].xPosition = (short)wholePart; currentMapFile.buildings[buildingsListBox.SelectedIndex].xFraction = (ushort)(decPart * 65535); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void zBuildUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || buildingsListBox.SelectedIndex < 0) return; var wholePart = Math.Truncate(zBuildUpDown.Value); var decPart = zBuildUpDown.Value - wholePart; if (decPart < 0) { decPart += 1; wholePart -= 1; } currentMapFile.buildings[buildingsListBox.SelectedIndex].zPosition = (short)wholePart; currentMapFile.buildings[buildingsListBox.SelectedIndex].zFraction = (ushort)(decPart * 65535); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void yBuildUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || buildingsListBox.SelectedIndex < 0) return; var wholePart = Math.Truncate(yBuildUpDown.Value); var decPart = yBuildUpDown.Value - wholePart; if (decPart < 0) { decPart += 1; wholePart -= 1; } currentMapFile.buildings[buildingsListBox.SelectedIndex].yPosition = (short)wholePart; currentMapFile.buildings[buildingsListBox.SelectedIndex].yFraction = (ushort)(decPart * 65535); RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } #endregion #region Movement Permissions Editor #region Subroutines private Bitmap GrabMapScreenshot(int width, int height) { Bitmap bmp = new Bitmap(width, height); System.Drawing.Imaging.BitmapData data = bmp.LockBits(new Rectangle(0, 0, width, height), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb); Gl.glReadPixels(0, 0, width, height, Gl.GL_BGR, Gl.GL_UNSIGNED_BYTE, data.Scan0); bmp.UnlockBits(data); bmp.RotateFlip(RotateFlipType.RotateNoneFlipY); return bmp; } private void DrawCollisionGrid() { Bitmap mainBm = new Bitmap(608, 608); using (Graphics gMain = Graphics.FromImage(mainBm)) { for (int i = 0; i < 32; i++) { for (int j = 0; j < 32; j++) { PrepareCollisionPainterGraphics(currentMapFile.collisions[i, j]); /* Draw collision on the main grid */ mainCell = new Rectangle(19 * j, 19 * i, 19, 19); gMain.DrawRectangle(paintPen, mainCell); gMain.FillRectangle(paintBrush, mainCell); } } } movPictureBox.Image = mainBm; movPictureBox.Invalidate(); } private void DrawSmallCollision() { Bitmap smallBm = new Bitmap(100, 100); using (Graphics gSmall = Graphics.FromImage(smallBm)) { for (int i = 0; i < 32; i++) { for (int j = 0; j < 32; j++) { PrepareCollisionPainterGraphics(currentMapFile.collisions[i, j]); /* Draw collision on the small image */ smallCell = new Rectangle(3 * j, 3 * i, 3, 3); gSmall.DrawRectangle(paintPen, smallCell); gSmall.FillRectangle(paintBrush, smallCell); } } } collisionPictureBox.Image = smallBm; collisionPictureBox.Invalidate(); } private void DrawTypeGrid() { Bitmap mainBm = new Bitmap(608, 608); using (Graphics gMain = Graphics.FromImage(mainBm)) { for (int i = 0; i < 32; i++) { for (int j = 0; j < 32; j++) { PrepareTypePainterGraphics(currentMapFile.types[i, j]); /* Draw cell with color */ mainCell = new Rectangle(19 * j, 19 * i, 19, 19); gMain.DrawRectangle(paintPen, mainCell); gMain.FillRectangle(paintBrush, mainCell); /* Draw byte on cell */ StringFormat sf = new StringFormat { LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Center }; gMain.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; gMain.DrawString(currentMapFile.types[i, j].ToString("X2"), textFont, textBrush, mainCell, sf); } } } movPictureBox.Image = mainBm; movPictureBox.Invalidate(); } private void DrawSmallTypeCollision() { Bitmap smallBm = new Bitmap(100, 100); using (Graphics gSmall = Graphics.FromImage(smallBm)) { for (int i = 0; i < 32; i++) { for (int j = 0; j < 32; j++) { PrepareTypePainterGraphics(currentMapFile.types[i, j]); /* Draw collision on the small image */ smallCell = new Rectangle(3 * j, 3 * i, 3, 3); gSmall.DrawRectangle(paintPen, smallCell); gSmall.FillRectangle(paintBrush, smallCell); } } } typePictureBox.Image = smallBm; typePictureBox.Invalidate(); } private void scanUsedCollisionTypesButton_Click(object sender, EventArgs e) { SortedSet allUsed = FindUsedCollisions(); List lst = allUsed.ToList(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < allUsed.Count; i++) { sb.Append("0x"); sb.Append(lst[i].ToString("X2")); if (i != allUsed.Count - 1) { sb.Append(", "); } } string report = sb.ToString(); MessageBox.Show($"This report has been copied to the clipboard as well, for your convenience.\n\nUsed types (in all Map BINs): \n{report}", "Used collision types report", MessageBoxButtons.OK, MessageBoxIcon.Information); Clipboard.SetText(report); } private SortedSet FindUsedCollisions() { int mapCount = romInfo.GetMapCount(); SortedSet allUsedTypes = new SortedSet(); for (int i = 0; i < mapCount; i++) { allUsedTypes.UnionWith(new MapFile(i, gameFamily, false, false).GetUsedTypes()); } return allUsedTypes; } private SortedSet FindUnusedCollisions() { int mapCount = romInfo.GetMapCount(); SortedSet allUnusedTypes = new SortedSet(); for (int i = 0; i <= byte.MaxValue; i++) { allUnusedTypes.Add((byte)i); } allUnusedTypes.ExceptWith(FindUsedCollisions()); return allUnusedTypes; } private void EditCell(int xPosition, int yPosition) { try { mainCell = new Rectangle(xPosition * mapEditorSquareSize, yPosition * mapEditorSquareSize, mapEditorSquareSize, mapEditorSquareSize); smallCell = new Rectangle(xPosition * 3, yPosition * 3, 3, 3); using (Graphics mainG = Graphics.FromImage(movPictureBox.Image)) { /* Draw new cell on main grid */ mainG.SetClip(mainCell); mainG.Clear(Color.Transparent); mainG.DrawRectangle(paintPen, mainCell); mainG.FillRectangle(paintBrush, mainCell); if (selectTypePanel.BackColor == Color.MidnightBlue) { sf = new StringFormat { LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Center }; mainG.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; mainG.DrawString(paintByte.ToString("X2"), textFont, textBrush, mainCell, sf); } } if (selectCollisionPanel.BackColor == Color.MidnightBlue) { using (Graphics smallG = Graphics.FromImage(collisionPictureBox.Image)) { /* Draw new cell on small grid */ smallG.SetClip(smallCell); smallG.Clear(Color.Transparent); smallG.DrawRectangle(paintPen, smallCell); smallG.FillRectangle(paintBrush, smallCell); } currentMapFile.collisions[yPosition, xPosition] = paintByte; collisionPictureBox.Invalidate(); } else { using (Graphics smallG = Graphics.FromImage(typePictureBox.Image)) { /* Draw new cell on small grid */ smallG.SetClip(smallCell); smallG.Clear(Color.Transparent); smallG.DrawRectangle(paintPen, smallCell); smallG.FillRectangle(paintBrush, smallCell); } currentMapFile.types[yPosition, xPosition] = paintByte; typePictureBox.Invalidate(); } movPictureBox.Invalidate(); } catch { return; } } private void FloodFillUtil(byte[,] screen, int x, int y, byte prevC, byte newC, int sizeX, int sizeY) { // Base cases if (x < 0 || x >= sizeX || y < 0 || y >= sizeY) { return; } if (screen[y, x] != prevC) { return; } // Replace the color at (x, y) screen[y, x] = newC; // Recur for north, east, south and west FloodFillUtil(screen, x + 1, y, prevC, newC, sizeX, sizeY); FloodFillUtil(screen, x - 1, y, prevC, newC, sizeX, sizeY); FloodFillUtil(screen, x, y + 1, prevC, newC, sizeX, sizeY); FloodFillUtil(screen, x, y - 1, prevC, newC, sizeX, sizeY); } private void FloodFillCell(int x, int y) { byte toPaint = paintByte; if (selectCollisionPanel.BackColor == Color.MidnightBlue) { if (currentMapFile.collisions[y, x] != paintByte) { FloodFillUtil(currentMapFile.collisions, x, y, currentMapFile.collisions[y, x], paintByte, 32, 32); DrawCollisionGrid(); DrawSmallCollision(); PrepareCollisionPainterGraphics(paintByte); } } else { if (currentMapFile.types[y, x] != paintByte) { FloodFillUtil(currentMapFile.types, x, y, currentMapFile.types[y, x], paintByte, 32, 32); DrawTypeGrid(); DrawSmallTypeCollision(); PrepareTypePainterGraphics(paintByte); } } /* Draw permissions in the small selection boxes */ } private void RestorePainter() { if (selectCollisionPanel.BackColor == Color.MidnightBlue) { collisionPainterComboBox_SelectedIndexChange(null, null); } else if (collisionTypePainterComboBox.Enabled) { typePainterComboBox_SelectedIndexChanged(null, null); } else { typePainterUpDown_ValueChanged(null, null); } } private void PrepareCollisionPainterGraphics(byte collisionValue) { switch (collisionValue) { case 0x01: // Snow paintPen = new Pen(Color.FromArgb(128, Color.Lavender)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Lavender)); break; case 0x02: // Leaves paintPen = new Pen(Color.FromArgb(128, Color.ForestGreen)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.ForestGreen)); break; case 0x04: // Grass paintPen = new Pen(Color.FromArgb(128, Color.LimeGreen)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.LimeGreen)); break; case 0x06: // Stairs and ice paintPen = new Pen(Color.FromArgb(128, Color.PowderBlue)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.PowderBlue)); break; case 0x07: // Metal paintPen = new Pen(Color.FromArgb(128, Color.Silver)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Silver)); break; case 0x0A: // Stone paintPen = new Pen(Color.FromArgb(128, Color.DimGray)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.DimGray)); break; case 0x0D: // Wood paintPen = new Pen(Color.FromArgb(128, Color.SaddleBrown)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.SaddleBrown)); break; case 0x80: paintPen = new Pen(Color.FromArgb(128, Color.Red)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Red)); break; default: // 0x00 - Walkeable paintPen = new Pen(Color.FromArgb(128, Color.White)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.White)); break; } } private void PrepareTypePainterGraphics(byte typeValue) { switch (typeValue) { case 0x0: paintPen = new Pen(Color.FromArgb(128, Color.White)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.White)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x2: paintPen = new Pen(Color.FromArgb(128, Color.LimeGreen)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.LimeGreen)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x3: paintPen = new Pen(Color.FromArgb(128, Color.Green)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Green)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x8: case 0xC: paintPen = new Pen(Color.FromArgb(128, Color.BurlyWood)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.BurlyWood)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; case 0x10: paintPen = new Pen(Color.FromArgb(128, Color.SkyBlue)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.SkyBlue)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x13: paintPen = new Pen(Color.FromArgb(128, Color.SteelBlue)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.SteelBlue)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x15: paintPen = new Pen(Color.FromArgb(128, Color.RoyalBlue)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.RoyalBlue)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x16: paintPen = new Pen(Color.FromArgb(128, Color.LightSlateGray)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.LightSlateGray)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x20: paintPen = new Pen(Color.FromArgb(128, Color.Cyan)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Cyan)); textBrush = new SolidBrush(Color.Black); textFont = new Font("Arial", 9.0f); break; case 0x21: paintPen = new Pen(Color.FromArgb(128, Color.PeachPuff)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.PeachPuff)); textBrush = new SolidBrush(Color.Black); textFont = new Font("Arial", 9.0f); break; case 0x30: case 0x31: case 0x32: case 0x33: paintPen = new Pen(Color.FromArgb(128, Color.Red)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Red)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x3C: case 0x3D: case 0x3E: paintPen = new Pen(Color.FromArgb(0x7F654321)); paintBrush = new SolidBrush(Color.FromArgb(0x7F654321)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; case 0x38: case 0x39: case 0x3A: case 0x3B: paintPen = new Pen(Color.FromArgb(128, Color.Maroon)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Maroon)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; case 0x40: case 0x41: case 0x42: case 0x43: paintPen = new Pen(Color.FromArgb(128, Color.Gold)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Gold)); textBrush = new SolidBrush(Color.Black); textFont = new Font("Arial", 9.0f); break; case 0x4B: case 0x4C: paintPen = new Pen(Color.FromArgb(128, Color.Sienna)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Sienna)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 9.0f); break; case 0x5E: paintPen = new Pen(Color.FromArgb(128, Color.DarkOrchid)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.DarkOrchid)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; case 0x5F: case 0x62: case 0x63: case 0x64: case 0x65: case 0x69: paintPen = new Pen(Color.FromArgb(128, Color.DarkOrchid)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.DarkOrchid)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; case 0x6C: case 0x6D: case 0x6E: case 0x6F: paintPen = new Pen(Color.FromArgb(128, Color.DarkOrchid)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.DarkOrchid)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; case 0xA1: case 0xA2: case 0xA3: paintPen = new Pen(Color.FromArgb(128, Color.Honeydew)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Honeydew)); textBrush = new SolidBrush(Color.Black); textFont = new Font("Arial", 8.65f); break; case 0xA4: paintPen = new Pen(Color.FromArgb(128, Color.Peru)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.Peru)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; case 0xA6: paintPen = new Pen(Color.FromArgb(128, Color.SeaGreen)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.SeaGreen)); textBrush = new SolidBrush(Color.White); textFont = new Font("Arial", 8.65f); break; default: paintPen = new Pen(Color.FromArgb(128, Color.White)); paintBrush = new SolidBrush(Color.FromArgb(128, Color.White)); textBrush = new SolidBrush(Color.Black); textFont = new Font("Arial", 8.65f); break; } } #endregion private void clearCurrentButton_Click(object sender, EventArgs e) { PictureBox smallBox = selectCollisionPanel.BackColor == Color.MidnightBlue ? collisionPictureBox : typePictureBox; using (Graphics smallG = Graphics.FromImage(smallBox.Image)) { using (Graphics mainG = Graphics.FromImage(movPictureBox.Image)) { smallG.Clear(Color.Transparent); mainG.Clear(Color.Transparent); PrepareCollisionPainterGraphics(0x0); for (int i = 0; i < 32; i++) { for (int j = 0; j < 32; j++) { mainCell = new Rectangle(19 * j, 19 * i, 19, 19); mainG.DrawRectangle(paintPen, mainCell); mainG.FillRectangle(paintBrush, mainCell); } } } } if (selectCollisionPanel.BackColor == Color.MidnightBlue) { currentMapFile.collisions = new byte[32, 32]; // Set all collision bytes to clear (0x0) } else { currentMapFile.types = new byte[32, 32]; // Set all type bytes to clear (0x0) } movPictureBox.Invalidate(); // Refresh main image smallBox.Invalidate(); RestorePainter(); } private void collisionPictureBox_Click(object sender, EventArgs e) { selectTypePanel.BackColor = Color.Transparent; typeGroupBox.Enabled = false; selectCollisionPanel.BackColor = Color.MidnightBlue; collisionGroupBox.Enabled = true; DrawCollisionGrid(); RestorePainter(); } private void exportMovButton_Click(object sender, EventArgs e) { SaveFileDialog em = new SaveFileDialog { Filter = MapFile.MovepermsFilter, FileName = selectMapComboBox.SelectedItem.ToString() }; if (em.ShowDialog(this) != DialogResult.OK) { return; } File.WriteAllBytes(em.FileName, currentMapFile.CollisionsToByteArray()); MessageBox.Show("Permissions exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void importMovButton_Click(object sender, EventArgs e) { OpenFileDialog ip = new OpenFileDialog { Filter = MapFile.MovepermsFilter }; if (ip.ShowDialog(this) != DialogResult.OK) { return; } currentMapFile.ImportPermissions(File.ReadAllBytes(ip.FileName)); DrawSmallCollision(); DrawSmallTypeCollision(); if (selectCollisionPanel.BackColor == Color.MidnightBlue) { DrawCollisionGrid(); } else { DrawTypeGrid(); } RestorePainter(); MessageBox.Show("Permissions imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void movPictureBox_Click(object sender, EventArgs e) { MouseEventArgs mea = (MouseEventArgs)e; int xCoord = movPictureBox.PointToClient(MousePosition).X / mapEditorSquareSize; int yCoord = movPictureBox.PointToClient(MousePosition).Y / mapEditorSquareSize; if (mea.Button == MouseButtons.Middle) { FloodFillCell(xCoord, yCoord); } else if (mea.Button == MouseButtons.Left) { EditCell(xCoord, yCoord); } else { if (selectCollisionPanel.BackColor == Color.MidnightBlue) { byte newValue = currentMapFile.collisions[yCoord, xCoord]; updateCollisions(newValue); } else { byte newValue = currentMapFile.types[yCoord, xCoord]; typePainterUpDown.Value = newValue; updateTypeCollisions(newValue); }; } } private void movPictureBox_MouseMove(object sender, MouseEventArgs e) { if ((Control.MouseButtons & MouseButtons.Left) == MouseButtons.Left) { EditCell(e.Location.X / mapEditorSquareSize, e.Location.Y / mapEditorSquareSize); } } private void collisionPainterComboBox_SelectedIndexChange(object sender, EventArgs e) { byte? collisionByte = StringToCollisionByte((string)collisionPainterComboBox.SelectedItem); if (collisionByte != null) { updateCollisions((byte)collisionByte); } } private void typePainterComboBox_SelectedIndexChanged(object sender, EventArgs e) { byte? collisionByte = StringToCollisionByte((string)collisionTypePainterComboBox.SelectedItem); if (collisionByte != null) { updateTypeCollisions((byte)collisionByte); } } private byte? StringToCollisionByte(string selectedItem) { byte? result; try { result = Convert.ToByte(selectedItem.Substring(1, 2), 16); } catch (FormatException) { Console.WriteLine("Format incompatible"); result = null; } return result; } private void typePainterUpDown_ValueChanged(object sender, EventArgs e) { updateTypeCollisions((byte)typePainterUpDown.Value); } private void updateCollisions(byte typeValue) { PrepareCollisionPainterGraphics(typeValue); paintByte = (byte)typeValue; sf = new StringFormat { LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Center }; using (Graphics g = Graphics.FromImage(collisionPainterPictureBox.Image)) { g.Clear(Color.FromArgb(255, paintBrush.Color)); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; g.DrawString(typeValue.ToString("X2"), new Font("Microsoft Sans Serif", 24), textBrush, painterBox, sf); } if (PokeDatabase.System.MapCollisionPainters.TryGetValue(typeValue, out string dictResult)) { collisionPainterComboBox.SelectedItem = dictResult; } collisionPainterPictureBox.Invalidate(); } private void updateTypeCollisions(byte typeValue) { PrepareTypePainterGraphics(typeValue); paintByte = typeValue; sf = new StringFormat { LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Center }; using (Graphics g = Graphics.FromImage(typePainterPictureBox.Image)) { g.Clear(Color.FromArgb(255, paintBrush.Color)); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; g.DrawString(typeValue.ToString("X2"), new Font("Microsoft Sans Serif", 24), textBrush, painterBox, sf); } if (PokeDatabase.System.MapCollisionTypePainters.TryGetValue(typeValue, out string dictResult)) { collisionTypePainterComboBox.SelectedItem = dictResult; } else { valueTypeRadioButton.Checked = true; typePainterUpDown.Value = typeValue; } typePainterPictureBox.Invalidate(); } private void typePictureBox_Click(object sender, EventArgs e) { selectCollisionPanel.BackColor = Color.Transparent; collisionGroupBox.Enabled = false; selectTypePanel.BackColor = Color.MidnightBlue; typeGroupBox.Enabled = true; DrawTypeGrid(); RestorePainter(); } private void typesRadioButton_CheckedChanged(object sender, EventArgs e) { if (knownTypesRadioButton.Checked) { typePainterUpDown.Enabled = false; collisionTypePainterComboBox.Enabled = true; typePainterComboBox_SelectedIndexChanged(null, null); } } private void valueTypeRadioButton_CheckedChanged(object sender, EventArgs e) { if (valueTypeRadioButton.Checked) { collisionTypePainterComboBox.Enabled = false; typePainterUpDown.Enabled = true; typePainterUpDown_ValueChanged(null, null); } } #endregion #region 3D Model Editor public const ushort MAPMODEL_CRITICALSIZE = 61000; private void importMapButton_Click(object sender, EventArgs e) { OpenFileDialog im = new OpenFileDialog { Filter = MapFile.NSBMDFilter }; if (im.ShowDialog(this) != DialogResult.OK) { return; } currentMapFile.LoadMapModel(DSUtils.ReadFromFile(im.FileName)); if (mapTextureComboBox.SelectedIndex > 0) { MW_LoadModelTextures(currentMapFile.mapModel, RomInfo.gameDirs[DirNames.mapTextures].unpackedDir, mapTextureComboBox.SelectedIndex - 1); } RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); modelSizeLBL.Text = currentMapFile.mapModelData.Length.ToString() + " B"; string message; string title; if (currentMapFile.mapModelData.Length > MAPMODEL_CRITICALSIZE) { message = "You imported a map model that exceeds " + MAPMODEL_CRITICALSIZE + " bytes." + Environment.NewLine + "This may lead to unexpected behavior in game."; title = "Imported correctly, but..."; } else { message = "Map model imported successfully!"; title = "Success!"; } MessageBox.Show(message, title, MessageBoxButtons.OK, MessageBoxIcon.Information); } private void exportMapButton_Click(object sender, EventArgs e) { SaveFileDialog em = new SaveFileDialog { FileName = selectMapComboBox.SelectedItem.ToString() }; byte[] modelToWrite; if (embedTexturesInMapModelCheckBox.Checked) { /* Textured NSBMD file */ em.Filter = MapFile.TexturedNSBMDFilter; if (em.ShowDialog(this) != DialogResult.OK) { return; } string texturePath = RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + (mapTextureComboBox.SelectedIndex - 1).ToString("D4"); byte[] texturesToEmbed = File.ReadAllBytes(texturePath); modelToWrite = NSBUtils.BuildNSBMDwithTextures(currentMapFile.mapModelData, texturesToEmbed); } else { /* Untextured NSBMD file */ em.Filter = MapFile.UntexturedNSBMDFilter; if (em.ShowDialog(this) != DialogResult.OK) { return; } modelToWrite = currentMapFile.mapModelData; } File.WriteAllBytes(em.FileName, modelToWrite); MessageBox.Show("Map model exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void daeExportButton_Click(object sender, EventArgs e) { ModelUtils.ModelToDAE( modelName: selectMapComboBox.SelectedItem.ToString().TrimEnd('\0'), modelData: currentMapFile.mapModelData, textureData: mapTextureComboBox.SelectedIndex < 0 ? null : File.ReadAllBytes(RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + (mapTextureComboBox.SelectedIndex - 1).ToString("D4")) ); } private void glbExportButton_Click(object sender, EventArgs e) { ModelUtils.ModelToGLB( modelName: selectMapComboBox.SelectedItem.ToString().TrimEnd('\0'), modelData: currentMapFile.mapModelData, textureData: mapTextureComboBox.SelectedIndex < 0 ? null : File.ReadAllBytes(RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + (mapTextureComboBox.SelectedIndex - 1).ToString("D4")) ); } #endregion #region BDHC I/O private void bdhcImportButton_Click(object sender, EventArgs e) { OpenFileDialog it = new OpenFileDialog() { Filter = RomInfo.gameFamily == GameFamilies.DP ? MapFile.BDHCFilter : MapFile.BDHCamFilter }; if (it.ShowDialog(this) != DialogResult.OK) { return; } currentMapFile.ImportTerrain(File.ReadAllBytes(it.FileName)); terrainSizeLBL.Text = currentMapFile.bdhc.Length.ToString() + " B"; MessageBox.Show("Terrain settings imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void bdhcExportButton_Click(object sender, EventArgs e) { SaveFileDialog sf = new SaveFileDialog { FileName = selectMapComboBox.SelectedItem.ToString(), Filter = RomInfo.gameFamily == GameFamilies.DP ? MapFile.BDHCFilter : MapFile.BDHCamFilter }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } File.WriteAllBytes(sf.FileName, currentMapFile.bdhc); terrainSizeLBL.Text = currentMapFile.bdhc.Length.ToString() + " B"; MessageBox.Show("Terrain settings exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion #region Soundplates I/O private void soundPlatesImportButton_Click(object sender, EventArgs e) { OpenFileDialog it = new OpenFileDialog { Filter = MapFile.BGSFilter }; if (it.ShowDialog(this) != DialogResult.OK) { return; } currentMapFile.ImportSoundPlates(File.ReadAllBytes(it.FileName)); BGSSizeLBL.Text = currentMapFile.bgs.Length.ToString() + " B"; MessageBox.Show("BackGround Sound data imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void soundPlatesExportButton_Click(object sender, EventArgs e) { SaveFileDialog sf = new SaveFileDialog { Filter = MapFile.BGSFilter, FileName = selectMapComboBox.SelectedItem.ToString() }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } File.WriteAllBytes(sf.FileName, currentMapFile.bgs); BGSSizeLBL.Text = currentMapFile.bgs.Length.ToString() + " B"; MessageBox.Show("BackGround Sound data exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void soundPlatesBlankButton_Click(object sender, EventArgs e) { currentMapFile.bgs = MapFile.blankBGS; BGSSizeLBL.Text = currentMapFile.bgs.Length.ToString() + " B"; MessageBox.Show("BackGround Sound data successfull blanked.\nRemember to save the current map file.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion #endregion #region Event Editor #region Variables private bool itemComboboxIsUpToDate = false; public static NSBMDGlRenderer eventMapRenderer = new NSBMDGlRenderer(); public static NSBMDGlRenderer eventBuildingsRenderer = new NSBMDGlRenderer(); public static MapFile eventMapFile; public NSMBe4.NSBMD.NSBTX_File overworldFrames; public GameMatrix eventMatrix; public const byte tileSize = 16; public EventFile currentEvFile; public Event selectedEvent; /* Painters to draw the matrix grid */ public Pen eventPen; public Brush eventBrush; public Rectangle eventMatrixRectangle; #endregion #region Subroutines private void itemsSelectorHelpBtn_Click(object sender, EventArgs e) { MessageBox.Show("This selector allows you to pick a preset Ground Item script from the game data.\n" + "Unlike in previous DSPRE versions, you can now change the Ground Item to be obtained even if you decided not to apply the Standardize Items patch from the Patch Toolbox.\n\n" + "However, some items are unavailable by default. The aforementioned patch can neutralize this limitation.\n\n", "About Ground Items", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void CenterEventViewOnEntities() { int destX = 0; int destY = 0; if (currentEvFile.overworlds.Count > 0) { destX = currentEvFile.overworlds[0].xMatrixPosition; destY = currentEvFile.overworlds[0].yMatrixPosition; } else if (currentEvFile.warps.Count > 0) { destX = currentEvFile.warps[0].xMatrixPosition; destY = currentEvFile.warps[0].yMatrixPosition; } else if (currentEvFile.spawnables.Count > 0) { destX = currentEvFile.spawnables[0].xMatrixPosition; destY = currentEvFile.spawnables[0].yMatrixPosition; } else if (currentEvFile.triggers.Count > 0) { destX = currentEvFile.triggers[0].xMatrixPosition; destY = currentEvFile.triggers[0].yMatrixPosition; } if (destX > eventMatrixXUpDown.Maximum || destY > eventMatrixYUpDown.Maximum) { //MessageBox.Show("One of the events tried to reference a bigger Matrix.\nMake sure the Header File associated to this Event File is using the correct Matrix.", "Error", // MessageBoxButtons.OK, MessageBoxIcon.Error); eventMatrixXUpDown.Value = eventMatrixYUpDown.Value = 0; } else { eventMatrixXUpDown.Value = destX; eventMatrixYUpDown.Value = destY; } } private void centerEventViewOnSelectedEvent_Click(object sender, EventArgs e) { if (selectedEvent is null) { MessageBox.Show("You haven't selected any event.", "Nothing to do here", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { try { eventMatrixXUpDown.Value = selectedEvent.xMatrixPosition; eventMatrixYUpDown.Value = selectedEvent.yMatrixPosition; } catch (ArgumentOutOfRangeException) { DialogResult main = MessageBox.Show("The selected event tried to reference a bigger Matrix than the one which is currently being displayed.\nDo you want to check for another potentially compatible matrix?", "Event is out of range", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (main.Equals(DialogResult.Yes)) { ushort[] result = HeaderSearch.AdvancedSearch(0, (ushort)internalNames.Count, internalNames, (int)MapHeader.SearchableFields.EventFileID, (int)HeaderSearch.NumOperators.Equal, selectEventComboBox.SelectedIndex.ToString()) .Select(x => ushort.Parse(x.Split()[0])) .ToArray(); Dictionary dict = new Dictionary(); if (gameFamily.Equals(GameFamilies.DP)) { foreach (ushort headerID in result) { HeaderDP hdp = (HeaderDP)MapHeader.LoadFromARM9(headerID); if (hdp.matrixID != eventMatrixUpDown.Value && hdp.locationName != 0) { dict.Add(hdp.ID, hdp.matrixID); } } } else { foreach (ushort headerID in result) { HeaderPt hpt; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { hpt = (HeaderPt)MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + headerID.ToString("D4"), headerID, 0); } else { hpt = (HeaderPt)MapHeader.LoadFromARM9(headerID); } if (hpt.matrixID != eventMatrixUpDown.Value && hpt.locationName != 0) { dict.Add(hpt.ID, hpt.matrixID); } } } if (dict.Count < 1) { MessageBox.Show("DSPRE could not find another Header referencing the same Event File and a different Matrix.", "Search failed", MessageBoxButtons.OK, MessageBoxIcon.Warning); eventMatrixXUpDown.Value = 0; eventMatrixYUpDown.Value = 0; } else { if (dict.Count > 1) { if (dict.Keys.Contains(currentHeader.ID)) { DialogResult yn = MessageBox.Show("DSPRE found multiple Headers referencing the same Event File and a different Matrix.\n" + $"The last selected Header ({currentHeader.ID}) is one of those.\n" + $"Do you want to load its matrix (#{currentHeader.matrixID}?)", "Potential solution found", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (yn.Equals(DialogResult.Yes)) { eventMatrixUpDown.Value = currentHeader.matrixID; } } else { var kvp = dict.First(); DialogResult yn = MessageBox.Show($"DSPRE found {dict.Count} Headers referencing the same Event File and a different Matrix.\n" + $"Do you want to load Header {kvp.Key}'s matrix (#{kvp.Value})?", "Potential solution found", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (yn.Equals(DialogResult.Yes)) { eventMatrixUpDown.Value = kvp.Value; } } } else { var kvp = dict.First(); DialogResult yn = MessageBox.Show($"Header {kvp.Key}'s matrix (#{kvp.Value}) seems to be the only match for this Event File.\n" + $"Do you want to load it?", "Potential solution found", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (yn.Equals(DialogResult.Yes)) { eventMatrixUpDown.Value = kvp.Value; } } } } } finally { Update(); } } } private void eventPictureBox_MouseMove(object sender, MouseEventArgs e) { Point coordinates = eventPictureBox.PointToClient(Cursor.Position); Point mouseTilePos = new Point(coordinates.X / (tileSize + 1), coordinates.Y / (tileSize + 1)); Helpers.statusLabelMessage("Local: " + mouseTilePos.X + ", " + mouseTilePos.Y + " | " + "Global: " + (eventMatrixXUpDown.Value * MapFile.mapSize + mouseTilePos.X).ToString() + ", " + (eventMatrixYUpDown.Value * MapFile.mapSize + mouseTilePos.Y).ToString()); } private void DisplayActiveEvents() { eventPictureBox.Image = new Bitmap(eventPictureBox.Width, eventPictureBox.Height); using (Graphics g = Graphics.FromImage(eventPictureBox.Image)) { Bitmap icon; /* Draw spawnables */ if (showSpawnablesCheckBox.Checked) { icon = (Bitmap)Properties.Resources.ResourceManager.GetObject("sign"); for (int i = 0; i < currentEvFile.spawnables.Count; i++) { Spawnable spawnable = currentEvFile.spawnables[i]; if (isEventOnCurrentMatrix(spawnable)) { g.DrawImage(icon, spawnable.xMapPosition * (tileSize + 1), spawnable.yMapPosition * (tileSize + 1)); if (selectedEvent == spawnable) { // Draw selection rectangle if event is the selected one DrawSelectionRectangle(g, spawnable); } } } } /* Draw overworlds */ if (showOwsCheckBox.Checked) { for (int i = 0; i < currentEvFile.overworlds.Count; i++) { Overworld overworld = currentEvFile.overworlds[i]; if (isEventOnCurrentMatrix(overworld)) { // Draw image only if event is in current map Bitmap sprite = GetOverworldImage(overworld.overlayTableEntry, overworld.orientation); sprite.MakeTransparent(); g.DrawImage(sprite, (overworld.xMapPosition) * (tileSize + 1) - 7 + (32 - sprite.Width) / 2, (overworld.yMapPosition - 1) * (tileSize + 1) + (32 - sprite.Height)); if (selectedEvent == overworld) { DrawSelectionRectangleOverworld(g, overworld); } } } } /* Draw warps */ if (showWarpsCheckBox.Checked) { DrawWarpCollisions(g); icon = (Bitmap)Properties.Resources.ResourceManager.GetObject("warp"); for (int i = 0; i < currentEvFile.warps.Count; i++) { Warp warp = currentEvFile.warps[i]; if (isEventOnCurrentMatrix(warp)) { g.DrawImage(icon, warp.xMapPosition * (tileSize + 1), warp.yMapPosition * (tileSize + 1)); if (selectedEvent == warp) { // Draw selection rectangle if event is the selected one DrawSelectionRectangle(g, warp); } } } } /* Draw triggers */ if (showTriggersCheckBox.Checked) { icon = (Bitmap)Properties.Resources.ResourceManager.GetObject("trigger"); for (int i = 0; i < currentEvFile.triggers.Count; i++) { Trigger trigger = currentEvFile.triggers[i]; if (isEventOnCurrentMatrix(trigger)) { for (int y = 0; y < currentEvFile.triggers[i].heightY; y++) { for (int x = 0; x < currentEvFile.triggers[i].widthX; x++) { g.DrawImage(icon, (trigger.xMapPosition + x) * (tileSize + 1), (trigger.yMapPosition + y) * (tileSize + 1)); } } if (selectedEvent == trigger) {// Draw selection rectangle if event is the selected one DrawSelectionRectangleTrigger(g, trigger); } } } } } eventPictureBox.Invalidate(); } private void DrawWarpCollisions(Graphics g) { if (eventMapFile != null) { Bitmap icon = (Bitmap)Properties.Resources.ResourceManager.GetObject("warpCollision"); for (int y = 0; y < MapFile.mapSize; y++) { for (int x = 0; x < MapFile.mapSize; x++) { byte moveperm = eventMapFile.types[x, y]; if (PokeDatabase.System.MapCollisionTypePainters.TryGetValue(moveperm, out string val)) { if (val.IndexOf("Warp", StringComparison.InvariantCultureIgnoreCase) >= 0) { //Console.WriteLine("Found warp at " + i + ", " + j); g.DrawImage(icon, y * (tileSize + 1), x * (tileSize + 1)); } } } } } } private void DrawSelectionRectangle(Graphics g, Event ev) { eventPen = Pens.Red; g.DrawRectangle(eventPen, (ev.xMapPosition) * (tileSize + 1) - 1, (ev.yMapPosition) * (tileSize + 1) - 1, 18, 18); g.DrawRectangle(eventPen, (ev.xMapPosition) * (tileSize + 1) - 2, (ev.yMapPosition) * (tileSize + 1) - 2, 20, 20); } private void DrawSelectionRectangleTrigger(Graphics g, Trigger t) { eventPen = Pens.Red; g.DrawRectangle(eventPen, (t.xMapPosition) * (tileSize + 1) - 1, (t.yMapPosition) * (tileSize + 1) - 1, 17 * t.widthX + 1, (tileSize + 1) * t.heightY + 1); g.DrawRectangle(eventPen, (t.xMapPosition) * (tileSize + 1) - 2, (t.yMapPosition) * (tileSize + 1) - 2, 17 * t.widthX + 3, (tileSize + 1) * t.heightY + 3); } private void DrawSelectionRectangleOverworld(Graphics g, Overworld ow) { eventPen = Pens.Red; g.DrawRectangle(eventPen, (ow.xMapPosition) * (tileSize + 1) - 8, (ow.yMapPosition - 1) * (tileSize + 1), 34, 34); g.DrawRectangle(eventPen, (ow.xMapPosition) * (tileSize + 1) - 9, (ow.yMapPosition - 1) * (tileSize + 1) - 1, 36, 36); } private void DisplayEventMap(bool readGraphicsFromHeader = true) { /* Determine map file to open and open it in BinaryReader, unless map is VOID */ uint mapIndex = GameMatrix.EMPTY; if (eventMatrixXUpDown.Value > eventMatrix.width || eventMatrixYUpDown.Value > eventMatrix.height) { String errorMsg = "This event file contains elements located on an unreachable map, beyond the current matrix.\n" + "It is strongly advised that you bring every Overworld, Spawnable, Warp and Trigger of this event to a map that belongs to the matrix's range."; MessageBox.Show(errorMsg, "Can't load proper map", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { mapIndex = eventMatrix.maps[(int)(eventMatrixYUpDown.Value), (int)(eventMatrixXUpDown.Value)]; } if (mapIndex == GameMatrix.EMPTY) { eventPictureBox.BackgroundImage = new Bitmap(eventPictureBox.Width, eventPictureBox.Height); using (Graphics g = Graphics.FromImage(eventPictureBox.BackgroundImage)) { g.Clear(Color.Black); } eventMapFile = null; } else { /* Determine area data */ byte areaDataID; if (eventMatrix.hasHeadersSection && readGraphicsFromHeader) { ushort headerID = (ushort)eventMatrix.headers[(short)eventMatrixYUpDown.Value, (short)eventMatrixXUpDown.Value]; MapHeader h; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + headerID.ToString("D4"), headerID, 0); } else { h = MapHeader.LoadFromARM9(headerID); } areaDataID = h.areaDataID; Helpers.BackUpDisableHandler(); Helpers.DisableHandlers(); eventAreaDataUpDown.Value = h.areaDataID; Helpers.RestoreDisableHandler(); } else { areaDataID = (byte)eventAreaDataUpDown.Value; } /* get texture file numbers from area data */ AreaData areaData = new AreaData(areaDataID); /* Read map and building models, match them with textures and render them*/ eventMapFile = new MapFile((int)mapIndex, RomInfo.gameFamily, discardMoveperms: false); MW_LoadModelTextures(eventMapFile.mapModel, RomInfo.gameDirs[DirNames.mapTextures].unpackedDir, areaData.mapTileset); bool isInteriorMap = false; if ((RomInfo.gameVersion == GameVersions.HeartGold || RomInfo.gameVersion == GameVersions.SoulSilver) && areaData.areaType == 0x0) isInteriorMap = true; for (int i = 0; i < eventMapFile.buildings.Count; i++) { eventMapFile.buildings[i].LoadModelData(romInfo.GetBuildingModelsDirPath(isInteriorMap)); // Load building nsbmd MW_LoadModelTextures(eventMapFile.buildings[i].NSBMDFile, RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir, areaData.buildingsTileset); // Load building textures } RenderMap(ref eventMapRenderer, ref eventBuildingsRenderer, ref eventMapFile, 0f, 115.0f, 90f, 4f, eventOpenGlControl.Width, eventOpenGlControl.Height, true, true); eventPictureBox.BackgroundImage = GrabMapScreenshot(eventOpenGlControl.Width, eventOpenGlControl.Height); } eventPictureBox.Invalidate(); } private void DrawEventMatrix() { eventMatrixPictureBox.Image = new Bitmap(1 + 16 * eventMatrix.width, 1 + 16 * eventMatrix.height); using (Graphics g = Graphics.FromImage(eventMatrixPictureBox.Image)) { /* First, fill the rectangle with black */ g.Clear(Color.Black); /* Now, draw the white cell borders on the black rectangle */ eventPen = Pens.White; for (int y = 0; y < eventMatrix.height; y++) { for (int x = 0; x < eventMatrix.width; x++) { eventMatrixRectangle = new Rectangle(1 + 16 * x, 1 + 16 * y, 14, 14); g.DrawRectangle(eventPen, eventMatrixRectangle); } } } } private void FillSpawnablesBox() { spawnablesListBox.Items.Clear(); int count = currentEvFile.spawnables.Count; for (int i = 0; i < count; i++) { spawnablesListBox.Items.Add(i.ToString("D" + Math.Max(0, count - 1).ToString().Length) + ": " + currentEvFile.spawnables[i].ToString()); } } private void FillOverworldsBox() { overworldsListBox.Items.Clear(); int count = currentEvFile.overworlds.Count; for (int i = 0; i < count; i++) { overworldsListBox.Items.Add(i.ToString("D" + Math.Max(0, count - 1).ToString().Length) + ": " + currentEvFile.overworlds[i].ToString()); } } private void FillWarpsBox() { warpsListBox.Items.Clear(); int count = currentEvFile.warps.Count; for (int i = 0; i < count; i++) { warpsListBox.Items.Add(i.ToString("D" + Math.Max(0, count - 1).ToString().Length) + ": " + currentEvFile.warps[i].ToString()); } } private void FillTriggersBox() { triggersListBox.Items.Clear(); int count = currentEvFile.triggers.Count; for (int i = 0; i < count; i++) { triggersListBox.Items.Add(i.ToString("D" + Math.Max(0, count - 1).ToString().Length) + ": " + currentEvFile.triggers[i].ToString()); } } private Bitmap GetOverworldImage(ushort eventEntryID, ushort orientation) { /* Find sprite corresponding to ID and load it*/ if (RomInfo.ow3DSpriteDict.TryGetValue(eventEntryID, out string imageName)) { // If overworld is 3D, load image from dictionary return (Bitmap)Properties.Resources.ResourceManager.GetObject(imageName); } if (!RomInfo.OverworldTable.TryGetValue(eventEntryID, out (uint spriteID, ushort properties) result)) { // try loading image from dictionary return (Bitmap)Properties.Resources.ResourceManager.GetObject("overworld"); //if there's no match, load bounding box } try { FileStream stream = new FileStream(RomInfo.gameDirs[DirNames.OWSprites].unpackedDir + "\\" + result.spriteID.ToString("D4"), FileMode.Open); NSBTX_File nsbtx = new NSBTX_File(stream); if (nsbtx.texInfo.num_objs <= 1) { return nsbtx.GetBitmap(0, 0).bmp; // Read nsbtx slot 0 if ow has only 2 frames } if (nsbtx.texInfo.num_objs <= 4) { switch (orientation) { case 0: return nsbtx.GetBitmap(0, 0).bmp; case 1: return nsbtx.GetBitmap(1, 0).bmp; case 2: return nsbtx.GetBitmap(2, 0).bmp; default: return nsbtx.GetBitmap(3, 0).bmp; } } if (nsbtx.texInfo.num_objs <= 8) { //Read nsbtx slot corresponding to overworld's movement switch (orientation) { case 0: return nsbtx.GetBitmap(0, 0).bmp; case 1: return nsbtx.GetBitmap(2, 0).bmp; case 2: return nsbtx.GetBitmap(4, 0).bmp; default: return nsbtx.GetBitmap(6, 0).bmp; } } if (nsbtx.texInfo.num_objs <= 16) { // Read nsbtx slot corresponding to overworld's movement switch (orientation) { case 0: return nsbtx.GetBitmap(0, 0).bmp; case 1: return nsbtx.GetBitmap(11, 0).bmp; case 2: return nsbtx.GetBitmap(2, 0).bmp; default: return nsbtx.GetBitmap(4, 0).bmp; } } else { switch (orientation) { case 0: return nsbtx.GetBitmap(0, 0).bmp; case 1: return nsbtx.GetBitmap(27, 0).bmp; case 2: return nsbtx.GetBitmap(2, 0).bmp; default: return nsbtx.GetBitmap(4, 0).bmp; } } } catch { // Load bounding box if sprite cannot be found return (Bitmap)Properties.Resources.ResourceManager.GetObject("overworldUnreadable"); } } private void MarkUsedCells() { using (Graphics g = Graphics.FromImage(eventMatrixPictureBox.Image)) { eventBrush = Brushes.Orange; for (int i = 0; i < currentEvFile.spawnables.Count; i++) { eventMatrixRectangle = new Rectangle(2 + 16 * currentEvFile.spawnables[i].xMatrixPosition, 2 + 16 * currentEvFile.spawnables[i].yMatrixPosition, 13, 13); g.FillRectangle(eventBrush, eventMatrixRectangle); } for (int i = 0; i < currentEvFile.overworlds.Count; i++) { eventMatrixRectangle = new Rectangle(2 + 16 * currentEvFile.overworlds[i].xMatrixPosition, 2 + 16 * currentEvFile.overworlds[i].yMatrixPosition, 13, 13); g.FillRectangle(eventBrush, eventMatrixRectangle); } for (int i = 0; i < currentEvFile.warps.Count; i++) { eventMatrixRectangle = new Rectangle(2 + 16 * currentEvFile.warps[i].xMatrixPosition, 2 + 16 * currentEvFile.warps[i].yMatrixPosition, 13, 13); g.FillRectangle(eventBrush, eventMatrixRectangle); } for (int i = 0; i < currentEvFile.triggers.Count; i++) { eventMatrixRectangle = new Rectangle(2 + 16 * currentEvFile.triggers[i].xMatrixPosition, 2 + 16 * currentEvFile.triggers[i].yMatrixPosition, 13, 13); g.FillRectangle(eventBrush, eventMatrixRectangle); } } eventMatrixPictureBox.Invalidate(); } private void MarkActiveCell(int xPosition, int yPosition) { /* Redraw the matrix to avoid multiple green cells */ DrawEventMatrix(); MarkUsedCells(); /* Set rectangle to paint and brush color */ eventMatrixRectangle = new Rectangle(2 + 16 * xPosition, 2 + 16 * yPosition, 13, 13); eventBrush = Brushes.Lime; /* Paint cell */ using (Graphics g = Graphics.FromImage(eventMatrixPictureBox.Image)) { g.FillRectangle(eventBrush, eventMatrixRectangle); } /* Update PictureBox and current coordinates labels */ eventMatrixPictureBox.Invalidate(); eventMatrixXUpDown.Value = xPosition; eventMatrixYUpDown.Value = yPosition; } private bool isEventOnCurrentMatrix(Event ev) { if (ev.xMatrixPosition == eventMatrixXUpDown.Value) { if (ev.yMatrixPosition == eventMatrixYUpDown.Value) { return true; } } return false; } private bool isEventUnderMouse(Event ev, Point mouseTilePos, int widthX = 0, int heightY = 0) { if (isEventOnCurrentMatrix(ev)) { Point evLocalCoords = new Point(ev.xMapPosition, ev.yMapPosition); Func checkRange = (mouseCoord, evCoord, extension) => mouseCoord >= evCoord && mouseCoord <= evCoord + extension; if (checkRange(mouseTilePos.X, evLocalCoords.X, widthX) && checkRange(mouseTilePos.Y, evLocalCoords.Y, heightY)) { return true; } } return false; } #endregion private void SetupEventEditor() { /* Extract essential NARCs sub-archives*/ Helpers.statusLabelMessage("Attempting to unpack Event Editor NARCs... Please wait. This might take a while"); toolStripProgressBar.Visible = true; toolStripProgressBar.Maximum = 12; toolStripProgressBar.Value = 0; Update(); DSUtils.TryUnpackNarcs(new List { DirNames.matrices, DirNames.maps, DirNames.exteriorBuildingModels, DirNames.buildingConfigFiles, DirNames.buildingTextures, DirNames.mapTextures, DirNames.areaData, DirNames.eventFiles, DirNames.trainerProperties, DirNames.OWSprites, DirNames.scripts, }); RomInfo.SetOWtable(); RomInfo.Set3DOverworldsDict(); if (RomInfo.gameFamily == GameFamilies.HGSS) { DSUtils.TryUnpackNarcs(new List { DirNames.interiorBuildingModels }); } Helpers.DisableHandlers(); if (File.Exists(RomInfo.OWtablePath)) { switch (RomInfo.gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: break; default: // HGSS Overlay 1 must be decompressed in order to read the overworld table if (OverlayUtils.OverlayTable.IsDefaultCompressed(1)) { if (OverlayUtils.IsCompressed(1)) { if (OverlayUtils.Decompress(1) < 0) { MessageBox.Show("Overlay 1 couldn't be decompressed.\nOverworld sprites in the Event Editor will be " + "displayed incorrectly or not displayed at all.", "Unexpected EOF", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } break; } } /* Add event file numbers to box */ Helpers.statusLabelMessage("Loading Events... Please wait."); Update(); int eventCount = RomInfo.GetEventFileCount(); RomInfo.ReadOWTable(); eventEditorWarpHeaderListBox.Items.Clear(); eventEditorWarpHeaderListBox.Items.AddRange(headerListBoxNames.ToArray()); eventEditorHeaderLocationNameLabel.Text = ""; string[] trainerNames = GetTrainerNames(); toolStripProgressBar.Maximum = (int)(eventCount + RomInfo.OverworldTable.Keys.Max() + trainerNames.Length); toolStripProgressBar.Value = 0; Update(); /* Add event list to event combobox */ selectEventComboBox.Items.Clear(); for (int i = 0; i < eventCount; i++) { selectEventComboBox.Items.Add("Event File " + i); toolStripProgressBar.Value++; } /* Add sprite list to ow sprite box */ owSpriteComboBox.Items.Clear(); foreach (ushort key in RomInfo.OverworldTable.Keys) { owSpriteComboBox.Items.Add("OW Entry " + key); toolStripProgressBar.Value++; } /* Add trainer list to ow trainer box */ owTrainerComboBox.Items.Clear(); owTrainerComboBox.Items.AddRange(trainerNames); /* Add item list to ow item box */ string[] itemNames = RomInfo.GetItemNames(); if (PatchToolboxDialog.CheckScriptsStandardizedItemNumbers()) { UpdateItemComboBox(itemNames); } else { ScriptFile itemScript = new ScriptFile(RomInfo.itemScriptFileNumber); owItemComboBox.Items.Clear(); foreach (ScriptCommandContainer cont in itemScript.allScripts) { if (cont.commands.Count > 4) { continue; } owItemComboBox.Items.Add(BitConverter.ToUInt16(cont.commands[1].cmdParams[1], 0) + "x " + itemNames[BitConverter.ToUInt16(cont.commands[0].cmdParams[1], 0)]); } } /* Add ow movement list to box */ owMovementComboBox.Items.Clear(); spawnableDirComboBox.Items.Clear(); spawnableTypeComboBox.Items.Clear(); owMovementComboBox.Items.AddRange(PokeDatabase.EventEditor.Overworlds.movementsArray); spawnableDirComboBox.Items.AddRange(PokeDatabase.EventEditor.Spawnables.orientationsArray); spawnableTypeComboBox.Items.AddRange(PokeDatabase.EventEditor.Spawnables.typesArray); /* Draw matrix 0 in matrix navigator */ eventMatrix = new GameMatrix(0); showSpawnablesCheckBox.Checked = Properties.Settings.Default.renderSpawnables; showOwsCheckBox.Checked = Properties.Settings.Default.renderOverworlds; showWarpsCheckBox.Checked = Properties.Settings.Default.renderWarps; showTriggersCheckBox.Checked = Properties.Settings.Default.renderTriggers; if (owOrientationComboBox.SelectedIndex < 0 && overworldsListBox.Items.Count <= 0) { owOrientationComboBox.SelectedIndex = 2; } if (owMovementComboBox.SelectedIndex < 0 && overworldsListBox.Items.Count <= 0) { owOrientationComboBox.SelectedIndex = 1; } eventMatrixUpDown.Maximum = romInfo.GetMatrixCount() - 1; eventAreaDataUpDown.Maximum = romInfo.GetAreaDataCount() - 1; // Creating a dictionary linking events to headers to fetch header data for Event Editor if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { for (ushort i = 0; i < internalNames.Count; i++) { MapHeader h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + i.ToString("D4"), i, 0); eventToHeader[h.eventFileID] = i; } } else { for (ushort i = 0; i < internalNames.Count; i++) { MapHeader h = MapHeader.LoadFromARM9(i); eventToHeader[h.eventFileID] = i; } } Helpers.EnableHandlers(); selectEventComboBox.SelectedIndex = 0; owItemComboBox.SelectedIndex = 0; owTrainerComboBox.SelectedIndex = 0; toolStripProgressBar.Value = 0; toolStripProgressBar.Visible = false; Helpers.statusLabelMessage(); } private void addEventFileButton_Click(object sender, EventArgs e) { /* Add copy of event 0 to event folder */ new EventFile().SaveToFileDefaultDir(selectEventComboBox.Items.Count); /* Update ComboBox and select new file */ selectEventComboBox.Items.Add("Event File " + selectEventComboBox.Items.Count); selectEventComboBox.SelectedIndex = selectEventComboBox.Items.Count - 1; } private void eventEditorTabPage_Enter(object sender, EventArgs e) { eventOpenGlControl.MakeCurrent(); } private void eventMatrixPictureBox_Click(object sender, EventArgs e) { const int squareSize = 16; Point coordinates = eventMatrixPictureBox.PointToClient(Cursor.Position); Point mouseTilePos = new Point(coordinates.X / squareSize, coordinates.Y / squareSize); MarkActiveCell(mouseTilePos.X, mouseTilePos.Y); eventMatrixXUpDown.Value = mouseTilePos.X; eventMatrixYUpDown.Value = mouseTilePos.Y; } private void eventMatrixUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); eventMatrix = new GameMatrix((int)eventMatrixUpDown.Value); eventMatrixXUpDown.Maximum = eventMatrix.width - 1; eventMatrixYUpDown.Maximum = eventMatrix.height - 1; eventEditorFullMapReload((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value); Helpers.EnableHandlers(); CenterEventViewOnEntities(); } private void eventShiftLeftButton_Click(object sender, EventArgs e) { if (eventMatrixXUpDown.Value > 0) { eventMatrixXUpDown.Value -= 1; } } private void eventShiftUpButton_Click(object sender, EventArgs e) { if (eventMatrixYUpDown.Value > 0) { eventMatrixYUpDown.Value -= 1; } } private void eventShiftRightButton_Click(object sender, EventArgs e) { if (eventMatrixXUpDown.Value < eventMatrix.width - 1) { eventMatrixXUpDown.Value += 1; } } private void eventShiftDownButton_Click(object sender, EventArgs e) { if (eventMatrixYUpDown.Value < eventMatrix.height - 1) { eventMatrixYUpDown.Value += 1; } } private void eventMatrixCoordsUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } eventEditorFullMapReload((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value); } private void eventEditorFullMapReload(int coordX, int coordY) { /* Draw matrix image in the navigator */ MarkActiveCell(coordX, coordY); /* Render events on map */ DisplayEventMap(); DisplayActiveEvents(); eventMatrixPictureBox.Invalidate(); } private void exportEventFileButton_Click(object sender, EventArgs e) { currentEvFile.SaveToFileExplorePath("Event File " + selectEventComboBox.SelectedIndex); } private void saveEventsButton_Click(object sender, EventArgs e) { currentEvFile.SaveToFileDefaultDir(selectEventComboBox.SelectedIndex); } private void importEventFileButton_Click(object sender, EventArgs e) { /* Prompt user to select .evt file */ OpenFileDialog of = new OpenFileDialog { Filter = EventFile.DefaultFilter }; if (of.ShowDialog(this) != DialogResult.OK) { return; } EventFile toImport = new EventFile(File.OpenRead(of.FileName)); if (toImport.isEmpty()) { DialogResult d = MessageBox.Show("Are you sure you want to import an empty event file?\nAll existing entities in the current file will disappear.", "Empty File loaded", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (!d.Equals(DialogResult.Yes)) { return; } /* Update event object on disk */ File.Copy(of.FileName, RomInfo.gameDirs[DirNames.eventFiles].unpackedDir + "\\" + selectEventComboBox.SelectedIndex.ToString("D4"), true); /* Refresh controls */ selectEventComboBox_SelectedIndexChanged(null, null); /* Display success message */ MessageBox.Show("Events imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); /* Refresh controls */ selectEventComboBox_SelectedIndexChanged(null, null); } else { EventFileImport efi = new EventFileImport(toImport); efi.ShowDialog(); if (!efi.DialogResult.Equals(DialogResult.OK)) { return; } if (efi.blankCurrentEvents) { DialogResult confirm = MessageBox.Show("You chose to import the entities into blank event file, which means all existing entities in the destination file will be deleted.\nProceed?", "Awaiting user confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (!confirm.Equals(DialogResult.Yes)) { return; } currentEvFile = new EventFile(); spawnablesListBox.Items.Clear(); overworldsListBox.Items.Clear(); warpsListBox.Items.Clear(); triggersListBox.Items.Clear(); } int[] currentArray; currentArray = efi.userSelected[(int)EventFile.serializationOrder.Spawnables]; if (currentArray != null) { foreach (int index in currentArray) { currentEvFile.spawnables.Add(toImport.spawnables[index]); spawnablesListBox.Items.Add(""); spawnablesListBox.SelectedIndex = spawnablesListBox.Items.Count - 1; updateSelectedSpawnableName(); } } currentArray = efi.userSelected[(int)EventFile.serializationOrder.Overworlds]; if (currentArray != null) { foreach (int index in currentArray) { currentEvFile.overworlds.Add(toImport.overworlds[index]); overworldsListBox.Items.Add(""); overworldsListBox.SelectedIndex = overworldsListBox.Items.Count - 1; updateSelectedOverworldName(); } } currentArray = efi.userSelected[(int)EventFile.serializationOrder.Warps]; if (currentArray != null) { foreach (int index in currentArray) { currentEvFile.warps.Add(toImport.warps[index]); warpsListBox.Items.Add(""); warpsListBox.SelectedIndex = warpsListBox.Items.Count - 1; updateSelectedWarpName(); } } currentArray = efi.userSelected[(int)EventFile.serializationOrder.Triggers]; if (currentArray != null) { foreach (int index in currentArray) { currentEvFile.triggers.Add(toImport.triggers[index]); triggersListBox.Items.Add(""); triggersListBox.SelectedIndex = triggersListBox.Items.Count - 1; updateSelectedTriggerName(); } } /* Display success message */ MessageBox.Show("Events imported successfully!\nRemember to save the current Event File.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void removeEventFileButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("Are you sure you want to delete the last Event File?", "Confirm deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d.Equals(DialogResult.Yes)) { /* Delete event file */ File.Delete(RomInfo.gameDirs[DirNames.eventFiles].unpackedDir + "\\" + (selectEventComboBox.Items.Count - 1).ToString("D4")); /* Check if currently selected file is the last one, and in that case select the one before it */ int lastIndex = selectEventComboBox.Items.Count - 1; if (selectEventComboBox.SelectedIndex == lastIndex) { selectEventComboBox.SelectedIndex--; } /* Remove item from ComboBox */ selectEventComboBox.Items.RemoveAt(lastIndex); } } private void selectEventComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } ChangeLoadedEventFile(selectEventComboBox.SelectedIndex, 0); } private void ChangeLoadedEventFile(int evfile, ushort mapHeader) { Helpers.DisableHandlers(); /* Load events data into EventFile class instance */ currentEvFile = new EventFile(evfile); /* Update ListBoxes */ FillSpawnablesBox(); FillOverworldsBox(); FillTriggersBox(); FillWarpsBox(); if (mapHeader > 0 || eventToHeader.TryGetValue((ushort)selectEventComboBox.SelectedIndex, out mapHeader)) { MapHeader h; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + mapHeader.ToString("D4"), mapHeader, 0); } else { h = MapHeader.LoadFromARM9(mapHeader); } eventMatrixUpDown.Value = h.matrixID; eventMatrix = new GameMatrix((int)eventMatrixUpDown.Value); eventMatrixXUpDown.Maximum = eventMatrix.width - 1; eventMatrixYUpDown.Maximum = eventMatrix.height - 1; eventAreaDataUpDown.Value = h.areaDataID; Helpers.statusLabelMessage($"Detected link between Event File {selectEventComboBox.SelectedIndex} and Header {mapHeader}"); } else { Helpers.statusLabelError($"Could not link Event File {selectEventComboBox.SelectedIndex} to any Header"); } eventEditorFullMapReload((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value); Helpers.EnableHandlers(); CenterEventViewOnEntities(); } private void showEventsCheckBoxes_CheckedChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } DisplayActiveEvents(); Properties.Settings.Default.renderSpawnables = showSpawnablesCheckBox.Checked; Properties.Settings.Default.renderOverworlds = showOwsCheckBox.Checked; Properties.Settings.Default.renderWarps = showWarpsCheckBox.Checked; Properties.Settings.Default.renderTriggers = showTriggersCheckBox.Checked; } private void eventAreaDataUpDown_ValueChanged(object sender, EventArgs e) { DisplayEventMap(readGraphicsFromHeader: false); } private void eventPictureBox_Click(object sender, EventArgs e) { Point coordinates = eventPictureBox.PointToClient(Cursor.Position); Point mouseTilePos = new Point(coordinates.X / (tileSize + 1), coordinates.Y / (tileSize + 1)); MouseEventArgs mea = (MouseEventArgs)e; if (mea.Button == MouseButtons.Left) { if (selectedEvent != null) { switch (selectedEvent.evType) { case Event.EventType.Spawnable: if (!showSpawnablesCheckBox.Checked) { return; } spawnablexMapUpDown.Value = (short)mouseTilePos.X; spawnableYMapUpDown.Value = (short)mouseTilePos.Y; spawnableXMatrixUpDown.Value = (short)eventMatrixXUpDown.Value; spawnableYMatrixUpDown.Value = (short)eventMatrixYUpDown.Value; break; case Event.EventType.Overworld: if (!showOwsCheckBox.Checked) { return; } owXMapUpDown.Value = (short)mouseTilePos.X; owYMapUpDown.Value = (short)mouseTilePos.Y; owXMatrixUpDown.Value = (short)eventMatrixXUpDown.Value; owYMatrixUpDown.Value = (short)eventMatrixYUpDown.Value; break; case Event.EventType.Warp: if (!showWarpsCheckBox.Checked) { return; } warpXMapUpDown.Value = (short)mouseTilePos.X; warpYMapUpDown.Value = (short)mouseTilePos.Y; warpXMatrixUpDown.Value = (short)eventMatrixXUpDown.Value; warpYMatrixUpDown.Value = (short)eventMatrixYUpDown.Value; break; case Event.EventType.Trigger: if (!showTriggersCheckBox.Checked) { return; } triggerXMapUpDown.Value = (short)mouseTilePos.X; triggerYMapUpDown.Value = (short)mouseTilePos.Y; triggerXMatrixUpDown.Value = (short)eventMatrixXUpDown.Value; triggerYMatrixUpDown.Value = (short)eventMatrixYUpDown.Value; break; } DisplayActiveEvents(); } } else if (mea.Button == MouseButtons.Right) { if (showWarpsCheckBox.Checked) for (int i = 0; i < currentEvFile.warps.Count; i++) { Warp ev = currentEvFile.warps[i]; if (isEventUnderMouse(ev, mouseTilePos)) { if (ev == selectedEvent) { goToWarpDestination_Click(sender, e); return; } selectedEvent = ev; eventsTabControl.SelectedTab = warpsTabPage; warpsListBox.SelectedIndex = i; DisplayActiveEvents(); return; } } if (showSpawnablesCheckBox.Checked) for (int i = 0; i < currentEvFile.spawnables.Count; i++) { Spawnable ev = currentEvFile.spawnables[i]; if (isEventUnderMouse(ev, mouseTilePos)) { selectedEvent = ev; eventsTabControl.SelectedTab = signsTabPage; spawnablesListBox.SelectedIndex = i; DisplayActiveEvents(); return; } } if (showOwsCheckBox.Checked) for (int i = 0; i < currentEvFile.overworlds.Count; i++) { Overworld ev = currentEvFile.overworlds[i]; if (isEventUnderMouse(ev, mouseTilePos)) { selectedEvent = ev; eventsTabControl.SelectedTab = overworldsTabPage; overworldsListBox.SelectedIndex = i; DisplayActiveEvents(); return; } } for (int i = 0; i < currentEvFile.triggers.Count; i++) { Trigger ev = currentEvFile.triggers[i]; if (isEventUnderMouse(ev, mouseTilePos, ev.widthX - 1, ev.heightY - 1)) { selectedEvent = ev; eventsTabControl.SelectedTab = triggersTabPage; triggersListBox.SelectedIndex = i; DisplayActiveEvents(); return; } } } else if (mea.Button == MouseButtons.Middle) { for (int i = 0; i < currentEvFile.warps.Count; i++) { Warp ev = currentEvFile.warps[i]; if (isEventUnderMouse(ev, mouseTilePos)) { if (ev == selectedEvent) { goToWarpDestination_Click(sender, e); return; } } } } } #region Spawnables Tab private void addSpawnableButton_Click(object sender, EventArgs e) { int spCount = currentEvFile.spawnables.Count; currentEvFile.spawnables.Add(new Spawnable((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value)); spawnablesListBox.Items.Add(""); spawnablesListBox.SelectedIndex = spCount; updateSelectedSpawnableName(); } private void removeSpawnableButton_Click(object sender, EventArgs e) { if (spawnablesListBox.SelectedIndex < 0) { return; } Helpers.DisableHandlers(); /* Remove trigger object from list and the corresponding entry in the ListBox */ int spawnableNumber = spawnablesListBox.SelectedIndex; currentEvFile.spawnables.RemoveAt(spawnableNumber); spawnablesListBox.Items.RemoveAt(spawnableNumber); FillSpawnablesBox(); // Update ListBox Helpers.EnableHandlers(); if (spawnableNumber > 0) { spawnablesListBox.SelectedIndex = spawnableNumber - 1; } else { DisplayActiveEvents(); } } private void duplicateSpawnableButton_Click(object sender, EventArgs e) { if (spawnablesListBox.SelectedIndex < 0) { return; } currentEvFile.spawnables.Add(new Spawnable((Spawnable)selectedEvent)); spawnablesListBox.Items.Add(""); spawnablesListBox.SelectedIndex = spawnablesListBox.Items.Count - 1; updateSelectedSpawnableName(); } private void spawnablesListBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || spawnablesListBox.SelectedIndex < 0) return; Helpers.DisableHandlers(); /* Set Event */ selectedEvent = currentEvFile.spawnables[spawnablesListBox.SelectedIndex]; /* Update Controls */ spawnableDirComboBox.SelectedIndex = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].dir; spawnableTypeComboBox.SelectedIndex = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].type; spawnableScriptUpDown.Value = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].scriptNumber; spawnablexMapUpDown.Value = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].xMapPosition; spawnableYMapUpDown.Value = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].yMapPosition; spawnableUpDown.Value = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].zPosition; spawnableXMatrixUpDown.Value = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].xMatrixPosition; spawnableYMatrixUpDown.Value = currentEvFile.spawnables[spawnablesListBox.SelectedIndex].yMatrixPosition; DisplayActiveEvents(); Helpers.EnableHandlers(); } private void spawnableMatrixXUpDown_ValueChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } currentEvFile.spawnables[selectedSpawnable].xMatrixPosition = (ushort)spawnableXMatrixUpDown.Value; DisplayActiveEvents(); } private void spawnableMatrixYUpDown_ValueChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } currentEvFile.spawnables[selectedSpawnable].yMatrixPosition = (ushort)spawnableYMatrixUpDown.Value; DisplayActiveEvents(); } private void spawnableScriptUpDown_ValueChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } currentEvFile.spawnables[selectedSpawnable].scriptNumber = (ushort)spawnableScriptUpDown.Value; updateSelectedSpawnableName(); } private void spawnableMapXUpDown_ValueChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } currentEvFile.spawnables[selectedSpawnable].xMapPosition = (short)spawnablexMapUpDown.Value; DisplayActiveEvents(); } private void spawnableMapYUpDown_ValueChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } currentEvFile.spawnables[selectedSpawnable].yMapPosition = (short)spawnableYMapUpDown.Value; DisplayActiveEvents(); } private void spawnableZUpDown_ValueChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } currentEvFile.spawnables[selectedSpawnable].zPosition = (short)spawnableUpDown.Value; DisplayActiveEvents(); } private void spawnableDirComboBox_SelectedIndexChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } currentEvFile.spawnables[selectedSpawnable].dir = (ushort)spawnableDirComboBox.SelectedIndex; updateSelectedSpawnableName(); } private void spawnableTypeComboBox_SelectedIndexChanged(object sender, EventArgs e) { int selectedSpawnable = spawnablesListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedSpawnable < 0) { return; } spawnableDirComboBox.Enabled = spawnableTypeComboBox.SelectedIndex != Spawnable.TYPE_HIDDENITEM; currentEvFile.spawnables[selectedSpawnable].type = (ushort)spawnableTypeComboBox.SelectedIndex; updateSelectedSpawnableName(); } #endregion #region Overworlds Tab private void addOverworldButton_Click(object sender, EventArgs e) { int owCount = currentEvFile.overworlds.Count; // Find the smallest unused ID int newID = 0; while (currentEvFile.overworlds.Any(ow => ow.owID == newID)) { newID++; } currentEvFile.overworlds.Add(new Overworld(newID, (int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value)); overworldsListBox.Items.Add(""); overworldsListBox.SelectedIndex = owCount; updateSelectedOverworldName(); } private void removeOverworldButton_Click(object sender, EventArgs e) { if (overworldsListBox.SelectedIndex < 0) { return; } Helpers.DisableHandlers(); /* Remove overworld object from list and the corresponding entry in the ListBox */ int owNumber = overworldsListBox.SelectedIndex; currentEvFile.overworlds.RemoveAt(owNumber); overworldsListBox.Items.RemoveAt(owNumber); FillOverworldsBox(); // Update ListBox Helpers.EnableHandlers(); if (owNumber > 0) { overworldsListBox.SelectedIndex = owNumber - 1; } else { DisplayActiveEvents(); } } private void sortOWsByIDAscButton_Click(object sender, EventArgs e) { currentEvFile.overworlds.Sort((x, y) => x.owID.CompareTo(y.owID)); overworldsListBox.BeginUpdate(); FillOverworldsBox(); overworldsListBox.EndUpdate(); } private void sortOWsByIDDescButton_Click(object sender, EventArgs e) { currentEvFile.overworlds.Sort((x, y) => y.owID.CompareTo(x.owID)); overworldsListBox.BeginUpdate(); FillOverworldsBox(); overworldsListBox.EndUpdate(); } private void duplicateOverworldsButton_Click(object sender, EventArgs e) { if (overworldsListBox.SelectedIndex < 0) { return; } currentEvFile.overworlds.Add(new Overworld(selectedEvent as Overworld)); overworldsListBox.Items.Add(""); overworldsListBox.SelectedIndex = currentEvFile.overworlds.Count - 1; updateSelectedOverworldName(); } private void OWTypeChanged(object sender, EventArgs e) { if (overworldsListBox.SelectedIndex < 0) { return; } if (normalRadioButton.Checked == true) { owScriptNumericUpDown.Enabled = true; owSpecialGroupBox.Enabled = false; if (Helpers.HandlersDisabled) { return; } currentEvFile.overworlds[overworldsListBox.SelectedIndex].type = 0x0; currentEvFile.overworlds[overworldsListBox.SelectedIndex].scriptNumber = (ushort)(owScriptNumericUpDown.Value = 0); } else if (isItemRadioButton.Checked == true) { owScriptNumericUpDown.Enabled = false; owSpecialGroupBox.Enabled = true; owTrainerComboBox.Enabled = false; owTrainerLabel.Enabled = false; owSightRangeUpDown.Enabled = false; owSightRangeLabel.Enabled = false; owPartnerTrainerCheckBox.Enabled = false; if (isItemRadioButton.Enabled) { owItemComboBox.Enabled = true; itemsSelectorHelpBtn.Enabled = true; owItemLabel.Enabled = true; if (Helpers.HandlersDisabled) { return; } currentEvFile.overworlds[overworldsListBox.SelectedIndex].type = 0x3; currentEvFile.overworlds[overworldsListBox.SelectedIndex].scriptNumber = (ushort)(owScriptNumericUpDown.Value = 7000 + owItemComboBox.SelectedIndex); } } else { //trainer owScriptNumericUpDown.Enabled = false; owSpecialGroupBox.Enabled = true; owTrainerComboBox.Enabled = true; owTrainerLabel.Enabled = true; owItemLabel.Enabled = false; owSightRangeUpDown.Enabled = true; owSightRangeLabel.Enabled = true; owPartnerTrainerCheckBox.Enabled = true; owItemComboBox.Enabled = false; itemsSelectorHelpBtn.Enabled = false; if (Helpers.HandlersDisabled) { return; } currentEvFile.overworlds[overworldsListBox.SelectedIndex].type = 0x1; if (owTrainerComboBox.SelectedIndex >= 0) { owTrainerComboBox_SelectedIndexChanged(null, null); } } } private void owItemComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || overworldsListBox.SelectedIndex < 0) { return; } owScriptNumericUpDown.Value = currentEvFile.overworlds[overworldsListBox.SelectedIndex].scriptNumber = (ushort)(7000 + owItemComboBox.SelectedIndex); } private void overworldsListBox_SelectedIndexChanged(object sender, EventArgs e) { int index = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || index < 0) { return; } Helpers.DisableHandlers(); selectedEvent = currentEvFile.overworlds[index]; Overworld selectedOw = (Overworld)selectedEvent; try { /* Sprite index and image controls */ owSpriteComboBox.SelectedIndex = Array.IndexOf(RomInfo.overworldTableKeys, selectedOw.overlayTableEntry); owSpritePictureBox.BackgroundImage = GetOverworldImage(selectedOw.overlayTableEntry, selectedOw.orientation); } catch (ArgumentOutOfRangeException) { String errorMsg = "This Overworld's sprite ID couldn't be read correctly."; MessageBox.Show(errorMsg, "Something went wrong", MessageBoxButtons.OK, MessageBoxIcon.Error); } try { /* Special settings controls */ if (selectedOw.type == (ushort)Overworld.OwType.TRAINER) { isTrainerRadioButton.Checked = true; if (selectedOw.scriptNumber >= 4999) { owTrainerComboBox.SelectedIndex = Math.Max(selectedOw.scriptNumber - 4999, 0); // Partner of double battle trainer owPartnerTrainerCheckBox.Checked = true; } else { owTrainerComboBox.SelectedIndex = Math.Max(selectedOw.scriptNumber - 2999, 0); // Normal trainer owPartnerTrainerCheckBox.Checked = false; } } else if (selectedOw.type == (ushort)Overworld.OwType.ITEM || selectedOw.scriptNumber >= 7000 && selectedOw.scriptNumber <= 8000) { isItemRadioButton.Checked = true; owItemComboBox.SelectedIndex = Math.Max(selectedOw.scriptNumber - 7000, 0); } else { normalRadioButton.Checked = true; } /* Set coordinates controls */ owXMapUpDown.Value = selectedOw.xMapPosition; owYMapUpDown.Value = selectedOw.yMapPosition; owXMatrixUpDown.Value = selectedOw.xMatrixPosition; owYMatrixUpDown.Value = selectedOw.yMatrixPosition; int zFld = (selectedOw.zPosition >> 4) /*convert from overworld units to fx*/; owZPositionUpDown.Value = zFld / 0x1000; //then convert from fixed point to decimal /*ID, Flag and Script number controls */ owIDNumericUpDown.Value = selectedOw.owID; owFlagNumericUpDown.Value = selectedOw.flag; owScriptNumericUpDown.Value = selectedOw.scriptNumber; /* Movement settings */ owMovementComboBox.SelectedIndex = selectedOw.movement; owOrientationComboBox.SelectedIndex = selectedOw.orientation; owSightRangeUpDown.Value = selectedOw.sightRange; owXRangeUpDown.Value = selectedOw.xRange; owYRangeUpDown.Value = selectedOw.yRange; try { uint spriteID = RomInfo.OverworldTable[currentEvFile.overworlds[overworldsListBox.SelectedIndex].overlayTableEntry].spriteID; if (spriteID == 0x3D3D) { spriteIDlabel.Text = "3D Overworld"; } else { spriteIDlabel.Text = "Sprite ID: " + spriteID; } } catch { } DisplayActiveEvents(); } catch (ArgumentOutOfRangeException) { String errorMsg = "There was a problem loading the overworld events of this Event file."; MessageBox.Show(errorMsg, "Something went wrong", MessageBoxButtons.OK, MessageBoxIcon.Error); } Helpers.EnableHandlers(); } private void owFlagNumericUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[selection].flag = (ushort)owFlagNumericUpDown.Value; } private void owIDNumericUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[selection].owID = (ushort)owIDNumericUpDown.Value; updateSelectedOverworldName(); } private void owMovementComboBox_SelectedIndexChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[selection].movement = (ushort)owMovementComboBox.SelectedIndex; } private void owOrientationComboBox_SelectedIndexChanged(object sender, EventArgs e) { ushort orientation = (ushort)owOrientationComboBox.SelectedIndex; int selection = overworldsListBox.SelectedIndex; if (owSpriteComboBox.SelectedIndex < 0 || orientation < 0) { return; } if (selection >= 0) { owSpritePictureBox.BackgroundImage = GetOverworldImage(currentEvFile.overworlds[selection].overlayTableEntry, orientation); if (Helpers.HandlersEnabled) { currentEvFile.overworlds[selection].orientation = orientation; DisplayActiveEvents(); } } else { owSpritePictureBox.BackgroundImage = GetOverworldImage((ushort)owSpriteComboBox.SelectedIndex, orientation); } owSpritePictureBox.Invalidate(); } private void owScriptNumericUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[selection].scriptNumber = (ushort)owScriptNumericUpDown.Value; updateSelectedOverworldName(); } private void owSightRangeUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; currentEvFile.overworlds[selection].sightRange = (ushort)owSightRangeUpDown.Value; } private void owSpriteComboBox_SelectedIndexChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (owSpriteComboBox.SelectedIndex < 0) { return; } ushort overlayTableEntryID = (ushort)RomInfo.OverworldTable.Keys.ElementAt(owSpriteComboBox.SelectedIndex); uint spriteID = RomInfo.OverworldTable[overlayTableEntryID].spriteID; if (spriteID == 0x3D3D) { spriteIDlabel.Text = "3D Overworld"; } else { spriteIDlabel.Text = "Sprite ID: " + spriteID; } if (selection >= 0) { owSpritePictureBox.BackgroundImage = GetOverworldImage(overlayTableEntryID, currentEvFile.overworlds[selection].orientation); if (Helpers.HandlersEnabled) { currentEvFile.overworlds[selection].overlayTableEntry = overlayTableEntryID; DisplayActiveEvents(); } } else { owSpritePictureBox.BackgroundImage = GetOverworldImage(overlayTableEntryID, (ushort)owOrientationComboBox.SelectedIndex); } owSpritePictureBox.Invalidate(); updateSelectedOverworldName(); } private void owPartnerTrainerCheckBox_CheckedChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; owScriptNumericUpDown.Value = (ushort)(currentEvFile.overworlds[selection].scriptNumber + (owPartnerTrainerCheckBox.Checked ? 2000 : -2000)); } private void owTrainerComboBox_SelectedIndexChanged(object sender, EventArgs e) { ushort scriptNum = (ushort)(owTrainerComboBox.SelectedIndex + (owPartnerTrainerCheckBox.Checked ? 4999 : 2999)); if (owTrainerComboBox.SelectedIndex > trainerFunnyScriptNumber - 1 ) { scriptNum++; } owScriptNumericUpDown.Value = scriptNum; } private void owXMapUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[overworldsListBox.SelectedIndex].xMapPosition = (short)owXMapUpDown.Value; DisplayActiveEvents(); } private void owXRangeUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[overworldsListBox.SelectedIndex].xRange = (ushort)owXRangeUpDown.Value; } private void owYRangeUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[overworldsListBox.SelectedIndex].yRange = (ushort)owYRangeUpDown.Value; } private void owYMapUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[overworldsListBox.SelectedIndex].yMapPosition = (short)owYMapUpDown.Value; DisplayActiveEvents(); } private void owZPositionUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } int zFld = (short)owZPositionUpDown.Value << 4; //decimal to overworld units currentEvFile.overworlds[selection].zPosition = zFld * 0x1000; //overworld units to fixed point } private void owXMatrixUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[selection].xMatrixPosition = (ushort)owXMatrixUpDown.Value; eventMatrixPictureBox.Image = new Bitmap(eventMatrixPictureBox.Width, eventMatrixPictureBox.Height); MarkActiveCell((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value); DisplayActiveEvents(); } private void owYMatrixUpDown_ValueChanged(object sender, EventArgs e) { int selection = overworldsListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.overworlds[selection].yMatrixPosition = (ushort)owYMatrixUpDown.Value; eventMatrixPictureBox.Image = new Bitmap(eventMatrixPictureBox.Width, eventMatrixPictureBox.Height); MarkActiveCell((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value); DisplayActiveEvents(); } #endregion #region Warps Tab private void addWarpButton_Click(object sender, EventArgs e) { Warp n = new Warp((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value); currentEvFile.warps.Add(n); int index = currentEvFile.warps.Count - 1; warpsListBox.Items.Add(""); warpsListBox.SelectedIndex = index; updateSelectedWarpName(); eventEditorWarpHeaderListBox.SelectedIndex = n.header; } private void removeWarpButton_Click(object sender, EventArgs e) { if (warpsListBox.SelectedIndex < 0) { return; } Helpers.DisableHandlers(); /* Remove warp object from list and the corresponding entry in the ListBox */ int warpNumber = warpsListBox.SelectedIndex; currentEvFile.warps.RemoveAt(warpNumber); warpsListBox.Items.RemoveAt(warpNumber); FillWarpsBox(); // Update ListBox Helpers.EnableHandlers(); if (warpNumber > 0) { warpsListBox.SelectedIndex = warpNumber - 1; } else { DisplayActiveEvents(); } } private void duplicateWarpsButton_Click(object sender, EventArgs e) { if (warpsListBox.SelectedIndex < 0) { return; } Warp n = new Warp(selectedEvent as Warp); currentEvFile.warps.Add(n); int index = currentEvFile.warps.Count - 1; warpsListBox.Items.Add(""); warpsListBox.SelectedIndex = index; updateSelectedWarpName(); eventEditorWarpHeaderListBox.SelectedIndex = n.header; } private void warpAnchorUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || warpsListBox.SelectedIndex < 0) { return; } currentEvFile.warps[warpsListBox.SelectedIndex].anchor = (ushort)warpAnchorUpDown.Value; updateSelectedWarpName(); } private void eventEditorWarpHeaderListBox_SelectedIndexChanged(object sender, EventArgs e) { if (eventEditorWarpHeaderListBox.SelectedIndex < 0) { eventEditorHeaderLocationNameLabel.Text = ""; return; } ushort destHeaderID = (ushort)eventEditorWarpHeaderListBox.SelectedIndex; MapHeader destHeader; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { destHeader = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + destHeaderID.ToString("D4"), destHeaderID, 0); } else { destHeader = MapHeader.LoadFromARM9(destHeaderID); } int locNum; switch (RomInfo.gameFamily) { case GameFamilies.DP: { HeaderDP h = (HeaderDP)destHeader; locNum = h.locationName; break; } case GameFamilies.Plat: { HeaderPt h = (HeaderPt)destHeader; locNum = h.locationName; break; } default: { HeaderHGSS h = (HeaderHGSS)destHeader; locNum = h.locationName; break; } } eventEditorHeaderLocationNameLabel.Text = (string)locationNameComboBox.Items[locNum]; int warpSel = warpsListBox.SelectedIndex; if (Helpers.HandlersDisabled || warpSel < 0) { return; } currentEvFile.warps[warpSel].header = destHeaderID; updateSelectedWarpName(); } private void updateSelectedSpawnableName() { int index = spawnablesListBox.SelectedIndex; if (index < 0) { return; } spawnablesListBox.Items[index] = index.ToString("D" + Math.Max(0, spawnablesListBox.Items.Count - 1).ToString().Length) + ": " + (selectedEvent as Spawnable).ToString(); } private void updateSelectedOverworldName() { int index = overworldsListBox.SelectedIndex; if (index < 0) { return; } overworldsListBox.Items[index] = index.ToString("D" + Math.Max(0, overworldsListBox.Items.Count - 1).ToString().Length) + ": " + (selectedEvent as Overworld).ToString(); } private void updateSelectedWarpName() { int index = warpsListBox.SelectedIndex; if (index < 0) { return; } warpsListBox.Items[index] = index.ToString("D" + Math.Max(0, warpsListBox.Items.Count - 1).ToString().Length) + ": " + (selectedEvent as Warp).ToString(); } private void updateSelectedTriggerName() { int index = triggersListBox.SelectedIndex; if (index < 0) { return; } triggersListBox.Items[index] = index.ToString("D" + Math.Max(0, triggersListBox.Items.Count - 1).ToString().Length) + ": " + (selectedEvent as Trigger).ToString(); } private void warpsListBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled || warpsListBox.SelectedIndex < 0) { return; } selectedEvent = currentEvFile.warps[warpsListBox.SelectedIndex]; eventEditorWarpHeaderListBox.SelectedIndex = currentEvFile.warps[warpsListBox.SelectedIndex].header; Helpers.DisableHandlers(); warpAnchorUpDown.Value = currentEvFile.warps[warpsListBox.SelectedIndex].anchor; warpXMapUpDown.Value = currentEvFile.warps[warpsListBox.SelectedIndex].xMapPosition; warpYMapUpDown.Value = currentEvFile.warps[warpsListBox.SelectedIndex].yMapPosition; warpZUpDown.Value = currentEvFile.warps[warpsListBox.SelectedIndex].zPosition; warpXMatrixUpDown.Value = currentEvFile.warps[warpsListBox.SelectedIndex].xMatrixPosition; warpYMatrixUpDown.Value = currentEvFile.warps[warpsListBox.SelectedIndex].yMatrixPosition; DisplayActiveEvents(); // Redraw events to show selection box #region Re-enable events Helpers.EnableHandlers(); #endregion } private void warpMatrixXUpDown_ValueChanged(object sender, EventArgs e) { int index = warpsListBox.SelectedIndex; if (Helpers.HandlersDisabled || index < 0) { return; } currentEvFile.warps[index].xMatrixPosition = (ushort)warpXMatrixUpDown.Value; DisplayActiveEvents(); } private void warpMatrixYUpDown_ValueChanged(object sender, EventArgs e) { int index = warpsListBox.SelectedIndex; if (Helpers.HandlersDisabled || index < 0) { return; } currentEvFile.warps[index].yMatrixPosition = (ushort)warpYMatrixUpDown.Value; DisplayActiveEvents(); } private void warpXMapUpDown_ValueChanged(object sender, EventArgs e) { int index = warpsListBox.SelectedIndex; if (Helpers.HandlersDisabled || index < 0) { return; } currentEvFile.warps[index].xMapPosition = (short)warpXMapUpDown.Value; DisplayActiveEvents(); } private void warpYMapUpDown_ValueChanged(object sender, EventArgs e) { int index = warpsListBox.SelectedIndex; if (Helpers.HandlersDisabled || index < 0) { return; } currentEvFile.warps[index].yMapPosition = (short)warpYMapUpDown.Value; DisplayActiveEvents(); } private void warpZUpDown_ValueChanged(object sender, EventArgs e) { int index = warpsListBox.SelectedIndex; if (Helpers.HandlersDisabled || index < 0) { return; } currentEvFile.warps[index].zPosition = (short)warpZUpDown.Value; DisplayActiveEvents(); } private void goToWarpDestination_Click(object sender, EventArgs e) { if (warpsListBox.SelectedIndex < 0) { return; } int destAnchor = (int)warpAnchorUpDown.Value; ushort destHeaderID = (ushort)eventEditorWarpHeaderListBox.SelectedIndex; MapHeader destHeader; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { destHeader = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + destHeaderID.ToString("D4"), destHeaderID, 0); } else { destHeader = MapHeader.LoadFromARM9(destHeaderID); } if (new EventFile(destHeader.eventFileID).warps.Count < destAnchor + 1) { DialogResult d = MessageBox.Show("The selected warp's destination anchor doesn't exist.\n" + "Do you want to open the destination map anyway?", "Warp is not connected", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { eventMatrixUpDown.Value = destHeader.matrixID; eventAreaDataUpDown.Value = destHeader.areaDataID; Helpers.DisableHandlers(); selectEventComboBox.SelectedIndex = destHeader.eventFileID; ChangeLoadedEventFile(destHeader.eventFileID, destHeaderID); CenterEventViewOnEntities(); } return; } eventMatrixUpDown.Value = destHeader.matrixID; eventAreaDataUpDown.Value = destHeader.areaDataID; Helpers.DisableHandlers(); selectEventComboBox.SelectedIndex = destHeader.eventFileID; ChangeLoadedEventFile(destHeader.eventFileID, destHeaderID); warpsListBox.SelectedIndex = destAnchor; centerEventViewOnSelectedEvent_Click(sender, e); } #endregion #region Triggers Tab private void addTriggerButton_Click(object sender, EventArgs e) { currentEvFile.triggers.Add(new Trigger((int)eventMatrixXUpDown.Value, (int)eventMatrixYUpDown.Value)); triggersListBox.Items.Add(""); triggersListBox.SelectedIndex = currentEvFile.triggers.Count - 1; updateSelectedTriggerName(); } private void removeTriggerButton_Click(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (selection < 0) { return; } Helpers.DisableHandlers(); /* Remove trigger object from list and the corresponding entry in the ListBox */ currentEvFile.triggers.RemoveAt(selection); triggersListBox.Items.RemoveAt(selection); FillTriggersBox(); // Update ListBox Helpers.EnableHandlers(); if (selection > 0) { triggersListBox.SelectedIndex = selection - 1; } else { DisplayActiveEvents(); } } private void duplicateTriggersButton_Click(object sender, EventArgs e) { if (triggersListBox.SelectedIndex < 0) { return; } currentEvFile.triggers.Add(new Trigger(selectedEvent as Trigger)); triggersListBox.Items.Add(""); triggersListBox.SelectedIndex = currentEvFile.triggers.Count - 1; updateSelectedTriggerName(); } private void triggersListBox_SelectedIndexChanged(object sender, EventArgs e) { int selectedIndex = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selectedIndex < 0) { return; } Helpers.DisableHandlers(); Trigger t = (selectedEvent = currentEvFile.triggers[selectedIndex]) as Trigger; triggerScriptUpDown.Value = t.scriptNumber; triggerVariableWatchedUpDown.Value = t.variableWatched; expectedVarValueTriggerUpDown.Value = t.expectedVarValue; triggerWidthUpDown.Value = t.widthX; triggerLengthUpDown.Value = t.heightY; triggerXMapUpDown.Value = t.xMapPosition; triggerYMapUpDown.Value = t.yMapPosition; triggerZUpDown.Value = t.zPosition; triggerXMatrixUpDown.Value = t.xMatrixPosition; triggerYMatrixUpDown.Value = t.yMatrixPosition; DisplayActiveEvents(); Helpers.EnableHandlers(); } private void triggerVariableWatchedUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].variableWatched = (ushort)triggerVariableWatchedUpDown.Value; updateSelectedTriggerName(); } private void expectedVarValueTriggerUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].expectedVarValue = (ushort)expectedVarValueTriggerUpDown.Value; updateSelectedTriggerName(); } private void triggerScriptUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].scriptNumber = (ushort)triggerScriptUpDown.Value; updateSelectedTriggerName(); } private void triggerXMapUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].xMapPosition = (short)triggerXMapUpDown.Value; DisplayActiveEvents(); } private void triggerYMapUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].yMapPosition = (short)triggerYMapUpDown.Value; DisplayActiveEvents(); } private void triggerZUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].zPosition = (ushort)triggerZUpDown.Value; DisplayActiveEvents(); } private void triggerXMatrixUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].xMatrixPosition = (ushort)triggerXMatrixUpDown.Value; DisplayActiveEvents(); } private void triggerYMatrixUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].yMatrixPosition = (ushort)triggerYMatrixUpDown.Value; DisplayActiveEvents(); } private void triggerWidthUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].widthX = (ushort)triggerWidthUpDown.Value; DisplayActiveEvents(); } private void triggerLengthUpDown_ValueChanged(object sender, EventArgs e) { int selection = triggersListBox.SelectedIndex; if (Helpers.HandlersDisabled || selection < 0) { return; } currentEvFile.triggers[selection].heightY = (ushort)triggerLengthUpDown.Value; DisplayActiveEvents(); } #endregion #endregion #region Text Editor #region Variables TextArchive currentTextArchive; #endregion #region Subroutines #endregion private void addTextArchiveButton_Click(object sender, EventArgs e) { /* Add copy of message 0 to text archives folder */ new TextArchive(0, new List() { "Your text here." }, discardLines: true).SaveToFileDefaultDir(selectTextFileComboBox.Items.Count); /* Update ComboBox and select new file */ selectTextFileComboBox.Items.Add("Text Archive " + selectTextFileComboBox.Items.Count); selectTextFileComboBox.SelectedIndex = selectTextFileComboBox.Items.Count - 1; } private void addStringButton_Click(object sender, EventArgs e) { currentTextArchive.messages.Add(""); textEditorDataGridView.Rows.Add(""); int rowInd = textEditorDataGridView.RowCount - 1; Helpers.DisableHandlers(); string format = "X"; string prefix = "0x"; if (decimalRadioButton.Checked) { format = "D"; prefix = ""; } textEditorDataGridView.Rows[rowInd].HeaderCell.Value = prefix + rowInd.ToString(format); Helpers.EnableHandlers(); } private void exportTextFileButton_Click(object sender, EventArgs e) { int textSelection = selectTextFileComboBox.SelectedIndex; string msgFileType = "Gen IV Text Archive"; string txtFileType = "Plaintext file"; string suggestedFileName = "Text Archive " + textSelection; bool showSuccessMessage = true; SaveFileDialog sf = new SaveFileDialog { Filter = $"{msgFileType} (*.msg)|*.msg|{txtFileType} (*.txt)|*.txt" }; if (!string.IsNullOrWhiteSpace(suggestedFileName)) { sf.FileName = suggestedFileName; } if (sf.ShowDialog() != DialogResult.OK) { return; } string selectedExtension = Path.GetExtension(sf.FileName); string type = currentTextArchive.GetType().Name; if (selectedExtension == ".msg") { // Handle .msg case currentTextArchive.SaveToFile(sf.FileName, showSuccessMessage); } else if (selectedExtension == ".txt") { // Handle .txt case const int txtLinesWarningThreshold = 300; if (currentTextArchive.messages.Count > txtLinesWarningThreshold) { DialogResult result = MessageBox.Show($"This {type} has over {txtLinesWarningThreshold} messages. Writing a large text file may take a long time, especially on slow machines.\n\nAre you sure you want to proceed?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (result == DialogResult.No) { return; } } File.WriteAllText(sf.FileName, currentTextArchive.ToString()); if (showSuccessMessage) { MessageBox.Show($"{type} saved successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } } if (textSelection == RomInfo.locationNamesTextNumber) { ReloadHeaderEditorLocationsList(currentTextArchive.messages); } } private void saveTextArchiveButton_Click(object sender, EventArgs e) { currentTextArchive.SaveToFileDefaultDir(selectTextFileComboBox.SelectedIndex); if (selectTextFileComboBox.SelectedIndex == RomInfo.locationNamesTextNumber) { ReloadHeaderEditorLocationsList(currentTextArchive.messages); } } private void selectedLineMoveUpButton_Click(object sender, EventArgs e) { int cc = textEditorDataGridView.CurrentCell.RowIndex; if (cc > 0) { DataGridViewRowCollection rows = textEditorDataGridView.Rows; DataGridViewCell current = rows[cc].Cells[0]; DataGridViewCell previous = rows[cc - 1].Cells[0]; (current.Value, previous.Value) = (previous.Value, current.Value); textEditorDataGridView.CurrentCell = previous; } } private void selectedLineMoveDownButton_Click(object sender, EventArgs e) { int cc = textEditorDataGridView.CurrentCell.RowIndex; if (cc < textEditorDataGridView.RowCount - 1) { DataGridViewRowCollection rows = textEditorDataGridView.Rows; DataGridViewCell current = rows[cc].Cells[0]; DataGridViewCell next = rows[cc + 1].Cells[0]; (current.Value, next.Value) = (next.Value, current.Value); textEditorDataGridView.CurrentCell = next; } } private void ReloadHeaderEditorLocationsList(IEnumerable contents) { int selection = locationNameComboBox.SelectedIndex; locationNameComboBox.Items.Clear(); locationNameComboBox.Items.AddRange(contents.ToArray()); locationNameComboBox.SelectedIndex = selection; } private void importTextFileButton_Click(object sender, EventArgs e) { /* Prompt user to select .msg or .txt file */ OpenFileDialog of = new OpenFileDialog { Filter = "Text Archive (*.msg;*.txt)|*.msg;*.txt|Gen IV Text Archive (*.msg)|*.msg|Plaintext file (*.txt)|*.txt" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update Text Archive object in memory */ string path = RomInfo.gameDirs[DirNames.textArchives].unpackedDir + "\\" + selectTextFileComboBox.SelectedIndex.ToString("D4"); string selectedExtension = Path.GetExtension(of.FileName); bool readagain = false; if (selectedExtension == ".msg") { // Handle .msg case File.Copy(of.FileName, path, true); readagain = true; } else if (selectedExtension == ".txt") { // Handle .txt case try { string[] lines = File.ReadAllLines(of.FileName); currentTextArchive.messages.Clear(); currentTextArchive.messages.AddRange(lines); } catch (Exception ex) { MessageBox.Show($"Failed to import text file: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } /* Refresh controls */ UpdateTextEditorFileView(readagain); /* Display success message */ MessageBox.Show("Text Archive imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void removeMessageFileButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("Are you sure you want to delete the last Text Archive?", "Confirm deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d.Equals(DialogResult.Yes)) { /* Delete Text Archive */ File.Delete(RomInfo.gameDirs[DirNames.textArchives].unpackedDir + "\\" + (selectTextFileComboBox.Items.Count - 1).ToString("D4")); /* Check if currently selected file is the last one, and in that case select the one before it */ int lastIndex = selectTextFileComboBox.Items.Count - 1; if (selectTextFileComboBox.SelectedIndex == lastIndex) { selectTextFileComboBox.SelectedIndex--; } /* Remove item from ComboBox */ selectTextFileComboBox.Items.RemoveAt(lastIndex); } } private void removeStringButton_Click(object sender, EventArgs e) { if (currentTextArchive.messages.Count > 0) { currentTextArchive.messages.RemoveAt(currentTextArchive.messages.Count - 1); textEditorDataGridView.Rows.RemoveAt(textEditorDataGridView.Rows.Count - 1); } } private void searchMessageButton_Click(object sender, EventArgs e) { if (searchMessageTextBox.Text == "") { return; } int firstArchiveNumber; int lastArchiveNumber; if (searchAllArchivesCheckBox.Checked) { firstArchiveNumber = 0; lastArchiveNumber = romInfo.GetTextArchivesCount(); } else { firstArchiveNumber = selectTextFileComboBox.SelectedIndex; lastArchiveNumber = firstArchiveNumber + 1; } textSearchResultsListBox.Items.Clear(); lastArchiveNumber = Math.Min(lastArchiveNumber, 828); textSearchProgressBar.Maximum = lastArchiveNumber; List results = null; if (caseSensitiveTextSearchCheckbox.Checked) { results = searchTexts(firstArchiveNumber, lastArchiveNumber, (string x) => x.Contains(searchMessageTextBox.Text)); } else { results = searchTexts(firstArchiveNumber, lastArchiveNumber, (string x) => x.IndexOf(searchMessageTextBox.Text, StringComparison.InvariantCultureIgnoreCase) >= 0); } textSearchResultsListBox.Items.AddRange(results.ToArray()); textSearchProgressBar.Value = 0; caseSensitiveTextSearchCheckbox.Enabled = true; } private List searchTexts(int firstArchive, int lastArchive, Func criteria) { List results = new List(); for (int i = firstArchive; i < lastArchive; i++) { TextArchive file = new TextArchive(i); for (int j = 0; j < file.messages.Count; j++) { if (criteria(file.messages[j])) { results.Add("(" + i.ToString("D3") + ")" + " - #" + j.ToString("D2") + " --- " + file.messages[j].Substring(0, Math.Min(file.messages[j].Length, 40))); } } textSearchProgressBar.Value = i; } return results; } private void searchMessageTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { searchMessageButton_Click(null, null); } } private void replaceMessageButton_Click(object sender, EventArgs e) { if (searchMessageTextBox.Text == "") { return; } int firstArchiveNumber; int lastArchiveNumber; string specify; if (searchAllArchivesCheckBox.Checked) { firstArchiveNumber = 0; lastArchiveNumber = romInfo.GetTextArchivesCount(); specify = " in every Text Bank of the game (" + firstArchiveNumber + " to " + lastArchiveNumber + ")"; } else { firstArchiveNumber = selectTextFileComboBox.SelectedIndex; lastArchiveNumber = firstArchiveNumber + 1; specify = " in the current text bank only (" + firstArchiveNumber + ")"; } string message = "You are about to replace every occurrence of " + '"' + searchMessageTextBox.Text + '"' + " with " + '"' + replaceMessageTextBox.Text + '"' + specify + ".\nThe operation can't be interrupted nor undone.\n\nProceed?"; DialogResult d = MessageBox.Show(message, "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { string searchString = searchMessageTextBox.Text; string replaceString = replaceMessageTextBox.Text; textSearchResultsListBox.Items.Clear(); lastArchiveNumber = Math.Min(lastArchiveNumber, 828); textSearchProgressBar.Maximum = lastArchiveNumber; for (int cur = firstArchiveNumber; cur < lastArchiveNumber; cur++) { currentTextArchive = new TextArchive(cur); bool found = false; if (caseSensitiveTextReplaceCheckbox.Checked) { for (int j = 0; j < currentTextArchive.messages.Count; j++) { while (currentTextArchive.messages[j].IndexOf(searchString) >= 0) { currentTextArchive.messages[j] = currentTextArchive.messages[j].Replace(searchString, replaceString); found = true; } } } else { for (int j = 0; j < currentTextArchive.messages.Count; j++) { int posFound; while ((posFound = currentTextArchive.messages[j].IndexOf(searchString, StringComparison.InvariantCultureIgnoreCase)) >= 0) { currentTextArchive.messages[j] = currentTextArchive.messages[j].Substring(0, posFound) + replaceString + currentTextArchive.messages[j].Substring(posFound + searchString.Length); found = true; } } } textSearchProgressBar.Value = cur; if (found) { Helpers.DisableHandlers(); textSearchResultsListBox.Items.Add("Text archive (" + cur + ") - Succesfully edited"); currentTextArchive.SaveToFileDefaultDir(cur, showSuccessMessage: false); if (cur == lastArchiveNumber) { UpdateTextEditorFileView(false); } Helpers.EnableHandlers(); } //else searchMessageResultTextBox.AppendText(searchString + " not found in this file"); //this.saveMessageFileButton_Click(sender, e); } MessageBox.Show("Operation completed.", "Replace All Text", MessageBoxButtons.OK, MessageBoxIcon.Information); UpdateTextEditorFileView(readAgain: true); textSearchProgressBar.Value = 0; } } private void selectTextFileComboBox_SelectedIndexChanged(object sender, EventArgs e) { UpdateTextEditorFileView(true); } private void UpdateTextEditorFileView(bool readAgain) { Helpers.DisableHandlers(); textEditorDataGridView.Rows.Clear(); if (currentTextArchive is null || readAgain) { currentTextArchive = new TextArchive(selectTextFileComboBox.SelectedIndex); } foreach (string msg in currentTextArchive.messages) { textEditorDataGridView.Rows.Add(msg); } if (hexRadiobutton.Checked) { PrintTextEditorLinesHex(); } else { PrintTextEditorLinesDecimal(); } Helpers.EnableHandlers(); textEditorDataGridView_CurrentCellChanged(textEditorDataGridView, null); } private void PrintTextEditorLinesHex() { int final = Math.Min(textEditorDataGridView.Rows.Count, currentTextArchive.messages.Count); for (int i = 0; i < final; i++) { textEditorDataGridView.Rows[i].HeaderCell.Value = "0x" + i.ToString("X"); } } private void PrintTextEditorLinesDecimal() { int final = Math.Min(textEditorDataGridView.Rows.Count, currentTextArchive.messages.Count); for (int i = 0; i < final; i++) { textEditorDataGridView.Rows[i].HeaderCell.Value = i.ToString(); } } private void textEditorDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (Helpers.HandlersDisabled) { return; } if (e.RowIndex > -1 && e.ColumnIndex > -1) { try { currentTextArchive.messages[e.RowIndex] = textEditorDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); } catch (NullReferenceException) { currentTextArchive.messages[e.RowIndex] = ""; } } } private void textEditorDataGridView_CurrentCellChanged(object sender, EventArgs e) { DataGridView dgv = sender as DataGridView; if (Helpers.HandlersDisabled || dgv == null || dgv.CurrentCell == null) { return; } Console.WriteLine("R: " + dgv.CurrentCell.RowIndex); Console.WriteLine("Last index: " + (dgv.RowCount - 1).ToString()); if (dgv.CurrentCell.RowIndex > 0) { selectedLineMoveUpButton.Enabled = true; } else { selectedLineMoveUpButton.Enabled = false; } if (dgv.CurrentCell.RowIndex < dgv.RowCount - 1) { selectedLineMoveDownButton.Enabled = true; } else { selectedLineMoveDownButton.Enabled = false; } } private void textSearchResultsListBox_GoToEntryResult(object sender, MouseEventArgs e) { if (textSearchResultsListBox.SelectedIndex < 0) { return; } string[] msgResult = textSearchResultsListBox.Text.Split(new string[] { " --- " }, StringSplitOptions.RemoveEmptyEntries); string[] parts = msgResult[0].Substring(1).Split(new string[] { ") - #" }, StringSplitOptions.RemoveEmptyEntries); if (int.TryParse(parts[0], out int msg)) { if (int.TryParse(parts[1], out int line)) { selectTextFileComboBox.SelectedIndex = msg; textEditorDataGridView.ClearSelection(); textEditorDataGridView.Rows[line].Selected = true; textEditorDataGridView.Rows[line].Cells[0].Selected = true; textEditorDataGridView.CurrentCell = textEditorDataGridView.Rows[line].Cells[0]; return; } } } private void textSearchResultsListBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { textSearchResultsListBox_GoToEntryResult(null, null); } } private void hexRadiobutton_CheckedChanged(object sender, EventArgs e) { updateTextEditorLineNumbers(); Properties.Settings.Default.textEditorPreferHex = hexRadiobutton.Checked; } private void updateTextEditorLineNumbers() { Helpers.DisableHandlers(); if (hexRadiobutton.Checked) { PrintTextEditorLinesHex(); } else { PrintTextEditorLinesDecimal(); } Helpers.EnableHandlers(); } #endregion #region NSBTX Editor public NSBTX_File currentNsbtx; public AreaData currentAreaData; public void FillTilesetBox() { texturePacksListBox.Items.Clear(); int tilesetFileCount; if (mapTilesetRadioButton.Checked) { tilesetFileCount = romInfo.GetMapTexturesCount(); } else { tilesetFileCount = romInfo.GetBuildingTexturesCount(); } for (int i = 0; i < tilesetFileCount; i++) { texturePacksListBox.Items.Add("Texture Pack " + i); } } private void SetupNSBTXEditor() { Helpers.statusLabelMessage("Attempting to unpack Tileset Editor NARCs... Please wait."); Update(); DSUtils.TryUnpackNarcs(new List { DirNames.buildingTextures, DirNames.mapTextures, DirNames.buildingConfigFiles, DirNames.areaData }); /* Fill Tileset ListBox */ FillTilesetBox(); /* Fill AreaData ComboBox */ selectAreaDataListBox.Items.Clear(); int areaDataCount = romInfo.GetAreaDataCount(); for (int i = 0; i < areaDataCount; i++) { selectAreaDataListBox.Items.Add("AreaData File " + i); } /* Enable gameVersion-specific controls */ string[] lightTypes; switch (RomInfo.gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: lightTypes = new string[3] { "Day/Night Light", "Model's light", "Unknown Light" }; break; default: lightTypes = new string[3] { "Model's light", "Day/Night Light", "Unknown Light" }; areaDataDynamicTexturesNumericUpDown.Enabled = true; areaTypeGroupbox.Enabled = true; break; }; areaDataLightTypeComboBox.Items.Clear(); areaDataLightTypeComboBox.Items.AddRange(lightTypes); if (selectAreaDataListBox.Items.Count > 0) { selectAreaDataListBox.SelectedIndex = 0; } if (texturePacksListBox.Items.Count > 0) { texturePacksListBox.SelectedIndex = 0; } if (texturesListBox.Items.Count > 0) { texturesListBox.SelectedIndex = 0; } if (palettesListBox.Items.Count > 0) { palettesListBox.SelectedIndex = 0; } Helpers.statusLabelMessage(); } private void buildingsTilesetRadioButton_CheckedChanged(object sender, EventArgs e) { FillTilesetBox(); texturePacksListBox.SelectedIndex = (int)areaDataBuildingTilesetUpDown.Value; if (texturesListBox.Items.Count > 0) { texturesListBox.SelectedIndex = 0; } if (palettesListBox.Items.Count > 0) { palettesListBox.SelectedIndex = 0; } } private void exportNSBTXButton_Click(object sender, EventArgs e) { SaveFileDialog sf = new SaveFileDialog { Filter = "NSBTX File (*.nsbtx)|*.nsbtx", FileName = "Texture Pack " + texturePacksListBox.SelectedIndex }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } string tilesetPath = mapTilesetRadioButton.Checked ? RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + texturePacksListBox.SelectedIndex.ToString("D4") : RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + texturePacksListBox.SelectedIndex.ToString("D4"); File.Copy(tilesetPath, sf.FileName); MessageBox.Show("NSBTX tileset exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void importNSBTXButton_Click(object sender, EventArgs e) { /* Prompt user to select .nsbtx file */ OpenFileDialog ofd = new OpenFileDialog { Filter = "NSBTX File (*.nsbtx)|*.nsbtx" }; if (ofd.ShowDialog(this) != DialogResult.OK) { return; } /* Update nsbtx file */ string tilesetPath = mapTilesetRadioButton.Checked ? RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + texturePacksListBox.SelectedIndex.ToString("D4") : RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + texturePacksListBox.SelectedIndex.ToString("D4"); File.Copy(ofd.FileName, tilesetPath, true); /* Update nsbtx object in memory and controls */ currentNsbtx = new NSMBe4.NSBMD.NSBTX_File(new FileStream(ofd.FileName, FileMode.Open)); texturePacksListBox_SelectedIndexChanged(null, null); MessageBox.Show("NSBTX tileset imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void mapTilesetRadioButton_CheckedChanged(object sender, EventArgs e) { FillTilesetBox(); try { if (mapTilesetRadioButton.Checked) { texturePacksListBox.SelectedIndex = (int)areaDataMapTilesetUpDown.Value; } else if (buildingsTilesetRadioButton.Checked) { texturePacksListBox.SelectedIndex = (int)areaDataBuildingTilesetUpDown.Value; } } catch (ArgumentOutOfRangeException) { texturePacksListBox.SelectedIndex = 0; } } private void palettesListBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } palettesLabel.Text = $"Palettes [{palettesListBox.SelectedIndex + 1}/{palettesListBox.Items.Count}]"; int ctrlCode = NSBTXRender(tex: texturesListBox.SelectedIndex, pal: palettesListBox.SelectedIndex, scale: nsbtxScaleFactor); if (ctrlCode > 0) { Helpers.statusLabelError($"ERROR! The selected palette doesn't have enough colors for this Palette{ctrlCode} texture."); } else { Helpers.statusLabelMessage(); } } private void texturePacksListBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); /* Clear ListBoxes */ texturesListBox.Items.Clear(); palettesListBox.Items.Clear(); /* Load tileset file */ string tilesetPath = mapTilesetRadioButton.Checked ? RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + texturePacksListBox.SelectedIndex.ToString("D4") : RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + texturePacksListBox.SelectedIndex.ToString("D4"); currentNsbtx = new NSBTX_File(new FileStream(tilesetPath, FileMode.Open)); string currentItemName = texturePacksListBox.Items[texturePacksListBox.SelectedIndex].ToString(); if (currentNsbtx.texInfo.names is null || currentNsbtx.palInfo.names is null) { if (!currentItemName.StartsWith("Error!")) { texturePacksListBox.Items[texturePacksListBox.SelectedIndex] = "Error! - " + currentItemName; } Helpers.EnableHandlers(); return; } /* Add textures and palette slot names to ListBoxes */ texturesListBox.Items.AddRange(currentNsbtx.texInfo.names.ToArray()); palettesListBox.Items.AddRange(currentNsbtx.palInfo.names.ToArray()); Helpers.EnableHandlers(); if (texturesListBox.Items.Count > 0) { texturesListBox.SelectedIndex = 0; } } private void texturesListBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.BackUpDisableHandler(); Helpers.DisableHandlers(); texturesLabel.Text = $"Textures [{texturesListBox.SelectedIndex + 1}/{texturesListBox.Items.Count}]"; string findThis = texturesListBox.SelectedItem.ToString(); string matchingPalette = findAndSelectMatchingPalette(findThis); if (matchingPalette == null) { Helpers.statusLabelError("Couldn't find a palette to match " + '"' + findThis + '"', severe: false); } else { palettesListBox.SelectedItem = matchingPalette; Helpers.statusLabelMessage("Ready"); } Helpers.RestoreDisableHandler(); int ctrlCode = NSBTXRender(tex: Math.Max(0, texturesListBox.SelectedIndex), pal: Math.Max(0, palettesListBox.SelectedIndex), scale: nsbtxScaleFactor); if (matchingPalette != null && ctrlCode > 0) { Helpers.statusLabelError($"ERROR! The selected palette doesn't have enough colors for this Palette{ctrlCode} texture."); } } private string findAndSelectMatchingPalette(string findThis) { Helpers.statusLabelMessage("Searching palette..."); string copy = findThis; while (copy.Length > 0) { if (palettesListBox.Items.Contains(copy + "_pl")) { return copy + "_pl"; } if (palettesListBox.Items.Contains(copy)) { return copy; } copy = copy.Substring(0, copy.Length - 1); } foreach (string palette in palettesListBox.Items) { if (palette.StartsWith(findThis)) { return palette; } } return null; } private void areaDataBuildingTilesetUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentAreaData.buildingsTileset = (ushort)areaDataBuildingTilesetUpDown.Value; } private void areaDataDynamicTexturesUpDown_ValueChanged(object sender, EventArgs e) { if (areaDataDynamicTexturesNumericUpDown.Value == areaDataDynamicTexturesNumericUpDown.Maximum) { areaDataDynamicTexturesNumericUpDown.ForeColor = Color.Red; } else { areaDataDynamicTexturesNumericUpDown.ForeColor = Color.Black; } if (Helpers.HandlersDisabled) { return; } currentAreaData.dynamicTextureType = (ushort)areaDataDynamicTexturesNumericUpDown.Value; } private void areaDataLightTypeComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentAreaData.lightType = (byte)areaDataLightTypeComboBox.SelectedIndex; } private void areaDataMapTilesetUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentAreaData.mapTileset = (ushort)areaDataMapTilesetUpDown.Value; } private void saveAreaDataButton_Click(object sender, EventArgs e) { currentAreaData.SaveToFileDefaultDir(selectAreaDataListBox.SelectedIndex); } private void selectAreaDataListBox_SelectedIndexChanged(object sender, EventArgs e) { currentAreaData = new AreaData((byte)selectAreaDataListBox.SelectedIndex); areaDataBuildingTilesetUpDown.Value = currentAreaData.buildingsTileset; areaDataMapTilesetUpDown.Value = currentAreaData.mapTileset; areaDataLightTypeComboBox.SelectedIndex = currentAreaData.lightType; Helpers.DisableHandlers(); if (RomInfo.gameFamily == GameFamilies.HGSS) { areaDataDynamicTexturesNumericUpDown.Value = currentAreaData.dynamicTextureType; bool interior = currentAreaData.areaType == 0; indoorAreaRadioButton.Checked = interior; outdoorAreaRadioButton.Checked = !interior; } Helpers.EnableHandlers(); } private void indoorAreaRadioButton_CheckedChanged(object sender, EventArgs e) { currentAreaData.areaType = indoorAreaRadioButton.Checked ? AreaData.TYPE_INDOOR : AreaData.TYPE_OUTDOOR; } private void addNSBTXButton_Click(object sender, EventArgs e) { /* Add new NSBTX file to the correct folder */ if (mapTilesetRadioButton.Checked) { File.Copy(RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + 0.ToString("D4"), RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + texturePacksListBox.Items.Count.ToString("D4")); if (mapEditorIsReady) { mapTextureComboBox.Items.Add("Map Texture Pack [" + mapTextureComboBox.Items.Count.ToString("D2") + "]"); } } else { File.Copy(RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + 0.ToString("D4"), RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + texturePacksListBox.Items.Count.ToString("D4")); File.Copy(RomInfo.gameDirs[DirNames.buildingConfigFiles].unpackedDir + "\\" + 0.ToString("D4"), RomInfo.gameDirs[DirNames.buildingConfigFiles].unpackedDir + "\\" + texturePacksListBox.Items.Count.ToString("D4")); if (mapEditorIsReady) { buildTextureComboBox.Items.Add("Building Texture Pack [" + buildTextureComboBox.Items.Count.ToString("D2") + "]"); } } /* Update ComboBox and select new file */ texturePacksListBox.Items.Add("Texture Pack " + texturePacksListBox.Items.Count); texturePacksListBox.SelectedIndex = texturePacksListBox.Items.Count - 1; } private void removeNSBTXButton_Click(object sender, EventArgs e) { if (texturePacksListBox.Items.Count > 1) { /* Delete NSBTX file */ DialogResult d = MessageBox.Show("Are you sure you want to delete the last Texture Pack?", "Confirm deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d.Equals(DialogResult.Yes)) { if (mapTilesetRadioButton.Checked) { File.Delete(RomInfo.gameDirs[DirNames.mapTextures].unpackedDir + "\\" + (texturePacksListBox.Items.Count - 1).ToString("D4")); if (mapEditorIsReady) { mapTextureComboBox.Items.RemoveAt(mapTextureComboBox.Items.Count - 1); } } else { File.Delete(RomInfo.gameDirs[DirNames.buildingTextures].unpackedDir + "\\" + (texturePacksListBox.Items.Count - 1).ToString("D4")); File.Delete(RomInfo.gameDirs[DirNames.buildingConfigFiles].unpackedDir + "\\" + (texturePacksListBox.Items.Count - 1).ToString("D4")); if (mapEditorIsReady) { buildTextureComboBox.Items.RemoveAt(buildTextureComboBox.Items.Count - 1); } } /* Check if currently selected file is the last one, and in that case select the one before it */ int lastIndex = texturePacksListBox.Items.Count - 1; if (texturePacksListBox.SelectedIndex == lastIndex) { texturePacksListBox.SelectedIndex--; } /* Remove item from ComboBox */ texturePacksListBox.Items.RemoveAt(lastIndex); } } else { MessageBox.Show("At least one tileset must be kept.", "Can't delete tileset", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } private void addAreaDataButton_Click(object sender, EventArgs e) { /* Add new NSBTX file to the correct folder */ string areaDataDirPath = RomInfo.gameDirs[DirNames.areaData].unpackedDir; File.Copy(areaDataDirPath + "\\" + 0.ToString("D4"), areaDataDirPath + "\\" + selectAreaDataListBox.Items.Count.ToString("D4")); /* Update ComboBox and select new file */ selectAreaDataListBox.Items.Add("AreaData File " + selectAreaDataListBox.Items.Count); selectAreaDataListBox.SelectedIndex = selectAreaDataListBox.Items.Count - 1; if (eventEditorIsReady) { eventAreaDataUpDown.Maximum++; } } private void removeAreaDataButton_Click(object sender, EventArgs e) { if (selectAreaDataListBox.Items.Count > 1) { /* Delete AreaData file */ File.Delete(RomInfo.gameDirs[DirNames.areaData].unpackedDir + "\\" + (selectAreaDataListBox.Items.Count - 1).ToString("D4")); /* Check if currently selected file is the last one, and in that case select the one before it */ int lastIndex = selectAreaDataListBox.Items.Count - 1; if (selectAreaDataListBox.SelectedIndex == lastIndex) { selectAreaDataListBox.SelectedIndex--; } /* Remove item from ComboBox */ selectAreaDataListBox.Items.RemoveAt(lastIndex); if (eventEditorIsReady) { eventAreaDataUpDown.Maximum--; } } else { MessageBox.Show("At least one AreaData file must be kept.", "Can't delete AreaData", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } private void exportAreaDataButton_Click(object sender, EventArgs e) { currentAreaData.SaveToFileExplorePath("Area Data " + selectAreaDataListBox.SelectedIndex); } private void importAreaDataButton_Click(object sender, EventArgs e) { if (selectAreaDataListBox.SelectedIndex < 0) { return; } OpenFileDialog of = new OpenFileDialog { Filter = "AreaData File (*.bin)|*.bin" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update areadata object in memory */ string path = RomInfo.gameDirs[DirNames.areaData].unpackedDir + "\\" + selectAreaDataListBox.SelectedIndex.ToString("D4"); File.Copy(of.FileName, path, true); /* Refresh controls */ selectAreaDataListBox_SelectedIndexChanged(sender, e); /* Display success message */ MessageBox.Show("AreaData File imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion #region Camera Editor GameCamera[] currentCameraTable; uint overlayCameraTblOffset; private void SetupCameraEditor() { RomInfo.PrepareCameraData(); cameraEditorDataGridView.Rows.Clear(); if (OverlayUtils.OverlayTable.IsDefaultCompressed(RomInfo.cameraTblOverlayNumber)) { DialogResult d1 = MessageBox.Show("It is STRONGLY recommended to configure Overlay1 as uncompressed before proceeding.\n\n" + "More details in the following dialog.\n\n" + "Do you want to know more?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); bool userConfirmed = (d1 == DialogResult.Yes && PatchToolboxDialog.ConfigureOverlay1Uncompressed()); if (!userConfirmed) { MessageBox.Show("You chose not to apply the patch. Use this editor responsibly.\n\n" + "If you change your mind, you can apply it later by accessing the Patch Toolbox.", "Caution", MessageBoxButtons.OK, MessageBoxIcon.Information); if (OverlayUtils.IsCompressed(RomInfo.cameraTblOverlayNumber)) { OverlayUtils.Decompress(RomInfo.cameraTblOverlayNumber); } } } uint[] RAMaddresses = new uint[RomInfo.cameraTblOffsetsToRAMaddress.Length]; string camOverlayPath = OverlayUtils.GetPath(RomInfo.cameraTblOverlayNumber); using (DSUtils.EasyReader br = new DSUtils.EasyReader(camOverlayPath)) { for (int i = 0; i < RomInfo.cameraTblOffsetsToRAMaddress.Length; i++) { br.BaseStream.Position = RomInfo.cameraTblOffsetsToRAMaddress[i]; RAMaddresses[i] = br.ReadUInt32(); } } uint referenceAddress = RAMaddresses[0]; for (int i = 1; i < RAMaddresses.Length; i++) { uint ramAddress = RAMaddresses[i]; if (ramAddress != referenceAddress) { MessageBox.Show("Value of RAM Pointer to the overlay table is different between Offset #1 and Offset #" + (i + 1) + Environment.NewLine + "The camera values might be wrong.", "Possible errors ahead", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } overlayCameraTblOffset = RAMaddresses[0] - OverlayUtils.OverlayTable.GetRAMAddress(RomInfo.cameraTblOverlayNumber); using (DSUtils.EasyReader br = new DSUtils.EasyReader(camOverlayPath, overlayCameraTblOffset)) { if (RomInfo.gameFamily == GameFamilies.HGSS) { currentCameraTable = new GameCamera[17]; for (int i = 0; i < currentCameraTable.Length; i++) { currentCameraTable[i] = new GameCamera(br.ReadUInt32(), br.ReadInt16(), br.ReadInt16(), br.ReadInt16(), br.ReadInt16(), br.ReadByte(), br.ReadByte(), br.ReadUInt16(), br.ReadUInt32(), br.ReadUInt32(), br.ReadInt32(), br.ReadInt32(), br.ReadInt32()); } } else { currentCameraTable = new GameCamera[16]; for (int i = 0; i < 3; i++) { cameraEditorDataGridView.Columns.RemoveAt(cameraEditorDataGridView.Columns.Count - 3); } for (int i = 0; i < currentCameraTable.Length; i++) { currentCameraTable[i] = new GameCamera(br.ReadUInt32(), br.ReadInt16(), br.ReadInt16(), br.ReadInt16(), br.ReadInt16(), br.ReadByte(), br.ReadByte(), br.ReadUInt16(), br.ReadUInt32(), br.ReadUInt32()); } } cameraEditorDataGridView.RowTemplate.Height = 32 * 16 / currentCameraTable.Length; for (int i = 0; i < currentCameraTable.Length; i++) { currentCameraTable[i].ShowInGridView(cameraEditorDataGridView, i); } } } private void saveCameraTableButton_Click(object sender, EventArgs e) { SaveCameraTable(OverlayUtils.GetPath(RomInfo.cameraTblOverlayNumber), overlayCameraTblOffset); } private void cameraEditorDataGridView_CellValidated(object sender, DataGridViewCellEventArgs e) { currentCameraTable[e.RowIndex][e.ColumnIndex] = cameraEditorDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; cameraEditorDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = currentCameraTable[e.RowIndex][e.ColumnIndex]; } private void exportCameraTableButton_Click(object sender, EventArgs e) { SaveFileDialog of = new SaveFileDialog { Filter = "Camera Table File (*.bin)|*.bin", FileName = Path.GetFileNameWithoutExtension(RomInfo.fileName) + " - CameraTable.bin" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } File.Delete(of.FileName); SaveCameraTable(of.FileName, 0); } private void SaveCameraTable(string path, uint destFileOffset) { for (int i = 0; i < currentCameraTable.Length; i++) { DSUtils.WriteToFile(path, currentCameraTable[i].ToByteArray(), (uint)(destFileOffset + i * RomInfo.cameraSize)); } MessageBox.Show("Camera table correctly saved.", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void cameraEditorDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { var senderTable = (DataGridView)sender; if (senderTable.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0) { string type = "Camera File"; if (e.ColumnIndex == cameraEditorDataGridView.Columns.Count - 2) { //Export SaveFileDialog sf = new SaveFileDialog { Filter = type + " (*.bin)|*.bin", FileName = Path.GetFileNameWithoutExtension(RomInfo.fileName) + " - Camera " + e.RowIndex + ".bin" }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } DSUtils.WriteToFile(sf.FileName, currentCameraTable[e.RowIndex].ToByteArray(), fmode: FileMode.Create); MessageBox.Show("Camera correctly saved.", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (e.ColumnIndex == cameraEditorDataGridView.Columns.Count - 1) { //Import OpenFileDialog of = new OpenFileDialog { Filter = type + " (*.bin)|*.bin", }; if (of.ShowDialog(this) != DialogResult.OK) { return; } currentCameraTable[e.RowIndex] = new GameCamera(File.ReadAllBytes(of.FileName)); currentCameraTable[e.RowIndex].ShowInGridView(senderTable, e.RowIndex); MessageBox.Show("Camera correctly imported.", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } private void importCameraTableButton_Click(object sender, EventArgs e) { string fileType = "Camera Table File"; OpenFileDialog of = new OpenFileDialog { Filter = fileType + " (*.bin)|*.bin", }; if (of.ShowDialog(this) != DialogResult.OK) { return; } long l = new FileInfo(of.FileName).Length; if (l % RomInfo.cameraSize != 0) { MessageBox.Show("This is not a " + RomInfo.gameFamily + ' ' + fileType + "\nMake sure the file length is a multiple of " + RomInfo.cameraSize + " and try again.", "Wrong file!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } byte nCameras = (byte)(l / RomInfo.cameraSize); for (byte b = 0; b < nCameras; b++) { currentCameraTable[b] = new GameCamera(DSUtils.ReadFromFile(of.FileName, b * RomInfo.cameraSize, RomInfo.cameraSize)); currentCameraTable[b].ShowInGridView(cameraEditorDataGridView, b); } MessageBox.Show("Camera Table imported correctly.", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion #region Trainer Editor private List partyPokemonComboboxList = new List(); private List partyItemsComboboxList = new List(); private List partyMovesGroupboxList = new List(); private List partyLevelUpdownList = new List(); private List partyGenderComboBoxList = new List(); private List partyAbilityComboBoxList = new List(); private List partyFormComboBoxList = new List(); private List partyIVUpdownList = new List(); private List partyBallUpdownList = new List(); private List partyGroupboxList = new List(); private List partyPokemonPictureBoxList = new List(); private List partyPokemonItemIconList = new List(); private const int TRAINER_PARTY_POKEMON_GENDER_DEFAULT_INDEX = 0; private const int TRAINER_PARTY_POKEMON_GENDER_MALE_INDEX = 1; private const int TRAINER_PARTY_POKEMON_GENDER_FEMALE_INDEX = 2; private const int TRAINER_PARTY_POKEMON_ABILITY_SLOT1_INDEX = 0; private const int TRAINER_PARTY_POKEMON_ABILITY_SLOT2_INDEX = 1; string[] abilityNames; SpeciesFile[] pokemonSpecies; private (int abi1, int abi2)[] pokemonSpeciesAbilities; TrainerFile currentTrainerFile; PaletteBase trainerPal; ImageBase trainerTile; SpriteBase trainerSprite; Dictionary trainerClassEncounterMusicDict; private void SetupTrainerClassEncounterMusicTable() { RomInfo.SetEncounterMusicTableOffsetToRAMAddress(); trainerClassEncounterMusicDict = new Dictionary(); uint encounterMusicTableTableStartAddress = BitConverter.ToUInt32(ARM9.ReadBytes(RomInfo.encounterMusicTableOffsetToRAMAddress, 4), 0) - ARM9.address; uint tableSizeOffset = 10; if (gameFamily == GameFamilies.HGSS) { tableSizeOffset += 2; encounterSSEQAltUpDown.Enabled = true; } byte tableEntriesCount = ARM9.ReadByte(RomInfo.encounterMusicTableOffsetToRAMAddress - tableSizeOffset); using (ARM9.Reader ar = new ARM9.Reader(encounterMusicTableTableStartAddress)) { for (int i = 0; i < tableEntriesCount; i++) { uint entryOffset = (uint)ar.BaseStream.Position; byte tclass = (byte)ar.ReadUInt16(); ushort musicD = ar.ReadUInt16(); ushort? musicN = gameFamily == GameFamilies.HGSS ? ar.ReadUInt16() : (ushort?)null; trainerClassEncounterMusicDict[tclass] = (entryOffset, musicD, musicN); } } } public void RefreshAbilities(int forPokemon) { DialogResult res = MessageBox.Show("You have modified a Pokemon's ability.\nDo you wish to refresh the Trainer Editor so your changes are available?", "Refresh Trainer Editor", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (res.Equals(DialogResult.Yes)) { int currentIndex = trainerComboBox.SelectedIndex; SetupTrainerEditor(); trainerComboBox.SelectedIndex = currentIndex; } } private void SetupTrainerEditor() { Helpers.DisableHandlers(); //SetTrainerNameMaxLen(); SetupTrainerClassEncounterMusicTable(); /* Extract essential NARCs sub-archives*/ Helpers.statusLabelMessage("Setting up Trainer Editor..."); Update(); DSUtils.TryUnpackNarcs(new List { DirNames.trainerProperties, DirNames.trainerParty, DirNames.trainerGraphics, DirNames.textArchives, DirNames.monIcons, DirNames.personalPokeData, DirNames.learnsets }); int numPokemonSpecies = Directory.GetFiles(RomInfo.gameDirs[DirNames.personalPokeData].unpackedDir, "*").Count(); pokemonSpeciesAbilities = new (int abi1, int abi2)[numPokemonSpecies]; pokemonSpecies = new SpeciesFile[numPokemonSpecies]; RomInfo.SetMonIconsPalTableAddress(); partyPokemonComboboxList.Clear(); partyPokemonComboboxList.Add(partyPokemon1ComboBox); partyPokemonComboboxList.Add(partyPokemon2ComboBox); partyPokemonComboboxList.Add(partyPokemon3ComboBox); partyPokemonComboboxList.Add(partyPokemon4ComboBox); partyPokemonComboboxList.Add(partyPokemon5ComboBox); partyPokemonComboboxList.Add(partyPokemon6ComboBox); partyItemsComboboxList.Clear(); partyItemsComboboxList.Add(partyItem1ComboBox); partyItemsComboboxList.Add(partyItem2ComboBox); partyItemsComboboxList.Add(partyItem3ComboBox); partyItemsComboboxList.Add(partyItem4ComboBox); partyItemsComboboxList.Add(partyItem5ComboBox); partyItemsComboboxList.Add(partyItem6ComboBox); partyLevelUpdownList.Clear(); partyLevelUpdownList.Add(partyLevel1UpDown); partyLevelUpdownList.Add(partyLevel2UpDown); partyLevelUpdownList.Add(partyLevel3UpDown); partyLevelUpdownList.Add(partyLevel4UpDown); partyLevelUpdownList.Add(partyLevel5UpDown); partyLevelUpdownList.Add(partyLevel6UpDown); partyGenderComboBoxList.Clear(); partyGenderComboBoxList.Add(partyGender1ComboBox); partyGenderComboBoxList.Add(partyGender2ComboBox); partyGenderComboBoxList.Add(partyGender3ComboBox); partyGenderComboBoxList.Add(partyGender4ComboBox); partyGenderComboBoxList.Add(partyGender5ComboBox); partyGenderComboBoxList.Add(partyGender6ComboBox); partyAbilityComboBoxList.Clear(); partyAbilityComboBoxList.Add(partyAbility1ComboBox); partyAbilityComboBoxList.Add(partyAbility2ComboBox); partyAbilityComboBoxList.Add(partyAbility3ComboBox); partyAbilityComboBoxList.Add(partyAbility4ComboBox); partyAbilityComboBoxList.Add(partyAbility5ComboBox); partyAbilityComboBoxList.Add(partyAbility6ComboBox); partyFormComboBoxList.Clear(); partyFormComboBoxList.Add(partyForm1ComboBox); partyFormComboBoxList.Add(partyForm2ComboBox); partyFormComboBoxList.Add(partyForm3ComboBox); partyFormComboBoxList.Add(partyForm4ComboBox); partyFormComboBoxList.Add(partyForm5ComboBox); partyFormComboBoxList.Add(partyForm6ComboBox); partyIVUpdownList.Clear(); partyIVUpdownList.Add(partyIV1UpDown); partyIVUpdownList.Add(partyIV2UpDown); partyIVUpdownList.Add(partyIV3UpDown); partyIVUpdownList.Add(partyIV4UpDown); partyIVUpdownList.Add(partyIV5UpDown); partyIVUpdownList.Add(partyIV6UpDown); partyBallUpdownList.Clear(); partyBallUpdownList.Add(partyBall1UpDown); partyBallUpdownList.Add(partyBall2UpDown); partyBallUpdownList.Add(partyBall3UpDown); partyBallUpdownList.Add(partyBall4UpDown); partyBallUpdownList.Add(partyBall5UpDown); partyBallUpdownList.Add(partyBall6UpDown); partyMovesGroupboxList.Clear(); partyMovesGroupboxList.Add(poke1MovesGroupBox); partyMovesGroupboxList.Add(poke2MovesGroupBox); partyMovesGroupboxList.Add(poke3MovesGroupBox); partyMovesGroupboxList.Add(poke4MovesGroupBox); partyMovesGroupboxList.Add(poke5MovesGroupBox); partyMovesGroupboxList.Add(poke6MovesGroupBox); partyGroupboxList.Clear(); partyGroupboxList.Add(party1GroupBox); partyGroupboxList.Add(party2GroupBox); partyGroupboxList.Add(party3GroupBox); partyGroupboxList.Add(party4GroupBox); partyGroupboxList.Add(party5GroupBox); partyGroupboxList.Add(party6GroupBox); partyPokemonPictureBoxList.Clear(); partyPokemonPictureBoxList.Add(partyPokemon1PictureBox); partyPokemonPictureBoxList.Add(partyPokemon2PictureBox); partyPokemonPictureBoxList.Add(partyPokemon3PictureBox); partyPokemonPictureBoxList.Add(partyPokemon4PictureBox); partyPokemonPictureBoxList.Add(partyPokemon5PictureBox); partyPokemonPictureBoxList.Add(partyPokemon6PictureBox); partyPokemonItemIconList.Clear(); partyPokemonItemIconList.Add(partyPokemonItemPictureBox1); partyPokemonItemIconList.Add(partyPokemonItemPictureBox2); partyPokemonItemIconList.Add(partyPokemonItemPictureBox3); partyPokemonItemIconList.Add(partyPokemonItemPictureBox4); partyPokemonItemIconList.Add(partyPokemonItemPictureBox5); partyPokemonItemIconList.Add(partyPokemonItemPictureBox6); int trainerCount = Directory.GetFiles(RomInfo.gameDirs[DirNames.trainerProperties].unpackedDir).Length; trainerComboBox.Items.Clear(); trainerComboBox.Items.AddRange(GetTrainerNames()); string[] classNames = RomInfo.GetTrainerClassNames(); trainerClassListBox.Items.Clear(); if (classNames.Length > byte.MaxValue + 1) { MessageBox.Show("There can't be more than 256 trainer classes! [Found " + classNames.Length + "].\nAborting.", "Too many trainer classes", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } for (int i = 0; i < classNames.Length; i++) { trainerClassListBox.Items.Add("[" + i.ToString("D3") + "]" + " " + classNames[i]); } for (int i = 0; i < numPokemonSpecies; i++) { pokemonSpecies[i] = new SpeciesFile(new FileStream(RomInfo.gameDirs[DirNames.personalPokeData].unpackedDir + "\\" + i.ToString("D4"), FileMode.Open)); } if (gameFamily == GameFamilies.HGSS) { foreach (ComboBox partyGenderComboBox in partyGenderComboBoxList) { partyGenderComboBox.Visible = true; partyGenderComboBox.Items.Add("Default Gender"); partyGenderComboBox.Items.Add("Male"); partyGenderComboBox.Items.Add("Female"); } } else { foreach (ComboBox partyGenderComboBox in partyGenderComboBoxList) { partyGenderComboBox.Visible = false; } } if (gameFamily == GameFamilies.DP) { foreach (ComboBox partyFormComboBox in partyFormComboBoxList) { partyFormComboBox.Visible = false; } foreach (NumericUpDown partyBallSealUpDown in partyBallUpdownList) { partyBallSealUpDown.Enabled = false; } } else { foreach (ComboBox partyFormComboBox in partyFormComboBoxList) { partyFormComboBox.Visible = true; } foreach (NumericUpDown partyBallSealUpDown in partyBallUpdownList) { partyBallSealUpDown.Enabled = true; } } string[] itemNames = RomInfo.GetItemNames(); string[] pokeNames = RomInfo.GetPokemonNames(); string[] moveNames = RomInfo.GetAttackNames(); abilityNames = RomInfo.GetAbilityNames(); pokemonSpeciesAbilities = getPokemonAbilities(numPokemonSpecies); foreach (Control c in trainerItemsGroupBox.Controls) { if (c is ComboBox) { (c as ComboBox).DataSource = new BindingSource(itemNames, string.Empty); } } foreach (ComboBox CB in partyPokemonComboboxList) { CB.DataSource = new BindingSource(pokeNames, string.Empty); } foreach (ComboBox CB in partyItemsComboboxList) { CB.DataSource = new BindingSource(itemNames, string.Empty); } foreach (GroupBox movesGroup in partyMovesGroupboxList) { foreach (Control c in movesGroup.Controls) { if (c is ComboBox) { (c as ComboBox).DataSource = new BindingSource(moveNames, string.Empty); } } } trainerComboBox.SelectedIndex = 0; Helpers.EnableHandlers(); trainerComboBox_SelectedIndexChanged(null, null); Helpers.statusLabelMessage(); } private void trainerComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); int currentIndex = trainerComboBox.SelectedIndex; string suffix = "\\" + currentIndex.ToString("D4"); string[] trNames = RomInfo.GetSimpleTrainerNames(); bool error = currentIndex >= trNames.Length; currentTrainerFile = new TrainerFile( new TrainerProperties( (ushort)trainerComboBox.SelectedIndex, new FileStream(RomInfo.gameDirs[DirNames.trainerProperties].unpackedDir + suffix, FileMode.Open) ), new FileStream(RomInfo.gameDirs[DirNames.trainerParty].unpackedDir + suffix, FileMode.Open), error ? TrainerFile.NAME_NOT_FOUND : trNames[currentIndex] ); RefreshTrainerPartyGUI(); RefreshTrainerPropertiesGUI(); Helpers.EnableHandlers(); if (error) { MessageBox.Show("This Trainer File doesn't have a corresponding name.\n\n" + "If you edited this ROM's Trainers with another tool before, don't worry.\n" + "DSPRE will attempt to add the missing line to the Trainer Names Text Archive [" + RomInfo.trainerNamesMessageNumber + "] upon resaving.", "Trainer name not found", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } public void RefreshTrainerPropertiesGUI() { trainerNameTextBox.Text = currentTrainerFile.name; trainerClassListBox.SelectedIndex = currentTrainerFile.trp.trainerClass; trainerDoubleCheckBox.Checked = currentTrainerFile.trp.doubleBattle; trainerMovesCheckBox.Checked = currentTrainerFile.trp.chooseMoves; trainerItemsCheckBox.Checked = currentTrainerFile.trp.chooseItems; partyCountUpDown.Value = currentTrainerFile.trp.partyCount; IList trainerItems = trainerItemsGroupBox.Controls; for (int i = 0; i < trainerItems.Count; i++) { (trainerItems[i] as ComboBox).SelectedIndex = currentTrainerFile.trp.trainerItems[i]; } IList trainerAI = TrainerAIGroupBox.Controls; for (int i = 0; i < trainerAI.Count; i++) { (trainerAI[i] as CheckBox).Checked = currentTrainerFile.trp.AI[i]; } } public void RefreshTrainerPartyGUI() { for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) { partyPokemonComboboxList[i].SelectedIndex = currentTrainerFile.party[i].pokeID ?? 0; partyItemsComboboxList[i].SelectedIndex = currentTrainerFile.party[i].heldItem ?? 0; partyLevelUpdownList[i].Value = Math.Max((ushort)1, currentTrainerFile.party[i].level); partyIVUpdownList[i].Value = currentTrainerFile.party[i].difficulty; partyBallUpdownList[i].Value = currentTrainerFile.party[i].ballSeals; setTrainerPartyPokemonAbilities(i); setTrainerPartyPokemonForm(i); setTrainerPokemonGender(i); partyAbilityComboBoxList[i].SelectedIndex = currentTrainerFile.party[i].genderAndAbilityFlags.HasFlag(PartyPokemon.GenderAndAbilityFlags.ABILITY_SLOT2) ? TRAINER_PARTY_POKEMON_ABILITY_SLOT2_INDEX : TRAINER_PARTY_POKEMON_ABILITY_SLOT1_INDEX; partyFormComboBoxList[i].SelectedIndex = currentTrainerFile.party[i].formID; if (currentTrainerFile.party[i].moves == null) { for (int j = 0; j < Party.MOVES_PER_POKE; j++) { (partyMovesGroupboxList[i].Controls[j] as ComboBox).SelectedIndex = 0; } } else { for (int j = 0; j < Party.MOVES_PER_POKE; j++) { (partyMovesGroupboxList[i].Controls[j] as ComboBox).SelectedIndex = currentTrainerFile.party[i].moves[j]; } } } } private void ShowPartyPokemonPic(byte partyPos) { ComboBox cb = partyPokemonComboboxList[partyPos]; int species = cb.SelectedIndex > 0 ? cb.SelectedIndex : 0; PictureBox pb = partyPokemonPictureBoxList[partyPos]; partyPokemonPictureBoxList[partyPos].Image = DSUtils.GetPokePic(species, pb.Width, pb.Height); } private void partyPokemon1ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ShowPartyPokemonPic(0); //event handler is called before currentTrainerFile is set, need to null check to avoid null object reference if (currentTrainerFile != null) { setTrainerPartyPokemonAbilities(0); setTrainerPartyPokemonForm(0); setTrainerPokemonGender(0); } } private void partyPokemon2ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ShowPartyPokemonPic(1); if (currentTrainerFile != null) { setTrainerPartyPokemonAbilities(1); setTrainerPartyPokemonForm(1); setTrainerPokemonGender(1); } } private void partyPokemon3ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ShowPartyPokemonPic(2); if (currentTrainerFile != null) { setTrainerPartyPokemonAbilities(2); setTrainerPartyPokemonForm(2); setTrainerPokemonGender(2); } } private void partyPokemon4ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ShowPartyPokemonPic(3); if (currentTrainerFile != null) { setTrainerPartyPokemonAbilities(3); setTrainerPartyPokemonForm(3); setTrainerPokemonGender(3); } } private void partyPokemon5ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ShowPartyPokemonPic(4); if (currentTrainerFile != null) { setTrainerPartyPokemonAbilities(4); setTrainerPartyPokemonForm(4); setTrainerPokemonGender(4); } } private void partyPokemon6ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ShowPartyPokemonPic(5); if (currentTrainerFile != null) { setTrainerPartyPokemonAbilities(5); setTrainerPartyPokemonForm(5); setTrainerPokemonGender(5); } } private void showTrainerEditorItemPic(byte partyPos) { ComboBox cb = partyItemsComboboxList[partyPos]; partyPokemonItemIconList[partyPos].Visible = cb.SelectedIndex > 0; } private void partyItem1ComboBox_SelectedIndexChanged(object sender, EventArgs e) { showTrainerEditorItemPic(0); } private void partyItem2ComboBox_SelectedIndexChanged(object sender, EventArgs e) { showTrainerEditorItemPic(1); } private void partyItem3ComboBox_SelectedIndexChanged(object sender, EventArgs e) { showTrainerEditorItemPic(2); } private void partyItem4ComboBox_SelectedIndexChanged(object sender, EventArgs e) { showTrainerEditorItemPic(3); } private void partyItem5ComboBox_SelectedIndexChanged(object sender, EventArgs e) { showTrainerEditorItemPic(4); } private void partyItem6ComboBox_SelectedIndexChanged(object sender, EventArgs e) { showTrainerEditorItemPic(5); } private void DVExplainButton_Click(object sender, EventArgs e) { DVCalc DVcalcForm = new DVCalc(trainerComboBox.SelectedIndex, trainerClassListBox.SelectedIndex); DVcalcForm.ShowDialog(); } private void partyCountUpDown_ValueChanged(object sender, EventArgs e) { for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) { partyGroupboxList[i].Enabled = (partyCountUpDown.Value > i); partyPokemonPictureBoxList[i].Visible = partyGroupboxList[i].Enabled; } for (int i = Math.Min(currentTrainerFile.trp.partyCount, (int)partyCountUpDown.Value); i < TrainerFile.POKE_IN_PARTY; i++) { currentTrainerFile.party[i] = new PartyPokemon(currentTrainerFile.trp.chooseItems, currentTrainerFile.trp.chooseMoves); } } private void trainerMovesCheckBox_CheckedChanged(object sender, EventArgs e) { for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) { for (int j = 0; j < Party.MOVES_PER_POKE; j++) { (partyMovesGroupboxList[i].Controls[j] as ComboBox).Enabled = trainerMovesCheckBox.Checked; } if (trainerMovesCheckBox.Checked && i < currentTrainerFile.trp.partyCount && Helpers.HandlersEnabled) { Helpers.BackUpDisableHandler(); Helpers.DisableHandlers(); LearnsetData learnset = new LearnsetData((int)currentTrainerFile.party[i].pokeID); int level = currentTrainerFile.party[i].level; currentTrainerFile.party[i].moves = learnset.GetLearnsetAtLevel(level); Debug.Print("Changing the moves of Pokemon " + i.ToString() + " which is Pokemon " + currentTrainerFile.party[i].pokeID); Debug.Print("The new moves will be: " + string.Join(", ", currentTrainerFile.party[i].moves)); for (int j = 0; j < Party.MOVES_PER_POKE; j++) { (partyMovesGroupboxList[i].Controls[j] as ComboBox).SelectedIndex = currentTrainerFile.party[i].moves[j]; Debug.Print("Move for dropdwon " + j.ToString() + " is " + currentTrainerFile.party[i].moves[j].ToString()); } Helpers.RestoreDisableHandler(); } else { //currentTrainerFile.party[i].moves = null; } } RefreshTrainerPartyGUI(); } private void trainerItemsCheckBox_CheckedChanged(object sender, EventArgs e) { for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) { partyItemsComboboxList[i].Enabled = trainerItemsCheckBox.Checked; } } private void partyMoveComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersEnabled) { for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) { ushort[] moves = currentTrainerFile.party[i].moves; if (moves != null) { for (int j = 0; j < Party.MOVES_PER_POKE; j++) { moves[j] = (ushort)(partyMovesGroupboxList[i].Controls[j] as ComboBox).SelectedIndex; } } } } } private void trainerSaveCurrentButton_Click(object sender, EventArgs e) { currentTrainerFile.trp.partyCount = (byte)partyCountUpDown.Value; currentTrainerFile.trp.chooseMoves = trainerMovesCheckBox.Checked; currentTrainerFile.trp.chooseItems = trainerItemsCheckBox.Checked; currentTrainerFile.trp.doubleBattle = trainerDoubleCheckBox.Checked; IList trainerItems = trainerItemsGroupBox.Controls; for (int i = 0; i < trainerItems.Count; i++) { currentTrainerFile.trp.trainerItems[i] = (ushort)(trainerItems[i] as ComboBox).SelectedIndex; } IList trainerAI = TrainerAIGroupBox.Controls; for (int i = 0; i < trainerAI.Count; i++) { currentTrainerFile.trp.AI[i] = (trainerAI[i] as CheckBox).Checked; } for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) { currentTrainerFile.party[i].moves = trainerMovesCheckBox.Checked ? new ushort[4] : null; } for (int i = 0; i < partyCountUpDown.Value; i++) { currentTrainerFile.party[i].pokeID = (ushort)partyPokemonComboboxList[i].SelectedIndex; currentTrainerFile.party[i].formID = (ushort)partyFormComboBoxList[i].SelectedIndex; currentTrainerFile.party[i].level = (ushort)partyLevelUpdownList[i].Value; if (trainerMovesCheckBox.Checked) { IList movesList = partyMovesGroupboxList[i].Controls; for (int j = 0; j < Party.MOVES_PER_POKE; j++) { currentTrainerFile.party[i].moves[j] = (ushort)(movesList[j] as ComboBox).SelectedIndex; } } if (trainerItemsCheckBox.Checked) { currentTrainerFile.party[i].heldItem = (ushort)partyItemsComboboxList[i].SelectedIndex; } currentTrainerFile.party[i].difficulty = (byte)partyIVUpdownList[i].Value; if (hasMoreThanOneGender((int)currentTrainerFile.party[i].pokeID, pokemonSpecies) && gameFamily == GameFamilies.HGSS) { switch (partyGenderComboBoxList[i].SelectedIndex) { case TRAINER_PARTY_POKEMON_GENDER_DEFAULT_INDEX: currentTrainerFile.party[i].genderAndAbilityFlags = PartyPokemon.GenderAndAbilityFlags.NO_FLAGS; break; case TRAINER_PARTY_POKEMON_GENDER_MALE_INDEX: currentTrainerFile.party[i].genderAndAbilityFlags = PartyPokemon.GenderAndAbilityFlags.FORCE_MALE; break; case TRAINER_PARTY_POKEMON_GENDER_FEMALE_INDEX: currentTrainerFile.party[i].genderAndAbilityFlags = PartyPokemon.GenderAndAbilityFlags.FORCE_FEMALE; break; } } else currentTrainerFile.party[i].genderAndAbilityFlags = PartyPokemon.GenderAndAbilityFlags.NO_FLAGS; if (partyAbilityComboBoxList[i].SelectedIndex == TRAINER_PARTY_POKEMON_ABILITY_SLOT2_INDEX) { currentTrainerFile.party[i].genderAndAbilityFlags |= PartyPokemon.GenderAndAbilityFlags.ABILITY_SLOT2; } //ability slot 1 flag must be set if the pokemon's gender is forced to male or female, otherwise the pokemon will have ability2 even if the ability2 flag is not set //the ability 1 flag should not be set if neither of the gender flags are set, otherwise this will cause a problem with using alternate forms else if (currentTrainerFile.party[i].genderAndAbilityFlags.HasFlag(PartyPokemon.GenderAndAbilityFlags.FORCE_MALE) || currentTrainerFile.party[i].genderAndAbilityFlags.HasFlag(PartyPokemon.GenderAndAbilityFlags.FORCE_FEMALE)) { currentTrainerFile.party[i].genderAndAbilityFlags |= PartyPokemon.GenderAndAbilityFlags.ABILITY_SLOT1; } currentTrainerFile.party[i].ballSeals = (ushort)partyBallUpdownList[i].Value; } /*Write to File*/ string indexStr = "\\" + trainerComboBox.SelectedIndex.ToString("D4"); File.WriteAllBytes(RomInfo.gameDirs[DirNames.trainerProperties].unpackedDir + indexStr, currentTrainerFile.trp.ToByteArray()); File.WriteAllBytes(RomInfo.gameDirs[DirNames.trainerParty].unpackedDir + indexStr, currentTrainerFile.party.ToByteArray()); UpdateCurrentTrainerName(newName: trainerNameTextBox.Text); UpdateCurrentTrainerShownName(); if (trainerNameTextBox.Text.Length > RomInfo.trainerNameMaxLen) { //Subtract 1 to account for special end character. //Expose a smaller limit to the user if (RomInfo.trainerNameLenOffset >= 0) { MessageBox.Show($"Trainer File saved successfully. However:\nYou attempted to save a Trainer whose name exceeds {RomInfo.trainerNameMaxLen} characters.\nThis may lead to issues in game." + (PatchToolboxDialog.flag_TrainerNamesExpanded ? "\n\nIt's recommended that you use a shorter name." : "\n\nRefer to the Patch Toolbox to extend Trainer names."), "Saved successfully, but...", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"Trainer File saved successfully. However:\nThe Trainer name length could not be safely determined for this ROM.\n" + $"You attempted to save a Trainer whose name exceeds {RomInfo.trainerNameMaxLen} characters.\nThis will most likely lead to issues in game.", "Saved successfully, but...", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("Trainer saved successfully!", "Saved successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void UpdateCurrentTrainerShownName() { string trClass = GetTrainerClassNameFromListbox(trainerClassListBox.SelectedItem); string editedTrainer = "[" + currentTrainerFile.trp.trainerID.ToString("D2") + "] " + trClass + " " + currentTrainerFile.name; Helpers.DisableHandlers(); trainerComboBox.Items[trainerComboBox.SelectedIndex] = editedTrainer; Helpers.EnableHandlers(); if (eventEditorIsReady) { owTrainerComboBox.Items[trainerComboBox.SelectedIndex] = editedTrainer; } } private string GetTrainerClassNameFromListbox(object selectedItem) { string lbname = selectedItem.ToString(); return lbname.Substring(lbname.IndexOf(" ") + 1); } private void UpdateCurrentTrainerName(string newName) { currentTrainerFile.name = newName; TextArchive trainerNames = new TextArchive(RomInfo.trainerNamesMessageNumber); if (currentTrainerFile.trp.trainerID < trainerNames.messages.Count) { trainerNames.messages[currentTrainerFile.trp.trainerID] = newName; } else { trainerNames.messages.Add(newName); } trainerNames.SaveToFileDefaultDir(RomInfo.trainerNamesMessageNumber, showSuccessMessage: false); } private void UpdateCurrentTrainerClassName(string newName) { TextArchive trainerClassNames = new TextArchive(RomInfo.trainerClassMessageNumber); trainerClassNames.messages[trainerClassListBox.SelectedIndex] = newName; trainerClassNames.SaveToFileDefaultDir(RomInfo.trainerClassMessageNumber, showSuccessMessage: false); } private void trainerClassListBox_SelectedIndexChanged(object sender, EventArgs e) { int selection = trainerClassListBox.SelectedIndex; if (selection < 0) { return; } try { int maxFrames = LoadTrainerClassPic(selection); UpdateTrainerClassPic(trainerClassPicBox); trClassFramePreviewUpDown.Maximum = maxFrames; trainerClassFrameMaxLabel.Text = "/" + maxFrames; } catch { trClassFramePreviewUpDown.Maximum = 0; } trainerClassNameTextbox.Text = GetTrainerClassNameFromListbox(trainerClassListBox.SelectedItem); if (trainerClassEncounterMusicDict.TryGetValue((byte)selection, out (uint entryOffset, ushort musicD, ushort? musicN) output)) { encounterSSEQMainUpDown.Enabled = eyeContactMusicLabel.Enabled = true; encounterSSEQMainUpDown.Value = output.musicD; } else { encounterSSEQMainUpDown.Enabled = eyeContactMusicLabel.Enabled = false; encounterSSEQMainUpDown.Value = 0; } eyeContactMusicAltLabel.Enabled = encounterSSEQAltUpDown.Enabled = (encounterSSEQMainUpDown.Enabled && gameFamily == GameFamilies.HGSS); encounterSSEQAltUpDown.Value = output.musicN != null ? (ushort)output.musicN : 0; currentTrainerFile.trp.trainerClass = (byte)selection; } private int LoadTrainerClassPic(int trClassID) { int paletteFileID = (trClassID * 5 + 1); string paletteFilename = paletteFileID.ToString("D4"); trainerPal = new NCLR(gameDirs[DirNames.trainerGraphics].unpackedDir + "\\" + paletteFilename, paletteFileID, paletteFilename); int tilesFileID = trClassID * 5; string tilesFilename = tilesFileID.ToString("D4"); trainerTile = new NCGR(gameDirs[DirNames.trainerGraphics].unpackedDir + "\\" + tilesFilename, tilesFileID, tilesFilename); if (gameFamily == GameFamilies.DP) { return 0; } int spriteFileID = (trClassID * 5 + 2); string spriteFilename = spriteFileID.ToString("D4"); trainerSprite = new NCER(gameDirs[DirNames.trainerGraphics].unpackedDir + "\\" + spriteFilename, spriteFileID, spriteFilename); return trainerSprite.Banks.Length - 1; } private void UpdateTrainerClassPic(PictureBox pb, int frameNumber = 0) { if (trainerSprite == null) { Console.WriteLine("Sprite is null!"); return; } int bank0OAMcount = trainerSprite.Banks[0].oams.Length; int[] OAMenabled = new int[bank0OAMcount]; for (int i = 0; i < OAMenabled.Length; i++) { OAMenabled[i] = i; } frameNumber = Math.Min(trainerSprite.Banks.Length, frameNumber); Image trSprite = trainerSprite.Get_Image(trainerTile, trainerPal, frameNumber, trainerClassPicBox.Width, trainerClassPicBox.Height, false, false, false, true, true, -1, OAMenabled); pb.Image = trSprite; pb.Update(); } private void addTrainerButton_Click(object sender, EventArgs e) { /* Add new trainer file to 2 folders */ string suffix = "\\" + trainerComboBox.Items.Count.ToString("D4"); string trainerPropertiesPath = gameDirs[DirNames.trainerProperties].unpackedDir + suffix; string partyFilePath = gameDirs[DirNames.trainerParty].unpackedDir + suffix; File.WriteAllBytes(trainerPropertiesPath, new TrainerProperties((ushort)trainerComboBox.Items.Count).ToByteArray()); File.WriteAllBytes(partyFilePath, new PartyPokemon().ToByteArray()); TextArchive trainerClasses = new TextArchive(RomInfo.trainerClassMessageNumber); TextArchive trainerNames = new TextArchive(RomInfo.trainerNamesMessageNumber); /* Update ComboBox and select new file */ trainerComboBox.Items.Add(trainerClasses.messages[0]); trainerNames.messages.Add(""); trainerNames.SaveToFileDefaultDir(RomInfo.trainerNamesMessageNumber, showSuccessMessage: false); trainerComboBox.SelectedIndex = trainerComboBox.Items.Count - 1; UpdateCurrentTrainerShownName(); } private void exportTrainerButton_Click(object sender, EventArgs e) { currentTrainerFile.SaveToFileExplorePath("G4 Trainer File " + trainerComboBox.SelectedItem); } private void importTrainerButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = "Gen IV Trainer File (*.trf)|*.trf" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update trainer on disk */ using (DSUtils.EasyReader reader = new DSUtils.EasyReader(of.FileName)) { string trName = reader.ReadString(); byte datSize = reader.ReadByte(); byte[] trDat = reader.ReadBytes(datSize); byte partySize = reader.ReadByte(); byte[] pDat = reader.ReadBytes(partySize); string pathData = RomInfo.gameDirs[DirNames.trainerProperties].unpackedDir + "\\" + trainerComboBox.SelectedIndex.ToString("D4"); string pathParty = RomInfo.gameDirs[DirNames.trainerParty].unpackedDir + "\\" + trainerComboBox.SelectedIndex.ToString("D4"); File.WriteAllBytes(pathData, trDat); File.WriteAllBytes(pathParty, pDat); UpdateCurrentTrainerName(trName); } /* Refresh controls and re-read file */ trainerComboBox_SelectedIndexChanged(null, null); UpdateCurrentTrainerShownName(); /* Display success message */ MessageBox.Show("Trainer File imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void exportPropertiesButton_Click(object sender, EventArgs e) { currentTrainerFile.trp.SaveToFileExplorePath("G4 Trainer Properties " + trainerComboBox.SelectedItem); } private void replacePropertiesButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = "Gen IV Trainer Properties (*.trp)|*.trp" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update trp object in memory */ currentTrainerFile.trp = new TrainerProperties((ushort)trainerComboBox.SelectedIndex, new FileStream(of.FileName, FileMode.Open)); RefreshTrainerPropertiesGUI(); /* Display success message */ MessageBox.Show("Trainer Properties imported successfully!\nRemember to save the current Trainer File.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void exportPartyButton_Click(object sender, EventArgs e) { currentTrainerFile.party.exportCondensedData = true; currentTrainerFile.party.SaveToFileExplorePath("G4 Party Data " + trainerComboBox.SelectedItem); currentTrainerFile.party.exportCondensedData = false; } private void importReplacePartyButton_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = "Gen IV Party File (*.pdat)|*.pdat" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update trp object in memory */ currentTrainerFile.party = new Party(readFirstByte: true, TrainerFile.POKE_IN_PARTY, new FileStream(of.FileName, FileMode.Open), currentTrainerFile.trp); RefreshTrainerPropertiesGUI(); RefreshTrainerPartyGUI(); /* Display success message */ MessageBox.Show("Trainer Party imported successfully!\nRemember to save the current Trainer File.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void saveTrainerClassButton_Click(object sender, EventArgs e) { Helpers.DisableHandlers(); int selectedTrClass = trainerClassListBox.SelectedIndex; byte b_selectedTrClass = (byte)selectedTrClass; ushort eyeMusicID = (ushort)encounterSSEQMainUpDown.Value; ushort altEyeMusicID = (ushort)encounterSSEQAltUpDown.Value; if (trainerClassEncounterMusicDict.TryGetValue(b_selectedTrClass, out var dictEntry)) { ARM9.WriteBytes(BitConverter.GetBytes(eyeMusicID), dictEntry.entryOffset + 2); if (gameFamily.Equals(GameFamilies.HGSS)) { ARM9.WriteBytes(BitConverter.GetBytes(altEyeMusicID), dictEntry.entryOffset + 4); } trainerClassEncounterMusicDict[b_selectedTrClass] = (dictEntry.entryOffset, eyeMusicID, altEyeMusicID); } string newName = trainerClassNameTextbox.Text; UpdateCurrentTrainerClassName(newName); trainerClassListBox.Items[selectedTrClass] = "[" + selectedTrClass.ToString("D3") + "]" + " " + newName; if (currentTrainerFile.trp.trainerClass == trainerClassListBox.SelectedIndex) { UpdateCurrentTrainerShownName(); } Helpers.EnableHandlers(); if (gameFamily.Equals(GameFamilies.HGSS) && tableEditorIsReady) { pbEffectsTrainerCombobox.Items[selectedTrClass] = trainerClassListBox.Items[selectedTrClass]; for (int i = 0; i < vsTrainerEffectsList.Count; i++) { if (vsTrainerEffectsList[i].trainerClass == selectedTrClass) { pbEffectsVsTrainerListbox.Items[i] = pbEffectsTrainerCombobox.Items[selectedTrClass] + " uses Combo #" + vsTrainerEffectsList[i].comboID; } } } MessageBox.Show("Trainer Class settings saved.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void trClassFramePreviewUpDown_ValueChanged(object sender, EventArgs e) { UpdateTrainerClassPic(trainerClassPicBox, (int)((NumericUpDown)sender).Value); } private (int abi1, int abi2)[] getPokemonAbilities(int numPokemonSpecies) { var pokemonSpeciesAbilities = new (int abi1, int abi2)[numPokemonSpecies]; for (int i = 0; i < numPokemonSpecies; i++) { pokemonSpeciesAbilities[i] = (pokemonSpecies[i].Ability1, pokemonSpecies[i].Ability2); } return pokemonSpeciesAbilities; } private (string ability1, string ability2) getPokemonAbilityNames(int pokemonID) { return (abilityNames[pokemonSpeciesAbilities[pokemonID].abi1], abilityNames[pokemonSpeciesAbilities[pokemonID].abi2]); } private void setTrainerPartyPokemonAbilities(int partyPokemonPosition) { (string ability1, string ability2) = getPokemonAbilityNames(partyPokemonComboboxList[partyPokemonPosition].SelectedIndex); partyAbilityComboBoxList[partyPokemonPosition].Items.Clear(); partyAbilityComboBoxList[partyPokemonPosition].Items.Add(ability1); //if the name " -" is returned for ability 2 then there is no ability 2 if (ability2.Equals(" -") || gameFamily != GameFamilies.HGSS) { partyAbilityComboBoxList[partyPokemonPosition].Enabled = false; } else { string stringAbi2 = ability2; if (ability2.Equals(ability1)) { stringAbi2 += " (2nd Slot)"; } partyAbilityComboBoxList[partyPokemonPosition].Items.Add(stringAbi2); partyAbilityComboBoxList[partyPokemonPosition].Enabled = true; } partyAbilityComboBoxList[partyPokemonPosition].SelectedIndex = TRAINER_PARTY_POKEMON_ABILITY_SLOT1_INDEX; } private void setTrainerPokemonGender(int partyPokemonPosition) { int currentPokemonGenderRatio = pokemonSpecies[partyPokemonComboboxList[partyPokemonPosition].SelectedIndex].GenderRatioMaleToFemale; PartyPokemon.GenderAndAbilityFlags currentPokemonGenderAndAbilityFlags = currentTrainerFile.party[partyPokemonPosition].genderAndAbilityFlags; if (gameFamily == GameFamilies.HGSS) { switch (currentPokemonGenderRatio) { case GENDER_RATIO_MALE: partyGenderComboBoxList[partyPokemonPosition].SelectedIndex = TRAINER_PARTY_POKEMON_GENDER_MALE_INDEX; partyGenderComboBoxList[partyPokemonPosition].Enabled = false; break; case GENDER_RATIO_FEMALE: partyGenderComboBoxList[partyPokemonPosition].SelectedIndex = TRAINER_PARTY_POKEMON_GENDER_FEMALE_INDEX; partyGenderComboBoxList[partyPokemonPosition].Enabled = false; break; case GENDER_RATIO_GENDERLESS: partyGenderComboBoxList[partyPokemonPosition].SelectedIndex = TRAINER_PARTY_POKEMON_GENDER_DEFAULT_INDEX; partyGenderComboBoxList[partyPokemonPosition].Enabled = false; break; default: partyGenderComboBoxList[partyPokemonPosition].Enabled = true; if (currentPokemonGenderAndAbilityFlags.HasFlag(PartyPokemon.GenderAndAbilityFlags.FORCE_MALE)) partyGenderComboBoxList[partyPokemonPosition].SelectedIndex = TRAINER_PARTY_POKEMON_GENDER_MALE_INDEX; else if (currentPokemonGenderAndAbilityFlags.HasFlag(PartyPokemon.GenderAndAbilityFlags.FORCE_FEMALE)) partyGenderComboBoxList[partyPokemonPosition].SelectedIndex = TRAINER_PARTY_POKEMON_GENDER_FEMALE_INDEX; else partyGenderComboBoxList[partyPokemonPosition].SelectedIndex = TRAINER_PARTY_POKEMON_GENDER_DEFAULT_INDEX; break; } } } private List getPokemonFormNames(int pokemonID) { List pokemonFormNames = new List(); switch (pokemonID) { case PICHU_ID_NUM: if (RomInfo.gameFamily == GameFamilies.HGSS) { pokemonFormNames.Add("Non-Spiky-Eared"); pokemonFormNames.Add("Spiky-Eared"); } else { pokemonFormNames.Add("No Alt Form"); } break; case UNOWN_ID_NUM: for (char c = 'A'; c <= 'Z'; c++) pokemonFormNames.Add(c + " Form"); pokemonFormNames.Add("! Form"); pokemonFormNames.Add("? Form"); break; case CASTFORM_ID_NUM: pokemonFormNames.Add("Normal Form"); pokemonFormNames.Add("Sunny Form"); pokemonFormNames.Add("Rainy Form"); pokemonFormNames.Add("Snowy Form"); break; case DEOXYS_ID_NUM: pokemonFormNames.Add("Normal Form"); pokemonFormNames.Add("Attack Form"); pokemonFormNames.Add("Defense Form"); pokemonFormNames.Add("Speed Form"); break; case BURMY_ID_NUM: case WORMADAM_ID_NUM: pokemonFormNames.Add("Plant Cloak"); pokemonFormNames.Add("Sand Cloak"); pokemonFormNames.Add("Trash Cloak"); break; case SHELLOS_ID_NUM: case GASTRODON_ID_NUM: pokemonFormNames.Add("West sea"); pokemonFormNames.Add("East sea"); break; case ROTOM_ID_NUM: pokemonFormNames.Add("Rotom"); pokemonFormNames.Add("Heat Rotom"); pokemonFormNames.Add("Wash Rotom"); pokemonFormNames.Add("Frost Rotom"); pokemonFormNames.Add("Fan Rotom"); pokemonFormNames.Add("Mow Rotom"); break; case SHAYMIN_ID_NUM: pokemonFormNames.Add("Land Form"); pokemonFormNames.Add("Sky Form"); break; default: pokemonFormNames.Add("No Alt Form"); break; } return pokemonFormNames; } private void setTrainerPartyPokemonForm(int partyPokemonPosition) { if (gameFamily != GameFamilies.DP) { partyFormComboBoxList[partyPokemonPosition].Items.Clear(); List currentPokemonFormName = getPokemonFormNames(partyPokemonComboboxList[partyPokemonPosition].SelectedIndex); foreach (string formName in currentPokemonFormName) partyFormComboBoxList[partyPokemonPosition].Items.Add(formName); partyFormComboBoxList[partyPokemonPosition].Enabled = currentPokemonFormName.Count > 1; partyFormComboBoxList[partyPokemonPosition].SelectedIndex = 0; } } #endregion #region Table Editor #region Variables string[] pokeNames; string[] trcNames; List<(ushort header, ushort flag, ushort music)> conditionalMusicTable; uint conditionalMusicTableStartAddress; List<(int trainerClass, int comboID)> vsTrainerEffectsList; List<(int pokemonID, int comboID)> vsPokemonEffectsList; List<(ushort vsGraph, ushort battleSSEQ)> effectsComboTable; uint vsTrainerTableStartAddress; uint vsPokemonTableStartAddress; uint effectsComboMainTableStartAddress; //Show Pokemon Icons private readonly PaletteBase tableEditorMonIconPal; private readonly ImageBase tableEditorMonIconTile; private readonly SpriteBase tableEditorMonIconSprite; #endregion private void SetupConditionalMusicTable() { switch (RomInfo.gameFamily) { case GameFamilies.HGSS: RomInfo.SetConditionalMusicTableOffsetToRAMAddress(); conditionalMusicTable = new List<(ushort, ushort, ushort)>(); conditionalMusicTableStartAddress = BitConverter.ToUInt32(ARM9.ReadBytes(RomInfo.conditionalMusicTableOffsetToRAMAddress, 4), 0) - ARM9.address; byte tableEntriesCount = ARM9.ReadByte(RomInfo.conditionalMusicTableOffsetToRAMAddress - 8); conditionalMusicTableListBox.Items.Clear(); using (ARM9.Reader ar = new ARM9.Reader(conditionalMusicTableStartAddress)) { for (int i = 0; i < tableEntriesCount; i++) { ushort header = ar.ReadUInt16(); ushort flag = ar.ReadUInt16(); ushort musicID = ar.ReadUInt16(); conditionalMusicTable.Add((header, flag, musicID)); conditionalMusicTableListBox.Items.Add(headerListBox.Items[header]); } } headerConditionalMusicComboBox.Items.Clear(); foreach (string location in headerListBox.Items) { headerConditionalMusicComboBox.Items.Add(location); } if (conditionalMusicTableListBox.Items.Count > 0) { conditionalMusicTableListBox.SelectedIndex = 0; } break; case GameFamilies.Plat: pbEffectsMonGroupBox.Enabled = false; pbEffectsTrainerGroupBox.Enabled = false; conditionalMusicGroupBox.Enabled = false; break; default: pbEffectsMonGroupBox.Enabled = false; pbEffectsTrainerGroupBox.Enabled = false; conditionalMusicGroupBox.Enabled = false; pbEffectsGroupBox.Enabled = false; break; } } private void SetupBattleEffectsTables() { if (RomInfo.gameFamily == GameFamilies.HGSS || RomInfo.gameFamily == GameFamilies.Plat) { DSUtils.TryUnpackNarcs(new List { DirNames.trainerGraphics, DirNames.textArchives, DirNames.monIcons }); RomInfo.SetBattleEffectsData(); RomInfo.SetMonIconsPalTableAddress(); effectsComboTable = new List<(ushort vsGraph, ushort battleSSEQ)>(); effectsComboMainTableStartAddress = BitConverter.ToUInt32(ARM9.ReadBytes(RomInfo.effectsComboTableOffsetToRAMAddress, 4), 0); PatchToolboxDialog.flag_MainComboTableRepointed = (effectsComboMainTableStartAddress >= RomInfo.synthOverlayLoadAddress); effectsComboMainTableStartAddress -= PatchToolboxDialog.flag_MainComboTableRepointed ? RomInfo.synthOverlayLoadAddress : ARM9.address; byte comboTableEntriesCount; if (RomInfo.gameFamily == GameFamilies.HGSS) { comboTableEntriesCount = ARM9.ReadByte(RomInfo.effectsComboTableOffsetToSizeLimiter); vsPokemonEffectsList = new List<(int pokemonID, int comboID)>(); vsTrainerEffectsList = new List<(int trainerClass, int comboID)>(); vsPokemonTableStartAddress = BitConverter.ToUInt32(ARM9.ReadBytes(RomInfo.vsPokemonEntryTableOffsetToRAMAddress, 4), 0); PatchToolboxDialog.flag_PokemonBattleTableRepointed = (vsPokemonTableStartAddress >= RomInfo.synthOverlayLoadAddress); vsPokemonTableStartAddress -= PatchToolboxDialog.flag_PokemonBattleTableRepointed ? RomInfo.synthOverlayLoadAddress : ARM9.address; vsTrainerTableStartAddress = BitConverter.ToUInt32(ARM9.ReadBytes(RomInfo.vsTrainerEntryTableOffsetToRAMAddress, 4), 0); PatchToolboxDialog.flag_TrainerClassBattleTableRepointed = (vsTrainerTableStartAddress >= RomInfo.synthOverlayLoadAddress); vsTrainerTableStartAddress -= PatchToolboxDialog.flag_TrainerClassBattleTableRepointed ? RomInfo.synthOverlayLoadAddress : ARM9.address; pbEffectsPokemonCombobox.Items.Clear(); pokeNames = RomInfo.GetPokemonNames(); for (int i = 0; i < pokeNames.Length; i++) { pbEffectsPokemonCombobox.Items.Add("[" + i + "]" + " " + pokeNames[i]); } RepopulateTableEditorTrainerClasses(); pbEffectsVsTrainerListbox.Items.Clear(); pbEffectsVsPokemonListbox.Items.Clear(); } else { comboTableEntriesCount = 35; } pbEffectsCombosListbox.Items.Clear(); String expArmPath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + PatchToolboxDialog.expandedARMfileID.ToString("D4"); if (RomInfo.gameFamily == GameFamilies.HGSS) { using (DSUtils.EasyReader ar = new DSUtils.EasyReader(PatchToolboxDialog.flag_TrainerClassBattleTableRepointed ? expArmPath : RomInfo.arm9Path, vsTrainerTableStartAddress)) { byte trainerTableEntriesCount = ARM9.ReadByte(RomInfo.vsTrainerEntryTableOffsetToSizeLimiter); for (int i = 0; i < trainerTableEntriesCount; i++) { ushort entry = ar.ReadUInt16(); int classID = entry & 1023; int comboID = entry >> 10; vsTrainerEffectsList.Add((classID, comboID)); pbEffectsVsTrainerListbox.Items.Add(pbEffectsTrainerCombobox.Items[classID] + " uses Combo #" + comboID); } } using (DSUtils.EasyReader ar = new DSUtils.EasyReader(PatchToolboxDialog.flag_PokemonBattleTableRepointed ? expArmPath : RomInfo.arm9Path, vsPokemonTableStartAddress)) { byte pokemonTableEntriesCount = ARM9.ReadByte(RomInfo.vsPokemonEntryTableOffsetToSizeLimiter); for (int i = 0; i < pokemonTableEntriesCount; i++) { ushort entry = ar.ReadUInt16(); int pokeID = entry & 1023; int comboID = entry >> 10; vsPokemonEffectsList.Add((pokeID, comboID)); string pokeName; try { pokeName = pokeNames[pokeID]; } catch (IndexOutOfRangeException) { pokeName = "UNKNOWN"; } pbEffectsVsPokemonListbox.Items.Add("[" + pokeID.ToString("D3") + "]" + " " + pokeName + " uses Combo #" + comboID); } } } using (DSUtils.EasyReader ar = new DSUtils.EasyReader(PatchToolboxDialog.flag_MainComboTableRepointed ? expArmPath : RomInfo.arm9Path, effectsComboMainTableStartAddress)) { for (int i = 0; i < comboTableEntriesCount; i++) { ushort battleIntroEffect = ar.ReadUInt16(); ushort battleMusic = ar.ReadUInt16(); effectsComboTable.Add((battleIntroEffect, battleMusic)); pbEffectsCombosListbox.Items.Add("Combo " + i.ToString("D2") + " - " + "Effect #" + battleIntroEffect + ", " + "Music #" + battleMusic); } } if (RomInfo.gameFamily == GameFamilies.HGSS) { var items = pbEffectsCombosListbox.Items.Cast().ToArray(); pbEffectsPokemonChooseMainCombobox.Items.Clear(); pbEffectsPokemonChooseMainCombobox.Items.AddRange(items); pbEffectsTrainerChooseMainCombobox.Items.Clear(); pbEffectsTrainerChooseMainCombobox.Items.AddRange(items); if (pbEffectsVsTrainerListbox.Items.Count > 0) { pbEffectsVsTrainerListbox.SelectedIndex = 0; } if (pbEffectsVsPokemonListbox.Items.Count > 0) { pbEffectsVsPokemonListbox.SelectedIndex = 0; } } if (pbEffectsCombosListbox.Items.Count > 0) { pbEffectsCombosListbox.SelectedIndex = 0; } } else { pbEffectsGroupBox.Enabled = false; } } private void RepopulateTableEditorTrainerClasses() { pbEffectsTrainerCombobox.Items.Clear(); trcNames = RomInfo.GetTrainerClassNames(); for (int i = 0; i < trcNames.Length; i++) { pbEffectsTrainerCombobox.Items.Add("[" + i.ToString("D3") + "]" + " " + trcNames[i]); } } private void conditionalMusicTableListBox_SelectedIndexChanged(object sender, EventArgs e) { int selection = conditionalMusicTableListBox.SelectedIndex; headerConditionalMusicComboBox.SelectedIndex = conditionalMusicTable[selection].header; Helpers.DisableHandlers(); flagConditionalMusicUpDown.Value = conditionalMusicTable[selection].flag; musicIDconditionalMusicUpDown.Value = conditionalMusicTable[selection].music; Helpers.EnableHandlers(); } private void headerConditionalMusicComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } (ushort header, ushort flag, ushort music) oldTuple = conditionalMusicTable[conditionalMusicTableListBox.SelectedIndex]; (ushort header, ushort flag, ushort music) newTuple = ((ushort)headerConditionalMusicComboBox.SelectedIndex, oldTuple.flag, oldTuple.music); conditionalMusicTable[conditionalMusicTableListBox.SelectedIndex] = newTuple; MapHeader selected = MapHeader.LoadFromARM9(newTuple.header); switch (RomInfo.gameFamily) { case GameFamilies.DP: locationNameConditionalMusicLBL.Text = RomInfo.GetLocationNames()[(selected as HeaderDP).locationName]; break; case GameFamilies.Plat: locationNameConditionalMusicLBL.Text = RomInfo.GetLocationNames()[(selected as HeaderPt).locationName]; break; case GameFamilies.HGSS: locationNameConditionalMusicLBL.Text = RomInfo.GetLocationNames()[(selected as HeaderHGSS).locationName]; break; } } private void flagConditionalMusicUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } (ushort header, ushort flag, ushort music) oldTuple = conditionalMusicTable[conditionalMusicTableListBox.SelectedIndex]; conditionalMusicTable[conditionalMusicTableListBox.SelectedIndex] = (oldTuple.header, (ushort)flagConditionalMusicUpDown.Value, oldTuple.music); } private void musicIDconditionalMusicUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } (ushort header, ushort flag, ushort music) oldTuple = conditionalMusicTable[conditionalMusicTableListBox.SelectedIndex]; conditionalMusicTable[conditionalMusicTableListBox.SelectedIndex] = (oldTuple.header, oldTuple.flag, (ushort)musicIDconditionalMusicUpDown.Value); } private void HOWconditionalMusicTableButton_Click(object sender, EventArgs e) { MessageBox.Show("For each Location in the list, override Header's music with chosen Music ID, if Flag is set.", "How this table works", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void saveConditionalMusicTableBTN_Click(object sender, EventArgs e) { for (int i = 0; i < conditionalMusicTable.Count; i++) { ARM9.WriteBytes(BitConverter.GetBytes(conditionalMusicTable[i].header), (uint)(conditionalMusicTableStartAddress + 6 * i)); ARM9.WriteBytes(BitConverter.GetBytes(conditionalMusicTable[i].flag), (uint)(conditionalMusicTableStartAddress + 6 * i + 2)); ARM9.WriteBytes(BitConverter.GetBytes(conditionalMusicTable[i].music), (uint)(conditionalMusicTableStartAddress + 6 * i + 4)); } } private void TBLEditortrainerClassPreviewPic_ValueChanged(object sender, EventArgs e) { UpdateTrainerClassPic(tbEditorTrClassPictureBox, (int)((NumericUpDown)sender).Value); } private void saveEffectComboBTN_Click(object sender, EventArgs e) { int index = pbEffectsCombosListbox.SelectedIndex; ushort battleIntroEffect = (ushort)pbEffectsVSAnimationUpDown.Value; ushort battleMusic = (ushort)pbEffectsBattleSSEQUpDown.Value; effectsComboTable[index] = (battleIntroEffect, battleMusic); String expArmPath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + PatchToolboxDialog.expandedARMfileID.ToString("D4"); using (DSUtils.EasyWriter wr = new DSUtils.EasyWriter(PatchToolboxDialog.flag_MainComboTableRepointed ? expArmPath : RomInfo.arm9Path, effectsComboMainTableStartAddress + 4 * index)) { wr.Write(battleIntroEffect); wr.Write(battleMusic); }; Helpers.DisableHandlers(); string updatedEntry = "Combo " + index.ToString("D2") + " - " + "Effect #" + battleIntroEffect + ", " + "Music #" + battleMusic; pbEffectsCombosListbox.Items[index] = updatedEntry; if (RomInfo.gameFamily == GameFamilies.HGSS) { pbEffectsTrainerChooseMainCombobox.Items[index] = pbEffectsPokemonChooseMainCombobox.Items[index] = updatedEntry; } Helpers.EnableHandlers(); } private void saveVSPokemonEntryBTN_Click(object sender, EventArgs e) { int index = pbEffectsVsPokemonListbox.SelectedIndex; ushort pokemonID = (ushort)pbEffectsPokemonCombobox.SelectedIndex; ushort comboID = (ushort)pbEffectsPokemonChooseMainCombobox.SelectedIndex; vsPokemonEffectsList[index] = (pokemonID, comboID); String expArmPath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + PatchToolboxDialog.expandedARMfileID.ToString("D4"); using (DSUtils.EasyWriter wr = new DSUtils.EasyWriter(PatchToolboxDialog.flag_PokemonBattleTableRepointed ? expArmPath : RomInfo.arm9Path, vsPokemonTableStartAddress + 2 * index)) { wr.Write((ushort)((pokemonID & 1023) + (comboID << 10))); //PokemonID }; Helpers.DisableHandlers(); pbEffectsVsPokemonListbox.Items[index] = "[" + pokemonID.ToString("D3") + "]" + " " + pokeNames[pokemonID] + " uses Combo #" + comboID; Helpers.EnableHandlers(); } private void saveVSTrainerEntryBTN_Click(object sender, EventArgs e) { int index = pbEffectsVsTrainerListbox.SelectedIndex; ushort trainerClass = (ushort)pbEffectsTrainerCombobox.SelectedIndex; ushort comboID = (ushort)pbEffectsTrainerChooseMainCombobox.SelectedIndex; vsTrainerEffectsList[index] = (trainerClass, comboID); String expArmPath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + PatchToolboxDialog.expandedARMfileID.ToString("D4"); using (DSUtils.EasyWriter wr = new DSUtils.EasyWriter(PatchToolboxDialog.flag_TrainerClassBattleTableRepointed ? expArmPath : RomInfo.arm9Path, vsTrainerTableStartAddress + 2 * index)) { wr.Write((ushort)((trainerClass & 1023) + (comboID << 10))); }; Helpers.DisableHandlers(); pbEffectsVsTrainerListbox.Items[index] = "[" + trainerClass.ToString("D3") + "]" + " " + trcNames[trainerClass] + " uses Combo #" + comboID; Helpers.EnableHandlers(); } private void HOWpbEffectsTableButton_Click(object sender, EventArgs e) { MessageBox.Show("An entry of this table is a combination of VS. Graphics + Battle Theme.\n\n" + (RomInfo.gameFamily.Equals(GameFamilies.HGSS) ? "Each entry can be \"inherited\" by one or more Pokémon or Trainer classes." : ""), "How this table works", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void HOWvsPokemonButton_Click(object sender, EventArgs e) { MessageBox.Show("Each entry of this table links a \"Wild\" Pokémon to an Effect Combo from the Combos Table.\n\n" + "Whenever that Pokémon is encountered in the tall grass or via script command, its VS. Sequence and Battle Theme will be automatically triggered.", "How this table works", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void HOWVsTrainerButton_Click(object sender, EventArgs e) { MessageBox.Show("Each entry of this table links a Trainer Class to an Effect Combo from the Combos Table.\n\n" + "Every Trainer Class with a given combo will start the same VS. Sequence and Battle Theme.", "How this table works", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void pbEffectsVsTrainerListbox_SelectedIndexChanged(object sender, EventArgs e) { int trainerSelection = pbEffectsVsTrainerListbox.SelectedIndex; if (Helpers.HandlersDisabled || trainerSelection < 0) { return; } (int trainerClass, int comboID) entry = vsTrainerEffectsList[trainerSelection]; pbEffectsTrainerCombobox.SelectedIndex = entry.trainerClass; pbEffectsCombosListbox.SelectedIndex = pbEffectsTrainerChooseMainCombobox.SelectedIndex = entry.comboID; tbEditorTrClassFramePreviewUpDown.Value = 0; } private void pbEffectsVsPokemonListbox_SelectedIndexChanged(object sender, EventArgs e) { int pokemonSelection = pbEffectsVsPokemonListbox.SelectedIndex; if (Helpers.HandlersDisabled || pokemonSelection < 0) { return; } (int pokemonID, int comboID) entry = vsPokemonEffectsList[pokemonSelection]; try { pbEffectsPokemonCombobox.SelectedIndex = entry.pokemonID; } catch (ArgumentOutOfRangeException) { pbEffectsPokemonCombobox.SelectedIndex = 0; } pbEffectsCombosListbox.SelectedIndex = pbEffectsPokemonChooseMainCombobox.SelectedIndex = entry.comboID; } private void pbEffectsCombosListbox_SelectedIndexChanged(object sender, EventArgs e) { int comboSelection = pbEffectsCombosListbox.SelectedIndex; if (Helpers.HandlersDisabled || comboSelection < 0) { return; } (ushort vsGraph, ushort battleSSEQ) entry = effectsComboTable[comboSelection]; pbEffectsBattleSSEQUpDown.Value = entry.battleSSEQ; pbEffectsVSAnimationUpDown.Value = entry.vsGraph; } private void pbEffectsTrainerCombobox_SelectedIndexChanged(object sender, EventArgs e) { int maxFrames = LoadTrainerClassPic((sender as ComboBox).SelectedIndex); UpdateTrainerClassPic(tbEditorTrClassPictureBox); tbEditorTrClassFramePreviewUpDown.Maximum = maxFrames; tbEditortrainerClassFrameMaxLabel.Text = "/" + maxFrames; } private void pbEffectsPokemonCombobox_SelectedIndexChanged(object sender, EventArgs e) { ComboBox cb = sender as ComboBox; tbEditorPokeminiPictureBox.Image = DSUtils.GetPokePic(cb.SelectedIndex, tbEditorPokeminiPictureBox.Width, tbEditorPokeminiPictureBox.Height); tbEditorPokeminiPictureBox.Update(); } #endregion private void ExclusiveCBInvert(CheckBox cb) { if (Helpers.HandlersDisabled) { return; } Helpers.DisableHandlers(); if (cb.Checked) { cb.Checked = !cb.Checked; } Helpers.EnableHandlers(); } private void unpackToFolderToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog of = new OpenFileDialog { Filter = "NARC File (*.narc)|*.narc" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } Narc userfile = Narc.Open(of.FileName); if (userfile is null) { MessageBox.Show("The file you selected is not a valid NARC.", "Cannot proceed", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } MessageBox.Show("Choose where to save the NARC content.\nDSPRE will automatically make a subdirectory.", "Choose destination path", MessageBoxButtons.OK, MessageBoxIcon.Information); CommonOpenFileDialog narcDir = new CommonOpenFileDialog { IsFolderPicker = true, Multiselect = false }; if (narcDir.ShowDialog() != CommonFileDialogResult.Ok) { return; } string finalExtractedPath = narcDir.FileName + "\\" + Path.GetFileNameWithoutExtension(of.FileName); userfile.ExtractToFolder(finalExtractedPath); MessageBox.Show("The contents of " + of.FileName + " have been extracted and saved.", "NARC Extracted", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult d = MessageBox.Show("Do you want to rename the files according to their contents?", "Waiting for user", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.Yes)) { ContentBasedBatchRename(new DirectoryInfo(finalExtractedPath)); } } private void buildFromFolderToolStripMenuItem_Click(object sender, EventArgs e) { CommonOpenFileDialog narcDir = new CommonOpenFileDialog { IsFolderPicker = true, Multiselect = false }; if (narcDir.ShowDialog() != CommonFileDialogResult.Ok) { return; } MessageBox.Show("Choose where to save the output NARC file.", "Name your NARC file", MessageBoxButtons.OK, MessageBoxIcon.Information); SaveFileDialog sf = new SaveFileDialog { Filter = "NARC File (*.narc)|*.narc", FileName = Path.GetFileName(narcDir.FileName) }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } Narc.FromFolder(narcDir.FileName).Save(sf.FileName); MessageBox.Show("The contents of folder \"" + narcDir.FileName + "\" have been packed.", "NARC Created", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void listBasedToolStripMenuItem_Click(object sender, EventArgs e) { (DirectoryInfo d, FileInfo[] files) dirData = OpenNonEmptyDir(title: "List-Based Batch Rename Tool"); DirectoryInfo d = dirData.d; FileInfo[] files = dirData.files; if (d == null || files == null) { return; } /*==================================================================*/ MessageBox.Show("Choose your enumeration text file.", "Input list file", MessageBoxButtons.OK, MessageBoxIcon.Information); OpenFileDialog of = new OpenFileDialog { Filter = "List File (*.txt; *.list)|*.txt;*.list" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /*==================================================================*/ const string COMMENT_CHAR = "#"; const string ISOLATED_FOLDERNAME = "DSPRE_IsolatedFiles"; string[] listLines = File.ReadAllLines(of.FileName); listLines = listLines.Where(line => !string.IsNullOrWhiteSpace(line) && !line.StartsWith(COMMENT_CHAR)).ToArray(); if (listLines.Length <= 0) { MessageBox.Show("The enumeration text file you selected is empty or only contains comment lines.\nCan't proceed.", "Invalid list file", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string msg = "About to process "; int tot; string extra = ""; int diff = files.Length - listLines.Length; if (diff < 0) { //listLines.Length > files.Length tot = files.Length; extra = "(Please note that the length of the chosen list [" + listLines.Length + " entries] " + "exceeds the number of files in the folder.)" + "\n\n"; } else if (diff == 0) { //listLines.Length == files.Length tot = files.Length; } else { // diff > 0 --> listLines.Length < files.Length tot = listLines.Length; extra = "(Please note that there aren't enough entries in the list to rename all files in the chosen folder.\n" + diff + " file" + (diff > 1 ? "s" : "") + " won't be renamed.)" + "\n\n"; } msg += tot + " file" + (tot > 1 ? "s" : ""); DialogResult dr = MessageBox.Show(msg + " from the input folder (taken in ascending order), " + "according to the list file you provided.\n" + "If a destination file already exists, DSPRE will append a number to its name.\n\n" + extra + "Do you want to proceed?", "Confirm operation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr.Equals(DialogResult.Yes)) { int i; for (i = 0; i < tot; i++) { FileInfo f = files[i]; Console.WriteLine(f.Name); string destName = Path.GetDirectoryName(f.FullName) + "\\" + listLines[i]; if (string.IsNullOrWhiteSpace(destName)) { continue; } File.Move(f.FullName, MakeUniqueName(destName)); } MessageBox.Show("The contents of folder \"" + d.FullName + "\" have been renamed according to " + "\"" + of.FileName + "\".", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); if (listLines.Length < files.Length) { dr = MessageBox.Show("Do you want to isolate the unnamed files by moving them to a dedicated folder?", "Waiting for user", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr.Equals(DialogResult.Yes)) { string isolatedDir = d.FullName + "\\" + ISOLATED_FOLDERNAME; if (Directory.Exists(isolatedDir)) { Directory.Delete(isolatedDir); } Directory.CreateDirectory(d.FullName + "\\" + ISOLATED_FOLDERNAME); while (i < files.Length) { FileInfo f = files[i]; Console.WriteLine(f.Name); string destName = d.FullName + "\\" + ISOLATED_FOLDERNAME + "\\" + f.Name; File.Move(f.FullName, destName); i++; } MessageBox.Show("Isolated files have been moved to " + "\"" + ISOLATED_FOLDERNAME + "\"", "Files moved", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } private void contentBasedToolStripMenuItem_Click(object sender, EventArgs e) { ContentBasedBatchRename(); } private void ContentBasedBatchRename(DirectoryInfo d = null) { (DirectoryInfo d, FileInfo[] files) dirData = OpenNonEmptyDir(d, title: "Content-Based Batch Rename Tool"); d = dirData.d; FileInfo[] files = dirData.files; if (d == null || files == null) { return; } DialogResult dr = MessageBox.Show("About to rename " + files.Length + " file" + (files.Length > 1 ? "s" : "") + " from the input folder (taken in ascending order), according to their content.\n" + "If a destination file already exists, DSPRE will append a number to its name.\n\n" + "Do you want to proceed?", "Confirm operation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr.Equals(DialogResult.Yes)) { List enumerationFile = new List { "#============================================================================", "# File enumeration definition for folder " + "\"" + d.Name + "\"", "#============================================================================" }; int initialLength = enumerationFile.Count; const byte toRead = 16; foreach (FileInfo f in files) { Console.WriteLine(f.Name); string fileNameOnly = Path.GetFileNameWithoutExtension(f.FullName); string dirNameOnly = Path.GetDirectoryName(f.FullName); string destName = ""; byte[] b = DSUtils.ReadFromFile(f.FullName, 0, toRead); if (b == null || b.Length < toRead) { continue; } string magic = ""; if (b[0] == 'B' && b[3] == '0') { //B**0 ushort nameOffset; destName = dirNameOnly + "\\"; //Full filename can be changed nameOffset = (ushort)(52 + (4 * (BitConverter.ToUInt16(b, 0xE) - 1))); if (b[1] == 'T' && b[2] == 'X') { //BTX0 #if false nameOffset += 0xEC; #else destName = fileNameOnly; #endif } string nameRead = Encoding.UTF8.GetString(DSUtils.ReadFromFile(f.FullName, nameOffset, 16)).TrimEnd(new char[] { (char)0 }); if (nameRead.Length <= 0 || nameRead.IndexOfAny(Path.GetInvalidPathChars()) >= 0) { destName = fileNameOnly; //Filename can't be changed, only extension } else { destName += nameRead; } destName += ".ns"; for (int i = 0; i < 3; i++) { magic += Char.ToLower((char)b[i]); } } else { destName = fileNameOnly + "."; byte offset = 0; if (b[5] == 'R' && b[8] == 'N') { offset = 5; } for (int i = 0; i < 4; i++) { magic += Char.ToLower((char)b[offset + i]); } } if (string.IsNullOrWhiteSpace(magic) || !magic.All(char.IsLetterOrDigit)) { continue; } destName += magic; if (string.IsNullOrWhiteSpace(destName)) { continue; } destName = MakeUniqueName(destName, fileNameOnly = null, dirNameOnly); File.Move(f.FullName, Path.Combine(Path.GetDirectoryName(f.FullName), Path.GetFileName(destName))); enumerationFile.Add(Path.GetFileName(destName)); } if (enumerationFile.Count > initialLength) { MessageBox.Show("Files inside folder \"" + d.FullName + "\" have been renamed according to their contents.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult response = MessageBox.Show("Do you want to save a file enumeration list?", "Waiting for user", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (response.Equals(DialogResult.Yes)) { MessageBox.Show("Choose where to save the output list file.", "Name your list file", MessageBoxButtons.OK, MessageBoxIcon.Information); SaveFileDialog sf = new SaveFileDialog { Filter = "List File (*.txt; *.list)|*.txt;*.list", FileName = d.Name + ".list" }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } File.WriteAllLines(sf.FileName, enumerationFile); MessageBox.Show("List file saved.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("No file content could be recognized.", "Operation terminated", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } private void fromFolderContentsToolStripMenuItem_Click(object sender, EventArgs e) { (DirectoryInfo d, FileInfo[] files) dirData = OpenNonEmptyDir(title: "Folder-Based List Builder"); DirectoryInfo d = dirData.d; FileInfo[] filePaths = dirData.files; if (d == null || filePaths == null) { return; } MessageBox.Show("Choose where to save the output list file.", "Name your list file", MessageBoxButtons.OK, MessageBoxIcon.Information); SaveFileDialog sf = new SaveFileDialog { Filter = "List File (*.txt; *.list)|*.txt;*.list", FileName = d.Name + ".list" }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } File.WriteAllLines(sf.FileName, new string[] { "#============================================================================", "# File enumeration definition for folder " + "\"" + d.Name + "\"", "#============================================================================" }); File.AppendAllLines(sf.FileName, filePaths.Select(f => f.Name).ToArray()); MessageBox.Show("List file saved.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void enumBasedListBuilderToolStripButton_Click(object sender, EventArgs e) { MessageBox.Show("Pick a C Enum File [with entries on different lines].", "Enum-Based List Builder", MessageBoxButtons.OK, MessageBoxIcon.Information); OpenFileDialog of = new OpenFileDialog { Filter = "Any Text File(*.*)|*.*" }; if (of.ShowDialog(this) != DialogResult.OK) { return; } try { Dictionary entries = new Dictionary(); string[] cFileLines = File.ReadAllLines(of.FileName); cFileLines = cFileLines.Select(x => x.Trim()).ToArray(); int enumStartLine; for (enumStartLine = 0; enumStartLine < cFileLines.Length; enumStartLine++) { if (cFileLines[enumStartLine].Replace(" ", "").Contains("enum{")) { break; } } if (cFileLines.Length - 1 == enumStartLine) { MessageBox.Show("Abrupt termination of enum file.\nAborting.", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int terminationLine; for (terminationLine = enumStartLine + 1; terminationLine < cFileLines.Length; terminationLine++) { if (cFileLines[terminationLine].Replace(" ", "").Contains("};")) { break; } } if (terminationLine >= cFileLines.Length - 1) { MessageBox.Show("Enum file is malformed.\nAborting", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); }; if (terminationLine - enumStartLine <= 2) { MessageBox.Show("This utility needs at least 2 enum entries.\nAborting.", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); } int indexFirstDifferentChar = cFileLines[enumStartLine + 1].Zip(cFileLines[enumStartLine + 2], (char1, char2) => char1 == char2).TakeWhile(b => b).Count(); int lastCommonUnderscore = cFileLines[enumStartLine + 1].Substring(0, indexFirstDifferentChar).LastIndexOf('_'); int lastNumber = 0; MessageBox.Show("Choose where to save the output list file.", "Name your list file", MessageBoxButtons.OK, MessageBoxIcon.Information); string shortFileName = Path.GetFileNameWithoutExtension(of.FileName); SaveFileDialog sf = new SaveFileDialog { Filter = "List File (*.txt; *.list)|*.txt;*.list", FileName = shortFileName + ".list" }; if (sf.ShowDialog(this) != DialogResult.OK) { return; } for (int s = enumStartLine + 1; s < terminationLine; s++) { string withoutComment; int indexOfComment = cFileLines[s].IndexOf("//"); if (indexOfComment > 0) { withoutComment = cFileLines[s].Substring(0, indexOfComment); } else { withoutComment = cFileLines[s]; } string differentSubstring = withoutComment.Substring(lastCommonUnderscore + 1).Trim().Replace(",", ""); int indexOfEquals = differentSubstring.LastIndexOf('='); string entry = differentSubstring.Substring(0, indexOfEquals).Trim(); if (indexOfEquals > 0) { string numstr = differentSubstring.Substring(indexOfEquals + 1); string[] split = numstr.Split(new char[] { ' ' }, options: StringSplitOptions.RemoveEmptyEntries); if (split.Length > 1) { throw new Exception(); } lastNumber = int.Parse(split[0]); } int posOfUnderscore = entry.LastIndexOf('_'); if (posOfUnderscore >= 0) { entry = entry.Remove(posOfUnderscore, 1).Insert(posOfUnderscore, "."); } entries.Add(lastNumber, entry); lastNumber++; } IEnumerable> sortedEntries = entries.OrderBy(kvp => kvp.Key); File.WriteAllLines(sf.FileName, new string[] { "#============================================================================", "# File enumeration definition based on " + "\"" + shortFileName + "\"", "#============================================================================" }); File.AppendAllLines(sf.FileName, sortedEntries.Select(kvp => kvp.Value)); MessageBox.Show("List file saved.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("The input enum file couldn't be read correctly.\nNo output file has been written." + "\n\nAborting.", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("Details: " + ex.Message, "Failure details", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private string MakeUniqueName(string fileName, string fileNameOnly = null, string dirNameOnly = null, string extension = null) { if (fileNameOnly == null) { fileNameOnly = Path.GetFileNameWithoutExtension(fileName); } if (dirNameOnly == null) { dirNameOnly = Path.GetDirectoryName(fileName); } if (extension == null) { extension = Path.GetExtension(fileName); } int append = 1; while (File.Exists(Path.Combine(dirNameOnly, fileName))) { string tmp = fileNameOnly + "(" + (append++) + ")"; fileName = Path.Combine(dirNameOnly, tmp + extension); } return fileName; } private (DirectoryInfo, FileInfo[]) OpenNonEmptyDir(DirectoryInfo d = null, string title = "Waiting for user") { /*==================================================================*/ if (d == null) { MessageBox.Show("Choose a source folder.", title, MessageBoxButtons.OK, MessageBoxIcon.Information); CommonOpenFileDialog sourceDirDialog = new CommonOpenFileDialog { IsFolderPicker = true, Multiselect = false }; if (sourceDirDialog.ShowDialog() != CommonFileDialogResult.Ok) { return (null, null); } d = new DirectoryInfo(sourceDirDialog.FileName); } FileInfo[] tempfiles = d.GetFiles(); FileInfo[] files = tempfiles.OrderBy(n => System.Text.RegularExpressions.Regex.Replace(n.Name, @"\d+", e => e.Value.PadLeft(tempfiles.Length.ToString().Length, '0'))).ToArray(); if (files.Length <= 0) { MessageBox.Show("Folder " + "\"" + d.FullName + "\"" + " is empty.\nCan't proceed.", "Invalid folder", MessageBoxButtons.OK, MessageBoxIcon.Error); return (null, null); }; return (d, files); } private void simpleToolStripMenuItem_MouseDown(object sender, MouseEventArgs e) { ToolStripMenuItem tsmi = (sender as ToolStripMenuItem); SetMenuLayout((byte)tsmi.GetCurrentParent().Items.IndexOf(tsmi)); } private void SetMenuLayout(byte layoutStyle) { Console.WriteLine("Setting menuLayout to" + layoutStyle); IList list = menuViewToolStripMenuItem.DropDownItems; for (int i = 0; i < list.Count; i++) { (list[i] as ToolStripMenuItem).Checked = (i == layoutStyle); } Properties.Settings.Default.menuLayout = layoutStyle; switch (layoutStyle) { case 0: buildNarcFromFolderToolStripButton.Visible = false; unpackNARCtoFolderToolStripButton.Visible = false; separator_afterNarcUtils.Visible = false; listBasedBatchRenameToolStripButton.Visible = false; contentBasedBatchRenameToolStripButton.Visible = false; separator_afterRenameUtils.Visible = false; enumBasedListBuilderToolStripButton.Visible = false; folderBasedListBuilderToolStriButton.Visible = false; separator_afterListUtils.Visible = false; nsbmdAddTexButton.Visible = false; nsbmdRemoveTexButton.Visible = false; nsbmdExportTexButton.Visible = false; separator_afterNsbmdUtils.Visible = false; wildEditorButton.Visible = false; romToolboxToolStripButton.Visible = false; break; case 1: buildNarcFromFolderToolStripButton.Visible = false; unpackNARCtoFolderToolStripButton.Visible = false; separator_afterNarcUtils.Visible = false; listBasedBatchRenameToolStripButton.Visible = false; contentBasedBatchRenameToolStripButton.Visible = false; separator_afterRenameUtils.Visible = false; enumBasedListBuilderToolStripButton.Visible = false; folderBasedListBuilderToolStriButton.Visible = false; separator_afterListUtils.Visible = false; nsbmdAddTexButton.Visible = true; nsbmdRemoveTexButton.Visible = true; nsbmdExportTexButton.Visible = true; separator_afterNsbmdUtils.Visible = true; wildEditorButton.Visible = true; romToolboxToolStripButton.Visible = true; break; case 2: buildNarcFromFolderToolStripButton.Visible = true; unpackNARCtoFolderToolStripButton.Visible = true; separator_afterNarcUtils.Visible = true; listBasedBatchRenameToolStripButton.Visible = false; contentBasedBatchRenameToolStripButton.Visible = false; separator_afterRenameUtils.Visible = false; enumBasedListBuilderToolStripButton.Visible = false; folderBasedListBuilderToolStriButton.Visible = false; separator_afterListUtils.Visible = false; nsbmdAddTexButton.Visible = true; nsbmdRemoveTexButton.Visible = true; nsbmdExportTexButton.Visible = true; separator_afterNsbmdUtils.Visible = true; wildEditorButton.Visible = true; romToolboxToolStripButton.Visible = true; break; case 3: default: foreach (ToolStripItem c in mainToolStrip.Items) { c.Visible = true; } break; } } //Locate File - buttons public static void ExplorerSelect(string path) { if (File.Exists(path)) { Process.Start("explorer.exe", "/select" + "," + "\"" + path + "\""); } } private void locateCurrentMatrixFile_Click(object sender, EventArgs e) { ExplorerSelect(Path.Combine(gameDirs[DirNames.matrices].unpackedDir, selectMatrixComboBox.SelectedIndex.ToString("D4"))); } private void locateCurrentMapBin_Click(object sender, EventArgs e) { ExplorerSelect(Path.Combine(gameDirs[DirNames.maps].unpackedDir, selectMapComboBox.SelectedIndex.ToString("D4"))); } private void locateCurrentNsbtx_Click(object sender, EventArgs e) { if (mapTilesetRadioButton.Checked) { ExplorerSelect(Path.Combine(gameDirs[DirNames.mapTextures].unpackedDir, texturePacksListBox.SelectedIndex.ToString("D4"))); } else { ExplorerSelect(Path.Combine(gameDirs[DirNames.buildingTextures].unpackedDir, texturePacksListBox.SelectedIndex.ToString("D4"))); } } private void locateCurrentAreaData_Click(object sender, EventArgs e) { ExplorerSelect(Path.Combine(gameDirs[DirNames.areaData].unpackedDir, selectAreaDataListBox.SelectedIndex.ToString("D4"))); } private void locateCurrentEvFile_Click(object sender, EventArgs e) { ExplorerSelect(Path.Combine(gameDirs[DirNames.eventFiles].unpackedDir, selectEventComboBox.SelectedIndex.ToString("D4"))); } private void locateCurrentScriptFile_Click(object sender, EventArgs e) { ExplorerSelect(Path.Combine(gameDirs[DirNames.scripts].unpackedDir, EditorPanels.scriptEditor.selectScriptFileComboBox.SelectedIndex.ToString("D4"))); } private void locateCurrentTextArchive_Click(object sender, EventArgs e) { ExplorerSelect(Path.Combine(gameDirs[DirNames.textArchives].unpackedDir, selectTextFileComboBox.SelectedIndex.ToString("D4"))); } ////////////////////////////////////////// ///NSBTX Visualizer private float nsbtxScaleFactor = 1.0f; public void PictureBoxDisable(object sender, PaintEventArgs e) { if (sender is PictureBox pict && pict.Image != null && (!pict.Enabled)) { using (var img = new Bitmap(pict.Image, pict.ClientSize)) { ControlPaint.DrawImageDisabled(e.Graphics, img, 0, 0, pict.BackColor); } } } private int NSBTXRender(int tex, int pal, float scale = -1, NSBTX_File file = null) { NSBTX_File toload = file; if (toload is null) { if (currentNsbtx is null) { return -1; } toload = currentNsbtx; } (Bitmap bmp, int ctrlCode) ret; if (tex == -1 && pal == -1) { return -1; } else { ret = toload.GetBitmap(tex, pal); } if (ret.bmp != null) { try { texturePictureBox.Image = ret.bmp.Resize(scale); texturePictureBox.Invalidate(); } catch { } } return ret.ctrlCode; } private void scalingTrackBar_Scroll(object sender, EventArgs e) { int val = (sender as TrackBar).Value; nsbtxScaleFactor = (float)(val > 0 ? val + 1 : Math.Pow(2, (sender as TrackBar).Value)); scalingLabel.Text = $"x{nsbtxScaleFactor}"; NSBTXRender(texturesListBox.SelectedIndex, palettesListBox.SelectedIndex, scale: nsbtxScaleFactor); } private void invertDragCheckbox_CheckedChanged(object sender, EventArgs e) { texturePictureBox.invertDrag = invertDragCheckbox.Checked; } private void repositionImageButton_Click(object sender, EventArgs e) { texturePictureBox.RedrawCentered(); } private void texturedMapRenderCheckBox_CheckedChanged(object sender, EventArgs e) { mapTexturesOn = (sender as CheckBox).Checked; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void texturedBldRenderCheckBox_CheckedChanged(object sender, EventArgs e) { bldTexturesOn = (sender as CheckBox).Checked; RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, bldTexturesOn); } private void trainerEditorStatButton_Click(object sender, EventArgs e) { string[] trcNames = RomInfo.GetTrainerClassNames(); string[] pokeNames = RomInfo.GetPokemonNames(); string[] trainerNames = GetSimpleTrainerNames(); for (int i = 0; i < trcNames.Length; i++) { trcNames[i] = trcNames[i].Replace("♂", " M").Replace("♀", " F"); } Dictionary> trainerUsage = new Dictionary>(); for (int i = 0; i < trainerNames.Length; i++) { if (trainerNames[i].Equals("Angelica") || trainerNames[i].Equals("Mickey")) { continue; } string suffix = "\\" + i.ToString("D4"); TrainerFile f = new TrainerFile( new TrainerProperties( (ushort)trainerComboBox.SelectedIndex, new FileStream(RomInfo.gameDirs[DirNames.trainerProperties].unpackedDir + suffix, FileMode.Open) ), new FileStream(RomInfo.gameDirs[DirNames.trainerParty].unpackedDir + suffix, FileMode.Open), trainerNames[i] ); if (f.party.CountNonEmptyMons() == 0) { continue; } string className = trcNames[f.trp.trainerClass]; if (trainerUsage.TryGetValue(className, out Dictionary innerDict) == false) { innerDict = trainerUsage[className] = new Dictionary(); } for (int p = 0; p < f.trp.partyCount; p++) { PartyPokemon pp = f.party[p]; if (pp.CheckEmpty()) { continue; } string pokeName = pokeNames[(int)pp.pokeID]; if (innerDict.TryGetValue(pokeName, out int occurrences)) { innerDict[pokeName]++; } else { innerDict[pokeName] = 1; } } } ExportTrainerUsageToCSV(trainerUsage, "Report.csv"); } public void ExportTrainerUsageToCSV(Dictionary> trainerUsage, string csvFilePath) { // Create the StreamWriter to write data to the CSV file var sortedTrainerClasses = trainerUsage.Keys.OrderBy(className => className); using (StreamWriter sw = new StreamWriter(csvFilePath)) { // Write the header row sw.WriteLine("Trainer Class;Pokemon Name;Occurrences"); // Iterate over the sorted trainer class names foreach (string className in sortedTrainerClasses) { Dictionary innerDict = trainerUsage[className]; // Sort the Pokemon names alphabetically var sortedPokemonNames = innerDict.Keys.OrderByDescending(pokeName => innerDict[pokeName]); // Iterate over the sorted mon names foreach (string pokeName in sortedPokemonNames) { int occurrences = innerDict[pokeName]; // Write the data row sw.WriteLine($"{className};{pokeName};{occurrences}"); } sw.WriteLine($"-;-;-"); } } Console.WriteLine("CSV file exported successfully."); } private void pokemonDataEditorToolStripMenuItem_Click(object sender, EventArgs e) { string[] itemNames = RomInfo.GetItemNames(); string[] abilityNames = RomInfo.GetAbilityNames(); string[] moveNames = RomInfo.GetAttackNames(); Helpers.statusLabelMessage("Setting up Pokémon Data Editor..."); Update(); DSUtils.TryUnpackNarcs(new List { DirNames.personalPokeData, DirNames.learnsets, DirNames.evolutions, DirNames.monIcons }); RomInfo.SetMonIconsPalTableAddress(); PokemonEditor pde = new PokemonEditor(itemNames, abilityNames, moveNames); Helpers.statusLabelMessage(); Update(); pde.ShowDialog(); } private void overlayEditorToolStripMenuItem_Click(object sender, EventArgs e) { Helpers.statusLabelMessage("Setting up Overlay Editor..."); Update(); OverlayEditor ovlEditor = new OverlayEditor(); ovlEditor.ShowDialog(); Helpers.statusLabelMessage(); Update(); } private void moveDataEditorToolStripMenuItem_Click(object sender, EventArgs e) { Helpers.statusLabelMessage("Setting up Move Data Editor..."); Update(); DSUtils.TryUnpackNarcs(new List { DirNames.moveData }); string[] moveDescriptions = new TextArchive(RomInfo.moveDescriptionsTextNumbers).messages.Select( x => x.Replace("\\n", Environment.NewLine)).ToArray(); MoveDataEditor mde = new MoveDataEditor( new TextArchive(RomInfo.moveNamesTextNumbers).messages.ToArray(), moveDescriptions ); mde.ShowDialog(); Helpers.statusLabelMessage(); Update(); } } } ================================================ FILE: DS_Map/Main Window.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 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFBJREFUOE+l0bEJwDAMRNFDG3ijrJfeeJ8sFoW0vur7itd8sBCyulsJC5QFygJl gdJduhKaqjehpepH48j/Nh+wr0TlR9y/hbJAWaAsUBaoD7HiY1fWoY0CAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFBJREFUOE+l0bEJwDAMRNFDG3ijrJfeeJ8sFoW0vur7itd8sBCyulsJC5QFygJl gdJduhKaqjehpepH48j/Nh+wr0TlR9y/hbJAWaAsUBaoD7HiY1fWoY0CAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFBJREFUOE+l0bEJwDAMRNFDG3ijrJfeeJ8sFoW0vur7itd8sBCyulsJC5QFygJl gdJduhKaqjehpepH48j/Nh+wr0TlR9y/hbJAWaAsUBaoD7HiY1fWoY0CAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC 239, 17 AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACM EgAAAk1TRnQBSQFMAgEBCgEAAfgBHAH4ARwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA 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/xMABLwEAAS8KwAGvAIA BOkBvAMABOkBvCoAASYBHgQAArwBAATpBAAE6QG8KgABJgEeAgABJgEeAQABvAEAAukBvAIABLwBAALp AbwtAAG8ASYBHgMAAukBvAEABAsCvALpAbwsAAEmAR4CAAG8AgAC6QG8AgsBvAEAAgsBvALpAbwmAAO8 AgABJgEeAgABvAMAAukBvAILArwCCwEAAukBvCUAAc0BCgEAAbwBAAEmAR4BAAHsAwABvAEAAukBvAUL AgAC6QG8JQABzQEKAQACvAEmAR4BAAESArwBAAG8AQAC6QG8AgsCvAMAAukBvCQAAc0BCgMAAbwBAAEm AR4GAALpAbwBAAILA7wBAALpAbwkAAHNAQoBEgHsAQABEgG8CAAC6QG8AgADCwIAAukBvCQAAc0BCgES AgABEgG8CAAC6QO8BAABvALpAbwjAAHNAQoBAAG8AwABvAgABOkBvAMABOkBvAEAAbwhAAHNAQoBAAG8 AwAB7AG8BwAE6QQABOkBGwExAZkhAAFlGwADMT0AARsBMQEbKQAB7AESAe8FAAH0EQAKEhgAAvMC6wHv AewB6wHzBQAB6gH0BQAC8gH0BgADEgZKAxIUAAHzAfEBvALsAQcBvAEHAewB6wEHBAABDgESAe0EAAHw ASIBKQHrAfMFAAESAkoGbgJKARIDAAEPBwABDwUAAQ8BAAG8AfcB7QGSAe8BvAEHAfAB9AHyAesB6gQA AQ4BbQHtAwABBwEjAisBKgHrAfMDAAESAUoBbgFKBm4BSgFuAUoBEgEAAQ8J7wEPAwAB7wIAAW0C9wHw AbwB8wLyAvQB7QHrAQcDAAEHARUB6gPtASkBKwElAR8BJQEqAesB9AIAARIBSgFuAUoGkwFKAW4BSgES AgAB7wEBAR8G7wMAAu8CAAG8Ae8B8QH0AfYB8gLwAfQB9gHvAewBbQMAAfQBEAHrAUoBMAEDASUBFwH5 AiABJQEqAeoCAAESAUoBkwFuBkkBbgGTAUoBEgIAAe8CAQEfBe8BAAIPAu8CAAHyAe8C9gH3AW0B6wHy AfQB9gHzAesB7AEHAgAB9AEQAXMBRQEkASAB+QEXAfkBIAEfASABMQEiAfQBAAESAZMBbgFJBmwBSQFu AZMBEgIAAe8BAQEfBu8DAALvAwAB7wHzAbwBkgHwAfcB9gH3Ae0BBwHrAewB7wMAAfIBEQFFAR8CIAH5 ARcB+QEgAR8BMQEiAfQBAAESAZMBSQJsBHECbAFJAZMBEgEAAQ8J7wEPAwAB7wMAAQcB8AFEASUBGgKS AfIC8wH0ARIB6wHyAgAB8gFDAewBRQEfASAB+QEXASYBMQE3ATABFAIAAUkBbgFsAXEBlwRxAZcBcQFs AW4BEgIAAQ8HAAEPBQABDwIAAfQBbQEsASUB6wH0AvEC7wHyAusBvAIAAfMBbQHrAUUBHwIgAfkBMQFR Am0B8wIAAUkCbAGXAnEClwJxAZcCbAFJAgABFQEPARUDAAEVAQ8BFQgAARwBLAErAeoBBwG8Au8B9AK8 AfMCbQMAAfABEwFFAR8BJAIrAVEBvAUAAUkBbAJxBpcCcQFsAUkBAAEVAfcBBwH3ARUBAAEVAfcBBwH3 ARUGAAHvAisBSwHvAQcBvAHxBAcB9AGLAeoDAAHwAREBSwEkASMBAwFKAfAHAAFsAXEDlwJ4A5cBcQFs AgABDwEHAQABBwEPAQABDwEHAQABBwEPBQAB7wErASwBRQK8AQcB7wEHAbwB8AEZAtsBbAEHAwAB8AEj AisBDgHwAfEIAAFJAXEClwF4BZcBcQFJAgABFQH3AQcB9wEVAQABFQH3AQcB9wEVBQABEgEsAUUB8gHz Ae8B8gHxAbsC2gGzAosB8wQAAfABIwE3ATEBDgsAAUkBcQKXAXgDlwFxAUkEAAEVAQ8BFQMAARUBDwEV BwABEgG8AgABBwGzAdQBswJsAe8IAAHvAg4B8wwAAWwBcQSXAXEBbBkAAQcCEgG8HQAEcRcAAfQL8wH0 EwAN8xMAAQcL7wEHAgAPEAEAAQcNswEHBwAEQwcAAe8BAAG7BrMBuwIAAe8CAAEQBjgBEAbTARABAAGz DQABswUAAkME8AJDBQAB7wEAAbMGAAGzAgAB7wIAARACOAMAATgBEALTAgAC0wEQAQABsw0AAbMEAAFD CPABQwQAAe8BAAGtAQABlwJWAZcBAAGzAgAB7wIAARADOAEAAjgBEAHTAQAC0wEAAdMBEAEAAbMBAAFW CVABVgEAAbMDAAFDA/ABkgJDAZID8AFDAwAB7wEAAa0BAARWAQABswH0AQAB7wIAARACOAIAAjgBEAHT AQAC0wEAAdMBEAEAAbMBAAtWAQABswMAAUMB8AGSARIBQwHwAZIBQwESAZIB8AFDAwAB7wEAAa0BAARW AQABswH0AQAB7wIAARADOAEAAjgBEALTAgAC0wEQAQABswEAC1YBAAGzAgABQwHwARICYwFDAQAB8AFD AmMBEgHwAUMCAAHvAQABrQEABHgBAAGzAfQBAAHvAgABEAY4ARAG0wEQAQABswEAC1YBAAGzAgABQwES BEcCQwRHARIBQwIAAe8BAAGtBgABswHzAQAB7wIADxABAAGzAQALVgEAAbMCAAFDDEcBQwIAAe8BAAG7 Aq0EswG7AfMBAAHvAgABEAZHARAGAAEQAQABswEAC1YBAAGzAgABQwxHAUMCAAHvAQAB8wP0AfMB9AQA Ae8CAAEQAkcCAAJHARAGAAEQAQABswEAC1YBAAGzAwABQwJHApQGRwFDAwAB7wEAAXQCMgEsAXQBAAG8 AvcBAAHvAgABEAFHAQACRwEAAUcBEAYAARABAAGzAQABVgl4AVYBAAGzAwABQwFHBJQFRwFDAwAB7wEA ASwDwwFTAQAB9wIAAfMB8AIAARABRwEAAkcBAAFHARAGAAEQAQABswEAC3gBAAGzBAABQwSUBEcBQwQA Ae8BAAF0AywBdAEAAfcBAAHzAfADAAEQAkcCAAJHARAGAAEQAQABswEAC3gBAAGzBQACQwGUA0cCQwUA Ae8IAAHzAfAEAAEQBkcBEAYAARABAAGzDQABswcABEMHAAEHCO8BBwUADxABAAEJDbMBCREAAUIBTQE+ BwABPgMAASgDAAFAAwABMAMAAQEBAAEBBQABgAEBFgAD/wEAAv8CwwQAAf8BgQKDBAAB/wEAAYcBgwQA Af8BMAGMASMEAAH/AeEBiAEDBAAB/wHBAYEBAwQAAfEBgwGAASMEAAHhAQ4BgAFjBAAB4AEAAYAB4wQA AcABgQGIASMEAAHAAX8BjAFjBAABxAF/AYMBwwQAAYQBfwGDAYIEAAGEAT8BhwGABAABjAF/Af8B+AQA A/8B+AQAAf8BjwG/Af8B4AEHAv8B+AEHAo8BwAEDAv8BwAEHAY8BBwHAAQMBgAE8AYABBwGOAQMBgAEB AQABGAGAAQMBgAEBAYABAQIAAYABAwGAAQEBgAEBAgABgAEBAYABAAGAAQECAAHAAQEBwAEAAYABAQEA ARgBwAEAAcABAQGAAQEBgAE8AcABAAHAAQEBgAEBAY4BPwHAAQAB4AEPAYABAQEEAR8BgAEAAeABHwHA AQMBJAGfAgAB4AE/AcABAwEEAR8BAAEBAeAB/wHgAQcBjgE/AZgBDwHwAf8B8AEPAv8B+AF/Av8B/AE/ Av8BgAEDAv8BgAEDAv8BgAEDAQABAQEAAQEB/AE/AaABGwEAAQEBfwH9AfABDwGvAdsBAAExAX8B/QHg AQcBqAFbAQABSQFAAQUBwAEDAagBSwEAAUkBQAEFAcABAwGoAUsBAAExAUABBQGBAQEBqAFLAQABAQFA AQUBgAEBAa8BywEAAQEBQAEFAYABAQGgAQsBAAH9AUABBQGAAQEBoAF7ARgBxQFAAQUBwAEDAaABiwEk Ae0BQAEFAcABAwGgAbMBJAHNAUABBQHgAQcBoAGnARgB7QFAAQUB8AEPAb8BzwEAAf0BfwH9AfwBPwGA AR8BAAEBAQABAQL/Cw== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= 533, 20 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAV9JREFUWEftlj1Ow0AQRiP6RWDZCKWiMQWu3FPRUFjiBqYCiYYLhACXyAHScgIa eq7iM9AM+pJMtBrPrtfO4gJ5pNdk5+fZmtiezXqEMWbhQuYGhzGmk13eIk1OyYesA0TkZC9g/yivjLm8 OKGnx3v6+vxQwRlyZB2Qg50CSL65OiINNJdDJciRdYwc3hLg4S8P1/Tz/dwCzX0SfC7rAHpqEqqALLab 8BAXLnlwsECXhG84C2wnbmOQAEtoyDxJNIGh/InAenkbBO7Q/Dzb74D9fBksgMZVVXWSpBmeDXEFeHhd 19Q0jZc8z+n17X0jkaTZ3UH/Aikgh2lAAKFJjCpgS4wqUBTFRoLBTowqINndkfgCZVmqjCYQyiTwfwXk 8k1L6GIS6BQI+bzSBOTy9V5CAIEQ5mfHLYFQVAEbPvRhjFmhUcgHiQ3yowgAvFbRrC/q63iIQN98DVUg hBjBAr/PIGOlkOqMSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAYdJREFUWEftlkFKw0AUhnuB2VQjRcSFECzERbJw7z4XEsG68QheozfItlvJCVyI i5CNR3jyD05J3rxJ3yRNVy18hJLk/79MXuksjDGLKRBRD37+EF6IMeYlBi4QK9ITQODN6opiSC6WZIwh LqCV2Au48u12S23bqnlY39Hr5k2U4GUSPQGEIfS32dkjfW163yVwDz6SBC+TEAVs+fcz0eeTPfJSSWCs hCiAJ7fljv+VkHjM11bCgZngr4JzUMBK/LyrVoBzvUqmC2hnoKoqD2QYYz4cvFwloAFlZVl65HlOaZru WV4m3lx0GSXgyuu6pqZpBoEErgtJBAWKogiS3d9aAV4m4QRCEkGBIdwK8DKJroAkMbtAlmXeTJxUgAOJ WQT4nDhGC/CgsUPIUQsMIa2AlrPAbAJ8TiYP4RCSgBa1AH+S86/gZAKaXbEkwF9T9BAC7OcgoYELaBEF unRPhsBWCzsfHq7haAII0uyIuuD6owgA/K8jLBZxPxALbowVDuGFx8IDY/kD7lUZk+GYq/AAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAI1JREFUSEtjYBgFZALDkLT/MIwuR3MAsjRt000whjqgBV0NTQDMxzDLQdg8uQKO bQu7cGJ0s0gC2CzGhssv/seKoQ4gPZQotZgiB1DDYoocAAK4QgDdAkKYbAdAQYtH47z/IIxuMLGYUgfA AFaHwMTwYWo5AAbADkF2ANRwYjD1ALIPqW44CYA2vhtRAAAmDYpgT13R+wAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAJdJREFUSEtjYBgFFIA4Nav/MIwuRxcAsvh6XBcYU90RyL7DhRe6psEdAMItxoFg jG4WWQDZd4Tw/4IlKJgqDgE54HZcN4Zl+CxGxxQ5BJ8D0C0ihMlyBDYHoBtMCCOFQAsUEw+QHYBuMCE8 0y4ejJEsJs1yEKg18YMbhA9T3WI0gGwQBkZ2ALUtJgoghwRdLUYD9PX1sAMAB89ugVJE7dUAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAI1JREFUSEtjYBgFZALDkLT/MIwuR3MAsjRt000whjqgBV0NTQDMxzDLQdg8uQKO bQu7cGJ0s0gC2CzGhssv/seKoQ4gPZQotZgiB1DDYoocAAK4QgDdAkKYbAdAQYtH47z/IIxuMLGYUgfA AFaHwMTwYWo5AAbADkF2ANRwYjD1ALIPqW44CYA2vhtRAAAmDYpgT13R+wAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAJdJREFUSEtjYBgFFIA4Nav/MIwuRxcAsvh6XBcYU90RyL7DhRe6psEdAMItxoFg jG4WWQDZd4Tw/4IlKJgqDgE54HZcN4Zl+CxGxxQ5BJ8D0C0ihMlyBDYHoBtMCCOFQAsUEw+QHYBuMCE8 0y4ejJEsJs1yEKg18YMbhA9T3WI0gGwQBkZ2ALUtJgoghwRdLUYD9PX1sAMAB89ugVJE7dUAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFBJREFUOE+l0bEJwDAMRNFDG3ijrJfeeJ8sFoW0vur7itd8sBCyulsJC5QFygJl gdJduhKaqjehpepH48j/Nh+wr0TlR9y/hbJAWaAsUBaoD7HiY1fWoY0CAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAJdJREFUSEtjYBgFFIA4Nav/MIwuRxcAsvh6XBcYU90RyL7DhRe6psEdAMItxoFg jG4WWQDZd4Tw/4IlKJgqDgE54HZcN4Zl+CxGxxQ5BJ8D0C0ihMlyBDYHoBtMCCOFQAsUEw+QHYBuMCE8 0y4ejJEsJs1yEKg18YMbhA9T3WI0gGwQBkZ2ALUtJgoghwRdLUYD9PX1sAMAB89ugVJE7dUAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAI1JREFUSEtjYBgFZALDkLT/MIwuR3MAsjRt000whjqgBV0NTQDMxzDLQdg8uQKO bQu7cGJ0s0gC2CzGhssv/seKoQ4gPZQotZgiB1DDYoocAAK4QgDdAkKYbAdAQYtH47z/IIxuMLGYUgfA AFaHwMTwYWo5AAbADkF2ANRwYjD1ALIPqW44CYA2vhtRAAAmDYpgT13R+wAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFBJREFUOE+l0bEJwDAMRNFDG3ijrJfeeJ8sFoW0vur7itd8sBCyulsJC5QFygJl gdJduhKaqjehpepH48j/Nh+wr0TlR9y/hbJAWaAsUBaoD7HiY1fWoY0CAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAJdJREFUSEtjYBgFFIA4Nav/MIwuRxcAsvh6XBcYU90RyL7DhRe6psEdAMItxoFg jG4WWQDZd4Tw/4IlKJgqDgE54HZcN4Zl+CxGxxQ5BJ8D0C0ihMlyBDYHoBtMCCOFQAsUEw+QHYBuMCE8 0y4ejJEsJs1yEKg18YMbhA9T3WI0gGwQBkZ2ALUtJgoghwRdLUYD9PX1sAMAB89ugVJE7dUAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAI1JREFUSEtjYBgFZALDkLT/MIwuR3MAsjRt000whjqgBV0NTQDMxzDLQdg8uQKO bQu7cGJ0s0gC2CzGhssv/seKoQ4gPZQotZgiB1DDYoocAAK4QgDdAkKYbAdAQYtH47z/IIxuMLGYUgfA AFaHwMTwYWo5AAbADkF2ANRwYjD1ALIPqW44CYA2vhtRAAAmDYpgT13R+wAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFBJREFUOE+l0bEJwDAMRNFDG3ijrJfeeJ8sFoW0vur7itd8sBCyulsJC5QFygJl gdJduhKaqjehpepH48j/Nh+wr0TlR9y/hbJAWaAsUBaoD7HiY1fWoY0CAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFBJREFUOE+l0bEJwDAMRNFDG3ijrJfeeJ8sFoW0vur7itd8sBCyulsJC5QFygJl gdJduhKaqjehpepH48j/Nh+wr0TlR9y/hbJAWaAsUBaoD7HiY1fWoY0CAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAFxJREFUOE9j+P//PwM2zDBF7h/DFLn/DNNk/4PY6PJwdegCKAYsUPgPxqMG4DcA HtoYWBaiGWwAJCawYhSFpGJQFFPBACzOAmMivYAeKCQHIrrAqAFoBiASFk4DAOQLbokdS+snAAAAAElF TkSuQmCC True True True True True True True True True True True True True True iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAI1JREFUSEtjYBgFZALDkLT/MIwuR3MAsjRt000whjqgBV0NTQDMxzDLQdg8uQKO bQu7cGJ0s0gC2CzGhssv/seKoQ4gPZQotZgiB1DDYoocAAK4QgDdAkKYbAdAQYtH47z/IIxuMLGYUgfA AFaHwMTwYWo5AAbADkF2ANRwYjD1ALIPqW44CYA2vhtRAAAmDYpgT13R+wAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAJdJREFUSEtjYBgFFIA4Nav/MIwuRxcAsvh6XBcYU90RyL7DhRe6psEdAMItxoFg jG4WWQDZd4Tw/4IlKJgqDgE54HZcN4Zl+CxGxxQ5BJ8D0C0ihMlyBDYHoBtMCCOFQAsUEw+QHYBuMCE8 0y4ejJEsJs1yEKg18YMbhA9T3WI0gGwQBkZ2ALUtJgoghwRdLUYD9PX1sAMAB89ugVJE7dUAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAX5JREFUOE/Fkr0rRWEcx7/PcZJblK5/4E7KYFAmma3KP2ATsSmDSZlMBqWYjQYD ucS9z0tKLBaLgUFeEllMt87z1TnXy3N/nS5nkE99p9/3+ZyX5wfkQIcSjRqnxjw11oKs0mDWazVAAyXP 5eJNNESLSzqwTTyt2kx0XJLnW/A6GqTDY44gP1Zt8xix9GR4E3XQ4lQceqPBPQ1us1g80aEhpNPSlUGN YTok30Xs+boq033/KzrE3qhROrwEvXM6RK22tFzDRPBkT41+2fmEFiuB8IEH6JSdVDhFi0YWgzdW0Ss7 n9BiORC+8ABdsgPuImYVPVn20c0t2WjitarQ4uZLaOBk51ewjgoN1rM3Ci7F62hGdn8kMXF6Ea+hqPm5 6ow11X4XJUktLtPiWcjSxT7yOuqT/R/xRi22vhWs19FYuE6FoMFhIDuhzlmRItDgLhBuyHlhWMc5Da6z 1DAv5/8PHXbocPGRSTkvDB2ugltekPPC/IVwjg5LHxmRc8k7cy13VAsXPGAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAI1JREFUSEtjYBgFZALDkLT/MIwuR3MAsjRt000whjqgBV0NTQDMxzDLQdg8uQKO bQu7cGJ0s0gC2CzGhssv/seKoQ4gPZQotZgiB1DDYoocAAK4QgDdAkKYbAdAQYtH47z/IIxuMLGYUgfA AFaHwMTwYWo5AAbADkF2ANRwYjD1ALIPqW44CYA2vhtRAAAmDYpgT13R+wAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAJdJREFUSEtjYBgFFIA4Nav/MIwuRxcAsvh6XBcYU90RyL7DhRe6psEdAMItxoFg jG4WWQDZd4Tw/4IlKJgqDgE54HZcN4Zl+CxGxxQ5BJ8D0C0ihMlyBDYHoBtMCCOFQAsUEw+QHYBuMCE8 0y4ejJEsJs1yEKg18YMbhA9T3WI0gGwQBkZ2ALUtJgoghwRdLUYD9PX1sAMAB89ugVJE7dUAAAAASUVO RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAX5JREFUOE/Fkr0rRWEcx7/PcZJblK5/4E7KYFAmma3KP2ATsSmDSZlMBqWYjQYD ucS9z0tKLBaLgUFeEllMt87z1TnXy3N/nS5nkE99p9/3+ZyX5wfkQIcSjRqnxjw11oKs0mDWazVAAyXP 5eJNNESLSzqwTTyt2kx0XJLnW/A6GqTDY44gP1Zt8xix9GR4E3XQ4lQceqPBPQ1us1g80aEhpNPSlUGN YTok30Xs+boq033/KzrE3qhROrwEvXM6RK22tFzDRPBkT41+2fmEFiuB8IEH6JSdVDhFi0YWgzdW0Ss7 n9BiORC+8ABdsgPuImYVPVn20c0t2WjitarQ4uZLaOBk51ewjgoN1rM3Ci7F62hGdn8kMXF6Ea+hqPm5 6ow11X4XJUktLtPiWcjSxT7yOuqT/R/xRi22vhWs19FYuE6FoMFhIDuhzlmRItDgLhBuyHlhWMc5Da6z 1DAv5/8PHXbocPGRSTkvDB2ugltekPPC/IVwjg5LHxmRc8k7cy13VAsXPGAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAhFJREFUOE+tjjtMU2EYhv9BB42JBAFHR1cXZ2JIHAxoSpEQBxcTR6cWBIotgzIQ E6kNCQ5ORBJBjdGiMYa24uDgBImpCbSKLaU9l95v55z2MecgKL1sfsmT//2T93vyCfE/psuzSqfbz6kp Pydc7Tnp8tNxz88ZzypCiGMH+x2mYOqTiiwrbMWltkR2JcSDMBMh5UBiTY8puLv0mXwuSzxdIpYpsaMU iKWL/FKL7Cj5/SxlOD33A9d6mk53g2AypFAsFEgWNItEtsJevkoiVyWRLVt5Vy1w1rvFeFBucUFQplIu M2y3Me97jM87h8/7CLlcZ2T4upVT+Qrn5rcZDciYO0cEYwEJTdNJa6BUIKNhZVNgZrUKclHn/JNtnAGp WeAMyBhG3Voyy1kdMvofmb4vU0t1LjyN4gjIdE83CEbXJD5EStTqtMWc3sWfONakFoKgzLWVOP3LsbZc XY5jexG3rm0hULC9TIChga6DYYCmHeHZ1wQjrxM4Awo9jYKxkMLgq102IyqTnhku910imTXYiKhsRlXr NaU33+5Z3SbBeCjNjTd7hGN5BvoHcLjuU61DOJY7hFqN2+9TVrdJMLmucutdkkiqit0+xMT0LAYQSZYP gTp3PkpWt0kw9Pw7Vxa/8TAUZdBu3xh3z2wsfIkyG/yL+bctha1u18TK1oHguBDiohCi7x8a/430CiG6 zeXfJelqUKnUyCAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAX5JREFUOE/Fkr0rRWEcx7/PcZJblK5/4E7KYFAmma3KP2ATsSmDSZlMBqWYjQYD ucS9z0tKLBaLgUFeEllMt87z1TnXy3N/nS5nkE99p9/3+ZyX5wfkQIcSjRqnxjw11oKs0mDWazVAAyXP 5eJNNESLSzqwTTyt2kx0XJLnW/A6GqTDY44gP1Zt8xix9GR4E3XQ4lQceqPBPQ1us1g80aEhpNPSlUGN YTok30Xs+boq033/KzrE3qhROrwEvXM6RK22tFzDRPBkT41+2fmEFiuB8IEH6JSdVDhFi0YWgzdW0Ss7 n9BiORC+8ABdsgPuImYVPVn20c0t2WjitarQ4uZLaOBk51ewjgoN1rM3Ci7F62hGdn8kMXF6Ea+hqPm5 6ow11X4XJUktLtPiWcjSxT7yOuqT/R/xRi22vhWs19FYuE6FoMFhIDuhzlmRItDgLhBuyHlhWMc5Da6z 1DAv5/8PHXbocPGRSTkvDB2ugltekPPC/IVwjg5LHxmRc8k7cy13VAsXPGAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAhFJREFUOE+tjjtMU2EYhv9BB42JBAFHR1cXZ2JIHAxoSpEQBxcTR6cWBIotgzIQ E6kNCQ5ORBJBjdGiMYa24uDgBImpCbSKLaU9l95v55z2MecgKL1sfsmT//2T93vyCfE/psuzSqfbz6kp Pydc7Tnp8tNxz88ZzypCiGMH+x2mYOqTiiwrbMWltkR2JcSDMBMh5UBiTY8puLv0mXwuSzxdIpYpsaMU iKWL/FKL7Cj5/SxlOD33A9d6mk53g2AypFAsFEgWNItEtsJevkoiVyWRLVt5Vy1w1rvFeFBucUFQplIu M2y3Me97jM87h8/7CLlcZ2T4upVT+Qrn5rcZDciYO0cEYwEJTdNJa6BUIKNhZVNgZrUKclHn/JNtnAGp WeAMyBhG3Voyy1kdMvofmb4vU0t1LjyN4gjIdE83CEbXJD5EStTqtMWc3sWfONakFoKgzLWVOP3LsbZc XY5jexG3rm0hULC9TIChga6DYYCmHeHZ1wQjrxM4Awo9jYKxkMLgq102IyqTnhku910imTXYiKhsRlXr NaU33+5Z3SbBeCjNjTd7hGN5BvoHcLjuU61DOJY7hFqN2+9TVrdJMLmucutdkkiqit0+xMT0LAYQSZYP gTp3PkpWt0kw9Pw7Vxa/8TAUZdBu3xh3z2wsfIkyG/yL+bctha1u18TK1oHguBDiohCi7x8a/430CiG6 zeXfJelqUKnUyCAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAX5JREFUOE/Fkr0rRWEcx7/PcZJblK5/4E7KYFAmma3KP2ATsSmDSZlMBqWYjQYD ucS9z0tKLBaLgUFeEllMt87z1TnXy3N/nS5nkE99p9/3+ZyX5wfkQIcSjRqnxjw11oKs0mDWazVAAyXP 5eJNNESLSzqwTTyt2kx0XJLnW/A6GqTDY44gP1Zt8xix9GR4E3XQ4lQceqPBPQ1us1g80aEhpNPSlUGN YTok30Xs+boq033/KzrE3qhROrwEvXM6RK22tFzDRPBkT41+2fmEFiuB8IEH6JSdVDhFi0YWgzdW0Ss7 n9BiORC+8ABdsgPuImYVPVn20c0t2WjitarQ4uZLaOBk51ewjgoN1rM3Ci7F62hGdn8kMXF6Ea+hqPm5 6ow11X4XJUktLtPiWcjSxT7yOuqT/R/xRi22vhWs19FYuE6FoMFhIDuhzlmRItDgLhBuyHlhWMc5Da6z 1DAv5/8PHXbocPGRSTkvDB2ugltekPPC/IVwjg5LHxmRc8k7cy13VAsXPGAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAhFJREFUOE+tjjtMU2EYhv9BB42JBAFHR1cXZ2JIHAxoSpEQBxcTR6cWBIotgzIQ E6kNCQ5ORBJBjdGiMYa24uDgBImpCbSKLaU9l95v55z2MecgKL1sfsmT//2T93vyCfE/psuzSqfbz6kp Pydc7Tnp8tNxz88ZzypCiGMH+x2mYOqTiiwrbMWltkR2JcSDMBMh5UBiTY8puLv0mXwuSzxdIpYpsaMU iKWL/FKL7Cj5/SxlOD33A9d6mk53g2AypFAsFEgWNItEtsJevkoiVyWRLVt5Vy1w1rvFeFBucUFQplIu M2y3Me97jM87h8/7CLlcZ2T4upVT+Qrn5rcZDciYO0cEYwEJTdNJa6BUIKNhZVNgZrUKclHn/JNtnAGp WeAMyBhG3Voyy1kdMvofmb4vU0t1LjyN4gjIdE83CEbXJD5EStTqtMWc3sWfONakFoKgzLWVOP3LsbZc XY5jexG3rm0hULC9TIChga6DYYCmHeHZ1wQjrxM4Awo9jYKxkMLgq102IyqTnhku910imTXYiKhsRlXr NaU33+5Z3SbBeCjNjTd7hGN5BvoHcLjuU61DOJY7hFqN2+9TVrdJMLmucutdkkiqit0+xMT0LAYQSZYP gTp3PkpWt0kw9Pw7Vxa/8TAUZdBu3xh3z2wsfIkyG/yL+bctha1u18TK1oHguBDiohCi7x8a/430CiG6 zeXfJelqUKnUyCAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAX5JREFUOE/Fkr0rRWEcx7/PcZJblK5/4E7KYFAmma3KP2ATsSmDSZlMBqWYjQYD ucS9z0tKLBaLgUFeEllMt87z1TnXy3N/nS5nkE99p9/3+ZyX5wfkQIcSjRqnxjw11oKs0mDWazVAAyXP 5eJNNESLSzqwTTyt2kx0XJLnW/A6GqTDY44gP1Zt8xix9GR4E3XQ4lQceqPBPQ1us1g80aEhpNPSlUGN YTok30Xs+boq033/KzrE3qhROrwEvXM6RK22tFzDRPBkT41+2fmEFiuB8IEH6JSdVDhFi0YWgzdW0Ss7 n9BiORC+8ABdsgPuImYVPVn20c0t2WjitarQ4uZLaOBk51ewjgoN1rM3Ci7F62hGdn8kMXF6Ea+hqPm5 6ow11X4XJUktLtPiWcjSxT7yOuqT/R/xRi22vhWs19FYuE6FoMFhIDuhzlmRItDgLhBuyHlhWMc5Da6z 1DAv5/8PHXbocPGRSTkvDB2ugltekPPC/IVwjg5LHxmRc8k7cy13VAsXPGAAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAhFJREFUOE+tjjtMU2EYhv9BB42JBAFHR1cXZ2JIHAxoSpEQBxcTR6cWBIotgzIQ E6kNCQ5ORBJBjdGiMYa24uDgBImpCbSKLaU9l95v55z2MecgKL1sfsmT//2T93vyCfE/psuzSqfbz6kp Pydc7Tnp8tNxz88ZzypCiGMH+x2mYOqTiiwrbMWltkR2JcSDMBMh5UBiTY8puLv0mXwuSzxdIpYpsaMU iKWL/FKL7Cj5/SxlOD33A9d6mk53g2AypFAsFEgWNItEtsJevkoiVyWRLVt5Vy1w1rvFeFBucUFQplIu M2y3Me97jM87h8/7CLlcZ2T4upVT+Qrn5rcZDciYO0cEYwEJTdNJa6BUIKNhZVNgZrUKclHn/JNtnAGp WeAMyBhG3Voyy1kdMvofmb4vU0t1LjyN4gjIdE83CEbXJD5EStTqtMWc3sWfONakFoKgzLWVOP3LsbZc XY5jexG3rm0hULC9TIChga6DYYCmHeHZ1wQjrxM4Awo9jYKxkMLgq102IyqTnhku910imTXYiKhsRlXr NaU33+5Z3SbBeCjNjTd7hGN5BvoHcLjuU61DOJY7hFqN2+9TVrdJMLmucutdkkiqit0+xMT0LAYQSZYP gTp3PkpWt0kw9Pw7Vxa/8TAUZdBu3xh3z2wsfIkyG/yL+bctha1u18TK1oHguBDiohCi7x8a/430CiG6 zeXfJelqUKnUyCAAAAAASUVORK5CYII= 17, 17 132, 17 386, 19 533, 20 57 AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/MessageEnc/EncryptText.cs ================================================ using DSPRE.Resources; using System; using System.Collections.Generic; using System.IO; using System.Text; using static DSPRE.RomInfo; namespace DSPRE.MessageEnc { public static class EncryptText { private static readonly Dictionary GetCharDictionary = TextDatabase.readTextDictionary; private static readonly Dictionary WriteCharDictionary = TextDatabase.writeTextDictionary; private static string DecodeCharacter(int textChar) { if (GetCharDictionary.TryGetValue(textChar, out var character)) { return character; } else { return $"\\x{textChar:X4}"; } } public static string DecodeMessage(BinaryReader reader, int key, int offset, int size) { bool hasSpecialCharacter = false; bool isCompressed = false; reader.BaseStream.Position = offset; StringBuilder decode = new StringBuilder(""); for (int j = 0; j < size; j++) { int textChar = (reader.ReadUInt16()) ^ key; switch (textChar) { case 0xE000: decode.Append("\\n"); break; case 0x25BC: decode.Append("\\r"); break; case 0x25BD: decode.Append("\\f"); break; case 0xF100: isCompressed = true; break; case 0xFFFE: decode.Append("\\v"); hasSpecialCharacter = true; break; case 0xFFFF: decode.Append(""); break; default: if (hasSpecialCharacter) { decode.Append(textChar.ToString("X4")); hasSpecialCharacter = false; } else if (isCompressed) { int shift = 0; int trans = 0; while (true){ int compChar = textChar >> shift; if (shift >= 0xF) { shift -= 0xF; if (shift > 0) { compChar = (trans | ((textChar << (9 - shift)) & 0x1FF)); if ((compChar & 0xFF) == 0xFF) { break; } if (compChar != 0x0 && compChar != 0x1) { decode.Append(DecodeCharacter(compChar)); } } } else { compChar = (textChar >> shift) & 0x1FF; if ((compChar & 0xFF) == 0xFF) { break; } if (compChar != 0x0 && compChar != 0x1) { decode.Append(DecodeCharacter(compChar)); } shift += 9; if (shift < 0xF) { trans = (textChar >> shift) & 0x1FF; shift += 9; } key += 0x493D; key &= 0xFFFF; textChar = Convert.ToUInt16(reader.ReadUInt16() ^ key); j++; } } decode.Append(""); } else { decode.Append(DecodeCharacter(textChar)); } break; } key += 0x493D; key &= 0xFFFF; } return decode.ToString(); } public static List ReadMessageArchive(FileStream fileStream, bool discardLines) { int initialKey = 0; int stringCount = 0; List messagesString = new List(); bool success = false; using (BinaryReader reader = new BinaryReader(fileStream)) { try { stringCount = reader.ReadUInt16(); success = true; } catch (Exception ex) { Console.WriteLine(ex.Message); reader.Close(); fileStream.Close(); throw; } if (success) { try { initialKey = reader.ReadUInt16(); if (!discardLines) { int[] offsets = new int[stringCount]; int[] sizes = new int[stringCount]; int key = (initialKey * 0x2FD) & 0xFFFF; for (int i = 0; i < stringCount; i++) { int key2 = (key * (i + 1) & 0xFFFF); int actualKey = key2 | (key2 << 16); offsets[i] = ((int)reader.ReadUInt32()) ^ actualKey; sizes[i] = ((int)reader.ReadUInt32()) ^ actualKey; } for (int i = 0; i < stringCount; i++) { key = (0x91BD3 * (i + 1)) & 0xFFFF; messagesString.Add(DecodeMessage(reader, key, offsets[i], sizes[i])); } } } catch (Exception ex) { Console.WriteLine(ex.Message); reader.Close(); fileStream.Close(); throw; } } } fileStream.Close(); return messagesString; } private static int[] EncodeMessage(string message, bool isTrainerName = false) { List encoded = new List(); int compressionBuffer = 0; int bit = 0; if (isTrainerName) { encoded.Add(0xF100); } var charArray = message.ToCharArray(); string characterId; for (int i = 0; i < charArray.Length; i++) { switch (charArray[i]) { case '\\': switch (charArray[i + 1]) { case 'r': encoded.Add(0x25BC); i++; break; case 'n': encoded.Add(0xE000); i++; break; case 'f': encoded.Add(0x25BD); i++; break; case 'v': encoded.Add(0xFFFE); characterId = $"{charArray[i + 2]}{charArray[i + 3]}{charArray[i + 4]}{charArray[i + 5]}"; encoded.Add((int)Convert.ToUInt32(characterId, 16)); i += 5; break; case 'x': if (charArray[i + 2] == '0' && charArray[i + 3] == '0' && charArray[i + 4] == '0' && charArray[i + 5] == '0') { encoded.Add(0x0000); i += 5; break; } else if (charArray[i + 2] == '0' && charArray[i + 3] == '0' && charArray[i + 4] == '0' && charArray[i + 5] == '1') { encoded.Add(0x0001); i += 5; break; } else { characterId = $"{charArray[i + 2]}{charArray[i + 3]}{charArray[i + 4]}{charArray[i + 5]}"; encoded.Add((int)Convert.ToUInt32(characterId, 16)); i += 5; break; } } break; case '[': switch (charArray[i + 1]) { case 'P': encoded.Add(0x01E0); i += 3; break; case 'M': encoded.Add(0x01E1); i += 3; break; } break; default: WriteCharDictionary.TryGetValue(charArray[i], out int code); if (isTrainerName) { compressionBuffer |= code << bit; bit += 9; if (bit >= 15) { bit -= 15; encoded.Add((int)Convert.ToUInt32(compressionBuffer & 0x7FFF)); compressionBuffer >>= 15; } } else { encoded.Add(code); } break; } } if (isTrainerName && bit > 1) { compressionBuffer |= (0xFFFF << bit); encoded.Add((int)Convert.ToUInt32(compressionBuffer & 0x7FFF)); } encoded.Add(0xFFFF); return encoded.ToArray(); } private static List EncodeMessages(List messages, bool isTrainerName = false) { List encoded = new List(); foreach (var message in messages) { encoded.Add(EncodeMessage(message, isTrainerName)); } return encoded; } private static int GetInitialKey(string filePath) { int initialKey = 0; var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); using (BinaryReader reader = new BinaryReader(fileStream)) { try { reader.BaseStream.Position = 2; initialKey = reader.ReadUInt16(); reader.Close(); fileStream.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); reader.Close(); fileStream.Close(); throw; } } return initialKey; } public static bool WriteMessageArchive(int messageArchiveId, List messages, bool isTrainerName = false) { string filePath = $"{gameDirs[DirNames.textArchives].unpackedDir}\\{messageArchiveId:D4}"; int initialKey = GetInitialKey(filePath); var stream = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(stream)) { try { List encoded = EncodeMessages(messages, isTrainerName); int encodedSize = encoded.Count; writer.Write((ushort)encodedSize); writer.Write((ushort)initialKey); int key = (initialKey * 0x2FD) & 0xFFFF; int key2 = 0; int actualKey = 0; int offset = 0x4 + (encodedSize * 8); int[] stringLengths = new int[encodedSize]; for (int i = 0; i < encodedSize; i++) { key2 = (key * (i + 1) & 0xFFFF); actualKey = key2 | (key2 << 16); writer.Write(offset ^ actualKey); int[] currentString = encoded[i]; int length = encoded[i].Length; stringLengths[i] = length; writer.Write(length ^ actualKey); offset += length * 2; } for (int i = 0; i < encodedSize; i++) { key = (0x91BD3 * (i + 1)) & 0xFFFF; int[] currentMessage = encoded[i]; for (int j = 0; j < stringLengths[i] - 1; j++) { writer.Write((ushort)(currentMessage[j] ^ key)); key += 0x493D; key &= 0xFFFF; } writer.Write((ushort)(0xFFFF ^ key)); System.IO.File.WriteAllBytes(filePath, stream.ToArray()); } } catch (Exception ex) { writer.Close(); Console.WriteLine(ex.Message); return false; throw; } } return true; } } } ================================================ FILE: DS_Map/Narc.cs ================================================ using DSPRE; using System; using System.IO; using System.Threading.Tasks; using System.Windows.Forms; namespace NarcAPI { public class Narc { //Nitro Archive public String Name { get; set; } private MemoryStream[] Elements; private int FileNameTableOffset, FileImageOffset; private const int NARC_FILE_MAGIC_NUM = 0x4352414E; //"NARC" in ascii/unicode private const int FILE_ALLOCATION_TABLE_OFFSET = 0x10; private const int FILE_ALLOCATION_TABLE_NUM_ELEMENTS_OFFSET = 0x18; private const int FILE_ALLOCATION_TABLE_HEADER_LENGTH = 12; private const int FILE_ALLOCATION_TABLE_ELEMENT_LENGTH = 0x8; private const int FILE_IMAGE_HEADER_SIZE = 0x8; private const int FILE_NAME_TABLE_SIGNATURE_LENGTH = 0x4; private Narc(String name) { this.Name = name; } public static Narc NewEmpty(String name = "NewNarc") { Narc narc = new Narc(name); return narc; } public static Narc Open(String filePath) { Narc narc = new Narc(Path.GetFileNameWithoutExtension(filePath)); BinaryReader br = new BinaryReader(File.OpenRead(filePath)); if (br.ReadUInt32() != NARC_FILE_MAGIC_NUM) { return null; } narc.ReadOffsets(br); narc.ReadElements(br); br.Close(); return narc; } public static Narc FromFolder(String dirPath) { Narc narc = new Narc(Path.GetDirectoryName(dirPath)); String[] fileNames = Directory.GetFiles(dirPath, "*.*", SearchOption.AllDirectories); uint numberOfElements = (uint)fileNames.Length; narc.Elements = new MemoryStream[numberOfElements]; Parallel.For(0, numberOfElements, i => { FileStream fs = File.OpenRead(fileNames[i]); MemoryStream ms = new MemoryStream(); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, (int)fs.Length); ms.Write(buffer, 0, (int)fs.Length); narc.Elements[i] = ms; fs.Close(); }); return narc; } public void Save(String filePath) { uint fileSizeOffset, fileImageSizeOffset, curOffset; BinaryWriter bw = new BinaryWriter(File.Create(filePath)); // Write NARC Section bw.Write(NARC_FILE_MAGIC_NUM); bw.Write(0x0100FFFE); fileSizeOffset = (uint)bw.BaseStream.Position; bw.Write((UInt32)0x0); bw.Write((ushort)16); //full size of header section bw.Write((ushort)3); //the number of sections in the header // Write FATB Section bw.Write(0x46415442); // "BTAF" bw.Write((UInt32)(FILE_ALLOCATION_TABLE_HEADER_LENGTH + Elements.Length * FILE_ALLOCATION_TABLE_ELEMENT_LENGTH)); bw.Write((UInt32)Elements.Length); // Number of elements curOffset = 0; for (int i = 0; i < Elements.Length; i++) { while (curOffset % 4 != 0) { curOffset++; // Force offsets to be a multiple of 4 } bw.Write(curOffset); curOffset += (uint)Elements[i].Length; bw.Write(curOffset); } // Write FNTB Section (No names, sorry =( ) bw.Write(0x464E5442); //"BTNF" bw.Write(0x10); //FNTB Size bw.Write(0x4); //the offset of the first name directory bw.Write(0x10000); //filler data describing a file at position 0 with 1 directory in the archive // Write FIMG Section bw.Write(0x46494D47); // "GMIF" fileImageSizeOffset = (uint)bw.BaseStream.Position; bw.Write((UInt32)0x0); curOffset = 0; byte[] buffer; for (int i = 0; i < Elements.Length; i++) { while (curOffset % 4 != 0) { // Force offsets to be a multiple of 4 bw.Write((Byte)0xFF); curOffset++; } // Data writin' buffer = new byte[Elements[i].Length]; Elements[i].Seek(0, SeekOrigin.Begin); Elements[i].Read(buffer, 0, (int)Elements[i].Length); bw.Write(buffer, 0, (int)Elements[i].Length); curOffset += (uint)Elements[i].Length; } // Writes sizes int fileSize = (int)bw.BaseStream.Position; bw.Seek((int)fileSizeOffset, SeekOrigin.Begin); // File size bw.Write((UInt32)fileSize); bw.Seek((int)fileImageSizeOffset, SeekOrigin.Begin); // seeks back to FIMG size bw.Write((UInt32)curOffset + FILE_IMAGE_HEADER_SIZE); // FIMG size == Last end offset + File image header size bw.Close(); } public void ExtractToFolder(String dirPath, string extension = null) { if ( string.IsNullOrWhiteSpace(dirPath) ) { MessageBox.Show("Dir path + \"" + dirPath + "\" is invalid.", "Can't create directory", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (Directory.Exists(dirPath)) { if (Directory.GetFiles(dirPath).Length > 0) { try { if (dirPath.IndexOf(RomInfo.folderSuffix, StringComparison.CurrentCultureIgnoreCase) >= 0) { Directory.Delete(dirPath, true); Console.WriteLine("Deleted DSPRE-related folder \"" + dirPath + "\" without user confirmation."); } else { DialogResult d = MessageBox.Show("Directory \"" + dirPath + "\" already exists and is not empty.\n" + "Do you want to delete its contents?", "Directory not empty", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d.Equals(DialogResult.Yes)) { Directory.Delete(dirPath, true); Console.WriteLine("Deleted non-DSPRE-related folder \"" + dirPath + "\" after user confirmation."); } } } catch (IOException) { MessageBox.Show("NARC has not been extracted.\nCan't delete directory: \n" + dirPath + "\nThis might be a temporary issue.\nMake sure no other process is using it and try again.", "Delete Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } if (!Directory.Exists(dirPath)) { try { Directory.CreateDirectory(dirPath); Console.WriteLine("Created NARC folder \"" + dirPath + "\"."); } catch (IOException) { MessageBox.Show("NARC has not been extracted.\nCan't create directory: \n" + dirPath + "\nThis might be a temporary issue.\nMake sure no other process is using it and try again.", "Creation Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } Parallel.For(0, Elements.Length, i => { string path = Path.Combine(dirPath, i.ToString("D4") + (string.IsNullOrWhiteSpace(extension) ? "" : extension) ); using (BinaryWriter wr = new BinaryWriter(File.Create(path))) { long len = Elements[i].Length; byte[] buffer = new byte[len]; Elements[i].Seek(0, SeekOrigin.Begin); Elements[i].Read(buffer, 0, (int)len); wr.Write(buffer); } }); } public void Free() { // Libera todos los recursos de memoria asociados (cierra los streams) Parallel.For(0, Elements.Length, i => { Elements[i].Close(); }); } public MemoryStream this[int elemIndex] { get { return Elements[elemIndex]; } set { Elements[elemIndex] = value; } } public int GetElementsLength() { return Elements.Length; } private void ReadOffsets(BinaryReader br) { br.BaseStream.Position = FILE_ALLOCATION_TABLE_NUM_ELEMENTS_OFFSET; FileNameTableOffset = (int)br.ReadUInt32() * FILE_ALLOCATION_TABLE_ELEMENT_LENGTH + FILE_ALLOCATION_TABLE_OFFSET + FILE_ALLOCATION_TABLE_HEADER_LENGTH; br.BaseStream.Position = FileNameTableOffset + FILE_NAME_TABLE_SIGNATURE_LENGTH; FileImageOffset = (int)br.ReadUInt32() + FileNameTableOffset; } private void ReadElements(BinaryReader br) { uint numberOfElements; uint[] startOffsets, endOffsets; // Create array of elements br.BaseStream.Position = FILE_ALLOCATION_TABLE_NUM_ELEMENTS_OFFSET; Elements = new MemoryStream[numberOfElements = br.ReadUInt32()]; // Read offsets of each element startOffsets = new uint[numberOfElements]; endOffsets = new uint[numberOfElements]; br.BaseStream.Position = FILE_ALLOCATION_TABLE_OFFSET + FILE_ALLOCATION_TABLE_HEADER_LENGTH; for (int i = 0; i < numberOfElements; i++) { startOffsets[i] = br.ReadUInt32(); endOffsets[i] = br.ReadUInt32(); } // Read elements for(int i = 0; i < numberOfElements; i++) { br.BaseStream.Position = FileImageOffset + startOffsets[i] + FILE_IMAGE_HEADER_SIZE; byte[] buffer = new byte[endOffsets[i] - startOffsets[i]]; br.Read(buffer, 0, (int)(endOffsets[i] - startOffsets[i])); Elements[i] = new MemoryStream(buffer); } } } } ================================================ FILE: DS_Map/OffsetPictureBox.cs ================================================ using System; using System.Drawing; using System.Windows.Forms; namespace DSPRE { public partial class OffsetPictureBox : PictureBox { public float offsX { get; private set; } = 0; public float offsY { get; private set; } = 0; public bool invertDrag { get; set; } = false; bool dragging; private Point dragStart = new Point(0, 0); protected override void OnPaint(PaintEventArgs pe) { if (this.Image != null) { pe.Graphics.TranslateTransform(offsX, offsY); } base.OnPaint(pe); } protected override void OnMouseDown(MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } dragStart.X = e.X; dragStart.Y = e.Y; dragging = true; this.OnMouseMove(e); base.OnMouseDown(e); } protected override void OnMouseMove(MouseEventArgs e) { if (!dragging || this.Image is null) { return; } if (e.Button == MouseButtons.Left) { this.DrawTranslate(dragStart.X - e.X, dragStart.Y - e.Y); dragStart.X = e.X; dragStart.Y = e.Y; this.Invalidate(); } else { Console.WriteLine(e.Delta); //if (e.Delta > 0) { // if (scalingTrackBar.Value < scalingTrackBar.Maximum) { // scalingTrackBar.Value += (e.Delta > 0 ? 1 : -1); // } //} else { // if (scalingTrackBar.Value > scalingTrackBar.Minimum) { // scalingTrackBar.Value += (e.Delta > 0 ? 1 : -1); // } //} } base.OnMouseMove(e); } protected override void OnMouseUp(MouseEventArgs e) { dragging = false; } public void DrawAt(float offsX, float offsY) { this.offsX = offsX; this.offsY = offsY; this.Invalidate(); } public void DrawTranslate(float incrementX, float incrementY) { if (invertDrag) { DrawAt(this.offsX - incrementX, this.offsY - incrementY); } else { DrawAt(this.offsX + incrementX, this.offsY + incrementY); } } public void RedrawCentered() => DrawAt(0, 0); } } ================================================ FILE: DS_Map/OverlayEditor.Designer.cs ================================================ namespace DSPRE { partial class OverlayEditor { /// /// 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(OverlayEditor)); this.overlayDataGrid = new System.Windows.Forms.DataGridView(); this.isCompressedButton = new System.Windows.Forms.Button(); this.isMarkedCompressedButton = new System.Windows.Forms.Button(); this.saveChangesButton = new System.Windows.Forms.Button(); this.revertChangesButton = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.overlayDataGrid)).BeginInit(); this.SuspendLayout(); // // overlayDataGrid // this.overlayDataGrid.AllowUserToAddRows = false; this.overlayDataGrid.AllowUserToDeleteRows = false; this.overlayDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.overlayDataGrid.Location = new System.Drawing.Point(12, 12); this.overlayDataGrid.Name = "overlayDataGrid"; this.overlayDataGrid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; this.overlayDataGrid.Size = new System.Drawing.Size(517, 271); this.overlayDataGrid.TabIndex = 0; this.overlayDataGrid.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.overlayDataGrid_CellFormatting); this.overlayDataGrid.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.overlayDataGrid_CellValueChanged); this.overlayDataGrid.SelectionChanged += new System.EventHandler(this.overlayDataGrid_SelectionChanged); // // isCompressedButton // this.isCompressedButton.Location = new System.Drawing.Point(13, 290); this.isCompressedButton.Name = "isCompressedButton"; this.isCompressedButton.Size = new System.Drawing.Size(127, 42); this.isCompressedButton.TabIndex = 1; this.isCompressedButton.Text = "Compress/Decompress All"; this.isCompressedButton.UseVisualStyleBackColor = true; this.isCompressedButton.Click += new System.EventHandler(this.isCompressedButton_Click); // // isMarkedCompressedButton // this.isMarkedCompressedButton.Location = new System.Drawing.Point(146, 290); this.isMarkedCompressedButton.Name = "isMarkedCompressedButton"; this.isMarkedCompressedButton.Size = new System.Drawing.Size(123, 43); this.isMarkedCompressedButton.TabIndex = 2; this.isMarkedCompressedButton.Text = "Mark/Unmark Compression All"; this.isMarkedCompressedButton.UseVisualStyleBackColor = true; this.isMarkedCompressedButton.Click += new System.EventHandler(this.isMarkedCompressedButton_Click); // // saveChangesButton // this.saveChangesButton.Location = new System.Drawing.Point(428, 290); this.saveChangesButton.Name = "saveChangesButton"; this.saveChangesButton.Size = new System.Drawing.Size(101, 42); this.saveChangesButton.TabIndex = 3; this.saveChangesButton.Text = "Save Changes"; this.saveChangesButton.UseVisualStyleBackColor = true; this.saveChangesButton.Click += new System.EventHandler(this.saveChangesButton_Click); // // revertChangesButton // this.revertChangesButton.Location = new System.Drawing.Point(310, 290); this.revertChangesButton.Name = "revertChangesButton"; this.revertChangesButton.Size = new System.Drawing.Size(112, 42); this.revertChangesButton.TabIndex = 4; this.revertChangesButton.Text = "Revert Current Changes"; this.revertChangesButton.UseVisualStyleBackColor = true; this.revertChangesButton.Click += new System.EventHandler(this.revertChangesButton_Click); // // OverlayEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(539, 344); this.Controls.Add(this.revertChangesButton); this.Controls.Add(this.saveChangesButton); this.Controls.Add(this.isMarkedCompressedButton); this.Controls.Add(this.isCompressedButton); this.Controls.Add(this.overlayDataGrid); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "OverlayEditor"; this.Text = "OverlayEditor"; ((System.ComponentModel.ISupportInitialize)(this.overlayDataGrid)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.DataGridView overlayDataGrid; private System.Windows.Forms.Button isCompressedButton; private System.Windows.Forms.Button isMarkedCompressedButton; private System.Windows.Forms.Button saveChangesButton; private System.Windows.Forms.Button revertChangesButton; } } ================================================ FILE: DS_Map/OverlayEditor.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 static ScintillaNET.Style; namespace DSPRE { public partial class OverlayEditor : Form { private List overlays; private bool currentValComp = true; private bool currentValMark = true; public OverlayEditor() { InitializeComponent(); overlays = new List(); int numOverlays = OverlayUtils.OverlayTable.GetNumberOfOverlays(); for (int i = 0; i < numOverlays; i++) { Overlay ovl = new Overlay(); ovl.number = i; ovl.isCompressed = OverlayUtils.IsCompressed(i); ovl.isMarkedCompressed = OverlayUtils.OverlayTable.IsDefaultCompressed(i); ovl.RAMAddress = OverlayUtils.OverlayTable.GetRAMAddress(i); ovl.uncompressedSize = OverlayUtils.OverlayTable.GetUncompressedSize(i); overlays.Add(ovl); } overlayDataGrid.DataSource = overlays; overlayDataGrid.Columns[0].HeaderText = "Overlay ID"; overlayDataGrid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader; overlayDataGrid.AllowUserToResizeColumns = false; overlayDataGrid.Columns[1].HeaderText = "Compressed"; overlayDataGrid.Columns[2].HeaderText = "Marked Compressed"; overlayDataGrid.Columns[3].HeaderText = "RAM Address"; overlayDataGrid.Columns[4].HeaderText = "Uncompressed Size"; overlayDataGrid.Columns[0].ReadOnly = true; overlayDataGrid.Columns[3].ReadOnly = true; overlayDataGrid.Columns[4].ReadOnly = true; } private void isMarkedCompressedButton_Click(object sender, EventArgs e) { foreach (DataGridViewRow r in overlayDataGrid.Rows) { r.Cells[2].Value = currentValMark; } currentValMark = !currentValMark; } private void isCompressedButton_Click(object sender, EventArgs e) { foreach (DataGridViewRow r in overlayDataGrid.Rows) { r.Cells[1].Value = currentValComp; } currentValComp = !currentValComp; } private void revertChangesButton_Click(object sender, EventArgs e) { overlays = new List(); int numOverlays = OverlayUtils.OverlayTable.GetNumberOfOverlays(); for (int i = 0; i < numOverlays; i++) { Overlay ovl = new Overlay(); ovl.number = i; ovl.isCompressed = OverlayUtils.IsCompressed(i); ovl.isMarkedCompressed = OverlayUtils.OverlayTable.IsDefaultCompressed(i); ovl.RAMAddress = OverlayUtils.OverlayTable.GetRAMAddress(i); ovl.uncompressedSize = OverlayUtils.OverlayTable.GetUncompressedSize(i); overlays.Add(ovl); } overlayDataGrid.DataSource = overlays; } private void overlayDataGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 3 && e.Value != null) { long value = 0; if (long.TryParse(e.Value.ToString(), out value)) { e.Value = "0x" + value.ToString("X"); e.FormattingApplied = true; } } } private void saveChangesButton_Click(object sender, EventArgs e) { // This whole function needs proper optimizing, im just making dumb lists List originalOverlays = new List(); int numOverlays = OverlayUtils.OverlayTable.GetNumberOfOverlays(); for (int i = 0; i < numOverlays; i++) { Overlay ovl = new Overlay(); ovl.number = i; ovl.isCompressed = OverlayUtils.IsCompressed(i); ovl.isMarkedCompressed = OverlayUtils.OverlayTable.IsDefaultCompressed(i); ovl.RAMAddress = OverlayUtils.OverlayTable.GetRAMAddress(i); ovl.uncompressedSize = OverlayUtils.OverlayTable.GetUncompressedSize(i); originalOverlays.Add(ovl); } List modifiedNumbers = new List(); List modifiedOverlays = new List(); for (int i = 0; i < originalOverlays.Count; i++) { Overlay originalOverlay = originalOverlays[i]; Overlay newOverlay = overlays[i]; // Compare properties if (originalOverlay.isCompressed != newOverlay.isCompressed || originalOverlay.isMarkedCompressed != newOverlay.isMarkedCompressed) { modifiedOverlays.Add(newOverlay); modifiedNumbers.Add(newOverlay.number.ToString()); } } if(FindMismatches(false)) { MessageBox.Show("There are some overlays in a compression state that does not match the set value for compression in the y9 table.\n" + "This may cause errors or lack of usability on hardware.\n" + "You can find the mismatched cells coloured in RED.\nThis message is purely informational.", "Compression Mark Mismatch", MessageBoxButtons.OK, MessageBoxIcon.Information); } DialogResult d = MessageBox.Show("This operation will modify the following overlays: " + Environment.NewLine + String.Join(", ", modifiedNumbers) + "\nProceed?", "Confirmation required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { foreach (Overlay overlay in modifiedOverlays) { OverlayUtils.OverlayTable.SetDefaultCompressed(overlay.number, overlay.isMarkedCompressed); if (overlay.isCompressed && !OverlayUtils.IsCompressed(overlay.number)) OverlayUtils.Compress(overlay.number); if (!overlay.isCompressed && OverlayUtils.IsCompressed(overlay.number)) OverlayUtils.Decompress(overlay.number); } } } private bool FindMismatches(bool paintThem = true) { foreach (DataGridViewRow row in overlayDataGrid.Rows) { if ((bool)row.Cells[1].Value != (bool)row.Cells[2].Value) { if (paintThem) { row.Cells[1].Style.BackColor = Color.Red; row.Cells[2].Style.BackColor = Color.Red; } else { return true; } } else { if (paintThem) { row.Cells[1].Style.BackColor = Color.White; row.Cells[2].Style.BackColor = Color.White; } } } return false; } private void overlayDataGrid_SelectionChanged(object sender, EventArgs e) { overlayDataGrid.ClearSelection(); } private void overlayDataGrid_CellValueChanged(object sender, DataGridViewCellEventArgs e) { FindMismatches(); } } public class Overlay { public int number { get; set; } public bool isCompressed { get; set; } public bool isMarkedCompressed { get; set; } public uint RAMAddress { get; set; } public uint uncompressedSize { get; set; } } } ================================================ FILE: DS_Map/OverlayEditor.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 AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/PatchToolboxDialog.Designer.cs ================================================ namespace DSPRE { partial class PatchToolboxDialog { /// /// 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(PatchToolboxDialog)); this.applyItemStandardizeButton = new System.Windows.Forms.Button(); this.arm9expansionTextLBL = new System.Windows.Forms.Label(); this.arm9expansionLBL = new System.Windows.Forms.Label(); this.applyARM9ExpansionButton = new System.Windows.Forms.Button(); this.BDHCamPatchTextLBL = new System.Windows.Forms.Label(); this.BDHCamPatchLBL = new System.Windows.Forms.Label(); this.BDHCamPatchButton = new System.Windows.Forms.Button(); this.label7 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.namesToSentenceCaseButton = new System.Windows.Forms.Button(); this.overlay1uncompressedLBL = new System.Windows.Forms.Label(); this.overlay1patchtextLBL = new System.Windows.Forms.Label(); this.overlay1uncomprButton = new System.Windows.Forms.Button(); this.BDHCamARM9requiredLBL = new System.Windows.Forms.Label(); this.arm9patchCB = new System.Windows.Forms.PictureBox(); this.overlay1CB = new System.Windows.Forms.PictureBox(); this.BDHCamCB = new System.Windows.Forms.PictureBox(); this.sentenceCaseCB = new System.Windows.Forms.PictureBox(); this.itemNumbersCB = new System.Windows.Forms.PictureBox(); this.standardizePatchLBL = new System.Windows.Forms.Label(); this.standardizePatchTextLBL = new System.Windows.Forms.Label(); this.expandedMatrixCB = new System.Windows.Forms.PictureBox(); this.matrixExpansionTextLBL = new System.Windows.Forms.Label(); this.matrixExpansionLBL = new System.Windows.Forms.Label(); this.expandMatrixButton = new System.Windows.Forms.Button(); this.repointScrcmdCB = new System.Windows.Forms.PictureBox(); this.repointScrcmdTextLBL = new System.Windows.Forms.Label(); this.repointScrcmdLBL = new System.Windows.Forms.Label(); this.repointScrcmdButton = new System.Windows.Forms.Button(); this.scrcmdARM9requiredLBL = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.dynamicHeadersPatchCB = new System.Windows.Forms.PictureBox(); this.dynamicHeadersTextLBL = new System.Windows.Forms.Label(); this.dynamicHeadersLBL = new System.Windows.Forms.Label(); this.applyDynamicHeadersButton = new System.Windows.Forms.Button(); this.disableTextureAnimationsCB = new System.Windows.Forms.PictureBox(); this.disableTextureAnimationsTextLBL = new System.Windows.Forms.Label(); this.disableTextureAnimationsLBL = new System.Windows.Forms.Label(); this.disableTextureAnimationsButton = new System.Windows.Forms.Button(); this.expandTrainerNamesCB = new System.Windows.Forms.PictureBox(); this.expandTrainerNamesTextLBL = new System.Windows.Forms.Label(); this.expandTrainerNamesLBL = new System.Windows.Forms.Label(); this.expandTrainerNamesButton = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.arm9patchCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.overlay1CB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.BDHCamCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.sentenceCaseCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.itemNumbersCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.expandedMatrixCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.repointScrcmdCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dynamicHeadersPatchCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.disableTextureAnimationsCB)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.expandTrainerNamesCB)).BeginInit(); this.SuspendLayout(); // // applyItemStandardizeButton // this.applyItemStandardizeButton.Location = new System.Drawing.Point(335, 370); this.applyItemStandardizeButton.Name = "applyItemStandardizeButton"; this.applyItemStandardizeButton.Size = new System.Drawing.Size(100, 50); this.applyItemStandardizeButton.TabIndex = 0; this.applyItemStandardizeButton.Text = "Apply Patch"; this.applyItemStandardizeButton.UseVisualStyleBackColor = true; this.applyItemStandardizeButton.Click += new System.EventHandler(this.ApplyItemStandardizeButton_Click); // // arm9expansionTextLBL // this.arm9expansionTextLBL.Location = new System.Drawing.Point(15, 34); this.arm9expansionTextLBL.Name = "arm9expansionTextLBL"; this.arm9expansionTextLBL.Size = new System.Drawing.Size(288, 58); this.arm9expansionTextLBL.TabIndex = 5; this.arm9expansionTextLBL.Text = resources.GetString("arm9expansionTextLBL.Text"); this.arm9expansionTextLBL.UseMnemonic = false; // // arm9expansionLBL // this.arm9expansionLBL.AutoSize = true; this.arm9expansionLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.arm9expansionLBL.Location = new System.Drawing.Point(15, 19); this.arm9expansionLBL.Name = "arm9expansionLBL"; this.arm9expansionLBL.Size = new System.Drawing.Size(103, 13); this.arm9expansionLBL.TabIndex = 4; this.arm9expansionLBL.Text = "ARM9 Expansion"; // // applyARM9ExpansionButton // this.applyARM9ExpansionButton.Location = new System.Drawing.Point(335, 29); this.applyARM9ExpansionButton.Name = "applyARM9ExpansionButton"; this.applyARM9ExpansionButton.Size = new System.Drawing.Size(100, 50); this.applyARM9ExpansionButton.TabIndex = 3; this.applyARM9ExpansionButton.Text = "Expand ARM9"; this.applyARM9ExpansionButton.UseVisualStyleBackColor = true; this.applyARM9ExpansionButton.Click += new System.EventHandler(this.ApplyARM9ExpansionButton_Click); // // BDHCamPatchTextLBL // this.BDHCamPatchTextLBL.Location = new System.Drawing.Point(15, 187); this.BDHCamPatchTextLBL.Name = "BDHCamPatchTextLBL"; this.BDHCamPatchTextLBL.Size = new System.Drawing.Size(293, 67); this.BDHCamPatchTextLBL.TabIndex = 8; this.BDHCamPatchTextLBL.Text = "Adds Dynamic BDHC Cameras to current ROM.\r\nWith this patch, you have more control" + " over \r\nthe game camera\'s rotation and position.\r\nYou will need Trifindo\'s PDSMS" + "\r\nin order to make BDHCAM Files.\r\n"; this.BDHCamPatchTextLBL.UseMnemonic = false; // // BDHCamPatchLBL // this.BDHCamPatchLBL.AutoSize = true; this.BDHCamPatchLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.BDHCamPatchLBL.Location = new System.Drawing.Point(14, 172); this.BDHCamPatchLBL.Name = "BDHCamPatchLBL"; this.BDHCamPatchLBL.Size = new System.Drawing.Size(107, 13); this.BDHCamPatchLBL.TabIndex = 7; this.BDHCamPatchLBL.Text = "Dynamic Cameras"; // // BDHCamPatchButton // this.BDHCamPatchButton.Location = new System.Drawing.Point(335, 186); this.BDHCamPatchButton.Name = "BDHCamPatchButton"; this.BDHCamPatchButton.Size = new System.Drawing.Size(100, 50); this.BDHCamPatchButton.TabIndex = 6; this.BDHCamPatchButton.Text = "Apply Patch"; this.BDHCamPatchButton.UseVisualStyleBackColor = true; this.BDHCamPatchButton.Click += new System.EventHandler(this.BDHCAMPatchButton_Click); // // label7 // this.label7.Location = new System.Drawing.Point(15, 293); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(293, 49); this.label7.TabIndex = 11; this.label7.Text = "BULBASAUR, IVYSAUR, VENUSAUR...\r\nbecome\r\nBulbasaur, Ivysaur, Venusaur...\r\n"; this.label7.UseMnemonic = false; // // label8 // this.label8.AutoSize = true; this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label8.Location = new System.Drawing.Point(15, 278); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(252, 13); this.label8.TabIndex = 10; this.label8.Text = "Convert Pokémon names to Sentence Case"; // // namesToSentenceCaseButton // this.namesToSentenceCaseButton.Location = new System.Drawing.Point(335, 285); this.namesToSentenceCaseButton.Name = "namesToSentenceCaseButton"; this.namesToSentenceCaseButton.Size = new System.Drawing.Size(100, 50); this.namesToSentenceCaseButton.TabIndex = 9; this.namesToSentenceCaseButton.Text = "Apply Patch"; this.namesToSentenceCaseButton.UseVisualStyleBackColor = true; this.namesToSentenceCaseButton.Click += new System.EventHandler(this.SentenceCasePatchButton_Click); // // overlay1uncompressedLBL // this.overlay1uncompressedLBL.AutoSize = true; this.overlay1uncompressedLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.overlay1uncompressedLBL.Location = new System.Drawing.Point(15, 107); this.overlay1uncompressedLBL.Name = "overlay1uncompressedLBL"; this.overlay1uncompressedLBL.Size = new System.Drawing.Size(217, 13); this.overlay1uncompressedLBL.TabIndex = 12; this.overlay1uncompressedLBL.Text = "Configure Overlay1 as uncompressed"; // // overlay1patchtextLBL // this.overlay1patchtextLBL.Location = new System.Drawing.Point(15, 122); this.overlay1patchtextLBL.Name = "overlay1patchtextLBL"; this.overlay1patchtextLBL.Size = new System.Drawing.Size(293, 29); this.overlay1patchtextLBL.TabIndex = 13; this.overlay1patchtextLBL.Text = "Overlay1 won\'t have to be compressed again.\r\nThe operation is reversible.\r\n"; this.overlay1patchtextLBL.UseMnemonic = false; // // overlay1uncomprButton // this.overlay1uncomprButton.Location = new System.Drawing.Point(335, 104); this.overlay1uncomprButton.Name = "overlay1uncomprButton"; this.overlay1uncomprButton.Size = new System.Drawing.Size(100, 50); this.overlay1uncomprButton.TabIndex = 14; this.overlay1uncomprButton.Text = "Apply Patch"; this.overlay1uncomprButton.UseVisualStyleBackColor = true; this.overlay1uncomprButton.Click += new System.EventHandler(this.overlay1uncomprButton_Click); // // BDHCamARM9requiredLBL // this.BDHCamARM9requiredLBL.AutoSize = true; this.BDHCamARM9requiredLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.BDHCamARM9requiredLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0))))); this.BDHCamARM9requiredLBL.Location = new System.Drawing.Point(118, 171); this.BDHCamARM9requiredLBL.Name = "BDHCamARM9requiredLBL"; this.BDHCamARM9requiredLBL.Size = new System.Drawing.Size(165, 13); this.BDHCamARM9requiredLBL.TabIndex = 15; this.BDHCamARM9requiredLBL.Text = "(Requires ARM9 Expansion)"; // // arm9patchCB // this.arm9patchCB.Image = ((System.Drawing.Image)(resources.GetObject("arm9patchCB.Image"))); this.arm9patchCB.Location = new System.Drawing.Point(309, 45); this.arm9patchCB.Name = "arm9patchCB"; this.arm9patchCB.Size = new System.Drawing.Size(20, 20); this.arm9patchCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.arm9patchCB.TabIndex = 16; this.arm9patchCB.TabStop = false; this.arm9patchCB.Visible = false; // // overlay1CB // this.overlay1CB.Image = global::DSPRE.Properties.Resources.checkmark; this.overlay1CB.Location = new System.Drawing.Point(309, 119); this.overlay1CB.Name = "overlay1CB"; this.overlay1CB.Size = new System.Drawing.Size(20, 20); this.overlay1CB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.overlay1CB.TabIndex = 17; this.overlay1CB.TabStop = false; this.overlay1CB.Visible = false; // // BDHCamCB // this.BDHCamCB.Image = ((System.Drawing.Image)(resources.GetObject("BDHCamCB.Image"))); this.BDHCamCB.Location = new System.Drawing.Point(309, 202); this.BDHCamCB.Name = "BDHCamCB"; this.BDHCamCB.Size = new System.Drawing.Size(20, 20); this.BDHCamCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.BDHCamCB.TabIndex = 18; this.BDHCamCB.TabStop = false; this.BDHCamCB.Visible = false; // // sentenceCaseCB // this.sentenceCaseCB.Image = ((System.Drawing.Image)(resources.GetObject("sentenceCaseCB.Image"))); this.sentenceCaseCB.Location = new System.Drawing.Point(309, 300); this.sentenceCaseCB.Name = "sentenceCaseCB"; this.sentenceCaseCB.Size = new System.Drawing.Size(20, 20); this.sentenceCaseCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.sentenceCaseCB.TabIndex = 19; this.sentenceCaseCB.TabStop = false; this.sentenceCaseCB.Visible = false; // // itemNumbersCB // this.itemNumbersCB.Image = ((System.Drawing.Image)(resources.GetObject("itemNumbersCB.Image"))); this.itemNumbersCB.Location = new System.Drawing.Point(309, 383); this.itemNumbersCB.Name = "itemNumbersCB"; this.itemNumbersCB.Size = new System.Drawing.Size(20, 20); this.itemNumbersCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.itemNumbersCB.TabIndex = 20; this.itemNumbersCB.TabStop = false; this.itemNumbersCB.Visible = false; // // standardizePatchLBL // this.standardizePatchLBL.AutoSize = true; this.standardizePatchLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.standardizePatchLBL.Location = new System.Drawing.Point(15, 356); this.standardizePatchLBL.Name = "standardizePatchLBL"; this.standardizePatchLBL.Size = new System.Drawing.Size(155, 13); this.standardizePatchLBL.TabIndex = 1; this.standardizePatchLBL.Text = "Standardize Item Numbers"; // // standardizePatchTextLBL // this.standardizePatchTextLBL.Location = new System.Drawing.Point(15, 371); this.standardizePatchTextLBL.Name = "standardizePatchTextLBL"; this.standardizePatchTextLBL.Size = new System.Drawing.Size(239, 60); this.standardizePatchTextLBL.TabIndex = 2; this.standardizePatchTextLBL.Text = "Rearranges the GiveItem scripts to follow the default index order.\r\nAllows to con" + "figure any item as a Ground Item in the Event Editor. "; this.standardizePatchTextLBL.UseMnemonic = false; // // expandedMatrixCB // this.expandedMatrixCB.Image = ((System.Drawing.Image)(resources.GetObject("expandedMatrixCB.Image"))); this.expandedMatrixCB.Location = new System.Drawing.Point(309, 462); this.expandedMatrixCB.Name = "expandedMatrixCB"; this.expandedMatrixCB.Size = new System.Drawing.Size(20, 20); this.expandedMatrixCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.expandedMatrixCB.TabIndex = 24; this.expandedMatrixCB.TabStop = false; this.expandedMatrixCB.Visible = false; // // matrixExpansionTextLBL // this.matrixExpansionTextLBL.Location = new System.Drawing.Point(15, 473); this.matrixExpansionTextLBL.Name = "matrixExpansionTextLBL"; this.matrixExpansionTextLBL.Size = new System.Drawing.Size(239, 35); this.matrixExpansionTextLBL.TabIndex = 23; this.matrixExpansionTextLBL.Text = "Allows expansion of Matrix 0 up to twice its size.\r\n"; this.matrixExpansionTextLBL.UseMnemonic = false; // // matrixExpansionLBL // this.matrixExpansionLBL.AutoSize = true; this.matrixExpansionLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.matrixExpansionLBL.Location = new System.Drawing.Point(15, 458); this.matrixExpansionLBL.Name = "matrixExpansionLBL"; this.matrixExpansionLBL.Size = new System.Drawing.Size(98, 13); this.matrixExpansionLBL.TabIndex = 22; this.matrixExpansionLBL.Text = "Expand Matrix 0"; // // expandMatrixButton // this.expandMatrixButton.Location = new System.Drawing.Point(335, 449); this.expandMatrixButton.Name = "expandMatrixButton"; this.expandMatrixButton.Size = new System.Drawing.Size(100, 50); this.expandMatrixButton.TabIndex = 21; this.expandMatrixButton.Text = "Apply Patch"; this.expandMatrixButton.UseVisualStyleBackColor = true; this.expandMatrixButton.Click += new System.EventHandler(this.expandMatrixButton_Click); // // repointScrcmdCB // this.repointScrcmdCB.Image = ((System.Drawing.Image)(resources.GetObject("repointScrcmdCB.Image"))); this.repointScrcmdCB.Location = new System.Drawing.Point(803, 49); this.repointScrcmdCB.Name = "repointScrcmdCB"; this.repointScrcmdCB.Size = new System.Drawing.Size(20, 20); this.repointScrcmdCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.repointScrcmdCB.TabIndex = 28; this.repointScrcmdCB.TabStop = false; this.repointScrcmdCB.Visible = false; // // repointScrcmdTextLBL // this.repointScrcmdTextLBL.Location = new System.Drawing.Point(481, 48); this.repointScrcmdTextLBL.Name = "repointScrcmdTextLBL"; this.repointScrcmdTextLBL.Size = new System.Drawing.Size(288, 37); this.repointScrcmdTextLBL.TabIndex = 27; this.repointScrcmdTextLBL.Text = "Moves the Script Commands Table to a new location in the Synthetic Overlay and re" + "assigns the pointer accordingly."; this.repointScrcmdTextLBL.UseMnemonic = false; // // repointScrcmdLBL // this.repointScrcmdLBL.AutoSize = true; this.repointScrcmdLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.repointScrcmdLBL.Location = new System.Drawing.Point(481, 30); this.repointScrcmdLBL.Name = "repointScrcmdLBL"; this.repointScrcmdLBL.Size = new System.Drawing.Size(157, 13); this.repointScrcmdLBL.TabIndex = 26; this.repointScrcmdLBL.Text = "Move ScrCommands Table"; // // repointScrcmdButton // this.repointScrcmdButton.Location = new System.Drawing.Point(829, 33); this.repointScrcmdButton.Name = "repointScrcmdButton"; this.repointScrcmdButton.Size = new System.Drawing.Size(100, 50); this.repointScrcmdButton.TabIndex = 25; this.repointScrcmdButton.Text = "Repoint Table"; this.repointScrcmdButton.UseVisualStyleBackColor = true; // // scrcmdARM9requiredLBL // this.scrcmdARM9requiredLBL.AutoSize = true; this.scrcmdARM9requiredLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.scrcmdARM9requiredLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0))))); this.scrcmdARM9requiredLBL.Location = new System.Drawing.Point(635, 30); this.scrcmdARM9requiredLBL.Name = "scrcmdARM9requiredLBL"; this.scrcmdARM9requiredLBL.Size = new System.Drawing.Size(165, 13); this.scrcmdARM9requiredLBL.TabIndex = 29; this.scrcmdARM9requiredLBL.Text = "(Requires ARM9 Expansion)"; // // label1 // this.label1.Location = new System.Drawing.Point(481, 81); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(288, 37); this.label1.TabIndex = 30; this.label1.Text = "[ B E T A | Needs testing]"; this.label1.UseMnemonic = false; // // label2 // this.label2.Location = new System.Drawing.Point(481, 188); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(288, 37); this.label2.TabIndex = 34; this.label2.Text = "[ B E T A | Needs testing]"; this.label2.UseMnemonic = false; // // dynamicHeadersPatchCB // this.dynamicHeadersPatchCB.Image = ((System.Drawing.Image)(resources.GetObject("dynamicHeadersPatchCB.Image"))); this.dynamicHeadersPatchCB.Location = new System.Drawing.Point(803, 140); this.dynamicHeadersPatchCB.Name = "dynamicHeadersPatchCB"; this.dynamicHeadersPatchCB.Size = new System.Drawing.Size(20, 20); this.dynamicHeadersPatchCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.dynamicHeadersPatchCB.TabIndex = 33; this.dynamicHeadersPatchCB.TabStop = false; this.dynamicHeadersPatchCB.Visible = false; // // dynamicHeadersTextLBL // this.dynamicHeadersTextLBL.Location = new System.Drawing.Point(481, 139); this.dynamicHeadersTextLBL.Name = "dynamicHeadersTextLBL"; this.dynamicHeadersTextLBL.Size = new System.Drawing.Size(288, 59); this.dynamicHeadersTextLBL.TabIndex = 32; this.dynamicHeadersTextLBL.Text = "Makes the ROM load headers dynamically from a NARC, removing the need for a heade" + "r table in arm9.bin\r\nThis patch is necessary to add new headers.\r\n "; this.dynamicHeadersTextLBL.UseMnemonic = false; // // dynamicHeadersLBL // this.dynamicHeadersLBL.AutoSize = true; this.dynamicHeadersLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.dynamicHeadersLBL.Location = new System.Drawing.Point(481, 122); this.dynamicHeadersLBL.Name = "dynamicHeadersLBL"; this.dynamicHeadersLBL.Size = new System.Drawing.Size(160, 13); this.dynamicHeadersLBL.TabIndex = 31; this.dynamicHeadersLBL.Text = "Dynamic Header Allocation"; // // applyDynamicHeadersButton // this.applyDynamicHeadersButton.Location = new System.Drawing.Point(829, 131); this.applyDynamicHeadersButton.Name = "applyDynamicHeadersButton"; this.applyDynamicHeadersButton.Size = new System.Drawing.Size(100, 50); this.applyDynamicHeadersButton.TabIndex = 35; this.applyDynamicHeadersButton.Text = "Apply Patch"; this.applyDynamicHeadersButton.UseVisualStyleBackColor = true; this.applyDynamicHeadersButton.Click += new System.EventHandler(this.dynamicHeadersButton_Click); // // disableTextureAnimationsCB // this.disableTextureAnimationsCB.Image = ((System.Drawing.Image)(resources.GetObject("disableTextureAnimationsCB.Image"))); this.disableTextureAnimationsCB.Location = new System.Drawing.Point(803, 238); this.disableTextureAnimationsCB.Name = "disableTextureAnimationsCB"; this.disableTextureAnimationsCB.Size = new System.Drawing.Size(20, 20); this.disableTextureAnimationsCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.disableTextureAnimationsCB.TabIndex = 39; this.disableTextureAnimationsCB.TabStop = false; this.disableTextureAnimationsCB.Visible = false; // // disableTextureAnimationsTextLBL // this.disableTextureAnimationsTextLBL.Location = new System.Drawing.Point(481, 241); this.disableTextureAnimationsTextLBL.Name = "disableTextureAnimationsTextLBL"; this.disableTextureAnimationsTextLBL.Size = new System.Drawing.Size(288, 31); this.disableTextureAnimationsTextLBL.TabIndex = 38; this.disableTextureAnimationsTextLBL.Text = "Sets the Dynamic Textures (Texture Animation) field to 65535 [0xFFFF] for all Are" + "aData files."; this.disableTextureAnimationsTextLBL.UseMnemonic = false; // // disableTextureAnimationsLBL // this.disableTextureAnimationsLBL.AutoSize = true; this.disableTextureAnimationsLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.disableTextureAnimationsLBL.Location = new System.Drawing.Point(481, 226); this.disableTextureAnimationsLBL.Name = "disableTextureAnimationsLBL"; this.disableTextureAnimationsLBL.Size = new System.Drawing.Size(161, 13); this.disableTextureAnimationsLBL.TabIndex = 37; this.disableTextureAnimationsLBL.Text = "Disable Texture Animations"; // // disableTextureAnimationsButton // this.disableTextureAnimationsButton.Location = new System.Drawing.Point(829, 222); this.disableTextureAnimationsButton.Name = "disableTextureAnimationsButton"; this.disableTextureAnimationsButton.Size = new System.Drawing.Size(100, 50); this.disableTextureAnimationsButton.TabIndex = 36; this.disableTextureAnimationsButton.Text = "Apply Patch"; this.disableTextureAnimationsButton.UseVisualStyleBackColor = true; this.disableTextureAnimationsButton.Click += new System.EventHandler(this.disableDynamicTexturesButton_Click); // // expandTrainerNamesCB // this.expandTrainerNamesCB.Image = ((System.Drawing.Image)(resources.GetObject("expandTrainerNamesCB.Image"))); this.expandTrainerNamesCB.Location = new System.Drawing.Point(803, 317); this.expandTrainerNamesCB.Name = "expandTrainerNamesCB"; this.expandTrainerNamesCB.Size = new System.Drawing.Size(20, 20); this.expandTrainerNamesCB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.expandTrainerNamesCB.TabIndex = 43; this.expandTrainerNamesCB.TabStop = false; this.expandTrainerNamesCB.Visible = false; // // expandTrainerNamesTextLBL // this.expandTrainerNamesTextLBL.Location = new System.Drawing.Point(481, 320); this.expandTrainerNamesTextLBL.Name = "expandTrainerNamesTextLBL"; this.expandTrainerNamesTextLBL.Size = new System.Drawing.Size(288, 58); this.expandTrainerNamesTextLBL.TabIndex = 42; this.expandTrainerNamesTextLBL.Text = "Expands trainer names to be up to 16 characters long."; this.expandTrainerNamesTextLBL.UseMnemonic = false; // // expandTrainerNamesLBL // this.expandTrainerNamesLBL.AutoSize = true; this.expandTrainerNamesLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.expandTrainerNamesLBL.Location = new System.Drawing.Point(481, 305); this.expandTrainerNamesLBL.Name = "expandTrainerNamesLBL"; this.expandTrainerNamesLBL.Size = new System.Drawing.Size(135, 13); this.expandTrainerNamesLBL.TabIndex = 41; this.expandTrainerNamesLBL.Text = "Expand Trainer Names"; // // expandTrainerNamesButton // this.expandTrainerNamesButton.Location = new System.Drawing.Point(829, 301); this.expandTrainerNamesButton.Name = "expandTrainerNamesButton"; this.expandTrainerNamesButton.Size = new System.Drawing.Size(100, 50); this.expandTrainerNamesButton.TabIndex = 40; this.expandTrainerNamesButton.Text = "Apply Patch"; this.expandTrainerNamesButton.UseVisualStyleBackColor = true; this.expandTrainerNamesButton.Click += new System.EventHandler(this.expandTrainerNamesButton_Click); // // PatchToolboxDialog // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.ClientSize = new System.Drawing.Size(950, 513); this.Controls.Add(this.expandTrainerNamesCB); this.Controls.Add(this.expandTrainerNamesTextLBL); this.Controls.Add(this.expandTrainerNamesLBL); this.Controls.Add(this.expandTrainerNamesButton); this.Controls.Add(this.disableTextureAnimationsCB); this.Controls.Add(this.disableTextureAnimationsTextLBL); this.Controls.Add(this.disableTextureAnimationsLBL); this.Controls.Add(this.disableTextureAnimationsButton); this.Controls.Add(this.applyDynamicHeadersButton); this.Controls.Add(this.label2); this.Controls.Add(this.dynamicHeadersPatchCB); this.Controls.Add(this.dynamicHeadersTextLBL); this.Controls.Add(this.dynamicHeadersLBL); this.Controls.Add(this.label1); this.Controls.Add(this.scrcmdARM9requiredLBL); this.Controls.Add(this.repointScrcmdCB); this.Controls.Add(this.repointScrcmdTextLBL); this.Controls.Add(this.repointScrcmdLBL); this.Controls.Add(this.repointScrcmdButton); this.Controls.Add(this.expandedMatrixCB); this.Controls.Add(this.matrixExpansionTextLBL); this.Controls.Add(this.matrixExpansionLBL); this.Controls.Add(this.expandMatrixButton); this.Controls.Add(this.itemNumbersCB); this.Controls.Add(this.sentenceCaseCB); this.Controls.Add(this.BDHCamCB); this.Controls.Add(this.overlay1CB); this.Controls.Add(this.arm9patchCB); this.Controls.Add(this.BDHCamARM9requiredLBL); this.Controls.Add(this.overlay1uncomprButton); this.Controls.Add(this.overlay1patchtextLBL); this.Controls.Add(this.overlay1uncompressedLBL); this.Controls.Add(this.label7); this.Controls.Add(this.label8); this.Controls.Add(this.namesToSentenceCaseButton); this.Controls.Add(this.BDHCamPatchTextLBL); this.Controls.Add(this.BDHCamPatchLBL); this.Controls.Add(this.BDHCamPatchButton); this.Controls.Add(this.arm9expansionTextLBL); this.Controls.Add(this.arm9expansionLBL); this.Controls.Add(this.applyARM9ExpansionButton); this.Controls.Add(this.standardizePatchTextLBL); this.Controls.Add(this.standardizePatchLBL); this.Controls.Add(this.applyItemStandardizeButton); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "PatchToolboxDialog"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Patch Toolbox"; ((System.ComponentModel.ISupportInitialize)(this.arm9patchCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.overlay1CB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.BDHCamCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.sentenceCaseCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.itemNumbersCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.expandedMatrixCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.repointScrcmdCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dynamicHeadersPatchCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.disableTextureAnimationsCB)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.expandTrainerNamesCB)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button applyItemStandardizeButton; private System.Windows.Forms.Label arm9expansionTextLBL; private System.Windows.Forms.Label arm9expansionLBL; private System.Windows.Forms.Button applyARM9ExpansionButton; private System.Windows.Forms.Label BDHCamPatchTextLBL; private System.Windows.Forms.Label BDHCamPatchLBL; private System.Windows.Forms.Button BDHCamPatchButton; private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label8; private System.Windows.Forms.Button namesToSentenceCaseButton; private System.Windows.Forms.Label overlay1uncompressedLBL; private System.Windows.Forms.Label overlay1patchtextLBL; private System.Windows.Forms.Button overlay1uncomprButton; private System.Windows.Forms.Label BDHCamARM9requiredLBL; private System.Windows.Forms.PictureBox arm9patchCB; private System.Windows.Forms.PictureBox overlay1CB; private System.Windows.Forms.PictureBox BDHCamCB; private System.Windows.Forms.PictureBox sentenceCaseCB; private System.Windows.Forms.PictureBox itemNumbersCB; private System.Windows.Forms.Label standardizePatchLBL; private System.Windows.Forms.Label standardizePatchTextLBL; private System.Windows.Forms.PictureBox expandedMatrixCB; private System.Windows.Forms.Label matrixExpansionTextLBL; private System.Windows.Forms.Label matrixExpansionLBL; private System.Windows.Forms.Button expandMatrixButton; private System.Windows.Forms.PictureBox repointScrcmdCB; private System.Windows.Forms.Label repointScrcmdTextLBL; private System.Windows.Forms.Label repointScrcmdLBL; private System.Windows.Forms.Button repointScrcmdButton; private System.Windows.Forms.Label scrcmdARM9requiredLBL; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.PictureBox dynamicHeadersPatchCB; private System.Windows.Forms.Label dynamicHeadersTextLBL; private System.Windows.Forms.Label dynamicHeadersLBL; private System.Windows.Forms.Button applyDynamicHeadersButton; private System.Windows.Forms.PictureBox disableTextureAnimationsCB; private System.Windows.Forms.Label disableTextureAnimationsTextLBL; private System.Windows.Forms.Label disableTextureAnimationsLBL; private System.Windows.Forms.Button disableTextureAnimationsButton; private System.Windows.Forms.PictureBox expandTrainerNamesCB; private System.Windows.Forms.Label expandTrainerNamesTextLBL; private System.Windows.Forms.Label expandTrainerNamesLBL; private System.Windows.Forms.Button expandTrainerNamesButton; } } ================================================ FILE: DS_Map/PatchToolboxDialog.cs ================================================ using System; using System.IO; using System.Reflection; using System.Resources; using System.Windows.Forms; using System.Linq; using DSPRE.ROMFiles; using System.Collections.Generic; using DSPRE.Resources.ROMToolboxDB; using DSPRE.Resources; using static DSPRE.RomInfo; using System.Threading.Tasks; using static DSPRE.Resources.ROMToolboxDB.ToolboxDB; using static NSMBe4.ROM; namespace DSPRE { public partial class PatchToolboxDialog : Form { public static uint expandedARMfileID = ToolboxDB.syntheticOverlayFileNumbersDB[RomInfo.gameFamily]; public static bool flag_standardizedItems { get; private set; } = false; public static bool flag_arm9Expanded { get; private set; } = false; public static bool flag_BDHCamPatchApplied { get; private set; } = false; public static bool flag_DynamicHeadersPatchApplied { get; private set; } = false; public static bool flag_MatrixExpansionApplied { get; private set; } = false; public static bool flag_MainComboTableRepointed { get; set; } = false; public static bool flag_TrainerClassBattleTableRepointed { get; set; } = false; public static bool flag_PokemonBattleTableRepointed { get; set; } = false; public static bool flag_TrainerNamesExpanded { get; set; } = false; public static bool overlay1MustBeRestoredFromBackup { get; private set; } = true; public static readonly int expandedTrainerNameLength = 12; #region Constructor public PatchToolboxDialog() { InitializeComponent(); CheckStandardizedItems(); if (RomInfo.gameLanguage == GameLanguages.English || RomInfo.gameLanguage == GameLanguages.Spanish) { CheckARM9ExpansionApplied(); } else { DisableARM9patch("Unsupported\nlanguage"); DisableBDHCamPatch("Unsupported\nlanguage"); DisableScrcmdRepointPatch("Unsupported\nlanguage"); } CheckExpandedTrainerNamesPatchApplied(); switch (RomInfo.gameFamily) { case GameFamilies.DP: DisableOverlay1patch("Unsupported"); DisableDynamicHeadersPatch("Unsupported"); DisableMatrixExpansionPatch("Unsupported"); DisableScrcmdRepointPatch("Unsupported"); DisableKillTextureAnimationsPatch("Unsupported"); break; case GameFamilies.Plat: DisableOverlay1patch("Unsupported"); DisableMatrixExpansionPatch("Unsupported"); DisableScrcmdRepointPatch("Unsupported"); DisableKillTextureAnimationsPatch("Unsupported"); if (RomInfo.gameLanguage == GameLanguages.English || RomInfo.gameLanguage == GameLanguages.Spanish) { CheckBDHCamPatchApplied(); } CheckDynamicHeadersPatchApplied(); break; case GameFamilies.HGSS: if (!OverlayUtils.OverlayTable.IsDefaultCompressed(1)) { DisableOverlay1patch("Already applied"); overlay1CB.Visible = true; } if (RomInfo.gameLanguage == GameLanguages.English || RomInfo.gameLanguage == GameLanguages.Spanish) { CheckBDHCamPatchApplied(); CheckMatrixExpansionApplied(); CheckScrcmdRepointPatchApplied(); } else { DisableMatrixExpansionPatch("Unsupported\nlanguage"); DisableScrcmdRepointPatch("Unsupported\nlanguage"); } CheckDynamicHeadersPatchApplied(); break; } } #region Patch Disable private void DisableOverlay1patch(string reason) { overlay1uncomprButton.Enabled = false; overlay1uncompressedLBL.Enabled = false; overlay1patchtextLBL.Enabled = false; overlay1uncomprButton.Text = reason; } private void DisableBDHCamPatch(string reason) { BDHCamPatchButton.Enabled = false; BDHCamPatchLBL.Enabled = false; BDHCamPatchTextLBL.Enabled = false; BDHCamARM9requiredLBL.Enabled = false; BDHCamPatchButton.Text = reason; } private void DisableARM9patch(string reason) { applyARM9ExpansionButton.Enabled = false; arm9expansionTextLBL.Enabled = false; arm9expansionLBL.Enabled = false; applyARM9ExpansionButton.Text = reason; } private void DisableDynamicHeadersPatch(string reason) { applyDynamicHeadersButton.Enabled = false; dynamicHeadersTextLBL.Enabled = false; dynamicHeadersLBL.Enabled = false; applyDynamicHeadersButton.Text = reason; } private void DisableMatrixExpansionPatch(string reason) { expandMatrixButton.Enabled = false; matrixExpansionLBL.Enabled = false; matrixExpansionTextLBL.Enabled = false; expandMatrixButton.Text = reason; } private void DisableStandardizeItemsPatch(string reason) { applyItemStandardizeButton.Enabled = false; standardizePatchLBL.Enabled = false; standardizePatchTextLBL.Enabled = false; applyItemStandardizeButton.Text = reason; } private void DisableScrcmdRepointPatch(string reason) { repointScrcmdButton.Enabled = false; repointScrcmdLBL.Enabled = false; repointScrcmdTextLBL.Enabled = false; scrcmdARM9requiredLBL.Enabled = false; repointScrcmdButton.Text = reason; } private void DisableKillTextureAnimationsPatch(string reason) { disableTextureAnimationsButton.Enabled = false; disableTextureAnimationsLBL.Enabled = false; disableTextureAnimationsTextLBL.Enabled = false; disableTextureAnimationsButton.Text = reason; } private void DisableTrainerNameExpansionPatch(string reason) { expandTrainerNamesButton.Enabled = false; expandTrainerNamesLBL.Enabled = false; expandTrainerNamesTextLBL.Enabled = false; expandTrainerNamesButton.Text = reason; } #endregion Patch Disable #endregion Constructor #region Patch private static bool CheckFilesArm9ExpansionApplied() { ARM9PatchData data = new ARM9PatchData(); byte[] branchCode = DSUtils.HexStringToByteArray(data.branchString); byte[] branchCodeRead = ARM9.ReadBytes(data.branchOffset, data.branchString.Length / 3 + 1); //Read branchCode if (branchCodeRead.Length != branchCode.Length || !branchCodeRead.SequenceEqual(branchCode)) return false; byte[] initCode = DSUtils.HexStringToByteArray(data.initString); byte[] initCodeRead = ARM9.ReadBytes(data.initOffset, data.initString.Length / 3 + 1); //Read initCode if (initCodeRead.Length != initCode.Length || !initCodeRead.SequenceEqual(initCode)) return false; return true; } public static bool CheckFilesBDHCamPatchApplied() { BDHCAMPatchData data = new BDHCAMPatchData(); byte[] branchCode = DSUtils.HexStringToByteArray(data.branchString); byte[] branchCodeRead = ARM9.ReadBytes(data.branchOffset, branchCode.Length); if (branchCode.Length != branchCodeRead.Length || !branchCode.SequenceEqual(branchCodeRead)) { return false; } string overlayFilePath = OverlayUtils.GetPath(data.overlayNumber); OverlayUtils.Decompress(data.overlayNumber); byte[] overlayCode1 = DSUtils.HexStringToByteArray(data.overlayString1); byte[] overlayCode1Read = DSUtils.ReadFromFile(overlayFilePath, data.overlayOffset1, overlayCode1.Length); if (overlayCode1.Length != overlayCode1Read.Length || !overlayCode1.SequenceEqual(overlayCode1Read)) return false; byte[] overlayCode2 = DSUtils.HexStringToByteArray(data.overlayString2); byte[] overlayCode2Read = DSUtils.ReadFromFile(overlayFilePath, data.overlayOffset2, overlayCode2.Length); //Write new overlayCode1 if (overlayCode2.Length != overlayCode2Read.Length || !overlayCode2.SequenceEqual(overlayCode2Read)) return false; //0 means BDHCAM patch has not been applied String fullFilePath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + PatchToolboxDialog.expandedARMfileID.ToString("D4"); byte[] subroutineRead = DSUtils.ReadFromFile(fullFilePath, BDHCAMPatchData.BDHCamSubroutineOffset, data.subroutine.Length); //Write new overlayCode1 if (data.subroutine.Length != subroutineRead.Length || !data.subroutine.SequenceEqual(subroutineRead)) return false; //0 means BDHCAM patch has not been applied return true; } public static bool CheckFilesMatrixExpansionApplied() { foreach (KeyValuePair kv in ToolboxDB.matrixExpansionDB) { foreach (uint offset in kv.Key) { int languageOffset = 0; if (RomInfo.romID == "IPKE" || RomInfo.romID == "IPGE" || RomInfo.romID == "IPGS") { languageOffset = +8; } byte[] read = ARM9.ReadBytes((uint)(offset - ARM9.address + languageOffset), kv.Value.Length / 3 + 1); byte[] code = DSUtils.HexStringToByteArray(kv.Value); if (read.Length != code.Length || !read.SequenceEqual(code)) return false; } } return true; } public static bool CheckScriptsStandardizedItemNumbers() { ScriptFile itemScript = new ScriptFile(RomInfo.itemScriptFileNumber); if (itemScript.allScripts.Count - 1 < new TextArchive(RomInfo.itemNamesTextNumber).messages.Count) { return false; } for (ushort i = 0; i < itemScript.allScripts.Count - 1; i++) { if (BitConverter.ToUInt16(itemScript.allScripts[i].commands[0].cmdParams[1], 0) != i || BitConverter.ToUInt16(itemScript.allScripts[i].commands[1].cmdParams[1], 0) != 1) { return false; } } return true; } public bool CheckStandardizedItems() { DSUtils.TryUnpackNarcs(new List { RomInfo.DirNames.scripts }); if (!PatchToolboxDialog.flag_standardizedItems) { if (!PatchToolboxDialog.CheckScriptsStandardizedItemNumbers()) { return false; } } itemNumbersCB.Visible = true; PatchToolboxDialog.flag_standardizedItems = true; DisableStandardizeItemsPatch("Already applied"); return true; } public bool CheckMatrixExpansionApplied() { if (!PatchToolboxDialog.flag_MatrixExpansionApplied) { if (!PatchToolboxDialog.CheckFilesMatrixExpansionApplied()) { return false; } } DisableMatrixExpansionPatch("Already applied"); PatchToolboxDialog.flag_MatrixExpansionApplied = true; expandedMatrixCB.Visible = true; return true; } public string backupSuffix = ".backup"; private bool CheckARM9ExpansionApplied() { if (!PatchToolboxDialog.flag_arm9Expanded) { if (!PatchToolboxDialog.CheckFilesArm9ExpansionApplied()) { return false; } } PatchToolboxDialog.flag_arm9Expanded = true; arm9patchCB.Visible = true; DisableARM9patch("Already applied"); switch (RomInfo.gameFamily) { case GameFamilies.Plat: case GameFamilies.HGSS: BDHCamARM9requiredLBL.Visible = false; BDHCamPatchButton.Enabled = true; BDHCamPatchLBL.Enabled = true; BDHCamPatchTextLBL.Enabled = true; break; } return true; } public bool CheckDynamicHeadersPatchApplied() { if (!flag_DynamicHeadersPatchApplied) { if (!PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { return false; } } PatchToolboxDialog.flag_DynamicHeadersPatchApplied = true; dynamicHeadersPatchCB.Visible = true; DisableDynamicHeadersPatch("Already applied"); return true; } public static bool CheckFilesDynamicHeadersPatchApplied() { DynamicHeadersPatchData data = new DynamicHeadersPatchData(); ushort initValue = BitConverter.ToUInt16(ARM9.ReadBytes(data.initOffset, 0x2), 0); return initValue == 0xB500; } public bool CheckBDHCamPatchApplied() { if (!CheckARM9ExpansionApplied()) { BDHCamARM9requiredLBL.Visible = true; DisableBDHCamPatch("ARM9 not expanded!"); return false; } if (!PatchToolboxDialog.flag_BDHCamPatchApplied) { if (!PatchToolboxDialog.CheckFilesBDHCamPatchApplied()) { return false; } } PatchToolboxDialog.flag_BDHCamPatchApplied = true; BDHCamCB.Visible = true; DisableBDHCamPatch("Already applied"); return true; } public void CheckScrcmdRepointPatchApplied() { //throw new NotImplementedException(); } public void CheckExpandedTrainerNamesPatchApplied() { if (flag_TrainerNamesExpanded) { DisableTrainerNameExpansionPatch("Already\nApplied"); } else { if (RomInfo.trainerNameLenOffset < 0) { DisableTrainerNameExpansionPatch("Unsupported"); } else { if (RomInfo.trainerNameMaxLen > TrainerFile.defaultNameLen) { DisableTrainerNameExpansionPatch("Already\nApplied"); PatchToolboxDialog.flag_TrainerNamesExpanded = true; } } } } #endregion Patch #region Button Actions private void SentenceCasePatchButton_Click(object sender, EventArgs e) { DialogResult d; d = MessageBox.Show("Confirming this process will apply the following changes:\n\n" + "- Every Pokémon name will be converted to Sentence Case." + "\n\n" + "Do you wish to continue?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { Parallel.ForEach(RomInfo.pokemonNamesTextNumbers, ID => { TextArchive pokeName = new TextArchive(ID); Parallel.For(1, pokeName.messages.Count, i => { if (pokeName.messages[i].Length <= 1) { i++; } pokeName.messages[i] = pokeName.messages[i].Replace(PokeDatabase.System.pokeNames[(ushort)i].ToUpper(), PokeDatabase.System.pokeNames[(ushort)i]); }); pokeName.SaveToFileDefaultDir(ID, showSuccessMessage: false); }); //sentenceCaseCB.Visible = true; MessageBox.Show("Pokémon names have been converted to Sentence Case.", "Operation successful", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void BDHCAMPatchButton_Click(object sender, EventArgs e) { BDHCAMPatchData data = new BDHCAMPatchData(); if (RomInfo.gameFamily == GameFamilies.HGSS) { if (OverlayUtils.OverlayTable.IsDefaultCompressed(data.overlayNumber)) { DialogResult d1 = MessageBox.Show("It is STRONGLY recommended to configure Overlay1 as uncompressed before proceeding.\n\n" + "More details in the following dialog.\n\n" + "Do you want to know more?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d1 == DialogResult.Yes) { overlay1uncomprButton_Click(null, null); } } } DialogResult d2; d2 = MessageBox.Show("This process will apply the following changes:\n\n" + "- Backup ARM9 file (arm9.bin" + backupSuffix + " will be created)." + "\n\n" + "- Backup Overlay" + data.overlayNumber + " file (overlay" + data.overlayNumber + ".bin" + backupSuffix + " will be created)." + "\n\n" + "- Replace " + (data.branchString.Length / 3 + 1) + " bytes of data at arm9 offset 0x" + data.branchOffset.ToString("X") + " with " + '\n' + data.branchString + "\n\n" + "- Replace " + (data.overlayString1.Length / 3 + 1) + " bytes of data at overlay" + data.overlayNumber + " offset 0x" + data.overlayOffset1.ToString("X") + " with " + '\n' + data.overlayString1 + "\n\n" + "- Replace " + (data.overlayString2.Length / 3 + 1) + " bytes of data at overlay" + data.overlayNumber + " offset 0x" + data.overlayOffset2.ToString("X") + " with " + '\n' + data.overlayString2 + "\n\n" + "- Modify file #" + expandedARMfileID + " inside " + '\n' + RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\n' + "to insert the BDHCAM routine (any data between 0x" + BDHCAMPatchData.BDHCamSubroutineOffset.ToString("X") + " and 0x" + (BDHCAMPatchData.BDHCamSubroutineOffset + data.subroutine.Length).ToString("X") + " will be overwritten)." + "\n\n" + "Do you wish to continue?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d2 == DialogResult.Yes) { File.Copy(RomInfo.arm9Path, RomInfo.arm9Path + backupSuffix, overwrite: true); try { ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.branchString), data.branchOffset); //Write new branchOffset /* Write to overlayfile */ string overlayFilePath = OverlayUtils.GetPath(data.overlayNumber); if (OverlayUtils.IsCompressed(data.overlayNumber)) { OverlayUtils.Decompress(data.overlayNumber); } DSUtils.WriteToFile(overlayFilePath, DSUtils.HexStringToByteArray(data.overlayString1), data.overlayOffset1); //Write new overlayCode1 DSUtils.WriteToFile(overlayFilePath, DSUtils.HexStringToByteArray(data.overlayString2), data.overlayOffset2); //Write new overlayCode2 overlay1MustBeRestoredFromBackup = false; String fullFilePath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + expandedARMfileID.ToString("D4"); /*Write Expanded ARM9 File*/ DSUtils.WriteToFile(fullFilePath, data.subroutine, BDHCAMPatchData.BDHCamSubroutineOffset); } catch { MessageBox.Show("Operation failed. It is strongly advised that you restore the arm9 and overlay from their respective backups.", "Something went wrong", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } overlay1MustBeRestoredFromBackup = false; DisableBDHCamPatch("Already applied"); PatchToolboxDialog.flag_BDHCamPatchApplied = true; BDHCamCB.Visible = true; MessageBox.Show("The BDHCAM patch has been applied.", "Operation successful.", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void overlay1uncomprButton_Click(object sender, EventArgs e) { if (ConfigureOverlay1Uncompressed()) { DisableOverlay1patch("Already applied"); overlay1CB.Visible = true; } } public static bool ConfigureOverlay1Uncompressed() { bool isCompressed = false; string stringDecompressOverlay = ""; if (OverlayUtils.IsCompressed(1)) { isCompressed = true; stringDecompressOverlay = "- Overlay 1 will be decompressed.\n\n"; } DialogResult d = MessageBox.Show("This process will apply the following changes:\n\n" + stringDecompressOverlay + "- Overlay 1 will be configured as \"uncompressed\" in the overlay table.\n\n" + "Do you wish to continue?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { OverlayUtils.OverlayTable.SetDefaultCompressed(1, false); if (isCompressed) { OverlayUtils.Decompress(1); } MessageBox.Show("Overlay1 is now configured as uncompressed.", "Operation successful", MessageBoxButtons.OK, MessageBoxIcon.Information); return true; } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } } private void ApplyItemStandardizeButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("This process will apply the following changes:\n\n" + "- Item scripts will be rearranged to follow the natural, ascending index order.\n\n" + "- Any unsaved change to the current Event File will be discarded.\n\n", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { DSUtils.TryUnpackNarcs(new List { RomInfo.DirNames.scripts }); DSUtils.TryUnpackNarcs(new List { RomInfo.DirNames.eventFiles }); if (PatchToolboxDialog.flag_standardizedItems) { AlreadyApplied(); } else { // Load item script file data ScriptFile itemScriptFile = new ScriptFile(RomInfo.itemScriptFileNumber); // Create map for: script no. -> vanilla item int[] vanillaItemsArray = new int[itemScriptFile.allScripts.Count - 1]; for (int i = 0; i < itemScriptFile.allScripts.Count - 1; i++) { vanillaItemsArray[i] = BitConverter.ToInt16(itemScriptFile.allScripts[i].commands[0].cmdParams[1], 0); }; // Parse all event files and fix instances of ground items according to the new order int cnt = Filesystem.GetEventFileCount(); (int itemScrMin, int itemScrMax) = (7000, 8000); for (int i = 0; i < cnt; i++) { bool dirty = false; EventFile eventFile = new EventFile(i); for (int j = 0; j < eventFile.overworlds.Count; j++) { // If ow is marked as an item, or in the rare case it is not but script no. falls within item script range: bool isItem = eventFile.overworlds[j].type == (ushort)Overworld.OwType.ITEM || (eventFile.overworlds[j].scriptNumber >= itemScrMin && eventFile.overworlds[j].scriptNumber <= itemScrMax); if (isItem) { int itemScriptID = eventFile.overworlds[j].scriptNumber - (itemScrMin - 1); eventFile.overworlds[j].scriptNumber = (ushort)(itemScrMin + vanillaItemsArray[itemScriptID - 1]); dirty = true; } } // Save event file if (dirty) { eventFile.SaveToFileDefaultDir(i, showSuccessMessage: false); } }; //Distortion world - turnback cave Griseous Orb fix if (gameFamily.Equals(GameFamilies.Plat)) { string ow9path = OverlayUtils.GetPath(9); int ow9offs = 0x8E20 + 10; int itemScriptID; using (DSUtils.EasyReader ewr = new DSUtils.EasyReader(ow9path, ow9offs)) { itemScriptID = ewr.ReadUInt16() - (itemScrMin - 1); } using (DSUtils.EasyWriter ewr = new DSUtils.EasyWriter(ow9path, ow9offs)) { ewr.Write((ushort)(itemScrMin + vanillaItemsArray[itemScriptID - 1])); } } // Sort scripts in the Script File according to item indices int itemCount = new TextArchive(RomInfo.itemNamesTextNumber).messages.Count; ScriptCommandContainer executeGive = new ScriptCommandContainer((uint)itemCount + 1, itemScriptFile.allScripts[itemScriptFile.allScripts.Count - 1]); itemScriptFile.allScripts.Clear(); for (ushort i = 0; i < itemCount; i++) { List cmdList = new List { new ScriptCommand("SetVar 0x8008 " + i), new ScriptCommand("SetVar 0x8009 0x1"), new ScriptCommand("Jump Function_#1") }; itemScriptFile.allScripts.Add(new ScriptCommandContainer((ushort)(i + 1), ScriptFile.ContainerTypes.Script, commandList: cmdList)); } itemScriptFile.allScripts.Add(executeGive); itemScriptFile.allFunctions[0].usedScriptID = itemCount + 1; itemScriptFile.SaveToFileDefaultDir(RomInfo.itemScriptFileNumber, showSuccessMessage: false); MessageBox.Show("Operation successful.", "Process completed.", MessageBoxButtons.OK, MessageBoxIcon.Information); DisableStandardizeItemsPatch("Already applied"); itemNumbersCB.Visible = true; PatchToolboxDialog.flag_standardizedItems = true; } } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void ApplyARM9ExpansionButton_Click(object sender, EventArgs e) { ARM9PatchData data = new ARM9PatchData(); DialogResult d = MessageBox.Show("Confirming this process will apply the following changes:\n\n" + "- Backup ARM9 file (arm9.bin" + backupSuffix + " will be created)." + "\n\n" + "- Replace " + (data.branchString.Length / 3 + 1) + " bytes of data at arm9 offset 0x" + data.branchOffset.ToString("X") + " with " + '\n' + data.branchString + "\n\n" + "- Replace " + (data.initString.Length / 3 + 1) + " bytes of data at arm9 offset 0x" + data.initOffset.ToString("X") + " with " + '\n' + data.initString + "\n\n" + "- Modify file #" + expandedARMfileID + " inside " + '\n' + RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\n' + " to accommodate for 88KB of data (no backup)." + "\n\n" + "Do you wish to continue?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { File.Copy(RomInfo.arm9Path, RomInfo.arm9Path + backupSuffix, overwrite: true); try { ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.branchString), data.branchOffset); //Write new branchOffset ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.initString), data.initOffset); //Write new initOffset string fullFilePath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + expandedARMfileID.ToString("D4"); File.Delete(fullFilePath); using (BinaryWriter f = new BinaryWriter(File.Create(fullFilePath))) { for (int i = 0; i < 0x16000; i++) f.Write((byte)0x00); // Write Expanded ARM9 File } DisableARM9patch("Already applied"); arm9patchCB.Visible = true; PatchToolboxDialog.flag_arm9Expanded = true; switch (RomInfo.gameFamily) { case GameFamilies.Plat: case GameFamilies.HGSS: BDHCamPatchButton.Text = "Apply Patch"; BDHCamPatchButton.Enabled = true; BDHCamPatchLBL.Enabled = true; BDHCamPatchTextLBL.Enabled = true; BDHCamARM9requiredLBL.Visible = false; break; } MessageBox.Show("The ARM9's usable memory has been expanded.", "Operation successful.", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Operation failed. It is strongly advised that you restore the arm9 backup (arm9.bin" + backupSuffix + ").", "Something went wrong", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void expandMatrixButton_Click(object sender, EventArgs e) { string listOfChanges = ""; int languageOffset = 0; if (RomInfo.romID == "IPKE" || RomInfo.romID == "IPGE" || RomInfo.romID == "IPGS") { languageOffset = +8; } foreach (KeyValuePair kv in ToolboxDB.matrixExpansionDB) { listOfChanges += " - Replace " + (kv.Value.Length / 3 + 1) + " bytes of data at arm9 offset"; if (kv.Key.Length > 1) listOfChanges += "s"; for (int i = 0; i < kv.Key.Length; i++) { listOfChanges += " 0x" + (kv.Key[i] - ARM9.address + languageOffset).ToString("X"); if (i < kv.Key.Length - 1) listOfChanges += ","; } listOfChanges += " with " + '\n' + kv.Value + "\n\n"; } DialogResult d; d = MessageBox.Show("Confirming this process will apply the following changes:\n\n" + listOfChanges + "Do you wish to continue?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { try { foreach (KeyValuePair kv in ToolboxDB.matrixExpansionDB) { foreach (uint offset in kv.Key) { ARM9.WriteBytes(DSUtils.HexStringToByteArray(kv.Value), (uint)(offset - ARM9.address + languageOffset)); } } } catch { MessageBox.Show("Operation failed. It is strongly advised that you restore the arm9 backup (arm9.bin" + backupSuffix + ").", "Something went wrong", MessageBoxButtons.OK, MessageBoxIcon.Error); } DisableMatrixExpansionPatch("Already applied"); expandedMatrixCB.Visible = true; PatchToolboxDialog.flag_MatrixExpansionApplied = true; MessageBox.Show("Matrix 0 can now be freely expanded up to twice its size.", "Operation successful.", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void dynamicHeadersButton_Click(object sender, EventArgs e) { DynamicHeadersPatchData data = new DynamicHeadersPatchData(); var headersDir = RomInfo.gameDirs[DirNames.dynamicHeaders]; bool specialCase = RomInfo.gameFamily == GameFamilies.HGSS && RomInfo.gameLanguage != GameLanguages.Japanese && RomInfo.gameLanguage != GameLanguages.Spanish; string specialCaseChanges = ""; if (specialCase) { specialCaseChanges = "- Replace " + (data.specialCaseData1.Length / 3 + 1) + " bytes of data at arm9 offset 0x" + (data.specialCaseOffset1 + data.pointerDiff).ToString("X") + " with " + '\n' + data.specialCaseData1 + "\n\n" + "- Replace " + (data.specialCaseData2.Length / 3 + 1) + " bytes of data at arm9 offset 0x" + (data.specialCaseOffset2 + data.pointerDiff).ToString("X") + " with " + '\n' + data.specialCaseData2 + "\n\n" + "- Replace " + (data.specialCaseData3.Length / 3 + 1) + " bytes of data at arm9 offset 0x" + (data.specialCaseOffset3 + data.pointerDiff).ToString("X") + " with " + '\n' + data.specialCaseData3 + "\n\n"; } DialogResult d; d = MessageBox.Show("Confirming this process will apply the following changes:\n\n" + "- Backup ARM9 file (arm9.bin" + backupSuffix + " will be created)." + "\n\n" + "- NARC file at " + headersDir.packedDir + " will become the new header container." + "\n\n" + "- The default ARM9 header table will be split into multiple files (one per header), each one saved into NARC" + headersDir.packedDir + " upon saving the ROM." + "\n\n" + "- Replace " + (data.initString.Length / 3 + 1) + " bytes of data at arm9 offset 0x" + data.initOffset.ToString("X") + " with " + '\n' + data.initString + "\n\n" + "- Neutralize instances of (HeaderID * 0x18) so the base offset which the data is read from is always 0x0." + "\n\n" + "- Change pointers to header fields, from(ARM9_HEADER_TABLE_OFFSET + n) to simply(0 + n)" + "\n\n" + specialCaseChanges + "Do you wish to continue?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { File.Copy(RomInfo.arm9Path, RomInfo.arm9Path + backupSuffix, overwrite: true); try { /* Write main routine (HG USA): 00 B5 push (lr) 01 1C mov r1, r0 32 20* mov r0, #0x32 00 22 mov r2, #0x0 CC F7 58 F9** bl 0x02007524 @Load_Memory 03 1C mov r3, r0 DF F7 49 FC** bl 0x0201AB0C @Free_Memory 00 BD pop, pc *FOR PLATINUM (all languages): 94 20 mov r0, #0x94 **BRANCHES FOR OTHER VERSIONS/LANGUAGES: HG ESP (IPKS): CC F7 5C F9 bl 0x02007524 @Load_Memory DF F7 4D FC bl 0x0201AB0C @Free_Memory HG JAP (IPKJ) and SS JAP (IPGJ): CC F7 08 FB bl 0x0200743C @Load_Memory DF F7 C7 FC bl 0x0201A7C0 @Free_Memory Plat USA (CPUE): CC F7 48 FD bl 0x02006AC0 @Load_Memory DE F7 C7 F8 bl 0x020181C4 @Free_Memory Plat ESP (CPUS), ITA (CPUI), FRA (CPUF), GER (CPUD): CC F7 00 FD bl 0x02006AD4 @Load_Memory CC F7 74 FC bl 0x02018234 @Free_Memory Plat JAP (CPUJ): CC F7 0A FF bl 0x02006A00 @Load_Memory DE F7 3D F9 bl 0x02017E6C @Free_Memory */ ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.initString), data.initOffset); /* - Neutralize instances of (HeaderID * 0x18) so the base offset which the data is read from is always 0x0: Replace this: 18 21 mov r1, #0x18 41 43 mul r1, r0 with this: 19 00 lsl r1, r3, 0 C0 46 nop - Change pointers to header fields, from (ARM9_HEADER_TABLE_OFFSET + n) to simply (0 + n) * for ESP HG (IPKS): subtract 0x8 from every reference offset * for JAP HG (IPKJ) and SS (IPGJ): subtract 0x448 from every reference offset * for Plat ESP, ITA, FRA, GER, JAP: add 0xA4 to every reference offset * for Plat JAP: subtract 0x444 from every reference offset */ foreach (Tuple reference in DynamicHeadersPatchData.dynamicHeadersPointersDB[RomInfo.gameFamily]) { ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.REFERENCE_STRING), (uint)(reference.Item1 + data.pointerDiff)); uint pointerValue = BitConverter.ToUInt32(ARM9.ReadBytes((uint)(reference.Item2 + data.pointerDiff), 4), 0) - RomInfo.headerTableOffset - ARM9.address; ARM9.WriteBytes(BitConverter.GetBytes(pointerValue), (uint)(reference.Item2 + data.pointerDiff)); } if (specialCase) { /* Special case: at 0x3B522 (non-JAP and non-Spanish HG offset) there is an instruction between the (mov r1, #0x18) and (mul r1, r0) commands, so we must handle this separately */ ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.specialCaseData1), (uint)(data.specialCaseOffset1 + data.pointerDiff)); ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.specialCaseData2), (uint)(data.specialCaseOffset2 + data.pointerDiff)); ARM9.WriteBytes(DSUtils.HexStringToByteArray(data.specialCaseData3), (uint)(data.specialCaseOffset3 + data.pointerDiff)); } // Clear the dynamic headers directory in 'unpacked' Directory.Delete(headersDir.unpackedDir, true); Directory.CreateDirectory(headersDir.unpackedDir); /* Now move the headers data from arm9 to the new directory. Upon saving the ROM, the data will be packed into a NARC and replace a/0/5/0 in HGSS or debug/cb_edit/d_test.narc in Platinum */ int headerCount = RomInfo.GetHeaderCount(); for (int i = 0; i < headerCount; i++) { byte[] headerData = MapHeader.LoadFromARM9((ushort)i).ToByteArray(); DSUtils.WriteToFile(headersDir.unpackedDir + "\\" + i.ToString("D4"), headerData); } DisableDynamicHeadersPatch("Already applied"); dynamicHeadersPatchCB.Visible = true; PatchToolboxDialog.flag_DynamicHeadersPatchApplied = true; MessageBox.Show("The headers are now dynamically allocated in memory.", "Operation successful.", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Operation failed. It is strongly advised that you restore the arm9 backup (arm9.bin" + backupSuffix + ").", "Something went wrong", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void disableDynamicTexturesButton_Click(object sender, EventArgs e) { DialogResult d; d = MessageBox.Show("Applying this patch will set the Dynamic Textures field of all AreaData files to 0xFFFF.\n\n" + "Are you sure you want to proceed?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { DSUtils.TryUnpackNarcs(new List { DirNames.areaData }); string[] adFiles = Directory.GetFiles(gameDirs[DirNames.areaData].unpackedDir); foreach (string s in adFiles) { AreaData a = new AreaData(new FileStream(s, FileMode.Open)) { dynamicTextureType = 0xFFFF }; a.SaveToFile(s, showSuccessMessage: false); } DisableKillTextureAnimationsPatch("Already applied"); disableTextureAnimationsCB.Visible = true; MessageBox.Show("Texture Animations have been disabled in every AreaData.", "Operation successful.", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void expandTrainerNamesButton_Click(object sender, EventArgs e) { // Pearl USA ARM9 at 0x6AC32 // TODO: Verify // Pearl Spain ARM9 at 0x6AC8E // TODO: Verify // Diamond USA ARM9 at 0x6AC32 // Diamond Spain ARM9 at 0x6AC8E // Platinum USA ARM9 at 0x791DE // Platinum Spain ARM9 at 0x7927E // HeartGold USA ARM9 at 0x7342E // HeartGold Spain ARM9 at 0x73426 // SoulSilver USA ARM9 at 0x7342E // SoulSilver Spain ARM9 at 0x7342E // TODO: Verify DialogResult d = MessageBox.Show($"Applying this patch will set the Trainer Name max length to {PatchToolboxDialog.expandedTrainerNameLength - 1} usable characters.\n" + "Are you sure you want to proceed?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { try { using (ARM9.Writer wr = new ARM9.Writer(RomInfo.trainerNameLenOffset)) { wr.Write((byte)PatchToolboxDialog.expandedTrainerNameLength); } PatchToolboxDialog.flag_TrainerNamesExpanded = true; DisableTrainerNameExpansionPatch("Already applied"); expandTrainerNamesCB.Visible = true; MessageBox.Show("Trainer Names have been extended.", "Operation successful.", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (IOException) { MessageBox.Show("ARM9 could not be written.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } #region Mikelan's custom commands private void applyCustomCommands(object sender, EventArgs e) { int expTableOffset = GetCommandTableOffset(); if (expTableOffset < 0) { DialogResult d; d = MessageBox.Show("Script command table has not been repointed.\n\n" + "Do you wish to repoint it to the expanded ARM9 file?\n\n" + "By default it will be written from 0x200 to 0x1700.\n" + "If you already have something there, you must cancel this window and move these things to a new location, or you can manually repoint the script command table to a different free location in the expanded ARM9 file", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.Yes) { RepointCommandTable(); } else { return; } } if (ImportCustomCommand()) { MessageBox.Show("Script commands succesfully installed in the ROM", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private int GetCommandTableOffset() { // Checks if command table is repointed IN THE EXPANDED ARM9 FILE, returns pointer inside this file ResourceManager customcmdDB = new ResourceManager("DSPRE.Resources.ROMToolboxDB.CustomScrCmdDB", Assembly.GetExecutingAssembly()); int pointerOffset = int.Parse(customcmdDB.GetString("pointerOffset" + "_" + RomInfo.gameVersion + "_" + RomInfo.gameLanguage)); using (ARM9.Reader r = new ARM9.Reader(pointerOffset)) { uint cmdTable = r.ReadUInt32(); uint offset = cmdTable - synthOverlayLoadAddress; if ((offset >= 0) && (offset <= 0x12B00)) { return (int)offset; // Table position inside the expanded arm9 file } } return -1; // No table in expanded arm9 file } private void RepointCommandTable() { string expandedPath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + "\\0000"; ResourceManager customcmdDB = new ResourceManager("DSPRE.Resources.ROMToolboxDB.CustomScrCmdDB", Assembly.GetExecutingAssembly()); FileStream arm9FileStream = new FileStream(RomInfo.arm9Path, FileMode.Open); // I make a copy of the stream so the file is free for writing MemoryStream arm9Stream = new MemoryStream(); arm9FileStream.CopyTo(arm9Stream); byte[] cmdTbl = arm9Stream.ToArray(); using (BinaryWriter expArmWriter = new BinaryWriter(new FileStream(expandedPath, FileMode.Open))) { expArmWriter.BaseStream.Position = 0x200; // Command table default offset expArmWriter.Write(cmdTbl, int.Parse(customcmdDB.GetString("originalTableOffset" + "_" + RomInfo.gameVersion + "_" + RomInfo.gameLanguage)), 4 * 0x355); } arm9FileStream.Close(); using (ARM9.Writer wr = new ARM9.Writer()) { // Change both the pointer and the limit wr.BaseStream.Position = int.Parse(customcmdDB.GetString("pointerOffset" + "_" + RomInfo.gameVersion + "_" + RomInfo.gameLanguage)); wr.Write((uint)0x023C8200); wr.BaseStream.Position = int.Parse(customcmdDB.GetString("limitOffset" + "_" + RomInfo.gameVersion + "_" + RomInfo.gameLanguage)); wr.Write((uint)0x053C); } } private bool ImportCustomCommand() { string expandedPath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + "\\0000"; int appliedPatches = 0; OpenFileDialog of = new OpenFileDialog(); of.Filter = "Custom Script Command File (*.scrcmd)|*.scrcmd"; if (of.ShowDialog(this) != DialogResult.OK) { return false; } FileStream expandedFileStream = new FileStream(expandedPath, FileMode.Open); MemoryStream expandedStream = new MemoryStream(); expandedFileStream.CopyTo(expandedStream); expandedFileStream.Close(); using (DSUtils.EasyWriter expandedWriter = new DSUtils.EasyWriter(expandedPath, fmode: FileMode.Open)) { using (BinaryReader expandedReader = new BinaryReader(expandedStream)) { try { System.Xml.Linq.XDocument xmldoc = System.Xml.Linq.XDocument.Load(new FileStream(of.FileName, FileMode.Open)); foreach (var node in xmldoc.Root.Elements("scriptcommand")) { ushort commandID = ushort.Parse(node.Attribute("ID").Value, System.Globalization.NumberStyles.HexNumber); string targetROM = node.Element("ROM").Value; string targetLang = node.Element("lang").Value; string commandName = node.Element("name").Value; string paramCount = node.Element("paramcount").Value; string paramCode = node.Element("paramcode").Value; int asmOffset = Int32.Parse(node.Element("asmoffset").Value, System.Globalization.NumberStyles.HexNumber); string asmCode = node.Element("asmcode").Value.Replace("\n", "").Replace("\t", "").Replace(" ", ""); if (RomInfo.gameVersion.ToString().Equals(targetROM) && RomInfo.gameLanguage.Equals(targetLang)) { expandedReader.BaseStream.Position = 0x200 + commandID * 4; if (expandedReader.ReadUInt32() != 0) { DialogResult d; d = MessageBox.Show("Script command " + commandID.ToString("X4") + " is already used.\n\n" + "Do you really want to overwrite it?", "Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (d == DialogResult.No) { continue; } } expandedWriter.BaseStream.Position = 0x200 + commandID * 4; expandedWriter.Write((int)(synthOverlayLoadAddress + asmOffset + 1)); byte[] asmCodeBytes = DSUtils.StringToByteArray(asmCode); expandedWriter.BaseStream.Position = asmOffset; expandedWriter.Write(asmCodeBytes); appliedPatches++; } } } catch { MessageBox.Show("Selected command installation file is corrupted.\n\n" + "Please, download it again or contact its creator.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } } if (appliedPatches == 0) { MessageBox.Show("No command could be installed from this file.\n\n" + "Make sure the command installation file supports your current ROM.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } return true; } #endregion Mikelan's custom commands #endregion Button Actions #region Error Messsages private void AlreadyApplied() { MessageBox.Show("This patch has already been applied.", "Can't reapply patch", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion Error Messsages } } ================================================ FILE: DS_Map/PatchToolboxDialog.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 Expands the ARM9's usable memory by repurposing a file inside an unused NARC and turning it into a synthetic overlay, in which you can place new code or new data. This patch is necessary to accomplish most ASM edits. iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vQAADr0BR/uQrQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAOFJREFUOE+tj8ERgkAMRddx0Js90ItFeJS7B3vxTDO04FiCdaxJ2ISwmywjcPiT bPLz+IQY464yh1s0Ne9LXK3rERAGkPt/hLDwPAt0WiTg7MtLYhgL3xaQZzUVsC1AD0Y7baK6AKzBaD8z Ya0APVi4NR/xFCZ481LLhbWHF4ToxecZ2UAmD/Y4kQ+Ag3hrB7VdSjZ6dEJpvENrBrAEguIBIb4J0FIw upmAncykgSX9hgfNYHyTqg2kaiXFN87xo5nSrQ+kXic1kuVygUkD6d58CYZ1nPWgzlMB3EvmcL1i+AEb Ho2MhU9VbQAAAABJRU5ErkJggg== ================================================ FILE: DS_Map/PersonalDataEditor.Designer.cs ================================================ namespace DSPRE { partial class PersonalDataEditor { /// /// 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(PersonalDataEditor)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.saveDataButton = new System.Windows.Forms.Button(); this.pokemonPictureBox = new System.Windows.Forms.PictureBox(); this.monNumberNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.groupBox10 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel13 = new System.Windows.Forms.TableLayoutPanel(); this.label25 = new System.Windows.Forms.Label(); this.genderProbabilityNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.genderLabel = new System.Windows.Forms.Label(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel11 = new System.Windows.Forms.TableLayoutPanel(); this.removeAllMachinesButton = new System.Windows.Forms.Button(); this.addAllMachinesButton = new System.Windows.Forms.Button(); this.removeMachineButton = new System.Windows.Forms.Button(); this.addableMachinesListBox = new System.Windows.Forms.ListBox(); this.addedMachinesListBox = new System.Windows.Forms.ListBox(); this.addMachineButton = new System.Windows.Forms.Button(); this.label10 = new System.Windows.Forms.Label(); this.label11 = new System.Windows.Forms.Label(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel7 = new System.Windows.Forms.TableLayoutPanel(); this.baseSpeedNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.baseSpAtkNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label12 = new System.Windows.Forms.Label(); this.baseDefNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label13 = new System.Windows.Forms.Label(); this.baseAtkNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label14 = new System.Windows.Forms.Label(); this.label15 = new System.Windows.Forms.Label(); this.baseHpNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label16 = new System.Windows.Forms.Label(); this.baseSpDefNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label17 = new System.Windows.Forms.Label(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); this.evSpeedNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.evSpAtkNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label7 = new System.Windows.Forms.Label(); this.evDefNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label4 = new System.Windows.Forms.Label(); this.evAtkNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.evHpNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label8 = new System.Windows.Forms.Label(); this.evSpDefNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label9 = new System.Windows.Forms.Label(); this.groupBox5 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.ability1InputComboBox = new DSPRE.InputComboBox(); this.ability2InputComboBox = new DSPRE.InputComboBox(); this.groupBox6 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel9 = new System.Windows.Forms.TableLayoutPanel(); this.eggStepsNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.label21 = new System.Windows.Forms.Label(); this.label22 = new System.Windows.Forms.Label(); this.eggGroup1InputCombobox = new DSPRE.InputComboBox(); this.eggGroup2InputCombobox = new DSPRE.InputComboBox(); this.label23 = new System.Windows.Forms.Label(); this.groupBox7 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel8 = new System.Windows.Forms.TableLayoutPanel(); this.dexColorInputComboBox = new DSPRE.InputComboBox(); this.label31 = new System.Windows.Forms.Label(); this.label18 = new System.Windows.Forms.Label(); this.growthCurveInputComboBox = new DSPRE.InputComboBox(); this.label20 = new System.Windows.Forms.Label(); this.baseExpYieldNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.flipFlagCheckBox = new System.Windows.Forms.CheckBox(); this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); this.groupBox8 = new System.Windows.Forms.GroupBox(); this.baseFriendshipNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.groupBox9 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel12 = new System.Windows.Forms.TableLayoutPanel(); this.label30 = new System.Windows.Forms.Label(); this.label29 = new System.Windows.Forms.Label(); this.item2PictureBox = new System.Windows.Forms.PictureBox(); this.item1PictureBox = new System.Windows.Forms.PictureBox(); this.item1InputComboBox = new DSPRE.InputComboBox(); this.item2InputComboBox = new DSPRE.InputComboBox(); this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); this.groupBox11 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel14 = new System.Windows.Forms.TableLayoutPanel(); this.label33 = new System.Windows.Forms.Label(); this.label35 = new System.Windows.Forms.Label(); this.escapeRateNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.catchRateNumericUpDown = new System.Windows.Forms.NumericUpDown(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel10 = new System.Windows.Forms.TableLayoutPanel(); this.type2InputComboBox = new DSPRE.InputComboBox(); this.type1InputComboBox = new DSPRE.InputComboBox(); this.pokemonNameInputComboBox = new DSPRE.InputComboBox(); this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pokemonPictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.monNumberNumericUpDown)).BeginInit(); this.tableLayoutPanel2.SuspendLayout(); this.groupBox10.SuspendLayout(); this.tableLayoutPanel13.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.genderProbabilityNumericUpDown)).BeginInit(); this.groupBox1.SuspendLayout(); this.tableLayoutPanel11.SuspendLayout(); this.groupBox2.SuspendLayout(); this.tableLayoutPanel7.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.baseSpeedNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.baseSpAtkNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.baseDefNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.baseAtkNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.baseHpNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.baseSpDefNumericUpDown)).BeginInit(); this.groupBox3.SuspendLayout(); this.tableLayoutPanel5.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.evSpeedNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evSpAtkNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evDefNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evAtkNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evHpNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.evSpDefNumericUpDown)).BeginInit(); this.groupBox5.SuspendLayout(); this.tableLayoutPanel4.SuspendLayout(); this.groupBox6.SuspendLayout(); this.tableLayoutPanel9.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.eggStepsNumericUpDown)).BeginInit(); this.groupBox7.SuspendLayout(); this.tableLayoutPanel8.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.baseExpYieldNumericUpDown)).BeginInit(); this.tableLayoutPanel3.SuspendLayout(); this.groupBox8.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.baseFriendshipNumericUpDown)).BeginInit(); this.groupBox9.SuspendLayout(); this.tableLayoutPanel12.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.item2PictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.item1PictureBox)).BeginInit(); this.tableLayoutPanel6.SuspendLayout(); this.groupBox11.SuspendLayout(); this.tableLayoutPanel14.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.escapeRateNumericUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.catchRateNumericUpDown)).BeginInit(); this.groupBox4.SuspendLayout(); this.tableLayoutPanel10.SuspendLayout(); this.SuspendLayout(); // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 5; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 7F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 22F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 22F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 7F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 42F)); this.tableLayoutPanel1.Controls.Add(this.saveDataButton, 3, 0); this.tableLayoutPanel1.Controls.Add(this.pokemonPictureBox, 0, 0); this.tableLayoutPanel1.Controls.Add(this.monNumberNumericUpDown, 2, 0); this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 1); this.tableLayoutPanel1.Controls.Add(this.pokemonNameInputComboBox, 1, 0); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 5); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 2; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 9.274874F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 90.72513F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(1076, 581); this.tableLayoutPanel1.TabIndex = 0; // // saveDataButton // this.saveDataButton.Dock = System.Windows.Forms.DockStyle.Fill; this.saveDataButton.Image = ((System.Drawing.Image)(resources.GetObject("saveDataButton.Image"))); this.saveDataButton.Location = new System.Drawing.Point(550, 3); this.saveDataButton.Name = "saveDataButton"; this.saveDataButton.Size = new System.Drawing.Size(69, 47); this.saveDataButton.TabIndex = 30; this.saveDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveDataButton.UseVisualStyleBackColor = true; this.saveDataButton.Click += new System.EventHandler(this.saveDataButton_Click); // // pokemonPictureBox // this.pokemonPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.pokemonPictureBox.Location = new System.Drawing.Point(3, 3); this.pokemonPictureBox.Name = "pokemonPictureBox"; this.pokemonPictureBox.Size = new System.Drawing.Size(69, 47); this.pokemonPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.pokemonPictureBox.TabIndex = 12; this.pokemonPictureBox.TabStop = false; // // monNumberNumericUpDown // this.monNumberNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.monNumberNumericUpDown.Location = new System.Drawing.Point(314, 16); this.monNumberNumericUpDown.Name = "monNumberNumericUpDown"; this.monNumberNumericUpDown.Size = new System.Drawing.Size(230, 20); this.monNumberNumericUpDown.TabIndex = 16; this.monNumberNumericUpDown.ValueChanged += new System.EventHandler(this.monNumberNumericUpDown_ValueChanged); // // tableLayoutPanel2 // this.tableLayoutPanel2.ColumnCount = 6; this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanel2, 5); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.303955F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.303955F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.26415F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15.66038F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.45283F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 42.83019F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel2.Controls.Add(this.groupBox10, 4, 1); this.tableLayoutPanel2.Controls.Add(this.groupBox1, 5, 0); this.tableLayoutPanel2.Controls.Add(this.groupBox2, 0, 0); this.tableLayoutPanel2.Controls.Add(this.groupBox3, 1, 0); this.tableLayoutPanel2.Controls.Add(this.groupBox5, 3, 0); this.tableLayoutPanel2.Controls.Add(this.groupBox6, 4, 0); this.tableLayoutPanel2.Controls.Add(this.groupBox7, 2, 1); this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel3, 3, 1); this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel6, 2, 0); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 56); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel2.RowCount = 2; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel2.Size = new System.Drawing.Size(1070, 522); this.tableLayoutPanel2.TabIndex = 17; // // groupBox10 // this.groupBox10.Controls.Add(this.tableLayoutPanel13); this.groupBox10.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox10.Location = new System.Drawing.Point(480, 264); this.groupBox10.Name = "groupBox10"; this.groupBox10.Size = new System.Drawing.Size(126, 250); this.groupBox10.TabIndex = 43; this.groupBox10.TabStop = false; this.groupBox10.Text = "Gender"; // // tableLayoutPanel13 // this.tableLayoutPanel13.ColumnCount = 1; this.tableLayoutPanel13.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel13.Controls.Add(this.label25, 0, 2); this.tableLayoutPanel13.Controls.Add(this.genderProbabilityNumericUpDown, 0, 1); this.tableLayoutPanel13.Controls.Add(this.genderLabel, 0, 3); this.tableLayoutPanel13.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel13.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel13.Name = "tableLayoutPanel13"; this.tableLayoutPanel13.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel13.RowCount = 4; this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel13.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel13.Size = new System.Drawing.Size(120, 231); this.tableLayoutPanel13.TabIndex = 24; // // label25 // this.label25.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label25.AutoSize = true; this.label25.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label25.Location = new System.Drawing.Point(8, 117); this.label25.Name = "label25"; this.label25.Size = new System.Drawing.Size(104, 16); this.label25.TabIndex = 14; this.label25.Text = "Outcome:"; // // genderProbabilityNumericUpDown // this.genderProbabilityNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.genderProbabilityNumericUpDown.Location = new System.Drawing.Point(8, 60); this.genderProbabilityNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.genderProbabilityNumericUpDown.Name = "genderProbabilityNumericUpDown"; this.genderProbabilityNumericUpDown.Size = new System.Drawing.Size(104, 20); this.genderProbabilityNumericUpDown.TabIndex = 23; this.genderProbabilityNumericUpDown.ValueChanged += new System.EventHandler(this.genderProbabilityNumericUpDown_ValueChanged); // // genderLabel // this.genderLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.genderLabel.AutoSize = true; this.genderLabel.Location = new System.Drawing.Point(8, 174); this.genderLabel.Name = "genderLabel"; this.genderLabel.Size = new System.Drawing.Size(104, 13); this.genderLabel.TabIndex = 20; this.genderLabel.Text = "Text"; // // groupBox1 // this.groupBox1.Controls.Add(this.tableLayoutPanel11); this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox1.Location = new System.Drawing.Point(612, 8); this.groupBox1.Name = "groupBox1"; this.groupBox1.Padding = new System.Windows.Forms.Padding(4); this.tableLayoutPanel2.SetRowSpan(this.groupBox1, 2); this.groupBox1.Size = new System.Drawing.Size(450, 506); this.groupBox1.TabIndex = 33; this.groupBox1.TabStop = false; this.groupBox1.Text = "TM / HM"; // // tableLayoutPanel11 // this.tableLayoutPanel11.ColumnCount = 3; this.tableLayoutPanel11.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 39.5F)); this.tableLayoutPanel11.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 21F)); this.tableLayoutPanel11.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 39.5F)); this.tableLayoutPanel11.Controls.Add(this.removeAllMachinesButton, 0, 4); this.tableLayoutPanel11.Controls.Add(this.addAllMachinesButton, 0, 3); this.tableLayoutPanel11.Controls.Add(this.removeMachineButton, 1, 2); this.tableLayoutPanel11.Controls.Add(this.addableMachinesListBox, 0, 1); this.tableLayoutPanel11.Controls.Add(this.addedMachinesListBox, 2, 1); this.tableLayoutPanel11.Controls.Add(this.addMachineButton, 1, 1); this.tableLayoutPanel11.Controls.Add(this.label10, 0, 0); this.tableLayoutPanel11.Controls.Add(this.label11, 2, 0); this.tableLayoutPanel11.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel11.Location = new System.Drawing.Point(4, 17); this.tableLayoutPanel11.Name = "tableLayoutPanel11"; this.tableLayoutPanel11.RowCount = 6; this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7F)); this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7F)); this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7F)); this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7F)); this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 72F)); this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel11.Size = new System.Drawing.Size(442, 485); this.tableLayoutPanel11.TabIndex = 0; // // removeAllMachinesButton // this.removeAllMachinesButton.Dock = System.Windows.Forms.DockStyle.Fill; this.removeAllMachinesButton.Location = new System.Drawing.Point(177, 119); this.removeAllMachinesButton.Name = "removeAllMachinesButton"; this.removeAllMachinesButton.Size = new System.Drawing.Size(86, 26); this.removeAllMachinesButton.TabIndex = 5; this.removeAllMachinesButton.Text = "<< Remove All"; this.removeAllMachinesButton.UseVisualStyleBackColor = true; this.removeAllMachinesButton.Click += new System.EventHandler(this.removeAllMachinesButton_Click); // // addAllMachinesButton // this.addAllMachinesButton.Dock = System.Windows.Forms.DockStyle.Fill; this.addAllMachinesButton.Location = new System.Drawing.Point(177, 87); this.addAllMachinesButton.Name = "addAllMachinesButton"; this.addAllMachinesButton.Size = new System.Drawing.Size(86, 26); this.addAllMachinesButton.TabIndex = 4; this.addAllMachinesButton.Text = "Add All >>"; this.addAllMachinesButton.UseVisualStyleBackColor = true; this.addAllMachinesButton.Click += new System.EventHandler(this.addAllMachinesButton_Click); // // removeMachineButton // this.removeMachineButton.Dock = System.Windows.Forms.DockStyle.Fill; this.removeMachineButton.Location = new System.Drawing.Point(177, 55); this.removeMachineButton.Name = "removeMachineButton"; this.removeMachineButton.Size = new System.Drawing.Size(86, 26); this.removeMachineButton.TabIndex = 3; this.removeMachineButton.Text = "<< Remove"; this.removeMachineButton.UseVisualStyleBackColor = true; this.removeMachineButton.Click += new System.EventHandler(this.removeMachineButton_Click); // // addableMachinesListBox // this.addableMachinesListBox.Dock = System.Windows.Forms.DockStyle.Fill; this.addableMachinesListBox.FormattingEnabled = true; this.addableMachinesListBox.Location = new System.Drawing.Point(3, 23); this.addableMachinesListBox.Name = "addableMachinesListBox"; this.tableLayoutPanel11.SetRowSpan(this.addableMachinesListBox, 5); this.addableMachinesListBox.Size = new System.Drawing.Size(168, 459); this.addableMachinesListBox.TabIndex = 0; // // addedMachinesListBox // this.addedMachinesListBox.Dock = System.Windows.Forms.DockStyle.Fill; this.addedMachinesListBox.FormattingEnabled = true; this.addedMachinesListBox.Location = new System.Drawing.Point(269, 23); this.addedMachinesListBox.Name = "addedMachinesListBox"; this.tableLayoutPanel11.SetRowSpan(this.addedMachinesListBox, 5); this.addedMachinesListBox.Size = new System.Drawing.Size(170, 459); this.addedMachinesListBox.TabIndex = 1; // // addMachineButton // this.addMachineButton.Dock = System.Windows.Forms.DockStyle.Fill; this.addMachineButton.Location = new System.Drawing.Point(177, 23); this.addMachineButton.Name = "addMachineButton"; this.addMachineButton.Size = new System.Drawing.Size(86, 26); this.addMachineButton.TabIndex = 2; this.addMachineButton.Text = "Enable >>"; this.addMachineButton.UseVisualStyleBackColor = true; this.addMachineButton.Click += new System.EventHandler(this.addMachineButton_Click); // // label10 // this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(3, 3); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(168, 13); this.label10.TabIndex = 6; this.label10.Text = "Disabled"; // // label11 // this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label11.AutoSize = true; this.label11.Location = new System.Drawing.Point(269, 3); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(170, 13); this.label11.TabIndex = 7; this.label11.Text = "Enabled"; // // groupBox2 // this.groupBox2.Controls.Add(this.tableLayoutPanel7); this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox2.Location = new System.Drawing.Point(8, 8); this.groupBox2.Name = "groupBox2"; this.tableLayoutPanel2.SetRowSpan(this.groupBox2, 2); this.groupBox2.Size = new System.Drawing.Size(82, 506); this.groupBox2.TabIndex = 34; this.groupBox2.TabStop = false; this.groupBox2.Text = "Base Stats"; // // tableLayoutPanel7 // this.tableLayoutPanel7.ColumnCount = 1; this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel7.Controls.Add(this.baseSpeedNumericUpDown, 0, 11); this.tableLayoutPanel7.Controls.Add(this.baseSpAtkNumericUpDown, 0, 7); this.tableLayoutPanel7.Controls.Add(this.label12, 0, 6); this.tableLayoutPanel7.Controls.Add(this.baseDefNumericUpDown, 0, 5); this.tableLayoutPanel7.Controls.Add(this.label13, 0, 0); this.tableLayoutPanel7.Controls.Add(this.baseAtkNumericUpDown, 0, 3); this.tableLayoutPanel7.Controls.Add(this.label14, 0, 2); this.tableLayoutPanel7.Controls.Add(this.label15, 0, 4); this.tableLayoutPanel7.Controls.Add(this.baseHpNumericUpDown, 0, 1); this.tableLayoutPanel7.Controls.Add(this.label16, 0, 8); this.tableLayoutPanel7.Controls.Add(this.baseSpDefNumericUpDown, 0, 9); this.tableLayoutPanel7.Controls.Add(this.label17, 0, 10); this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel7.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel7.Name = "tableLayoutPanel7"; this.tableLayoutPanel7.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel7.RowCount = 12; this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel7.Size = new System.Drawing.Size(76, 487); this.tableLayoutPanel7.TabIndex = 21; // // baseSpeedNumericUpDown // this.baseSpeedNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.baseSpeedNumericUpDown.Location = new System.Drawing.Point(8, 441); this.baseSpeedNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.baseSpeedNumericUpDown.Name = "baseSpeedNumericUpDown"; this.baseSpeedNumericUpDown.Size = new System.Drawing.Size(60, 20); this.baseSpeedNumericUpDown.TabIndex = 17; this.baseSpeedNumericUpDown.ValueChanged += new System.EventHandler(this.baseSpeedNumericUpDown_ValueChanged); // // baseSpAtkNumericUpDown // this.baseSpAtkNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.baseSpAtkNumericUpDown.Location = new System.Drawing.Point(8, 281); this.baseSpAtkNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.baseSpAtkNumericUpDown.Name = "baseSpAtkNumericUpDown"; this.baseSpAtkNumericUpDown.Size = new System.Drawing.Size(60, 20); this.baseSpAtkNumericUpDown.TabIndex = 13; this.baseSpAtkNumericUpDown.ValueChanged += new System.EventHandler(this.baseSpAtkNumericUpDown_ValueChanged); // // label12 // this.label12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label12.AutoSize = true; this.label12.Location = new System.Drawing.Point(8, 245); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(60, 13); this.label12.TabIndex = 12; this.label12.Text = "Sp. Atk."; // // baseDefNumericUpDown // this.baseDefNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.baseDefNumericUpDown.Location = new System.Drawing.Point(8, 202); this.baseDefNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.baseDefNumericUpDown.Name = "baseDefNumericUpDown"; this.baseDefNumericUpDown.Size = new System.Drawing.Size(60, 20); this.baseDefNumericUpDown.TabIndex = 11; this.baseDefNumericUpDown.ValueChanged += new System.EventHandler(this.baseDefNumericUpDown_ValueChanged); // // label13 // this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label13.AutoSize = true; this.label13.Location = new System.Drawing.Point(8, 8); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(60, 13); this.label13.TabIndex = 0; this.label13.Text = "HP"; // // baseAtkNumericUpDown // this.baseAtkNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.baseAtkNumericUpDown.Location = new System.Drawing.Point(8, 123); this.baseAtkNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.baseAtkNumericUpDown.Name = "baseAtkNumericUpDown"; this.baseAtkNumericUpDown.Size = new System.Drawing.Size(60, 20); this.baseAtkNumericUpDown.TabIndex = 11; this.baseAtkNumericUpDown.ValueChanged += new System.EventHandler(this.baseAtkNumericUpDown_ValueChanged); // // label14 // this.label14.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(8, 87); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(60, 13); this.label14.TabIndex = 1; this.label14.Text = "Atk"; // // label15 // this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label15.AutoSize = true; this.label15.Location = new System.Drawing.Point(8, 166); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(60, 13); this.label15.TabIndex = 2; this.label15.Text = "Def"; // // baseHpNumericUpDown // this.baseHpNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.baseHpNumericUpDown.Location = new System.Drawing.Point(8, 44); this.baseHpNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.baseHpNumericUpDown.Name = "baseHpNumericUpDown"; this.baseHpNumericUpDown.Size = new System.Drawing.Size(60, 20); this.baseHpNumericUpDown.TabIndex = 11; this.baseHpNumericUpDown.ValueChanged += new System.EventHandler(this.baseHpNumericUpDown_ValueChanged); // // label16 // this.label16.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label16.AutoSize = true; this.label16.Location = new System.Drawing.Point(8, 324); this.label16.Name = "label16"; this.label16.Size = new System.Drawing.Size(60, 13); this.label16.TabIndex = 14; this.label16.Text = "Sp. Def."; // // baseSpDefNumericUpDown // this.baseSpDefNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.baseSpDefNumericUpDown.Location = new System.Drawing.Point(8, 360); this.baseSpDefNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.baseSpDefNumericUpDown.Name = "baseSpDefNumericUpDown"; this.baseSpDefNumericUpDown.Size = new System.Drawing.Size(60, 20); this.baseSpDefNumericUpDown.TabIndex = 15; this.baseSpDefNumericUpDown.ValueChanged += new System.EventHandler(this.baseSpDefNumericUpDown_ValueChanged); // // label17 // this.label17.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label17.AutoSize = true; this.label17.Location = new System.Drawing.Point(8, 403); this.label17.Name = "label17"; this.label17.Size = new System.Drawing.Size(60, 13); this.label17.TabIndex = 16; this.label17.Text = "Speed"; // // groupBox3 // this.groupBox3.Controls.Add(this.tableLayoutPanel5); this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox3.Location = new System.Drawing.Point(96, 8); this.groupBox3.Name = "groupBox3"; this.tableLayoutPanel2.SetRowSpan(this.groupBox3, 2); this.groupBox3.Size = new System.Drawing.Size(82, 506); this.groupBox3.TabIndex = 35; this.groupBox3.TabStop = false; this.groupBox3.Text = "EV Yield"; // // tableLayoutPanel5 // this.tableLayoutPanel5.ColumnCount = 1; this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel5.Controls.Add(this.evSpeedNumericUpDown, 0, 11); this.tableLayoutPanel5.Controls.Add(this.evSpAtkNumericUpDown, 0, 7); this.tableLayoutPanel5.Controls.Add(this.label7, 0, 6); this.tableLayoutPanel5.Controls.Add(this.evDefNumericUpDown, 0, 5); this.tableLayoutPanel5.Controls.Add(this.label4, 0, 0); this.tableLayoutPanel5.Controls.Add(this.evAtkNumericUpDown, 0, 3); this.tableLayoutPanel5.Controls.Add(this.label5, 0, 2); this.tableLayoutPanel5.Controls.Add(this.label6, 0, 4); this.tableLayoutPanel5.Controls.Add(this.evHpNumericUpDown, 0, 1); this.tableLayoutPanel5.Controls.Add(this.label8, 0, 8); this.tableLayoutPanel5.Controls.Add(this.evSpDefNumericUpDown, 0, 9); this.tableLayoutPanel5.Controls.Add(this.label9, 0, 10); this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel5.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel5.Name = "tableLayoutPanel5"; this.tableLayoutPanel5.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel5.RowCount = 12; this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.Size = new System.Drawing.Size(76, 487); this.tableLayoutPanel5.TabIndex = 19; // // evSpeedNumericUpDown // this.evSpeedNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evSpeedNumericUpDown.Location = new System.Drawing.Point(8, 441); this.evSpeedNumericUpDown.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.evSpeedNumericUpDown.Name = "evSpeedNumericUpDown"; this.evSpeedNumericUpDown.Size = new System.Drawing.Size(60, 20); this.evSpeedNumericUpDown.TabIndex = 17; this.evSpeedNumericUpDown.ValueChanged += new System.EventHandler(this.evSpeedNumericUpDown_ValueChanged); // // evSpAtkNumericUpDown // this.evSpAtkNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evSpAtkNumericUpDown.Location = new System.Drawing.Point(8, 281); this.evSpAtkNumericUpDown.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.evSpAtkNumericUpDown.Name = "evSpAtkNumericUpDown"; this.evSpAtkNumericUpDown.Size = new System.Drawing.Size(60, 20); this.evSpAtkNumericUpDown.TabIndex = 13; this.evSpAtkNumericUpDown.ValueChanged += new System.EventHandler(this.evSpAtkNumericUpDown_ValueChanged); // // label7 // this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(8, 245); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(60, 13); this.label7.TabIndex = 12; this.label7.Text = "Sp. Atk."; // // evDefNumericUpDown // this.evDefNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evDefNumericUpDown.Location = new System.Drawing.Point(8, 202); this.evDefNumericUpDown.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.evDefNumericUpDown.Name = "evDefNumericUpDown"; this.evDefNumericUpDown.Size = new System.Drawing.Size(60, 20); this.evDefNumericUpDown.TabIndex = 11; this.evDefNumericUpDown.ValueChanged += new System.EventHandler(this.evDefNumericUpDown_ValueChanged); // // label4 // this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(8, 8); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(60, 13); this.label4.TabIndex = 0; this.label4.Text = "HP"; // // evAtkNumericUpDown // this.evAtkNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evAtkNumericUpDown.Location = new System.Drawing.Point(8, 123); this.evAtkNumericUpDown.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.evAtkNumericUpDown.Name = "evAtkNumericUpDown"; this.evAtkNumericUpDown.Size = new System.Drawing.Size(60, 20); this.evAtkNumericUpDown.TabIndex = 11; this.evAtkNumericUpDown.ValueChanged += new System.EventHandler(this.evAtkNumericUpDown_ValueChanged); // // label5 // this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(8, 87); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(60, 13); this.label5.TabIndex = 1; this.label5.Text = "Atk"; // // label6 // this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(8, 166); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(60, 13); this.label6.TabIndex = 2; this.label6.Text = "Def"; // // evHpNumericUpDown // this.evHpNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evHpNumericUpDown.Location = new System.Drawing.Point(8, 44); this.evHpNumericUpDown.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.evHpNumericUpDown.Name = "evHpNumericUpDown"; this.evHpNumericUpDown.Size = new System.Drawing.Size(60, 20); this.evHpNumericUpDown.TabIndex = 11; this.evHpNumericUpDown.ValueChanged += new System.EventHandler(this.evHpNumericUpDown_ValueChanged); // // label8 // this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(8, 324); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(60, 13); this.label8.TabIndex = 14; this.label8.Text = "Sp. Def."; // // evSpDefNumericUpDown // this.evSpDefNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.evSpDefNumericUpDown.Location = new System.Drawing.Point(8, 360); this.evSpDefNumericUpDown.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.evSpDefNumericUpDown.Name = "evSpDefNumericUpDown"; this.evSpDefNumericUpDown.Size = new System.Drawing.Size(60, 20); this.evSpDefNumericUpDown.TabIndex = 15; this.evSpDefNumericUpDown.ValueChanged += new System.EventHandler(this.evSpDefNumericUpDown_ValueChanged); // // label9 // this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(8, 403); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(60, 13); this.label9.TabIndex = 16; this.label9.Text = "Speed"; // // groupBox5 // this.groupBox5.Controls.Add(this.tableLayoutPanel4); this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox5.Location = new System.Drawing.Point(314, 8); this.groupBox5.Name = "groupBox5"; this.groupBox5.Size = new System.Drawing.Size(160, 250); this.groupBox5.TabIndex = 37; this.groupBox5.TabStop = false; this.groupBox5.Text = "Abilities"; // // tableLayoutPanel4 // this.tableLayoutPanel4.ColumnCount = 1; this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel4.Controls.Add(this.label1, 0, 0); this.tableLayoutPanel4.Controls.Add(this.label2, 0, 2); this.tableLayoutPanel4.Controls.Add(this.ability1InputComboBox, 0, 1); this.tableLayoutPanel4.Controls.Add(this.ability2InputComboBox, 0, 3); this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel4.Name = "tableLayoutPanel4"; this.tableLayoutPanel4.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel4.RowCount = 4; this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel4.Size = new System.Drawing.Size(154, 231); this.tableLayoutPanel4.TabIndex = 18; // // label1 // this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(8, 8); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(138, 13); this.label1.TabIndex = 0; this.label1.Text = "First"; // // label2 // this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(8, 118); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(138, 13); this.label2.TabIndex = 1; this.label2.Text = "Second"; // // ability1InputComboBox // this.ability1InputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.ability1InputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.ability1InputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.ability1InputComboBox.FormattingEnabled = true; this.ability1InputComboBox.Location = new System.Drawing.Point(8, 59); this.ability1InputComboBox.Name = "ability1InputComboBox"; this.ability1InputComboBox.Size = new System.Drawing.Size(138, 21); this.ability1InputComboBox.TabIndex = 3; this.ability1InputComboBox.SelectedIndexChanged += new System.EventHandler(this.ability1InputComboBox_SelectedIndexChanged); // // ability2InputComboBox // this.ability2InputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.ability2InputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.ability2InputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.ability2InputComboBox.FormattingEnabled = true; this.ability2InputComboBox.Location = new System.Drawing.Point(8, 170); this.ability2InputComboBox.Name = "ability2InputComboBox"; this.ability2InputComboBox.Size = new System.Drawing.Size(138, 21); this.ability2InputComboBox.TabIndex = 4; this.ability2InputComboBox.SelectedIndexChanged += new System.EventHandler(this.ability2InputComboBox_SelectedIndexChanged); // // groupBox6 // this.groupBox6.Controls.Add(this.tableLayoutPanel9); this.groupBox6.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox6.Location = new System.Drawing.Point(480, 8); this.groupBox6.Name = "groupBox6"; this.groupBox6.Size = new System.Drawing.Size(126, 250); this.groupBox6.TabIndex = 38; this.groupBox6.TabStop = false; this.groupBox6.Text = "Egg"; // // tableLayoutPanel9 // this.tableLayoutPanel9.ColumnCount = 1; this.tableLayoutPanel9.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel9.Controls.Add(this.eggStepsNumericUpDown, 0, 5); this.tableLayoutPanel9.Controls.Add(this.label21, 0, 0); this.tableLayoutPanel9.Controls.Add(this.label22, 0, 2); this.tableLayoutPanel9.Controls.Add(this.eggGroup1InputCombobox, 0, 1); this.tableLayoutPanel9.Controls.Add(this.eggGroup2InputCombobox, 0, 3); this.tableLayoutPanel9.Controls.Add(this.label23, 0, 4); this.tableLayoutPanel9.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel9.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel9.Name = "tableLayoutPanel9"; this.tableLayoutPanel9.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel9.RowCount = 6; this.tableLayoutPanel9.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel9.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel9.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel9.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel9.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel9.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel9.Size = new System.Drawing.Size(120, 231); this.tableLayoutPanel9.TabIndex = 23; // // eggStepsNumericUpDown // this.eggStepsNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.eggStepsNumericUpDown.Location = new System.Drawing.Point(8, 188); this.eggStepsNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.eggStepsNumericUpDown.Name = "eggStepsNumericUpDown"; this.eggStepsNumericUpDown.Size = new System.Drawing.Size(104, 20); this.eggStepsNumericUpDown.TabIndex = 18; this.eggStepsNumericUpDown.ValueChanged += new System.EventHandler(this.eggStepsNumericUpDown_ValueChanged); // // label21 // this.label21.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label21.AutoSize = true; this.label21.Location = new System.Drawing.Point(8, 8); this.label21.Name = "label21"; this.label21.Size = new System.Drawing.Size(104, 13); this.label21.TabIndex = 13; this.label21.Text = "Group 1"; // // label22 // this.label22.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label22.AutoSize = true; this.label22.Location = new System.Drawing.Point(8, 81); this.label22.Name = "label22"; this.label22.Size = new System.Drawing.Size(104, 13); this.label22.TabIndex = 14; this.label22.Text = "Group 2"; // // eggGroup1InputCombobox // this.eggGroup1InputCombobox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.eggGroup1InputCombobox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.eggGroup1InputCombobox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.eggGroup1InputCombobox.FormattingEnabled = true; this.eggGroup1InputCombobox.Location = new System.Drawing.Point(8, 41); this.eggGroup1InputCombobox.Name = "eggGroup1InputCombobox"; this.eggGroup1InputCombobox.Size = new System.Drawing.Size(104, 21); this.eggGroup1InputCombobox.TabIndex = 15; this.eggGroup1InputCombobox.SelectedIndexChanged += new System.EventHandler(this.eggGroup1InputCombobox_SelectedIndexChanged); // // eggGroup2InputCombobox // this.eggGroup2InputCombobox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.eggGroup2InputCombobox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.eggGroup2InputCombobox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.eggGroup2InputCombobox.FormattingEnabled = true; this.eggGroup2InputCombobox.Location = new System.Drawing.Point(8, 114); this.eggGroup2InputCombobox.Name = "eggGroup2InputCombobox"; this.eggGroup2InputCombobox.Size = new System.Drawing.Size(104, 21); this.eggGroup2InputCombobox.TabIndex = 16; this.eggGroup2InputCombobox.SelectedIndexChanged += new System.EventHandler(this.eggGroup2InputCombobox_SelectedIndexChanged); // // label23 // this.label23.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label23.AutoSize = true; this.label23.Location = new System.Drawing.Point(8, 154); this.label23.Name = "label23"; this.label23.Size = new System.Drawing.Size(104, 13); this.label23.TabIndex = 17; this.label23.Text = "Hatch Steps"; // // groupBox7 // this.groupBox7.Controls.Add(this.tableLayoutPanel8); this.groupBox7.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox7.Location = new System.Drawing.Point(184, 264); this.groupBox7.Name = "groupBox7"; this.groupBox7.Size = new System.Drawing.Size(124, 250); this.groupBox7.TabIndex = 39; this.groupBox7.TabStop = false; this.groupBox7.Text = "Misc"; // // tableLayoutPanel8 // this.tableLayoutPanel8.ColumnCount = 1; this.tableLayoutPanel8.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel8.Controls.Add(this.dexColorInputComboBox, 0, 5); this.tableLayoutPanel8.Controls.Add(this.label31, 0, 4); this.tableLayoutPanel8.Controls.Add(this.label18, 0, 0); this.tableLayoutPanel8.Controls.Add(this.growthCurveInputComboBox, 0, 1); this.tableLayoutPanel8.Controls.Add(this.label20, 0, 2); this.tableLayoutPanel8.Controls.Add(this.baseExpYieldNumericUpDown, 0, 3); this.tableLayoutPanel8.Controls.Add(this.flipFlagCheckBox, 0, 6); this.tableLayoutPanel8.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel8.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel8.Name = "tableLayoutPanel8"; this.tableLayoutPanel8.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel8.RowCount = 7; this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel8.Size = new System.Drawing.Size(118, 231); this.tableLayoutPanel8.TabIndex = 22; // // dexColorInputComboBox // this.dexColorInputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.dexColorInputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dexColorInputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dexColorInputComboBox.FormattingEnabled = true; this.dexColorInputComboBox.Location = new System.Drawing.Point(8, 154); this.dexColorInputComboBox.Name = "dexColorInputComboBox"; this.dexColorInputComboBox.Size = new System.Drawing.Size(102, 21); this.dexColorInputComboBox.TabIndex = 20; this.dexColorInputComboBox.SelectedIndexChanged += new System.EventHandler(this.dexColorInputComboBox_SelectedIndexChanged); // // label31 // this.label31.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label31.AutoSize = true; this.label31.Location = new System.Drawing.Point(8, 128); this.label31.Name = "label31"; this.label31.Size = new System.Drawing.Size(102, 13); this.label31.TabIndex = 19; this.label31.Text = "Dex Color"; // // label18 // this.label18.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label18.AutoSize = true; this.label18.Location = new System.Drawing.Point(8, 8); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(102, 13); this.label18.TabIndex = 13; this.label18.Text = "Growth Curve"; // // growthCurveInputComboBox // this.growthCurveInputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.growthCurveInputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.growthCurveInputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.growthCurveInputComboBox.FormattingEnabled = true; this.growthCurveInputComboBox.Location = new System.Drawing.Point(8, 34); this.growthCurveInputComboBox.Name = "growthCurveInputComboBox"; this.growthCurveInputComboBox.Size = new System.Drawing.Size(102, 21); this.growthCurveInputComboBox.TabIndex = 15; this.growthCurveInputComboBox.SelectedIndexChanged += new System.EventHandler(this.growthCurveInputComboBox_SelectedIndexChanged); // // label20 // this.label20.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label20.AutoSize = true; this.label20.Location = new System.Drawing.Point(8, 68); this.label20.Name = "label20"; this.label20.Size = new System.Drawing.Size(102, 13); this.label20.TabIndex = 17; this.label20.Text = "Base Exp. Yield"; // // baseExpYieldNumericUpDown // this.baseExpYieldNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.baseExpYieldNumericUpDown.Location = new System.Drawing.Point(8, 95); this.baseExpYieldNumericUpDown.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.baseExpYieldNumericUpDown.Name = "baseExpYieldNumericUpDown"; this.baseExpYieldNumericUpDown.Size = new System.Drawing.Size(102, 20); this.baseExpYieldNumericUpDown.TabIndex = 18; this.baseExpYieldNumericUpDown.ValueChanged += new System.EventHandler(this.baseExpYieldNumericUpDown_ValueChanged); // // flipFlagCheckBox // this.flipFlagCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.flipFlagCheckBox.AutoSize = true; this.flipFlagCheckBox.Location = new System.Drawing.Point(8, 197); this.flipFlagCheckBox.Name = "flipFlagCheckBox"; this.flipFlagCheckBox.Size = new System.Drawing.Size(102, 17); this.flipFlagCheckBox.TabIndex = 21; this.flipFlagCheckBox.Text = "Flip Flag"; this.flipFlagCheckBox.UseVisualStyleBackColor = true; this.flipFlagCheckBox.CheckedChanged += new System.EventHandler(this.flipFlagCheckBox_CheckedChanged); // // tableLayoutPanel3 // this.tableLayoutPanel3.ColumnCount = 1; this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel3.Controls.Add(this.groupBox8, 0, 1); this.tableLayoutPanel3.Controls.Add(this.groupBox9, 0, 0); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel3.Location = new System.Drawing.Point(314, 264); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 2; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 79.83539F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20.16461F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel3.Size = new System.Drawing.Size(160, 250); this.tableLayoutPanel3.TabIndex = 40; // // groupBox8 // this.groupBox8.Controls.Add(this.baseFriendshipNumericUpDown); this.groupBox8.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox8.Location = new System.Drawing.Point(3, 202); this.groupBox8.Name = "groupBox8"; this.groupBox8.Size = new System.Drawing.Size(154, 45); this.groupBox8.TabIndex = 23; this.groupBox8.TabStop = false; this.groupBox8.Text = "Base Friendship"; // // baseFriendshipNumericUpDown // this.baseFriendshipNumericUpDown.Dock = System.Windows.Forms.DockStyle.Fill; this.baseFriendshipNumericUpDown.Location = new System.Drawing.Point(3, 16); this.baseFriendshipNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.baseFriendshipNumericUpDown.Name = "baseFriendshipNumericUpDown"; this.baseFriendshipNumericUpDown.Size = new System.Drawing.Size(148, 20); this.baseFriendshipNumericUpDown.TabIndex = 19; this.baseFriendshipNumericUpDown.ValueChanged += new System.EventHandler(this.baseFriendshipNumericUpDown_ValueChanged); // // groupBox9 // this.groupBox9.Controls.Add(this.tableLayoutPanel12); this.groupBox9.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox9.Location = new System.Drawing.Point(3, 3); this.groupBox9.Name = "groupBox9"; this.groupBox9.Size = new System.Drawing.Size(154, 193); this.groupBox9.TabIndex = 24; this.groupBox9.TabStop = false; this.groupBox9.Text = "Held Items"; // // tableLayoutPanel12 // this.tableLayoutPanel12.ColumnCount = 2; this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 23.18841F)); this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 76.81159F)); this.tableLayoutPanel12.Controls.Add(this.label30, 0, 2); this.tableLayoutPanel12.Controls.Add(this.label29, 0, 0); this.tableLayoutPanel12.Controls.Add(this.item2PictureBox, 0, 3); this.tableLayoutPanel12.Controls.Add(this.item1PictureBox, 0, 1); this.tableLayoutPanel12.Controls.Add(this.item1InputComboBox, 1, 1); this.tableLayoutPanel12.Controls.Add(this.item2InputComboBox, 1, 3); this.tableLayoutPanel12.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel12.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel12.Name = "tableLayoutPanel12"; this.tableLayoutPanel12.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel12.RowCount = 4; this.tableLayoutPanel12.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel12.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel12.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel12.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel12.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel12.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel12.Size = new System.Drawing.Size(148, 174); this.tableLayoutPanel12.TabIndex = 18; // // label30 // this.label30.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label30.AutoSize = true; this.tableLayoutPanel12.SetColumnSpan(this.label30, 2); this.label30.Location = new System.Drawing.Point(8, 90); this.label30.Name = "label30"; this.label30.Size = new System.Drawing.Size(132, 13); this.label30.TabIndex = 20; this.label30.Text = "Item 2"; // // label29 // this.label29.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label29.AutoSize = true; this.tableLayoutPanel12.SetColumnSpan(this.label29, 2); this.label29.Location = new System.Drawing.Point(8, 8); this.label29.Name = "label29"; this.label29.Size = new System.Drawing.Size(132, 13); this.label29.TabIndex = 19; this.label29.Text = "Item 1"; // // item2PictureBox // this.item2PictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.item2PictureBox.Image = ((System.Drawing.Image)(resources.GetObject("item2PictureBox.Image"))); this.item2PictureBox.Location = new System.Drawing.Point(8, 125); this.item2PictureBox.Name = "item2PictureBox"; this.item2PictureBox.Size = new System.Drawing.Size(26, 25); this.item2PictureBox.TabIndex = 16; this.item2PictureBox.TabStop = false; this.item2PictureBox.Visible = false; // // item1PictureBox // this.item1PictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.item1PictureBox.Image = ((System.Drawing.Image)(resources.GetObject("item1PictureBox.Image"))); this.item1PictureBox.Location = new System.Drawing.Point(8, 43); this.item1PictureBox.Name = "item1PictureBox"; this.item1PictureBox.Size = new System.Drawing.Size(26, 25); this.item1PictureBox.TabIndex = 15; this.item1PictureBox.TabStop = false; this.item1PictureBox.Visible = false; // // item1InputComboBox // this.item1InputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.item1InputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.item1InputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.item1InputComboBox.FormattingEnabled = true; this.item1InputComboBox.Location = new System.Drawing.Point(40, 45); this.item1InputComboBox.Name = "item1InputComboBox"; this.item1InputComboBox.Size = new System.Drawing.Size(100, 21); this.item1InputComboBox.TabIndex = 17; this.item1InputComboBox.SelectedIndexChanged += new System.EventHandler(this.item1InputComboBox_SelectedIndexChanged); // // item2InputComboBox // this.item2InputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.item2InputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.item2InputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.item2InputComboBox.FormattingEnabled = true; this.item2InputComboBox.Location = new System.Drawing.Point(40, 127); this.item2InputComboBox.Name = "item2InputComboBox"; this.item2InputComboBox.Size = new System.Drawing.Size(100, 21); this.item2InputComboBox.TabIndex = 18; this.item2InputComboBox.SelectedIndexChanged += new System.EventHandler(this.item2InputComboBox_SelectedIndexChanged); // // tableLayoutPanel6 // this.tableLayoutPanel6.ColumnCount = 1; this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel6.Controls.Add(this.groupBox11, 0, 1); this.tableLayoutPanel6.Controls.Add(this.groupBox4, 0, 0); this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel6.Location = new System.Drawing.Point(184, 8); this.tableLayoutPanel6.Name = "tableLayoutPanel6"; this.tableLayoutPanel6.RowCount = 2; this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 44.4F)); this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 55.6F)); this.tableLayoutPanel6.Size = new System.Drawing.Size(124, 250); this.tableLayoutPanel6.TabIndex = 44; // // groupBox11 // this.groupBox11.Controls.Add(this.tableLayoutPanel14); this.groupBox11.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox11.Location = new System.Drawing.Point(3, 114); this.groupBox11.Name = "groupBox11"; this.groupBox11.Size = new System.Drawing.Size(118, 133); this.groupBox11.TabIndex = 45; this.groupBox11.TabStop = false; this.groupBox11.Text = "Rates"; // // tableLayoutPanel14 // this.tableLayoutPanel14.ColumnCount = 1; this.tableLayoutPanel14.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel14.Controls.Add(this.label33, 0, 0); this.tableLayoutPanel14.Controls.Add(this.label35, 0, 2); this.tableLayoutPanel14.Controls.Add(this.escapeRateNumericUpDown, 0, 3); this.tableLayoutPanel14.Controls.Add(this.catchRateNumericUpDown, 0, 1); this.tableLayoutPanel14.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel14.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel14.Name = "tableLayoutPanel14"; this.tableLayoutPanel14.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel14.RowCount = 4; this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel14.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel14.Size = new System.Drawing.Size(112, 114); this.tableLayoutPanel14.TabIndex = 24; // // label33 // this.label33.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label33.AutoSize = true; this.label33.Location = new System.Drawing.Point(8, 8); this.label33.Name = "label33"; this.label33.Size = new System.Drawing.Size(96, 13); this.label33.TabIndex = 14; this.label33.Text = "Catch Rate"; // // label35 // this.label35.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label35.AutoSize = true; this.label35.Location = new System.Drawing.Point(8, 60); this.label35.Name = "label35"; this.label35.Size = new System.Drawing.Size(96, 13); this.label35.TabIndex = 21; this.label35.Text = "Escape Rate"; // // escapeRateNumericUpDown // this.escapeRateNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.escapeRateNumericUpDown.Location = new System.Drawing.Point(8, 83); this.escapeRateNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.escapeRateNumericUpDown.Name = "escapeRateNumericUpDown"; this.escapeRateNumericUpDown.Size = new System.Drawing.Size(96, 20); this.escapeRateNumericUpDown.TabIndex = 22; this.escapeRateNumericUpDown.ValueChanged += new System.EventHandler(this.escapeRateNumericUpDown_ValueChanged); // // catchRateNumericUpDown // this.catchRateNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.catchRateNumericUpDown.Location = new System.Drawing.Point(8, 31); this.catchRateNumericUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.catchRateNumericUpDown.Name = "catchRateNumericUpDown"; this.catchRateNumericUpDown.Size = new System.Drawing.Size(96, 20); this.catchRateNumericUpDown.TabIndex = 19; this.catchRateNumericUpDown.ValueChanged += new System.EventHandler(this.catchRateNumericUpDown_ValueChanged); // // groupBox4 // this.groupBox4.Controls.Add(this.tableLayoutPanel10); this.groupBox4.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox4.Location = new System.Drawing.Point(3, 3); this.groupBox4.Name = "groupBox4"; this.groupBox4.Size = new System.Drawing.Size(118, 105); this.groupBox4.TabIndex = 37; this.groupBox4.TabStop = false; this.groupBox4.Text = "Types"; // // tableLayoutPanel10 // this.tableLayoutPanel10.ColumnCount = 1; this.tableLayoutPanel10.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel10.Controls.Add(this.type2InputComboBox, 0, 2); this.tableLayoutPanel10.Controls.Add(this.type1InputComboBox, 0, 0); this.tableLayoutPanel10.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel10.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel10.Name = "tableLayoutPanel10"; this.tableLayoutPanel10.Padding = new System.Windows.Forms.Padding(5); this.tableLayoutPanel10.RowCount = 3; this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel10.Size = new System.Drawing.Size(112, 86); this.tableLayoutPanel10.TabIndex = 20; // // type2InputComboBox // this.type2InputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.type2InputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.type2InputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.type2InputComboBox.FormattingEnabled = true; this.type2InputComboBox.Location = new System.Drawing.Point(8, 55); this.type2InputComboBox.Name = "type2InputComboBox"; this.type2InputComboBox.Size = new System.Drawing.Size(96, 21); this.type2InputComboBox.TabIndex = 5; this.type2InputComboBox.SelectedIndexChanged += new System.EventHandler(this.type2InputComboBox_SelectedIndexChanged); // // type1InputComboBox // this.type1InputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.type1InputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.type1InputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.type1InputComboBox.FormattingEnabled = true; this.type1InputComboBox.Location = new System.Drawing.Point(8, 9); this.type1InputComboBox.Name = "type1InputComboBox"; this.type1InputComboBox.Size = new System.Drawing.Size(96, 21); this.type1InputComboBox.TabIndex = 4; this.type1InputComboBox.SelectedIndexChanged += new System.EventHandler(this.type1InputComboBox_SelectedIndexChanged); // // pokemonNameInputComboBox // this.pokemonNameInputComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.pokemonNameInputComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.pokemonNameInputComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.pokemonNameInputComboBox.FormattingEnabled = true; this.pokemonNameInputComboBox.Location = new System.Drawing.Point(78, 16); this.pokemonNameInputComboBox.Name = "pokemonNameInputComboBox"; this.pokemonNameInputComboBox.Size = new System.Drawing.Size(230, 21); this.pokemonNameInputComboBox.TabIndex = 31; this.pokemonNameInputComboBox.SelectedIndexChanged += new System.EventHandler(this.pokemonNameInputComboBox_SelectedIndexChanged); // // PersonalDataEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1086, 591); this.Controls.Add(this.tableLayoutPanel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "PersonalDataEditor"; this.Padding = new System.Windows.Forms.Padding(5); this.Text = "Personal Data Editor"; this.tableLayoutPanel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pokemonPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.monNumberNumericUpDown)).EndInit(); this.tableLayoutPanel2.ResumeLayout(false); this.groupBox10.ResumeLayout(false); this.tableLayoutPanel13.ResumeLayout(false); this.tableLayoutPanel13.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.genderProbabilityNumericUpDown)).EndInit(); this.groupBox1.ResumeLayout(false); this.tableLayoutPanel11.ResumeLayout(false); this.tableLayoutPanel11.PerformLayout(); this.groupBox2.ResumeLayout(false); this.tableLayoutPanel7.ResumeLayout(false); this.tableLayoutPanel7.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.baseSpeedNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.baseSpAtkNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.baseDefNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.baseAtkNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.baseHpNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.baseSpDefNumericUpDown)).EndInit(); this.groupBox3.ResumeLayout(false); this.tableLayoutPanel5.ResumeLayout(false); this.tableLayoutPanel5.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.evSpeedNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evSpAtkNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evDefNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evAtkNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evHpNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.evSpDefNumericUpDown)).EndInit(); this.groupBox5.ResumeLayout(false); this.tableLayoutPanel4.ResumeLayout(false); this.tableLayoutPanel4.PerformLayout(); this.groupBox6.ResumeLayout(false); this.tableLayoutPanel9.ResumeLayout(false); this.tableLayoutPanel9.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.eggStepsNumericUpDown)).EndInit(); this.groupBox7.ResumeLayout(false); this.tableLayoutPanel8.ResumeLayout(false); this.tableLayoutPanel8.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.baseExpYieldNumericUpDown)).EndInit(); this.tableLayoutPanel3.ResumeLayout(false); this.groupBox8.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.baseFriendshipNumericUpDown)).EndInit(); this.groupBox9.ResumeLayout(false); this.tableLayoutPanel12.ResumeLayout(false); this.tableLayoutPanel12.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.item2PictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.item1PictureBox)).EndInit(); this.tableLayoutPanel6.ResumeLayout(false); this.groupBox11.ResumeLayout(false); this.tableLayoutPanel14.ResumeLayout(false); this.tableLayoutPanel14.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.escapeRateNumericUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.catchRateNumericUpDown)).EndInit(); this.groupBox4.ResumeLayout(false); this.tableLayoutPanel10.ResumeLayout(false); this.ResumeLayout(false); } #endregion private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.PictureBox pokemonPictureBox; private System.Windows.Forms.Button saveDataButton; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel11; private System.Windows.Forms.ListBox addableMachinesListBox; private System.Windows.Forms.ListBox addedMachinesListBox; private System.Windows.Forms.Button addMachineButton; private System.Windows.Forms.Button removeAllMachinesButton; private System.Windows.Forms.Button addAllMachinesButton; private System.Windows.Forms.Button removeMachineButton; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel7; private System.Windows.Forms.NumericUpDown baseSpeedNumericUpDown; private System.Windows.Forms.NumericUpDown baseSpAtkNumericUpDown; private System.Windows.Forms.Label label12; private System.Windows.Forms.NumericUpDown baseDefNumericUpDown; private System.Windows.Forms.Label label13; private System.Windows.Forms.NumericUpDown baseAtkNumericUpDown; private System.Windows.Forms.Label label14; private System.Windows.Forms.Label label15; private System.Windows.Forms.NumericUpDown baseHpNumericUpDown; private System.Windows.Forms.Label label16; private System.Windows.Forms.NumericUpDown baseSpDefNumericUpDown; private System.Windows.Forms.Label label17; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; private System.Windows.Forms.NumericUpDown evSpeedNumericUpDown; private System.Windows.Forms.NumericUpDown evSpAtkNumericUpDown; private System.Windows.Forms.Label label7; private System.Windows.Forms.NumericUpDown evDefNumericUpDown; private System.Windows.Forms.Label label4; private System.Windows.Forms.NumericUpDown evAtkNumericUpDown; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.NumericUpDown evHpNumericUpDown; private System.Windows.Forms.Label label8; private System.Windows.Forms.NumericUpDown evSpDefNumericUpDown; private System.Windows.Forms.Label label9; private System.Windows.Forms.GroupBox groupBox5; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private InputComboBox ability1InputComboBox; private InputComboBox ability2InputComboBox; private System.Windows.Forms.GroupBox groupBox6; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel9; private System.Windows.Forms.NumericUpDown eggStepsNumericUpDown; private System.Windows.Forms.Label label21; private System.Windows.Forms.Label label22; private InputComboBox eggGroup1InputCombobox; private InputComboBox eggGroup2InputCombobox; private System.Windows.Forms.Label label23; private System.Windows.Forms.GroupBox groupBox7; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel8; private InputComboBox dexColorInputComboBox; private System.Windows.Forms.Label label31; private System.Windows.Forms.Label label18; private InputComboBox growthCurveInputComboBox; private System.Windows.Forms.Label label20; private System.Windows.Forms.NumericUpDown baseExpYieldNumericUpDown; private System.Windows.Forms.CheckBox flipFlagCheckBox; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; private System.Windows.Forms.GroupBox groupBox8; private System.Windows.Forms.NumericUpDown baseFriendshipNumericUpDown; private System.Windows.Forms.GroupBox groupBox9; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel12; private System.Windows.Forms.Label label30; private System.Windows.Forms.Label label29; private System.Windows.Forms.PictureBox item2PictureBox; private System.Windows.Forms.PictureBox item1PictureBox; private InputComboBox item1InputComboBox; private InputComboBox item2InputComboBox; private System.Windows.Forms.GroupBox groupBox10; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel13; private System.Windows.Forms.Label label25; private System.Windows.Forms.NumericUpDown genderProbabilityNumericUpDown; private System.Windows.Forms.Label genderLabel; private System.Windows.Forms.Label label10; private System.Windows.Forms.Label label11; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; private System.Windows.Forms.GroupBox groupBox11; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel14; private System.Windows.Forms.Label label33; private System.Windows.Forms.Label label35; private System.Windows.Forms.NumericUpDown escapeRateNumericUpDown; private System.Windows.Forms.NumericUpDown catchRateNumericUpDown; private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel10; private InputComboBox type2InputComboBox; private InputComboBox type1InputComboBox; public InputComboBox pokemonNameInputComboBox; public System.Windows.Forms.NumericUpDown monNumberNumericUpDown; } } ================================================ FILE: DS_Map/PersonalDataEditor.cs ================================================ using DSPRE.Resources; using DSPRE.ROMFiles; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Windows.Controls; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox; namespace DSPRE { public partial class PersonalDataEditor : Form { private readonly string[] fileNames; private readonly string[] pokenames; private int currentLoadedId = 0; private PokemonPersonalData currentLoadedFile = null; private static bool dirty = false; private bool modifiedAbilities = false; private static readonly string formName = "Personal Data Editor"; PokemonEditor _parent; public PersonalDataEditor(string[] itemNames, string[] abilityNames, System.Windows.Forms.Control parent, PokemonEditor pokeEditor) { this.fileNames = RomInfo.GetPokemonNames().ToArray();; this._parent = pokeEditor; InitializeComponent(); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Size = parent.Size; this.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; Helpers.DisableHandlers(); BindingList listItemNames = new BindingList(itemNames); item1InputComboBox.DataSource = new BindingSource(listItemNames, string.Empty); item2InputComboBox.DataSource = new BindingSource(listItemNames, string.Empty); BindingList listTypeNames = new BindingList(Enum.GetNames(typeof(PokemonType))); type1InputComboBox.DataSource = new BindingSource(listTypeNames, string.Empty); type2InputComboBox.DataSource = new BindingSource(listTypeNames, string.Empty); BindingList listAbilityNames = new BindingList(abilityNames); ability1InputComboBox.DataSource = new BindingSource(listAbilityNames, string.Empty); ability2InputComboBox.DataSource = new BindingSource(listAbilityNames, string.Empty); BindingList listEggGroups = new BindingList(Enum.GetNames(typeof(PokemonEggGroup))); eggGroup1InputCombobox.DataSource = new BindingSource(listEggGroups, string.Empty); eggGroup2InputCombobox.DataSource = new BindingSource(listEggGroups, string.Empty); growthCurveInputComboBox.Items.AddRange(Enum.GetNames(typeof(PokemonGrowthCurve))); dexColorInputComboBox.Items.AddRange(Enum.GetNames(typeof(PokemonDexColor))); /* ---------------- */ int count = RomInfo.GetPersonalFilesCount(); this.pokenames = RomInfo.GetPokemonNames(); List fileNames = new List(count); fileNames.AddRange(pokenames); for (int i = 0; i < PokeDatabase.PersonalData.personalExtraFiles.Length; i++) { PokeDatabase.PersonalData.PersonalExtraFiles altFormEntry = PokeDatabase.PersonalData.personalExtraFiles[i]; fileNames.Add(fileNames[altFormEntry.monId] + " - " + altFormEntry.description); } int extraEntries = fileNames.Count; for (int i = 0; i < count - extraEntries; i++) { fileNames.Add($"Extra entry {fileNames.Count}"); } this.fileNames = fileNames.ToArray(); monNumberNumericUpDown.Maximum = fileNames.Count - 1; pokemonNameInputComboBox.Items.AddRange(this.fileNames); /* ---------------- */ Helpers.EnableHandlers(); pokemonNameInputComboBox.SelectedIndex = 1; } private void setDirty(bool status) { if (status) { dirty = true; this.Text = formName + "*"; } else { dirty = false; this.Text = formName; } } private void baseHpNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.baseHP = (byte)baseHpNumericUpDown.Value; setDirty(true); } private void baseAtkNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.baseAtk = (byte)baseAtkNumericUpDown.Value; setDirty(true); } private void baseDefNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.baseDef = (byte)baseDefNumericUpDown.Value; setDirty(true); } private void baseSpAtkNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.baseSpAtk = (byte)baseSpAtkNumericUpDown.Value; setDirty(true); } private void baseSpDefNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.baseSpDef = (byte)baseSpDefNumericUpDown.Value; setDirty(true); } private void baseSpeedNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.baseSpeed = (byte)baseSpeedNumericUpDown.Value; setDirty(true); } private void evHpNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.evHP = (byte)evHpNumericUpDown.Value; setDirty(true); } private void evAtkNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.evAtk = (byte)evAtkNumericUpDown.Value; setDirty(true); } private void evDefNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.evDef = (byte)evDefNumericUpDown.Value; setDirty(true); } private void evSpAtkNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.evSpAtk = (byte)evSpAtkNumericUpDown.Value; setDirty(true); } private void evSpDefNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.evSpDef = (byte)evSpDefNumericUpDown.Value; setDirty(true); } private void evSpeedNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.evSpeed = (byte)evSpeedNumericUpDown.Value; setDirty(true); } private void type1InputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.type1 = (PokemonType)type1InputComboBox.SelectedIndex; setDirty(true); } private void type2InputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.type2 = (PokemonType)type2InputComboBox.SelectedIndex; setDirty(true); } private void growthCurveInputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.growthCurve = (PokemonGrowthCurve)growthCurveInputComboBox.SelectedIndex; setDirty(true); } private void baseExpYieldNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.givenExp = (byte)baseExpYieldNumericUpDown.Value; setDirty(true); } private void dexColorInputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.color = (PokemonDexColor)dexColorInputComboBox.SelectedIndex; setDirty(true); } private void flipFlagCheckBox_CheckedChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.flip = flipFlagCheckBox.Checked; setDirty(true); } private void escapeRateNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.escapeRate = (byte)escapeRateNumericUpDown.Value; setDirty(true); } private void catchRateNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.catchRate = (byte)catchRateNumericUpDown.Value; setDirty(true); } private void genderProbabilityNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.genderVec = (byte)genderProbabilityNumericUpDown.Value; genderLabel.Text = GetGenderText(currentLoadedFile.genderVec); setDirty(true); } private string GetGenderText(int vec) { switch (vec) { case (byte)PokemonGender.Male: case (byte)PokemonGender.Female: return $"100% {Enum.GetName(typeof(PokemonGender), vec)}"; case (byte)PokemonGender.Unknown: return "Gender Unknown"; default: { vec++; float femaleProb = 100 * ((float)vec / 256); return $"{100 - femaleProb}% Male\n\n{femaleProb}% Female"; } } } private void ability1InputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.firstAbility = (byte)ability1InputComboBox.SelectedIndex; setDirty(true); modifiedAbilities = true; } private void ability2InputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.secondAbility = (byte)ability2InputComboBox.SelectedIndex; setDirty(true); modifiedAbilities = true; } private void eggGroup1InputCombobox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.eggGroup1 = (byte)eggGroup1InputCombobox.SelectedIndex; setDirty(true); } private void eggGroup2InputCombobox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.eggGroup2 = (byte)eggGroup2InputCombobox.SelectedIndex; setDirty(true); } private void eggStepsNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.eggSteps = (byte)eggStepsNumericUpDown.Value; setDirty(true); } private void item1InputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.item1 = (ushort)item1InputComboBox.SelectedIndex; setDirty(true); } private void item2InputComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.item2 = (ushort)item2InputComboBox.SelectedIndex; setDirty(true); } private void baseFriendshipNumericUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentLoadedFile.baseFriendship = (byte)baseFriendshipNumericUpDown.Value; setDirty(true); } private void addMachineButton_Click(object sender, EventArgs e) { int elemAdd = addableMachinesListBox.SelectedIndex; if (elemAdd < 0) { return; } int id = ZeroBasedIndexFromMachineName((string)addableMachinesListBox.SelectedItem); currentLoadedFile.machines.Add((byte)id); RebuildMachinesListBoxes(false, true); int count = addableMachinesListBox.Items.Count; if (count > 0) { addableMachinesListBox.SelectedIndex = Math.Min(count-1, elemAdd); } setDirty(true); } private void removeMachineButton_Click(object sender, EventArgs e) { int elemRemove = addedMachinesListBox.SelectedIndex; if (elemRemove < 0) { return; } int id = ZeroBasedIndexFromMachineName((string)addedMachinesListBox.SelectedItem); currentLoadedFile.machines.Remove((byte)id); RebuildMachinesListBoxes(true, false); int count = addedMachinesListBox.Items.Count; if (count > 0) { addedMachinesListBox.SelectedIndex = Math.Max(0, elemRemove - 1); } setDirty(true); } private void addAllMachinesButton_Click(object sender, EventArgs e) { int tot = PokemonPersonalData.tmsCount + PokemonPersonalData.hmsCount; if (currentLoadedFile.machines.Count == tot) { return; } currentLoadedFile.machines = new SortedSet(); for (byte i = 0; i < tot; i++) { currentLoadedFile.machines.Add(i); } RebuildMachinesListBoxes(); setDirty(true); } private void removeAllMachinesButton_Click(object sender, EventArgs e) { if (currentLoadedFile.machines.Count == 0) { return; } currentLoadedFile.machines.Clear(); RebuildMachinesListBoxes(); setDirty(true); } private void saveDataButton_Click(object sender, EventArgs e) { currentLoadedFile.SaveToFileDefaultDir(currentLoadedId, true); if (modifiedAbilities) { EditorPanels.MainProgram.RefreshAbilities(currentLoadedId); modifiedAbilities = false; } setDirty(false); } //------------------------------- public bool CheckDiscardChanges() { if (!dirty) { return true; } DialogResult res = MessageBox.Show("Personal Editor\nThere are unsaved changes to the current Personal data.\nDiscard and proceed?", "Personal Editor - Unsaved changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (res.Equals(DialogResult.Yes)) { return true; } monNumberNumericUpDown.Value = currentLoadedId; pokemonNameInputComboBox.SelectedIndex = currentLoadedId; return false; } private void pokemonNameInputComboBox_SelectedIndexChanged(object sender, EventArgs e) { Update(); if (Helpers.HandlersDisabled) { return; } this._parent.TrySyncIndices((System.Windows.Forms.ComboBox)sender); Helpers.DisableHandlers(); if (CheckDiscardChanges()) { int newNumber = pokemonNameInputComboBox.SelectedIndex; monNumberNumericUpDown.Value = newNumber; ChangeLoadedFile(newNumber); } Helpers.EnableHandlers(); } private void monNumberNumericUpDown_ValueChanged(object sender, EventArgs e) { Update(); if (Helpers.HandlersDisabled) { return; } this._parent.TrySyncIndices((NumericUpDown)sender); Helpers.DisableHandlers(); if (CheckDiscardChanges()) { int newNumber = (int)monNumberNumericUpDown.Value; pokemonNameInputComboBox.SelectedIndex = newNumber; ChangeLoadedFile(newNumber); } Helpers.EnableHandlers(); } public void ChangeLoadedFile(int toLoad) { currentLoadedId = toLoad; currentLoadedFile = new PokemonPersonalData(currentLoadedId); baseHpNumericUpDown.Value = currentLoadedFile.baseHP; baseAtkNumericUpDown.Value = currentLoadedFile.baseAtk; baseDefNumericUpDown.Value = currentLoadedFile.baseDef; baseSpeedNumericUpDown.Value = currentLoadedFile.baseSpeed; baseSpAtkNumericUpDown.Value = currentLoadedFile.baseSpAtk; baseSpDefNumericUpDown.Value = currentLoadedFile.baseSpDef; type1InputComboBox.SelectedIndex = (byte)currentLoadedFile.type1; type2InputComboBox.SelectedIndex = (byte)currentLoadedFile.type2; catchRateNumericUpDown.Value = currentLoadedFile.catchRate; baseExpYieldNumericUpDown.Value = currentLoadedFile.givenExp; evHpNumericUpDown.Value = currentLoadedFile.evHP; evAtkNumericUpDown.Value = currentLoadedFile.evAtk; evDefNumericUpDown.Value = currentLoadedFile.evDef; evSpeedNumericUpDown.Value = currentLoadedFile.evSpeed; evSpAtkNumericUpDown.Value = currentLoadedFile.evSpAtk; evSpDefNumericUpDown.Value = currentLoadedFile.evSpDef; item1InputComboBox.SelectedIndex = currentLoadedFile.item1; item2InputComboBox.SelectedIndex = currentLoadedFile.item2; genderProbabilityNumericUpDown.Value = currentLoadedFile.genderVec; eggStepsNumericUpDown.Value = currentLoadedFile.eggSteps; baseFriendshipNumericUpDown.Value = currentLoadedFile.baseFriendship; growthCurveInputComboBox.SelectedIndex = (byte)currentLoadedFile.growthCurve; eggGroup1InputCombobox.SelectedIndex = currentLoadedFile.eggGroup1; eggGroup2InputCombobox.SelectedIndex = currentLoadedFile.eggGroup2; ability1InputComboBox.SelectedIndex = currentLoadedFile.firstAbility; ability2InputComboBox.SelectedIndex = currentLoadedFile.secondAbility; escapeRateNumericUpDown.Value = currentLoadedFile.escapeRate; dexColorInputComboBox.SelectedIndex = (byte)currentLoadedFile.color; flipFlagCheckBox.Checked = currentLoadedFile.flip; genderLabel.Text = GetGenderText(currentLoadedFile.genderVec); RebuildMachinesListBoxes(); int excess = toLoad - pokenames.Length; try { if (excess >= 0) { toLoad = PokeDatabase.PersonalData.personalExtraFiles[excess].iconId; } } catch (IndexOutOfRangeException) { toLoad = 0; } finally { pokemonPictureBox.Image = DSUtils.GetPokePic(toLoad, pokemonPictureBox.Width, pokemonPictureBox.Height); } setDirty(false); } private void RebuildMachinesListBoxes(bool keepAddableSelection = true, bool keepAddedSelection = true) { addableMachinesListBox.BeginUpdate(); addedMachinesListBox.BeginUpdate(); string addableSel = null; if (keepAddableSelection) { addableSel = (string)addableMachinesListBox.SelectedItem; } string addedSel = null; if (keepAddedSelection) { addedSel = (string)addableMachinesListBox.SelectedItem; } addedMachinesListBox.Items.Clear(); addableMachinesListBox.Items.Clear(); int dataIndex = 0; byte tot = (byte)(PokemonPersonalData.tmsCount + PokemonPersonalData.hmsCount); for (byte i = 0; i < tot; i++) { string currentItem = MachineNameFromZeroBasedIndex(i); if (dataIndex < currentLoadedFile.machines.Count && currentLoadedFile.machines.Contains(i)) { addedMachinesListBox.Items.Add(currentItem); dataIndex++; } else { addableMachinesListBox.Items.Add(currentItem); } } addableMachinesListBox.EndUpdate(); addedMachinesListBox.EndUpdate(); if (keepAddableSelection) { int addableCount = addableMachinesListBox.Items.Count; if (addableCount > 0) { addableMachinesListBox.SelectedItem = addableSel; } } int addedCount = addedMachinesListBox.Items.Count; if (addedCount > 0) { addedMachinesListBox.SelectedItem = addedSel; } } private static string MachineNameFromZeroBasedIndex(int n) { //0-91 --> TMs //>=92 --> HM n += 1; int diff = n - PokemonPersonalData.tmsCount; string item = diff > 0 ? "HM " + diff : "TM " + n; return item; } private static int ZeroBasedIndexFromMachineName(string machineName) { // Split the machineName to get the prefix (TM or HM) and the number string[] parts = machineName.Split(' '); if (parts.Length == 2) { // Check if the first part is "TM" (case-insensitive) bool isTM = parts[0].Equals("TM", StringComparison.OrdinalIgnoreCase); if (isTM || parts[0].Equals("HM", StringComparison.OrdinalIgnoreCase)) { if (int.TryParse(parts[1], out int number)) { number--; // Calculate the index based on the prefix (TM or HM) int index = isTM ? number : number + PokemonPersonalData.tmsCount; return index; } } } // Return -1 to indicate an invalid input or failure to parse return -1; } } } ================================================ FILE: DS_Map/PersonalDataEditor.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 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAacSURBVFhHxZd5bFRVGMX5Aw24VmtbI4lGoyHGYPSP mqgoEQg0SqELbVEiGiWAqIS1lha6sdTK0oWyiAYQTBVQBEqrgEaIghAKDaC1te1M91k7nZnXmS4z0+N3 7rQDtTMmNia85Mx777v3/s5533uzjQJwS+V/8W+3ReVUmMOzK3B/VjnCMstx19py3LGmHGNHKK4lgywy yY7MKjsqXqP9lrINBKC5Jfu8A1VWH65YfDhv9MrQ/7ORRSbZ9Ihce7RMPP0hZJy7MKarsfkwOr8WYzfX YdTGGlitHdC1W1DfNjJxLRlkkUk2PeglnnfTeDBAJFt01epFWKEOY+IyMHarDna7DY0mCWEUmWz+vahB yRo4D1bjeaPJqhhkkUk2PeglnhE0vilABSpNHkSVNOKe2Zm4t6gRmtOBVqsDbZ1utDu60Wp3o8XmQnNH l0hDa6dLFKzGcw0tFjucDodikUk2PehFTxrfCCBtOdfWi3Hb9Xhw+UGEF+uhaU4Y7C6kzE7E6ynJ2Lm9 BNu3FWNbUQEMjh4kJcZjR8m2ILViFBcWoM2myUU4FYtMsulBL3rSOBCA9+VMcy8e2dGAJz7VI6q4Hq6u LhXA1NUHs9ur9gatVxmxI0Y5NmpSc/prBqmZ5Jx1jrfbuhSDLDLJpsfAMzA8wOnGHjy+swFP7tZhXIkE cLlhFJDZ5YW1G7L3SQgvjF2eG3L6A3COxd0fmKNCye0hgywyyaZH0AAPSPFEQ4+aOOFznUrb090Nq6sP ydLWOclJ/nYXF6EkoEIUF2yVcP0yJyEwh/Wigi0waz3oFgZZZJJND3rRk8ZDAhyrd8tEPZ7Zo8dju3To 6emFRdre0QPY+qD2NGM3/OqHRa6YV//POayZpQtkkEUm2fQIGeBwrRvP7tUjep8e43c3oK/Pgw65950C pgjvEGO7HDvkc2qwRkMes869rXcgoMujGGSRSTY9ggfIqUBptQvPfdGE5/c34ilpmcfjhV1giXEzA211 eICkhHikJCXK01+kanapJcbPGrg9heodUbhlM2zdPsUgi0yy6UEvetI4ECBCivv/cOHFA8146csm1TKv V65s4OoGr8wmV8wQTukAjVljF1QH5DwwV2o2eSg9nn7FIpNsetCLnjQeEmDv7xomlbZgsiha0nKT24hO GlDSVpsocB6qNlB3yp4bWWSSTY+QAT67qmHqVy2Y/rVMlsSndG4F8PWPTNzIIItMsukRMsAuGYw52IrX DrXi1YMtmFLajJdl8cQDIxPXkkEWmWTTI2SA7VUaYg+3Ie7bNsSLZn3ThplyPuNw64jEtWSQRSbZ9AgZ oPiKhoQj7Zj9XTuSRDyOFUDMoTZMk/T/RVzDtWSQRSaP6RE0QKQUCyo1JB81YM4xv+KPGFBaaQC88lj3 iTzymHvl8ad4zFooyRquJWOQRzY96EVPGg8JsPWShrnHDXizzKD2cZIYXg+u1ptwVdeB6hYNfxm7lapb nKpWVW8WmYaqTubLHj6PYtzMpEfIAJsuOTGv3Ii3RPNOGJEgbePVXtfZYJKPvozsPEybOhnTpryC9Mx1 qnZd34lrMn5df0M8vybhuJYMshRTRI+QAT655MC735swX/ROhQnJ0jZCqpsd4Fs6ZnoMlqXlinKwcEka 5INOjVU324erqVOtJYMsMsmmR8gAH1/UsPCkBYtOmrHgBzPeKDNKG72oadUgdxyxM2Kxam0eVq7ZgPeX r0WvvNc5VtPqHK4Wh6z1KQZZZJJNj5ABNl504IPTZqXFp8yqZej3oU7uOX8jx8XFIy07Hx9l5mPJqmzI o6bG6gyuoOJaMsga5NIjZIANMrj0J6vIgiU/WlTLhAKduVde5QsncTYy1m1Ges4mLF+dq0JxTGfqHi4J xrVkkEUm2fT4lwAaUs/akHqmAyt+tmLRKYsMQ350elSApOQUrFm/BWskxMqM9ZBHAM0y1tTRN1TWPjRb 5UtENjLIIpNsegQNEJVV1pl/2Y11FzTk/uaUPxBOrDhrVxCTpnZISExEWmYeVmflITU9V9WMTshvweEy ibiRQRaZZNMjYuWBs+I55Gd5mCg6KvO4nemo8Oxy3J5ehmvXanHu8p/45XIN3p6/4L2lq1IXf7hs2eK5 G/fsuFBVi18rZSyIzom4lgyyBrkRy/edE6+nRUP+mNwmekgULZosmhJEL4jGix4WPSqaIJooCjY3lCaJ aM6rH/LXjBtDsBO8N8F0n2iMiAs5905RuCjY3FCiMa982J/TW7SNGvU3iJOEw8UaLRYAAAAASUVORK5C YII= iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAb5JREFUSEvd1b9LVWEcx/GLiEg4iISbU1uIEA2CQ+LSIAjREk2CixIUNLoJgrop KKTgJrT0DwRhizikoi6WgRIEofgDxd+/St/vx3PhcJHuc67b/cALec7xfJ9znl83V/Z5gEEsYxMb+IYB NODemcY1TrCNHZwl1y4xgQqUnHVcoTm0blOFDvyEHQ2h5LThAluwcDqVOIYdZc5S4iXG4Js+QTrOzzlm QytDLDyX/FUP7OAV0nmMfxgNrQxJd+Dq6YYdvEY6jbCD4dDKGIt/RS+cRDtIT7RxiE6xGlolpg57OIIF C/MZfsWz0MoYV4lfYgGHyfXeghd4CPMI7oc1ZN4PH+HQTMGHP8HOvHaIJphJeO1NaEWmHRZbgMX7YREn 33nxrd3VNQmH8A+i8wEWdKM59h4VnkPVMO/h/fwuXoFHSP5+0TzFX+ziNyzWh3zc1e5iv2QR3vfcio7D 8h0+6Js5/vVIpwu/4P84nM8RnRH44AwKCxemE55XB6j1QrH49vvw/HepxuQtfKF3oVUkjq879EdoxcVV Zwf+OEXlC3zAL/Go/h9/iJxseT5FxaU5DlfQXUXTHMp5tKLsksvdAEO4gw8B1FkqAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAb5JREFUSEvd1b9LVWEcx/GLiEg4iISbU1uIEA2CQ+LSIAjREk2CixIUNLoJgrop KKTgJrT0DwRhizikoi6WgRIEofgDxd+/St/vx3PhcJHuc67b/cALec7xfJ9znl83V/Z5gEEsYxMb+IYB NODemcY1TrCNHZwl1y4xgQqUnHVcoTm0blOFDvyEHQ2h5LThAluwcDqVOIYdZc5S4iXG4Js+QTrOzzlm QytDLDyX/FUP7OAV0nmMfxgNrQxJd+Dq6YYdvEY6jbCD4dDKGIt/RS+cRDtIT7RxiE6xGlolpg57OIIF C/MZfsWz0MoYV4lfYgGHyfXeghd4CPMI7oc1ZN4PH+HQTMGHP8HOvHaIJphJeO1NaEWmHRZbgMX7YREn 33nxrd3VNQmH8A+i8wEWdKM59h4VnkPVMO/h/fwuXoFHSP5+0TzFX+ziNyzWh3zc1e5iv2QR3vfcio7D 8h0+6Js5/vVIpwu/4P84nM8RnRH44AwKCxemE55XB6j1QrH49vvw/HepxuQtfKF3oVUkjq879EdoxcVV Zwf+OEXlC3zAL/Go/h9/iJxseT5FxaU5DlfQXUXTHMp5tKLsksvdAEO4gw8B1FkqAAAAAElFTkSuQmCC AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/PokemonEditor.Designer.cs ================================================ namespace DSPRE { partial class PokemonEditor { /// /// 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(PokemonEditor)); this.tabControl = new System.Windows.Forms.TabControl(); this.personalPage = new System.Windows.Forms.TabPage(); this.learnsetPage = new System.Windows.Forms.TabPage(); this.evoPage = new System.Windows.Forms.TabPage(); this.syncChangesCheckbox = new System.Windows.Forms.CheckBox(); this.syncChangesLabel = new System.Windows.Forms.Label(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.tabControl.SuspendLayout(); this.flowLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // tabControl // this.tabControl.Controls.Add(this.personalPage); this.tabControl.Controls.Add(this.learnsetPage); this.tabControl.Controls.Add(this.evoPage); this.tabControl.Dock = System.Windows.Forms.DockStyle.Bottom; this.tabControl.Location = new System.Drawing.Point(0, 29); this.tabControl.Name = "tabControl"; this.tabControl.SelectedIndex = 0; this.tabControl.Size = new System.Drawing.Size(1032, 552); this.tabControl.TabIndex = 0; // // personalPage // this.personalPage.Location = new System.Drawing.Point(4, 22); this.personalPage.Name = "personalPage"; this.personalPage.Padding = new System.Windows.Forms.Padding(3); this.personalPage.Size = new System.Drawing.Size(1024, 526); this.personalPage.TabIndex = 0; this.personalPage.Text = "Personal Editor"; this.personalPage.UseVisualStyleBackColor = true; // // learnsetPage // this.learnsetPage.Location = new System.Drawing.Point(4, 22); this.learnsetPage.Name = "learnsetPage"; this.learnsetPage.Padding = new System.Windows.Forms.Padding(3); this.learnsetPage.Size = new System.Drawing.Size(1024, 526); this.learnsetPage.TabIndex = 1; this.learnsetPage.Text = "Learnset Editor"; this.learnsetPage.UseVisualStyleBackColor = true; // // evoPage // this.evoPage.Location = new System.Drawing.Point(4, 22); this.evoPage.Name = "evoPage"; this.evoPage.Padding = new System.Windows.Forms.Padding(3); this.evoPage.Size = new System.Drawing.Size(1024, 526); this.evoPage.TabIndex = 2; this.evoPage.Text = "Evolution Editor"; this.evoPage.UseVisualStyleBackColor = true; // // syncChangesCheckbox // this.syncChangesCheckbox.AutoSize = true; this.syncChangesCheckbox.Dock = System.Windows.Forms.DockStyle.Bottom; this.syncChangesCheckbox.Location = new System.Drawing.Point(3, 3); this.syncChangesCheckbox.Name = "syncChangesCheckbox"; this.syncChangesCheckbox.Size = new System.Drawing.Size(177, 17); this.syncChangesCheckbox.TabIndex = 1; this.syncChangesCheckbox.Text = "Synchronize Pokémon selection"; this.syncChangesCheckbox.UseVisualStyleBackColor = true; // // syncChangesLabel // this.syncChangesLabel.AutoSize = true; this.syncChangesLabel.Dock = System.Windows.Forms.DockStyle.Bottom; this.syncChangesLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.syncChangesLabel.ForeColor = System.Drawing.SystemColors.Highlight; this.syncChangesLabel.Location = new System.Drawing.Point(186, 10); this.syncChangesLabel.Name = "syncChangesLabel"; this.syncChangesLabel.Size = new System.Drawing.Size(433, 13); this.syncChangesLabel.TabIndex = 2; this.syncChangesLabel.Text = "When this CheckBox is marked, mon selection will be synchronized accross all tabs" + " below."; // // flowLayoutPanel1 // this.flowLayoutPanel1.AutoSize = true; this.flowLayoutPanel1.Controls.Add(this.syncChangesCheckbox); this.flowLayoutPanel1.Controls.Add(this.syncChangesLabel); this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; this.flowLayoutPanel1.Size = new System.Drawing.Size(1032, 23); this.flowLayoutPanel1.TabIndex = 3; // // PokemonEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; this.ClientSize = new System.Drawing.Size(1032, 581); this.Controls.Add(this.flowLayoutPanel1); this.Controls.Add(this.tabControl); this.DoubleBuffered = true; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "PokemonEditor"; this.Text = "Pokémon Editor"; this.tabControl.ResumeLayout(false); this.flowLayoutPanel1.ResumeLayout(false); this.flowLayoutPanel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.TabControl tabControl; private System.Windows.Forms.TabPage personalPage; private System.Windows.Forms.TabPage learnsetPage; private System.Windows.Forms.TabPage evoPage; private System.Windows.Forms.CheckBox syncChangesCheckbox; private System.Windows.Forms.Label syncChangesLabel; private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; } } ================================================ FILE: DS_Map/PokemonEditor.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.Controls.Primitives; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE { public partial class PokemonEditor : Form { PersonalDataEditor personalEditor; LearnsetEditor learnsetEditor; EvolutionsEditor evoEditor; public PokemonEditor(string[] itemNames, string[] abilityNames, string[] moveNames) { InitializeComponent(); IsMdiContainer = true; personalEditor = new PersonalDataEditor(itemNames, abilityNames, personalPage, this); personalEditor.TopLevel = false; personalEditor.Show(); personalPage.Controls.Add(personalEditor); learnsetEditor = new LearnsetEditor(moveNames, learnsetPage, this); learnsetEditor.TopLevel = false; learnsetEditor.Show(); learnsetPage.Controls.Add(learnsetEditor); evoEditor = new EvolutionsEditor(evoPage, this); evoEditor.TopLevel = false; evoEditor.Show(); evoPage.Controls.Add(evoEditor); } public void TrySyncIndices(ComboBox sender) { if(!syncChangesCheckbox.Checked) { return; } Helpers.BackUpDisableHandler(); Helpers.DisableHandlers(); if (personalEditor.CheckDiscardChanges()) { personalEditor.pokemonNameInputComboBox.SelectedIndex = sender.SelectedIndex; personalEditor.monNumberNumericUpDown.Value = sender.SelectedIndex; personalEditor.ChangeLoadedFile(sender.SelectedIndex); } if (learnsetEditor.CheckDiscardChanges()) { learnsetEditor.pokemonNameInputComboBox.SelectedIndex = sender.SelectedIndex; learnsetEditor.monNumberNumericUpDown.Value = sender.SelectedIndex; learnsetEditor.ChangeLoadedFile(sender.SelectedIndex); } if (evoEditor.CheckDiscardChanges()) { evoEditor.pokemonNameInputComboBox.SelectedIndex = sender.SelectedIndex; evoEditor.monNumberNumericUpDown.Value = sender.SelectedIndex; evoEditor.ChangeLoadedFile(sender.SelectedIndex); } Helpers.RestoreDisableHandler(); } public void TrySyncIndices(NumericUpDown sender) { if (!syncChangesCheckbox.Checked) { return; } Helpers.BackUpDisableHandler(); Helpers.DisableHandlers(); if (personalEditor.CheckDiscardChanges()) { personalEditor.pokemonNameInputComboBox.SelectedIndex = (int)sender.Value; personalEditor.monNumberNumericUpDown.Value = sender.Value; personalEditor.ChangeLoadedFile((int)sender.Value); } if (learnsetEditor.CheckDiscardChanges()) { learnsetEditor.pokemonNameInputComboBox.SelectedIndex = (int)sender.Value; learnsetEditor.monNumberNumericUpDown.Value = sender.Value; learnsetEditor.ChangeLoadedFile((int)sender.Value); } if (evoEditor.CheckDiscardChanges()) { evoEditor.pokemonNameInputComboBox.SelectedIndex = (int)sender.Value; evoEditor.monNumberNumericUpDown.Value = sender.Value; evoEditor.ChangeLoadedFile((int)sender.Value); } Helpers.RestoreDisableHandler(); } } } ================================================ FILE: DS_Map/PokemonEditor.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 AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/Program.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace DSPRE { static class Program { /// /// Punto di ingresso principale dell'applicazione. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainProgram()); } } } ================================================ FILE: DS_Map/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.InteropServices; // Le informazioni generali relative a un assembly sono controllate dal seguente // set di attributi. Modificare i valori di questi attributi per modificare le informazioni // associate a un assembly. [assembly: AssemblyTitle("DSPRE Reloaded 1.12.4")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DSPRE Reloaded 1.12.4")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili // ai componenti COM. Se è necessario accedere a un tipo in questo assembly da // COM, impostare su true l'attributo ComVisible per tale tipo. [assembly: ComVisible(false)] // Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi [assembly: Guid("ecda2f2c-23b1-ad81-763c-b9babf9aa8bf")] // Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: // // Versione principale // Versione secondaria // Numero di build // Revisione // // È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build // usando l'asterisco '*' come illustrato di seguito: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.12.4")] [assembly: AssemblyFileVersion("1.12.4")] ================================================ FILE: DS_Map/Properties/Resources.Designer.cs ================================================ //------------------------------------------------------------------------------ // // Il codice è stato generato da uno strumento. // Versione runtime:4.0.30319.42000 // // Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se // il codice viene rigenerato. // //------------------------------------------------------------------------------ namespace DSPRE.Properties { using System; /// /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. /// // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder. // tramite uno strumento quale ResGen o Visual Studio. // Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen // con l'opzione /str oppure ricompilare il progetto VS. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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() { } /// /// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe. /// [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("DSPRE.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le /// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap addIcon { get { object obj = ResourceManager.GetObject("addIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap addTextureToNSBMD { get { object obj = ResourceManager.GetObject("addTextureToNSBMD", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap alphabgCheckerboard { get { object obj = ResourceManager.GetObject("alphabgCheckerboard", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona). /// internal static System.Drawing.Icon appIcon { get { object obj = ResourceManager.GetObject("appIcon", resourceCulture); return ((System.Drawing.Icon)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon00 { get { object obj = ResourceManager.GetObject("areaicon00", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon01 { get { object obj = ResourceManager.GetObject("areaicon01", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon02 { get { object obj = ResourceManager.GetObject("areaicon02", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon03 { get { object obj = ResourceManager.GetObject("areaicon03", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon04 { get { object obj = ResourceManager.GetObject("areaicon04", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon05 { get { object obj = ResourceManager.GetObject("areaicon05", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon06 { get { object obj = ResourceManager.GetObject("areaicon06", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon07 { get { object obj = ResourceManager.GetObject("areaicon07", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon08 { get { object obj = ResourceManager.GetObject("areaicon08", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap areaicon09 { get { object obj = ResourceManager.GetObject("areaicon09", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap arrowdown { get { object obj = ResourceManager.GetObject("arrowdown", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap arrowleft { get { object obj = ResourceManager.GetObject("arrowleft", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap arrowright { get { object obj = ResourceManager.GetObject("arrowright", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap arrowup { get { object obj = ResourceManager.GetObject("arrowup", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap blue_sign { get { object obj = ResourceManager.GetObject("blue_sign", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] blz { get { object obj = ResourceManager.GetObject("blz", resourceCulture); return ((byte[])(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap brown_sign { get { object obj = ResourceManager.GetObject("brown_sign", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap buildingEditorButton { get { object obj = ResourceManager.GetObject("buildingEditorButton", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap cameraIcon { get { object obj = ResourceManager.GetObject("cameraIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap checkmark { get { object obj = ResourceManager.GetObject("checkmark", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap compressArrow { get { object obj = ResourceManager.GetObject("compressArrow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap contentbasedRenameIcon { get { object obj = ResourceManager.GetObject("contentbasedRenameIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap copyIcon { get { object obj = ResourceManager.GetObject("copyIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap copyIcon_small { get { object obj = ResourceManager.GetObject("copyIcon_small", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap Cross { get { object obj = ResourceManager.GetObject("Cross", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dawn_platinum { get { object obj = ResourceManager.GetObject("dawn_platinum", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dawnSpawn { get { object obj = ResourceManager.GetObject("dawnSpawn", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap deleteIcon { get { object obj = ResourceManager.GetObject("deleteIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap destroyLevelScript { get { object obj = ResourceManager.GetObject("destroyLevelScript", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpareaicon { get { object obj = ResourceManager.GetObject("dpareaicon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpblizzard { get { object obj = ResourceManager.GetObject("dpblizzard", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera0 { get { object obj = ResourceManager.GetObject("dpcamera0", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera1 { get { object obj = ResourceManager.GetObject("dpcamera1", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera10 { get { object obj = ResourceManager.GetObject("dpcamera10", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera11 { get { object obj = ResourceManager.GetObject("dpcamera11", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera12 { get { object obj = ResourceManager.GetObject("dpcamera12", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera13 { get { object obj = ResourceManager.GetObject("dpcamera13", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera14 { get { object obj = ResourceManager.GetObject("dpcamera14", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera15 { get { object obj = ResourceManager.GetObject("dpcamera15", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera2 { get { object obj = ResourceManager.GetObject("dpcamera2", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera3 { get { object obj = ResourceManager.GetObject("dpcamera3", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera4 { get { object obj = ResourceManager.GetObject("dpcamera4", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera5 { get { object obj = ResourceManager.GetObject("dpcamera5", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera6 { get { object obj = ResourceManager.GetObject("dpcamera6", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera7 { get { object obj = ResourceManager.GetObject("dpcamera7", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera8 { get { object obj = ResourceManager.GetObject("dpcamera8", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcamera9 { get { object obj = ResourceManager.GetObject("dpcamera9", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpcloudy { get { object obj = ResourceManager.GetObject("dpcloudy", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpdark { get { object obj = ResourceManager.GetObject("dpdark", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpdiamondsnow { get { object obj = ResourceManager.GetObject("dpdiamondsnow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpfog { get { object obj = ResourceManager.GetObject("dpfog", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dphail { get { object obj = ResourceManager.GetObject("dphail", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpheavyrain { get { object obj = ResourceManager.GetObject("dpheavyrain", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dplightning { get { object obj = ResourceManager.GetObject("dplightning", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dplightsandstorm { get { object obj = ResourceManager.GetObject("dplightsandstorm", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpnormal { get { object obj = ResourceManager.GetObject("dpnormal", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dppt_suitcase { get { object obj = ResourceManager.GetObject("dppt_suitcase", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dprain { get { object obj = ResourceManager.GetObject("dprain", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dprocksascending { get { object obj = ResourceManager.GetObject("dprocksascending", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpsandfall { get { object obj = ResourceManager.GetObject("dpsandfall", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpsandstorm { get { object obj = ResourceManager.GetObject("dpsandstorm", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpsnowslow { get { object obj = ResourceManager.GetObject("dpsnowslow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpthunderstorm { get { object obj = ResourceManager.GetObject("dpthunderstorm", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap dpthunderstorm1 { get { object obj = ResourceManager.GetObject("dpthunderstorm1", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap enumToListIcon { get { object obj = ResourceManager.GetObject("enumToListIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap expandArrow { get { object obj = ResourceManager.GetObject("expandArrow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap exploreKit { get { object obj = ResourceManager.GetObject("exploreKit", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap exportArrow { get { object obj = ResourceManager.GetObject("exportArrow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap folderToListIcon { get { object obj = ResourceManager.GetObject("folderToListIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap folderToNarcIcon { get { object obj = ResourceManager.GetObject("folderToNarcIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap goToOW { get { object obj = ResourceManager.GetObject("goToOW", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap goToSpawnable { get { object obj = ResourceManager.GetObject("goToSpawnable", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap goToTrigger { get { object obj = ResourceManager.GetObject("goToTrigger", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap goToWarp { get { object obj = ResourceManager.GetObject("goToWarp", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap gray_sign { get { object obj = ResourceManager.GetObject("gray_sign", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssArcade { get { object obj = ResourceManager.GetObject("hgssArcade", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera0 { get { object obj = ResourceManager.GetObject("hgsscamera0", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera1 { get { object obj = ResourceManager.GetObject("hgsscamera1", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera10 { get { object obj = ResourceManager.GetObject("hgsscamera10", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera11 { get { object obj = ResourceManager.GetObject("hgsscamera11", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera12 { get { object obj = ResourceManager.GetObject("hgsscamera12", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera13 { get { object obj = ResourceManager.GetObject("hgsscamera13", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera14 { get { object obj = ResourceManager.GetObject("hgsscamera14", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera15 { get { object obj = ResourceManager.GetObject("hgsscamera15", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera16 { get { object obj = ResourceManager.GetObject("hgsscamera16", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera2 { get { object obj = ResourceManager.GetObject("hgsscamera2", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera3 { get { object obj = ResourceManager.GetObject("hgsscamera3", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera4 { get { object obj = ResourceManager.GetObject("hgsscamera4", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera5 { get { object obj = ResourceManager.GetObject("hgsscamera5", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera6 { get { object obj = ResourceManager.GetObject("hgsscamera6", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera7 { get { object obj = ResourceManager.GetObject("hgsscamera7", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera8 { get { object obj = ResourceManager.GetObject("hgsscamera8", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscamera9 { get { object obj = ResourceManager.GetObject("hgsscamera9", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsscave { get { object obj = ResourceManager.GetObject("hgsscave", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssdark { get { object obj = ResourceManager.GetObject("hgssdark", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssdark2 { get { object obj = ResourceManager.GetObject("hgssdark2", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssdiamond { get { object obj = ResourceManager.GetObject("hgssdiamond", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssfield { get { object obj = ResourceManager.GetObject("hgssfield", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssfog { get { object obj = ResourceManager.GetObject("hgssfog", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssforest { get { object obj = ResourceManager.GetObject("hgssforest", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssgray { get { object obj = ResourceManager.GetObject("hgssgray", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsslake { get { object obj = ResourceManager.GetObject("hgsslake", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssnormal { get { object obj = ResourceManager.GetObject("hgssnormal", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssrain { get { object obj = ResourceManager.GetObject("hgssrain", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgssrain1 { get { object obj = ResourceManager.GetObject("hgssrain1", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsssnow { get { object obj = ResourceManager.GetObject("hgsssnow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsstown { get { object obj = ResourceManager.GetObject("hgsstown", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsswall { get { object obj = ResourceManager.GetObject("hgsswall", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsswater { get { object obj = ResourceManager.GetObject("hgsswater", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap hgsswood { get { object obj = ResourceManager.GetObject("hgsswood", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap IconItem { get { object obj = ResourceManager.GetObject("IconItem", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap IconPokeball { get { object obj = ResourceManager.GetObject("IconPokeball", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap IconPokeballNot { get { object obj = ResourceManager.GetObject("IconPokeballNot", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap importArrow { get { object obj = ResourceManager.GetObject("importArrow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap LeftClick { get { object obj = ResourceManager.GetObject("LeftClick", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap lens { get { object obj = ResourceManager.GetObject("lens", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap listbasedRenameIcon { get { object obj = ResourceManager.GetObject("listbasedRenameIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap loadColorTable { get { object obj = ResourceManager.GetObject("loadColorTable", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap map_editor { get { object obj = ResourceManager.GetObject("map_editor", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap muteIcon { get { object obj = ResourceManager.GetObject("muteIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap narcToFolderIcon { get { object obj = ResourceManager.GetObject("narcToFolderIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] ndstool { get { object obj = ResourceManager.GetObject("ndstool", resourceCulture); return ((byte[])(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap open_file { get { object obj = ResourceManager.GetObject("open_file", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap open_rom { get { object obj = ResourceManager.GetObject("open_rom", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap overworld { get { object obj = ResourceManager.GetObject("overworld", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap overworldUnreadable { get { object obj = ResourceManager.GetObject("overworldUnreadable", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap pasteIcon { get { object obj = ResourceManager.GetObject("pasteIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptblizzard { get { object obj = ResourceManager.GetObject("ptblizzard", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptblueish { get { object obj = ResourceManager.GetObject("ptblueish", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera0 { get { object obj = ResourceManager.GetObject("ptcamera0", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera1 { get { object obj = ResourceManager.GetObject("ptcamera1", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera10 { get { object obj = ResourceManager.GetObject("ptcamera10", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera11 { get { object obj = ResourceManager.GetObject("ptcamera11", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera12 { get { object obj = ResourceManager.GetObject("ptcamera12", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera13 { get { object obj = ResourceManager.GetObject("ptcamera13", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera14 { get { object obj = ResourceManager.GetObject("ptcamera14", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera15 { get { object obj = ResourceManager.GetObject("ptcamera15", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera2 { get { object obj = ResourceManager.GetObject("ptcamera2", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera3 { get { object obj = ResourceManager.GetObject("ptcamera3", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera4 { get { object obj = ResourceManager.GetObject("ptcamera4", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera5 { get { object obj = ResourceManager.GetObject("ptcamera5", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera6 { get { object obj = ResourceManager.GetObject("ptcamera6", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera7 { get { object obj = ResourceManager.GetObject("ptcamera7", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera8 { get { object obj = ResourceManager.GetObject("ptcamera8", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcamera9 { get { object obj = ResourceManager.GetObject("ptcamera9", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptcloudy { get { object obj = ResourceManager.GetObject("ptcloudy", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptdark { get { object obj = ResourceManager.GetObject("ptdark", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptdarkfog { get { object obj = ResourceManager.GetObject("ptdarkfog", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptdiamondsnow { get { object obj = ResourceManager.GetObject("ptdiamondsnow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptdim { get { object obj = ResourceManager.GetObject("ptdim", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptfog { get { object obj = ResourceManager.GetObject("ptfog", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptforestweather { get { object obj = ResourceManager.GetObject("ptforestweather", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptgreenish { get { object obj = ResourceManager.GetObject("ptgreenish", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap pthail { get { object obj = ResourceManager.GetObject("pthail", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptheavyfog { get { object obj = ResourceManager.GetObject("ptheavyfog", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptheavyrain { get { object obj = ResourceManager.GetObject("ptheavyrain", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptlightfog { get { object obj = ResourceManager.GetObject("ptlightfog", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptlightning { get { object obj = ResourceManager.GetObject("ptlightning", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptlightsandstorm { get { object obj = ResourceManager.GetObject("ptlightsandstorm", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptnormal { get { object obj = ResourceManager.GetObject("ptnormal", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptrain { get { object obj = ResourceManager.GetObject("ptrain", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptredish { get { object obj = ResourceManager.GetObject("ptredish", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptrocksascending { get { object obj = ResourceManager.GetObject("ptrocksascending", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptsandfall { get { object obj = ResourceManager.GetObject("ptsandfall", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptsandstorm { get { object obj = ResourceManager.GetObject("ptsandstorm", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptsnowslow { get { object obj = ResourceManager.GetObject("ptsnowslow", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptspotlight { get { object obj = ResourceManager.GetObject("ptspotlight", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap ptthunderstorm { get { object obj = ResourceManager.GetObject("ptthunderstorm", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap questionMark { get { object obj = ResourceManager.GetObject("questionMark", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap red_sign { get { object obj = ResourceManager.GetObject("red_sign", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap removeTextureNSBMD { get { object obj = ResourceManager.GetObject("removeTextureNSBMD", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap RenameIcon { get { object obj = ResourceManager.GetObject("RenameIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap resetColorTable { get { object obj = ResourceManager.GetObject("resetColorTable", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap resetIcon { get { object obj = ResourceManager.GetObject("resetIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap resetListIcon { get { object obj = ResourceManager.GetObject("resetListIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap RightClick { get { object obj = ResourceManager.GetObject("RightClick", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap route_sign { get { object obj = ResourceManager.GetObject("route_sign", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap save_rom { get { object obj = ResourceManager.GetObject("save_rom", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap saveButton { get { object obj = ResourceManager.GetObject("saveButton", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap saveTextureFromNSBMD { get { object obj = ResourceManager.GetObject("saveTextureFromNSBMD", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap scriptDBIcon { get { object obj = ResourceManager.GetObject("scriptDBIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap scriptDBIconDP { get { object obj = ResourceManager.GetObject("scriptDBIconDP", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap scriptDBIconHGSS { get { object obj = ResourceManager.GetObject("scriptDBIconHGSS", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap scriptDBIconPt { get { object obj = ResourceManager.GetObject("scriptDBIconPt", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap SearchMiniIcon { get { object obj = ResourceManager.GetObject("SearchMiniIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap selectBldWithMouse { get { object obj = ResourceManager.GetObject("selectBldWithMouse", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap sign { get { object obj = ResourceManager.GetObject("sign", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap sortAscending { get { object obj = ResourceManager.GetObject("sortAscending", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap sortDescending { get { object obj = ResourceManager.GetObject("sortDescending", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap spawnCoordsMatrixeditorIcon { get { object obj = ResourceManager.GetObject("spawnCoordsMatrixeditorIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap SurfIcon { get { object obj = ResourceManager.GetObject("SurfIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap trainer_editor { get { object obj = ResourceManager.GetObject("trainer_editor", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap trigger { get { object obj = ResourceManager.GetObject("trigger", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap unpackAllIcon { get { object obj = ResourceManager.GetObject("unpackAllIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap unpackBuildingNarcsIcon { get { object obj = ResourceManager.GetObject("unpackBuildingNarcsIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap warp { get { object obj = ResourceManager.GetObject("warp", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap warpCollision { get { object obj = ResourceManager.GetObject("warpCollision", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap warpGo { get { object obj = ResourceManager.GetObject("warpGo", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap WheelClick { get { object obj = ResourceManager.GetObject("WheelClick", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap wideLensImage { get { object obj = ResourceManager.GetObject("wideLensImage", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap wideLensImageTransp { get { object obj = ResourceManager.GetObject("wideLensImageTransp", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap wildEditorButton { get { object obj = ResourceManager.GetObject("wildEditorButton", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap wrenchIcon { get { object obj = ResourceManager.GetObject("wrenchIcon", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } } } ================================================ FILE: DS_Map/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\Graphics\Camera Angles\DPPt\dpcamera13.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\ptlightfog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera13.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptrain.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\weather\hgss\hgsssnow.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptsnowslow.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera08.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\spawnCoordsMatrixeditorIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\addIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\saveTextureFromNSBMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera10.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\saveButton.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\dpthunderstorm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\unpackAllIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\wrenchIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\RightClick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera06.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\wildEditorButton.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\goToTrigger.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera14.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dplightsandstorm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\pthail.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\ptdarkfog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\buildingEditorButton.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\program icons\resetcolortable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\program icons\importarrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\LeftClick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\removeTextureNSBMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera14.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpsnowslow.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptcloudy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon08.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\addTextureToNSBMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\arrowdown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\weather\hgss\hgssfog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera0.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera13.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\goToWarp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera0.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\weather\hgss\hgssnormal.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\SearchMiniIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptthunderstorm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\warp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgsswood.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\expandArrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera7.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgsswall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\open_rom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptsandfall.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera10.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\arrowleft.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\save_rom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera15.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera10.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera15.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgssfield.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera00.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera9.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\trainer_editor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\compressArrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera07.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera05.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera9.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon03.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera8.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\open_file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\HGSS\hgssdark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\questionMark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptblizzard.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\cameraIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\dawn_platinum.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\wideLensImage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\HGSS\hgssdark2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dprocksascending.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera03.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\SurfIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgssforest.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\app.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\program icons\loadcolortable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgsslake.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgsscave.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\route_sign.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\ptdim.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera8.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\wideLensImageTransp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\program icons\exportarrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dprain.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon02.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptfog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptnormal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\ptblueish.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpfog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera02.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgsswater.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\destroyLevelScript.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgssgray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\copyIcon_small.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dplightning.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptdark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\ptredish.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\program icons\pasteicon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptlightning.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpcloudy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon05.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon04.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptsandstorm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\brown_sign.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\sign.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\selectBldWithMouse.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon09.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\hgsstown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\dawnSpawn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptforestweather.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\arrowright.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\deleteIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\muteIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\overworld.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\goToOW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\weather\hgss\hgssrain.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\exploreKit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\map_editor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptlightsandstorm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\resetIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera15.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptrocksascending.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpthunderstorm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\gray_sign.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\lens.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpdiamondsnow.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptheavyrain.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Tools\ndstool.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\Graphics\Event Icons\blue_sign.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\weather\hgss\hgssarcade.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpsandstorm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon06.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpnormal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\red_sign.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Tools\blz.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\Graphics\Camera Angles\DPPt\ptcamera7.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\weather\hgss\hgssrain.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptspotlight.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon00.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpheavyrain.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\dppt_suitcase.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\HGSS\hgsscamera16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\goToSpawnable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\program icons\copyicon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\overworldUnreadable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera09.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Area Icons\areaicon07.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\checkmark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpblizzard.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpsandfall.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\unpackBuildingNarcsIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\dpcamera11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\ptheavyfog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dphail.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\warpGo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Camera Angles\DPPt\ptcamera11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera14.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\scriptDBIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\weather\hgss\hgssdiamond.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\resetListIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\dpdark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\camera angles\hgss\hgsscamera04.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\weather\dppt\ptgreenish.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Weather\DPPt\ptdiamondsnow.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Event Icons\trigger.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\WheelClick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\alphabgCheckerboard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\program icons\cross.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\program icons\iconitem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\program icons\iconpokeball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\program icons\iconpokeballnot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\contentbasedRenameIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\enumToListIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\folderToListIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\folderToNarcIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\listbasedRenameIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\narcToFolderIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\scriptDBIconDP.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\scriptDBIconHGSS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\scriptDBIconPt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\resources\graphics\event icons\warpcollision.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\sortAscending.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Graphics\Program Icons\sortDescending.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\RenameIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ================================================ FILE: DS_Map/Properties/Settings.Designer.cs ================================================ //------------------------------------------------------------------------------ // // Il codice è stato generato da uno strumento. // Versione runtime:4.0.30319.42000 // // Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se // il codice viene rigenerato. // //------------------------------------------------------------------------------ namespace DSPRE.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { return defaultInstance; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("2")] public byte menuLayout { get { return ((byte)(this["menuLayout"])); } set { this["menuLayout"] = value; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("")] public string lastColorTablePath { get { return ((string)(this["lastColorTablePath"])); } set { this["lastColorTablePath"] = value; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("False")] public bool textEditorPreferHex { get { return ((bool)(this["textEditorPreferHex"])); } set { this["textEditorPreferHex"] = value; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("0")] public int scriptEditorFormatPreference { get { return ((int)(this["scriptEditorFormatPreference"])); } set { this["scriptEditorFormatPreference"] = value; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] public bool renderSpawnables { get { return ((bool)(this["renderSpawnables"])); } set { this["renderSpawnables"] = value; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] public bool renderOverworlds { get { return ((bool)(this["renderOverworlds"])); } set { this["renderOverworlds"] = value; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] public bool renderWarps { get { return ((bool)(this["renderWarps"])); } set { this["renderWarps"] = value; } } [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] public bool renderTriggers { get { return ((bool)(this["renderTriggers"])); } set { this["renderTriggers"] = value; } } } } ================================================ FILE: DS_Map/Properties/Settings.settings ================================================  2 False 0 True True True True ================================================ FILE: DS_Map/ROMFiles/AreaData.cs ================================================ using System.IO; using static DSPRE.RomInfo; namespace DSPRE.ROMFiles { /// /// Class to store area data in Pokémon NDS games /// public class AreaData : RomFile { internal static readonly byte TYPE_INDOOR = 0; internal static readonly byte TYPE_OUTDOOR = 1; #region Fields (2) public ushort buildingsTileset; public ushort mapTileset; public ushort dynamicTextureType; public ushort unknown1; public byte areaType = TYPE_OUTDOOR; //HGSS ONLY public ushort lightType; //using an overabundant size. HGSS only needs a byte #endregion #region Constructors (1) public AreaData(Stream data) { using (BinaryReader reader = new BinaryReader(data)) { buildingsTileset = reader.ReadUInt16(); mapTileset = reader.ReadUInt16(); if (RomInfo.gameFamily == GameFamilies.HGSS) { dynamicTextureType = reader.ReadUInt16(); areaType = reader.ReadByte(); lightType = reader.ReadByte(); } else { unknown1 = reader.ReadUInt16(); lightType = reader.ReadUInt16(); } } } public AreaData (byte ID) : this(new FileStream(RomInfo.gameDirs[DirNames.areaData].unpackedDir + "//" + ID.ToString("D4"), FileMode.Open)) {} #endregion #region Methods (1) public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write(buildingsTileset); writer.Write(mapTileset); if (RomInfo.gameFamily == GameFamilies.HGSS) { writer.Write(dynamicTextureType); writer.Write(areaType); writer.Write((byte)lightType); } else { writer.Write(unknown1); writer.Write((ushort)lightType); } } return newData.ToArray(); } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.areaData, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Area Data File", "bin", suggestedFileName, showSuccessMessage); } #endregion } } ================================================ FILE: DS_Map/ROMFiles/EncounterFile.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE.ROMFiles { /* ---------------------- WILD POKÉMON DATA STRUCTURE (DPPt):---------------------------- 0x0 // byte: Walking encounter rate 0x4 // byte: Level of 0x2 // ushort: Matrix number 0x4 // ushort: Script file number 0x6 // ushort: Level script file number 0x8 // ushort: Text Archive number 0xA // ushort: Day music track number 0xC // ushort: Night music track number 0xE // ushort: Wild Pokemon file number 0x10 // ushort: Event file number * Diamond/Pearl: 0x12 // ushort: Index of map name in Text Archive #382 (US version) * Platinum: 0x12 // byte: Index of map name in Text Archive #382 (US version) 0x13 // byte: Map name textbox type value 0x14 // byte: Weather value 0x15 // byte: Camera value 0x16 // byte: Boolean flag: show name when entering map 0x17 // byte: Bitwise permission flags: ----------------- 1: Allow Fly ----------------- 2: ? ----------------- 3: ? ----------------- 4: Allow Bike usage ----------------- 5: ? ----------------- 6: ? ----------------- 7: Esc. Rope ----------------- 8: ? /* ---------------------- WILD POKÉMON DATA STRUCTURE (HGSS):---------------------------- 0x0 // byte: Wild Pokemon file number 0x1 // byte: Area data value 0x2 // byte: ? 0x3 // byte: ? 0x4 // ushort: Matrix number 0x6 // ushort: Script file number 0x8 // ushort: Level script file 0xA // ushort: Text Archive number 0xC // ushort: Day music track number 0xE // ushort: Night music track number 0x10 // ushort: Event file number 0x12 // byte: Index of map name in Text Archive #382 (US version) 0x13 // byte: Map name textbox type value 0x14 // byte: Weather value 0x15 // byte: Camera value 0x16 // byte: Follow mode (for the Pokemon following hero) 0x17 // byte: Bitwise permission flags: ----------------- 1: Allow Fly ----------------- 2: ? ----------------- 3: ? ----------------- 4: Allow Bike usage ----------------- 5: ? ----------------- 6: ? ----------------- 7: Esc. Rope ----------------- 8: ? ----------------------------------------------------------------------------------*/ /// /// General class to store common wild Pokemon data across all Gen IV Pokemon NDS games /// public abstract class EncounterFile : RomFile { public const string msgFixed = " (already fixed)"; public const string extension = "wld"; #region Fields (19) /* Encounter rates */ public byte goodRodRate { get; set; } public byte oldRodRate { get; set; } public byte superRodRate { get; set; } public byte surfRate { get; set; } public byte walkingRate { get; set; } /* Levels */ public byte[] goodRodMaxLevels = new byte[5]; public byte[] goodRodMinLevels = new byte[5]; public byte[] oldRodMaxLevels = new byte[5]; public byte[] oldRodMinLevels = new byte[5]; public byte[] walkingLevels = new byte[12]; public byte[] superRodMaxLevels = new byte[5]; public byte[] superRodMinLevels = new byte[5]; public byte[] surfMaxLevels = new byte[5]; public byte[] surfMinLevels = new byte[5]; /* Encounters */ public ushort[] goodRodPokemon = new ushort[5]; public ushort[] oldRodPokemon = new ushort[5]; public ushort[] superRodPokemon = new ushort[5]; public ushort[] surfPokemon = new ushort[5]; public ushort[] swarmPokemon { get; set; } //2 for DPPt, 4 for HGSS #endregion #region Methods (1) public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.encounters, IDtoReplace, showSuccessMessage); } public void ReportErrors(List errorList) { string fullError = "The following sections of this encounter file couldn't be read correctly: " + Environment.NewLine; string errorSections = ""; foreach (string elem in errorList) { errorSections += "- " + elem + Environment.NewLine; } fullError += errorSections; fullError += Environment.NewLine + "It is recommended that you check them before resaving."; if (errorSections.Contains(msgFixed)) { fullError += Environment.NewLine + "Fields marked as " + '\'' + msgFixed + '\'' + " have been repaired with a value of 0."; } MessageBox.Show(fullError, "Encounter File error", MessageBoxButtons.OK, MessageBoxIcon.Error); } #endregion } /// /// Class to store wild Pokemon data from Pokemon Diamond, Pearl and Platinum /// public class EncounterFileDPPt : EncounterFile { #region Fields (9) /* Field encounters */ public uint[] radarPokemon = new uint[4]; public uint[] walkingPokemon = new uint[12]; /* Time-specific encounters */ public uint[] morningPokemon = new uint[2]; public uint[] nightPokemon = new uint[2]; /* Dual slot exclusives */ public uint[] rubyPokemon = new uint[2]; public uint[] sapphirePokemon = new uint[2]; public uint[] emeraldPokemon = new uint[2]; public uint[] fireRedPokemon = new uint[2]; public uint[] leafGreenPokemon = new uint[2]; #endregion #region Constructors (1) public EncounterFileDPPt(Stream data) { using (BinaryReader reader = new BinaryReader(data)) { List fieldsWithErrors = new List(); /* Walking encounters */ try { walkingRate = (byte)reader.ReadInt32(); for (int i = 0; i < 12; i++) { walkingLevels[i] = (byte)reader.ReadUInt32(); walkingPokemon[i] = reader.ReadUInt32(); } } catch { fieldsWithErrors.Add("Regular encounters"); } /* Swarms */ swarmPokemon = new ushort[2]; for (int i = 0; i < 2; i++) { try { swarmPokemon[i] = (ushort)reader.ReadUInt32(); } catch (EndOfStreamException) { swarmPokemon[i] = 0x00; fieldsWithErrors.Add("Swarms" + ' ' + '[' + i + ']' + msgFixed); } } /* Time-specific encounters */ for (int i = 0; i < 2; i++) { try { morningPokemon[i] = reader.ReadUInt32(); } catch { morningPokemon[i] = 0x00; fieldsWithErrors.Add("Morning encounters" + ' ' + '[' + i + ']' + msgFixed); } } for (int i = 0; i < 2; i++) { try { nightPokemon[i] = reader.ReadUInt32(); } catch { nightPokemon[i] = 0x00; fieldsWithErrors.Add("Night encounters" + ' ' + '[' + i + ']' + msgFixed); } } /* Poké-Radar encounters */ for (int i = 0; i < 4; i++) { try { radarPokemon[i] = reader.ReadUInt32(); } catch { radarPokemon[i] = 0x00; fieldsWithErrors.Add("PokéRadar" + ' ' + '[' + i + ']' + msgFixed); } } reader.BaseStream.Position = 0xA4; /* Dual-slot encounters */ for (int i = 0; i < 2; i++) { try { rubyPokemon[i] = reader.ReadUInt32(); } catch { rubyPokemon[i] = 0x00; fieldsWithErrors.Add("Dual-Slot Ruby" + ' ' + '[' + i + ']' + msgFixed); } } for (int i = 0; i < 2; i++) { try { sapphirePokemon[i] = reader.ReadUInt32(); } catch { sapphirePokemon[i] = 0x00; fieldsWithErrors.Add("Dual-Slot Sapphire" + ' ' + '[' + i + ']' + msgFixed); } } for (int i = 0; i < 2; i++) { try { emeraldPokemon[i] = reader.ReadUInt32(); } catch { emeraldPokemon[i] = 0x00; fieldsWithErrors.Add("Dual-Slot Emerald" + ' ' + '[' + i + ']' + msgFixed); } } for (int i = 0; i < 2; i++) { try { fireRedPokemon[i] = reader.ReadUInt32(); } catch { fireRedPokemon[i] = 0x00; fieldsWithErrors.Add("Dual-Slot FireRed" + ' ' + '[' + i + ']' + msgFixed); } } for (int i = 0; i < 2; i++) { try { leafGreenPokemon[i] = reader.ReadUInt32(); } catch { leafGreenPokemon[i] = 0x00; fieldsWithErrors.Add("Dual-Slot LeafGreen" + ' ' + '[' + i + ']' + msgFixed); } } /* Surf encounters */ try { surfRate = (byte)reader.ReadInt32(); for (int i = 0; i < 5; i++) { surfMaxLevels[i] = reader.ReadByte(); surfMinLevels[i] = reader.ReadByte(); reader.BaseStream.Position += 0x2; surfPokemon[i] = (ushort)reader.ReadUInt32(); } } catch { fieldsWithErrors.Add("Surf"); } reader.BaseStream.Position = 0x124; /* Old Rod encounters */ try { oldRodRate = (byte)reader.ReadInt32(); for (int i = 0; i < 5; i++) { oldRodMaxLevels[i] = reader.ReadByte(); oldRodMinLevels[i] = reader.ReadByte(); reader.BaseStream.Position += 0x2; oldRodPokemon[i] = (ushort)reader.ReadUInt32(); } } catch { fieldsWithErrors.Add("Old Rod"); } /* Good Rod encounters */ try { goodRodRate = (byte)reader.ReadInt32(); for (int i = 0; i < 5; i++) { goodRodMaxLevels[i] = reader.ReadByte(); goodRodMinLevels[i] = reader.ReadByte(); reader.BaseStream.Position += 0x2; goodRodPokemon[i] = (ushort)reader.ReadUInt32(); } } catch { fieldsWithErrors.Add("Good Rod"); } /* Super Rod encounters */ try { superRodRate = (byte)reader.ReadInt32(); for (int i = 0; i < 5; i++) { superRodMaxLevels[i] = reader.ReadByte(); superRodMinLevels[i] = reader.ReadByte(); reader.BaseStream.Position += 0x2; superRodPokemon[i] = (ushort)reader.ReadUInt32(); } } catch { fieldsWithErrors.Add("Super Rod"); } if (fieldsWithErrors.Count > 0) { ReportErrors(fieldsWithErrors); } } } public EncounterFileDPPt(int ID) : this(new FileStream(RomInfo.gameDirs[DirNames.encounters].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { } public EncounterFileDPPt() { swarmPokemon = new ushort[2]; } #endregion Constructors #region Methods (1) public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write((uint)walkingRate); /* Walking encounters */ for (int i = 0; i < 12; i++) { writer.Write((uint)walkingLevels[i]); writer.Write(walkingPokemon[i]); } /* Swarms */ for (int i = 0; i < 2; i++) { writer.Write((uint)swarmPokemon[i]); } /* Time-specific encounters */ for (int i = 0; i < 2; i++) { writer.Write(morningPokemon[i]); } for (int i = 0; i < 2; i++) { writer.Write(nightPokemon[i]); } /* Poké-Radar encounters */ for (int i = 0; i < 4; i++) { writer.Write(radarPokemon[i]); } writer.BaseStream.Position = 0xA4; /* Dual-slot encounters */ for (int i = 0; i < 2; i++) { writer.Write(rubyPokemon[i]); } for (int i = 0; i < 2; i++) { writer.Write(sapphirePokemon[i]); } for (int i = 0; i < 2; i++) { writer.Write(emeraldPokemon[i]); } for (int i = 0; i < 2; i++) { writer.Write(fireRedPokemon[i]); } for (int i = 0; i < 2; i++) { writer.Write(leafGreenPokemon[i]); } /* Surf encounters */ writer.Write((uint)surfRate); for (int i = 0; i < 5; i++) { writer.Write(surfMaxLevels[i]); writer.Write(surfMinLevels[i]); writer.BaseStream.Position += 0x2; writer.Write((uint)surfPokemon[i]); } writer.BaseStream.Position = 0x124; /* Old Rod encounters */ writer.Write((uint)oldRodRate); for (int i = 0; i < 5; i++) { writer.Write(oldRodMaxLevels[i]); writer.Write(oldRodMinLevels[i]); writer.BaseStream.Position += 0x2; writer.Write((uint)oldRodPokemon[i]); } /* Good Rod encounters */ writer.Write((uint)goodRodRate); for (int i = 0; i < 5; i++) { writer.Write(goodRodMaxLevels[i]); writer.Write(goodRodMinLevels[i]); writer.BaseStream.Position += 0x2; writer.Write((uint)goodRodPokemon[i]); } /* Super Rod encounters */ writer.Write((uint)superRodRate); for (int i = 0; i < 5; i++) { writer.Write(superRodMaxLevels[i]); writer.Write(superRodMinLevels[i]); writer.BaseStream.Position += 0x2; writer.Write((uint)superRodPokemon[i]); } } return newData.ToArray(); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("DPPt Encounter File", EncounterFile.extension, suggestedFileName, showSuccessMessage); } #endregion } /// /// Class to store wild Pokemon data from Pokemon HeartGold and SoulSilver /// public class EncounterFileHGSS : EncounterFile { #region Fields (9) public byte rockSmashRate; public ushort[] morningPokemon = new ushort[12]; public ushort[] dayPokemon = new ushort[12]; public ushort[] nightPokemon = new ushort[12]; public ushort[] hoennMusicPokemon = new ushort[2]; public ushort[] sinnohMusicPokemon = new ushort[2]; public ushort[] rockSmashPokemon = new ushort[2]; public byte[] rockSmashMinLevels = new byte[2]; public byte[] rockSmashMaxLevels = new byte[2]; #endregion #region Constructors public EncounterFileHGSS(Stream data) { using (BinaryReader reader = new BinaryReader(data)) { List fieldsWithErrors = new List(); /* Encounter rates */ try { walkingRate = reader.ReadByte(); } catch { walkingRate = 0x00; fieldsWithErrors.Add("Regular Encounters rate" + msgFixed); } try { surfRate = reader.ReadByte(); } catch { surfRate = 0x00; fieldsWithErrors.Add("Surf rate" + msgFixed); } try { rockSmashRate = reader.ReadByte(); } catch { rockSmashRate = 0x00; fieldsWithErrors.Add("Rock Smash rate" + msgFixed); } try { oldRodRate = reader.ReadByte(); } catch { oldRodRate = 0x00; fieldsWithErrors.Add("Old Rod rate" + msgFixed); } try { goodRodRate = reader.ReadByte(); } catch { goodRodRate = 0x00; fieldsWithErrors.Add("Good Rod rate" + msgFixed); } try { superRodRate = reader.ReadByte(); } catch { superRodRate = 0x00; fieldsWithErrors.Add("Super Rod rate" + msgFixed); } reader.BaseStream.Position += 0x2; /* Walking encounters levels */ for (int i = 0; i < 12; i++) { try { walkingLevels[i] = reader.ReadByte(); } catch { walkingLevels[i] = 0x00; fieldsWithErrors.Add("Regular Encounters" + ' ' + '[' + i + ']' + msgFixed); } } /* Morning walking encounters */ for (int i = 0; i < 12; i++) { try { morningPokemon[i] = reader.ReadUInt16(); } catch { morningPokemon[i] = 0x00; fieldsWithErrors.Add("Morning Encounters" + ' ' + '[' + i + ']' + msgFixed); } } /* Day walking encounters */ for (int i = 0; i < 12; i++) { try { dayPokemon[i] = reader.ReadUInt16(); } catch { dayPokemon[i] = 0x00; fieldsWithErrors.Add("Day Encounters" + ' ' + '[' + i + ']' + msgFixed); } } /* Night walking encounters */ for (int i = 0; i < 12; i++) { try { nightPokemon[i] = reader.ReadUInt16(); } catch { nightPokemon[i] = 0x00; fieldsWithErrors.Add("Night Encounters" + ' ' + '[' + i + ']' + msgFixed); } } /* PokéGear music encounters */ for (int i = 0; i < 2; i++) { try { hoennMusicPokemon[i] = reader.ReadUInt16(); } catch { hoennMusicPokemon[i] = 0x00; fieldsWithErrors.Add("Hoenn Music Encounters" + ' ' + '[' + i + ']' + msgFixed); } } for (int i = 0; i < 2; i++) { try { sinnohMusicPokemon[i] = reader.ReadUInt16(); } catch { sinnohMusicPokemon[i] = 0x00; fieldsWithErrors.Add("Sinnoh Music Encounters" + ' ' + '[' + i + ']' + msgFixed); } } /* Surf encounters */ for (int i = 0; i < 5; i++) { try { surfMinLevels[i] = reader.ReadByte(); } catch { surfMinLevels[i] = 0x01; fieldsWithErrors.Add("Surf Encounters" + ' ' + '[' + i + ']' + " min. level" + msgFixed); } try { surfMaxLevels[i] = reader.ReadByte(); } catch { surfMaxLevels[i] = 0x01; fieldsWithErrors.Add("Surf Encounters" + ' ' + '[' + i + ']' + " max. level" + msgFixed); } try { surfPokemon[i] = reader.ReadUInt16(); } catch { surfMinLevels[i] = 0x00; fieldsWithErrors.Add("Surf Encounters" + ' ' + '[' + i + ']' + " Pokémon" + msgFixed); } } /* Rock Smash encounters */ for (int i = 0; i < 2; i++) { try { rockSmashMinLevels[i] = reader.ReadByte(); } catch { rockSmashMinLevels[i] = 0x01; fieldsWithErrors.Add("Rock Smash Encounters" + ' ' + '[' + i + ']' + " min. level" + msgFixed); } try { rockSmashMaxLevels[i] = reader.ReadByte(); } catch { rockSmashMaxLevels[i] = 0x01; fieldsWithErrors.Add("Rock Smash Encounters" + ' ' + '[' + i + ']' + " max. level" + msgFixed); } try { rockSmashPokemon[i] = reader.ReadUInt16(); } catch { rockSmashPokemon[i] = 0x00; fieldsWithErrors.Add("Rock Smash Encounters" + ' ' + '[' + i + ']' + " Pokémon" + msgFixed); } } /* Old Rod encounters */ for (int i = 0; i < 5; i++) { try { oldRodMinLevels[i] = reader.ReadByte(); } catch { oldRodMinLevels[i] = 0x01; fieldsWithErrors.Add("Old Rod Encounters" + ' ' + '[' + i + ']' + " min. level" + msgFixed); } try { oldRodMaxLevels[i] = reader.ReadByte(); } catch { oldRodMaxLevels[i] = 0x01; fieldsWithErrors.Add("Old Rod Encounters" + ' ' + '[' + i + ']' + " max. level" + msgFixed); } try { oldRodPokemon[i] = reader.ReadUInt16(); } catch { oldRodPokemon[i] = 0x00; fieldsWithErrors.Add("Old Rod Encounters" + ' ' + '[' + i + ']' + " Pokémon" + msgFixed); } } /* Good Rod encounters */ for (int i = 0; i < 5; i++) { try { goodRodMinLevels[i] = reader.ReadByte(); } catch { goodRodMinLevels[i] = 0x01; fieldsWithErrors.Add("Good Rod Encounters" + ' ' + '[' + i + ']' + " min. level" + msgFixed); } try { goodRodMaxLevels[i] = reader.ReadByte(); } catch { goodRodMaxLevels[i] = 0x01; fieldsWithErrors.Add("Good Rod Encounters" + ' ' + '[' + i + ']' + " max. level" + msgFixed); } try { goodRodPokemon[i] = reader.ReadUInt16(); } catch { goodRodPokemon[i] = 0x00; fieldsWithErrors.Add("Good Rod Encounters" + ' ' + '[' + i + ']' + " Pokémon" + msgFixed); } } /* Super Rod encounters */ for (int i = 0; i < 5; i++) { try { superRodMinLevels[i] = reader.ReadByte(); } catch { superRodMinLevels[i] = 0x01; fieldsWithErrors.Add("Super Rod Encounters" + ' ' + '[' + i + ']' + " min. level" + msgFixed); } try { superRodMaxLevels[i] = reader.ReadByte(); } catch { superRodMaxLevels[i] = 0x01; fieldsWithErrors.Add("Super Rod Encounters" + ' ' + '[' + i + ']' + " max. level" + msgFixed); } try { superRodPokemon[i] = reader.ReadUInt16(); } catch { superRodPokemon[i] = 0x00; fieldsWithErrors.Add("Super Rod Encounters" + ' ' + '[' + i + ']' + " Pokémon" + msgFixed); } } /* Swarm encounters */ swarmPokemon = new ushort[4]; for (int i = 0; i < 4; i++) { try { swarmPokemon[i] = reader.ReadUInt16(); } catch (EndOfStreamException) { swarmPokemon[i] = 0x00; fieldsWithErrors.Add("Swarms" + '[' + i + ']' + msgFixed); } } if (fieldsWithErrors.Count > 0) { ReportErrors(fieldsWithErrors); } } } public EncounterFileHGSS(int ID) : this(new FileStream(RomInfo.gameDirs[DirNames.encounters].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { } public EncounterFileHGSS() { swarmPokemon = new ushort[4]; } #endregion #region Methods(1) public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { /* Encounter rates */ writer.Write(walkingRate); writer.Write(surfRate); writer.Write(rockSmashRate); writer.Write(oldRodRate); writer.Write(goodRodRate); writer.Write(superRodRate); writer.BaseStream.Position += 0x2; /* Walking encounters levels */ for (int i = 0; i < 12; i++) { writer.Write(walkingLevels[i]); } /* Morning walking encounters */ for (int i = 0; i < 12; i++) { writer.Write(morningPokemon[i]); } /* Day walking encounters */ for (int i = 0; i < 12; i++) { writer.Write(dayPokemon[i]); } /* Night walking encounters */ for (int i = 0; i < 12; i++) { writer.Write(nightPokemon[i]); } /* PokéGear music encounters */ for (int i = 0; i < 2; i++) { writer.Write(hoennMusicPokemon[i]); } for (int i = 0; i < 2; i++) { writer.Write(sinnohMusicPokemon[i]); } /* Surf encounters */ for (int i = 0; i < 5; i++) { writer.Write(surfMinLevels[i]); writer.Write(surfMaxLevels[i]); writer.Write(surfPokemon[i]); } /* Rock Smash encounters */ for (int i = 0; i < 2; i++) { writer.Write(rockSmashMinLevels[i]); writer.Write(rockSmashMaxLevels[i]); writer.Write(rockSmashPokemon[i]); } /* Old Rod encounters */ for (int i = 0; i < 5; i++) { writer.Write(oldRodMinLevels[i]); writer.Write(oldRodMaxLevels[i]); writer.Write(oldRodPokemon[i]); } /* Good Rod encounters */ for (int i = 0; i < 5; i++) { writer.Write(goodRodMinLevels[i]); writer.Write(goodRodMaxLevels[i]); writer.Write(goodRodPokemon[i]); } /* Super Rod encounters */ for (int i = 0; i < 5; i++) { writer.Write(superRodMinLevels[i]); writer.Write(superRodMaxLevels[i]); writer.Write(superRodPokemon[i]); } /* Swarm encounters */ for (int i = 0; i < 4; i++) { writer.Write(swarmPokemon[i]); } } return newData.ToArray(); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("HGSS Encounter File", EncounterFile.extension, suggestedFileName, showSuccessMessage); } #endregion } } ================================================ FILE: DS_Map/ROMFiles/EventFile.cs ================================================ using DSPRE.Resources; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE.ROMFiles { /// /// Classes to store event data in Pokémon NDS games /// public class EventFile : RomFile { public enum serializationOrder { Spawnables, Overworlds, Warps, Triggers } #region Fields public static readonly string DefaultFilter = "Event File (*.evt, *.ev)|*.evt;*.ev"; public List spawnables = new List(); public List overworlds = new List(); public List warps = new List(); public List triggers = new List(); #endregion #region Constructors (1) public EventFile(Stream data) { using (BinaryReader reader = new BinaryReader(data)) { /* Read spawnables */ uint spawnablesCount = reader.ReadUInt32(); for (int i = 0; i < spawnablesCount; i++) { spawnables.Add(new Spawnable(new MemoryStream(reader.ReadBytes(0x14)))); } /* Read overworlds */ uint overworldsCount = reader.ReadUInt32(); for (int i = 0; i < overworldsCount; i++) { overworlds.Add(new Overworld(new MemoryStream(reader.ReadBytes(0x20)))); } /* Read warps */ uint warpsCount = reader.ReadUInt32(); for (int i = 0; i < warpsCount; i++) { warps.Add(new Warp(new MemoryStream(reader.ReadBytes(0xC)))); } /* Read triggers */ uint triggersCount = reader.ReadUInt32(); for (int i = 0; i < triggersCount; i++) { triggers.Add(new Trigger(new MemoryStream(reader.ReadBytes(0x10)))); } } } public EventFile(int ID) : this(new FileStream(RomInfo.gameDirs[DirNames.eventFiles].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { } public EventFile() { } #endregion #region Methods (1) public override string ToString() { return base.ToString(); } public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { /* Write spawnables */ writer.Write((uint)spawnables.Count); for (int i = 0; i < spawnables.Count; i++) { writer.Write(spawnables[i].ToByteArray()); } /* Write overworlds */ writer.Write((uint)overworlds.Count); for (int i = 0; i < overworlds.Count; i++) { writer.Write(overworlds[i].ToByteArray()); } /* Write warps */ writer.Write((uint)warps.Count); for (int i = 0; i < warps.Count; i++) { writer.Write(warps[i].ToByteArray()); } /* Write triggers */ writer.Write((uint)triggers.Count); for (int i = 0; i < triggers.Count; i++) { writer.Write(triggers[i].ToByteArray()); } } return newData.ToArray(); } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.eventFiles, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Event File", "ev", suggestedFileName, showSuccessMessage); } internal bool isEmpty() => (spawnables is null || spawnables.Count == 0) && (overworlds is null || overworlds.Count == 0) && (warps is null || warps.Count == 0) && (triggers is null || triggers.Count == 0); #endregion } public abstract class Event { public enum EventType : byte { Spawnable, Overworld, Warp, Trigger } #region Fields (6) public EventType evType; public short xMapPosition; public short yMapPosition; public int zPosition; //fixed point! public ushort xMatrixPosition; public ushort yMatrixPosition; #endregion #region Methods (1) public abstract byte[] ToByteArray(); #endregion } public class Spawnable : Event { public const int TYPE_MISC = 0; public const int TYPE_BOARD = 1; public const int TYPE_HIDDENITEM = 2; #region Fields (7) public ushort scriptNumber; public ushort type; public ushort unknown2; public ushort unknown4; public ushort dir; public ushort unknown5; #endregion #region Constructors (2) public Spawnable(Stream data) { evType = EventType.Spawnable; using (BinaryReader reader = new BinaryReader(data)) { scriptNumber = reader.ReadUInt16(); type = reader.ReadUInt16(); /* Decompose x coordinate in matrix and map positions */ int xPosition = reader.ReadInt16(); xMapPosition = (short)(xPosition % MapFile.mapSize); xMatrixPosition = (ushort)(xPosition / MapFile.mapSize); unknown2 = reader.ReadUInt16(); /* Decompose y coordinate in matrix and map positions */ int yPosition = reader.ReadInt16(); yMapPosition = (short)(yPosition % MapFile.mapSize); yMatrixPosition = (ushort)(yPosition / MapFile.mapSize); zPosition = reader.ReadInt32(); unknown4 = reader.ReadUInt16(); dir = reader.ReadUInt16(); unknown5 = reader.ReadUInt16(); } } public Spawnable(int xMatrixPosition, int yMatrixPosition) { evType = EventType.Spawnable; scriptNumber = 0; type = 0; unknown2 = 0; unknown4 = 0; unknown5 = 0; dir = 0; xMapPosition = 0; yMapPosition = 0; zPosition = 0; this.xMatrixPosition = (ushort)xMatrixPosition; this.yMatrixPosition = (ushort)yMatrixPosition; } public Spawnable(Spawnable toCopy) { evType = EventType.Spawnable; scriptNumber = toCopy.scriptNumber; type = toCopy.type; unknown2 = toCopy.unknown2; unknown4 = toCopy.unknown4; unknown5 = toCopy.unknown5; dir = toCopy.dir; xMapPosition = toCopy.xMapPosition; yMapPosition = toCopy.yMapPosition; zPosition = toCopy.zPosition; this.xMatrixPosition = toCopy.xMatrixPosition; this.yMatrixPosition = toCopy.yMatrixPosition; } #endregion #region Methods (1) public override byte[] ToByteArray() { using (BinaryWriter writer = new BinaryWriter(new MemoryStream())) { writer.Write(scriptNumber); writer.Write(type); short xCoordinate = (short)(xMapPosition + MapFile.mapSize * xMatrixPosition); writer.Write(xCoordinate); writer.Write(unknown2); short yCoordinate = (short)(yMapPosition + MapFile.mapSize * yMatrixPosition); writer.Write(yCoordinate); writer.Write(zPosition); writer.Write(unknown4); writer.Write(dir); writer.Write(unknown5); return ((MemoryStream)writer.BaseStream).ToArray(); } } public override string ToString() { string msg = ""; switch (this.type) { case TYPE_MISC: msg += $"Misc, {PokeDatabase.EventEditor.Spawnables.orientationsArray[dir].ToLower()}"; break; case TYPE_BOARD: msg += $"Board, {PokeDatabase.EventEditor.Spawnables.orientationsArray[dir].ToLower()}"; break; case TYPE_HIDDENITEM: msg += "Hidden Item"; break; } return msg + $", [Scr {scriptNumber}]"; } #endregion } public class Overworld : Event { #region Fields (14) public static string MovementCodeKW = "Move"; public enum OwType : ushort { NORMAL = 0, TRAINER = 1, ITEM = 3 }; public ushort owID; public ushort overlayTableEntry; public ushort movement; public ushort type; public ushort flag; public ushort scriptNumber; public ushort orientation; public ushort sightRange; public ushort unknown1; public ushort unknown2; public ushort xRange; public ushort yRange; public bool is3D = new bool(); #endregion #region Constructors (2) public Overworld(Stream data) { evType = EventType.Overworld; using (BinaryReader reader = new BinaryReader(data)) { owID = reader.ReadUInt16(); overlayTableEntry = reader.ReadUInt16(); movement = reader.ReadUInt16(); type = reader.ReadUInt16(); flag = reader.ReadUInt16(); scriptNumber = reader.ReadUInt16(); orientation = reader.ReadUInt16(); sightRange = reader.ReadUInt16(); unknown1 = reader.ReadUInt16(); unknown2 = reader.ReadUInt16(); xRange = reader.ReadUInt16(); yRange = reader.ReadUInt16(); /* Decompose x-y coordinates in matrix and map positions */ int xPosition = reader.ReadInt16(); int yPosition = reader.ReadInt16(); xMapPosition = (short)(xPosition % MapFile.mapSize); yMapPosition = (short)(yPosition % MapFile.mapSize); xMatrixPosition = (ushort)(xPosition / MapFile.mapSize); yMatrixPosition = (ushort)(yPosition / MapFile.mapSize); zPosition = reader.ReadInt32(); } } public Overworld(int owID, int xMatrixPosition, int yMatrixPosition) { evType = EventType.Overworld; this.owID = (ushort)owID; overlayTableEntry = 1; movement = 0; type = 0; flag = 0; scriptNumber = 0; orientation = 1; sightRange = 0; unknown1 = 0; unknown2 = 0; xRange = 0; yRange = 0; xMapPosition = 16; yMapPosition = 16; zPosition = 0; this.xMatrixPosition = (ushort)xMatrixPosition; this.yMatrixPosition = (ushort)yMatrixPosition; } public Overworld(Overworld toCopy) { evType = EventType.Overworld; this.owID = toCopy.owID; overlayTableEntry = toCopy.overlayTableEntry; movement = toCopy.movement; type = toCopy.type; flag = toCopy.flag; scriptNumber = toCopy.scriptNumber; orientation = toCopy.orientation; sightRange = toCopy.sightRange; unknown1 = toCopy.unknown1; unknown2 = toCopy.unknown2; xRange = toCopy.xRange; yRange = toCopy.yRange; xMapPosition = toCopy.xMapPosition; yMapPosition = toCopy.yMapPosition; zPosition = toCopy.zPosition; this.xMatrixPosition = toCopy.xMatrixPosition; this.yMatrixPosition = toCopy.yMatrixPosition; } #endregion #region Methods (1) public override byte[] ToByteArray() { using (BinaryWriter writer = new BinaryWriter(new MemoryStream())) { writer.Write(owID); writer.Write(overlayTableEntry); writer.Write(movement); writer.Write(type); writer.Write(flag); writer.Write(scriptNumber); writer.Write(orientation); writer.Write(sightRange); writer.Write(unknown1); writer.Write(unknown2); writer.Write(xRange); writer.Write(yRange); short xCoordinate = (short)(xMapPosition + MapFile.mapSize * xMatrixPosition); writer.Write(xCoordinate); short yCoordinate = (short)(yMapPosition + MapFile.mapSize * yMatrixPosition); writer.Write(yCoordinate); writer.Write(zPosition); return ((MemoryStream)writer.BaseStream).ToArray(); } } public override string ToString() { string entityName = ", " + "Entry " + overlayTableEntry; return $"{(this.isAlias() ? "AliasOf" : "ID")} {this.owID} {entityName}"; } private bool isAlias() { return scriptNumber == 0xFFFF; } #endregion } public class Warp : Event { #region Fields (4) public ushort header; public ushort anchor; public uint height; #endregion #region Constructors (2) public Warp(Stream data) { evType = EventType.Warp; using (BinaryReader reader = new BinaryReader(data)) { /* Decompose x-y coordinates in matrix and map positions */ int xPosition = reader.ReadInt16(); int yPosition = reader.ReadInt16(); xMapPosition = (short)(xPosition % MapFile.mapSize); yMapPosition = (short)(yPosition % MapFile.mapSize); xMatrixPosition = (ushort)(xPosition / MapFile.mapSize); yMatrixPosition = (ushort)(yPosition / MapFile.mapSize); header = reader.ReadUInt16(); anchor = reader.ReadUInt16(); height = reader.ReadUInt32(); } } public Warp(int xMatrixPosition, int yMatrixPosition) { evType = EventType.Warp; header = 0; anchor = 0; xMapPosition = 0; yMapPosition = 0; this.xMatrixPosition = (ushort)xMatrixPosition; this.yMatrixPosition = (ushort)yMatrixPosition; } public Warp(Warp toCopy) { evType = EventType.Warp; header = toCopy.header; anchor = toCopy.anchor; xMapPosition = toCopy.xMapPosition; yMapPosition = toCopy.yMapPosition; this.xMatrixPosition = toCopy.xMatrixPosition; this.yMatrixPosition = toCopy.yMatrixPosition; } #endregion #region Methods (1) public override byte[] ToByteArray() { using (BinaryWriter writer = new BinaryWriter(new MemoryStream())) { ushort xCoordinate = (ushort)(xMapPosition + MapFile.mapSize * xMatrixPosition); writer.Write(xCoordinate); ushort yCoordinate = (ushort)(yMapPosition + MapFile.mapSize * yMatrixPosition); writer.Write(yCoordinate); writer.Write(header); writer.Write(anchor); writer.Write(height); return ((MemoryStream)writer.BaseStream).ToArray(); } } public override string ToString() { return "To Header " + header.ToString("D3") + ", " + "Hook " + anchor.ToString("D2"); } #endregion } public class Trigger : Event { #region Fields (7) public ushort scriptNumber; public ushort widthX; public ushort heightY; new public ushort zPosition; public ushort expectedVarValue; public ushort variableWatched; #endregion Fields #region Constructors (2) public Trigger(Stream data) { evType = EventType.Trigger; using (BinaryReader reader = new BinaryReader(data)) { scriptNumber = reader.ReadUInt16(); /* Decompose x-y coordinates in matrix and map positions */ int xPosition = reader.ReadInt16(); int yPosition = reader.ReadInt16(); xMapPosition = (short)(xPosition % MapFile.mapSize); yMapPosition = (short)(yPosition % MapFile.mapSize); xMatrixPosition = (ushort)(xPosition / MapFile.mapSize); yMatrixPosition = (ushort)(yPosition / MapFile.mapSize); widthX = reader.ReadUInt16(); heightY = reader.ReadUInt16(); zPosition = reader.ReadUInt16(); expectedVarValue = reader.ReadUInt16(); variableWatched = reader.ReadUInt16(); } } public Trigger(int xMatrixPosition, int yMatrixPosition) { evType = EventType.Trigger; scriptNumber = 0; variableWatched = 0; expectedVarValue = 0; widthX = 1; heightY = 1; xMapPosition = 0; yMapPosition = 0; this.xMatrixPosition = (ushort)xMatrixPosition; this.yMatrixPosition = (ushort)yMatrixPosition; } public Trigger(Trigger toCopy) { evType = EventType.Trigger; scriptNumber = toCopy.scriptNumber; variableWatched = toCopy.variableWatched; expectedVarValue = toCopy.expectedVarValue; widthX = toCopy.widthX; heightY = toCopy.heightY; xMapPosition = toCopy.xMapPosition; yMapPosition = toCopy.xMapPosition; this.xMatrixPosition = toCopy.xMatrixPosition; this.yMatrixPosition = toCopy.yMatrixPosition; } #endregion #region Methods (1) public override byte[] ToByteArray() { using (BinaryWriter writer = new BinaryWriter(new MemoryStream())) { writer.Write(scriptNumber); ushort xCoordinate = (ushort)(xMapPosition + MapFile.mapSize * xMatrixPosition); writer.Write(xCoordinate); ushort yCoordinate = (ushort)(yMapPosition + MapFile.mapSize * yMatrixPosition); writer.Write(yCoordinate); writer.Write(widthX); writer.Write(heightY); writer.Write(zPosition); writer.Write(expectedVarValue); writer.Write(variableWatched); return ((MemoryStream)writer.BaseStream).ToArray(); } } public override string ToString() { string msg = "Run script " + scriptNumber; if (variableWatched != 0) { msg += $" when Var {variableWatched} is {expectedVarValue}"; } return msg; } #endregion } } ================================================ FILE: DS_Map/ROMFiles/EvolutionFile.cs ================================================ using DSPRE.ROMFiles; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using static DSPRE.RomInfo; namespace DSPRE { public enum EvolutionMethod : short { None = 0, Friendship220 = 1, Friendship220_Day = 2, Friendship220_Night = 3, LevelingUp = 4, Trade = 5, Trade_HeldItem = 6, Item = 7, Atk_Greater_Def = 8, Atk_Equal_Def = 9, Def_Greater_Atk = 10, Personality1 = 11, Personality2 = 12, FreeSpaceCheck = 13, Shedinja = 14, BeautyThreshold = 15, ItemMale = 16, ItemFemale = 17, HeldItem_Day = 18, HeldItem_Night = 19, KnowsMove = 20, PartyPokemonPresence = 21, LevelingUp_Male = 22, LevelingUp_Female = 23, Loc_MtCoronet = LevelingUp_Female + 1, Loc_EternaForest = LevelingUp_Female + 2, Loc_Route217 = LevelingUp_Female + 3 } public enum EvolutionParamMeaning { Ignored, FromLevel, ItemName, MoveName, PokemonName, BeautyValue, } public struct EvolutionData { public EvolutionMethod method; public short param; public short target; public bool isValid() { if (method == EvolutionMethod.None) { return false; } if (method == EvolutionMethod.LevelingUp || method == EvolutionMethod.LevelingUp_Male || method == EvolutionMethod.LevelingUp_Female) { return param > 0 && param <= 100; } if (target <= 0) { return false; } return true; } } public class EvolutionFile : RomFile { public const int numEvolutions = 7; public EvolutionData[] data; public static readonly Dictionary evoDescriptions = new Dictionary() { [EvolutionMethod.None] = EvolutionParamMeaning.Ignored, [EvolutionMethod.Friendship220] = EvolutionParamMeaning.Ignored, [EvolutionMethod.Friendship220_Day] = EvolutionParamMeaning.Ignored, [EvolutionMethod.Friendship220_Night] = EvolutionParamMeaning.Ignored, [EvolutionMethod.LevelingUp] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.Trade] = EvolutionParamMeaning.Ignored, [EvolutionMethod.Trade_HeldItem] = EvolutionParamMeaning.ItemName, [EvolutionMethod.Item] = EvolutionParamMeaning.ItemName, [EvolutionMethod.Atk_Greater_Def] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.Atk_Equal_Def] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.Def_Greater_Atk] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.Personality1] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.Personality2] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.FreeSpaceCheck] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.Shedinja] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.BeautyThreshold] = EvolutionParamMeaning.BeautyValue, [EvolutionMethod.ItemMale] = EvolutionParamMeaning.ItemName, [EvolutionMethod.ItemFemale] = EvolutionParamMeaning.ItemName, [EvolutionMethod.HeldItem_Day] = EvolutionParamMeaning.ItemName, [EvolutionMethod.HeldItem_Night] = EvolutionParamMeaning.ItemName, [EvolutionMethod.KnowsMove] = EvolutionParamMeaning.MoveName, [EvolutionMethod.PartyPokemonPresence] = EvolutionParamMeaning.PokemonName, [EvolutionMethod.LevelingUp_Male] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.LevelingUp_Female] = EvolutionParamMeaning.FromLevel, [EvolutionMethod.Loc_EternaForest] = EvolutionParamMeaning.Ignored, [EvolutionMethod.Loc_MtCoronet] = EvolutionParamMeaning.Ignored, [EvolutionMethod.Loc_Route217] = EvolutionParamMeaning.Ignored, }; public EvolutionFile(Stream stream) { data = new EvolutionData[numEvolutions]; using (BinaryReader reader = new BinaryReader(stream)) { for (int i = 0; i < numEvolutions; i++) { data[i].method = (EvolutionMethod)reader.ReadInt16(); data[i].param = reader.ReadInt16(); data[i].target = reader.ReadInt16(); } } } public EvolutionFile(int ID) : this(new FileStream(RomInfo.gameDirs[DirNames.evolutions].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { } public EvolutionFile() { } public override byte[] ToByteArray() { using (MemoryStream memoryStream = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(memoryStream)) { foreach (EvolutionData evData in data) { if (evData.isValid()) { writer.Write((short)evData.method); writer.Write(evData.param); writer.Write(evData.target); } } //If the file is smaller than the minimum size, pad it with 00 int size = Marshal.SizeOf(typeof(EvolutionData)); int minSize = numEvolutions * size + 2; //2B pad if (memoryStream.Length < minSize) { memoryStream.SetLength(minSize); } } return memoryStream.ToArray(); } } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.evolutions, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Evolution data", "bin", suggestedFileName, showSuccessMessage); } } } ================================================ FILE: DS_Map/ROMFiles/GameMatrix.cs ================================================ using System; using System.IO; using System.Text; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE.ROMFiles { /* ---------------------- MATRIX DATA STRUCTURE (DPPtHGSS):----------------------------- 0x0 // byte: Matrix width (a.k.a row length) (x) 0x1 // byte: Matrix height (a.k.a number of rows per section) (y) 0x2 // byte: Headers section boolean (0 = not present, 1 = present) 0x3 // byte: Altitudes section flag (0 = not present, 1 = present) 0x4 // byte: Length of matrix name string 0x5 // string: Matrix name string (UTF-8 Encoded) -- // [Header section if applicable: y blocks of length x] -- // [Altitudes section if applicable: y blocks of length x] -- // [Map files section: y blocks of length x] -------------------------------------------------------------------------------------- */ /// /// Class to store map matrix data from Pokmon NDS games /// public class GameMatrix: RomFile { #region Fields (8) public static readonly string DefaultFilter = "Game Matrix File (*.mtx)|*.mtx"; public bool hasHeadersSection { get; set; } public bool hasHeightsSection { get; set; } public string name { get; set; } public byte width { get; set; } public byte height { get; set; } public int? id { get; } = null; public ushort[,] headers; public byte[,] altitudes; public ushort[,] maps; public static readonly ushort EMPTY = 65535; #endregion Fields #region Constructors(1) public GameMatrix(Stream data) { using (BinaryReader reader = new BinaryReader(data)) { /* Read matrix size and sections included */ width = reader.ReadByte(); height = reader.ReadByte(); if (reader.ReadBoolean()) { hasHeadersSection = true; } if (reader.ReadBoolean()) { hasHeightsSection = true; } /* Read matrix's name */ byte nameLength = reader.ReadByte(); name = Encoding.UTF8.GetString(reader.ReadBytes(nameLength)); /* Initialize section arrays */ headers = new ushort[height, width]; altitudes = new byte[height, width]; maps = new ushort[height, width]; /* Read sections */ if (hasHeadersSection) { for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { headers[i, j] = reader.ReadUInt16(); } } } if (hasHeightsSection) { for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { altitudes[i, j] = reader.ReadByte(); } } } for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { maps[i, j] = reader.ReadUInt16(); } } } } public GameMatrix(int ID) : this (new FileStream(RomInfo.gameDirs[DirNames.matrices].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { this.id = ID; } public GameMatrix(GameMatrix copy, int newID) { this.id = newID; this.name = copy.name; this.width = copy.width; this.height = copy.height; this.hasHeadersSection = copy.hasHeadersSection; this.hasHeightsSection = copy.hasHeightsSection; this.maps = (ushort[,])copy.maps.Clone(); this.altitudes = (byte[,])copy.altitudes.Clone(); this.headers = (ushort[,])copy.headers.Clone(); } public GameMatrix() { this.name = "newMatrix"; this.hasHeadersSection = false; this.hasHeightsSection = false; this.width = 1; this.height = 1; this.maps = new ushort[1, 1] { { 0 } }; } #endregion #region Methods (6) public void ResizeMatrix(int newHeight, int newWidth) { /* Initialize new arrays */ ushort[,] newHeaders = new ushort[newHeight, newWidth]; byte[,] newAltitudes = new byte[newHeight, newWidth]; ushort[,] newMaps = new ushort[newHeight, newWidth]; /* Copy existing headers and altitudes rows into new arrays. If new matrix is greater in any dimension, new entries will be zero */ if (hasHeadersSection) { for (int i = 0; i < Math.Min(height, newHeight); i++) { for (int j = 0; j < Math.Min(width, newWidth); j++) { newHeaders[i, j] = headers[i, j]; } } } if (hasHeightsSection) { for (int i = 0; i < Math.Min(height, newHeight); i++) { for (int j = 0; j < Math.Min(width, newWidth); j++) { newAltitudes[i, j] = altitudes[i, j]; } } } /* Copy existing map rows into new array, and fill eventual new ones with Matrix.EMPTY (FF FF) */ for (int i = 0; i < Math.Min(height, newHeight); i++) { for (int j = 0; j < Math.Min(width, newWidth); j++) { newMaps[i, j] = maps[i, j]; } } if (newHeight > height) { for (int i = height; i < newHeight; i++) { for (int j = 0; j < newWidth; j++) { newMaps[i, j] = GameMatrix.EMPTY; } } } if (newWidth > width) { for (int j = width; j < newWidth; j++) { for (int i = 0; i < newHeight; i++) { newMaps[i, j] = GameMatrix.EMPTY; } } } /* Substitute old arrays with new arrays */ headers = newHeaders; altitudes = newAltitudes; maps = newMaps; /* Set new width and height */ height = (byte)newHeight; width = (byte)newWidth; } public override string ToString() { return (this.id == null ? "" : id.ToString()) + ": " + this.name; } public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write(width); writer.Write(height); writer.Write(hasHeadersSection); writer.Write(hasHeightsSection); writer.Write(name); if (hasHeadersSection) { for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { writer.Write(headers[i, j]); } } } if (hasHeightsSection) { for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { writer.Write(altitudes[i, j]); } } } for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { writer.Write(maps[i, j]); } } } return newData.ToArray(); } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.matrices, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Matrix File", "mtx", suggestedFileName, showSuccessMessage); } #endregion } } ================================================ FILE: DS_Map/ROMFiles/HeadbuttEncounter.cs ================================================ using System.IO; namespace DSPRE.ROMFiles { public class HeadbuttEncounter { public ushort pokemonID; public byte minLevel; public byte maxLevel; public HeadbuttEncounter() { maxLevel = 0; minLevel = 0; pokemonID = 0; } public HeadbuttEncounter(BinaryReader br) { this.pokemonID = br.ReadUInt16(); this.minLevel = br.ReadByte(); this.maxLevel = br.ReadByte(); } public override string ToString() { string[] pokemonNames = RomInfo.GetPokemonNames(); string pokemon = pokemonNames[pokemonID]; return $"({pokemonID,4}) {pokemon,10}: Lv {minLevel,3} to Lv.{maxLevel,3}"; } } } ================================================ FILE: DS_Map/ROMFiles/HeadbuttEncounterFile.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; namespace DSPRE.ROMFiles { //https://hirotdk.neocities.org/FileSpecs.html#Headbutt public class HeadbuttEncounterFile { public ushort ID; //get encounter tables, 12 normal pokemon definitions, 6 special pokemon definitions, 4 bytes per definition const int normalEncountersCount = 12; const int specialEncountersCount = 6; public byte normalTreeGroupsCount; public byte specialTreeGroupsCount; public List normalEncounters; public List specialEncounters; public BindingList normalTreeGroups; public BindingList specialTreeGroups; public HeadbuttEncounterFile(ushort id) { this.ID = id; string path = Filesystem.GetHeadbuttPath(id); parse_file(path); } public HeadbuttEncounterFile(string path) { parse_file(path); } public void parse_file(string path) { FileStream fs = new FileStream(path, FileMode.Open); using (BinaryReader br = new BinaryReader(fs)) { //get the number of tree group definitions normalTreeGroupsCount = br.ReadByte(); br.ReadByte(); //padding specialTreeGroupsCount = br.ReadByte(); br.ReadByte(); //padding normalEncounters = new List(); specialEncounters = new List(); normalTreeGroups = new BindingList(); specialTreeGroups = new BindingList(); //if there are no trees defined in either section, there are no encounters or trees defined bool hasTrees = normalTreeGroupsCount > 0 || specialTreeGroupsCount > 0; if (!hasTrees) { for (int i = 0; i < normalEncountersCount; i++) { normalEncounters.Add(new HeadbuttEncounter()); } for (int i = 0; i < specialEncountersCount; i++) { specialEncounters.Add(new HeadbuttEncounter()); } return; } for (int i = 0; i < normalEncountersCount; i++) { normalEncounters.Add(new HeadbuttEncounter(br)); } for (int i = 0; i < specialEncountersCount; i++) { specialEncounters.Add(new HeadbuttEncounter(br)); } //tree groups have 6 sets of xy global coordinates x treeGroupsCount //coordinates need to be converted to matrix and local coordinates to be useful for (int i = 0; i < normalTreeGroupsCount; i++) { normalTreeGroups.Add(new HeadbuttTreeGroup(br)); } for (int i = 0; i < specialTreeGroupsCount; i++) { specialTreeGroups.Add(new HeadbuttTreeGroup(br)); } } } public byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write((ushort)normalTreeGroups.Count); writer.Write((ushort)specialTreeGroups.Count); foreach (HeadbuttEncounter encounter in normalEncounters) { writer.Write((ushort)encounter.pokemonID); writer.Write((byte)encounter.minLevel); writer.Write((byte)encounter.maxLevel); } foreach (HeadbuttEncounter encounter in specialEncounters) { writer.Write((UInt16)encounter.pokemonID); writer.Write((byte)encounter.minLevel); writer.Write((byte)encounter.maxLevel); } foreach (var treeGroup in normalTreeGroups) { foreach (var tree in treeGroup.trees) { writer.Write((UInt16)tree.globalX); writer.Write((UInt16)tree.globalY); } } foreach (var treeGroup in specialTreeGroups) { foreach (var tree in treeGroup.trees) { writer.Write((UInt16)tree.globalX); writer.Write((UInt16)tree.globalY); } } } return newData.ToArray(); } public bool SaveToFile() { string path = Filesystem.GetHeadbuttPath(ID); return SaveToFile(path); } public bool SaveToFile(int id) { string path = Filesystem.GetHeadbuttPath(id); return SaveToFile(path); } public bool SaveToFile(string path, bool showSuccessMessage = true) { byte[] romFileToByteArray = ToByteArray(); File.WriteAllBytes(path, romFileToByteArray); return true; } } } ================================================ FILE: DS_Map/ROMFiles/HeadbuttEncounterMap.cs ================================================ namespace DSPRE.ROMFiles { //This class is in case a MapHeader uses the same MapFile more than once //ToString is the matrix x,y and mapID class HeadbuttEncounterMap { public readonly int mapID; public readonly int x; public readonly int y; public HeadbuttEncounterMap(int mapID, int x, int y) { this.mapID = mapID; this.x = x; this.y = y; } public override string ToString() { return $"{mapID} - {x},{y}"; } public override bool Equals(object obj) { // If the passed object is null if (obj == null) { return false; } if (obj is HeadbuttEncounterMap) { return this.ToString() == ((HeadbuttEncounterMap)obj).ToString(); } return false; } public override int GetHashCode() { return this.x.GetHashCode() ^ y.GetHashCode() ^ mapID.GetHashCode(); } } } ================================================ FILE: DS_Map/ROMFiles/HeadbuttTree.cs ================================================ using System.IO; namespace DSPRE.ROMFiles { public class HeadbuttTree { public bool picked = false; private ushort _globalX; private ushort _globalY; private ushort _matrixX; private ushort _matrixY; private ushort _mapX; private ushort _mapY; public bool IsUnused { get { return globalX == ushort.MaxValue && globalY == ushort.MaxValue; } } public enum Types { Normal, Special, } public HeadbuttTree(ushort globalX = ushort.MaxValue, ushort globalY = ushort.MaxValue) { this.globalX = globalX; this.globalY = globalY; } public HeadbuttTree(HeadbuttTree original) { this.globalX = original.globalX; this.globalY = original.globalY; } public ushort globalX { get { return _globalX; } set { _globalX = value; _matrixX = (ushort)(_globalX / MapFile.mapSize); _mapX = (ushort)(_globalX % MapFile.mapSize); } } public ushort globalY { get { return _globalY; } set { _globalY = value; _matrixY = (ushort)(_globalY / MapFile.mapSize); _mapY = (ushort)(_globalY % MapFile.mapSize); } } public ushort matrixX { get { return _matrixX; } set { _matrixX = value; _globalX = (ushort)(_matrixX * MapFile.mapSize + _mapX); _mapX = (ushort)(_globalX % MapFile.mapSize); } } public ushort matrixY { get { return _matrixY; } set { _matrixY = value; _globalY = (ushort)(_matrixY * MapFile.mapSize + _mapY); _mapY = (ushort)(_globalY % MapFile.mapSize); } } public ushort mapX { get { return _mapX; } set { _mapX = value; _globalX = (ushort)(_matrixX * MapFile.mapSize + _mapX); _matrixX = (ushort)(_globalX / MapFile.mapSize); } } public ushort mapY { get { return _mapY; } set { _mapY = value; _globalY = (ushort)(_matrixY * MapFile.mapSize + _mapY); _matrixY = (ushort)(_globalY / MapFile.mapSize); } } public override string ToString() { if (IsUnused) { return "Unused Tree"; } return $"Tree at Global X: {globalX}, Global Y: {globalY}"; } } } ================================================ FILE: DS_Map/ROMFiles/HeadbuttTreeGroup.cs ================================================ using System.Collections.Generic; using System.IO; namespace DSPRE.ROMFiles { public class HeadbuttTreeGroup { const int treeCount = 6; //number of trees in each tree group public readonly List trees = new List(); public HeadbuttTreeGroup(BinaryReader br) { for (int i = 0; i < treeCount; i++) { ushort x = br.ReadUInt16(); ushort y = br.ReadUInt16(); trees.Add(new HeadbuttTree(x, y)); } } public HeadbuttTreeGroup() { for (int i = 0; i < treeCount; i++) { trees.Add(new HeadbuttTree()); } } public HeadbuttTreeGroup(HeadbuttTreeGroup original) { foreach (HeadbuttTree headbuttTree in original.trees) { trees.Add(new HeadbuttTree(headbuttTree)); } } public override string ToString() { if (trees.Count == 0) { return "Empty Tree Group"; } return $"Tree Group at {trees[0].globalX}, {trees[0].globalY}"; } } } ================================================ FILE: DS_Map/ROMFiles/LearnsetData.cs ================================================ using System.Collections.Generic; using System.Diagnostics; using System.IO; using DSPRE.ROMFiles; using static DSPRE.RomInfo; namespace DSPRE { internal class LearnsetData : RomFile { public static readonly int bitsMove = 9; public static readonly int bitsLevel = 7; public static readonly int VanillaLimit = 20; public readonly UniqueList<(byte level, ushort move)> list; public ushort[] GetLearnsetAtLevel(int atLevel) { ushort[] learnset = new ushort[4] {0, 0 , 0, 0}; foreach ((ushort level, ushort move) in list) { if (level <= atLevel) { if (learnset[0] == 0) { learnset[0] = move; } else if (learnset[1] == 0) { learnset[1] = move; } else if (learnset[2] == 0) { learnset[2] = move; } else if (learnset[3] == 0) { learnset[3] = move; } else { learnset[0] = learnset[1]; learnset[1] = learnset[2]; learnset[2] = learnset[3]; learnset[3] = move; } } } return learnset; } public LearnsetData(Stream stream) { int numEntries = (int)(stream.Length / sizeof(ushort)); list = new UniqueList<(byte level, ushort move)>(numEntries - 1); using (BinaryReader reader = new BinaryReader(stream)) { for (int i = 0; i < numEntries; i++) { ushort entry = reader.ReadUInt16(); if (entry == 0xFFFF) { return; } int maskMove = (1 << (bitsMove)) - 1; int move = entry & maskMove; entry >>= bitsMove; int maskLevel = (1 << (bitsLevel)) - 1; int lv = entry & maskLevel; list.Add(((byte)lv, (ushort)move)); } } } public LearnsetData(int ID) : this(new FileStream(RomInfo.gameDirs[DirNames.learnsets].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { } public override byte[] ToByteArray() { using (MemoryStream memoryStream = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(memoryStream)) { foreach ((byte level, ushort move) elem in list) { ushort move = (ushort)(elem.move & ((1 << bitsMove) - 1)); byte level = (byte)(elem.level & ((1 << bitsLevel) - 1)); ushort entry = (ushort)(move | (level << bitsMove)); writer.Write(entry); } // Add the termination entry writer.Write((ushort)0xFFFF); writer.Write((ushort)0x0000); } return memoryStream.ToArray(); } } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.learnsets, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Pokémon Learnset data", "bin", suggestedFileName, showSuccessMessage); } } } ================================================ FILE: DS_Map/ROMFiles/LevelScriptFile.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; namespace DSPRE.ROMFiles { public class LevelScriptFile { public int ID; public BindingList bufferSet = new BindingList(); public LevelScriptFile() { } public LevelScriptFile(int id) { this.ID = id; string path1 = Filesystem.scripts; string path = Path.Combine(path1, this.ID.ToString("D4")); parse_file(path); } public void parse_file(string path) { FileStream fs = new FileStream(path, FileMode.Open); using (BinaryReader br = new BinaryReader(fs)) { bool hasConditionalStructure = false; //conditionalStructureOffset is used to ensure the structure of the file is correct int conditionalStructureOffset = -1; while (true) { //first byte is the script type //if not a valid script type, break loop byte triggerType = br.ReadByte(); if (!LevelScriptTrigger.IsValidTriggerType(triggerType)){ break; } //subtract triggerType length from conditionalStructureOffset if (hasConditionalStructure){ conditionalStructureOffset -= sizeof(byte); } //if trigger type is a variable value, that doesn't immediately mean we're processing that trigger //the trigger data is processed last if it is there if (triggerType == LevelScriptTrigger.VARIABLEVALUE) { hasConditionalStructure = true; conditionalStructureOffset = (int)br.ReadUInt32(); continue; } //map screen load trigger doesn't have a value or variable uint scriptToTrigger = br.ReadUInt32(); bufferSet.Add(new MapScreenLoadTrigger(triggerType, (int)scriptToTrigger)); //subtract scriptToTrigger length from conditionalStructureOffset if (hasConditionalStructure){ conditionalStructureOffset -= sizeof(UInt32); } } //the earliest position a trigger can be const int SMALLEST_TRIGGER_SIZE = 5; //if triggerType is invalid //and next uint16 == 0 //and the file stream length is shorter than the earliest position a trigger can be if (br.BaseStream.Position == 1 && br.ReadUInt16() == 0 && fs.Length < SMALLEST_TRIGGER_SIZE) { return; throw new InvalidDataException("This level script does nothing."); // "Interesting..." } //br.BaseStream.Position == 3 //triggerType is valid, //stream position is earlier than the first possible trigger, or //there is no start script condition specified if (br.BaseStream.Position < SMALLEST_TRIGGER_SIZE) { throw new InvalidDataException("Parser failure: The input file you attempted to load is either malformed or not a Level Script file."); } //there are no instances of a variable value trigger if (!hasConditionalStructure) { return; } //if there's a variable value trigger but the offset is incorrect, the file is corrupt if (conditionalStructureOffset != 1) { throw new InvalidDataException($"Field error: The Level Script file you attempted to load is broken. {conditionalStructureOffset}"); } //get the variable value trigger parts while (true) { //there are no variables below 1 int variableID = br.ReadUInt16(); if (variableID <= 0){ break; } int varExpectedValue = br.ReadUInt16(); int scriptToTrigger = br.ReadUInt16(); bufferSet.Add(new VariableValueTrigger(scriptToTrigger, variableID, varExpectedValue)); } } } public long write_file(string path, bool word_alignment_padding = false) { FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write); using (BinaryWriter bw = new BinaryWriter(fs)) { HashSet mapScreenLoadTriggers = new HashSet(); HashSet variableValueTriggers = new HashSet(); foreach (LevelScriptTrigger item in bufferSet) { if (item is VariableValueTrigger variableValueTrigger) { variableValueTriggers.Add(variableValueTrigger); } else if (item is MapScreenLoadTrigger mapScreenLoadTrigger) { mapScreenLoadTriggers.Add(mapScreenLoadTrigger); } } foreach (MapScreenLoadTrigger item in mapScreenLoadTriggers) { bw.Write((byte)item.triggerType); bw.Write((UInt32)item.scriptTriggered); } if (variableValueTriggers.Count > 0) { bw.Write((byte)LevelScriptTrigger.VARIABLEVALUE); bw.Write((UInt32)1); bw.Write((byte)0); foreach (VariableValueTrigger item in variableValueTriggers) { bw.Write((UInt16)item.variableToWatch); bw.Write((UInt16)item.expectedValue); bw.Write((UInt16)item.scriptTriggered); } } bw.Write((UInt16)0); if (word_alignment_padding) { long missing_bytes = bw.BaseStream.Position % 4; for (int i = 0; i < 4 - missing_bytes; i++) { bw.Write((byte)0); } } return bw.BaseStream.Position; } } } } ================================================ FILE: DS_Map/ROMFiles/LevelScriptTrigger.cs ================================================ using System; namespace DSPRE.ROMFiles { public class LevelScriptTrigger { public const int VARIABLEVALUE = 1; public const int MAPCHANGE = 2; public const int SCREENRESET = 3; public const int LOADGAME = 4; private static int[] _triggerTypes; public int triggerType { get; set; } public int scriptTriggered { get; set; } public LevelScriptTrigger(int triggerType, int scriptTriggered) { this.triggerType = triggerType; this.scriptTriggered = scriptTriggered; } public static bool IsValidTriggerType(byte triggerType) { if (_triggerTypes == null) { _triggerTypes = new[] { VARIABLEVALUE, MAPCHANGE, SCREENRESET, LOADGAME }; } return Array.IndexOf(_triggerTypes, triggerType) != -1; } public override string ToString() { return "Starts Script " + scriptTriggered; } } } ================================================ FILE: DS_Map/ROMFiles/MapFile.cs ================================================ using System.IO; using System.Collections.Generic; using LibNDSFormats.NSBMD; using System.Windows.Forms; using static DSPRE.RomInfo; using System; using System.Drawing; namespace DSPRE.ROMFiles { /* ----------------------- MAP FILE DATA STRUCTURE (DPPtHGSS):-------------------------- 0x0 // uint: Length of permissions section (always 2048) 0x4 // uint: Length of buildings section 0x8 // uint: Length of nsbmd model section 0xC // uint: Length of BDHC section 0x10 // ************* Permissions section (1024 byte - byte pairs): 0x0 // byte: Type value of tile (e.g. normal, grass, surfable water) 0x1 // byte: Collision value of tile (00 for walkable, 80 for blocked) ************* Buildings section (# of buildings equal to section length divided by 48): BUILDING FORMAT: 0x0 // uint: Model ID 0x4 // ushort: 65535ths of X coordinate 0x6 // ushort: X coordinate 0x8 // ushort: 65535ths of Z coordinate 0xA // ushort: Z coordinate 0xC // ushort: 65535ths of Y coordinate 0xE // ushort: Y coordinate -------- 0x10 - 0x1C FILLER ZEROES 0x1D // uint: Model width scale (usually 16) 0x21 // uint: Model height scale (usually 16) 0x25 // uint: Model length scale (usually 16) -------- 0x2A - 0x2F FILLER ZEROES ************* NSBMD model section ************* BDHC section -------------------------------------------------------------------------------------- */ /// /// Class to store map data in Pokémon NDS games /// public class MapFile : RomFile { #region Fields public static readonly string NSBMDFilter = "NSBMD File (*.nsbmd)|*.nsbmd"; public static readonly string TexturedNSBMDFilter = "Textured" + NSBMDFilter; public static readonly string UntexturedNSBMDFilter = "Untextured" + NSBMDFilter; public static readonly string MovepermsFilter = "Permissions File (*.per)|*.per"; public static readonly string BuildingsFilter = "Buildings File (*.bld)|*.bld"; public static readonly string BDHCFilter = "Terrain File (*.bdhc)|*.bdhc"; public static readonly string BDHCamFilter = "Terrain File (*.bdhc, *.bdhcam)|*.bdhc;*.bdhcam"; public static readonly string BGSFilter = "BackGround Sound File (*.bgs)|*.bgs"; public bool correctnessFlag = true; public static readonly byte mapSize = 32; public static readonly byte buildingHeaderSize = 48; public static readonly byte[] blankBGS = new byte[] { 0x34, 0x12, 0x00, 0x00 }; public List buildings; public NSBMD mapModel; public byte[,] collisions = new byte[mapSize, mapSize]; public byte[,] types = new byte[mapSize, mapSize]; public byte[] mapModelData; public byte[] bdhc; public byte[] bgs = blankBGS; #endregion #region Constructors (1) public MapFile(string path, GameFamilies gFamily, bool discardMoveperms = false, bool showMessages = true) : this (new FileStream(path, FileMode.Open), gFamily, discardMoveperms, showMessages) {} public MapFile(int mapNumber, GameFamilies gFamily, bool discardMoveperms = false, bool showMessages = true) : this(RomInfo.gameDirs[DirNames.maps].unpackedDir + "\\" + mapNumber.ToString("D4"), gFamily, discardMoveperms, showMessages) { } public MapFile(Stream data, GameFamilies gFamily, bool discardMoveperms = false, bool showMessages = true) { using (BinaryReader reader = new BinaryReader(data)) { /* Read sections lengths */ int permissionsSectionLength = reader.ReadInt32(); int buildingsSectionLength = reader.ReadInt32(); int nsbmdSectionLength = reader.ReadInt32(); int bdhcSectionLength = reader.ReadInt32(); /* Read background sounds section */ if (gFamily == GameFamilies.HGSS) { //Map must be loaded as HGSS ushort bgsSignature = reader.ReadUInt16(); if (bgsSignature == 0x1234) { ushort bgsDataLength = reader.ReadUInt16(); reader.BaseStream.Position -= 4; //go back so that the signature "0x1234" + size can be read and stored ImportSoundPlates(reader.ReadBytes(bgsDataLength + 4)); } else { correctnessFlag = false; if (showMessages) { MessageBox.Show("The header section of this map's BackGround Sound data is corrupted.", "BGS Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Read permission data */ if (discardMoveperms) { reader.BaseStream.Position += permissionsSectionLength; } else { ImportPermissions(reader.ReadBytes(permissionsSectionLength)); } /* Read buildings data */ ImportBuildings(reader.ReadBytes(buildingsSectionLength)); /* Read nsbmd model */ if ( !LoadMapModel(reader.ReadBytes(nsbmdSectionLength), showMessages) ) { //Assign result to flag correctnessFlag = false; mapModel = null; }; /* Read bdhc data */ ImportTerrain(reader.ReadBytes(bdhcSectionLength)); } } #endregion #region Methods public byte[] BuildingsToByteArray() { MemoryStream newData = new MemoryStream(buildingHeaderSize * buildings.Count); using (BinaryWriter writer = new BinaryWriter(newData)) { for (int i = 0; i < buildings.Count; i++) { writer.Write(buildings[i].modelID); writer.Write(buildings[i].xFraction); writer.Write(buildings[i].xPosition); writer.Write(buildings[i].yFraction); writer.Write(buildings[i].yPosition); writer.Write(buildings[i].zFraction); writer.Write(buildings[i].zPosition); writer.Write((int)buildings[i].xRotation); writer.Write((int)buildings[i].yRotation); writer.Write((int)buildings[i].zRotation); writer.BaseStream.Position += 1; writer.Write(buildings[i].width); writer.Write(buildings[i].height); writer.Write(buildings[i].length); writer.Write(new byte[0x7]); // Second filler section } } return newData.ToArray(); } public byte[] CollisionsToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { for (int i = 0; i < mapSize; i++) { for (int j = 0; j < mapSize; j++) { writer.Write(types[i, j]); writer.Write(collisions[i, j]); } } } return newData.ToArray(); } public void ImportBuildings(byte[] newData) { buildings = new List(); using (BinaryReader reader = new BinaryReader(new MemoryStream(newData))) { for (int i = 0; i < newData.Length / buildingHeaderSize; i++) { buildings.Add(new Building(new MemoryStream(reader.ReadBytes(buildingHeaderSize)))); } } } public bool LoadMapModel(byte[] newData, bool showMessages = true) { using (BinaryReader modelReader = new BinaryReader(new MemoryStream(newData))) { if (modelReader.ReadUInt32() != NSBMD.NDS_TYPE_BMD0) { if (showMessages) { MessageBox.Show("Please select an NSBMD file.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); } return false; } modelReader.BaseStream.Position = 0xE; if (modelReader.ReadInt16() > 1) { // If NSBMD contains more than one segment, it means there are embedded textures we must remove mapModelData = NSBUtils.GetModelWithoutTextures(newData); } else { modelReader.BaseStream.Position = 0x0; mapModelData = modelReader.ReadBytes((int)modelReader.BaseStream.Length); } mapModel = NSBMDLoader.LoadNSBMD(new MemoryStream(mapModelData)); } return true; } public void ImportPermissions(byte[] newData) { using (BinaryReader reader = new BinaryReader(new MemoryStream(newData))) { for (int i = 0; i < 32; i++) { for (int j = 0; j < 32; j++) { types[i, j] = reader.ReadByte(); // Read permission type (e.g. surfing water, grass, sand etc.) collisions[i, j] = reader.ReadByte(); // Read walkability (00 for walkable and 80 for blocked) } } } } public void ImportSoundPlates(byte[] newData) { using (BinaryReader reader = new BinaryReader(new MemoryStream(newData))) { bgs = reader.ReadBytes((int)newData.Length); } } public void ImportTerrain(byte[] newData) { using (BinaryReader reader = new BinaryReader(new MemoryStream(newData))) { bdhc = reader.ReadBytes((int)newData.Length); } } public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { /* Write section lengths */ writer.Write(collisions.Length + types.Length); writer.Write(buildings.Count * buildingHeaderSize); writer.Write(mapModelData.Length); writer.Write(bdhc.Length); /* Write soundplate section for HG/SS */ if (RomInfo.gameFamily == GameFamilies.HGSS) { writer.Write(bgs); } /* Write sections */ writer.Write(CollisionsToByteArray()); writer.Write(BuildingsToByteArray()); writer.Write(mapModelData); writer.Write(bdhc); } return newData.ToArray(); } public SortedSet GetUsedTypes() { SortedSet sortedBytes = new SortedSet(); for (int i = 0; i < mapSize; i++) { for (int j = 0; j < mapSize; j++) { sortedBytes.Add(types[i, j]); } } return sortedBytes; } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.maps, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Map Bin", "bin", suggestedFileName, showSuccessMessage); } #endregion } /// /// Class to store building data from Pokémon NDS games /// public class Building { #region Fields (11) public NSBMD NSBMDFile; public uint modelID { get; set; } public short xPosition { get; set; } public short yPosition { get; set; } public short zPosition { get; set; } public ushort xFraction { get; set; } public ushort yFraction { get; set; } public ushort zFraction { get; set; } public ushort xRotation { get; set; } public ushort yRotation { get; set; } public ushort zRotation { get; set; } public uint width { get; set; } public uint height { get; set; } public uint length { get; set; } #endregion Fields #region Constructors (2) public Building(Stream data) { using (BinaryReader reader = new BinaryReader(data)) { modelID = reader.ReadUInt32(); xFraction = reader.ReadUInt16(); xPosition = reader.ReadInt16(); yFraction = reader.ReadUInt16(); yPosition = reader.ReadInt16(); zFraction = reader.ReadUInt16(); zPosition = reader.ReadInt16(); xRotation = reader.ReadUInt16(); reader.BaseStream.Position += 0x2; yRotation = reader.ReadUInt16(); reader.BaseStream.Position += 0x2; zRotation = reader.ReadUInt16(); reader.BaseStream.Position += 0x2; reader.BaseStream.Position += 0x1; width = reader.ReadUInt16(); reader.BaseStream.Position += 0x2; height = reader.ReadUInt16(); reader.BaseStream.Position += 0x2; length = reader.ReadUInt16(); //reader.BaseStream.Position += 0x2; } } public Building() { modelID = 0; xFraction = 0; xPosition = 0; yFraction = 0; yPosition = 1; zFraction = 0; zPosition = 0; xRotation = yRotation = zRotation = 0; width = 16; height = 16; length = 16; } public Building(Building toCopy) { modelID = toCopy.modelID; xFraction = toCopy.xFraction; xPosition = toCopy.xPosition; yFraction = toCopy.yFraction; yPosition = (short)(toCopy.yPosition + 1); zFraction = toCopy.zFraction; zPosition = toCopy.zPosition; xRotation = toCopy.xRotation; yRotation = toCopy.yRotation; zRotation = toCopy.zRotation; width = toCopy.width; height = toCopy.height; length = toCopy.length; } #endregion Constructors public static ushort DegToU16(float deg) { return (ushort)(deg * 65536 / 360); } public static float U16ToDeg(ushort u16) { return (float)u16 * 360 / 65536; } public void LoadModelData(string dir) { LoadModelDataFromID((int)modelID, dir); } public void LoadModelData(bool interior) { string modelPath = Filesystem.GetBuildingModelPath(interior, (int)modelID); if (string.IsNullOrWhiteSpace(modelPath) || !File.Exists(modelPath)) { MessageBox.Show("Building " + modelID + " could not be found in\n" + '"' + Path.GetDirectoryName(modelPath) + '"', "Building not found", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { using (Stream fs = new FileStream(modelPath, FileMode.Open)) { this.NSBMDFile = NSBMDLoader.LoadNSBMD(fs); } } catch (FileNotFoundException) { MessageBox.Show("Building " + modelID + " could not be found in\n" + '"' + Path.GetDirectoryName(modelPath) + '"', "Building not found", MessageBoxButtons.OK, MessageBoxIcon.Error); } } public void LoadModelDataFromID(int modelID, string bmDir) { string modelPath = bmDir + "\\" + modelID.ToString("D4"); if (string.IsNullOrWhiteSpace(modelPath) || !File.Exists(modelPath)) { MessageBox.Show("Building " + modelID + " could not be found in\n" + '"' + bmDir + '"', "Building not found", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { using (Stream fs = new FileStream(modelPath, FileMode.Open)) { this.NSBMDFile = NSBMDLoader.LoadNSBMD(fs); } } catch (FileNotFoundException) { MessageBox.Show("Building " + modelID + " could not be found in\n" + '"' + bmDir + '"', "Building not found", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } ================================================ FILE: DS_Map/ROMFiles/MapHeader.cs ================================================ using System.IO; using System.Windows.Forms; namespace DSPRE.ROMFiles { /// /// General class to store common map header data across all Gen IV Pokmon NDS games /// public abstract class MapHeader : RomFile { /*System*/ public static readonly string DefaultFilter = "DSPRE Header File (*.dsh; *.bin)|*.dsh;*.bin"; public ushort ID { get; set; } public static readonly byte length = 24; public static readonly string nameSeparator = " - "; public const int HGSS_NULL_ENCOUNTER_FILE_ID = 0xff; public const int DPPT_NULL_ENCOUNTER_FILE_ID = 0xffff; public enum SearchableFields: byte { AreaDataID, CameraAngleID, EventFileID, InternalName, LevelScriptID, MatrixID, MusicDayID, //MusicDayName, MusicNightID, //MusicNightName, ScriptFileID, TextArchiveID, WeatherID, }; #region Fields (10) public byte areaDataID { get; set; } public byte preloadedSpritesList { get; set; } public byte cameraAngleID { get; set; } public ushort eventFileID { get; set; } public ushort levelScriptID { get; set; } public ushort matrixID { get; set; } public ushort scriptFileID { get; set; } public ushort musicDayID { get; set; } public ushort musicNightID { get; set; } public byte locationSpecifier { get; set; } public byte battleBackground { get; set; } public ushort textArchiveID { get; set; } public byte weatherID { get; set; } public byte flags { get; set; } public ushort wildPokemon { get; set; } #endregion Fields #region Methods (1) public static string BuildName(int headerID, string name) { return headerID.ToString("D3") + MapHeader.nameSeparator + name; } public static MapHeader LoadFromByteArray(byte[] headerData, ushort headerNumber, RomInfo.GameFamilies gameFamily = RomInfo.GameFamilies.NULL) { /* Encapsulate header data into the class appropriate for the gameVersion */ if (headerData.Length < MapHeader.length) { MessageBox.Show("File of header " + headerNumber + " is too small and can't store header data.", "Header file too small", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } if (gameFamily == RomInfo.GameFamilies.NULL) { gameFamily = RomInfo.gameFamily; } switch (gameFamily) { case RomInfo.GameFamilies.DP: return new HeaderDP(headerNumber, new MemoryStream(headerData)); case RomInfo.GameFamilies.Plat: return new HeaderPt(headerNumber, new MemoryStream(headerData)); default: return new HeaderHGSS(headerNumber, new MemoryStream(headerData)); } } public static MapHeader LoadFromFile(string filename, ushort headerNumber, long offsetInFile, RomInfo.GameFamilies gameFamily = RomInfo.GameFamilies.NULL) { /* Calculate header offset and load data */ byte[] headerData = DSUtils.ReadFromFile(filename, offsetInFile, MapHeader.length); return LoadFromByteArray(headerData, headerNumber, gameFamily); } public static MapHeader LoadFromARM9(ushort headerNumber, RomInfo.GameFamilies gameFamily = RomInfo.GameFamilies.NULL) { long headerOffset = RomInfo.headerTableOffset + MapHeader.length * headerNumber; return LoadFromFile(RomInfo.arm9Path, headerNumber, headerOffset, gameFamily); } public static MapHeader GetMapHeader(ushort headerNumber) { MapHeader mapHeader; //Dynamic headers patch unsupported in DP if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.DP)) { return MapHeader.LoadFromARM9(headerNumber); } /* Check if dynamic headers patch has been applied, and load header from arm9 or a/0/5/0 accordingly */ if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied) { string path = Filesystem.GetDynamicHeaderPath(headerNumber); mapHeader = MapHeader.LoadFromFile(path, headerNumber, 0); } else { mapHeader = MapHeader.LoadFromARM9(headerNumber); } return mapHeader; } public static int GetHeaderCount() { int headerCount; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied) { headerCount = Filesystem.GetDynamicHeadersCount(); } else { headerCount = RomInfo.GetHeaderCount(); } return headerCount; } public void SaveFile() { /* Check if dynamic headers patch has been applied, and save header to arm9 or a/0/5/0 accordingly */ if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied) { string path = Filesystem.GetDynamicHeaderPath(ID); DSUtils.WriteToFile(path, this.ToByteArray(), 0, 0, fmode: FileMode.Create); } else { uint headerOffset = (uint)(RomInfo.headerTableOffset + MapHeader.length * this.ID); ARM9.WriteBytes(this.ToByteArray(), headerOffset); } } #endregion } /// /// Class to store map header data from Pokmon D and P /// public class HeaderDP : MapHeader { #region Fields (5) public ushort locationName { get; set; } #endregion Fields #region Constructors (1) public HeaderDP(ushort headerNumber, Stream data) { this.ID = headerNumber; using (BinaryReader reader = new BinaryReader(data)) { areaDataID = reader.ReadByte(); preloadedSpritesList = reader.ReadByte(); matrixID = reader.ReadUInt16(); scriptFileID = reader.ReadUInt16(); levelScriptID = reader.ReadUInt16(); textArchiveID = reader.ReadUInt16(); musicDayID = reader.ReadUInt16(); musicNightID = reader.ReadUInt16(); wildPokemon = reader.ReadUInt16(); eventFileID = reader.ReadUInt16(); locationName = reader.ReadUInt16(); weatherID = reader.ReadByte(); cameraAngleID = reader.ReadByte(); locationSpecifier = reader.ReadByte(); byte mapSettings = reader.ReadByte(); battleBackground = (byte)(mapSettings & 0b_1111); flags = (byte)(mapSettings >> 4 & 0b_1111); } } #endregion Constructors #region Methods (1) public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write(areaDataID); writer.Write(preloadedSpritesList); writer.Write(matrixID); writer.Write(scriptFileID); writer.Write(levelScriptID); writer.Write(textArchiveID); writer.Write(musicDayID); writer.Write(musicNightID); writer.Write(wildPokemon); writer.Write(eventFileID); writer.Write(locationName); writer.Write(weatherID); writer.Write(cameraAngleID); writer.Write(locationSpecifier); byte mapSettings = (byte)((battleBackground & 0b_1111) + ((flags & 0b_1111) << 4)); writer.Write(mapSettings); } return newData.ToArray(); } #endregion } /// /// Class to store map header data from Pokmon Plat /// public class HeaderPt : MapHeader { #region Fields (5) public byte areaIcon { get; set; } public byte locationName { get; set; } #endregion Fields #region Constructors (1) public HeaderPt(ushort headerNumber, Stream data) { this.ID = headerNumber; using (BinaryReader reader = new BinaryReader(data)) { try { areaDataID = reader.ReadByte(); preloadedSpritesList = reader.ReadByte(); matrixID = reader.ReadUInt16(); scriptFileID = reader.ReadUInt16(); levelScriptID = reader.ReadUInt16(); textArchiveID = reader.ReadUInt16(); musicDayID = reader.ReadUInt16(); musicNightID = reader.ReadUInt16(); wildPokemon = reader.ReadUInt16(); eventFileID = reader.ReadUInt16(); locationName = reader.ReadByte(); areaIcon = reader.ReadByte(); weatherID = reader.ReadByte(); cameraAngleID = reader.ReadByte(); ushort mapSettings = reader.ReadUInt16(); locationSpecifier = (byte)(mapSettings & 0b_1111_111); battleBackground = (byte)(mapSettings >> 7 & 0b_1111_1); flags = (byte)(mapSettings >> 12 & 0b_1111); } catch (EndOfStreamException) { MessageBox.Show("Error loading header " + ID + '.', "Unexpected EOF", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } #endregion Constructors #region Methods(1) public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write(areaDataID); writer.Write(preloadedSpritesList); writer.Write(matrixID); writer.Write(scriptFileID); writer.Write(levelScriptID); writer.Write(textArchiveID); writer.Write(musicDayID); writer.Write(musicNightID); writer.Write(wildPokemon); writer.Write(eventFileID); writer.Write(locationName); writer.Write(areaIcon); writer.Write(weatherID); writer.Write(cameraAngleID); ushort mapSettings = (ushort)((locationSpecifier & 0b_1111_111) + ((battleBackground & 0b_1111_1) << 7) + ((flags & 0b_1111) << 12)); writer.Write(mapSettings); } return newData.ToArray(); } #endregion } /// /// Class to store map header data from Pokmon HG and SS /// public class HeaderHGSS : MapHeader { #region Fields (7) public byte areaIcon { get; set; } public byte followMode { get; set; } public byte locationName { get; set; } public byte pokegearLocationID { get; set; } //4 bits only public byte worldmapX { get; set; } //6 bits only public byte worldmapY { get; set; } //6 bits only public bool kantoFlag { get; set; } #endregion #region Constructors (1) public HeaderHGSS(ushort headerNumber, Stream data) { this.ID = headerNumber; using (BinaryReader reader = new BinaryReader(data)) { try { wildPokemon = reader.ReadByte(); areaDataID = reader.ReadByte(); ushort coords = reader.ReadUInt16(); preloadedSpritesList = (byte)(coords & 0b_1111); //get 4 bits worldmapX = (byte)((coords >> 4) & 0b_1111_11); //get 6 bits after the first 4 worldmapY = (byte)((coords >> 10) & 0b_1111_11); //get 6 bits after the first 10 matrixID = reader.ReadUInt16(); scriptFileID = reader.ReadUInt16(); levelScriptID = reader.ReadUInt16(); textArchiveID = reader.ReadUInt16(); musicDayID = reader.ReadUInt16(); musicNightID = reader.ReadUInt16(); eventFileID = reader.ReadUInt16(); locationName = reader.ReadByte(); byte areaProperties = reader.ReadByte(); areaIcon = (byte)(areaProperties & 0b_1111); //get 4 bits pokegearLocationID = (byte)((areaProperties >> 4) & 0b_1111); //get 4 bits after the first 4 uint last32 = reader.ReadUInt32(); kantoFlag = (last32 & 0b_1) == 1; //get 1 bit weatherID = (byte)((last32 >> 1) & 0b_1111_111); //get 7 bits after the first one locationSpecifier = (byte)((last32 >> 8) & 0b_1111); //get 4 bits after the first 8 cameraAngleID = (byte)((last32 >> 12) & 0b_1111_11); //get 6 bits after the first 12 followMode = (byte)((last32 >> 18) & 0b_11); //get 2 bits after the first 17 battleBackground = (byte)((last32 >> 20) & 0b_1111_1); //get 5 bits after the first 19 flags = (byte)(last32 >> 25 & 0b_1111_111); //get 7 bits after the first 24 } catch (EndOfStreamException) { MessageBox.Show("Error loading header " + ID + '.', "Unexpected EOF", MessageBoxButtons.OK, MessageBoxIcon.Error); ID = ushort.MaxValue; } } } #endregion Constructors #region Methods(1) public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write((byte)wildPokemon); writer.Write(areaDataID); ushort worldMapCoordinates = (ushort)((preloadedSpritesList & 0b_1111) + ((worldmapX & 0b_1111_11) << 4) + ((worldmapY & 0b_1111_11) << 10)); writer.Write(worldMapCoordinates); writer.Write(matrixID); writer.Write(scriptFileID); writer.Write(levelScriptID); writer.Write(textArchiveID); writer.Write(musicDayID); writer.Write(musicNightID); writer.Write(eventFileID); writer.Write(locationName); byte areaProperties = (byte)((areaIcon & 0b_1111) + ((pokegearLocationID & 0b_1111) << 4)); writer.Write(areaProperties); uint last32 = (uint)(((weatherID & 0b_1111_111) << 1) + ((locationSpecifier & 0b_1111) << 8) + ((cameraAngleID & 0b_1111_1) << 12) + ((followMode & 0b_11) << 18) + ((battleBackground & 0b_1111_1) << 20) + ((flags & 0b_1111_111) << 25)); if (kantoFlag) { last32++; } writer.Write(last32); } return newData.ToArray(); } #endregion } } ================================================ FILE: DS_Map/ROMFiles/MapScreenLoadTrigger.cs ================================================ namespace DSPRE.ROMFiles { public class MapScreenLoadTrigger : LevelScriptTrigger { public MapScreenLoadTrigger(int type, int scriptTriggered) : base(type, scriptTriggered) { } public override string ToString() { switch (triggerType) { case LevelScriptTrigger.MAPCHANGE: return base.ToString() + " upon entering the LS map."; case LevelScriptTrigger.SCREENRESET: return base.ToString() + " when a fadescreen happens in the LS map."; case LevelScriptTrigger.LOADGAME: return base.ToString() + " when the game resumes in the LS map."; default: return base.ToString() + " under unknown circumstances."; } } public override bool Equals(object obj) { // If the passed object is null if (obj == null) { return false; } if (obj is MapScreenLoadTrigger) { return this.ToString() == ((MapScreenLoadTrigger)obj).ToString(); } return false; } public override int GetHashCode() { return this.triggerType.GetHashCode() ^ scriptTriggered.GetHashCode(); } } } ================================================ FILE: DS_Map/ROMFiles/MoveData.cs ================================================ using System.IO; using DSPRE.ROMFiles; using System; using System.Windows.Forms; using System.Text; using System.Collections.Generic; using static DSPRE.RomInfo; namespace DSPRE { public class MoveData : RomFile { public enum AttackRange : ushort { SELECTION = (0), VARIABLE = (1 << 0), RANDOM = (1 << 1), BOTH = (1 << 2), FOES_AND_ALLY = (1 << 3), USER = (1 << 4), USER_SIDE = (1 << 5), ACTIVE_FIELD = (1 << 6), OPPONENTS_FIELD = (1 << 7), ALLY = (1 << 8), ACUPRESSURE = (1 << 9), ME_FIRST = (1 << 10) }; public enum MoveSplit : byte { PHYSICAL = 0, SPECIAL, STATUS, }; public enum ContestCondition : byte { COOL = 0, BEAUTIFUL, CUTE, SMART, TOUGH, }; public enum MoveFlags : byte { CONTACT = (1 << 0), PROTECT = (1 << 1), MAGIC_COAT = (1 << 2), SNATCH = (1 << 3), MIRROR_MOVE = (1 << 4), KINGSROCK = (1 << 5), KEEP_HP_BAR = (1 << 6), DEL_SHADOW = (1 << 7) } public ushort battleeffect; public MoveSplit split; public byte damage; public PokemonType movetype; public byte accuracy; public byte pp; public byte sideEffectProbability; public ushort target; public sbyte priority; public byte flagField; public byte contestAppeal; public ContestCondition contestConditionType; public MoveData(Stream stream) { using (BinaryReader reader = new BinaryReader(stream)) { this.battleeffect = reader.ReadUInt16(); this.split = (MoveSplit)reader.ReadByte(); this.damage = reader.ReadByte(); this.movetype = (PokemonType)reader.ReadByte(); this.accuracy = reader.ReadByte(); this.pp = reader.ReadByte(); this.sideEffectProbability = reader.ReadByte(); this.target = reader.ReadUInt16(); //bitfield this.priority = reader.ReadSByte(); this.flagField = reader.ReadByte(); this.contestAppeal = reader.ReadByte(); this.contestConditionType = (ContestCondition)reader.ReadByte(); } } public MoveData(int ID) : this(new FileStream(RomInfo.gameDirs[DirNames.moveData].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { } public override byte[] ToByteArray() { using (MemoryStream memoryStream = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(memoryStream)) { writer.Write(this.battleeffect); writer.Write((byte)this.split); writer.Write(this.damage); writer.Write((byte)this.movetype); writer.Write(this.accuracy); writer.Write(this.pp); writer.Write(this.sideEffectProbability); writer.Write((ushort)this.target); writer.Write(this.priority); writer.Write(this.flagField); writer.Write(this.contestAppeal); writer.Write((byte)this.contestConditionType); writer.Write((ushort)0); //Filler } return memoryStream.ToArray(); } } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.moveData, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Move Data", "bin", suggestedFileName, showSuccessMessage); } public static void UpdateFromText(MoveData m, string[] split) { int target = 1; if (split.Length < target + 1) { return; } else { if (!Enum.TryParse(split[target], true, out m.movetype)) { MessageBox.Show($"Malformed entry: \"{string.Join(" ", split)}\".\nMove type is unreadable: \"{split[target]}\"", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } target++; if (split.Length < target + 1) { return; } else { if (!Enum.TryParse(split[target], true, out m.split)) { MessageBox.Show($"Malformed entry: \"{string.Join(" ", split)}\".\nMove split is unreadable: \"{split[target]}\"", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } target++; if (split.Length < target + 1) { return; } else { if (!byte.TryParse(split[target], out m.damage)) { if (split[target].StartsWith("-") || split[target].StartsWith("—")) { m.damage = 0; } else { MessageBox.Show($"Malformed entry: \"{string.Join(" ", split)}\".\nMove power is unreadable: \"{split[target]}\"", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } target++; if (split.Length < target + 1) { return; } else { if (!byte.TryParse(split[target].Replace('%', ' '), out m.accuracy)) { if (split[target].StartsWith("-") || split[target].StartsWith("—")) { m.accuracy = 0; } else { MessageBox.Show($"Malformed entry: \"{string.Join(" ", split)}\".\nMove accuracy is unreadable: \"{split[target]}\"", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } target++; if (split.Length < target + 1) { return; } else { if (!byte.TryParse(split[target].Replace('%', ' '), out m.pp)) { MessageBox.Show($"Malformed entry: \"{string.Join(" ", split)}\".\nMove PP count is unreadable: \"{split[target]}\"", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } } } } return; } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append(movetype.ToString()); sb.Append('\t'); sb.Append(split.ToString()); sb.Append('\t'); if (damage == 0) { sb.Append("-"); } else { sb.Append(damage); } sb.Append('\t'); if (accuracy == 0) { sb.Append("-"); } else { sb.Append(accuracy); sb.Append('%'); } sb.Append('\t'); sb.Append(pp); return sb.ToString(); } public override bool Equals(object obj) { return obj is MoveData data && battleeffect == data.battleeffect && split == data.split && damage == data.damage && movetype == data.movetype && accuracy == data.accuracy && pp == data.pp && sideEffectProbability == data.sideEffectProbability && target == data.target && priority == data.priority && flagField == data.flagField && contestAppeal == data.contestAppeal && contestConditionType == data.contestConditionType; } public override int GetHashCode() { int hashCode = -1756630415; hashCode = hashCode * -1521134295 + battleeffect.GetHashCode(); hashCode = hashCode * -1521134295 + split.GetHashCode(); hashCode = hashCode * -1521134295 + damage.GetHashCode(); hashCode = hashCode * -1521134295 + movetype.GetHashCode(); hashCode = hashCode * -1521134295 + accuracy.GetHashCode(); hashCode = hashCode * -1521134295 + pp.GetHashCode(); hashCode = hashCode * -1521134295 + sideEffectProbability.GetHashCode(); hashCode = hashCode * -1521134295 + target.GetHashCode(); hashCode = hashCode * -1521134295 + priority.GetHashCode(); hashCode = hashCode * -1521134295 + flagField.GetHashCode(); hashCode = hashCode * -1521134295 + contestAppeal.GetHashCode(); hashCode = hashCode * -1521134295 + contestConditionType.GetHashCode(); return hashCode; } } } ================================================ FILE: DS_Map/ROMFiles/PokemonPersonalData.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using static DSPRE.RomInfo; namespace DSPRE.ROMFiles { public enum PokemonGender { Male = 0, Female = 254, Unknown = 255 } public enum PokemonType { Normal = 0, Fighting, Flying, Poison, Ground, Rock, Bug, Ghost, Steel, Unknown, Fire, Water, Grass, Electric, Psychic, Ice, Dragon, Dark } public enum PokemonGrowthCurve { MediumFast = 0, Erratic, Fluctuating, MediumSlow, Fast, Slow } public enum PokemonEggGroup { Unassigned = 0, Monster, Water1, Bug, Flying, Field, Fairy, Grass, Humanoid, Water3, Mineral, Amorphous, Water2, Ditto, Dragon, NoBreed, }; public enum PokemonDexColor { Red = 0, Blue, Yellow, Green, Black, Brown, Purple, Gray, White, Pink, Unspecified } public class PokemonPersonalData : RomFile { public static readonly int tmsCount = 92; public static readonly int hmsCount = 8; public byte baseHP; public byte baseAtk; public byte baseDef; public byte baseSpeed; public byte baseSpAtk; public byte baseSpDef; public PokemonType type1; public PokemonType type2; public byte catchRate; public byte givenExp; //Part of a u16 bitfield, 2 bits each. public byte evHP; public byte evAtk; public byte evDef; public byte evSpeed; public byte evSpAtk; public byte evSpDef; public ushort item1; // First item that the mon may hold when caught public ushort item2; // Second item that the mon may hold when caught public byte genderVec; public byte eggSteps; public byte baseFriendship; public PokemonGrowthCurve growthCurve; public byte eggGroup1; public byte eggGroup2; public byte firstAbility; public byte secondAbility; public byte escapeRate; public PokemonDexColor color;// : 7; // Color (used in Pokedex) public bool flip;// : 1; // Flip Flag public SortedSet machines; public PokemonPersonalData(Stream stream) { using (BinaryReader reader = new BinaryReader(stream)) { // Deserialize the object from binary baseHP = reader.ReadByte(); baseAtk = reader.ReadByte(); baseDef = reader.ReadByte(); baseSpeed = reader.ReadByte(); baseSpAtk = reader.ReadByte(); baseSpDef = reader.ReadByte(); type1 = (PokemonType)reader.ReadByte(); type2 = (PokemonType)reader.ReadByte(); catchRate = reader.ReadByte(); givenExp = reader.ReadByte(); ushort evData = reader.ReadUInt16(); evHP = (byte)(evData & 0b11); evAtk = (byte)((evData >> 2) & 0b11); evDef = (byte)((evData >> 4) & 0b11); evSpeed = (byte)((evData >> 6) & 0b11); evSpAtk = (byte)((evData >> 8) & 0b11); evSpDef = (byte)((evData >> 10) & 0b11); item1 = reader.ReadUInt16(); item2 = reader.ReadUInt16(); genderVec = reader.ReadByte(); eggSteps = reader.ReadByte(); baseFriendship = reader.ReadByte(); growthCurve = (PokemonGrowthCurve)reader.ReadByte(); eggGroup1 = reader.ReadByte(); eggGroup2 = reader.ReadByte(); firstAbility = reader.ReadByte(); secondAbility = reader.ReadByte(); escapeRate = reader.ReadByte(); byte colorAndFlip = reader.ReadByte(); color = (PokemonDexColor)(colorAndFlip & 0b01111111); flip = ((colorAndFlip >> 7) & 0b00000001) == 1; reader.BaseStream.Position += 2; //Alignment uint tm1 = reader.ReadUInt32(); uint tm2 = reader.ReadUInt32(); uint tm3 = reader.ReadUInt32(); uint tm4 = reader.ReadUInt32(); machines = BitFieldToSet(new uint[4] { tm1, tm2, tm3, tm4 }); } } public PokemonPersonalData(int ID) : this(new FileStream(RomInfo.gameDirs[DirNames.personalPokeData].unpackedDir + "\\" + ID.ToString("D4"), FileMode.Open)) { } public override byte[] ToByteArray() { using (MemoryStream stream = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(stream)) { // Serialize the object to binary writer.Write(baseHP); writer.Write(baseAtk); writer.Write(baseDef); writer.Write(baseSpeed); writer.Write(baseSpAtk); writer.Write(baseSpDef); writer.Write((byte)type1); writer.Write((byte)type2); writer.Write(catchRate); writer.Write(givenExp); ushort evData = (ushort)((evHP & 0b11) | ((evAtk & 0b11) << 2) | ((evDef & 0b11) << 4) | ((evSpeed & 0b11) << 6) | ((evSpAtk & 0b11) << 8) | ((evSpDef & 0b11) << 10)); writer.Write(evData); writer.Write(item1); writer.Write(item2); writer.Write(genderVec); writer.Write(eggSteps); writer.Write(baseFriendship); writer.Write((byte)growthCurve); writer.Write(eggGroup1); writer.Write(eggGroup2); writer.Write(firstAbility); writer.Write(secondAbility); writer.Write(escapeRate); byte colorAndFlipflag = (byte)(((byte)color & 0b01111111) | (((flip ? 1 : 0) & 0b00000001) << 7)); writer.Write(colorAndFlipflag); writer.BaseStream.Position += 2; //Alignment uint[] bfs = SetToBitField(machines); int l = Math.Min(bfs.Length, 4); int i; for (i = 0; i < l; i++) { writer.Write(bfs[i]); } while (i < 4) { writer.Write((uint)0); i++; } } return stream.ToArray(); } } public SortedSet BitFieldToSet(uint[] bitfield) { var result = new SortedSet(); for (uint i = 0; i < bitfield.Length; i++) { uint currentBitfield = bitfield[i]; for (int j = 0; j < 32; j++) { if ((currentBitfield & (1 << j)) != 0) { result.Add((byte)(i * 32 + j)); } } } return result; } public uint[] SetToBitField(SortedSet set) { if (set == null) { return null; } if (set.Count == 0) { return new uint[0]; } int maxBit = set.Max(); uint[] bitfield = new uint[(maxBit / 32) + 1]; foreach (byte bit in set) { int index = bit / 32; int offset = bit % 32; bitfield[index] |= (uint)(1 << offset); } return bitfield; } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { SaveToFileDefaultDir(DirNames.personalPokeData, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Personal Pokémon data", "bin", suggestedFileName, showSuccessMessage); } } } ================================================ FILE: DS_Map/ROMFiles/RomFile.cs ================================================ using System; using System.IO; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE.ROMFiles { public abstract class RomFile { public abstract byte[] ToByteArray(); public bool SaveToFile(string path, bool showSuccessMessage = true) { byte[] romFileToByteArray = ToByteArray(); if (romFileToByteArray is null) { Console.WriteLine(GetType().Name + " couldn't be saved!"); return false; } File.WriteAllBytes(path, romFileToByteArray); if (showSuccessMessage) { MessageBox.Show(GetType().Name + " saved successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } return true; } protected internal bool SaveToFileDefaultDir(DirNames dir, int IDtoReplace, bool showSuccessMessage = true) { string path = RomInfo.gameDirs[dir].unpackedDir + "\\" + IDtoReplace.ToString("D4"); return this.SaveToFile(path, showSuccessMessage); } protected internal void SaveToFileExplorePath(string fileType, string fileExtension, string suggestedFileName, bool showSuccessMessage = true) { fileExtension = "*." + fileExtension; SaveFileDialog sf = new SaveFileDialog { Filter = $"{fileType} ({fileExtension})|{fileExtension}" }; if (!string.IsNullOrWhiteSpace(suggestedFileName)) { sf.FileName = suggestedFileName; } if (sf.ShowDialog() != DialogResult.OK) { return; } this.SaveToFile(sf.FileName, showSuccessMessage); } } } ================================================ FILE: DS_Map/ROMFiles/SafariZoneEncounter.cs ================================================ using System; using System.IO; namespace DSPRE.ROMFiles { public class SafariZoneEncounter { public ushort pokemonID; public byte level; public SafariZoneEncounter() { level = 1; pokemonID = 0; } public SafariZoneEncounter(BinaryReader br) { readEncounter(br); } public void readEncounter(BinaryReader br) { this.pokemonID = br.ReadUInt16(); this.level = br.ReadByte(); } public void writeEncounter(BinaryWriter bw) { bw.Write((UInt16)pokemonID); bw.Write((byte)level); } public override string ToString() { string[] pokemonNames = RomInfo.GetPokemonNames(); string pokemon = pokemonNames[pokemonID]; return $"{pokemonID,4} {pokemon,10}: {level,3}"; } } } ================================================ FILE: DS_Map/ROMFiles/SafariZoneEncounterFile.cs ================================================ using System.Collections.Generic; using System.IO; namespace DSPRE.ROMFiles { public class SafariZoneEncounterFile { public static Dictionary Names = new Dictionary() { {0, "Plains"}, {1, "Meadow"}, {2, "Savannah"}, {3, "Peak"}, {4, "Rocky Beach"}, {5, "Wetland"}, {6, "Forest"}, {7, "Swamp"}, {8, "Marshland"}, {9, "Wasteland"}, {10, "Mountain"}, {11, "Desert"}, }; public int ID; public SafariZoneEncounterGroup grassEncounterGroup = new SafariZoneEncounterGroup(); public SafariZoneEncounterGroup surfEncounterGroup = new SafariZoneEncounterGroup(); public SafariZoneEncounterGroup oldRodEncounterGroup = new SafariZoneEncounterGroup(); public SafariZoneEncounterGroup goodRodEncounterGroup = new SafariZoneEncounterGroup(); public SafariZoneEncounterGroup superRodEncounterGroup = new SafariZoneEncounterGroup(); public SafariZoneEncounterFile(int id) { this.ID = id; string path = Filesystem.GetSafariZonePath(id); parse_file(path); } public SafariZoneEncounterFile(string path) { parse_file(path); } public void parse_file(string path) { FileStream fs = new FileStream(path, FileMode.Open); using (BinaryReader br = new BinaryReader(fs)) { if (br.BaseStream.Length < 5){ return; } //#1 Section - Object Arrangement Allocation grassEncounterGroup.readObjectSlots(br); surfEncounterGroup.readObjectSlots(br); oldRodEncounterGroup.readObjectSlots(br); goodRodEncounterGroup.readObjectSlots(br); superRodEncounterGroup.readObjectSlots(br); br.ReadByte(); br.ReadByte(); br.ReadByte(); grassEncounterGroup.readGroup(br); surfEncounterGroup.readGroup(br); oldRodEncounterGroup.readGroup(br); goodRodEncounterGroup.readGroup(br); superRodEncounterGroup.readGroup(br); } } public byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter bw = new BinaryWriter(newData)) { grassEncounterGroup.writeObjectSlots(bw); surfEncounterGroup.writeObjectSlots(bw); oldRodEncounterGroup.writeObjectSlots(bw); goodRodEncounterGroup.writeObjectSlots(bw); superRodEncounterGroup.writeObjectSlots(bw); bw.Write((byte)0); bw.Write((byte)0); bw.Write((byte)0); grassEncounterGroup.writeGroup(bw); surfEncounterGroup.writeGroup(bw); oldRodEncounterGroup.writeGroup(bw); goodRodEncounterGroup.writeGroup(bw); superRodEncounterGroup.writeGroup(bw); } return newData.ToArray(); } public bool SaveToFile() { string path = Filesystem.GetSafariZonePath(ID); return SaveToFile(path); } public bool SaveToFile(int id) { string path = Filesystem.GetSafariZonePath(id); return SaveToFile(path); } public bool SaveToFile(string path, bool showSuccessMessage = true) { byte[] romFileToByteArray = ToByteArray(); File.WriteAllBytes(path, romFileToByteArray); return true; } } } ================================================ FILE: DS_Map/ROMFiles/SafariZoneEncounterGroup.cs ================================================ using System.ComponentModel; using System.IO; namespace DSPRE.ROMFiles { public class SafariZoneEncounterGroup { private const int EncounterSlots = 10; public byte ObjectSlots; public BindingList MorningEncounters = new BindingList(); public BindingList DayEncounters = new BindingList(); public BindingList NightEncounters = new BindingList(); public BindingList MorningEncountersObject = new BindingList(); public BindingList DayEncountersObject = new BindingList(); public BindingList NightEncountersObject = new BindingList(); public BindingList ObjectRequirements = new BindingList(); public BindingList OptionalObjectRequirements = new BindingList(); public void readObjectSlots(BinaryReader br) { ObjectSlots = br.ReadByte(); } public void writeObjectSlots(BinaryWriter bw) { bw.Write((byte)ObjectSlots); } public void readGroup(BinaryReader br) { //#2 Section - Tall Grass Encounters for (int i = 0; i < EncounterSlots; i++) { MorningEncounters.Add(new SafariZoneEncounter(br)); br.ReadByte(); } for (int i = 0; i < EncounterSlots; i++) { DayEncounters.Add(new SafariZoneEncounter(br)); br.ReadByte(); } for (int i = 0; i < EncounterSlots; i++) { NightEncounters.Add(new SafariZoneEncounter(br)); br.ReadByte(); } //#3 Section - Tall Grass Encounters (Object Arrangement) for (int i = 0; i < ObjectSlots; i++) { MorningEncountersObject.Add(new SafariZoneEncounter(br)); br.ReadByte(); } for (int i = 0; i < ObjectSlots; i++) { DayEncountersObject.Add(new SafariZoneEncounter(br)); br.ReadByte(); } for (int i = 0; i < ObjectSlots; i++) { NightEncountersObject.Add(new SafariZoneEncounter(br)); br.ReadByte(); } //#4 Section - Object Arrangement Requirements (Tall Grass) for (int i = 0; i < ObjectSlots; i++) { ObjectRequirements.Add(new SafariZoneObjectRequirement(br)); OptionalObjectRequirements.Add(new SafariZoneObjectRequirement(br)); } } public void writeGroup(BinaryWriter bw) { //#2 Section - Tall Grass Encounters for (int i = 0; i < MorningEncounters.Count; i++) { MorningEncounters[i].writeEncounter(bw); bw.Write((byte)0); } for (int i = 0; i < EncounterSlots; i++) { DayEncounters[i].writeEncounter(bw); bw.Write((byte)0); } for (int i = 0; i < EncounterSlots; i++) { NightEncounters[i].writeEncounter(bw); bw.Write((byte)0); } //#3 Section - Tall Grass Encounters (Object Arrangement) for (int i = 0; i < ObjectSlots; i++) { MorningEncountersObject[i].writeEncounter(bw); bw.Write((byte)0); } for (int i = 0; i < ObjectSlots; i++) { DayEncountersObject[i].writeEncounter(bw); bw.Write((byte)0); } for (int i = 0; i < ObjectSlots; i++) { NightEncountersObject[i].writeEncounter(bw); bw.Write((byte)0); } //#4 Section - Object Arrangement Requirements (Tall Grass) for (int i = 0; i < ObjectSlots; i++) { ObjectRequirements[i].writeRequirement(bw); OptionalObjectRequirements[i].writeRequirement(bw); } } } } ================================================ FILE: DS_Map/ROMFiles/SafariZoneObjectRequirement.cs ================================================ using System.Collections.Generic; using System.IO; namespace DSPRE.ROMFiles { public class SafariZoneObjectRequirement { public static Dictionary ObjectTypes = new Dictionary() { { 0, "No Requirement" }, { 1, "Plains" }, { 2, "Forest" }, { 3, "Peak" }, { 4, "Waterside" }, }; public byte typeID; public byte quantity; public SafariZoneObjectRequirement(byte typeID = 0, byte quantity = 0) { this.typeID = typeID; this.quantity = quantity; } public SafariZoneObjectRequirement(BinaryReader br) { readRequirement(br); } public void readRequirement(BinaryReader br) { typeID = br.ReadByte(); quantity = br.ReadByte(); } public void writeRequirement(BinaryWriter bw) { bw.Write((byte)typeID); bw.Write((byte)quantity); } public override string ToString() { return $"{typeID} {ObjectTypes[typeID]}: {quantity}"; } } } ================================================ FILE: DS_Map/ROMFiles/ScriptAction.cs ================================================ using DSPRE.Resources; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Windows.Forms; namespace DSPRE.ROMFiles { public class ActionContainer { public List actionCommandsList; public uint manualUserID; #region Constructors (2) public ActionContainer(uint actionNumber, List actionCommandsList = null) { manualUserID = actionNumber; this.actionCommandsList = actionCommandsList; } #endregion } public class ScriptAction { #region Fields (4) public ushort? id; public ushort? repetitionCount; public string name; #endregion public ScriptAction(ushort id, ushort? repetitionCount = null) { this.id = id; this.repetitionCount = repetitionCount; if (!RomInfo.ScriptActionNamesDict.TryGetValue(id, out name)) { name = id.ToString("X4"); } if (repetitionCount != null && id != 0x00FE) { name += " " + "0x" + ((ushort)repetitionCount).ToString("X"); } } public ScriptAction(string wholeLine, int lineNumber) { name = wholeLine; string[] nameParts = wholeLine.Replace("\t", "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // Separate command code from parameters /* Get command id, which is always first in the description */ if (RomInfo.ScriptActionNamesReverseDict.TryGetValue(nameParts[0].ToLower(), out ushort cmdID)) { this.id = cmdID; } else { if (ushort.TryParse(nameParts[0], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out ushort buf)) { id = buf; } else { string details; if (wholeLine.Contains(':') && wholeLine.ContainsNumber()) { details = "This probably means you forgot to \"End\" the Action above it."; } else { details = "Are you sure it's a proper Action Command?"; } MessageBox.Show("This Script file could not be saved." + Environment.NewLine + "Parser failed to interpret line " + lineNumber + ": \"" + wholeLine + "\"." + Environment.NewLine + "\n" + details, "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); id = null; return; } } if (id == 0x00FE && nameParts.Length != 1 || id != 0x00FE && nameParts.Length != 2) { //E.g.: End 0x2 0x40 OR LookUp MessageBox.Show("Wrong number of parameters for action " + nameParts[0] + " at line " + lineNumber + "." + Environment.NewLine + "Received: " + (nameParts.Length - 1) + Environment.NewLine + "Expected: 1" + Environment.NewLine + "\nThis Script File can not be saved.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); id = null; } else { if (id == 0x00FE) { repetitionCount = 0; } else { NumberStyles style; if (nameParts[1].StartsWith("0x", StringComparison.InvariantCultureIgnoreCase)) { style = NumberStyles.HexNumber; nameParts[1] = nameParts[1].Substring(2); } else { style = NumberStyles.Integer; } repetitionCount = ushort.Parse(nameParts[1], style); } } } } } ================================================ FILE: DS_Map/ROMFiles/ScriptActionContainer.cs ================================================ using System.Collections.Generic; namespace DSPRE.ROMFiles { public class ScriptActionContainer { public List commands; public uint manualUserID; public ScriptActionContainer(uint actionNumber, List commands = null) { manualUserID = actionNumber; this.commands = commands; } } } ================================================ FILE: DS_Map/ROMFiles/ScriptCommand.cs ================================================ using DSPRE.Resources; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Windows.Forms; namespace DSPRE.ROMFiles { public class ScriptCommand { enum ParamTypeEnum { INTEGER, VARIABLE, FLEX, OW_ID, OW_MOVEMENT_TYPE, OW_DIRECTION, FUNCTION_ID, ACTION_ID, CMD_NUMBER }; public ushort? id; public List cmdParams; public string name; public ScriptCommand(ushort id, List parametersList) { if (parametersList is null) { this.id = null; return; } if (!RomInfo.ScriptCommandNamesDict.TryGetValue(id, out name)) { name = FormatNumber(id, ParamTypeEnum.CMD_NUMBER); } switch (id) { case 0x0016: // Jump case 0x001A: // Call name += $" {FormatNumber(parametersList[0], ParamTypeEnum.FUNCTION_ID)}"; break; case 0x0017: // JumpIfObjID case 0x0018: // JumpIfEventID name += $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_ID)} {FormatNumber(parametersList[1])}"; break; case 0x0019: // JumpIfPlayerDir name += $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_DIRECTION)} {FormatNumber(parametersList[1], ParamTypeEnum.FUNCTION_ID)}"; break; case 0x001C: // JumpIf case 0x001D: // CallIf { string number = FormatNumber(parametersList[1], ParamTypeEnum.FUNCTION_ID); if (RomInfo.ScriptComparisonOperatorsDict.TryGetValue(parametersList[0][0], out string v)) { name += $" {v} {number}"; } else { name += $" {parametersList[0][0]} {number}"; } break; } case 0x005E: // Movement name += $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_ID)} {FormatNumber(parametersList[1], ParamTypeEnum.ACTION_ID)}"; break; case 0x006A: // GetOverworldPosition name += FormatCmd_Overworld_TwoParams(parametersList); break; case 0x0062: // Lock case 0x0063: // Release case 0x0064: // AddOW case 0x0065: // RemoveOW name += $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_ID)}"; break; case 0x006D: // SetOverworldMovement name += FormatCmd_Overworld_Move(parametersList); break; case 0x00B0: // Warp [HGSS] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.HGSS)) { name += FormatCmd_Warp(parametersList); } else { goto default; } break; case 0x0152: // SetOverworldDefaultPosition [HGSS] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.HGSS)) { name += FormatCmd_Overworld_TwoParams(parametersList); } else { goto default; } break; case 0x0153: // SetOverworldPosition [HGSS] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.HGSS)) { name += FormatCmd_Overworld_3Coords_Dir(parametersList); } else { goto default; } break; case 0x0154: // SetOverworldDefaultMovement [HGSS] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.HGSS)) { name += FormatCmd_Overworld_Move(parametersList); } else { goto default; } break; case 0x0155: // SetOverworldDefaultDirection [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.HGSS)) { name += FormatCmd_Overworld_Dir(parametersList); } else { goto default; } break; case 0x0158: // SetOverworldDirection [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.HGSS)) { name += FormatCmd_Overworld_Dir(parametersList); } else { goto default; } break; case 0x00BE: // Warp [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.DP) || RomInfo.gameFamily.Equals(RomInfo.GameFamilies.Plat)) { name += FormatCmd_Warp(parametersList); } else { goto default; } break; case 0x0186: // SetOverworldDefaultPosition [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.DP) || RomInfo.gameFamily.Equals(RomInfo.GameFamilies.Plat)) { name += FormatCmd_Overworld_TwoParams(parametersList); } else { goto default; } break; case 0x0187: // SetOverworldPosition [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.DP) || RomInfo.gameFamily.Equals(RomInfo.GameFamilies.Plat)) { name += FormatCmd_Overworld_3Coords_Dir(parametersList); } else { goto default; } break; case 0x0188: // SetOverworldDefaultMovement [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.DP) || RomInfo.gameFamily.Equals(RomInfo.GameFamilies.Plat)) { name += FormatCmd_Overworld_Move(parametersList); } else { goto default; } break; case 0x0189: // SetOverworldDefaultDirection [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.DP) || RomInfo.gameFamily.Equals(RomInfo.GameFamilies.Plat)) { name += FormatCmd_Overworld_Dir(parametersList); } else { goto default; } break; case 0x018C: // SetOverworldDirection [DPPt] if (RomInfo.gameFamily.Equals(RomInfo.GameFamilies.DP) || RomInfo.gameFamily.Equals(RomInfo.GameFamilies.Plat)) { name += FormatCmd_Overworld_Dir(parametersList); } else { goto default; } break; default: for (int i = 0; i < parametersList.Count; i++) { name += $" {FormatNumber(parametersList[i])}"; } break; } this.id = id; this.cmdParams = parametersList; } private string FormatCmd_Warp(List parametersList) { return $" {FormatNumber(parametersList[0])} {FormatNumber(parametersList[1])} {FormatNumber(parametersList[2])} {FormatNumber(parametersList[3])} {FormatNumber(parametersList[4], ParamTypeEnum.OW_DIRECTION)}"; } private string FormatCmd_Overworld_TwoParams(List parametersList) { return $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_ID)} {FormatNumber(parametersList[1])} {FormatNumber(parametersList[2])}"; } private string FormatCmd_Overworld_Move(List parametersList) { return $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_ID)} {FormatNumber(parametersList[1], ParamTypeEnum.OW_MOVEMENT_TYPE)}"; } private string FormatCmd_Overworld_3Coords_Dir(List parametersList) { return $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_ID)} {FormatNumber(parametersList[1])} {FormatNumber(parametersList[2])} {FormatNumber(parametersList[3])} {FormatNumber(parametersList[4], ParamTypeEnum.OW_DIRECTION)}"; } private string FormatCmd_Overworld_Dir(List parametersList) { return $" {FormatNumber(parametersList[0], ParamTypeEnum.OW_ID)} {FormatNumber(parametersList[1], ParamTypeEnum.OW_DIRECTION)}"; } public ScriptCommand(string wholeLine, int lineNumber = 0) { name = wholeLine; cmdParams = new List(); string[] nameParts = wholeLine.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // Separate command code from parameters /* Get command id, which is always first in the description */ if (RomInfo.ScriptCommandNamesReverseDict.TryGetValue(nameParts[0].ToLower(), out ushort cmdID)) { id = cmdID; } else { try { id = ushort.Parse(nameParts[0].PurgeSpecial(ScriptFile.specialChars), nameParts[0].GetNumberStyle()); } catch { string details; if (wholeLine.Contains(':') && wholeLine.ContainsNumber()) { details = "This probably means you forgot to \"End\" the Script or Function above it."; details += Environment.NewLine + "Please, also note that only Functions can be terminated\nwith \"Return\"."; } else { details = "Are you sure it's a proper Script Command?"; } MessageBox.Show("This Script file could not be saved." + $"\nParser failed to interpret line {lineNumber}: \"{wholeLine}\".\n\n{details}", "Parser error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } /* Read parameters from remainder of the description */ //Console.WriteLine("ID = " + ((ushort)id).ToString("X4")); byte[] parametersSizeArr = RomInfo.ScriptCommandParametersDict[(ushort)id]; int paramLength = 0; int paramsProcessed = 0; if (parametersSizeArr.First() == 0xFF) { int firstParamValue = int.Parse(nameParts[1].PurgeSpecial(ScriptFile.specialChars), nameParts[1].GetNumberStyle()); byte firstParamSize = parametersSizeArr[1]; cmdParams.Add(firstParamValue.ToByteArrayChooseSize(firstParamSize)); paramsProcessed++; int i = 2; int optionsCount = 0; bool found = false; while (i < parametersSizeArr.Length) { paramLength = parametersSizeArr[i + 1]; if (parametersSizeArr[i] == firstParamValue) { //Firstly, build subarray of parameter sizes, starting from the chosen option [firstParamValue] //FOR EXAMPLE: CMD 0x235 and firstParamValue = 5 // { 0xFF, 2, // 0, 1, 2, // 1, 3, 2, 2, 2, // 2, 0, // 3, 3, 2, 2, 2, // 4, 2, 2, 2, // 5, 3, (2, 2, 2) => this will be the parameters subarray // 6, 1, 2 // }, byte[] subParametersSize = parametersSizeArr.SubArray(i + 2, paramLength++); //Create a slightly bigger temp array byte[] temp = new byte[1 + subParametersSize.Length]; //Store the size of the firstParamValue there temp[0] = firstParamSize; //Then copy the whole subarray of parameter sizes Array.Copy(subParametersSize, 0, temp, 1, temp.Length - 1); //Replace the original parametersSizeArr with the new array parametersSizeArr = temp; found = true; break; } i += 2 + paramLength; optionsCount++; } if (!found) { MessageBox.Show($"Command {nameParts[0]} is a special Script Command.\n" + $"The value of the first parameter must be a number in the range [0 - {optionsCount}].\n\n" + $"Line {lineNumber}: {wholeLine}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); id = null; return; } } else if (parametersSizeArr.Length == 1 && parametersSizeArr.First() == 0) { paramLength = 0; } else { paramLength = parametersSizeArr.Length; } if (nameParts.Length - 1 == paramLength) { for (int i = paramsProcessed; i < paramLength; i++) { Console.WriteLine($"Parameter #{i}: {nameParts[i + 1]}"); if (RomInfo.ScriptComparisonOperatorsReverseDict.TryGetValue(nameParts[i + 1].ToLower(), out cmdID)) { //Check succeeds when command is like "asdfg LESS" or "asdfg DIFFERENT" cmdParams.Add(new byte[] { (byte)cmdID }); } else { //Not a comparison /* Convert strings of parameters to the correct datatypes */ NumberStyles numStyle = nameParts[i + 1].GetNumberStyle(); nameParts[i + 1] = nameParts[i + 1].PurgeSpecial(ScriptFile.specialChars); int result = 0; try { result = int.Parse(nameParts[i + 1], numStyle); } catch { if (string.IsNullOrWhiteSpace(nameParts[i + 1])) { MessageBox.Show($"You must specify an Overworld ID, Script, Function or Action number.\n\n" + $"Line {lineNumber}: {wholeLine}", "Unspecified identifier", MessageBoxButtons.OK, MessageBoxIcon.Error); id = null; } else { var first = ScriptDatabase.specialOverworlds.FirstOrDefault(x => x.Value.IgnoreCaseEquals(nameParts[i + 1])); if (string.IsNullOrWhiteSpace(first.Value)) { var res = ScriptDatabase.overworldDirections.FirstOrDefault(x => x.Value.IgnoreCaseEquals(nameParts[i + 1])); if (string.IsNullOrWhiteSpace(res.Value)) { MessageBox.Show($"Argument {nameParts[i + 1]} couldn't be parsed as a valid Condition, Overworld ID, Direction ID, Script, Function or Action number.\n\n" + $"Line {lineNumber}: {wholeLine}", "Invalid identifier", MessageBoxButtons.OK, MessageBoxIcon.Error); id = null; } else { result = res.Key; } } else { result = first.Key; } } } try { cmdParams.Add(result.ToByteArrayChooseSize(parametersSizeArr[i])); } catch (OverflowException) { MessageBox.Show($"Argument {nameParts[i + 1]} at line {lineNumber} is not in the range [0, {Math.Pow(2, 8 * parametersSizeArr[i]) - 1}].", "Argument error", MessageBoxButtons.OK, MessageBoxIcon.Error); id = null; } } } } else { MessageBox.Show($"Wrong number of parameters for command {nameParts[0]} at line {lineNumber}.\n" + $"Received: {nameParts.Length - 1}\n" + $"Expected: {paramLength}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); id = null; } } private string FormatNumber(byte[] par, ParamTypeEnum paramType = ParamTypeEnum.INTEGER) { //number acquisition uint num; if (par.Length == 0) { return ""; } else if (par.Length == 1) { num = par[0]; } else if (par.Length == 2) { num = BitConverter.ToUInt16(par, 0); } else if (par.Length == 4) { num = BitConverter.ToUInt32(par, 0); } else { throw new InvalidOperationException(); } return FormatNumber(num, paramType); } private string FormatNumber(uint num, ParamTypeEnum paramType = ParamTypeEnum.INTEGER) { //differentiate depending on param type string formatOverride; string prefix; if (Properties.Settings.Default.scriptEditorFormatPreference == (int)NumberStyles.HexNumber) { formatOverride = "X"; prefix = "0x"; } else { //(Properties.Settings.Default.scriptEditorFormatPreference == NumberStyles.Integer) formatOverride = "D"; prefix = ""; } string outp = ""; switch (paramType) { case ParamTypeEnum.CMD_NUMBER: return "CMD_" + prefix + num.ToString(formatOverride + '3'); case ParamTypeEnum.FUNCTION_ID: return ScriptFile.ContainerTypes.Function.ToString() + "#" + num; case ParamTypeEnum.ACTION_ID: return ScriptFile.ContainerTypes.Action.ToString() + "#" + num; case ParamTypeEnum.OW_MOVEMENT_TYPE: if (num < 4000) { outp += "Move."; } goto default; case ParamTypeEnum.OW_ID: { if (ScriptDatabase.specialOverworlds.TryGetValue((ushort)num, out string output)) { return output; } else { if (num < 4000) { outp += $"{Event.EventType.Overworld}."; } goto default; } } case ParamTypeEnum.OW_DIRECTION: { if (ScriptDatabase.overworldDirections.TryGetValue((byte)num, out string output)) { return output; } else { if (num < 4000) { outp += $"Direction."; } goto default; } } default: if (Properties.Settings.Default.scriptEditorFormatPreference == (int)NumberStyles.None) { if (num >= 4000) { formatOverride = "X"; prefix = "0x"; } } outp += prefix + num.ToString(formatOverride); break; } return outp; } public override string ToString() { return name + " (" + ((ushort)id).ToString("X") + ")"; } } } ================================================ FILE: DS_Map/ROMFiles/ScriptCommandContainer.cs ================================================ using System.Collections.Generic; namespace DSPRE.ROMFiles { public class ScriptCommandContainer { public List commands; public uint manualUserID; public int usedScriptID; //useScript ID referenced by this Script/Function public ScriptFile.ContainerTypes containerType; internal static readonly string functionStart; public ScriptCommandContainer(uint scriptNumber, ScriptFile.ContainerTypes containerType, int usedScriptID = -1, List commandList = null) { manualUserID = scriptNumber; this.usedScriptID = usedScriptID; this.containerType = containerType; commands = commandList; } public ScriptCommandContainer(uint newID, ScriptCommandContainer toCopy) { manualUserID = newID; usedScriptID = toCopy.usedScriptID; containerType = toCopy.containerType; commands = new List(toCopy.commands); //command parameters need to be copied recursively } } } ================================================ FILE: DS_Map/ROMFiles/ScriptFile.cs ================================================ using DSPRE.Resources; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE.ROMFiles { /// /// Class to store script file data in Pokémon NDS games /// public class ScriptFile : RomFile { //this enum doesn't really make much sense now but it will, once scripts can be called and jumped to public enum ContainerTypes { Function, Action, Script }; public struct ContainerReference { public uint ID; public uint offsetInFile; } public List allScripts = new List(); public List allFunctions = new List(); public List allActions = new List(); public int fileID = -1; public bool isLevelScript = new bool(); public bool hasNoScripts { get { return fileID == int.MaxValue; } } public static readonly char[] specialChars = { 'x', 'X', '#', '.', '_' }; public ScriptFile(Stream fs, bool readFunctions = true, bool readActions = true) { List scriptOffsets = new List(); List functionOffsets = new List(); List movementOffsets = new List(); using (BinaryReader br = new BinaryReader(fs)) { /* Read script offsets from the header */ isLevelScript = true; // Is Level Script as long as magic number FD13 doesn't exist try { while (true) { uint checker = br.ReadUInt16(); br.BaseStream.Position -= 0x2; uint value = br.ReadUInt32(); if (value == 0 && scriptOffsets.Count == 0) { isLevelScript = true; break; } if (checker == 0xFD13) { br.BaseStream.Position -= 0x4; isLevelScript = false; break; } int offsetFromStart = (int)(value + br.BaseStream.Position); // Don't change order of addition scriptOffsets.Add(offsetFromStart); } } catch (EndOfStreamException) { if (!isLevelScript) { MessageBox.Show("Script File couldn't be read correctly.", "Unexpected EOF", MessageBoxButtons.OK, MessageBoxIcon.Error); // Now this may appear in a few level scripts that don't have a 4-byte aligned "00 00 00 00" } } if (isLevelScript) { return; } /* Read scripts */ for (uint current = 0; current < scriptOffsets.Count; current++) { int index = scriptOffsets.FindIndex(x => x == scriptOffsets[(int)current]); // Check for UseScript if (index == current) { br.BaseStream.Position = scriptOffsets[(int)current]; List cmdList = new List(); bool endScript = new bool(); while (!endScript) { ScriptCommand cmd = ReadCommand(br, ref functionOffsets, ref movementOffsets); if (cmd.cmdParams is null) { return; } cmdList.Add(cmd); if (ScriptDatabase.endCodes.Contains((ushort)cmd.id)) { endScript = true; } } allScripts.Add(new ScriptCommandContainer(current + 1, ContainerTypes.Script, commandList: cmdList)); } else { allScripts.Add(new ScriptCommandContainer(current + 1, ContainerTypes.Script, usedScriptID: index + 1)); } } /* Read functions */ if (readFunctions) { for (uint current = 0; current < functionOffsets.Count; current++) { br.BaseStream.Position = functionOffsets[(int)current]; int posInList = scriptOffsets.IndexOf(functionOffsets[(int)current]); // Check for UseScript if (posInList == -1) { List cmdList = new List(); bool endFunction = new bool(); while (!endFunction) { ScriptCommand command = ReadCommand(br, ref functionOffsets, ref movementOffsets); if (command.cmdParams is null) { return; } cmdList.Add(command); if (ScriptDatabase.endCodes.Contains((ushort)command.id)) { endFunction = true; } } allFunctions.Add(new ScriptCommandContainer(current + 1, ContainerTypes.Function, commandList: cmdList)); } else { allFunctions.Add(new ScriptCommandContainer(current + 1, ContainerTypes.Function, usedScriptID: posInList + 1)); } } } if (readActions) { /* Read movements */ for (uint current = 0; current < movementOffsets.Count; current++) { br.BaseStream.Position = movementOffsets[(int)current]; List cmdList = new List(); bool endMovement = new bool(); while (!endMovement) { ushort id = br.ReadUInt16(); if (id == 0xFE) { endMovement = true; cmdList.Add(new ScriptAction(id, 0)); } else { cmdList.Add(new ScriptAction(id, br.ReadUInt16())); } } allActions.Add(new ScriptActionContainer(current + 1, commands: cmdList)); } } } } public ScriptFile(int fileID, bool readFunctions = true, bool readActions = true) : this(getFileStream(fileID), readFunctions, readActions) { this.fileID = fileID; } static FileStream getFileStream(int fileID) { string path = Filesystem.GetScriptPath(fileID); return new FileStream(path, FileMode.OpenOrCreate); } public override string ToString() { string prefix = isLevelScript ? "Level " : ""; return $"{prefix}Script File " + this.fileID; } public ScriptFile(List scripts, List functions, List movements, int fileID = -1) { allScripts = scripts; allFunctions = functions; allActions = movements; isLevelScript = false; } public ScriptFile(IEnumerable scriptLines, IEnumerable functionLines, IEnumerable actionLines, int fileID = -1) { //TODO: give user the possibility to jump to/call a script //once it's done, this Predicate below will be the only one needed, since there will be no distinction between //a script and a function bool functionEndCondition(List<(int linenum, string text)> source, int x, ushort? id) { return source[x].text.TrimEnd().IgnoreCaseEquals(RomInfo.ScriptCommandNamesDict[0x0002]) //End || source[x].text.IndexOf(RomInfo.ScriptCommandNamesDict[0x0016] + ' ' + ContainerTypes.Function.ToString(), StringComparison.InvariantCultureIgnoreCase) >= 0 //Jump Function_# || source[x].text.TrimEnd().IgnoreCaseEquals(RomInfo.ScriptCommandNamesDict[0x001B]) || ScriptDatabase.endCodes.Contains(id); } //Return bool scriptEndCondition(List<(int linenum, string text)> source, int x, ushort? id) { return source[x].text.TrimEnd().IgnoreCaseEquals(RomInfo.ScriptCommandNamesDict[0x0002]) //End || source[x].text.IndexOf(RomInfo.ScriptCommandNamesDict[0x0016] + ' ' + ContainerTypes.Function.ToString()) >= 0 //Jump Function_# || ScriptDatabase.endCodes.Contains(id); } allScripts = ReadCommandsFromLines(scriptLines.ToList(), ContainerTypes.Script, scriptEndCondition); //Jump + whitespace if (allScripts is null) { return; } if (allScripts.Count <= 0) { this.fileID = int.MaxValue; return; } if (functionLines != null) { allFunctions = ReadCommandsFromLines(functionLines.ToList(), ContainerTypes.Function, functionEndCondition); //Jump + whitespace if (allFunctions is null) { return; } } if (actionLines != null) { allActions = ReadActionsFromLines(actionLines.ToList()); if (allActions is null) { return; } } this.fileID = fileID; } private ScriptCommand ReadCommand(BinaryReader dataReader, ref List functionOffsets, ref List actionOffsets) { ushort id = dataReader.ReadUInt16(); List parameterList = new List(); /* How to read parameters for different commands for DPPt*/ switch (RomInfo.gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: switch (id) { case 0x16: //Jump case 0x1A: //Call ProcessRelativeJump(dataReader, ref parameterList, ref functionOffsets); break; case 0x17: //JumpIfObjID case 0x18: //JumpIfBgID case 0x19: //JumpIfPlayerDir case 0x1C: //JumpIf case 0x1D: //CallIf //in the case of JumpIf and CallIf, the first param is a comparisonOperator //for JumpIfPlayerDir it's a directionID //for JumpIfObjID, it's an EventID parameterList.Add(new byte[] { dataReader.ReadByte() }); ProcessRelativeJump(dataReader, ref parameterList, ref functionOffsets); break; case 0x5E: // Movement parameterList.Add(BitConverter.GetBytes(dataReader.ReadUInt16())); ProcessRelativeJump(dataReader, ref parameterList, ref actionOffsets); break; case 0x1CF: case 0x1D0: case 0x1D1: { byte parameter1 = dataReader.ReadByte(); parameterList.Add(new byte[] { parameter1 }); if (parameter1 == 0x2) { parameterList.Add(dataReader.ReadBytes(2)); //Read additional u16 if first param read is 2 } } break; case 0x21D: { ushort parameter1 = dataReader.ReadUInt16(); parameterList.Add(BitConverter.GetBytes(parameter1)); switch (parameter1) { case 0: case 1: case 2: case 3: parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); break; case 4: case 5: parameterList.Add(dataReader.ReadBytes(2)); break; case 6: break; } } break; case 0x235: { short parameter1 = dataReader.ReadInt16(); parameterList.Add(BitConverter.GetBytes(parameter1)); switch (parameter1) { case 0x1: case 0x3: parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); break; case 0x4: parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); break; case 0x0: case 0x6: parameterList.Add(dataReader.ReadBytes(2)); break; default: break; } } break; case 0x23E: { short parameter1 = dataReader.ReadInt16(); parameterList.Add(BitConverter.GetBytes(parameter1)); switch (parameter1) { case 0x1: case 0x3: parameterList.Add(dataReader.ReadBytes(2)); break; case 0x5: case 0x6: parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); break; default: break; } } break; case 0x2C4: { byte parameter1 = dataReader.ReadByte(); parameterList.Add(new byte[] { parameter1 }); if (parameter1 == 0 || parameter1 == 1) { parameterList.Add(dataReader.ReadBytes(2)); } } break; case 0x2C5: { if (RomInfo.gameVersion == GameVersions.Platinum) { parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); } else { goto default; } } break; case 0x2C6: case 0x2C9: case 0x2CA: case 0x2CD: if (RomInfo.gameVersion == GameVersions.Platinum) { break; } else { goto default; } case 0x2CF: if (RomInfo.gameVersion == GameVersions.Platinum) { parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); } else { goto default; } break; default: addParametersToList(ref parameterList, id, dataReader); break; } break; case GameFamilies.HGSS: switch (id) { case 0x16: //Jump case 0x1A: //Call ProcessRelativeJump(dataReader, ref parameterList, ref functionOffsets); break; case 0x17: //JumpIfObjID case 0x18: //JumpIfBgID case 0x19: //JumpIfPlayerDir case 0x1C: //JumpIf case 0x1D: //CallIf parameterList.Add(new byte[] { dataReader.ReadByte() }); //in the case of JumpIf and CallIf, the first param is a comparisonOperator ProcessRelativeJump(dataReader, ref parameterList, ref functionOffsets); break; case 0x5E: // Movement parameterList.Add(BitConverter.GetBytes(dataReader.ReadUInt16())); //in the case of Movement, the first param is an overworld ID ProcessRelativeJump(dataReader, ref parameterList, ref actionOffsets); break; case 0x190: case 0x191: case 0x192: { byte parameter1 = dataReader.ReadByte(); parameterList.Add(new byte[] { parameter1 }); if (parameter1 == 0x2) { parameterList.Add(dataReader.ReadBytes(2)); } } break; case 0x1D1: // Number of parameters differ depending on the first parameter value { short parameter1 = dataReader.ReadInt16(); parameterList.Add(BitConverter.GetBytes(parameter1)); switch (parameter1) { case 0x0: case 0x1: case 0x2: case 0x3: parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); break; case 0x4: case 0x5: parameterList.Add(dataReader.ReadBytes(2)); break; case 0x6: break; case 0x7: parameterList.Add(dataReader.ReadBytes(2)); break; default: break; } } break; case 0x1E9: // Number of parameters differ depending on the first parameter value { short parameter1 = dataReader.ReadInt16(); parameterList.Add(BitConverter.GetBytes(parameter1)); switch (parameter1) { case 0x0: break; case 0x1: case 0x2: case 0x3: parameterList.Add(dataReader.ReadBytes(2)); break; case 0x4: break; case 0x5: case 0x6: parameterList.Add(dataReader.ReadBytes(2)); parameterList.Add(dataReader.ReadBytes(2)); break; case 0x7: case 0x8: break; default: break; } } break; default: addParametersToList(ref parameterList, id, dataReader); break; } break; } return new ScriptCommand(id, parameterList); } private void ProcessRelativeJump(BinaryReader dataReader, ref List parameterList, ref List offsetsList) { int relativeOffset = dataReader.ReadInt32(); int offsetFromScriptFileStart = (int)(relativeOffset + dataReader.BaseStream.Position); if (!offsetsList.Contains(offsetFromScriptFileStart)) { offsetsList.Add(offsetFromScriptFileStart); } int functionNumber = offsetsList.IndexOf(offsetFromScriptFileStart); if (functionNumber < 0) { throw new InvalidOperationException(); } parameterList.Add(BitConverter.GetBytes(functionNumber + 1)); } private void addParametersToList(ref List parameterList, ushort id, BinaryReader dataReader) { Console.WriteLine("Loaded command id: " + id.ToString("X4")); try { foreach (int bytesToRead in RomInfo.ScriptCommandParametersDict[id]) { parameterList.Add(dataReader.ReadBytes(bytesToRead)); } } catch (NullReferenceException) { MessageBox.Show("Script command " + id + "can't be handled for now." + Environment.NewLine + "Reference offset 0x" + dataReader.BaseStream.Position.ToString("X"), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); parameterList = null; return; } catch { MessageBox.Show("Error: ID Read - " + id + Environment.NewLine + "Reference offset 0x" + dataReader.BaseStream.Position.ToString("X"), "Unrecognized script command", MessageBoxButtons.OK, MessageBoxIcon.Error); parameterList = null; return; } } private void AddReference(ref List references, ushort commandID, List parameterList, int pos, ScriptCommandContainer cont) { if (ScriptDatabase.commandsWithRelativeJump.TryGetValue(commandID, out int parameterWithRelativeJump)) { uint invokedID = BitConverter.ToUInt32(parameterList[parameterWithRelativeJump], 0); // Jump, Call if (commandID == 0x005E) references.Add(new ScriptReference(cont.containerType, cont.manualUserID, ContainerTypes.Action, invokedID, pos - 4)); else { references.Add(new ScriptReference(cont.containerType, cont.manualUserID, ContainerTypes.Function, invokedID, pos - 4)); } } } private List ReadCommandsFromLines(List linelist, ContainerTypes containerType, Func, int, ushort?, bool> endConditions) { List<(int linenum, string text)> lineSource = new List<(int linenum, string text)>(); for (int l = 0; l < linelist.Count; l++) { string cur = linelist[l]; if (!string.IsNullOrWhiteSpace(cur)) { lineSource.Add((l, cur)); } } List ls = new List(); int i = 0; try { uint scriptNumber = 0; while (i < lineSource.Count) { if (scriptNumber == 0) { int positionOfScriptNumber; int positionOfScriptKeyword = lineSource[i].text.IndexOf(containerType.ToString(), StringComparison.InvariantCultureIgnoreCase); if (positionOfScriptKeyword > 0) { MessageBox.Show("Unrecognized container keyword: \"" + lineSource[i] + '"', "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } else if (positionOfScriptKeyword < 0) { i++; continue; } else { if ((positionOfScriptNumber = lineSource[i].text.IndexOfFirstNumber()) < positionOfScriptKeyword) { MessageBox.Show("Unspecified Script/Function label.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } } scriptNumber = uint.Parse(lineSource[i++].text.Substring(positionOfScriptNumber).Split()[0].Replace(":", "")); } if (lineSource[i].text.IndexOf("UseScript", StringComparison.InvariantCultureIgnoreCase) >= 0) { int useScriptNumber = short.Parse(lineSource[i].text.Substring(1 + lineSource[i].text.IndexOf('#'))); ls.Add(new ScriptCommandContainer(scriptNumber, containerType, useScriptNumber)); i++; } else { /* Read script commands */ List cmdList = new List(); ScriptCommand lastRead; do { lastRead = new ScriptCommand(lineSource[i].text, lineSource[i].linenum + 1); if (lastRead.id is null) { return null; } cmdList.Add(lastRead); } while (!endConditions(lineSource, i++, lastRead.id)); ls.Add(new ScriptCommandContainer(scriptNumber, containerType, commandList: cmdList)); } scriptNumber = 0; } } catch (ArgumentOutOfRangeException) { MessageBox.Show($"Unexpectedly reached end of lines.\n\n" + $"Last line index: {lineSource[i].linenum}.\n" + $"Managed to parse {ls.Count} Command Containers.", "Fatal Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } return ls; } private List ReadActionsFromLines(List linelist) { List<(int linenum, string text)> lineSource = new List<(int linenum, string text)>(); for (int l = 0; l < linelist.Count; l++) { string cur = linelist[l]; if (!string.IsNullOrWhiteSpace(cur)) { lineSource.Add((l, cur)); } } List ls = new List(); int i = 0; try { uint actionNumber = 0; while (i < lineSource.Count) { if (actionNumber == 0) { int positionOfActionNumber; int positionOfActionKeyword = lineSource[i].text.IndexOf(ContainerTypes.Action.ToString(), StringComparison.InvariantCultureIgnoreCase); if (positionOfActionKeyword > 0) { MessageBox.Show("Unrecognized container keyword: \"" + lineSource[i] + '"', "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } else if (positionOfActionKeyword < 0) { i++; continue; } else { if ((positionOfActionNumber = lineSource[i].text.IndexOfFirstNumber()) < positionOfActionKeyword) { MessageBox.Show("Unspecified Action label.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } } actionNumber = uint.Parse(lineSource[i].text.Substring(positionOfActionNumber).Split()[0].Replace(":", "")); i++; } List cmdList = new List(); /* Read script actions */ do { ScriptAction toAdd = new ScriptAction(lineSource[i].text, lineSource[i].linenum + 1); if (toAdd.id is null) { return null; } cmdList.Add(toAdd); } while (!lineSource[i++].text.IgnoreCaseEquals(RomInfo.ScriptActionNamesDict[0x00FE])); ls.Add(new ScriptActionContainer(actionNumber, commands: cmdList)); actionNumber = 0; } } catch (ArgumentOutOfRangeException) { MessageBox.Show($"Unexpectedly reached end of lines.\n\n" + $"Last line index: {i}.\n" + $"Managed to parse {ls.Count} Command Containers.", "Fatal Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } return ls; } public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { List scriptOffsets = new List(); //uint OFFSET, int Function/Script/Action ID List functionOffsets = new List(); List actionOffsets = new List(); List refList = new List(); /* Allocate enough space for script pointers, which we do not know yet */ try { writer.BaseStream.Position += allScripts.Count * 0x4; writer.Write((ushort)0xFD13); // Signal the end of header section List useScriptCallers = new List(); /* Write scripts */ foreach (ScriptCommandContainer currentScript in allScripts) { if (currentScript.usedScriptID == -1) { scriptOffsets.Add(new ContainerReference() { ID = currentScript.manualUserID, offsetInFile = (uint)writer.BaseStream.Position } ); foreach (ScriptCommand currentCmd in currentScript.commands) { writer.Write((ushort)currentCmd.id); //System.Diagnostics.Debug.Write(BitConverter.ToString(BitConverter.GetBytes(commandID)) + " "); List parameterList = currentCmd.cmdParams; foreach (byte[] b in parameterList) { writer.Write(b); //System.Diagnostics.Debug.WriteLine(BitConverter.ToString(parameterList[k]) + " "); } /* If command calls a function/movement, store reference position */ AddReference(ref refList, (ushort)currentCmd.id, parameterList, (int)writer.BaseStream.Position, currentScript); } } else { useScriptCallers.Add(currentScript); } } int scriptsCount = scriptOffsets.Count; foreach (ScriptCommandContainer caller in useScriptCallers) { for (int i = 0; i < scriptsCount; i++) { ContainerReference scriptReference = scriptOffsets[i]; if (scriptReference.ID == caller.usedScriptID) { scriptOffsets.Add(new ContainerReference() { ID = caller.manualUserID, offsetInFile = scriptReference.offsetInFile }); // If script has UseScript, copy offset } } } /* Write functions */ foreach (ScriptCommandContainer currentFunction in allFunctions) { if (currentFunction.usedScriptID == -1) { functionOffsets.Add(new ContainerReference() { ID = currentFunction.manualUserID, offsetInFile = (uint)writer.BaseStream.Position } ); foreach (ScriptCommand currentCmd in currentFunction.commands) { writer.Write((ushort)currentCmd.id); //System.Diagnostics.Debug.Write(BitConverter.ToString(BitConverter.GetBytes(commandID)) + " "); List parameterList = currentCmd.cmdParams; foreach (byte[] b in parameterList) { writer.Write(b); //System.Diagnostics.Debug.Write(BitConverter.ToString(parameterList[k]) + " "); } /* If command calls a function/movement, store reference position */ AddReference(ref refList, (ushort)currentCmd.id, parameterList, (int)writer.BaseStream.Position, currentFunction); } } else { int functionUsescript = currentFunction.usedScriptID - 1; if (functionUsescript >= scriptOffsets.Count) { MessageBox.Show($"Function #{currentFunction.manualUserID} refers to Script {currentFunction.usedScriptID}, which does not exist.\n" + $"This Script File can't be saved.", "Can't resolve UseScript reference", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } functionOffsets.Add(new ContainerReference() { ID = currentFunction.manualUserID, offsetInFile = scriptOffsets.Find(x => x.ID == currentFunction.usedScriptID).offsetInFile }); } } // Movements must be halfword-aligned if (writer.BaseStream.Position % 2 == 1) { //Check if the writer's head is on an odd byte writer.Write((byte)0x00); //Add padding } /* Write movements */ foreach (ScriptActionContainer currentAction in allActions) { actionOffsets.Add(new ContainerReference() { ID = currentAction.manualUserID, offsetInFile = (uint)writer.BaseStream.Position }); foreach (ScriptAction currentCmd in currentAction.commands) { writer.Write((ushort)currentCmd.id); writer.Write((ushort)currentCmd.repetitionCount); } } /* Write script offsets to header */ writer.BaseStream.Position = 0x0; scriptOffsets = scriptOffsets.OrderBy(x => x.ID).ToList(); //Write script offsets to header in the correct order for (int i = 0; i < scriptOffsets.Count; i++) { writer.Write(scriptOffsets[i].offsetInFile - (uint)writer.BaseStream.Position - 0x4); } SortedSet undeclaredFuncs = new SortedSet(); SortedSet undeclaredActions = new SortedSet(); SortedSet uninvokedFuncs = new SortedSet(allFunctions.Select(x => x.manualUserID).ToArray()); SortedSet unreferencedActions = new SortedSet(allActions.Select(x => x.manualUserID).ToArray()); //refList = refList.OrderBy(x => x.invokedID).ToList(); //Sorting is not necessary, after all... for (int i = 0; i < refList.Count; i++) { writer.BaseStream.Position = refList[i].invokedAt; //place seek head on parameter that is supposed to store the jump address ContainerReference result; if (refList[i].typeOfInvoked is ContainerTypes.Action) { //isApplyMovement result = actionOffsets.Find(entry => entry.ID == refList[i].invokedID); if (result.Equals(default(ContainerReference))) { undeclaredActions.Add(refList[i].invokedID); } else { int relativeOffset = (int)(result.offsetInFile - refList[i].invokedAt - 4); writer.Write(relativeOffset); unreferencedActions.Remove(refList[i].invokedID); } } else { result = functionOffsets.Find(entry => entry.ID == refList[i].invokedID); if (result.Equals(default(ContainerReference))) { undeclaredFuncs.Add(refList[i].invokedID); } else { int relativeOffset = (int)(result.offsetInFile - refList[i].invokedAt - 4); writer.Write(relativeOffset); if (FunctionIsInvoked(refList, uninvokedFuncs, refList[i].invokedID, 0)) { uninvokedFuncs.Remove(refList[i].invokedID); } //if (refList[i].callerType != containerTypes.Function || // (refList[i].callerType == refList[i].invokedType && refList[i].callerID == refList[i].invokedID) || // !uninvokedFuncs.Contains(refList[i].callerID)) { //remove reference if caller is a script, or if caller calls itself, or if caller is a function that's been invoked already // uninvokedFuncs.Remove(refList[i].invokedID); //} } } } //Error check string errorMsg = ""; if (undeclaredFuncs.Count > 0) { string[] errorFunctionsUndeclared = undeclaredFuncs.ToArray().Select(x => x.ToString()).ToArray(); errorMsg += "These Functions have been invoked but not declared: " + Environment.NewLine + string.Join(separator: ",", errorFunctionsUndeclared); errorMsg += Environment.NewLine; } if (undeclaredActions.Count > 0) { string[] errorActionsUndeclared = undeclaredActions.ToArray().Select(x => x.ToString()).ToArray(); errorMsg += "These Actions have been referenced but not declared: " + Environment.NewLine + string.Join(separator: ",", errorActionsUndeclared); errorMsg += Environment.NewLine; } if (!string.IsNullOrEmpty(errorMsg)) { MessageBox.Show(errorMsg + Environment.NewLine + "This Script File has not been overwritten since it can not be saved.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); errorMsg = ""; return null; } if (uninvokedFuncs.Count > 0) { string[] orphanedFunctions = uninvokedFuncs.ToArray().Select(x => x.ToString()).ToArray(); errorMsg += "Unused Function IDs detected: " + Environment.NewLine + string.Join(", ", orphanedFunctions); errorMsg += Environment.NewLine; errorMsg += "\nIn order for a Function to be saved, it must be invoked by a Script or by another used Function."; errorMsg += Environment.NewLine; errorMsg += Environment.NewLine; } if (unreferencedActions.Count > 0) { string[] orphanedActions = unreferencedActions.ToArray().Select(x => x.ToString()).ToArray(); errorMsg += "Unused Action IDs detected: " + Environment.NewLine + string.Join(", ", orphanedActions); errorMsg += Environment.NewLine; errorMsg += "\nIn order for an Action to be saved, it must be called by a Script or by a used Function."; errorMsg += Environment.NewLine; errorMsg += Environment.NewLine; } if (!string.IsNullOrEmpty(errorMsg)) { MessageBox.Show(errorMsg + Environment.NewLine + "Remember that every unused Function or Action is always lost upon reloading the Script File.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Information); errorMsg = ""; } } catch (NullReferenceException nre) { Console.WriteLine(nre); return null; } } return newData.ToArray(); } private bool FunctionIsInvoked(List refList, SortedSet uninvokedFuncsSet, uint funcID, int callCount = 0, uint? excludedCaller = null) { if (callCount >= 30) { MessageBox.Show("Something went very wrong saving this Script File!" + "\nIt is recommended that you backup its code somewhere, to avoid losing progress.", "Fatal error", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } Console.WriteLine("Checking calls of function " + funcID + (excludedCaller == null ? "" : " excluding Function " + excludedCaller + " as the caller.")); if (!uninvokedFuncsSet.Contains(funcID)) { Console.WriteLine("Function " + funcID + " has already been invoked before. Nothing to check."); return true; //Abort } if (refList is null || refList.Count <= 0) { return false; } //Find the first instance of funcID being called, excluding calls coming from an excludedCaller //if excludedCaller is null, there's nothing to exclude: a normal search is performed. ScriptReference sr = refList.Find(x => x.invokedID == funcID && (excludedCaller == null || x.callerID != excludedCaller)); if (sr is null) { Console.WriteLine("No reference found!!!"); return false; } if (sr.typeOfCaller is ContainerTypes.Script) { Console.WriteLine("Function " + funcID + " is directly called by Script " + sr.callerID); return true; } if (sr.typeOfCaller is ContainerTypes.Function) { if (FunctionIsInvoked(refList, uninvokedFuncsSet, sr.callerID, ++callCount, excludedCaller: sr.invokedID)) { //check if caller function is invoked as well Console.WriteLine("Function " + funcID + " is called by Function " + sr.callerID); return true; } } Console.WriteLine("Function " + funcID + " is unused"); return false; } public bool SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { return SaveToFileDefaultDir(RomInfo.DirNames.scripts, IDtoReplace, showSuccessMessage); } public void SaveToFileExplorePath(string suggestedFileName, bool blindmode) { SaveFileDialog sf = new SaveFileDialog { Filter = "Gen IV Script File (*.scr)|*.scr" }; if (!string.IsNullOrEmpty(suggestedFileName)) { sf.FileName = suggestedFileName; } if (sf.ShowDialog() != DialogResult.OK) { return; } if (blindmode) { string path = Filesystem.GetScriptPath(fileID); File.Copy(path, sf.FileName, overwrite: true); string msg = ""; if (!isLevelScript) { msg += "The last saved version of this "; } MessageBox.Show(msg + GetType().Name + " has been exported successfully.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { this.SaveToFile(sf.FileName, showSuccessMessage: true); } } } } ================================================ FILE: DS_Map/ROMFiles/ScriptReference.cs ================================================ namespace DSPRE.ROMFiles { internal class ScriptReference { public ScriptFile.ContainerTypes typeOfCaller { get; private set; } public uint callerID { get; private set; } public ScriptFile.ContainerTypes typeOfInvoked { get; private set; } public uint invokedID { get; private set; } public int invokedAt { get; private set; } public ScriptReference(ScriptFile.ContainerTypes typeOfCaller, uint callerID, ScriptFile.ContainerTypes invokedType, uint invokedID, int invokedAt) { this.typeOfCaller = typeOfCaller; this.callerID = callerID; this.typeOfInvoked = invokedType; this.invokedID = invokedID; this.invokedAt = invokedAt; } public override string ToString() { return typeOfCaller + " " + callerID + " invokes " + typeOfInvoked + " " + invokedID + " at " + invokedAt; } } } ================================================ FILE: DS_Map/ROMFiles/SpeciesFile.cs ================================================ using System; using System.Collections; using System.Collections.Generic; using System.IO; namespace DSPRE.ROMFiles { public class SpeciesFile { public byte Ability1; public byte Ability2; public byte GenderRatioMaleToFemale; public const int GENDER_RATIO_BYTE_OFFSET = 16; public const int ABILITY1_BYTE_OFFSET = 22; public const int GENDER_RATIO_MALE = 0; public const int GENDER_RATIO_FEMALE = 254; public const int GENDER_RATIO_GENDERLESS = 255; public const int PICHU_ID_NUM = 172; public const int UNOWN_ID_NUM = 201; public const int CASTFORM_ID_NUM = 351; public const int DEOXYS_ID_NUM = 386; public const int BURMY_ID_NUM = 412; public const int WORMADAM_ID_NUM = 413; public const int SHELLOS_ID_NUM = 422; public const int GASTRODON_ID_NUM = 423; public const int ROTOM_ID_NUM = 479; public const int GIRATINA_ID_NUM = 487; public const int SHAYMIN_ID_NUM = 492; public SpeciesFile(FileStream pokeData) { var pokeDataReader = new BinaryReader(pokeData); pokeDataReader.BaseStream.Position = GENDER_RATIO_BYTE_OFFSET; GenderRatioMaleToFemale = pokeDataReader.ReadByte(); pokeDataReader.BaseStream.Position = ABILITY1_BYTE_OFFSET; Ability1 = pokeDataReader.ReadByte(); Ability2 = pokeDataReader.ReadByte(); pokeDataReader.Close(); } public static bool hasMoreThanOneGender(int pokemonID, SpeciesFile[] pokemonSpecies) { switch (pokemonSpecies[pokemonID].GenderRatioMaleToFemale) { case GENDER_RATIO_MALE: case GENDER_RATIO_FEMALE: case GENDER_RATIO_GENDERLESS: return false; default: return true; } } } } ================================================ FILE: DS_Map/ROMFiles/TextArchive.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Resources; using System.Reflection; using System.Windows.Forms; using DSPRE.Resources; using static DSPRE.RomInfo; using DSPRE.MessageEnc; namespace DSPRE.ROMFiles { /// /// Class to store message data from DS Pokémon games /// public class TextArchive : RomFile { #region Fields (2) public List messages; public int initialKey; #endregion Fields (2) #region Constructors (1) public TextArchive(FileStream messageStream, List msg, bool discardLines = false) { messages = msg ?? EncryptText.ReadMessageArchive(messageStream, discardLines); } public TextArchive(int ID, List msg = null, bool discardLines = false) : this(new FileStream($"{gameDirs[DirNames.textArchives].unpackedDir}\\{ID:D4}", FileMode.Open), msg, discardLines) { } #endregion Constructors (1) #region Methods (2) public int[] EncodeString(string currentMessage, int stringIndex, int stringSize) { // Converts string to hex characters ResourceManager GetByte = new ResourceManager("DSPRE.Resources.WriteText", Assembly.GetExecutingAssembly()); int[] pokemonMessage = new int[stringSize - 1]; var charArray = currentMessage.ToCharArray(); int count = 0; try { for (int i = 0; i < currentMessage.Length; i++) { if (charArray[i] == '\\') { if (charArray[i + 1] == 'r') { pokemonMessage[count] = 0x25BC; i++; } else { if (charArray[i + 1] == 'n') { pokemonMessage[count] = 0xE000; i++; } else { if (charArray[i + 1] == 'f') { pokemonMessage[count] = 0x25BD; i++; } else { if (charArray[i + 1] == 'v') { pokemonMessage[count] = 0xFFFE; count++; string characterID = ((char)charArray[i + 2]).ToString() + ((char)charArray[i + 3]).ToString() + ((char)charArray[i + 4]).ToString() + ((char)charArray[i + 5]).ToString(); pokemonMessage[count] = (int)Convert.ToUInt32(characterID, 16); i += 5; } else { //This looks like it can be optimized if (charArray[i + 1] == 'x' && charArray[i + 2] == '0' && charArray[i + 3] == '0' && charArray[i + 4] == '0' && charArray[i + 5] == '0') { pokemonMessage[count] = 0x0000; i += 5; } else { if (charArray[i + 1] == 'x' && charArray[i + 2] == '0' && charArray[i + 3] == '0' && charArray[i + 4] == '0' && charArray[i + 5] == '1') { pokemonMessage[count] = 0x0001; i += 5; } else { string characterID = ((char)charArray[i + 2]).ToString() + ((char)charArray[i + 3]).ToString() + ((char)charArray[i + 4]).ToString() + ((char)charArray[i + 5]).ToString(); pokemonMessage[count] = (int)Convert.ToUInt32(characterID, 16); i += 5; } } } } } } } else { if (charArray[i] == '[') { if (charArray[i + 1] == 'P') { pokemonMessage[count] = 0x01E0; i += 3; } if (charArray[i + 1] == 'M') { pokemonMessage[count] = 0x01E1; i += 3; } } else { pokemonMessage[count] = (int)Convert.ToUInt32(GetByte.GetString(((int)charArray[i]).ToString()), 16); } } count++; } } catch (FormatException) { MessageBox.Show("Format exception. Assembled so far: " + Environment.NewLine + pokemonMessage); } return pokemonMessage; } public int GetStringLength(string currentMessage) { // Calculates string length int count = 0; var charArray = currentMessage.ToCharArray(); for (int i = 0; i < currentMessage.Length; i++) { if (charArray[i] == '\\') { if (charArray[i + 1] == 'r') { count++; i++; } else { if (charArray[i + 1] == 'n') { count++; i++; } else { if (charArray[i + 1] == 'f') { count++; i++; } else { if (charArray[i + 1] == 'v') { count += 2; i += 5; } else { if (charArray[i + 1] == 'x' && charArray[i + 2] == '0' && charArray[i + 3] == '0' && charArray[i + 4] == '0' && charArray[i + 5] == '0') { count++; i += 5; } else { if (charArray[i + 1] == 'x' && charArray[i + 2] == '0' && charArray[i + 3] == '0' && charArray[i + 4] == '0' && charArray[i + 5] == '1') { count++; i += 5; } else { count++; i += 5; } } } } } } } else { if (charArray[i] == '[') { if (charArray[i + 1] == 'P') { count++; i += 3; } if (charArray[i + 1] == 'M') { count++; i += 3; } } else { count++; } } } count++; return count; } private byte[] ToByteArray(List msgSource) { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write((ushort)msgSource.Count); writer.Write((ushort)initialKey); int key = (initialKey * 0x2FD) & 0xFFFF; int key2 = 0; int realKey = 0; int offset = 0x4 + (msgSource.Count * 8); int[] stringSize = new int[msgSource.Count]; for (int i = 0; i < msgSource.Count; i++) { // Reads and stores string offsets and sizes key2 = (key * (i + 1) & 0xFFFF); realKey = key2 | (key2 << 16); writer.Write(offset ^ realKey); int length = GetStringLength(msgSource[i]); stringSize[i] = length; writer.Write(length ^ realKey); offset += length * 2; } for (int i = 0; i < msgSource.Count; i++) { // Encodes strings and writes them to file key = (0x91BD3 * (i + 1)) & 0xFFFF; int[] currentString = EncodeString(msgSource[i], i, stringSize[i]); for (int j = 0; j < stringSize[i] - 1; j++) { writer.Write((ushort)(currentString[j] ^ key)); key += 0x493D; key &= 0xFFFF; } writer.Write((ushort)(0xFFFF ^ key)); } } return newData.ToArray(); } public override string ToString() { return string.Join(Environment.NewLine, messages); } public override byte[] ToByteArray() { return this.ToByteArray(messages); } public void SaveToFileDefaultDir(int IDtoReplace, bool showSuccessMessage = true) { bool success = EncryptText.WriteMessageArchive(IDtoReplace, messages, IDtoReplace == trainerNamesMessageNumber); if (showSuccessMessage && success) { MessageBox.Show("Saved successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Text Archive", "msg", suggestedFileName, showSuccessMessage); } #endregion Methods (2) } } ================================================ FILE: DS_Map/ROMFiles/TrainerFile.cs ================================================ using ScintillaNET; using System; using System.Collections; using System.IO; using System.Windows.Forms; using static DSPRE.ROMFiles.PartyPokemon; namespace DSPRE.ROMFiles { public class PartyPokemon : RomFile { public const int MON_NUMBER_BITSIZE = 10; public const int MON_NUMBER_BITMASK = (1 << MON_NUMBER_BITSIZE) - 1; public const int MON_FORM_BITSIZE = 6; //16-MON_NUMBER_BITSIZE public const int MON_FORM_BITMASK = ((1 << MON_FORM_BITSIZE) - 1) << MON_NUMBER_BITSIZE; #region Fields public ushort? pokeID = null; public ushort formID = 0; //unused in DP public ushort level = 0; public byte difficulty = 0; public GenderAndAbilityFlags genderAndAbilityFlags; //only used for HGSS, filler byte for the rest of the games public ushort ballSeals = 0; public ushort? heldItem = null; public ushort[] moves = null; public enum GenderAndAbilityFlags { NO_FLAGS = 0, FORCE_MALE = 0x1, FORCE_FEMALE = 0x2, ABILITY_SLOT1 = 0x10, ABILITY_SLOT2 = 0x20 } #endregion #region Constructor public PartyPokemon(bool chooseItems = false, bool chooseMoves = false) { UpdateItemsAndMoves(chooseItems, chooseMoves); } public PartyPokemon(byte difficulty, GenderAndAbilityFlags genderAndAbilityFlags, ushort Level, ushort pokeNum, ushort ballSealConfig, ushort? heldItem = null, ushort[] moves = null) { pokeID = pokeNum; level = Level; this.difficulty = difficulty; this.genderAndAbilityFlags = genderAndAbilityFlags; ballSeals = ballSealConfig; this.heldItem = heldItem; this.moves = moves; } public PartyPokemon(byte difficulty, ushort Level, ushort pokeNum, ushort? heldItem = null, ushort[] moves = null) { // Simply adding a new constructor for Diamond and Pearl since they dont have ball seal config pokeID = pokeNum; level = Level; this.difficulty = difficulty; this.heldItem = heldItem; this.moves = moves; } public PartyPokemon(byte difficulty, GenderAndAbilityFlags genderAndAbilityFlags, ushort Level, ushort pokeNum, ushort formNum, ushort ballSealConfig, ushort? heldItem = null, ushort[] moves = null) : this(difficulty, genderAndAbilityFlags, Level, pokeNum, ballSealConfig, heldItem, moves) { formID = formNum; } public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write(difficulty); writer.Write((byte)genderAndAbilityFlags); writer.Write(level); writer.Write((ushort)((pokeID ?? 0) | formID << MON_NUMBER_BITSIZE)); if (heldItem != null) { writer.Write((ushort)heldItem); } if (moves != null) { foreach (ushort move in moves) { writer.Write(move); } } if (RomInfo.gameFamily == RomInfo.GameFamilies.HGSS || RomInfo.gameFamily == RomInfo.GameFamilies.Plat) writer.Write(ballSeals); // Diamond and Pearl apparently dont save ball capsule data in enemy trainer pokedata!!! } return newData.ToArray(); } public void UpdateItemsAndMoves(bool chooseItems = false, bool chooseMoves = false) { if (chooseItems) { this.heldItem = 0; } if (chooseMoves) { this.moves = new ushort[4]; } } public override string ToString() { return CheckEmpty() ? "Empty" : this.pokeID + " Lv. " + this.level; } public bool CheckEmpty() { return this is null || pokeID is null || level <= 0; } #endregion } public class TrainerProperties : RomFile { public const int AI_COUNT = 11; public const int TRAINER_ITEMS = 4; #region Fields public ushort trainerID; public byte trDataUnknown; public byte trainerClass = 0; public byte partyCount = 0; public bool doubleBattle = false; public bool chooseMoves = false; public bool chooseItems = false; public ushort[] trainerItems = new ushort[TRAINER_ITEMS]; public BitArray AI; #endregion #region Constructor public TrainerProperties(ushort ID, byte partyCount = 0) { trainerID = ID; trainerItems = new ushort[TRAINER_ITEMS]; AI = new BitArray(new bool[AI_COUNT] { true, false, false, false, false, false, false, false, false, false, false }); trDataUnknown = 0; } public TrainerProperties(ushort ID, Stream trainerPropertiesStream) { trainerID = ID; using (BinaryReader reader = new BinaryReader(trainerPropertiesStream)) { byte flags = reader.ReadByte(); chooseMoves = (flags & 1) != 0; chooseItems = (flags & 2) != 0; trainerClass = reader.ReadByte(); trDataUnknown = reader.ReadByte(); partyCount = reader.ReadByte(); for (int i = 0; i < trainerItems.Length; i++) { trainerItems[i] = reader.ReadUInt16(); } AI = new BitArray(BitConverter.GetBytes(reader.ReadUInt32())); doubleBattle = reader.ReadUInt32() == 2; } } #endregion #region Methods public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { byte flags = 0; flags |= (byte)(chooseMoves ? 1 : 0); flags |= (byte)(chooseItems ? 2 : 0); writer.Write(flags); writer.Write(trainerClass); writer.Write(trDataUnknown); writer.Write(partyCount); foreach (ushort trItem in trainerItems) { writer.Write(trItem); } uint AIflags = 0; for (int i = 0; i < AI.Length; i++) { if (AI[i]) { AIflags |= (uint)1 << i; } } writer.Write(AIflags); writer.Write((uint)(doubleBattle ? 2 : 0)); } return newData.ToArray(); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Trainer Properties", "trp", suggestedFileName, showSuccessMessage); } #endregion } public class Party : RomFile { private PartyPokemon[] content; private TrainerProperties trp; public bool exportCondensedData; public const int MOVES_PER_POKE = 4; public Party(int POKE_IN_PARTY, bool init, TrainerProperties trp) { this.trp = trp; this.content = new PartyPokemon[POKE_IN_PARTY]; if (init) { for (int i = 0; i < content.Length; i++) { this.content[i] = new PartyPokemon(); } } } public Party(bool readFirstByte, int maxPoke, Stream partyData, TrainerProperties traipr) { using (BinaryReader reader = new BinaryReader(partyData)) { try { this.trp = traipr; if (readFirstByte) { byte flags = reader.ReadByte(); trp.chooseMoves = (flags & 1) != 0; trp.chooseItems = (flags & 2) != 0; trp.partyCount = (byte)((flags & 28) >> 2); } int dividend = 8; if (trp.chooseMoves) { dividend += Party.MOVES_PER_POKE * sizeof(ushort); } if (trp.chooseItems) { dividend += sizeof(ushort); } int endval = Math.Min((int)(partyData.Length - 1 / dividend), trp.partyCount); this.content = new PartyPokemon[maxPoke]; for (int i = 0; i < endval; i++) { byte difficulty = reader.ReadByte(); GenderAndAbilityFlags genderAndAbilityFlags = (GenderAndAbilityFlags)reader.ReadByte(); ushort level = reader.ReadUInt16(); ushort monFull = reader.ReadUInt16(); ushort pokemon = (ushort)(monFull & PartyPokemon.MON_NUMBER_BITMASK); ushort form_no = (ushort)((monFull & PartyPokemon.MON_FORM_BITMASK) >> PartyPokemon.MON_NUMBER_BITSIZE); ushort? heldItem = null; ushort[] moves = null; if (trp.chooseItems) { heldItem = reader.ReadUInt16(); } if (trp.chooseMoves) { moves = new ushort[MOVES_PER_POKE]; for (int m = 0; m < moves.Length; m++) { ushort val = reader.ReadUInt16(); moves[m] = (ushort)(val == ushort.MaxValue ? 0 : val); } } if (RomInfo.gameFamily == RomInfo.GameFamilies.HGSS || RomInfo.gameFamily == RomInfo.GameFamilies.Plat) content[i] = new PartyPokemon(difficulty, genderAndAbilityFlags, level, pokemon, form_no, reader.ReadUInt16(), heldItem, moves); else content[i] = new PartyPokemon(difficulty, level, pokemon, heldItem, moves); // Diamond and Pearl apparently dont save ball capsule data in enemy trainer pokedata!!! } for (int i = endval; i < maxPoke; i++) { content[i] = new PartyPokemon(); }; } catch (EndOfStreamException) { MessageBox.Show("There was a problem reading the party data of this " + this.GetType().Name + ".", "Read Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public PartyPokemon this[int index] { get { return content[index]; } set { content[index] = value; } } public override string ToString() { if (this.content == null) { return "Empty"; } else { string buffer = ""; byte nonEmptyCtr = CountNonEmptyMons(); buffer += nonEmptyCtr + " Poke "; if (this.trp.chooseMoves) { buffer += ", moves "; } if (this.trp.chooseItems) { buffer += ", items "; } return buffer; } } public byte CountNonEmptyMons() { byte nonEmptyCtr = 0; foreach (PartyPokemon p in this.content) { if (!p.CheckEmpty()) { nonEmptyCtr++; } } return nonEmptyCtr; } public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { if (this.exportCondensedData && trp != null) { byte condensedTrData = (byte)(((trp.chooseMoves ? 1 : 0) & 0b_1) + (((trp.chooseItems ? 1 : 0) & 0b_1) << 1) + ((trp.partyCount & 0b_1111_11) << 2)); writer.Write(condensedTrData); } foreach (PartyPokemon poke in this.content) { if (!poke.CheckEmpty()) { writer.Write(poke.ToByteArray()); } } } return newData.ToArray(); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Party Data", "pdat", suggestedFileName, showSuccessMessage); } } public class TrainerFile : RomFile { public const int defaultNameLen = 10; //Does not include special \0 end character! public const int POKE_IN_PARTY = 6; public static readonly string NAME_NOT_FOUND = "NAME READ ERROR"; #region Fields public string name; public TrainerProperties trp; public Party party; #endregion #region Constructor public TrainerFile(TrainerProperties trp, string name = "") { this.name = name; this.trp = trp; trp.partyCount = 1; this.party = new Party(1, init: true, trp); } public TrainerFile(TrainerProperties trp, Stream partyData, string name = "") { this.name = name; this.trp = trp; party = new Party(readFirstByte: false, POKE_IN_PARTY, partyData, this.trp); } #endregion #region Methods public override byte[] ToByteArray() { MemoryStream newData = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(newData)) { writer.Write(name); byte[] trDat = trp.ToByteArray(); writer.Write((byte)trDat.Length); writer.Write(trDat); byte[] pDat = party.ToByteArray(); writer.Write((byte)pDat.Length); writer.Write(pDat); } return newData.ToArray(); } public void SaveToFileExplorePath(string suggestedFileName, bool showSuccessMessage = true) { SaveToFileExplorePath("Gen IV Trainer File", "trf", suggestedFileName, showSuccessMessage); } #endregion } } ================================================ FILE: DS_Map/ROMFiles/VariableValueTrigger.cs ================================================ namespace DSPRE.ROMFiles { public class VariableValueTrigger : LevelScriptTrigger { public int variableToWatch { get; set; } public int expectedValue { get; set; } public VariableValueTrigger(int scriptIDtoTrigger, int variableToWatch, int expectedValue) : base(VARIABLEVALUE, scriptIDtoTrigger) { this.variableToWatch = variableToWatch; this.expectedValue = expectedValue; } public override string ToString() { return base.ToString() + " when Var " + variableToWatch + " == " + expectedValue; } public override bool Equals(object obj) { // If the passed object is null if (obj == null) { return false; } if (!(obj is VariableValueTrigger)) { return false; } return this.ToString() == ((VariableValueTrigger)obj).ToString(); } public override int GetHashCode() { return this.triggerType.GetHashCode() ^ variableToWatch.GetHashCode() ^ expectedValue.GetHashCode(); } } } ================================================ FILE: DS_Map/Resources/ColorTable.txt ================================================ 0x00 #FFFFFF #000000 0x01 #FFFFFF #000000 0x02 #009900 #000000 0x03 #006600 #FFFFFF 0x04 #FFFFFF #000000 0x05 #FFFFFF #000000 0x06 #FFFFFF #000000 0x07 #FFFFFF #000000 0x08 #FFFFFF #000000 0x09 #FFFFFF #000000 0x0A #FFFFFF #000000 0x0B #FFFFFF #000000 0x0C #FFFFFF #000000 0x0D #FFFFFF #000000 0x0E #FFFFFF #000000 0x0F #FFFFFF #000000 0x10 #0099FF #000000 0x11 #FFFFFF #000000 0x12 #FFFFFF #000000 0x13 #FFFFFF #000000 0x14 #FFFFFF #000000 0x15 #0066FF #FFFFFF 0x16 #99FFFF #000000 0x17 #FFFFFF #000000 0x18 #FFFFFF #000000 0x19 #FFFFFF #000000 0x1A #FFFFFF #000000 0x1B #FFFFFF #000000 0x1C #FFFFFF #000000 0x1D #FFFFFF #000000 0x1E #FFFFFF #000000 0x1F #FFFFFF #000000 0x20 #FFFFFF #000000 0x21 #FFFF99 #000000 0x22 #FFFFFF #000000 0x23 #FFFFFF #000000 0x24 #FFFFFF #000000 0x25 #FFFFFF #000000 0x26 #FFFFFF #000000 0x27 #FFFFFF #000000 0x28 #FFFFFF #000000 0x29 #FFFFFF #000000 0x2A #FFFFFF #000000 0x2B #FFFFFF #000000 0x2C #FFFFFF #000000 0x2D #FFFFFF #000000 0x2E #FFFFFF #000000 0x2F #FFFFFF #000000 0x30 #FFFFFF #000000 0x31 #FFFFFF #000000 0x32 #FFFFFF #000000 0x33 #FFFFFF #000000 0x34 #FFFFFF #000000 0x35 #FFFFFF #000000 0x36 #FFFFFF #000000 0x37 #FFFFFF #000000 0x38 #8A4B08 #FFFFFF 0x39 #8A4B08 #FFFFFF 0x3A #8A4B08 #FFFFFF 0x3B #8A4B08 #FFFFFF 0x3C #FFFFFF #000000 0x3D #FFFFFF #000000 0x3E #FFFFFF #000000 0x3F #FFFFFF #000000 0x40 #FFFFFF #000000 0x41 #FFFFFF #000000 0x42 #FFFFFF #000000 0x43 #FFFFFF #000000 0x44 #FFFFFF #000000 0x45 #FFFFFF #000000 0x46 #FFFFFF #000000 0x47 #FFFFFF #000000 0x48 #FFFFFF #000000 0x49 #FFFFFF #000000 0x4A #FFFFFF #000000 0x4B #FFFFFF #000000 0x4C #FFFFFF #000000 0x4D #FFFFFF #000000 0x4E #FFFFFF #000000 0x4F #FFFFFF #000000 0x50 #FFFFFF #000000 0x51 #FFFFFF #000000 0x52 #FFFFFF #000000 0x53 #FFFFFF #000000 0x54 #FFFFFF #000000 0x55 #FFFFFF #000000 0x56 #FFFFFF #000000 0x57 #FFFFFF #000000 0x58 #FFFFFF #000000 0x59 #FFFFFF #000000 0x5A #FFFFFF #000000 0x5B #FFFFFF #000000 0x5C #FFFFFF #000000 0x5D #FFFFFF #000000 0x5E #FFFFFF #000000 0x5F #FFFFFF #000000 0x60 #FFFFFF #000000 0x61 #FFFFFF #000000 0x62 #FFFFFF #000000 0x63 #FFFFFF #000000 0x64 #FFFFFF #000000 0x65 #FFFFFF #000000 0x66 #FFFFFF #000000 0x67 #FFFFFF #000000 0x68 #FFFFFF #000000 0x69 #9900FF #FFFFFF 0x6A #FFFFFF #000000 0x6B #FFFFFF #000000 0x6C #FFFFFF #000000 0x6D #FFFFFF #000000 0x6E #9900FF #FFFFFF 0x6F #FFFFFF #000000 0x70 #FF9900 #000000 0x71 #FF9900 #000000 0x72 #FF9900 #000000 0x73 #FF9900 #000000 0x74 #FFFFFF #000000 0x75 #FFFFFF #000000 0x76 #FFFFFF #000000 0x77 #FFFFFF #000000 0x78 #FFFFFF #000000 0x79 #FFFFFF #000000 0x7A #FFFFFF #000000 0x7B #FFFFFF #000000 0x7C #FFFFFF #000000 0x7D #FFFFFF #000000 0x7E #FFFFFF #000000 0x7F #FFFFFF #000000 0x80 #FFFFFF #000000 0x81 #FFFFFF #000000 0x82 #FFFFFF #000000 0x83 #FFFFFF #000000 0x84 #FFFFFF #000000 0x85 #FFFFFF #000000 0x86 #FFFFFF #000000 0x87 #FFFFFF #000000 0x88 #FFFFFF #000000 0x89 #FFFFFF #000000 0x8A #FFFFFF #000000 0x8B #FFFFFF #000000 0x8C #FFFFFF #000000 0x8D #FFFFFF #000000 0x8E #FFFFFF #000000 0x8F #FFFFFF #000000 0x90 #FFFFFF #000000 0x91 #FFFFFF #000000 0x92 #FFFFFF #000000 0x93 #FFFFFF #000000 0x94 #FFFFFF #000000 0x95 #FFFFFF #000000 0x96 #FFFFFF #000000 0x97 #FFFFFF #000000 0x98 #FFFFFF #000000 0x99 #FFFFFF #000000 0x9A #FFFFFF #000000 0x9B #FFFFFF #000000 0x9C #FFFFFF #000000 0x9D #FFFFFF #000000 0x9E #FFFFFF #000000 0x9F #FFFFFF #000000 0xA0 #FFFFFF #000000 0xA1 #FFFFFF #000000 0xA2 #FFFFFF #000000 0xA3 #FFFFFF #000000 0xA4 #FFFFFF #000000 0xA5 #FFFFFF #000000 0xA6 #FFFFFF #000000 0xA7 #FFFFFF #000000 0xA8 #FFFFFF #000000 0xA9 #FFFFFF #000000 0xAA #FFFFFF #000000 0xAB #FFFFFF #000000 0xAC #FFFFFF #000000 0xAD #FFFFFF #000000 0xAE #FFFFFF #000000 0xAF #FFFFFF #000000 0xB0 #FFFFFF #000000 0xB1 #FFFFFF #000000 0xB2 #FFFFFF #000000 0xB3 #FFFFFF #000000 0xB4 #FFFFFF #000000 0xB5 #FFFFFF #000000 0xB6 #FFFFFF #000000 0xB7 #FFFFFF #000000 0xB8 #FFFFFF #000000 0xB9 #FFFFFF #000000 0xBA #FFFFFF #000000 0xBB #FFFFFF #000000 0xBC #FFFFFF #000000 0xBD #FFFFFF #000000 0xBE #FFFFFF #000000 0xBF #FFFFFF #000000 0xC0 #FFFFFF #000000 0xC1 #FFFFFF #000000 0xC2 #FFFFFF #000000 0xC3 #FFFFFF #000000 0xC4 #FFFFFF #000000 0xC5 #FFFFFF #000000 0xC6 #FFFFFF #000000 0xC7 #FFFFFF #000000 0xC8 #FFFFFF #000000 0xC9 #FFFFFF #000000 0xCA #FFFFFF #000000 0xCB #FFFFFF #000000 0xCC #FFFFFF #000000 0xCD #FFFFFF #000000 0xCE #FFFFFF #000000 0xCF #FFFFFF #000000 0xD0 #FFFFFF #000000 0xD1 #FFFFFF #000000 0xD2 #FFFFFF #000000 0xD3 #FFFFFF #000000 0xD4 #FFFFFF #000000 0xD5 #FFFFFF #000000 0xD6 #FFFFFF #000000 0xD7 #FFFFFF #000000 0xD8 #FFFFFF #000000 0xD9 #FFFFFF #000000 0xDA #FFFFFF #000000 0xDB #FFFFFF #000000 0xDC #FFFFFF #000000 0xDD #FFFFFF #000000 0xDE #FFFFFF #000000 0xDF #FFFFFF #000000 0xE0 #FFFFFF #000000 0xE1 #FFFFFF #000000 0xE2 #FFFFFF #000000 0xE3 #FFFFFF #000000 0xE4 #FFFFFF #000000 0xE5 #FFFFFF #000000 0xE6 #FFFFFF #000000 0xE7 #FFFFFF #000000 0xE8 #FFFFFF #000000 0xE9 #FFFFFF #000000 0xEA #FFFFFF #000000 0xEB #FFFFFF #000000 0xEC #FFFFFF #000000 0xED #FFFFFF #000000 0xEE #FFFFFF #000000 0xEF #FFFFFF #000000 0xF0 #FFFFFF #000000 0xF1 #FFFFFF #000000 0xF2 #FFFFFF #000000 0xF3 #FFFFFF #000000 0xF4 #FFFFFF #000000 0xF5 #FFFFFF #000000 0xF6 #FFFFFF #000000 0xF7 #FFFFFF #000000 0xF8 #FFFFFF #000000 0xF9 #FFFFFF #000000 0xFA #FFFFFF #000000 0xFB #FFFFFF #000000 0xFC #FFFFFF #000000 0xFD #FFFFFF #000000 0xFE #FFFFFF #000000 0xFF #FFFFFF #000000 ================================================ FILE: DS_Map/Resources/CommandsDatabase.Designer.cs ================================================  namespace DSPRE.Resources { partial class CommandsDatabase { /// /// 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.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); this.scriptcmdDataGridView = new System.Windows.Forms.DataGridView(); this.CommandID = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.CommandName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ParamsCount = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Params = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.scriptcmdSearchTextBox = new System.Windows.Forms.TextBox(); this.startSearchButtonScripts = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.criteriaGroupBoxScripts = new System.Windows.Forms.GroupBox(); this.matchCBScripts = new System.Windows.Forms.RadioButton(); this.containsCBScripts = new System.Windows.Forms.RadioButton(); this.startsWithCBScripts = new System.Windows.Forms.RadioButton(); this.criteriaGroupBoxActions = new System.Windows.Forms.GroupBox(); this.matchCBActions = new System.Windows.Forms.RadioButton(); this.containsCBActions = new System.Windows.Forms.RadioButton(); this.startsWithCBActions = new System.Windows.Forms.RadioButton(); this.label2 = new System.Windows.Forms.Label(); this.startSearchButtonActions = new System.Windows.Forms.Button(); this.actioncmdSearchTextBox = new System.Windows.Forms.TextBox(); this.actionDataGridView = new System.Windows.Forms.DataGridView(); this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.compOPDataGridView = new System.Windows.Forms.DataGridView(); this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.scriptcmdDataGridView)).BeginInit(); this.criteriaGroupBoxScripts.SuspendLayout(); this.criteriaGroupBoxActions.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.actionDataGridView)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.compOPDataGridView)).BeginInit(); this.SuspendLayout(); // // scriptcmdDataGridView // this.scriptcmdDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.scriptcmdDataGridView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders; this.scriptcmdDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.scriptcmdDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.CommandID, this.CommandName, this.ParamsCount, this.Params}); this.scriptcmdDataGridView.Location = new System.Drawing.Point(14, 63); this.scriptcmdDataGridView.Name = "scriptcmdDataGridView"; this.scriptcmdDataGridView.ReadOnly = true; this.scriptcmdDataGridView.RowHeadersVisible = false; this.scriptcmdDataGridView.Size = new System.Drawing.Size(506, 622); this.scriptcmdDataGridView.TabIndex = 0; // // CommandID // this.CommandID.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; dataGridViewCellStyle4.Format = "X4"; this.CommandID.DefaultCellStyle = dataGridViewCellStyle4; this.CommandID.FillWeight = 15F; this.CommandID.HeaderText = "Command ID"; this.CommandID.MaxInputLength = 10; this.CommandID.Name = "CommandID"; this.CommandID.ReadOnly = true; // // CommandName // this.CommandName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.CommandName.FillWeight = 35F; this.CommandName.HeaderText = "Script Command Name"; this.CommandName.MaxInputLength = 200; this.CommandName.MinimumWidth = 90; this.CommandName.Name = "CommandName"; this.CommandName.ReadOnly = true; // // ParamsCount // this.ParamsCount.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.ParamsCount.FillWeight = 20F; this.ParamsCount.HeaderText = "Parameter Count"; this.ParamsCount.MaxInputLength = 10; this.ParamsCount.MinimumWidth = 20; this.ParamsCount.Name = "ParamsCount"; this.ParamsCount.ReadOnly = true; // // Params // this.Params.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.Params.FillWeight = 30F; this.Params.HeaderText = "Parameters"; this.Params.MaxInputLength = 200; this.Params.MinimumWidth = 85; this.Params.Name = "Params"; this.Params.ReadOnly = true; // // scriptcmdSearchTextBox // this.scriptcmdSearchTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.scriptcmdSearchTextBox.Location = new System.Drawing.Point(14, 26); this.scriptcmdSearchTextBox.Name = "scriptcmdSearchTextBox"; this.scriptcmdSearchTextBox.Size = new System.Drawing.Size(141, 22); this.scriptcmdSearchTextBox.TabIndex = 1; this.scriptcmdSearchTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.scriptcmdSearchTextBox_KeyDown); // // startSearchButtonScripts // this.startSearchButtonScripts.Image = global::DSPRE.Properties.Resources.wideLensImage; this.startSearchButtonScripts.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.startSearchButtonScripts.Location = new System.Drawing.Point(433, 15); this.startSearchButtonScripts.Name = "startSearchButtonScripts"; this.startSearchButtonScripts.RightToLeft = System.Windows.Forms.RightToLeft.No; this.startSearchButtonScripts.Size = new System.Drawing.Size(87, 43); this.startSearchButtonScripts.TabIndex = 17; this.startSearchButtonScripts.Text = "Start\r\nSearch"; this.startSearchButtonScripts.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.startSearchButtonScripts.UseVisualStyleBackColor = true; this.startSearchButtonScripts.Click += new System.EventHandler(this.startSearchButtonScripts_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(12, 10); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(112, 13); this.label1.TabIndex = 18; this.label1.Text = "Command name or ID:"; // // criteriaGroupBoxScripts // this.criteriaGroupBoxScripts.Controls.Add(this.matchCBScripts); this.criteriaGroupBoxScripts.Controls.Add(this.containsCBScripts); this.criteriaGroupBoxScripts.Controls.Add(this.startsWithCBScripts); this.criteriaGroupBoxScripts.Location = new System.Drawing.Point(161, 10); this.criteriaGroupBoxScripts.Name = "criteriaGroupBoxScripts"; this.criteriaGroupBoxScripts.Size = new System.Drawing.Size(266, 46); this.criteriaGroupBoxScripts.TabIndex = 19; this.criteriaGroupBoxScripts.TabStop = false; this.criteriaGroupBoxScripts.Text = "Search Criteria"; // // matchCBScripts // this.matchCBScripts.Appearance = System.Windows.Forms.Appearance.Button; this.matchCBScripts.AutoSize = true; this.matchCBScripts.Location = new System.Drawing.Point(144, 15); this.matchCBScripts.Name = "matchCBScripts"; this.matchCBScripts.Size = new System.Drawing.Size(113, 23); this.matchCBScripts.TabIndex = 2; this.matchCBScripts.Text = "Match (Ignore Case)"; this.matchCBScripts.UseVisualStyleBackColor = true; // // containsCBScripts // this.containsCBScripts.Appearance = System.Windows.Forms.Appearance.Button; this.containsCBScripts.AutoSize = true; this.containsCBScripts.Checked = true; this.containsCBScripts.Location = new System.Drawing.Point(8, 15); this.containsCBScripts.Name = "containsCBScripts"; this.containsCBScripts.Size = new System.Drawing.Size(58, 23); this.containsCBScripts.TabIndex = 1; this.containsCBScripts.TabStop = true; this.containsCBScripts.Text = "Contains"; this.containsCBScripts.UseVisualStyleBackColor = true; // // startsWithCBScripts // this.startsWithCBScripts.Appearance = System.Windows.Forms.Appearance.Button; this.startsWithCBScripts.AutoSize = true; this.startsWithCBScripts.Location = new System.Drawing.Point(72, 15); this.startsWithCBScripts.Name = "startsWithCBScripts"; this.startsWithCBScripts.Size = new System.Drawing.Size(66, 23); this.startsWithCBScripts.TabIndex = 0; this.startsWithCBScripts.Text = "Starts with"; this.startsWithCBScripts.UseVisualStyleBackColor = true; // // criteriaGroupBoxActions // this.criteriaGroupBoxActions.Controls.Add(this.matchCBActions); this.criteriaGroupBoxActions.Controls.Add(this.containsCBActions); this.criteriaGroupBoxActions.Controls.Add(this.startsWithCBActions); this.criteriaGroupBoxActions.Location = new System.Drawing.Point(703, 9); this.criteriaGroupBoxActions.Name = "criteriaGroupBoxActions"; this.criteriaGroupBoxActions.Size = new System.Drawing.Size(266, 46); this.criteriaGroupBoxActions.TabIndex = 24; this.criteriaGroupBoxActions.TabStop = false; this.criteriaGroupBoxActions.Text = "Search Criteria"; // // matchCBActions // this.matchCBActions.Appearance = System.Windows.Forms.Appearance.Button; this.matchCBActions.AutoSize = true; this.matchCBActions.Location = new System.Drawing.Point(144, 15); this.matchCBActions.Name = "matchCBActions"; this.matchCBActions.Size = new System.Drawing.Size(113, 23); this.matchCBActions.TabIndex = 2; this.matchCBActions.Text = "Match (Ignore Case)"; this.matchCBActions.UseVisualStyleBackColor = true; // // containsCBActions // this.containsCBActions.Appearance = System.Windows.Forms.Appearance.Button; this.containsCBActions.AutoSize = true; this.containsCBActions.Checked = true; this.containsCBActions.Location = new System.Drawing.Point(8, 15); this.containsCBActions.Name = "containsCBActions"; this.containsCBActions.Size = new System.Drawing.Size(58, 23); this.containsCBActions.TabIndex = 1; this.containsCBActions.TabStop = true; this.containsCBActions.Text = "Contains"; this.containsCBActions.UseVisualStyleBackColor = true; // // startsWithCBActions // this.startsWithCBActions.Appearance = System.Windows.Forms.Appearance.Button; this.startsWithCBActions.AutoSize = true; this.startsWithCBActions.Location = new System.Drawing.Point(72, 15); this.startsWithCBActions.Name = "startsWithCBActions"; this.startsWithCBActions.Size = new System.Drawing.Size(66, 23); this.startsWithCBActions.TabIndex = 0; this.startsWithCBActions.Text = "Starts with"; this.startsWithCBActions.UseVisualStyleBackColor = true; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(554, 9); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(95, 13); this.label2.TabIndex = 23; this.label2.Text = "Action name or ID:"; // // startSearchButtonActions // this.startSearchButtonActions.Image = global::DSPRE.Properties.Resources.wideLensImage; this.startSearchButtonActions.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.startSearchButtonActions.Location = new System.Drawing.Point(975, 14); this.startSearchButtonActions.Name = "startSearchButtonActions"; this.startSearchButtonActions.RightToLeft = System.Windows.Forms.RightToLeft.No; this.startSearchButtonActions.Size = new System.Drawing.Size(87, 43); this.startSearchButtonActions.TabIndex = 22; this.startSearchButtonActions.Text = "Start\r\nSearch"; this.startSearchButtonActions.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.startSearchButtonActions.UseVisualStyleBackColor = true; this.startSearchButtonActions.Click += new System.EventHandler(this.startSearchButtonActions_Click); // // actioncmdSearchTextBox // this.actioncmdSearchTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.actioncmdSearchTextBox.Location = new System.Drawing.Point(556, 25); this.actioncmdSearchTextBox.Name = "actioncmdSearchTextBox"; this.actioncmdSearchTextBox.Size = new System.Drawing.Size(141, 22); this.actioncmdSearchTextBox.TabIndex = 21; this.actioncmdSearchTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.actioncmdSearchTextBox_KeyDown); // // actionDataGridView // this.actionDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.actionDataGridView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders; this.actionDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.actionDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.dataGridViewTextBoxColumn1, this.dataGridViewTextBoxColumn2}); this.actionDataGridView.Location = new System.Drawing.Point(556, 62); this.actionDataGridView.Name = "actionDataGridView"; this.actionDataGridView.ReadOnly = true; this.actionDataGridView.RowHeadersVisible = false; this.actionDataGridView.Size = new System.Drawing.Size(245, 622); this.actionDataGridView.TabIndex = 20; // // dataGridViewTextBoxColumn1 // this.dataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; dataGridViewCellStyle5.Format = "X4"; this.dataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle5; this.dataGridViewTextBoxColumn1.FillWeight = 30F; this.dataGridViewTextBoxColumn1.HeaderText = "Command ID"; this.dataGridViewTextBoxColumn1.MaxInputLength = 10; this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; this.dataGridViewTextBoxColumn1.ReadOnly = true; // // dataGridViewTextBoxColumn2 // this.dataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.dataGridViewTextBoxColumn2.FillWeight = 60F; this.dataGridViewTextBoxColumn2.HeaderText = "Action Command Name"; this.dataGridViewTextBoxColumn2.MaxInputLength = 200; this.dataGridViewTextBoxColumn2.MinimumWidth = 90; this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; this.dataGridViewTextBoxColumn2.ReadOnly = true; // // compOPDataGridView // this.compOPDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.compOPDataGridView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders; this.compOPDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.compOPDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.dataGridViewTextBoxColumn3, this.dataGridViewTextBoxColumn4}); this.compOPDataGridView.Location = new System.Drawing.Point(817, 62); this.compOPDataGridView.Name = "compOPDataGridView"; this.compOPDataGridView.ReadOnly = true; this.compOPDataGridView.RowHeadersVisible = false; this.compOPDataGridView.Size = new System.Drawing.Size(245, 622); this.compOPDataGridView.TabIndex = 25; // // dataGridViewTextBoxColumn3 // this.dataGridViewTextBoxColumn3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; dataGridViewCellStyle6.Format = "X4"; this.dataGridViewTextBoxColumn3.DefaultCellStyle = dataGridViewCellStyle6; this.dataGridViewTextBoxColumn3.FillWeight = 30F; this.dataGridViewTextBoxColumn3.HeaderText = "Operator ID"; this.dataGridViewTextBoxColumn3.MaxInputLength = 10; this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; this.dataGridViewTextBoxColumn3.ReadOnly = true; // // dataGridViewTextBoxColumn4 // this.dataGridViewTextBoxColumn4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.dataGridViewTextBoxColumn4.FillWeight = 60F; this.dataGridViewTextBoxColumn4.HeaderText = "Comparison Operator Name"; this.dataGridViewTextBoxColumn4.MaxInputLength = 200; this.dataGridViewTextBoxColumn4.MinimumWidth = 90; this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; this.dataGridViewTextBoxColumn4.ReadOnly = true; // // CommandsDatabase // this.AutoSize = true; this.ClientSize = new System.Drawing.Size(1075, 697); this.Controls.Add(this.compOPDataGridView); this.Controls.Add(this.criteriaGroupBoxActions); this.Controls.Add(this.label2); this.Controls.Add(this.startSearchButtonActions); this.Controls.Add(this.actioncmdSearchTextBox); this.Controls.Add(this.actionDataGridView); this.Controls.Add(this.criteriaGroupBoxScripts); this.Controls.Add(this.label1); this.Controls.Add(this.startSearchButtonScripts); this.Controls.Add(this.scriptcmdSearchTextBox); this.Controls.Add(this.scriptcmdDataGridView); this.DoubleBuffered = true; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "CommandsDatabase"; this.Text = "Script Commands Database"; ((System.ComponentModel.ISupportInitialize)(this.scriptcmdDataGridView)).EndInit(); this.criteriaGroupBoxScripts.ResumeLayout(false); this.criteriaGroupBoxScripts.PerformLayout(); this.criteriaGroupBoxActions.ResumeLayout(false); this.criteriaGroupBoxActions.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.actionDataGridView)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.compOPDataGridView)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.DataGridView scriptcmdDataGridView; private System.Windows.Forms.TextBox scriptcmdSearchTextBox; private System.Windows.Forms.Button startSearchButtonScripts; private System.Windows.Forms.Label label1; private System.Windows.Forms.GroupBox criteriaGroupBoxScripts; private System.Windows.Forms.RadioButton matchCBScripts; private System.Windows.Forms.RadioButton containsCBScripts; private System.Windows.Forms.RadioButton startsWithCBScripts; private System.Windows.Forms.GroupBox criteriaGroupBoxActions; private System.Windows.Forms.RadioButton matchCBActions; private System.Windows.Forms.RadioButton containsCBActions; private System.Windows.Forms.RadioButton startsWithCBActions; private System.Windows.Forms.Label label2; private System.Windows.Forms.Button startSearchButtonActions; private System.Windows.Forms.TextBox actioncmdSearchTextBox; private System.Windows.Forms.DataGridView actionDataGridView; private System.Windows.Forms.DataGridView compOPDataGridView; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; private System.Windows.Forms.DataGridViewTextBoxColumn CommandID; private System.Windows.Forms.DataGridViewTextBoxColumn CommandName; private System.Windows.Forms.DataGridViewTextBoxColumn ParamsCount; private System.Windows.Forms.DataGridViewTextBoxColumn Params; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; } } ================================================ FILE: DS_Map/Resources/CommandsDatabase.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace DSPRE.Resources { public partial class CommandsDatabase : Form { private DataGridViewRow currentrow; private Dictionary namesDict; private Dictionary paramsDict; private Dictionary actionsDict; private Dictionary comparisonOPsDict; private List scriptRadioButtons; private List actionRadioButtons; public CommandsDatabase(Dictionary namesDict, Dictionary paramsDict, Dictionary actionsDict, Dictionary comparisonOPsDict) { this.namesDict = namesDict; this.paramsDict = paramsDict; this.actionsDict = actionsDict; this.comparisonOPsDict = comparisonOPsDict; InitializeComponent(); SetupFromScriptDictionaries(scriptcmdDataGridView, paramsDict.Keys.Max(), namesDict, paramsDict); SetupFromScriptDictionaries(actionDataGridView, actionsDict.Keys.Max(), actionsDict); SetupFromScriptDictionaries(compOPDataGridView, comparisonOPsDict.Keys.Max(), comparisonOPsDict); scriptRadioButtons = new List() { containsCBScripts, startsWithCBScripts, matchCBScripts }; actionRadioButtons = new List() { containsCBActions, startsWithCBActions, matchCBActions }; } private void SetupFromScriptDictionaries(DataGridView table, int entriesCount, Dictionary sourceNamesDict, Dictionary sourceParamsDict = null) { table.Rows.Clear(); for (int i = 0; i < entriesCount; i++) { table.Rows.Add(); } DataGridViewRowCollection list = table.Rows; for (ushort i = 0; i < list.Count; i++) { //loop through DataGridViewRow r = list[i]; ushort currentID = i; string buffer = ""; sourceNamesDict.TryGetValue(i, out buffer); string commandName = buffer; r.Cells[0].Value = currentID.ToString("X4"); r.Cells[1].Value = commandName; if (sourceParamsDict != null) { var paramDictValues = sourceParamsDict.Values; try { if (paramDictValues.ElementAt(i)[0] == 0) { r.Cells[2].Value = 0; } else { r.Cells[2].Value = paramDictValues.ElementAt(i).Length;//.ToString(); } } catch { } string paramSize = ""; try { foreach (byte size in paramDictValues.ElementAt(i)) { if (size != 0) { paramSize += size + "B; "; } } } catch { } table.Rows[i].Cells[3].Value = paramSize.TrimEnd(); } } } private void startSearchButtonScripts_Click(object sender, EventArgs e) { StartSearch(scriptcmdDataGridView, scriptcmdSearchTextBox, scriptRadioButtons); } private void startSearchButtonActions_Click(object sender, EventArgs e) { StartSearch(actionDataGridView, actioncmdSearchTextBox, actionRadioButtons); } private void StartSearch(DataGridView table, TextBox searchBox, List rbl) { try { if (rbl[0].Checked) { //Contains scanAllRows(table, (x) => x.Value.ToString().IndexOf(searchBox.Text, StringComparison.InvariantCultureIgnoreCase) >= 0); } else if (rbl[1].Checked) { //StartsWith scanAllRows(table, (x) => x.Value.ToString().StartsWith(searchBox.Text, StringComparison.InvariantCultureIgnoreCase)); } else if (rbl[2].Checked) { //Exact Match scanAllRows(table, (x) => x.Value.ToString().IgnoreCaseEquals(searchBox.Text)); } } catch (OperationCanceledException) { table.ClearSelection(); table.FirstDisplayedScrollingRowIndex = currentrow.Index; currentrow.Selected = true; return; } } private void scanAllRows(DataGridView table, Func function) { for (int i = 0; i < table.Rows.Count; i++) { currentrow = table.Rows[i]; if (currentrow.Cells[1].Value == null) { continue; } try { if (function(currentrow.Cells[1])) { //Cancel research when found throw new OperationCanceledException(); } } catch (NullReferenceException) { } } } private void scriptcmdSearchTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { StartSearch(scriptcmdDataGridView, scriptcmdSearchTextBox, scriptRadioButtons); } } private void actioncmdSearchTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { StartSearch(actionDataGridView, actioncmdSearchTextBox, actionRadioButtons); } } } } ================================================ FILE: DS_Map/Resources/CommandsDatabase.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 True True True True True True True True True True True True True True True True 35 ================================================ FILE: DS_Map/Resources/HGSSCommands.md ================================================ | | New proposed names | Parameters | Function | Notes | | ---- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 0000 | Nop | \- | Nothing | | | 0001 | Dummy | \- | Nothing | Has exactly the same ASM code as Nop. | | 0002 | End | \- | End script execution | | | 0003 | WaitTime | u16: Time; Var: ??? | Stop script execution for Time frames | The Var's purpose is unknown. Command uses ScrReg 0 as countdown. | | 0004 | RegValueSet | u8: Script Register; u8: Value | Assigns Value to Script Register value | | | 0005 | RegDataSet | u8: Script Register; u32: Value | Assigns Value to Script Register value | | | 0006 | RegAdrsSet | u8: Script Register; u32: Address | Assigns data in Address offset to Script Register value | | | 0007 | AdrsValueSet | u32: Address; u8: Value | Assigns Value to the Address offset | | | 0008 | AdrsRegSet | u32: Address; u8: Script Register | Assigns Script Register value to the Address offset | | | 0009 | RegRegSet | u8: Script Register 1; u8: Script Register 2 | Assigns Script Register 2 value to Script Register 1 value | | | 000A | AdrsAdrsSet | u32: Address 1; u32: Address 2 | Assigns data in Address 2 to the Address 1 offset | | | 000B | CompareRegs | u8: Script Register; u8: Script Register | Compares two Script Register | | | 000C | CompareRegValue | u8: Script Register; u8: Value | Compares Script Register value with Value | | | 000D | CompareRegAdrs | u8: Script Register; u32: Address | Compares Script Register value with data in Address | | | 000E | CompareAdrsReg | u32: Address; u8: Script Register | Compares data in Address with Script Register value | | | 000F | CompareAdrsValue | u32: Address; u8: Value | Compares data in Address with Value | | | 0010 | CompareAdrsAdrs | u32: Address 1; u32: Address 2 | Compares data in Address 1 with data in Address 2 | | | 0011 | CompareVarValue | Var: Variable; u16: Value | Compares Variable value with Value | | | 0012 | CompareVars | Var: Variable 1; Var: Variable 2 | Compares Variable 1 value with Variable 2 value | | | 0013 | ParallelCommonScript | u16: ??? | ??? | Somehow related with parallel common script execution. | | 0014 | CommonScript | u16: Global Script ID | Calls Global Script ID script | The Common Script table is located at 0xFA48C in IPKS arm9.bin, ordered from highest to lowest with structure: u16 Global Script ID | u16 Script file | u16 Text file. The executed script inside script file is determined as: used Global Script ID \- tabulated Global Script ID. | | 0015 | LocalScript | \- | Returns to the invoking script/function after a Common Script | | | 0016 | Jump | u32: Relative Jump | Jumps to a function, Relative Jump bytes forward or backward | Relative Jump can have negative values (backward jump). | | 0017 | JumpIfObjID | u8: Event ID; u32: Relative Jump | Jumps to a function, Relative Jump bytes forward or backward, if invoking event has Event ID as ID | | | 0018 | JumpIfBgID | u8: ???; u32: Relative Jump | ??? | Maybe jumps to a function if invoking event has a specific ID. | | 0019 | JumpIfPlayerDir | u8: Player Direction; u32: Relative Jump | Jumps to a function, Relative Jump bytes forward or backward, if player is looking in Player Direction | Supposed. Needs to be tested in game. | | 001A | Call | u32: Relative Jump | Calls a function, Relative Jump bytes forward or backward | Can be used to make loops when calling the own invoking function. | | 001B | Return | \- | Returns to the invoking script/function after a Call | | | 001C | JumpIf | u8: Condition; u32: Relative Jump | If Condition in the condition table, jumps to a function | Ask AdAstra for the condition list. Condition table is updated after a IfVarValue, IfVarVar, CheckFlag... | | 001D | CallIf | u8: Condition; u32: Relative Jump | If Condition in the condition table, calls a function | | | 001E | SetFlag | u16: Flag | Sets Flag to 1 | | | 001F | ClearFlag | u16: Flag | Sets Flag to 0 | | | 0020 | CheckFlag | u16: Flag | Checks if Flag is set | It updates the internal condition flag and maybe part of the condition table. | | 0021 | SetFlagFromVar | Var: Flag | Sets the flag whose ID is stored in Flag | | | 0022 | ClearFlagFromVar | Var: Flag | Clears the flag whose ID is stored in Flag | | | 0023 | FlagStatusToVar | Var: Flag; Var: Variable | Checks if Flag is set and store the result in Variable | | | 0024 | SetTrainerFlag | Flex: Trainer ID | Sets the flag of Trainer ID, so marks it as beaten trainer | So this trainer will not battle against you. Used in every Gym after the leader is beaten. | | 0025 | ClearTrainerFlag | Flex: Trainer ID | Clears the flag of Trainer ID, so marks it as unbeaten trainer | So this trainer can be challenged again. | | 0026 | CheckTrainerFlag | Flex: Trainer ID | Checks if Trainer ID has been beaten | It updates the internal condition flag and maybe part of the condition table. | | 0027 | IncrementVar | Var: Variable; Flex: Operand | Stores the operation Variable \+ Operand in Variable | | | 0028 | DecrementVar | Var: Variable; Flex: Operand | Stores the operation Variable \- Operand in Variable | | | 0029 | SetVar | Var: Variable; u16: Value | Stores Value in Variable | | | 002A | SetVarFromVariable | Var: Variable 1; Var: Variable 2 | Assigns value of Variable 2 to Variable 1 | | | 002B | SetVarFromFlexible | Var: Variable; Flex: Flexible Value | Stores Flexible Value (or its value if variable) in Variable | | | 002C | MessageAll | u8: Text Slot | Display line Text Slot from the text file, all at once | | | 002D | Message | u8: Text Slot | Display line Text Slot from the text file | | | 002E | MessageFlex | Flex: Text Slot | Display line Text Slot from the text file | Unlike 002D, this command also accepts a variable as the input field. | | 002F | MessageNoSkip | Flex: Text Slot | ??? | | | 0030 | | u8: Text Slot | ??? | | | 0031 | WaitAB | \- | Waits for button A or button B to be pressed | Somehow it uses ScrReg 0 as countdown. | | 0032 | WaitButton | \- | Waits for a button to be pressed | It seems only A, B, X and direction pad buttons work. | | 0033 | WaitABPad | \- | Waits for button A, button B or pad buttons to be pressed | Supposed. Needs to be tested in game. | | 0034 | OpenMessage | \- | ??? | | | 0035 | CloseMessage | \- | Closes message box | SDSME name is misleading, for no button is needed to be pressed. | | 0036 | FreezeMessage | \- | ??? | Probably keeps the message box alive after a script. ASM differs with CloseMessage only in a BL instruction. | | 0037 | SetIconBoard | u8: Text Slot; u8: Type; u16: Icon; u16: ??? | Prepares an icon board message box displaying Text Slot message, of Type type, and with Icon image if chosen type supports it | Type values from 0 to 3 are: brown (with icon), green (with icon), gray and blue. | | 0038 | SetTextBoard | u8: Type; u16: Icon | Prepares a text board message box of Type type, and with Icon image if chosen type supports it | Type values from 0 to 3 are: brown (with icon), green (with icon), gray and blue. | | 0039 | ShowBoard | u8: Process | Triggers different Process processes for the board | Process value 0 keeps the board, value 1 creates the board, value 2 hides the board, value 3 shows the board and value 4 deletes the board. | | 003A | WaitBoard | \- | Waits the board last process to end | Supposed. | | 003B | BoardMessage | u8: Text Slot; u16: Variable | Displays Text Slot message in the current text box, stores the current text box status in Variable | | | 003C | CloseBoard | Var: Variable | Returns 1 to Variable if the player has pressed a button so the board must close, 0 otherwise | Variable is stored in ScrReg 0. Command waits for a button to be pressed and stores result in Variable. | | 003D | Menu | \- | | | | 003E | | u8: ???; u8: ???; u8: ???; u8: ???; u8: ???; u8: ??? | | | | 003F | YesNoBox | Var: Variable | Opens a Yes-No dialog and stores user response in Variable | Variable is stored in ScrReg 0. | | 0040 | MultiStandardText | u8: X; u8: Y; u8: Cursor; u8: Cancel; Var: Selection | Prepares a multiple selection menu at X and Y screen position, with Cursor default selected option and possibility of cancelling depending on Cancel, with text bank #321, returns selected slot ID in Selection | If Cancel is 1, the user can select the last option by pressing B button. | | 0041 | MultiLocalText | u8: X; u8: Y; u8: Cursor; u8: Cancel; Var: Selection | Prepares a multiple selection menu at X and Y screen position, with Cursor default selected option and possibility of cancelling depending on Cancel, with local texts, returns selected slot ID in Selection | If Cancel is 1, the user can select the last option by pressing B button. | | 0042 | AddMultiOption | u8: Text Slot; u8: Multi Slot | Adds an option with Multi Slot ID showing Text Slot text | | | 0043 | ShowMulti | \- | Shows the prepared multi in screen | The game will hide it when the player has selected an option. | | 0044 | ListStandardText | u8: X; u8: Y; u8: Cursor; u8: Cancel; Var: Selection | Prepares a multiple selection list at X and Y screen position, with Cursor default selected option and possibility of cancelling depending on Cancel, with text bank #321, returns selected slot ID in Selection | If Cancel is 1, the user can select the last option by pressing B button. The difference between a Multi and a List seems to be that lists are scrollable. | | 0045 | ListLocalText | u8: X; u8: Y; u8: Cursor; u8: Cancel; Var: Selection | Prepares a multiple selection list at X and Y screen position, with Cursor default selected option and possibility of cancelling depending on Cancel, with local texts, returns selected slot ID in Selection | If Cancel is 1, the user can select the last option by pressing B button. The difference between a Multi and a List seems to be that lists are scrollable. | | 0046 | AddListOption | Flex: Option MSG; Flex: Highlight MSG; Flex: List Slot | Adds a new option to the list, with List Slot ID and showing text line Option MSG. It also displays text line Highlight MSG when that option is highlighted. | If Highlight MSG is set to 255 [0xFF], no message will be displayed when the option is highlighted.
This command relies on an open message box in order to display the highlight messages.

Trying to highlight an option with Highlight MSG different than 255 [0xFF] will result in a crash if no message box is already being displayed. | | 0047 | ShowList | \- | Shows the prepared list in screen | The game will hide it when the player has selected an option. | | 0048 | MultiColumn | u8: Columns | Splits the multi window in Columns different columns | | | 0049 | PlayFanfare | Flex: Sound | Plays Sound | | | 004A | StopFanfare | Flex: Sound | Stops Sound | | | 004B | WaitFanfare | Flex: Sound | Waits Sound to finish | | | 004C | PlayCry | Flex: Pokmon; Flex: Unused | Plays a Pokmon cry | | | 004D | WaitCry | \- | Waits the current cry to finish | | | 004E | PlaySound | u16: Sound | Pauses current music, then Plays Sound | | | 004F | WaitSound | \- | Waits for Sound to finish, then resumes music | | | 0050 | PlayMusic | u16: Music | Plays Music | | | 0051 | StopMusic | u16: Unused | Stops current music | Parameter is ignored because the game identifies what music is playing. | | 0052 | PlayDefaultMusic | \- | Plays map default music | | | 0053 | SetMusic | u16: Music | ??? | | | 0054 | FadeOutMusic | u16: Volume; u16: Time | Fades out the current music to Volume in Time frames | | | 0055 | FadeInMusic | u16: Time | Fades in the current music to normal volume in Time frames | | | 0056 | SetMusicPauseStatus \* | u8: SSEQ Player ID; u8: Status | ??? | | | 0057 | TempMusic \* | u16: Music ID | ??? | | | 0058 | SetBGMFlag \* | u8: ??? | ??? | Seems to set a flag related to the music system. | | 0059 | CheckChatotCry | Var: Variable | Checks if Chatot has custom sound, stores answer in Variable | Returns 0 or 1 to the specified Variable. Not for a specific Chatot but for all (they share a custom sound). | | 005A | StartChatotCry | Var: Variable | Starts Chatot microphone record, stores answer in Variable | Returns 0 or 1 to the specified Variable depending on successful recording. | | 005B | StopChatotCry | \- | Stops recording Chatot custom sound | | | 005C | SaveChatotCry | \- | ??? | Maybe saves the custom Chatot sound in the savegame. | | 005D | | \- | ??? | | | 005E | Movement | Flex: Event ID; u32: Relative Jump | Applies movement at Relative Jump to Event ID | Movements must be halfword-aligned in the script file. If you're using an old tool which doesn't align them, force the alignment with a TextPlayerName 0x0 or some unnoticeable command of 3, 5, 7 or 9 bytes length. | | 005F | WaitMovement | \- | Waits for all movements to finish | | | 0060 | LockAll | \- | Locks every event in the map | | | 0061 | ReleaseAll | \- | Releases every event in the map | | | 0062 | Lock | u16: Event ID | Locks Event ID | | | 0063 | Release | u16: Event ID | Releases Event ID | | | 0064 | AddOW | Flex: Event ID | Add Event ID overworld in the map | It is probable that, if executing this having Event ID overworld already in the map, it gets duplicated. | | 0065 | RemoveOW | Flex: Event ID | Removes Event ID overworld from the map | | | 0066 | LockCamera | Flex: X; Flex: Y | Locks the camera at position X and Y | Seems to place a invisible NPC at coords X and Y. It appears that both must be the current player position. | | 0067 | ReleaseCamera | \- | Releases the camera | | | 0068 | FacePlayer | \- | Makes the invoking event look at the player | In fact it simply takes the current player direction and makes the NPC look at the opposite direction. | | 0069 | GetPlayerPosition | Var: X; Var: Y | Saves the current player position in X and Y | | | 006A | GetOWPosition | Flex: Event ID; Var: X; Var: Y | Saves the current Event ID position in X and Y | If Event ID is deleted (via RemoveOW) it gives 0xFF for both coordinates. | | 006B | SetFollowingOverworld \* | Flex: X; Flex: Z; Flex: Y | ??? | Maybe teleports the player to other coords? | | 006C | KeepOverworld | Flex: Event ID; u8: Value | If Value is 1, prevents Event ID from disappearing when entering on a new map header | | | 006D | SetOWMovement | Flex: Event ID; u16: Movement | Changes the Event ID's movement number to Movement | | | 006E | GiveMoney | u32: Money | Adds Money to the player's money | | | 006F | TakeMoney | u32: Money | Subtracts Money from the player's money | | | 0070 | CompareMoney | Var: Variable; u32: Money | Stores 1 into Variable if the player has Money or more money. Stores 0 otherwise. | | | 0071 | ShowMoney | Flex: X; Flex: Y | Shows the money box at X and Y coordinates of the screen | Each X and Y unit implies 8 pixels. Values of 0 or higher than the screen may glitch the screen. | | 0072 | HideMoney | \- | Hides the money box | | | 0073 | UpdateMoney | \- | Updates the current money in the money box | | | 0074 | ShowSpecialCurrency | u8: Currency; Flex: X Coord; Flex: Y Coord | Shows the Currency box at X and Y coordinates of the screen. | Currency:

0 = Coins
1 = Battle Points
2 = Athlete Points | | 0075 | HideSpecialCurrency | \- | Hides the currently displayed special currency box. | | | 0076 | UpdateSpecialCurrency | u16: Currency | Updates the current Currency in the currency box. | Currency types are the same as above [0074]. | | 0077 | CheckCoins | Var: Variable | Stores the current casino coin amount in Variable | | | 0078 | GiveCoins | Flex: Coins | Adds Coins to the player's casino coins | | | 0079 | TakeCoins | Flex: Coins | Subtracts Coins from the player's casino coins | | | 007A | GiveAthletePoints | Flex: Amount | Adds the given Amount to the player's Athlete Points | | | 007B | TakeAthletePoints | Flex: Amount | Subtracts the given Amount from the player's Athlete Points | | | 007C | CompareAthletePoints | Var: Result; Flex: Amount | Stores 1 into Variable if the player has the given Amount of Athlete Points or more. Stores 0 otherwise. | | | 007D | GiveItem | Flex: Item; Flex: Amount; Var: Variable | Adds Amount of Item item, stores 1 in Variable if the player had less than 1000 - Amount (100 - Amount if TM/HM), stores 0 otherwise | Both Item and Amount are flexible, but if you use CommonScript 0x7F1 after that (as it is meant to be) you must place these two values in 0x8004 and 0x8005 in order to make the script work properly. | | 007E | TakeItem | Flex: Item; Flex: Amount; Var: Variable | Subs Amount of Item item, stores 1 in Variable if the player had at least Amount items in the bag, stores 0 otherwise | | | 007F | CheckItemSpace | Flex: Item; Flex: Amount; Var: Variable | Stores 1 in Variable if the player has less than 1000 - Amount of Item items (100 - Amount if TM/HM), stores 0 otherwise | | | 0080 | CheckItem | Flex: Item; Flex: Amount; Var: Variable | Stores 1 in Variable if the player has at least Amount of Item items in the bag, stores 0 otherwise | Even if the Amount to check for is 0, the check will return 0 if you don't have the item at all. | | 0081 | CheckItemIsMachine | Flex: Item; Var: Variable | Stores 1 in Variable if Item is TM or HM, stores 0 otherwise | | | 0082 | GetItemPocket | Flex: Item; Var: Variable | Stores the bag pocket of Item in Variable | | | 0083 | SetStarter | Flex: Pokmon | Stores Pokmon as the starting Pokmon in the game save data | | | 0084 | GenderMessage | u8: Male Text; u8: Female Text | Displays Male Text or Female Text message depending on player's gender | | | 0085 | CheckSeals \* | Flex: Seal ID; Var: Number of Seals in Seal Case | Checks the number of a certain type of Ball Seals that the player has. The variable is the output of how many Seals you have. | Example: Farmhouse on Route 39 | | 0086 | GiveSeals \* | Flex: Seal ID; Flex: Number of Seals to be Given | Gives the player Ball Seals. | Example: Farmhouse on Route 39 | | 0087 | GiveRandomSeals \* | Var: Random Seal ID 1; Var: Random Seal ID 2; Var: Random Seal ID 3 | Generates three random types of Ball Seals and gives them to the player (repeats are possible). Each variable will yield a 0 if the player has no more room for the Seal(s) in the Seal Case. | Example: House in top right of Olivine City | | 0088 | CheckPokemonForm \* | Flex: Party Position; Var: Variable | Checks the form of the Pokemon in party slot Party Position and returns the form ID in Variable. | | | 0089 | GivePokemon | Flex: Pokmon; Flex: Level; Flex: Item ID; Flex: Form; Flex: Ability; Var: Variable | Gives Pokmon at level Level, store 1 in Variable if succeed and 0 otherwise | | | 008A | GivePokemonEgg | Flex: Pokmon; Flex: Location | Gives a Pokmon egg received from Location text slot at text bank #281 | | | 008B | ReplaceMove | Flex: Party Slot; Flex: Move Slot; u16: Move ID | Overwrites Move Slot of the Pokmon at the specified Party Slot with Move ID. | Party slot and move slot start at 0 rather than 1, so the ranges are 0-5 and 0-3 respectively.
[https://bulbapedia.bulbagarden.net/wiki/List_of_moves](https://bulbapedia.bulbagarden.net/wiki/List_of_moves) | | 008C | CheckPokemonHasMove | Var: Variable; Flex: Move ID; Flex: Party Slot | Checks if a Pokmon at the specified Party Slot knows a move with given Move ID.
Stores 1 into Variable if yes, 0 otherwise. | Example: Headbutt tutor in Ilex Forest (Script File 92, Script 3) | | 008D | CheckMoveInParty | Var: Variable; Flex: Move ID | Checks if any Pokmon in the party knows Move ID move, stores in Variable the position of the first Pokmon that knows it or stores 6 if no Pokmon in the party knows the move | | | 008E | CheckPokeGearRematch \* | Flex: Phone Number; Var: Variable | | Has something to do with rematches but not sure if it's checking if a rematch is active or the # the rematch is on. Gets used when deciding when to let Gym Leaders appear in the overworld for a photo shoot after they are defeated in the Dojo. | | 008F | ChooseRivalName | Var: Variable | Opens the keyboard for naming the rival, stores 1 in Variable if user cancels the proccess | | | 0090 | GetCounterpartSprite | Var: Variable | Stores 97 (Lyra sprite ID) into the Variable if you're playing as Ethan;
Stores 0 (Ethan sprite ID) into the Variable if you're playing as Lyra. | Remember that Overworld Entities with sprite IDs 101 to 116 refer to the value of vars 0x4020-0x402F for the sprite to display. | | 0091 | UpgradePokegear | u8: Module | Adds the worldmap to the Pokegear if Module is 1, adds the radio if Module is 2 | | | 0092 | RecordPokegearNumber | Flex: ??? | | | | 0093 | CheckPokegearNumberRegistered \* | Flex: Phone Number; Var: Variable | Stores 0 into Variable if Phone Number has not been registered, and 1 if it has been registered. | Example: Sabrina in Olivine Harbor (Script File 153, Script 7). Used frequently by Gym Leaders appearing in the overworld. | | 0094 | | | | | | 0095 | | | | | | 0096 | ReturnScreen | \- | Restores the normal overworld screen | | | 0097 | | | | | | 0098 | | \- | | | | 0099 | DressPokemon \* | \- | | | | 009A | ContestDressupScreen \* | \- | | | | 009B | DressUpArtworkScreen \* | \- | | | | 009C | SealCapsuleScreen \* | \- | | | | 009D | WorldMapScreen | \- | Opens the worldmap screen | | | 009E | PCBoxScreen \* | \- | | | | 009F | DrawScreenUnion \* | \- | | | | 00A0 | TrainerCaseUnion \* | \- | | | | 00A1 | TradeScreenUnion \* | \- | | | | 00A2 | RecordMixingUnion \* | \- | | | | 00A3 | EndGameScreen | \- | Opens the Hall of Fame and game ending screens | | | 00A4 | HallOfFameData \* | \- | | | | 00A5 | StoreGTSStatus \* | ??? | | | | 00A6 | InitWFC \* | ??? | | | | 00A7 | StarterSelectionScreen | \- | Opens the starter Pokmon selection screen | | | 00A8 | GetTrainerPathToPlayer \* | Flex: ??? | | | | 00A9 | TrainerStepTowardsPlayer \* | Flex: ???; Var: Variable | | | | 00AA | GetTrainerEyeType \* | Var: Variable | | | | 00AB | GetEyeTrainerNum \* | Flex: ???; Var: Variable | | | | 00AC | WritePlayerName | Var: Variable | Opens the keyboard for naming the player, stores 1 in Variable if user cancels the proccess | | | 00AD | WritePokemonName | Flex: Party Position; Var: Variable | Opens the keyboard for naming a Pokmon in Party Position, stores 1 in Variable if user cancels the proccess | | | 00AE | FadeScreen | u16: Frame Count; u16: Duration; u16: Fade Style; u16: Color | Fades screen to chosen 15-bit Color, using the chosen Fade Style. The transition will render Frame Count images, of Duration length each. | Type 0 for fade in, Type 1 for fade out. Color has 15-bit format. Transition is the number of color changes that the game does in the fading. | | 00AF | WaitFadeScreen | \- | Waits for the screen fade to end | | | 00B0 | Warp | Flex: Map; u16: Door; Flex: X; Flex: Y; Flex: Dir | Warps to X and Y position of Map header with initial Dir direction, using Door warp | When Door is 0 it doesn't use any door animation. | | 00B1 | RockClimbAnimation | Flex: Party Position | Uses rock climb with the Pokmon at Party Position position | | | 00B2 | SurfAnimation | Flex: Party Position | Uses surf with the Pokmon at Party Position position | | | 00B3 | WaterfallAnimation | Flex: Party Position | Uses waterfall with the Pokmon at Party Position position | | | 00B4 | FlyAnimation | u16: Map; Flex: X; Flex: Y | Flies to Map header map, to coordinates X and Y | | | 00B5 | FlashAnimation | \- | Sets weather to 12 (darkness after flash) and then updates the weather graphics | | | 00B6 | WhirlpoolAnimation | Flex: Party Position | Uses whirlpool with the Pokmon at Party Position position | | | 00B7 | CutAnimation | Flex: Party Position | Uses cut with the Pokmon at Party Position position | | | 00B8 | CheckBike | Var: Variable | Stores 1 in Variable if player is riding the bike, stores 0 otherwise | | | 00B9 | RideBike | u8: Action | Changes player form from normal to riding the bike if Action is 1, otherwise it sets the normal form to the player | | | 00BA | CyclingRoad | u8: Action | If Action is 1, the game sets the cycling road flag and moves the player down. Otherwise the flag is deactivated. | | | 00BB | CheckPlayerForm | Var: Variable | Stores in Variable the current player form | Values 0 is for normal form, value 1 for riding the bike, value 2 for surfing, value 3 for Rocket clothing | | 00BC | SetPlayerForm | u16: Form | Activates the Form bit in the internal player form data | The purpose of the different bits still needs to be researched. | | 00BD | UpdatePlayerForm | \- | Updates changes in the internal player form data in the screen | | | 00BE | TextPlayerName | u8: String Buffer | Stores player's name in String Buffer | | | 00BF | TextRivalName | u8: String Buffer | Stores rival's name in String Buffer | | | 00C0 | TextCounterpart | u8: String Buffer | Stores counterpart's name in String Buffer | | | 00C1 | TextPartyPokemon | u8: String Buffer; Flex: Party Position | Stores the name of the Pokmon in Party Position in String Buffer | | | 00C2 | TextItem | u8: String Buffer; Flex: Item | Stores Item's name in String Buffer | | | 00C3 | TextPocket | u8: String Buffer; Flex: Pocket | Stores Pocket's name in String Buffer | | | 00C4 | TextMachineMove | u8: String Buffer; Flex: Item | Stores the name of the move contained in Item TM/HM in String Buffer | | | 00C5 | TextMove | u8: String Buffer; Flex: Move | Stores battle Move's name in String Buffer | | | 00C6 | TextNumber | u8: String Buffer; Flex: Number | Stores a Number in String Buffer | | | 00C7 | TextPokeNickname | u8: String Buffer; Flex: Party Position | Stores the nickname of the Pokmon in Party Position in String Buffer | | | 00C8 | | | | | | 00C9 | TextPlayerTrainerType | u8: String Buffer | Stores player's Union Room trainer type in String Buffer | | | 00CA | TextPokemon | u8: String Buffer; Flex: Pokmon; u16: Unused; u8: Unused | Stores Pokmon's name in String Buffer | The two Unused parameters are for defining male/female nouns and singular/plural nouns respectively. However both don't apply in this command. | | 00CB | TextStarterPokemon | u8: String Buffer | Stores the name of the player' starter Pokmon in String Buffer | | | 00CC | TextRivalStarter | u8: String Buffer | Stores the name of the rival' starter Pokmon in String Buffer | | | 00CD | TextCounterpartStarter | u8: String Buffer | Stores the name of the counterpart' starter Pokmon in String Buffer | | | 00CE | CheckStarter | Var: Variable | Stores the starter Pokmon ID in Variable | | | 00CF | DummyTextGoods | u8: String Buffer; Flex: Unused | Loads an empty string in String Buffer | | | 00D0 | DummyTextTrap | u8: Unused; Flex: Unused | Nothing | | | 00D1 | DummyTextTreasure | u8: Unused; Flex: Unused | Nothing | | | 00D2 | TextMapName | u8: String Buffer; Flex: Map | Stores Map header name in String Buffer | | | 00D3 | GetSwarmInfo | Var: Map; Var: Pokmon | Selects a zone depending on a random seed, then stores the zone ID in Map and the corresponding swarm Pokmon of that zone in Pokmon | Predicted. Needs to be checked. | | 00D4 | TrainerID | Var: Variable | Stores the trainer ID number in Variable depending on the script ID | This means you shouldn't use this command in a normal script. | | 00D5 | TrainerBattle | Flex: Trainer 1; Flex: Trainer 2; u8: Result; u8: ??? | Starts a battle against Trainer 1 and, if Trainer 2 is neither 0 nor the same as Trainer 1, a double battle against both. Continues without warping to Pokemon Center/home if Result is equal to 1. | Your party will also be fully healed after the battle if Result is 1. Example: Cherrygrove City fight with Rival | | 00D6 | TrainerMessage | Flex: Trainer ID; Flex: Type | Displays the text of Trainer ID trainer at condition Type | The possible Type values are the following (expand the note for see them) | | 00D7 | TrainerMsgCheck | Var: Noticing; Var: Defeat; Var: One Pokmon | If the script ID corresponds to a single battle trainer, stores 0 in Noticing, 2 in Defeat and 0 in One Pokmon. If it corresponds to a double battle, stores 3, 5 and 6 or 7, 9 and 10 depending on whether it's the first or the second trainer | This means you shouldn't use this command in a normal script. | | 00D8 | TrainerRematchMsgCheck | Var: Noticing; Var: Defeat; Var: One Pokmon | If the script ID corresponds to a single battle trainer, stores 17 in Noticing, 0 in Defeat and 0 in One Pokmon. If it corresponds to a double battle, stores 18, 0 and 6 or 19, 0 and 10 depending on whether it's the first or the second trainer | This means you shouldn't use this command in a normal script. | | 00D9 | TrainerTypeCheck | Var: Variable | Stores 0 in Variable if the script ID corresponds to a single battle, stores 1 if it corresponds to a double battle | This means you shouldn't use this command in a normal script. | | 00DA | TrainerMusic | Flex: Trainer | Plays Trainer's overworld music | It checks if player is in Johto or Kanto for that. | | 00DB | LostBattle | \- | Return to Pokmon Center or player's house after being defeated | | | 00DC | CheckBattleIsLost | Var: Variable | Stores 0 in Variable if player has been defeated in battle, stores 1 otherwise | | | 00DD | CheckDefeatedPokemon | Var: Variable; u8: ??? | Stores 0 in Variable if player defeated or catched the wild Pokemon, stores 1 otherwise | | | 00DE | Check2vs2 | Var: Variable | Stores 1 in Variable if player has at least 2 not fainted Pokmon, stores 0 otherwise | | | 00DF | DummyTrainerBattle | \- | Starts a battle against trainer with ID 1 | | | 00E0 | DummyTrainerFlag | \- | Sets the trainer flag with the same ID as the invoking event | | | 00E1 | DummyTrainerFlagJump | u32: Relative Jump | Jumps to a function, Relative Jump bytes forward or backward, if trainer flag with the invoking event ID is set | | | 00E2 | | | | | | 00E3 | | | | | | 00E4 | | | | | | 00E5 | | | | | | 00E6 | | | | | | 00E7 | | | | | | 00E8 | | | | | | 00E9 | | | | | | 00EA | | | | | | 00EB | | | | | | 00EC | | | | | | 00ED | | | | | | 00EE | CheckPokerus | Var: Variable | Stores 1 in Variable if one or more Pokmon in the party are infected with the Pokrus | | | 00EF | GetPokemonGender | Flex: Party Position; Var: Variable | Stores 0 in Variable if Pokmon at Party Position is male, 1 if is female and 2 if gender is unknown | Unknown gender value is supposed and should be checked. | | 00F0 | SetElevatorWarp \* | Var: Variable | | | | 00F1 | GetElevatorFloor | Var: Variable | Stores in Variable the current floor in a elevator | | | 00F2 | ElevatorBox | u8: X; u8: Y; Var: Variable; Flex: Floor | Shows the current floor number in a box at X and Y coordinates in the screen | Each X and Y unit implies 8 pixels. Values of 0 or higher than the screen may glitch the screen. Variable and Floor parameters have not been tested. | | 00F3 | CountJohtoDexSeen | Var: Variable | Stores in Variable the total seen Pokemon in the Johto Pokdex | | | 00F4 | CountJohtoDexObtained | Var: Variable | Stores in Variable the total obtained Pokemon in the Johto Pokdex | | | 00F5 | CountNationalDexSeen | Var: Variable | Stores in Variable the total seen Pokemon in the National Pokdex | | | 00F6 | CountNationalDexObtained | Var: Variable | Stores in Variable the total obtained Pokemon in the National Pokdex | | | 00F7 | DummyNationalDexCheck | \- | Nothing | | | 00F8 | GetDexProgressMsg | u8: Mode; Var: Message; Var: Unknown | Checks the number of seen Pokmon in the Johto Pokdex (if Mode is 0) or the number of obtained Pokmon in the National Pokdex (otherwise) and stores the corresponding Professor message in Message, also storing 0x4AA in Unknown | | | 00F9 | WildBattle | Flex: Pokmon; Flex: Level | Starts a wild battle against a Pokmon of level Level | | | 00FA | WildBattleNoButtons | Flex: Pokmon; Flex: Level | Starts a first wild battle against a Pokmon of level Level | The difference between this and other similar commands is that Bag, Run and Pokmon buttons are disabled. | | 00FB | CatchTutorial | \- | Starts the catch tutorial battle | | | 00FC | | | | | | 00FD | CheckSaveGame | Var: Variable | Stores 0 in Variable if a different savegame exists and it's not possible to save, stores 1 if no previous savegame exists, stores 2 if game has to save a lot of data and stores 3 if game can perform a quick save | | | 00FE | SaveGame \* | | | | | 00FF | CheckPortrait \* | | | | | 0100 | SetPortraitTitle \* | | | | | 0101 | | | | | | 0102 | | | | | | 0103 | | | | | | 0104 | | | | | | 0105 | | | | | | 0106 | | | | | | 0107 | | | | | | 0108 | | | | | | 0109 | | | | | | 010A | | | | | | 010B | | | | | | 010C | | | | | | 010D | | | | | | 010E | | | | | | 010F | | | | | | 0110 | | | | | | 0111 | | | | | | 0112 | | | | | | 0113 | MartScreen | Flex: Unused | Opens the common mart shopping screen | | | 0114 | SpMartScreen | Flex: Mart ID | Opens the Mart ID mart shopping screen | Used in the Departament Store for a shop with specific fixed items. At 0x48188 of arm9.bin (IPKS) is the pointer to the shops table, each entry of the table being a pointer to an item table. | | 0115 | GoodsMartScreen | Flex: Mart ID | Opens the Mart ID goods mart shopping screen | | | 0116 | SealMartScreen | Flex: Mart ID | Opens the Mart ID seal mart shopping screen | | | 0117 | DummyLostBattle | \- | Return to Pokmon Center or player's house after being defeated | Same code as LostBattle command. | | 0118 | SetLastWarp | Flex: Warp ID | Sets map's Warp ID warp as the last used warp | Supposed. This would affect actions like Escape Rope use. | | 0119 | CheckPlayerGender | Var: Variable | Stores 0 in Variable if player is male, stores 1 if female | | | 011A | HealPokemon | \- | Heals every Pokmon in the player's party | That does not include the black fade nor the healing sound. | | 011B | EndWirelessComms \* | | | | | 011C | EnterBattleRoom \* | | | | | 011D | SetPlayerDirComm \* | | | | | 011E | UnionMapChange \* | | | | | 011F | UnionRoomSpriteScreen \* | | | | | 0120 | StoreUnionSprite \* | | | | | 0121 | SetUnionSprite \* | | | | | 0122 | CheckPokedex | Var: Variable | Stores 1 in Variable if player has the Pokdex, stores 0 otherwise | | | 0123 | GivePokedex | \- | Gives the Pokdex to the player | | | 0124 | CheckShoes | Var: Variable | Stores 1 in Variable if player has the running shoes, stores 0 otherwise | | | 0125 | GiveShoes | \- | Gives the running shoes to the player | | | 0126 | CheckBadge | Flex: Badge ID; Var: Variable | Checks if player has Badge ID badge, stores result in Variable | | | 0127 | GiveBadge | Flex: Badge ID | Gives the player Badge ID badge | | | 0128 | CountBadges | Var: Variable | Stores in Variable the number of badges obtained | | | 0129 | DummyCheckBag | Var: Variable | Stores 1 in Variable if flag 0x960 is set, stores 0 otherwise | | | 012A | DummyGiveBag | \- | Sets flag 0x960 | | | 012B | CheckPartner | Var: Variable | Stores 1 in Variable if the following event flag is activated, stores 0 otherwise | | | 012C | SetPartner | \- | Activates the following event flag, so you can no longer use the bike, surf, rock climb... | | | 012D | ClearPartner | \- | Deactivates the following event flag, so you can use the bike, surf, rock climb... again | | | 012E | CheckStepFlag \* | | | | | 012F | SetStepFlag \* | | | | | 0130 | ClearStepFlag \* | | | | | 0131 | DummyCheckGameCompleted | Var: Variable | Stores 1 in Variable if flag 0x964 is set, stores 0 otherwise | This flag is not the one that HGSS uses when the player clears the game. | | 0132 | DummyGameCompleted | \- | Sets flag 0x964 | This flag is not the one that HGSS uses when the player clears the game. | | 0133 | DoorAnimation | u16: Matrix X; u16: Matrix Y; Flex: Map X; Flex: Map Y; u8: Door ID | Prepares a building located at Map X and Map Y coordinates in a map located at Matrix X and Matrix Y in the current matrix for animation, with Door ID animation ID | | | 0134 | WaitDoor | u8: Door ID | Wait animation of building with Door ID animation ID | | | 0135 | FreeDoor | u8: Door ID | Free animation of building with Door ID animation ID | | | 0136 | OpenDoor | u8: Door ID | Triggers first animation of building with Door ID animation ID | | | 0137 | CloseDoor | u8: Door ID | Triggers second animation of building with Door ID animation ID | | | 0138 | GetDaycareNames | \- | Stores first daycare Pokmon nickname in string buffer 0, the second daycare Pokmon nickname in string buffer 1 and the first Pokmon trainer's name in buffer 2 | If there's only one Pokmon in the daycare, string buffer 1 does not change. If no Pokmon is in the daycare, commands does nothing. | | 0139 | GetDaycareStatus | Var: Variable | If daycare Pokmon have an egg, stores 1 in Variable. Otherwise it stores 0 if no Pokmon is in the daycare, 2 if only one Pokmon is in the daycare or 3 if there are two Pokmon | | | 013A | InitEcruteakGym \* | | | | | 013B | | | ??? Something to do with the Goldenrod Dept. Store Basement, probably moving around blocks or opening access to doors. | | | 013C | | | ??? | | | 013D | | | | | | 013E | CianwoodGymInit \* | | | | | 013F | CianwoodGymTurnWinch \* | | | | | 0140 | VermilionGymInit \* | | | | | 0141 | VermilionGymLockAction \* | | | | | 0142 | VermilionGymCanCheck \* | | | | | 0143 | ResetVermilionGymCans \* | | | | | 0144 | InitVioletGym | \- | Initializes Violet Gym internal data and 3D model animations | | | 0145 | VioletGymElevator | \- | Triggers model #111 to move up or down | | | 0146 | InitAzaleaGym \* | | | | | 0147 | AzaleaGymSpinarak \* | | | | | 0148 | AzaleaGymSwitch \* | | | | | 0149 | BlackthornGymInit \* | | | | | 014A | FuchsiaGymInit \* | | | | | 014B | ViridianGymInit \* | | | | | 014C | GetPartyCount | Var: Variable | Stores in Variable the current number of Pokmon in the party | | | 014D | BagScreen \* | | | | | 014E | BagScreenSelection \* | | | | | 014F | CheckPocketItems \* | | | | | 0150 | DummyTextBerry \* | | | | | 0151 | TextNature? \* | | | | | 0152 | SetOWDefaultPosition | Flex: Event ID; Flex: X; Flex: Y | Sets Event ID spawn position to global coords X and Y | | | 0153 | SetOWPosition | Flex: Event ID; Flex: X; Flex: Z; Flex: Y; Flex: Dir | Moves Event ID to global coords X, Y, Z with Dir direction | Even though some maps are higher, the Z parameter is often 0. Game seems to calculate the correct Z position if it is wrong. | | 0154 | SetOWDefaultMovement | Flex: Event ID; Flex: Movement ID | Sets Event ID's default move code to Movement ID | | | 0155 | SetOWDefaultDirection | Flex: Event ID; Flex: Direction ID | Sets Event ID's default direction to Direction ID | | | 0156 | SetWarpPosition | Flex: Warp ID; Flex: X; Flex: Y | Moves Warp ID to global coords X and Y | | | 0157 | SetSpawnablePosition | Flex: Spawnable ID; Flex: X; Flex: Y | Moves Spawnable ID to global coords X and Y | | | 0158 | SetOWDirection | Flex: Event ID; Flex: Direction ID | Sets Event ID's current direction to Direction ID | | | 0159 | AddWaitingIcon \* | | | | | 015A | RemoveWaitingIcon \* | | | | | 015B | ReturnScriptWkSet \* | | | | | 015C | WaitTimeOrAB | Flex: Time | Stops script execution until Time frames have passed or until user presses A or B buttons | | | 015D | ChoosePKMNSelection \* | | | | | 015E | UnionChoosePKMNSelection\* | | | | | 015F | GetSelectedPartySlot | Var: Variable | Stores in Variable the selected party slot in a party Pokmon screen, or 0xFF is user cancelled the selection | | | 0160 | SelectMove \* | | | | | 0161 | GetMoveSelection \* | | | | | 0162 | GetPartyPokemonID | Var: Party Position; Var: Variable | Stores in Variable the ID of the Pokmon at Party Position | It will return 0 if Pokmon is an egg. | | 0163 | CheckTradedPokemon | Var: Party Position; Var: Variable | Stores 0 in Variable if trainer ID and secret ID of the Pokmon at Party Position are the player's ones, stores 1 otherwise | | | 0164 | CountPartyBornPokemon | Var: Variable | Stores in Variable the number of Pokmon in the Pokmon party, excluding the eggs | | | 0165 | CountAlivePokemonExceptFirst | Var: Variable; Flex: Party Position | Stores in Variable how many alive Pokmon would remain in the Pokmon party if Pokmon at Party Position disappeared | Eggs are excluded from the count. | | 0166 | CountTotalAlivePokemon | Var: Variable | Stores in Variable the number of Pokmon in the Pokmon party and PC boxes, excluding the eggs and fainted Pokmon | As Pokmon can't be fainted in the PC boxes, only eggs are not taken into account in the PC boxes count. | | 0167 | CountPartyEggs | Var: Variable | Stores in Variable the number of eggs in the Pokmon party | | | 0168 | TakeMoneyFlex | Flex: Money | Subtracts Money from the player's money | | | 0169 | RetrieveDayCareMon \* | | | | | 016A | GiveLoanMon \* | | | | | 016B | CheckReturnLoanMon \* | | | | | 016C | DeletePartyPokemon | Flex: Party Position | Deletes the Pokmon at Party Position from the party | The Pokmon data is destroyed. | | 016D | RemoveDayCareEgg \* | | | | | 016E | GiveDayCareEgg \* | | | | | 016F | TextDayCareCost \* | | | | | 0170 | CompareMoneyFlex | Var: Variable; Flex: Money | Returns 1 to Variable if the player has Money or more money, returns 0 otherwise | | | 0171 | EggHatchScreen | \- | Opens the egg hatching screen with an egg in the Pokmon party that has 0 steps left for hatching | This may crash if there's no ready egg in the Pokmon party. It's better not to use this command unless you know what are you doing. | | 0172 | | | | | | 0173 | CheckDaycareLevelGain \* | Var: Variable; Flex: Position | Stores the amount of levels a Pokmon in the Daycare has gained from being in the Daycare | | | 0174 | GetDayCareSpeciesandNick \* | | | | | 0175 | GiveDayCareMon \* | | | | | 0176 | UnvanishOverworld | Flex: Event ID | Makes Event ID visible again if it was invisible | Can be used on Following Pokmon. Useful for scripting events that happen as soon as the player walks into a buidling and their Following Pokmon hasn't spawned yet. The Following Pokmon will "unvanish" on the same tile as the player, so account for this in movement scripts. | | 0177 | VanishOverworld | Flex: Event ID | Makes Event ID invisible, but still collisionable | It's a great idea to use this command in a level script for blocking doors with invisible events. | | 0178 | MailScreen | \- | Opens the mail screen | | | 0179 | CountMail | Var: Variable | Stores in Variable the current amount of mails in the mailbox | | | 017A | RankingView \* | | | | | 017B | GetTimePeriod | Var: Variable | Stores in Variable the current time period of the day | The different values are:
0: From 04:00 AM to 09:59 AM (Morning)
1: From 10:00 AM to 04:59 PM (Noon)
2: From 05:00 PM to 07:59 PM (Evening)
3: From 08:00 PM to 11:59 PM (Night)
4: From 00:00 AM to 03:59 AM (Midnight) | | 017C | GetRandom | Var: Variable; Flex: Range | Generates a random number between 0 and Range \- 1, and stores it in Variable | | | 017D | DummyGetRandom | Var: Variable; Flex: Range | Generates a random number between 0 and Range \- 1, and stores it in Variable | Exactly the same code as the command above. | | 017E | GetPokemonHappiness | Var: Variable; Flex: Party Position | Stores in Variable the happiness of Pokmon in Party Position | | | 017F | AddHappiness | Flex: Happiness; Flex: Party Position | Adds Happiness to the happiness of Pokmon in Party Position | | | 0180 | SubHappiness | Flex: Happiness; Flex: Party Position | Subs Happiness to the happiness of Pokmon in Party Position | | | 0181 | TextDayCareMonStats \* | | | | | 0182 | GetPlayerDirection | Var: Variable | Stores in Variable the direction the player is looking at | Predicted. Seeing up gives 0, seeing down gives 1, seeing left gives 2 and seeing right gives 3. | | 0183 | GetDayCareMonCompatibility \* | | | | | 0184 | CheckDayCareEgg \* | | | | | 0185 | CheckBornPokemonInParty | Flex: Pokmon; Var: Variable | Stores 1 in Variable if Pokmon is currently in the Pokmon party, stores 0 otherwise | Eggs do not count as Pokmon, so they will be ignored. | | 0186 | CheckPokemonSizeRecord | Var: Variable; Flex: Party Position | Stores 0 in Variable if Pokmon at Party Position does not have a bigger relative size than player's record, stores 1 if it's the same size and stores 2 if it has a bigger relative size | | | 0187 | SetPokemonSizeRecord | Flex: Party Position | Stores the relative size of Pokmon at Party Position as player's record | | | 0188 | TextPartyPokemonSize | Flex: Integer String Buffer; Flex: Decimal String Buffer; Flex: Party Position | Stores the integer part of Pokmon at Party Position size in Integer String Buffer (1 to 3 digits) and the decimal part of the size in Decimal String Buffer (1 digit) | | | 0189 | TextPokemonRecordSize | Flex: Integer String Buffer; Flex: Decimal String Buffer; Flex: Pokmon ID | Stores the integer part of player's record size, normalized to Pokmon ID range, in Integer String Buffer (1 to 3 digits) and the decimal part of the size in Decimal String Buffer (1 digit) | | | 018A | | | | | | 018B | | | | | | 018C | CountPokemonMoves | Var: Variable; Flex: Party Position | Stores in Variable the total amount of moves that the Pokmon at Party Position currently has | | | 018D | DeleteMove | Flex: Party Position; Flex: Move Slot | Deletes the move in Move Slot from the Pokmon at Party Position | | | 018E | GetPartyPokemonMove | Var: Variable; Flex: Party Position; Flex: Move Slot | Stores in Variable the ID of the move in Move Slot from the Pokmon at Party Position | | | 018F | TextPartyPokemonMove | u8: String Buffer; Flex: Party Position; Flex: Move Slot | Stores the name of the move in Move Slot from the Pokmon at Party Position in String Buffer | | | 0190 | Strength | Command format depends on the first parameter:
u8: 0
u8: 1
u8: 2; Var: Variable | Function depends on the first parameter:
0: Disables Strength so player can no longer move boulders
1: Allows the player to automatically move Strength boulders
2: Checks if Strength is activated, store answer in Variable | | | 0191 | FlashAction \* | Command format depends on the first parameter:
u8: 0
u8: 1
u8: 2; Var: Variable | Function depends on the first parameter:
0: Clears the Flash system flag
1: Sets the Flash system flag
2: Checks if Flash is activated, store answer in Variable | | | 0192 | DefogAction \* | Command format depends on the first parameter:
u8: 0
u8: 1
u8: 2; Var: Variable | Function depends on the first parameter:
0: Clears the Defog system flag
1: Sets the Defog system flag
2: Checks if Defog is activated, store answer in Variable | | | 0193 | GiveAccessory \* | | | | | 0194 | CheckGivenAccessory \* | | | | | 0195 | CheckAccessory \* | | | | | 0196 | GiveBGAccessory \* | | | | | 0197 | CheckBGAccessory \* | | | | | 0198 | | | | | | 0199 | | | | | | 019A | | | | | | 019B | | | | | | 019C | | | | | | 019D | | | | | | 019E | | | | | | 019F | | | | | | 01A0 | | | | | | 01A1 | | | | | | 01A2 | | | | | | 01A3 | | | | | | 01A4 | | | | | | 01A5 | | | | | | 01A6 | | | | | | 01A7 | CheckCompleteJohtoDex | Var: Variable | Stores 1 in Variable if every Pokmon in the Johto Pokdex has been seen, stores 0 otherwise | | | 01A8 | CheckCompleteNationalDex | Var: Variable | Stores 1 in Variable if every Pokmon in the National Pokdex has been caught, stores 0 otherwise | | | 01A9 | OpenPokedexScreen \* | | | | | 01AA | CheckPokemonMail \* | | | | | 01AB | | | | | | 01AC | TakePokemonMail \* | | | | | 01AD | CountFossils | Var: Variable | Stores in Variable the current amount of fossils in the bag | Technically it's the number of items in the bag whose ID is between 99 and 105. | | 01AE | PreparePokeGearCall | Var: ???; Var: ???; Var: ??? | | | | 01AF | StartPokeGearCall | \- | Starts the PokGear phone call that was previously set. | | | 01B0 | CheckFossilPokemon | Var: Variable; Flex: Item ID | Stores in Variable the ID of the Pokmon to which Item ID fossil belongs | | | 01B1 | CheckFossil | Var: Position; Var: Item ID; Flex: Amount | Stores in Item ID the ID of the first fossil item in the bag that the player has at least Amount quantity of, and stores in Position the amount of fossils in the bag before the first fossil that met the quantity condition | Stores 0 in both variables if there's no fossil in the bag. | | 01B2 | CountPokemonUnderLevel | Var: Variable; Flex: Level | Stores in Variable the amount of Pokmon in party whose level is equal or lower than Level | Eggs are completely ignored. | | 01B3 | SurvivePoison | Var: Variable; Flex: Party Position | If Pokmon at Party Position is poisoned and at 1 HP, it cures the poison and stores 1 in Variable, otherwise it stores 0 | | | 01B4 | FinishOverworldScreen \* | | | | | 01B5 | DebugPoketch \* | | | | | 01B6 | MessageAllFromArchive \* | | | | | 01B7 | MessageFromArchive \* | | | | | 01B8 | MessageAllPutPMS \* | | | | | 01B9 | | | | | | 01BA | | | | | | 01BB | | | | | | 01BC | | | | | | 01BD | GetPreviousHeaderID | Var: Variable | Stores in Variable the header ID of the previous accessed map | | | 01BE | GetCurrentHeaderID | Var: Variable | Stores in Variable the header ID of the map the player is in | | | 01BF | SetSafariFlag | u8: Flag; u8: Mode | If Flag is 0 safari encounters are activated, if Flag is 1 safari encounters are deactivated, being the own safari encounters if Mode is 0 or using the Safari Zone link if 1 | | | 01C0 | BattleRoomWarp \* | | | | | 01C1 | ExitBattleRoom \* | | | | | 01C2 | GeonetScreen | \- | Opens the Geonet screen | | | 01C3 | | | | | | 01C4 | ShowPokemonPic | Flex: Pokmon; Flex: Gender | Opens a window with the picture of Pokmon with Gender gender and registers the Pokmon in the Pokdex as seen | 0 = Male or Genderless; 1 = Female | | 01C5 | HidePokemonPic | \- | Hides the window of a Pokmon picture | | | 01C6 | | | | | | 01C7 | | | | | | 01C8 | | | | | | 01C9 | GetPokemonNature \* | Var: Variable; Flex: Party Position | | | | 01CA | CheckPartyNature \* | Var: Variable; Flex: Nature ID | | | | 01CB | | | | | | 01CC | LoadPokegearData \* | | | | | 01CD | SetRebattleTrainerID \* | | | | | 01CE | SetRebattleGymLeaderID \* | | | | | 01CF | EnableMassOutbreaks \* | | | | | 01D0 | AddRoamingPokemon | u8: ID | Activates a roaming Pokemon depending on the ID | Uses ID to determine which roaming Pokmon must appear: 0 for Entei, 1 for Raikou, 2 for Latias and 3 for Latios. | | 01D1 | UnionGroup | Command format depends on the first parameter:
u16: 0; Flex: ID; Var: Variable
u16: 1; Flex: ID; Var: Variable
u16: 2; Flex: ID; Flex: String Buffer
u16: 3; Flex: ID; Flex: String Buffer
u16: 4; Var: Variable
u16: 5; Flex: ID
u16: 6
u16: 7; Var: Variable | Function depends on the first parameter:
0: Checks if group ID exists, returns answer in Variable
1: Checks if group ID is accesible, returns answer in Variable
2: Writes group ID name in String Buffer
3: Writes leader's name of Group ID in String Buffer
4: Opens keyboard, stores 1 in Variable if user cancels, 2 if group name already exists, 0 otherwise
5: Enter in group ID
6: Creates a group
7: ??? | This command is the devil. | | 01D2 | CheckEggMoves \* | | | | | 01D3 | RememberMoveScreen \* | | | | | 01D4 | TeachMovesScreen \* | | | | | 01D5 | ResponseTeachMove \* | | | | | 01D6 | InitTrade | u8: Trade ID | Initializes Trade ID trade data | | | 01D7 | GetOfferedPokemon | Var: Variable | Stores in Variable the ID of the offered Pokmon of the current trade data | | | 01D8 | GetRequestedPokemon | Var: Variable | Stores in Variable the ID of the requested Pokmon of the current trade data | | | 01D9 | TradePokemonScreen | Flex: Party Position | Opens the trade Pokmon screen, giving the Pokmon at Party Position and receiving the offered Pokmon of the current trade data | | | 01DA | EndTrade | \- | Frees the current trade data from the memory | | | 01DB | DummyInternationalDex | \- | Nothing | | | 01DC | DummyDimorphismDex | \- | Nothing | In fact it does activate a dimorphism flag in the Pokdex data, but since the HGSS Pokdex has the gender comparision by default, command's actual purpose is not noticeable. | | 01DD | NationalDex | Command format depends on the first parameter:
u8: 1; Var: Unused
u8: 2; Var: Variable | Function depends on the first parameter:
1: Activates the National Pokdex mode
2: Stores 1 in Variable if player has the National Pokdex, otherwise it stores 0 | | | 01DE | CountPokemonRibbons | Var: Variable; Flex: Party Position | Stores in Variable the amount of ribbons that the Pokmon in Party Position has | | | 01DF | CountPartyRibbons | Var: Variable | Stores in Variable the total amount of different ribbons in the current Pokmon party | | | 01E0 | CheckRibbon | Var: Variable; Flex: Party Position; Flex: Ribbon | Stores 1 in Variable if the Pokmon in Party Position has the Ribbon ribbon, stores 0 otherwise | | | 01E1 | GiveRibbon | Flex: Party Position; Flex: Ribbon | Gives the Ribbon ribbon to Pokmon in Party Position | | | 01E2 | TextRibbon | u8: String Buffer; Flex: Ribbon | Stores the name of the Ribbon in String Buffer | | | 01E3 | CountPokemonEVs | Var: Variable; Flex: Party Position | Stores in Variable the total amount of effort values of Pokmon in Party Position | Predicted. | | 01E4 | GetDayOfWeek | Var: Variable | Stores in Variable the current day of the week | Value 0 is the first possible value and it's for Sunday. | | 01E5 | ShowRulesList | Var: Variable | ??? | | | 01E6 | DummyGetPokemonFootprint | \- | Nothing | | | 01E7 | PCHealAnimation | Flex: PokBalls | Triggers the Pokmon Center healing animation with PokBalls number of player's Pokmon | | | 01E8 | ElevatorAnimation | Flex: Direction; Flex: Count | Triggers the animation of building #208 up (if Direction is 0) or down (if Direction is 1) Count consecutive times | | | 01E9 | MysteryGiftGive | Command format depends on the first parameter:
u16: 0
u16: 1; Var: Variable
u16: 2; Var: Variable
u16: 3; Var: Variable
u16: 4
u16: 5; Var: Text File; Var: Text Line
u16: 6; Var: Text File; Var: Text Line
u16: 7
u16: 8 | Function depends on the first parameter:
0: Initializes the data for receiving a Mystery Gift
1: Checks if there is a Mystery Gift, stores answer in Variable
2: Stores the Mystery Gift ID in Variable
3: Checks if player can receive the Mystery Gift, stores answer in Variable
4: Gives the Mystery Gift to the player
5: Shows the succeed text at Text File file and Text Line slot
6: Shows the unable text at Text File file and Text Line slot
7: Ends the Mystery Gift process
8: Saves data and ends the Mystery Gift process | This one too. | | 01EA | | | | | | 01EB | | | | | | 01EC | | | | | | 01ED | | | | | | 01EE | | | | | | 01EF | CheckVersion | Var: Variable | Returns 0x7 to Variable if game is HeartGold, 0x8 if SoulSilver | | | 01F0 | FirstPokemonInParty | Var: Variable | Stores in Variable the slot of the first Pokmon in the party that is not an egg | | | 01F1 | CheckPokemonType \* | | | | | 01F2 | FirstPrimoPassword \* | | | | | 01F3 | SecondPrimoPassword \* | | | | | 01F4 | PreparePCAnimation \* | | | | | 01F5 | OpenPCAnimation \* | | | | | 01F6 | ClosePCAnimation \* | | | | | 01F7 | GetLottoNumber | Var: Variable | Stores Lotto random number in Variable | Supposed by analogy with Platinum. | | 01F8 | CheckWinLotto | Var: MatchPos; Var: Digits; Var: PC; Flex: Winning Number | Takes a Winning Number as input and responds as follows.
If no matching Pokmon could be found or an error occurs:
MatchPos: 0; Digits: 0; PC: 0.

For all other cases:

If the matching Pokmon is in the Player's party, PC will be assigned 0.
Otherwise, if it's in the Player's Storage System, PC will be assigned 1.

MatchPos stores the zero-based position of the winning Pokmon (either as Party pos or Storage System pos, depending on the value of PC).

When there's a match, the Digits var is assigned the number of matching digits of the Winning Pokmon's PID.
In case of multiple matches, priority is always given to the one with the most matching digits. | Supposed by analogy with Platinum.

To retrieve the exact position of a winning Pokmon in the Storage System, first make sure PC equals 1.

The zero-based PC Page and Position indices can be calculated:

PC Page index = MatchPos / 30
Position in page = MatchPos % 30

where % is the modulo operator. | | 01F9 | InitLotto | \- | Generates two random numbers and assigns them to two system lottery variables. | Supposed by analogy with Platinum. | | 01FA | BufferBoxPokemonNick \* | | | | | 01FB | CountPCFreeSpace | Var: Variable | Stores in Variable the amount of free Pokmon slots in PC boxes | | | 01FC | PalParkControl \* | | | | | 01FD | PalParkDepositCountCheck \* | | | | | 01FE | PalParkBoxPokemonCaught \* | | | | | 01FF | PalParkScoreResult \* | | | | | 0200 | PlayerMovementSavingSet \* | | | | | 0201 | PlayerMovementSavingClear \* | | | | | 0202 | HallOfFameAnime \* | | | | | 0203 | AddTrainerScore \* | | | | | 0204 | TextAccessory | u8: String Buffer; Flex: Accesory | Stores Accesory's name in String Buffer | | | 0205 | CheckPokemonInParty | Flex: Pokmon; Var: Variable | Stores 1 in Variable if Pokmon (or its egg) is currently in the Pokmon party, stores 0 otherwise | | | 0206 | SetDeoxysForm | Flex: Form | Sets every Deoxys in the Pokmon party the Form form | Form 0 is Normal, form 1 is Attack, form 2 is Defense and form 3 is Speed. | | 0207 | CheckBurmyForms | Var: Variable | Stores in Variable the number of current different Burmy forms in the Pokmon party | Returns 0 if player has no Burmy in the party, 1 if only one different form, 2 if two different forms and 3 if has three or more Burmy with three different forms. | | 0208 | | \- | ??? | Sets a internal flag. | | 0209 | | \- | ??? | Resets a internal flag. | | 020A | GetHour | Var: Variable | Stores current hour from RTC in Variable | | | 020B | ShakeOverworld | Flex: Event ID; Flex: Count; Flex: Time; Flex: X; Flex: Y | Makes Event ID overworld shake Count times in Time frames, moving X horizontally and Y vertically each shake | Event ID must be released before this command in order to see the animation. | | 020C | BlinkOverworld | Flex: ???; Flex: ???; Flex: ???; Flex: ???; Flex: ??? | ??? | | | 020D | CheckRegis | Var: Variable | Stores 1 in Variable if player has the 3 Regis in the party, stores 0 otherwise | | | 020E | | | | | | 020F | MessageUnown | u16: Text Slot | Display line Text Slot from the text file with the Unown font | Predicted. | | 0210 | CheckGBACartidge | Var: Variable | Stores the current GBA cartridge ID in Variable | Stores 0 if no cartridge, 1 if Pokmon Sapphire, 2 if Pokmon Ruby, 3 if Pokmon Emerald, 4 if Pokmon FireRed and 5 if Pokmon LeafGreen. Somehow it could also set 7 if Pokmon Gold, 8 if Pokmon Silver, 10 if Pokmon Diamond, 11 if Pokmon Pearl, 12 if Pokmon Platinum and 15 if Pokmon Colosseum. | | 0211 | GetFirstAlivePokemonSlot | Var: Variable | Stores in Variable the slot of the first Pokmon in the party that is not an egg nor is fainted | Predicted. | | 0212 | SetMatrixAlternativeMap | Flex: Alternative ID; u8: Status | Permanently changes a worldmap matrix cell corresponding to Alternative ID if Status is 1, reverts the change if 0 | It only changes the map file value in the matrix, not the map header nor the map height. Seems that the only Alternative ID available values are 0 and 1, corresponding to Mahogany Town and to the Lake of Rage. | | 0213 | TextBackgroundName \* | | | | | 0214 | CheckCoinsImmediate \* | | | | | 0215 | CheckCoins \* | | | | | 0216 | AddCoins \* | | | | | 0217 | GetPokemonLevel | Var: Result; Flex: Party Slot | Stores into Result the level of the Pokmon at a given Party Slot. | | | 0218 | | | | | | 0219 | | | | | | 021A | | | | | | 021B | | | | | | 021C | | | | | | 021D | TextNumberSp | u8: String Buffer; Flex: Number; u8: Alignment Type; u8: Digits | Stores a Number in String Buffer with Alignment Type alignment and Digits length | Predicted. Alignment Type 0 is left-alignment, 1 is right alignment padded with spaces and 2 is right alignment padded with zeros. Digits is used only in these last two types. | | 021E | MonGetContestValue \* | | | | | 021F | CheckBirthday | Var: Variable | Stores 1 in Variable if the current day is the player's birthday, stores 0 otherwise | | | 0220 | MusicVolumeSet | Flex: Music ID; Flex: Volume | Identifies the BGM Player which is playing Music ID and sets its Volume | | | 0221 | CountSeenUnown | Var: Variable | Stores in Variable the number of different seen Unown forms | | | 0222 | | | | | | 0223 | | | | | | 0224 | | | | | | 0225 | | | | | | 0226 | CountHallOfFameEntries \* | | | | | 0227 | | | | | | 0228 | | | | | | 0229 | | | | | | 022A | | | | | | 022B | | | | | | 022C | | | | Related to move tutor? Possibly BP price check? | | 022D | CheckBattlePoints \* | | | | | 022E | GiveBP \* | | | | | 022F | TakeBP \* | | | | | 0230 | CompareBP \* | Flex: ???; Var: ??? | | | | 0231 | ShakeCamera | Flex: X Magnitude; Flex: Y Magnitude; Flex: Count; Flex: Time | Shakes the screen vertically and/or horizontally, moving the camera X Magnitude pixels horizontally and Y Magnitude pixels vertically in each shake, with Count total shakes of Time frames each one | Don't abuse this command, as it seems that camera might end up 1 pixel up or down in each animation, especially when Count is an odd number. | | 0232 | Battle2vs2 | Flex: Partner Trainer ID; Flex: Trainer 1 ID; Flex: Trainer 2 ID; u8: ??? | Starts a double battle with Partner Trainer ID versus Trainer 1 ID and Trainer 2 ID | Last parameter seems to always be 0x1. | | 0233 | | | | | | 0234 | | | | | | 0235 | | Var: ??? | ??? | | | 0236 | PartyPokemonTradeScreen | \- | Opens the party Pokmon screen for a trade | | | 0237 | GetDPPtPrizeItemIdAndCost \* | | | | | 0238 | | | | | | 0239 | | | | | | 023A | CheckCoinsVar \* | | | | | 023B | | | | | | 023C | GetUniqueSealsQuantity \* | | | | | 023D | DummyActivateMysteryGift \* | | | | | 023E | GetOWMovement \* | | | | | 023F | | | | | | 0240 | | | | | | 0241 | | | | | | 0242 | | | | | | 0243 | | | | | | 0244 | TextSealSingular \* | u8: String Buffer; Flex: Seal ID | Stores Seal's singular noun in String Buffer | International release exclusive(supposed). Text archive 15. | | 0245 | DummyLockAll \* | | | | | 0246 | | | | | | 0247 | | | | | | 0248 | PartyLegalCheck \* | var: Result | Checks legality of party, at least for WIFI stuff. If RESULT is 1, party check failed and you have an "illegal" mon | Used by the attendants in the PC to check your Pokemon before going into the Union Room, may be used elsewhere too | | 0249 | | | | | | 024A | | | | | | 024B | | \- | ??? | | | 024C | LastBattleCheckCaught \* | Var ??? | | | | 024D | WildBattleSp | Flex: Pokmon; Flex: Level; u8: Shiny Flag | Starts a wild battle against a Pokmon of level Level, and shiny if Shiny Flag is 1 | | | 024E | CheckTrainerCardLevel | Var: Variable | Stores in Variable the current trainer card level | | | 024F | DummyRideBike | \- | Nothing | Seems to allocate the bike music in the RAM but doesn't play it. | | 0250 | | | | | | 0251 | ShowSaveBox | \- | Displays the save data box (current map name, player's name, the amount of badges, the Pokdex counter and the play time) | | | 0252 | HideSaveBox | \- | Hides the save data box | | | 0253 | ScopeMode | u8: Mode | If Mode is 1, activates the scope mode, otherwise the command deactivates the scope mode | The scope mode prevents the game to do certain actions (like reseting system flags) when changing map, and probably it's related with more things. | | 0254 | GetFollowingPokeSize | Var: Variable | Stores 0 in Variable if the current following Pokmon is small and can follow the player indoors, stores 1 if it's big and can't follow the player indoors | In fact it returns the second byte of the following Pokmon data files, stored in a/1/4/1.narc, which is the one that the game reads for allowing Pokmon entering in buildings. This command will work even if a SendBackFollowingPoke is used and the following Pokmon is hidden at that moment. | | 0255 | | \- | ??? | Draws a heart icon above the following Pokmon. Maybe a dummy command? | | 0256 | | u16: ??? | ??? | Parameter must be 1 or 2, otherwise command won't do anything. Seems to trigger a default movement for switching current player's and following Pokmon positions (for example, when using a HM). | | 0257 | FollowingPokePCAnimation | \- | Triggers the animation of sending the current following Pokmon back to its PokBall over the Pokmon Center healing counter | | | 0258 | SendBackFollowingPoke | \- | Triggers the animation of sending the current following Pokmon back to its PokBall and deactivates the following Pokmon until the game is reset or a warp is used | | | 0259 | FollowingPokeFacePlayer | \- | Makes the invoking event look at the player, but with a size limitation | When the following Pokemon has a big size, it won't turn to the player if there is an overworld on the opposite side so it would collide. The checked flag is the second byte of the Parameter 1 field, which could be called "double size overworlds" flag, as it is also used for drawing two grass patches in the tall grass for the following Pokemon. | | 025A | LockFollowingPoke | u16: Operation | Releases the following Pokemon animation if Operation is 0, locks the animation otherwise | Predicted comparing ASM with Lock and Release commands. | | 025B | WaitFollowingPoke | \- | Waits the following Pokemon to end its last movement | Predicted comparing ASM with Lock and Release commands. | | 025C | SetFollowingPokeMovement | u16: Move Code | Changes the following Pokemon default movement to Move Code | The most important movement IDs are 0x30 and 0x38 (following and ghost-following behaviours respectively). | | 025D | SetFollowingPokePosition | u8: Position; u8: Direction | Moves the following Pokmon to one tile Position next to player and facing at Direction | For both parameters, up is 0, down is 1, left is 2 and right is 3. | | 025E | BallResetFollowingPoke | \- | Moves the following Pokmon to the current player's position, and triggers the animation of sending the Pokmon out of its PokBall after the player walks a step | This is commonly used after a different event following the player, so the player sends out the following Pokmon in the next step (instead of forcing it automatically with SendOutFollowingPoke). | | 025F | NoBallResetFollowingPoke | \- | Moves the following Pokmon to the current player's position | Almost same as BallResetFollowingPoke, but without the PokBall animation (exactly like when a small Pokmon spawns after the player uses a warp). | | 0260 | SendOutFollowingPoke | \- | Triggers the animation of sending the first non-fainted Pokmon out of its PokBall and spawns it on the last player position | Seems to be needed for refreshing/forcing its apparition after a Warp on the same map. | | 0261 | | \- | ??? | It's used in a lot of scripts that involve following Pokmon movements, placed at the top of them. Seems that it resets a lot of following Pokmon movement parameters and data. | | 0262 | | | | | | 0263 | Pokeathlon \* | | | | | 0264 | | | | | | 0265 | GetPokegearContactRandomGiftBerry \* | | | | | 0266 | GetPokegearContactGiftItem \* | | | | | 0267 | CameronPhotoScreen \* | | | | | 0268 | | | | | | 0269 | | | | | | 026A | CheckAlbumIfFull \* | | | | | 026B | CheckRocketCostume \* | | | | | 026C | ActivateRocketCostume \* | | | | | 026D | | | | | | 026E | GetOWDirection | u16: Event ID; Var: Variable | Stores in Variable the current direction which Event ID is facing | Up is 0, Down is 1, Left is 2 and Right is 3. | | 026F | ApricornTreeAnimation \* | | | | | 0270 | ApricornTreeGetApricorn \* | | | | | 0271 | GiveApricornFromTree \* | | | | | 0272 | TextApricornName \* | | | | | 0273 | | | | | | 0274 | | | | | | 0275 | | | | | | 0276 | | | | | | 0277 | | | | | | 0278 | CountPartyMonsOfSpecies \* | | | | | 0279 | | | | | | 027A | | | | | | 027B | | | | | | 027C | | | | | | 027D | | | | | | 027E | | | | | | 027F | | | | | | 0280 | | | | | | 0281 | SaveWipeExtraChunks \* | | | | | 0282 | | Var: Variable | ??? | | | 0283 | | | | | | 0284 | | | | | | 0285 | | | | | | 0286 | | | | | | 0287 | GetPartySlotWithSpecies \* | var: Slot; u16 or Flex(???): Pokemon ID | Checks party for the presence of a Pokemon, and returns which slot they are in. | Assume that it checks for the first instance and then stops, so if you have multiple of the same Pokemon, it stops at the first instance and returns which slot it is in (0-5). Used in Silph Co. for Rotom | | 0288 | | | | | | 0289 | OpenScratchCardScreen \* | | | | | 028A | CloseScratchCard \* | | | | | 028B | GetScratchCardPrize \* | | | | | 028C | | | | | | 028D | MoveTutorChooseMove \* | | | | | 028E | TutorMoveTeachInSlot \* | | | | | 028F | TutorMoveGetPrice \* | | | | | 0290 | CheckHeadbuttCompatibility | Flex: Party Slot; Var: Variable | Stores 1 into Variable if the Pokmon at the given Party Slot can learn Headbutt. | Ilex Forest Tutor: Script File 92, Script 3 | | 0291 | IVCheckerJudge \* | | | | | 0292 | BufferStatName \* | | | | | 0293 | SetMonForme \* | | | | | 0294 | TextTrainerName \* | | | | | 0295 | | | | | | 0296 | | | | | | 0297 | | | | | | 0298 | | | | | | 0299 | | | | | | 029A | | | | | | 029B | | | | | | 029C | TextTypeName \* | | | | | 029D | GetItemQuantity \* | | | | | 029E | GetHiddenPowerType \* | | | | | 029F | SetFavoriteMon \* | | | | | 02A0 | GetFavoriteMon \* | | | | | 02A1 | GetOwnedRotomFormes \* | | | | | 02A2 | CountTranformedRotomsInParty \* | | | | | 02A3 | UpdateRotomForme \* | | | | | 02A4 | GetPartyPokemonForm \* | | | | | 02A5 | | | | | | 02A6 | | | | | | 02A7 | | | | | | 02A8 | | | | | | 02A9 | | | | | | 02AA | | | | | | 02AB | | | | | | 02AC | GetCurrentWeather | Var: Variable | Stores the current weather in Variable | | | 02AD | GetPlayerCoordinates \* | | | | | 02AE | | | | | | 02AF | | | | | | 02B0 | CheckFatefulEncounter \* | | | | | 02B1 | CommSanitizeParty \* | | | | | 02B2 | DayCareSanitizeMon \* | | | | | 02B3 | | | | | | 02B4 | TextBattleHallStreak \* | | | | | 02B5 | BattleHallCountUsedSpecies \* | | | | | 02B6 | BattleHallGetTotalStreak \* | | | | | 02B7 | | | | | | 02B8 | | | | | | 02B9 | | | | | | 02BA | FollowingPokemonIsEventTrigger \* | | | | | 02BB | | | | | | 02BC | | | | | | 02BD | PokemonHasItem \* | | | | | 02BE | BattleTowerSetUpMultiBattle \* | | | | | 02BF | SetPlayerVolume \* | | | | | 02C0 | | | | | | 02C1 | | | | | | 02C2 | | | | | | 02C3 | CheckPokemonIsSeen \* | | | | | 02C4 | FloorTrapAnimation | | Triggers Team Rocket HQ trap-floor's graphical effect in the player's current position | | | 02C5 | | | | | | 02C6 | | | | | | 02C7 | TalkFollowingPoke | \- | The following Pokmon triggers a random movement, and then a random following message | This seems to be the command that executes when the player talks to the following Pokmon (at script #163). Files in a/2/2/0.narc link map names to possible texts. The following Pokmon ends up locked, so a Release should be used after this command. | | 02C8 | | | | | | 02C9 | OpenAlphPuzzle \* | u8: Puzzle ID | Loads the stone-panel puzzle of Puzzle ID. | ID 0 = Kabuto, ID 1 = Aerodactyl, ID 2 = Omanyte, ID 3 = Ho-Oh
Appears to check Flag 2423, 2424, 2425, 2426 for the completion of puzzles 0 to 3 respectively. | | 02CA | OpenRuinsofAlphHiddenRoom \* | u8: Room ID | Something to do with the secret room, not the puzzle trapdoor. | ID 0 = Kabuto Room, ID 1 = Aerodactyl Room, ID 2 = Omanyte Room, ID 3 = Ho-Oh Room | | 02CB | UpdateDayCareMonOverworlds \* | | | | | 02CC | | | | | | 02CD | | | | | | 02CE | | | | | | 02CF | | | | | | 02D0 | | | | | | 02D1 | | | | | | 02D2 | | u8: ???; u8: ???; u16: ???; u16: ???; u16: ??? | ??? | | | 02D3 | BoatAnimation | u8: Animation; u8: ???; u16: Header; u16: X coord; u16: Y coord | Plays the S.S. Aqua animation of leaving the port. Animation is either 0 or 1, with 0 being Olivine and 1 being Vermilion. X and Y coordinates are for the destination map | | | 02D4 | | | | | | 02D5 | | | | | | 02D6 | | | | | | 02D7 | | Var: Variable | ??? | | | 02D8 | | u8: ???; u8: ??? | ??? | | | 02D9 | CheckAlivePokemon | Var: Variable | Checks if player has at least 1 not fainted Pokmon, stores the result in Variable | Predicted. | | 02DA | CheckFollowingPoke | Var: Variable | Checks if player has a following Pokmon, stores the result in Variable | Supposed. | | 02DB | | \- | ??? | | | 02DC | | u8: ??? | ??? | | | 02DD | | u8: ???; Var: ??? | ??? | | | 02DE | | | | | | 02DF | CheckKurtApricorn \* | | | If not 0, script continues to check if daily flag is reset, then gives you the apricorns | | 02E0 | ClearKurtApricorn \* | | | | | 02E1 | GiveApricornBalls \* | | | | | 02E2 | CheckApricornCount \* | | | | | 02E3 | KurtApricornMenuScreen \* | | | | | 02E4 | StoreApricornJuice \* | | | | | 02E5 | CheckJuice \* | | | | | 02E6 | | | | | | 02E7 | | | | | | 02E8 | CreatePokeathlonFriendshipRoomStatues \* | | | | | 02E9 | TextPokeathlonCourseName \* | | | | | 02EA | OpenTouchScreen | \- | Changes the low screen design to the green Pokball background | | | 02EB | CloseTouchScreen | \- | Sets the default low screen design | | | 02EC | YesNoTouchScreen | Var: Variable | Opens a Yes-No selection, stores player's answer in Variable | Crashes if OpenTouchScreen is not used previously. | | 02ED | MultiTouchStandardText | u8: ???; u8: ???; u8: ???; u8: ???; Var: Selection | Prepares a multiple selection menu with text bank #191, returns selected slot ID in Selection | | | 02EE | MultiTouchLocalText | u8: ???; u8: ???; u8: ???; u8: ???; Var: Selection | Prepares a multiple selection menu with local texts, returns selected slot ID in Selection | | | 02EF | CreateMultiTouchBox | Flex: Text Slot; Flex: Top Screen Text;
Flex: Multi Box Slot | Adds a box with Multi Box Slot ID showing Text Slot text on the bottom screen and Top Screen Text on the top in a message box. Text depends on whether you use MultiTouchStandardText or MultiTouchLocalText | | | 02F0 | CloseMultiTouch | \- | Closes the multiple selection boxes | | | 02F1 | RockSmashItemCheck \* | Flex: ???; Var: ???; Var: ??? | ??? | | | 02F2 | | Var: ??? | ??? | | | 02F3 | | | | | | 02F4 | | | | | | 02F5 | | | | | | 02F6 | | | | | | 02F7 | | | | | | 02F8 | | | | | | 02F9 | | | | | | 02FA | | | | | | 02FB | | | | | | 02FC | | | | | | 02FD | | | | | | 02FE | | | | | | 02FF | | \- | ??? | | | 0300 | | | | | | 0301 | | | | | | 0302 | | | | | | 0303 | | | | | | 0304 | | | | | | 0305 | RenderCutscene \* | ???: ??? | Renders a cutscene
2 = Arceus stock image cutscene | | | 0306 | | | | | | 0307 | | | | | | 0308 | GiveTogepiEgg \* | | | | | 0309 | | | | | | 030A | GiveSpikyEaredPichu \* | \- | ??? | | | 030B | | | | | | 030C | OpenVoltorbFlip \* | | | | | 030D | KenyaCheckPartyOrMailbox \* | | | | | 030E | MartSell \* | \- | ??? | Related with the mart interface. | | 030F | SetFollowPokeInhibitState \* | | | | | 0310 | ScriptOverlayCmd \* | | | | | 0311 | BugContestAction \* | | | | | 0312 | TextBugContestWinner \* | | | | | 0313 | JudgeBugContest \* | | | | | 0314 | TextBugContestMonNick \* | | | | | 0315 | BugContestGetTimeLeft \* | | | | | 0316 | IsBugContestantRegistered \* | | | | | 0317 | | | | | | 0318 | | | | | | 0319 | TakeMomMoney \* | | | | | 031A | CheckMomMoneyBalance \* | | | | | 031B | ShowMomMoney | Flex: X; Flex: Y | Shows mom savings money box at X and Y coordinates of the screen | | | 031C | HideMomMoney | \- | Hides mom savings money box | | | 031D | | | | | | 031E | TextRulesetName \* | | | | | 031F | | | | | | 0320 | | | | | | 0321 | | | | | | 0322 | | | | | | 0323 | | | | | | 0324 | UpdateTownMap \* | u8(?): Map Type | Updates the town map to include Kanto
1 = Normal, Johto-only view
2 = Whole map, Kanto included | | | 0325 | | | | | | 0326 | | | | | | 0327 | | | | | | 0328 | | | | | | 0329 | | | | | | 032A | CelebiTimeTravelAnimation \* | | | | | 032B | | | | | | 032C | | | | | | 032D | MomGiftCheck \* | | | | | 032E | | | | | | 032F | | | | | | 0330 | UnownCircle \* | | | | | 0331 | | | | | | 0332 | InitMystriStageAnimation \* | | | | | 0333 | | | | | | 0334 | | | | | | 0335 | GetBuenasPassword \* | | | | | 0336 | | | | | | 0337 | | | | | | 0338 | | | | | | 0339 | GetShinyLeafCount \* | | | | | 033A | TryGiveShinyLeafCrown \* | | | | | 033B | CheckPokemonNickname \* | Flex: Party Slot; Var: Variable | Checks to see if the Pokmon at Party Slot position has a nickname. The variable will return 0 if the Pokmon does have a nickname. | Example: Script File 913, Function 35 | | 033C | | | | | | 033D | | Var: ??? | ??? | | | 033E | | | | | | 033F | | | | | | 0340 | | | | | | 0341 | | | | | | 0342 | | Var: Variable | ??? | | | 0343 | | Var: Variable | ??? | | | 0344 | CheckJadeOrbRequirements | Var: Variable | Stores 1 in Variable if player has both Kyogre and Groudon in the Pokmon party and they have been caught in Johto, stores 0 otherwise | | | 0345 | | Var: Variable | ??? | | | 0346 | CheckMoneyFull | u16: Money Account; Var: Variable | Stores 1 in Variable if the chosen money account is full.
Money account 0 = Mom's savings;
Money account 1 = Player; | | | 0347 | SystemSetSleepFlag \* | | | | | 0348 | | | | | | 0349 | | | | | | 034A | | | | | | 034B | TextItemLowercase | u8: String Buffer; Flex: Item | Stores Item's lowercase name in String Buffer | International release exclusive. | | 034C | TextItemPlural | u8: String Buffer; Flex: Item | Stores Item's plural noun in String Buffer | International release exclusive. | | 034D | TextPartyPokemonDefault | u8: String Buffer; Flex: Party position | Stores the name of the Pokmon in Party Position in String Buffer with default color tags encoding | International release exclusive. Names stored at text file 238. | | 034E | | | | International release exclusive. | | 034F | | u8: String Buffer | ??? | International release exclusive. | | 0350 | | u8: String Buffer; Flex: Accesory | ??? | International release exclusive. | | 0351 | TextTrainerClass | u8: String Buffer; Flex: Trainer class | Stores Trainer class' lowercase noun in String Buffer | International release exclusive. | | 0352 | TextSealPlural | u8: String Buffer; Flex: Seal | Stores Seal's plural noun in String Buffer | International release exclusive. Text archive 16. | | 0353 | TextCapitalize | u8: String Buffer | Capitalizes the string currently stored in String Buffer | International release exclusive. | | 0354 | TextFloor | u8: String Buffer; u8: Floor | Stores Floor's name in String Buffer | International release exclusive. Names stored at text file 191, lines 0x74 to 0x7A. | ================================================ FILE: DS_Map/Resources/MovementNamesW.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class MovementNamesW { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal MovementNamesW() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.MovementNamesW", typeof(MovementNamesW).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 00FE. /// internal static string End { get { return ResourceManager.GetString("End", resourceCulture); } } /// /// Looks up a localized string similar to 004B. /// internal static string Exclamation { get { return ResourceManager.GetString("Exclamation", resourceCulture); } } /// /// Looks up a localized string similar to 0031. /// internal static string JumpDown { get { return ResourceManager.GetString("JumpDown", resourceCulture); } } /// /// Looks up a localized string similar to 0035. /// internal static string JumpDown1 { get { return ResourceManager.GetString("JumpDown1", resourceCulture); } } /// /// Looks up a localized string similar to 0039. /// internal static string JumpDown2 { get { return ResourceManager.GetString("JumpDown2", resourceCulture); } } /// /// Looks up a localized string similar to 002D. /// internal static string JumpDownSlow { get { return ResourceManager.GetString("JumpDownSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0032. /// internal static string JumpLeft { get { return ResourceManager.GetString("JumpLeft", resourceCulture); } } /// /// Looks up a localized string similar to 0036. /// internal static string JumpLeft1 { get { return ResourceManager.GetString("JumpLeft1", resourceCulture); } } /// /// Looks up a localized string similar to 003A. /// internal static string JumpLeft2 { get { return ResourceManager.GetString("JumpLeft2", resourceCulture); } } /// /// Looks up a localized string similar to 002E. /// internal static string JumpLeftSlow { get { return ResourceManager.GetString("JumpLeftSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0033. /// internal static string JumpRight { get { return ResourceManager.GetString("JumpRight", resourceCulture); } } /// /// Looks up a localized string similar to 0037. /// internal static string JumpRight1 { get { return ResourceManager.GetString("JumpRight1", resourceCulture); } } /// /// Looks up a localized string similar to 003B. /// internal static string JumpRight2 { get { return ResourceManager.GetString("JumpRight2", resourceCulture); } } /// /// Looks up a localized string similar to 002F. /// internal static string JumpRightSlow { get { return ResourceManager.GetString("JumpRightSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0030. /// internal static string JumpUp { get { return ResourceManager.GetString("JumpUp", resourceCulture); } } /// /// Looks up a localized string similar to 0034. /// internal static string JumpUp1 { get { return ResourceManager.GetString("JumpUp1", resourceCulture); } } /// /// Looks up a localized string similar to 0038. /// internal static string JumpUp2 { get { return ResourceManager.GetString("JumpUp2", resourceCulture); } } /// /// Looks up a localized string similar to 002C. /// internal static string JumpUpSlow { get { return ResourceManager.GetString("JumpUpSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0015. /// internal static string RunDown { get { return ResourceManager.GetString("RunDown", resourceCulture); } } /// /// Looks up a localized string similar to 0029. /// internal static string RunDownSite { get { return ResourceManager.GetString("RunDownSite", resourceCulture); } } /// /// Looks up a localized string similar to 0016. /// internal static string RunLeft { get { return ResourceManager.GetString("RunLeft", resourceCulture); } } /// /// Looks up a localized string similar to 002A. /// internal static string RunLeftSite { get { return ResourceManager.GetString("RunLeftSite", resourceCulture); } } /// /// Looks up a localized string similar to 0017. /// internal static string RunRight { get { return ResourceManager.GetString("RunRight", resourceCulture); } } /// /// Looks up a localized string similar to 002B. /// internal static string RunRightSite { get { return ResourceManager.GetString("RunRightSite", resourceCulture); } } /// /// Looks up a localized string similar to 0014. /// internal static string RunUp { get { return ResourceManager.GetString("RunUp", resourceCulture); } } /// /// Looks up a localized string similar to 0028. /// internal static string RunUpSite { get { return ResourceManager.GetString("RunUpSite", resourceCulture); } } /// /// Looks up a localized string similar to 0001. /// internal static string SeeDown { get { return ResourceManager.GetString("SeeDown", resourceCulture); } } /// /// Looks up a localized string similar to 0002. /// internal static string SeeLeft { get { return ResourceManager.GetString("SeeLeft", resourceCulture); } } /// /// Looks up a localized string similar to 0003. /// internal static string SeeRight { get { return ResourceManager.GetString("SeeRight", resourceCulture); } } /// /// Looks up a localized string similar to 0000. /// internal static string SeeUp { get { return ResourceManager.GetString("SeeUp", resourceCulture); } } /// /// Looks up a localized string similar to 0045. /// internal static string WaitDisappear { get { return ResourceManager.GetString("WaitDisappear", resourceCulture); } } /// /// Looks up a localized string similar to 0067. /// internal static string WaitDoubleExclamation { get { return ResourceManager.GetString("WaitDoubleExclamation", resourceCulture); } } /// /// Looks up a localized string similar to 005C. /// internal static string WaitJumpLeft1 { get { return ResourceManager.GetString("WaitJumpLeft1", resourceCulture); } } /// /// Looks up a localized string similar to 005E. /// internal static string WaitJumpLeft2 { get { return ResourceManager.GetString("WaitJumpLeft2", resourceCulture); } } /// /// Looks up a localized string similar to 005D. /// internal static string WaitJumpRight1 { get { return ResourceManager.GetString("WaitJumpRight1", resourceCulture); } } /// /// Looks up a localized string similar to 005F. /// internal static string WaitJumpRight2 { get { return ResourceManager.GetString("WaitJumpRight2", resourceCulture); } } /// /// Looks up a localized string similar to 0065. /// internal static string WaitJumpSite { get { return ResourceManager.GetString("WaitJumpSite", resourceCulture); } } /// /// Looks up a localized string similar to 0055. /// internal static string WaitMoveDown { get { return ResourceManager.GetString("WaitMoveDown", resourceCulture); } } /// /// Looks up a localized string similar to 0068. /// internal static string WaitMoveForever { get { return ResourceManager.GetString("WaitMoveForever", resourceCulture); } } /// /// Looks up a localized string similar to 0056. /// internal static string WaitMoveLeft { get { return ResourceManager.GetString("WaitMoveLeft", resourceCulture); } } /// /// Looks up a localized string similar to 0057. /// internal static string WaitMoveRight { get { return ResourceManager.GetString("WaitMoveRight", resourceCulture); } } /// /// Looks up a localized string similar to 0064. /// internal static string WaitMoveSite { get { return ResourceManager.GetString("WaitMoveSite", resourceCulture); } } /// /// Looks up a localized string similar to 0054. /// internal static string WaitMoveUp { get { return ResourceManager.GetString("WaitMoveUp", resourceCulture); } } /// /// Looks up a localized string similar to 0059. /// internal static string WaitWalkBackDown { get { return ResourceManager.GetString("WaitWalkBackDown", resourceCulture); } } /// /// Looks up a localized string similar to 005A. /// internal static string WaitWalkBackLeft { get { return ResourceManager.GetString("WaitWalkBackLeft", resourceCulture); } } /// /// Looks up a localized string similar to 005B. /// internal static string WaitWalkBackRight { get { return ResourceManager.GetString("WaitWalkBackRight", resourceCulture); } } /// /// Looks up a localized string similar to 0058. /// internal static string WaitWalkBackUp { get { return ResourceManager.GetString("WaitWalkBackUp", resourceCulture); } } /// /// Looks up a localized string similar to 0051. /// internal static string WaitWalkDown { get { return ResourceManager.GetString("WaitWalkDown", resourceCulture); } } /// /// Looks up a localized string similar to 004D. /// internal static string WaitWalkDownSlow { get { return ResourceManager.GetString("WaitWalkDownSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0052. /// internal static string WaitWalkLeft { get { return ResourceManager.GetString("WaitWalkLeft", resourceCulture); } } /// /// Looks up a localized string similar to 004E. /// internal static string WaitWalkLeftSlow { get { return ResourceManager.GetString("WaitWalkLeftSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0053. /// internal static string WaitWalkRight { get { return ResourceManager.GetString("WaitWalkRight", resourceCulture); } } /// /// Looks up a localized string similar to 004F. /// internal static string WaitWalkRightSlow { get { return ResourceManager.GetString("WaitWalkRightSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0050. /// internal static string WaitWalkUp { get { return ResourceManager.GetString("WaitWalkUp", resourceCulture); } } /// /// Looks up a localized string similar to 004C. /// internal static string WaitWalkUpSlow { get { return ResourceManager.GetString("WaitWalkUpSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0009. /// internal static string WalkDown { get { return ResourceManager.GetString("WalkDown", resourceCulture); } } /// /// Looks up a localized string similar to 000D. /// internal static string WalkDownFast { get { return ResourceManager.GetString("WalkDownFast", resourceCulture); } } /// /// Looks up a localized string similar to 0021. /// internal static string WalkDownFastSite { get { return ResourceManager.GetString("WalkDownFastSite", resourceCulture); } } /// /// Looks up a localized string similar to 001D. /// internal static string WalkDownSite { get { return ResourceManager.GetString("WalkDownSite", resourceCulture); } } /// /// Looks up a localized string similar to 0005. /// internal static string WalkDownSlow { get { return ResourceManager.GetString("WalkDownSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0019. /// internal static string WalkDownSlowSite { get { return ResourceManager.GetString("WalkDownSlowSite", resourceCulture); } } /// /// Looks up a localized string similar to 0011. /// internal static string WalkDownVeryFast { get { return ResourceManager.GetString("WalkDownVeryFast", resourceCulture); } } /// /// Looks up a localized string similar to 0025. /// internal static string WalkDownVeryFastSite { get { return ResourceManager.GetString("WalkDownVeryFastSite", resourceCulture); } } /// /// Looks up a localized string similar to 000A. /// internal static string WalkLeft { get { return ResourceManager.GetString("WalkLeft", resourceCulture); } } /// /// Looks up a localized string similar to 000E. /// internal static string WalkLeftFast { get { return ResourceManager.GetString("WalkLeftFast", resourceCulture); } } /// /// Looks up a localized string similar to 0022. /// internal static string WalkLeftFastSite { get { return ResourceManager.GetString("WalkLeftFastSite", resourceCulture); } } /// /// Looks up a localized string similar to 001E. /// internal static string WalkLeftSite { get { return ResourceManager.GetString("WalkLeftSite", resourceCulture); } } /// /// Looks up a localized string similar to 0006. /// internal static string WalkLeftSlow { get { return ResourceManager.GetString("WalkLeftSlow", resourceCulture); } } /// /// Looks up a localized string similar to 001A. /// internal static string WalkLeftSlowSite { get { return ResourceManager.GetString("WalkLeftSlowSite", resourceCulture); } } /// /// Looks up a localized string similar to 0012. /// internal static string WalkLeftVeryFast { get { return ResourceManager.GetString("WalkLeftVeryFast", resourceCulture); } } /// /// Looks up a localized string similar to 0026. /// internal static string WalkLeftVeryFastSite { get { return ResourceManager.GetString("WalkLeftVeryFastSite", resourceCulture); } } /// /// Looks up a localized string similar to 000B. /// internal static string WalkRight { get { return ResourceManager.GetString("WalkRight", resourceCulture); } } /// /// Looks up a localized string similar to 000F. /// internal static string WalkRightFast { get { return ResourceManager.GetString("WalkRightFast", resourceCulture); } } /// /// Looks up a localized string similar to 0023. /// internal static string WalkRightFastSite { get { return ResourceManager.GetString("WalkRightFastSite", resourceCulture); } } /// /// Looks up a localized string similar to 001F. /// internal static string WalkRightSite { get { return ResourceManager.GetString("WalkRightSite", resourceCulture); } } /// /// Looks up a localized string similar to 0007. /// internal static string WalkRightSlow { get { return ResourceManager.GetString("WalkRightSlow", resourceCulture); } } /// /// Looks up a localized string similar to 001B. /// internal static string WalkRightSlowSite { get { return ResourceManager.GetString("WalkRightSlowSite", resourceCulture); } } /// /// Looks up a localized string similar to 0013. /// internal static string WalkRightVeryFast { get { return ResourceManager.GetString("WalkRightVeryFast", resourceCulture); } } /// /// Looks up a localized string similar to 0027. /// internal static string WalkRightVeryFastSite { get { return ResourceManager.GetString("WalkRightVeryFastSite", resourceCulture); } } /// /// Looks up a localized string similar to 0008. /// internal static string WalkUp { get { return ResourceManager.GetString("WalkUp", resourceCulture); } } /// /// Looks up a localized string similar to 000C. /// internal static string WalkUpFast { get { return ResourceManager.GetString("WalkUpFast", resourceCulture); } } /// /// Looks up a localized string similar to 0020. /// internal static string WalkUpFastSite { get { return ResourceManager.GetString("WalkUpFastSite", resourceCulture); } } /// /// Looks up a localized string similar to 001C. /// internal static string WalkUpSite { get { return ResourceManager.GetString("WalkUpSite", resourceCulture); } } /// /// Looks up a localized string similar to 0004. /// internal static string WalkUpSlow { get { return ResourceManager.GetString("WalkUpSlow", resourceCulture); } } /// /// Looks up a localized string similar to 0018. /// internal static string WalkUpSlowSite { get { return ResourceManager.GetString("WalkUpSlowSite", resourceCulture); } } /// /// Looks up a localized string similar to 0010. /// internal static string WalkUpVeryFast { get { return ResourceManager.GetString("WalkUpVeryFast", resourceCulture); } } /// /// Looks up a localized string similar to 0024. /// internal static string WalkUpVeryFastSite { get { return ResourceManager.GetString("WalkUpVeryFastSite", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/MovementNamesW.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 00FE 004B 0031 0035 0039 002D 0032 0036 003A 002E 0033 0037 003B 002F 0030 0034 0038 002C 0015 0029 0016 002A 0017 002B 0014 0028 0001 0002 0003 0000 0045 0067 005C 005E 005D 005F 0065 0055 0068 0056 0057 0064 0054 0059 005A 005B 0058 0051 004D 0052 004E 0053 004F 0050 004C 0009 000D 0021 001D 0005 0019 0011 0025 000A 000E 0022 001E 0006 001A 0012 0026 000B 000F 0023 001F 0007 001B 0013 0027 0008 000C 0020 001C 0004 0018 0010 0024 ================================================ FILE: DS_Map/Resources/PokeDatabase.cs ================================================ using DSPRE.ROMFiles; using System.Collections.Generic; using System.Drawing; using static DSPRE.RomInfo; namespace DSPRE.Resources { public static class PokeDatabase { public static class Area { public static string[] PtAreaIconValues = new string[] { "[00] City", "[01] City", "[02] Town 1", "[03] Town 2", "[04] Cave", "[05] Forest", "[06] Water", "[07] Field", "[08] Island", "[09] Wood" }; public static Dictionary HGSSAreaIconsDict = new Dictionary() { [00] = "Not displayed", [01] = "Wall", [02] = "Wood", [03] = "Town", [04] = "Cave", [05] = "Forest", [06] = "Water", [07] = "Field", [08] = "Lake", [09] = "Gray" }; } public static class HeaderTypes { public static string[] DPHeaderTypes = new string[] { "[00] Show Nametag", "[01] Show Nametag", "[02] Show Nametag", "[03] Show Nametag", "[04] No Nametag" }; public static string[] PtHGSSHeaderTypes = new string[] { "[00] Unknown", "[01] Town/City", "[02] Route", "[03] Cave", "[04] Interior", "[05] Unused", "[06] Underground", }; } public static class Weather { public static Dictionary DPWeatherDict = new Dictionary { [00] = "Normal", [01] = "Normal, somewhat dark", [02] = "Rain", [03] = "Heavy rain", [04] = "Thunderstorm", [05] = "Snowfall, slow", [06] = "Diamond dust", [07] = "Blizzard", [08] = "Normal [08]", [09] = "Volcanic ash fall, slow", [10] = "Sand storm", [11] = "Hail", [12] = "Rocks ascending (?)", [13] = "Normal [13]", [14] = "Fog", [15] = "Deep fog", [16] = "Dark, Flash usable", [17] = "Lightning, no rain", [18] = "Normal [18]", [19] = "Normal [19]", [20] = "Normal [20]", [21] = "Diamond dust [21]", [22] = "Volcanic ash storm", [23] = "Normal [23]", [24] = "Thunderstorm [24]", [25] = "Normal [25]", [26] = "Diamond dust [26]", [27] = "Diamond dust [27]", [28] = "Snowfall, slow [28]", }; public static Dictionary PtWeatherDict = new Dictionary { [00] = "Normal", [01] = "Normal, somewhat dark", [02] = "Rain", [03] = "Heavy rain", [04] = "Thunderstorm", [05] = "Snowfall, slow", [06] = "Diamond dust", [07] = "Blizzard", [08] = "Normal [08]", [09] = "Volcanic ash fall, slow", [10] = "Sand storm", [11] = "Hail", [12] = "Rocks ascending (?)", [13] = "Normal [13]", [14] = "Fog", [15] = "Deep fog", [16] = "Dark, Flash usable", [17] = "Lightning, no rain", [18] = "Light fog", [19] = "Heavy fog", [20] = "Normal [20]", [21] = "Diamond dust [21]", [22] = "Volcanic ash fall, steady", [23] = "Eterna forest weather", [24] = "Player spotlight [24]", [25] = "Player spotlight [25]", [26] = "Dark fog", [27] = "Somewhat green", [28] = "Somewhat red", [29] = "Somewhat blue", [30] = "Dim light", [31] = "Normal [31]", [32] = "Rain [32]", [33] = "Normal [33]", [34] = "Diamond dust [34]", [35] = "Diamond dust [35]", [36] = "Snowfall, slow [36]", }; public static Dictionary HGSSWeatherDict = new Dictionary { [00] = "Normal", [01] = "Rain", [02] = "Rain [2]", [03] = "Rain [3]", [04] = "Rain [4]", [05] = "Snow [5]", [06] = "Snow [6]", [07] = "Sandstorm (in battle only)", [08] = "Diamond Dust", [09] = "Fog", [10] = "Fog [10]", [11] = "Darkness", [12] = "Darkness after flash", [13] = "Low Light (Battle Arcade)" }; } public static class CameraAngles { public static Dictionary DPPtCameraDict = new Dictionary() { [00] = "3D Normal", [01] = "3D Top Higher", [02] = "3D Front Low - Wide FOV", [03] = "3D Front", [04] = "2D Ortho", [05] = "3D Normal - Wide FOV", [06] = "3D Bird View", [07] = "3D Normal [07]", [08] = "3D Bird View Far", [09] = "3D Front - Wide FOV", [10] = "3D Top - Narrow", [11] = "3D Normal [11]", [12] = "3D Top", [13] = "Front 3D", [14] = "3D Top - Wide FOV", [15] = "3D Front Low" }; public static Dictionary HGSSCameraDict = new Dictionary() { [00] = "3D Top View [00]", [01] = "3D Front High", [02] = "3D Lower", [03] = "3D Front", [04] = "2D Top View", [05] = "Normal 3D", [06] = "Normal 3D [06]", [07] = "High 3D", [08] = "3D Top View [08]", [09] = "3D Top View [09]", [10] = "3D High Wide", [11] = "3D Front Wide", [12] = "3D Lower Close", [13] = "3D Full Front", [14] = "3D Top View [14]", [15] = "2D Higher", [16] = "3D Top View [16]" }; } public abstract class MusicDB { public static Dictionary DPMusicDict = new Dictionary() { //Perfectly contained in Platinum's, as it seems (?) [1000] = "Mystery Zone", [1001] = "Silence", [1002] = "Silence (Dungeon)", [1004] = "Twinleaf Town (Day)", [1005] = "Sandgem Town (Day)", [1006] = "Floaroma Town (Day)", [1007] = "Solaceon Town (Day)", [1008] = "Route 225 (Day)", [1009] = "Valor Lakefront (Day)", [1010] = "Jubilife City (Day)", [1011] = "Canalave City (Day)", [1012] = "Oreburgh City (Day)", [1013] = "Eterna City (Day)", [1014] = "Hearthome City (Day)", [1015] = "Pastoria City (Day)", [1016] = "Veilstone City (Day)", [1017] = "Sunyshore City (Day)", [1018] = "Snowpoint City (Day)", [1019] = "Pokémon League (Day)", [1020] = "Fight Area (Day)", [1021] = "Route 201 (Day)", [1022] = "Route 203 (Day)", [1023] = "Route 205 (Day)", [1024] = "Route 206 (Day)", [1025] = "Route 209 (Day)", [1026] = "Route 215 (Day)", [1027] = "Route 216 (Day)", [1028] = "Route 228 (Day)", [1029] = "Rowan Opening Theme", [1030] = "Twinleaf Town (Night)", [1031] = "Eterna City (Day - Variation)", [1032] = "Route 205 (Day - Variation)", [1033] = "Twinleaf Town (Night)", [1034] = "Sandgem Town (Night)", [1035] = "Floaroma Town (Night)", [1036] = "Pastoria City (Night)", [1037] = "Route 225 (Night)", [1038] = "Valor Lakefront (Night)", [1039] = "Jubilife City (Night)", [1040] = "Canalave City (Night)", [1041] = "Oreburgh City (Night)", [1042] = "Eterna City (Night)", [1043] = "Hearthome CIty (Night)", [1044] = "Pastoria City (Night)", [1045] = "Veilstone City (Night)", [1046] = "Sunyshore City (Night)", [1047] = "Snowpoint City (Night)", [1048] = "Pokémon League (Night)", [1049] = "Fight Area (Night)", [1050] = "Route 201 (Night)", [1051] = "Route 203 (Night)", [1052] = "Route 205 (Night)", [1053] = "Route 206 (Night)", [1054] = "Route 209 (Night)", [1055] = "Route 215 (Night)", [1056] = "Route 216 (Night)", [1057] = "Route 228 (Night)", [1058] = "Eterna City (Night - Variation)", [1059] = "Route 205 (Night - Variation)", [1060] = "The Underground", [1061] = "Captured a Flag!", [1062] = "Victory Road", [1063] = "Eterna Forest", [1064] = "Old Chateau", [1065] = "Cavern on the Lake", [1066] = "Amity Square", [1067] = "Team Galactic HQ", [1068] = "Galactic Eterna Building", [1069] = "Great Marsh", [1070] = "Lake theme (Day)", [1071] = "Mt. Coronet", [1072] = "Spear Pillar", [1073] = "Stark Mountain (in)", [1074] = "Cave 1", [1075] = "Cave 2", [1076] = "Elite 4 - Showdown", [1077] = "Hall of Fame", [1078] = "Victory Road [Unused 1]", [1080] = "Victory Road [Unused 2]", [1081] = "Pokémon Center (Day)", [1073] = "Stark Mountain (in) [Unused]", [1084] = "Hall of Fame [Unused]", [1085] = "Pokémon Center (Day)", [1086] = "Pokémon Center (Night)", [1087] = "Gym theme", [1088] = "Rowan's Lab", [1089] = "Poffin House", [1090] = "Pokémon Mart", [1091] = "Game Corner", [1092] = "Battle Tower (inside)", [1093] = "Jubilife TV", [1094] = "Team Galactic Lab", [1096] = "Hall of Origin", [1097] = "GTS theme" }; public static Dictionary PtMusicDict = new Dictionary() { [1000] = "Mystery Zone", [1001] = "Silence", [1002] = "Silence (Dungeon)", [1004] = "Twinleaf Town (Day)", [1005] = "Sandgem Town (Day)", [1006] = "Floaroma Town (Day)", [1007] = "Solaceon Town (Day)", [1008] = "Route 225 (Day)", [1009] = "Valor Lakefront (Day)", [1010] = "Jubilife City (Day)", [1011] = "Canalave City (Day)", [1012] = "Oreburgh City (Day)", [1013] = "Eterna City (Day)", [1014] = "Hearthome City (Day)", [1015] = "Pastoria City (Day)", [1016] = "Veilstone City (Day)", [1017] = "Sunyshore City (Day)", [1018] = "Snowpoint City (Day)", [1019] = "Pokémon League (Day)", [1020] = "Fight Area (Day)", [1021] = "Route 201 (Day)", [1022] = "Route 203 (Day)", [1023] = "Route 205 (Day)", [1024] = "Route 206 (Day)", [1025] = "Route 209 (Day)", [1026] = "Route 215 (Day)", [1027] = "Route 216 (Day)", [1028] = "Route 228 (Day)", [1029] = "Rowan Opening Theme", [1030] = "Twinleaf Town (Night)", [1031] = "Eterna City (Day - Variation)", [1032] = "Route 205 (Day - Variation)", [1033] = "Twinleaf Town (Night)", [1034] = "Sandgem Town (Night)", [1035] = "Floaroma Town (Night)", [1036] = "Pastoria City (Night)", [1037] = "Route 225 (Night)", [1038] = "Valor Lakefront (Night)", [1039] = "Jubilife City (Night)", [1040] = "Canalave City (Night)", [1041] = "Oreburgh City (Night)", [1042] = "Eterna City (Night)", [1043] = "Hearthome CIty (Night)", [1044] = "Pastoria City (Night)", [1045] = "Veilstone City (Night)", [1046] = "Sunyshore City (Night)", [1047] = "Snowpoint City (Night)", [1048] = "Pokémon League (Night)", [1049] = "Fight Area (Night)", [1050] = "Route 201 (Night)", [1051] = "Route 203 (Night)", [1052] = "Route 205 (Night)", [1053] = "Route 206 (Night)", [1054] = "Route 209 (Night)", [1055] = "Route 215 (Night)", [1056] = "Route 216 (Night)", [1057] = "Route 228 (Night)", [1058] = "Eterna City (Night - Variation)", [1059] = "Route 205 (Night - Variation)", [1060] = "The Underground", [1061] = "Captured a Flag!", [1062] = "Victory Road", [1063] = "Eterna Forest", [1064] = "Old Chateau", [1065] = "Cavern on the Lake", [1066] = "Amity Square", [1067] = "Team Galactic HQ", [1068] = "Galactic Eterna Building", [1069] = "Great Marsh", [1070] = "Lake theme (Day)", [1071] = "Mt. Coronet", [1072] = "Spear Pillar", [1073] = "Stark Mountain (in)", [1074] = "Cave 1", [1075] = "Cave 2", [1076] = "Elite 4 - Showdown", [1077] = "Hall of Fame", [1078] = "Victory Road [Unused 1]", [1080] = "Victory Road [Unused 2]", [1081] = "Pokémon Center (Day)", [1073] = "Stark Mountain (in) [Unused]", [1084] = "Hall of Fame [Unused]", [1085] = "Pokémon Center (Day)", [1086] = "Pokémon Center (Night)", [1087] = "Gym theme", [1088] = "Rowan's Lab", [1089] = "Poffin House", [1090] = "Pokémon Mart", [1091] = "Game Corner", [1092] = "Battle Tower (inside)", [1093] = "Jubilife TV", [1094] = "Team Galactic Lab", [1096] = "Hall of Origin", [1097] = "GTS theme", [1190] = "Distortion World", [1191] = "Battle Arcade", [1192] = "Battle Hall", [1193] = "Battle Castle", [1194] = "Battle Castle [Unused]", [1195] = "Battle Factory", [1196] = "Global Terminal", [1198] = "Lilycove City (Bossa Nova)", [1212] = "Wi-Fi Plaza", [1213] = "Wi-Fi Plaza: Parade", [1218] = "Twinleaf Town (Music Box)", }; public static Dictionary HGSSMusicDict = new Dictionary() { [1000] = "Mystery Zone", [1001] = "Silence [Outside]", [1002] = "Silence [Dungeon]", [1004] = "Opening Theme", [1008] = "Title Screen Theme", [1013] = "Bicycle Theme", [1018] = "New Bark Town", [1019] = "Cherrygrove City", [1020] = "Violet City", [1021] = "Azalea Town", [1022] = "Goldenrod City", [1023] = "Ecruteak City", [1024] = "Olivine City", [1025] = "Cianwood City", [1026] = "Mahogany Town", [1027] = "Blackthorn City", [1028] = "Route 29", [1029] = "Route 30/31", [1030] = "Route 32", [1031] = "Route 33", [1032] = "Route 34", [1033] = "Route 35/36/37", [1034] = "Route 40/41", [1035] = "Route 45/46", [1036] = "Route 38/39", [1037] = "Route 42/43/44", [1038] = "Vermillion City", [1039] = "Saffron City", [1040] = "Cerulean City", [1041] = "Lavender Town", [1042] = "Celadon City", [1043] = "Fuchsia City", [1044] = "Pewter City", [1045] = "Viridian City", [1046] = "Pallet Town", [1047] = "Cinnabar Island", [1050] = "Route 1", [1051] = "Route 2/22", [1052] = "Route 6", [1053] = "Route 4/5/9/10", [1054] = "Route 8/10", [1055] = "Route 7/16", [1056] = "Route 18/19/20", [1057] = "Route 3", [1058] = "Route 20/21", [1059] = "Route 11", [1060] = "Route 12/13/14/15", [1061] = "Route 24/25", [1062] = "Route 26/27", [1063] = "Pokémon Center", [1064] = "Pokémon Mart", [1065] = "Gym theme", [1066] = "Prof. Elm Lab", [1068] = "Kimono Girls Theater", [1069] = "Game Corner", [1070] = "Battle Frontier", [1071] = "Battle Tower", [1072] = "Sprout Tower", [1073] = "Ilex Forest", [1074] = "Ruins of Alph", [1075] = "National Park", [1076] = "Burned Tower", [1077] = "Bell Tower", [1078] = "Lighthouse", [1079] = "Team Rocket HQ", [1080] = "Ice Path", [1081] = "Dragon's Den", [1082] = "Diglett's Cave", [1083] = "Viridian Forest", [1084] = "Victory Road", [1085] = "Indigo Plateau", [1092] = "PokéAthlon Game", [1096] = "S.S. Aqua", [1097] = "Mt. Moon Plaza", [1099] = "Sleeping Radio Music", [1100] = "Pokemon March Radio", [1101] = "Unown Radio", [1102] = "Pokeflute Radio", [1103] = "Prof. Oak's Theme/Radio", [1134] = "Pokéathlon Dome (In)", [1141] = "Pokéathlon Dome (Out)", [1143] = "Battle Factory", [1144] = "Battle Hall", [1145] = "Battle Arcade", [1146] = "Battle Castle", [1151] = "Wi-Fi Union Room", [1153] = "WiFi Plaza Parade", [1154] = "GTS Terminal", [1155] = "Spin Trade Theme", [1157] = "Route 47/48", [1158] = "Safari Zone Gate", [1159] = "Pal Park", [1160] = "Ethan's Theme", [1161] = "Lyra's Theme", [1163] = "Kimono Girls Ritual", [1164] = "Kimono Girls Theme", [1165] = "Battle! Ho-Oh!", [1166] = "Battle! Lugia", [1166] = "Spiky-Eared Pichu", [1168] = "Sinjoh Ruins", [1169] = "Route 101 Radio", [1170] = "Route 201 Radio", [1171] = "Gym Theme [Radio]", [1172] = "Azalea Town [Radio]", [1172] = "Goldenrod City [Radio]", [1173] = "Battle! Kyogre/Groudon", [1175] = "PokéWalker Theme", [1176] = "Battle! Arceus (Event)", [1216] = "Route 17" }; } public static class EventEditor { public static class Spawnables { public static string[] orientationsArray = new string[] { "Front Interaction", "Activated from the left", "Activated from the right", "Activated from behind", "Activated from any dir", "Activated from the sides", "Front/Back Interaction", }; public static string[] typesArray = new string[] { "Misc", "Board (Front Auto-Trigger)", "Hidden Item", }; } public static class Overworlds { public static string[] movementsArray = new string[] { "[00] None", "[01] None", "[02] Looking in all directions", "[03] Walking around in all directions", "[04] Walking Up, Down", "[05] Walking Left, Right", "[06] Looking Up, Left", "[07] Looking Up, Right", "[08] Looking Down, Left", "[09] Looking Down, Right", "[10] Looking Up, Down, Left", "[11] Looking Up, Right, Down", "[12] Looking Right, Left, Up", "[13] Looking Right, Left, Down", "[14] Facing Up", "[15] Facing Down", "[16] Facing Left", "[17] Facing Right", "[18] Counterclockwise spinning", "[19] Clockwise spinning", "[20] Running Up, Down", "[21] L Run (Up, Right)", "[22] Patrols, then stops (might crash)", "[23] Patrols, then stops (might crash)", "[24] L Run (Up, Right)", "[25] Patrols, then stops (might crash)", "[26] Patrols, then stops (might crash)", "[27] Patrols, then stops", "[28] L run (Right, Down)", "[29] L run (Left, Up)", "[30] Continuous patrolling (might crash)", "[31] Continuous patrolling (might crash)", "[32] L Run (Down, Right)", "[33] L Run (Right, Up)", "[34] Patrols Area, then stops", "[35] Patrols Area, then stops", "[36] L Run (Down, Left)", "[37] Running Up, Left, Down, Right", "[38] Running Down, Right, Up, Left", "[39] Running Left, Down, Right, Up", "[40] Running Right, Up, Left, Down", "[41] Running Up, Right, Down, Left", "[42] Running Down, Left, Up, Right", "[43] Running Left, Up, Right, Down", "[44] Running Right, Down, Left, Up", "[45] Looking Up, Down", "[46] Looking Right, Left", "[47] Crashes game (?)", "[48] Follow Hero", "[49] Semi-circle spin (Down, Right, Up)", "[50] Looking down", "[51] Hidden Under Snow", "[52] Hidden Under Snow", "[53] Hidden Underground", "[54] Hidden Under Grass", "[55] Follow Hero", "[56] Disappears", "[57] Looking Left", "[58] Looking Right", "[59] Mimick's Player facing direction", "[60] Mimick's Player facing direction", "[61] Mimick's Player facing direction", "[62] Mimick's Player facing direction", "[63] Apparently nothing (?)", "[64] Apparently nothing (?)", "[65] Apparently nothing (?)", "[66] Apparently nothing (?)", "[67] Walking Right, Left", "[68] Looking Right", "[69] Apparently nothing (?)", "[70] Apparently nothing (?)", "[71] Looking Left" }; } } public static class System { public static Dictionary versionsDict = new Dictionary() { ["ADAE"] = GameVersions.Diamond, ["ADAS"] = GameVersions.Diamond, ["ADAI"] = GameVersions.Diamond, ["ADAF"] = GameVersions.Diamond, ["ADAD"] = GameVersions.Diamond, ["ADAJ"] = GameVersions.Diamond, ["APAE"] = GameVersions.Pearl, ["APAS"] = GameVersions.Pearl, ["APAI"] = GameVersions.Pearl, ["APAF"] = GameVersions.Pearl, ["APAD"] = GameVersions.Pearl, ["APAJ"] = GameVersions.Pearl, ["CPUE"] = GameVersions.Platinum, ["CPUS"] = GameVersions.Platinum, ["CPUI"] = GameVersions.Platinum, ["CPUF"] = GameVersions.Platinum, ["CPUD"] = GameVersions.Platinum, ["CPUJ"] = GameVersions.Platinum, ["CPUP"] = GameVersions.Platinum, ["IPKE"] = GameVersions.HeartGold, ["IPKS"] = GameVersions.HeartGold, ["IPKI"] = GameVersions.HeartGold, ["IPKF"] = GameVersions.HeartGold, ["IPKD"] = GameVersions.HeartGold, ["IPKJ"] = GameVersions.HeartGold, ["IPGE"] = GameVersions.SoulSilver, ["IPGS"] = GameVersions.SoulSilver, ["IPGI"] = GameVersions.SoulSilver, ["IPGF"] = GameVersions.SoulSilver, ["IPGD"] = GameVersions.SoulSilver, ["IPGJ"] = GameVersions.SoulSilver }; public static Dictionary MapCollisionPainters = new Dictionary() { [0x00] = "[00] Walkable", [0x01] = "[01] Snow", [0x02] = "[02] Leaves", [0x04] = "[04] Grass", [0x06] = "[06] Stairs & Ice", [0x07] = "[07] Metal", [0x0A] = "[0A] Cavern floor", [0x0D] = "[0D] Wood", [0x80] = "[80] Blocked" }; public static Dictionary MapCollisionTypePainters = new Dictionary() { [0x00] = "[00] None", [0x02] = "[02] Tall Grass (Wild)", [0x03] = "[03] Very Tall Grass (Wild)", [0x06] = "[06] Tree Headbutt (HGSS)", [0x08] = "[08] Cave Floor", [0x0B] = "[0B] Old Château floor", [0x0C] = "[0C] Ground Mountain", [0x10] = "[10] River Water (Wild)", [0x11] = "[11] Whirlpool (HGSS)", [0x13] = "[13] Waterfall", [0x15] = "[15] Sea Water (Wild)", [0x16] = "[16] Puddle", [0x17] = "[17] Shallow Walkable water", [0x1D] = "[1D] Puddle (No Splashing)", [0x20] = "[20] Ice", [0x21] = "[21] Sand", [0x22] = "[22] Cave Underwater", [0x24] = "[24] Safari Zone Border", [0x2C] = "[2C] Magma", [0x2D] = "[2D] Reflection", [0x30] = "[30] Block Right", [0x31] = "[31] Block Left", [0x32] = "[32] Block Up", [0x33] = "[33] Block Down", [0x34] = "[34] Block Right & Up", [0x35] = "[35] Block Left & Up", [0x36] = "[36] Block Right & Down", [0x37] = "[37] Block Left & Down", [0x38] = "[38] Jump Right", [0x39] = "[39] Jump Left", [0x3A] = "[3A] Jump Up (Broken in HGSS)", [0x3B] = "[3B] Jump Down", [0x3C] = "[3C] Ladder front", [0x3D] = "[3D] Ladder back", [0x3E] = "[3E] Ladder down", [0x3F] = "[3F] Jump Corner DownLeft", [0x40] = "[40] Slide Right", [0x41] = "[41] Slide Left", [0x42] = "[42] Slide Up", [0x43] = "[43] Slide Down", [0x49] = "[49] Block Down & Up", [0x4A] = "[4A] Block Left & Right", [0x4B] = "[4B] Vert Rock Climb", [0x4C] = "[4C] Horiz Rock Climb", [0x4D] = "[4D] Stop Sliding", [0x5A] = "[5A] Jump Up Two Tiles", [0x5B] = "[5B] Jump Down Two Tiles", [0x5C] = "[5C] Jump Left Two Tiles", [0x5D] = "[5D] Jump Right Two Tiles", [0x5E] = "[5E] Stairs Warp (Right)", [0x5F] = "[5F] Stairs Warp (Left)", [0x62] = "[62] Warp Entrance (Right)", [0x63] = "[63] Warp Entrance (Left)", [0x64] = "[64] Warp Entrance (Up)", [0x65] = "[65] Warp Entrance (Down)", [0x67] = "[67] Warp Panel", [0x69] = "[69] Door Warp", [0x6A] = "[6A] Escalator Warp (Down-Right)", [0x6B] = "[6B] Escalator Warp (Up-Right)", [0x6C] = "[6C] Warp Right", [0x6D] = "[6D] Warp Left", [0x6E] = "[6E] Warp Up", [0x6F] = "[6F] Warp Down", [0x70] = "[70] Bridge Start", [0x71] = "[71] Bridge Middle", [0x72] = "[72] Bridge Over Cave", [0x73] = "[73] Bridge Over Water", [0x74] = "[74] Bridge Over Sand", [0x75] = "[75] Bridge Over Snow", [0x76] = "[76] Vertical bike bridge", [0x77] = "[77] Vertical bridge (ground enc)", [0x78] = "[78] Vertical bike bridge over water", [0x79] = "[79] Vertical bike bridge over sand", [0x7A] = "[7A] Horizontal bike bridge", [0x7B] = "[7B] Horizontal bike bridge over ground encounters", [0x7C] = "[7C] Horizontal bike bridge over water", [0x7D] = "[7D] Horizontal bike bridge over sand", [0x80] = "[80] Table", [0x83] = "[83] Storage PC", [0x85] = "[85] Open TownMap", [0x86] = "[86] TV", [0xA0] = "[A0] Farm Land", [0xA1] = "[A1] Deep Snow", [0xA2] = "[A2] Very Deep Snow", [0xA3] = "[A3] Ultra Deep Snow", [0xA4] = "[A4] Mud", [0xA5] = "[A5] Deep Mud", [0xA6] = "[A6] Mud Grass 1", [0xA7] = "[A7] Mud Grass 2", [0xA8] = "[A8] Snow", [0xA9] = "[A9] Snow with Shadows", [0xD5] = "[D5] Bridge (Vertical)", [0xD5] = "[D5] Bridge (Horizontal)", [0xD7] = "[D7] Bike Jump Left", [0xD8] = "[D8] Bike Jump Right", [0xD9] = "[D9] Bike Slope Top", [0xDA] = "[DA] Bike Slope Bottom", [0xDB] = "[DB] Bike parking", [0xE0] = "[E0] Small Bookshelf 1", [0xE1] = "[E1] Large Bookshelf 1", [0xE2] = "[E2] Large Bookshelf 2", [0xE3] = "[E3] Pot", [0xE4] = "[E4] Trash Can", [0xE5] = "[E5] Store Shelf 1", [0xE6] = "[E6] Blueprint", [0xEA] = "[EA] Small Bookshelf 2", [0xEB] = "[EB] Store Shelf 2", [0xEC] = "[EC] Store Shelf 3", [0xFF] = "[FF] No Attribute" }; public static Dictionary pokeNames = new Dictionary() { [1] = "Bulbasaur", [2] = "Ivysaur", [3] = "Venusaur", [4] = "Charmander", [5] = "Charmeleon", [6] = "Charizard", [7] = "Squirtle", [8] = "Wartortle", [9] = "Blastoise", [10] = "Caterpie", [11] = "Metapod", [12] = "Butterfree", [13] = "Weedle", [14] = "Kakuna", [15] = "Beedrill", [16] = "Pidgey", [17] = "Pidgeotto", [18] = "Pidgeot", [19] = "Rattata", [20] = "Raticate", [21] = "Spearow", [22] = "Fearow", [23] = "Ekans", [24] = "Arbok", [25] = "Pikachu", [26] = "Raichu", [27] = "Sandshrew", [28] = "Sandslash", [29] = "Nidoran♀", [30] = "Nidorina", [31] = "Nidoqueen", [32] = "Nidoran♂", [33] = "Nidorino", [34] = "Nidoking", [35] = "Clefairy", [36] = "Clefable", [37] = "Vulpix", [38] = "Ninetales", [39] = "Jigglypuff", [40] = "Wigglytuff", [41] = "Zubat", [42] = "Golbat", [43] = "Oddish", [44] = "Gloom", [45] = "Vileplume", [46] = "Paras", [47] = "Parasect", [48] = "Venonat", [49] = "Venomoth", [50] = "Diglett", [51] = "Dugtrio", [52] = "Meowth", [53] = "Persian", [54] = "Psyduck", [55] = "Golduck", [56] = "Mankey", [57] = "Primeape", [58] = "Growlithe", [59] = "Arcanine", [60] = "Poliwag", [61] = "Poliwhirl", [62] = "Poliwrath", [63] = "Abra", [64] = "Kadabra", [65] = "Alakazam", [66] = "Machop", [67] = "Machoke", [68] = "Machamp", [69] = "Bellsprout", [70] = "Weepinbell", [71] = "Victreebel", [72] = "Tentacool", [73] = "Tentacruel", [74] = "Geodude", [75] = "Graveler", [76] = "Golem", [77] = "Ponyta", [78] = "Rapidash", [79] = "Slowpoke", [80] = "Slowbro", [81] = "Magnemite", [82] = "Magneton", [83] = "Farfetch’d", [84] = "Doduo", [85] = "Dodrio", [86] = "Seel", [87] = "Dewgong", [88] = "Grimer", [89] = "Muk", [90] = "Shellder", [91] = "Cloyster", [92] = "Gastly", [93] = "Haunter", [94] = "Gengar", [95] = "Onix", [96] = "Drowzee", [97] = "Hypno", [98] = "Krabby", [99] = "Kingler", [100] = "Voltorb", [101] = "Electrode", [102] = "Exeggcute", [103] = "Exeggutor", [104] = "Cubone", [105] = "Marowak", [106] = "Hitmonlee", [107] = "Hitmonchan", [108] = "Lickitung", [109] = "Koffing", [110] = "Weezing", [111] = "Rhyhorn", [112] = "Rhydon", [113] = "Chansey", [114] = "Tangela", [115] = "Kangaskhan", [116] = "Horsea", [117] = "Seadra", [118] = "Goldeen", [119] = "Seaking", [120] = "Staryu", [121] = "Starmie", [122] = "Mr. Mime", [123] = "Scyther", [124] = "Jynx", [125] = "Electabuzz", [126] = "Magmar", [127] = "Pinsir", [128] = "Tauros", [129] = "Magikarp", [130] = "Gyarados", [131] = "Lapras", [132] = "Ditto", [133] = "Eevee", [134] = "Vaporeon", [135] = "Jolteon", [136] = "Flareon", [137] = "Porygon", [138] = "Omanyte", [139] = "Omastar", [140] = "Kabuto", [141] = "Kabutops", [142] = "Aerodactyl", [143] = "Snorlax", [144] = "Articuno", [145] = "Zapdos", [146] = "Moltres", [147] = "Dratini", [148] = "Dragonair", [149] = "Dragonite", [150] = "Mewtwo", [151] = "Mew", [152] = "Chikorita", [153] = "Bayleef", [154] = "Meganium", [155] = "Cyndaquil", [156] = "Quilava", [157] = "Typhlosion", [158] = "Totodile", [159] = "Croconaw", [160] = "Feraligatr", [161] = "Sentret", [162] = "Furret", [163] = "Hoothoot", [164] = "Noctowl", [165] = "Ledyba", [166] = "Ledian", [167] = "Spinarak", [168] = "Ariados", [169] = "Crobat", [170] = "Chinchou", [171] = "Lanturn", [172] = "Pichu", [173] = "Cleffa", [174] = "Igglybuff", [175] = "Togepi", [176] = "Togetic", [177] = "Natu", [178] = "Xatu", [179] = "Mareep", [180] = "Flaaffy", [181] = "Ampharos", [182] = "Bellossom", [183] = "Marill", [184] = "Azumarill", [185] = "Sudowoodo", [186] = "Politoed", [187] = "Hoppip", [188] = "Skiploom", [189] = "Jumpluff", [190] = "Aipom", [191] = "Sunkern", [192] = "Sunflora", [193] = "Yanma", [194] = "Wooper", [195] = "Quagsire", [196] = "Espeon", [197] = "Umbreon", [198] = "Murkrow", [199] = "Slowking", [200] = "Misdreavus", [201] = "Unown", [202] = "Wobbuffet", [203] = "Girafarig", [204] = "Pineco", [205] = "Forretress", [206] = "Dunsparce", [207] = "Gligar", [208] = "Steelix", [209] = "Snubbull", [210] = "Granbull", [211] = "Qwilfish", [212] = "Scizor", [213] = "Shuckle", [214] = "Heracross", [215] = "Sneasel", [216] = "Teddiursa", [217] = "Ursaring", [218] = "Slugma", [219] = "Magcargo", [220] = "Swinub", [221] = "Piloswine", [222] = "Corsola", [223] = "Remoraid", [224] = "Octillery", [225] = "Delibird", [226] = "Mantine", [227] = "Skarmory", [228] = "Houndour", [229] = "Houndoom", [230] = "Kingdra", [231] = "Phanpy", [232] = "Donphan", [233] = "Porygon2", [234] = "Stantler", [235] = "Smeargle", [236] = "Tyrogue", [237] = "Hitmontop", [238] = "Smoochum", [239] = "Elekid", [240] = "Magby", [241] = "Miltank", [242] = "Blissey", [243] = "Raikou", [244] = "Entei", [245] = "Suicune", [246] = "Larvitar", [247] = "Pupitar", [248] = "Tyranitar", [249] = "Lugia", [250] = "Ho-Oh", [251] = "Celebi", [252] = "Treecko", [253] = "Grovyle", [254] = "Sceptile", [255] = "Torchic", [256] = "Combusken", [257] = "Blaziken", [258] = "Mudkip", [259] = "Marshtomp", [260] = "Swampert", [261] = "Poochyena", [262] = "Mightyena", [263] = "Zigzagoon", [264] = "Linoone", [265] = "Wurmple", [266] = "Silcoon", [267] = "Beautifly", [268] = "Cascoon", [269] = "Dustox", [270] = "Lotad", [271] = "Lombre", [272] = "Ludicolo", [273] = "Seedot", [274] = "Nuzleaf", [275] = "Shiftry", [276] = "Taillow", [277] = "Swellow", [278] = "Wingull", [279] = "Pelipper", [280] = "Ralts", [281] = "Kirlia", [282] = "Gardevoir", [283] = "Surskit", [284] = "Masquerain", [285] = "Shroomish", [286] = "Breloom", [287] = "Slakoth", [288] = "Vigoroth", [289] = "Slaking", [290] = "Nincada", [291] = "Ninjask", [292] = "Shedinja", [293] = "Whismur", [294] = "Loudred", [295] = "Exploud", [296] = "Makuhita", [297] = "Hariyama", [298] = "Azurill", [299] = "Nosepass", [300] = "Skitty", [301] = "Delcatty", [302] = "Sableye", [303] = "Mawile", [304] = "Aron", [305] = "Lairon", [306] = "Aggron", [307] = "Meditite", [308] = "Medicham", [309] = "Electrike", [310] = "Manectric", [311] = "Plusle", [312] = "Minun", [313] = "Volbeat", [314] = "Illumise", [315] = "Roselia", [316] = "Gulpin", [317] = "Swalot", [318] = "Carvanha", [319] = "Sharpedo", [320] = "Wailmer", [321] = "Wailord", [322] = "Numel", [323] = "Camerupt", [324] = "Torkoal", [325] = "Spoink", [326] = "Grumpig", [327] = "Spinda", [328] = "Trapinch", [329] = "Vibrava", [330] = "Flygon", [331] = "Cacnea", [332] = "Cacturne", [333] = "Swablu", [334] = "Altaria", [335] = "Zangoose", [336] = "Seviper", [337] = "Lunatone", [338] = "Solrock", [339] = "Barboach", [340] = "Whiscash", [341] = "Corphish", [342] = "Crawdaunt", [343] = "Baltoy", [344] = "Claydol", [345] = "Lileep", [346] = "Cradily", [347] = "Anorith", [348] = "Armaldo", [349] = "Feebas", [350] = "Milotic", [351] = "Castform", [352] = "Kecleon", [353] = "Shuppet", [354] = "Banette", [355] = "Duskull", [356] = "Dusclops", [357] = "Tropius", [358] = "Chimecho", [359] = "Absol", [360] = "Wynaut", [361] = "Snorunt", [362] = "Glalie", [363] = "Spheal", [364] = "Sealeo", [365] = "Walrein", [366] = "Clamperl", [367] = "Huntail", [368] = "Gorebyss", [369] = "Relicanth", [370] = "Luvdisc", [371] = "Bagon", [372] = "Shelgon", [373] = "Salamence", [374] = "Beldum", [375] = "Metang", [376] = "Metagross", [377] = "Regirock", [378] = "Regice", [379] = "Registeel", [380] = "Latias", [381] = "Latios", [382] = "Kyogre", [383] = "Groudon", [384] = "Rayquaza", [385] = "Jirachi", [386] = "Deoxys", [387] = "Turtwig", [388] = "Grotle", [389] = "Torterra", [390] = "Chimchar", [391] = "Monferno", [392] = "Infernape", [393] = "Piplup", [394] = "Prinplup", [395] = "Empoleon", [396] = "Starly", [397] = "Staravia", [398] = "Staraptor", [399] = "Bidoof", [400] = "Bibarel", [401] = "Kricketot", [402] = "Kricketune", [403] = "Shinx", [404] = "Luxio", [405] = "Luxray", [406] = "Budew", [407] = "Roserade", [408] = "Cranidos", [409] = "Rampardos", [410] = "Shieldon", [411] = "Bastiodon", [412] = "Burmy", [413] = "Wormadam", [414] = "Mothim", [415] = "Combee", [416] = "Vespiquen", [417] = "Pachirisu", [418] = "Buizel", [419] = "Floatzel", [420] = "Cherubi", [421] = "Cherrim", [422] = "Shellos", [423] = "Gastrodon", [424] = "Ambipom", [425] = "Drifloon", [426] = "Drifblim", [427] = "Buneary", [428] = "Lopunny", [429] = "Mismagius", [430] = "Honchkrow", [431] = "Glameow", [432] = "Purugly", [433] = "Chingling", [434] = "Stunky", [435] = "Skuntank", [436] = "Bronzor", [437] = "Bronzong", [438] = "Bonsly", [439] = "Mime Jr.", [440] = "Happiny", [441] = "Chatot", [442] = "Spiritomb", [443] = "Gible", [444] = "Gabite", [445] = "Garchomp", [446] = "Munchlax", [447] = "Riolu", [448] = "Lucario", [449] = "Hippopotas", [450] = "Hippowdon", [451] = "Skorupi", [452] = "Drapion", [453] = "Croagunk", [454] = "Toxicroak", [455] = "Carnivine", [456] = "Finneon", [457] = "Lumineon", [458] = "Mantyke", [459] = "Snover", [460] = "Abomasnow", [461] = "Weavile", [462] = "Magnezone", [463] = "Lickilicky", [464] = "Rhyperior", [465] = "Tangrowth", [466] = "Electivire", [467] = "Magmortar", [468] = "Togekiss", [469] = "Yanmega", [470] = "Leafeon", [471] = "Glaceon", [472] = "Gliscor", [473] = "Mamoswine", [474] = "Porygon-Z", [475] = "Gallade", [476] = "Probopass", [477] = "Dusknoir", [478] = "Froslass", [479] = "Rotom", [480] = "Uxie", [481] = "Mesprit", [482] = "Azelf", [483] = "Dialga", [484] = "Palkia", [485] = "Heatran", [486] = "Regigigas", [487] = "Giratina", [488] = "Cresselia", [489] = "Phione", [490] = "Manaphy", [491] = "Darkrai", [492] = "Shaymin", [493] = "Arceus", [494] = "Egg", [495] = "Bad Egg", // empty indices [496] = "Egg", [497] = "Egg", [498] = "Egg", [499] = "Egg", [500] = "Egg", [501] = "Egg", [502] = "Egg", [503] = "Egg", [504] = "Egg", [505] = "Egg", [506] = "Egg", [507] = "Egg", [508] = "Egg", [509] = "Egg", [510] = "Egg", [511] = "Egg", [512] = "Egg", [513] = "Egg", [514] = "Egg", [515] = "Egg", [516] = "Egg", [517] = "Egg", [518] = "Egg", [519] = "Egg", [520] = "Egg", [521] = "Egg", [522] = "Egg", [523] = "Egg", [524] = "Egg", [525] = "Egg", [526] = "Egg", [527] = "Egg", [528] = "Egg", [529] = "Egg", [530] = "Egg", [531] = "Egg", [532] = "Egg", [533] = "Egg", [534] = "Egg", [535] = "Egg", [536] = "Egg", [537] = "Egg", [538] = "Egg", [539] = "Egg", [540] = "Egg", [541] = "Egg", [542] = "Egg", [543] = "Egg", // Gen V [544] = "Victini", [545] = "Snivy", [546] = "Servine", [547] = "Serperior", [548] = "Tepig", [549] = "Pignite", [550] = "Emboar", [551] = "Oshawott", [552] = "Dewott", [553] = "Samurott", [554] = "Patrat", [555] = "Watchog", [556] = "Lillipup", [557] = "Herdier", [558] = "Stoutland", [559] = "Purrloin", [560] = "Liepard", [561] = "Pansage", [562] = "Simisage", [563] = "Pansear", [564] = "Simisear", [565] = "Panpour", [566] = "Simipour", [567] = "Munna", [568] = "Musharna", [569] = "Pidove", [570] = "Tranquill", [571] = "Unfezant", [572] = "Blitzle", [573] = "Zebstrika", [574] = "Roggenrola", [575] = "Boldore", [576] = "Gigalith", [577] = "Woobat", [578] = "Swoobat", [579] = "Drilbur", [580] = "Excadrill", [581] = "Audino", [582] = "Timburr", [583] = "Gurdurr", [584] = "Conkeldurr", [585] = "Tympole", [586] = "Palpitoad", [587] = "Seismitoad", [588] = "Throh", [589] = "Sawk", [590] = "Sewaddle", [591] = "Swadloon", [592] = "Leavanny", [593] = "Venipede", [594] = "Whirlipede", [595] = "Scolipede", [596] = "Cottonee", [597] = "Whimsicott", [598] = "Petilil", [599] = "Lilligant", [600] = "Basculin", [601] = "Sandile", [602] = "Krokorok", [603] = "Krookodile", [604] = "Darumaka", [605] = "Darmanitan", [606] = "Maractus", [607] = "Dwebble", [608] = "Crustle", [609] = "Scraggy", [610] = "Scrafty", [611] = "Sigilyph", [612] = "Yamask", [613] = "Cofagrigus", [614] = "Tirtouga", [615] = "Carracosta", [616] = "Archen", [617] = "Archeops", [618] = "Trubbish", [619] = "Garbodor", [620] = "Zorua", [621] = "Zoroark", [622] = "Minccino", [623] = "Cinccino", [624] = "Gothita", [625] = "Gothorita", [626] = "Gothitelle", [627] = "Solosis", [628] = "Duosion", [629] = "Reuniclus", [630] = "Ducklett", [631] = "Swanna", [632] = "Vanillite", [633] = "Vanillish", [634] = "Vanilluxe", [635] = "Deerling", [636] = "Sawsbuck", [637] = "Emolga", [638] = "Karrablast", [639] = "Escavalier", [640] = "Foongus", [641] = "Amoonguss", [642] = "Frillish", [643] = "Jellicent", [644] = "Alomomola", [645] = "Joltik", [646] = "Galvantula", [647] = "Ferroseed", [648] = "Ferrothorn", [649] = "Klink", [650] = "Klang", [651] = "Klinklang", [652] = "Tynamo", [653] = "Eelektrik", [654] = "Eelektross", [655] = "Elgyem", [656] = "Beheeyem", [657] = "Litwick", [658] = "Lampent", [659] = "Chandelure", [660] = "Axew", [661] = "Fraxure", [662] = "Haxorus", [663] = "Cubchoo", [664] = "Beartic", [665] = "Cryogonal", [666] = "Shelmet", [667] = "Accelgor", [668] = "Stunfisk", [669] = "Mienfoo", [670] = "Mienshao", [671] = "Druddigon", [672] = "Golett", [673] = "Golurk", [674] = "Pawniard", [675] = "Bisharp", [676] = "Bouffalant", [677] = "Rufflet", [678] = "Braviary", [679] = "Vullaby", [680] = "Mandibuzz", [681] = "Heatmor", [682] = "Durant", [683] = "Deino", [684] = "Zweilous", [685] = "Hydreigon", [686] = "Larvesta", [687] = "Volcarona", [688] = "Cobalion", [689] = "Terrakion", [690] = "Virizion", [691] = "Tornadus", [692] = "Thundurus", [693] = "Reshiram", [694] = "Zekrom", [695] = "Landorus", [696] = "Kyurem", [697] = "Keldeo", [698] = "Meloetta", [699] = "Genesect", }; public static class MatrixCellColors { /* Initialize dictionary of colors corresponding to border maps in the matrix editor */ public static Dictionary, (Color back, Color fore)> DPPtmatrixColorsDict = new Dictionary, (Color back, Color fore)> { [new List { 173, 176, 177, 179 }] = (Color.ForestGreen, Color.White), [new List { 174 }] = (Color.SteelBlue, Color.White), [new List { 175 }] = (Color.Sienna, Color.White), [new List { 178 }] = (Color.PowderBlue, Color.Black), [new List { GameMatrix.EMPTY }] = (Color.Black, Color.White) }; public static Dictionary, (Color back, Color fore)> HGSSmatrixColorsDict = new Dictionary, (Color back, Color fore)> { [new List { 208 }] = (Color.ForestGreen, Color.White), [new List { 209 }] = (Color.SteelBlue, Color.White), [new List { 210 }] = (Color.Sienna, Color.White), [new List { GameMatrix.EMPTY }] = (Color.Black, Color.White) }; public static Dictionary, (Color back, Color fore)> GenericMatrixColorsDict = new Dictionary, (Color back, Color fore)> { [new List { 203 }] = (Color.FromArgb(80, 200, 16), Color.White), [new List { 204, 209 }] = (Color.SteelBlue, Color.White), [new List { 205, 206 }] = (Color.DarkGreen, Color.White), [new List { 207, 208 }] = (Color.ForestGreen, Color.White), [new List { 210 }] = (Color.Sienna, Color.White), [new List { GameMatrix.EMPTY }] = (Color.Black, Color.White) }; } public static class AreaPics { public static Dictionary hgssAreaPicDict = new Dictionary() { [0] = "empty", [1] = "hgsswall", [2] = "hgsswood", [3] = "hgsstown", [4] = "hgsscave", [5] = "hgssforest", [6] = "hgsswater", [7] = "hgssfield", [8] = "hgsslake", [9] = "hgssgray" }; } public static class WeatherPics { public static Dictionary dpWeatherImageDict = new Dictionary() { [new byte[] { 0, 8, 13, 18, 19, 20, 23, 25 }] = "dpnormal", [new byte[] { 1 }] = "dpcloudy", [new byte[] { 2 }] = "dprain", [new byte[] { 3 }] = "dpheavyrain", [new byte[] { 4, 24 }] = "dpthunderstorm", [new byte[] { 5, 28 }] = "dpsnowslow", [new byte[] { 6, 21, 26, 27 }] = "dpdiamondsnow", [new byte[] { 7 }] = "dpblizzard", [new byte[] { 9 }] = "dpsandfall", [new byte[] { 10 }] = "dpsandstorm", [new byte[] { 11 }] = "dphail", [new byte[] { 12 }] = "dprocksascending", [new byte[] { 14 }] = "dpfog", [new byte[] { 15 }] = "dpfog", //deep fog [new byte[] { 16 }] = "dpdark", [new byte[] { 17 }] = "dplightning", [new byte[] { 22 }] = "dplightsandstorm" }; public static Dictionary ptWeatherImageDict = new Dictionary() { [new byte[] { 0, 8, 13, 20, 31, 33 }] = "ptnormal", [new byte[] { 1 }] = "ptcloudy", [new byte[] { 2, 32 }] = "ptrain", [new byte[] { 3 }] = "ptheavyrain", [new byte[] { 4 }] = "ptthunderstorm", [new byte[] { 5, 36 }] = "ptsnowslow", [new byte[] { 6, 21, 34, 35 }] = "ptdiamondsnow", [new byte[] { 7 }] = "ptblizzard", [new byte[] { 9 }] = "ptsandfall", [new byte[] { 10 }] = "ptsandstorm", [new byte[] { 11 }] = "pthail", [new byte[] { 12 }] = "ptrocksascending", [new byte[] { 14, 15 }] = "ptfog", [new byte[] { 16 }] = "ptdark", [new byte[] { 17 }] = "ptlightning", [new byte[] { 18 }] = "ptlightfog", [new byte[] { 19 }] = "ptheavyfog", [new byte[] { 22 }] = "ptlightsandstorm", [new byte[] { 23 }] = "ptforestweather", [new byte[] { 24, 25 }] = "ptspotlight", [new byte[] { 26 }] = "ptdarkfog", [new byte[] { 27 }] = "ptgreenish", [new byte[] { 28 }] = "ptredish", [new byte[] { 29 }] = "ptblueish", [new byte[] { 30 }] = "ptdim", }; public static Dictionary hgssweatherImageDict = new Dictionary() { [new byte[] { 0 }] = "hgssnormal", [new byte[] { 1, 2, 3, 4 }] = "hgssrain", [new byte[] { 5, 6 }] = "hgsssnow", [new byte[] { 7 }] = "hgssnormal", //sandstorm in battle only [new byte[] { 8 }] = "hgssdiamond", [new byte[] { 9, 10 }] = "hgssfog", [new byte[] { 11 }] = "hgssdark", [new byte[] { 12 }] = "hgssdark2", [new byte[] { 13 }] = "hgssArcade" }; } } public static class MoveData { public static string[] battleSequenceDescriptions = new string[] { /* 0 */ "None", /* 1 */ "Causes Sleep", /* 2 */ "Chance to Poison", /* 3 */ "Damages target; Heals user up to 50% of damage dealt", /* 4 */ "Chance to Burn", /* 5 */ "Chance to Freeze", /* 6 */ "Chance to Paralyze", /* 7 */ "Selfdestruct/ Explosion effect", /* 8 */ "Damages sleeping target; Heals user up to 50% of damage dealt", /* 9 */ "Mirror Move effect", /* 10 */ "Raises Atk", /* 11 */ "Raises Def", /* 12 */ "Raises Spd", /* 13 */ "Raises SpAtk", /* 14 */ "Raises SpDef", /* 15 */ "Raises Accuracy", /* 16 */ "Raises Evasion", /* 17 */ "Always hits", /* 18 */ "Lowers Atk (Status)", /* 19 */ "Lowers Def (Status)", /* 20 */ "Lowers Spd (Status)", /* 21 */ "Lowers SpAtk (Status)", /* 22 */ "Lowers SpDef (Status)", /* 23 */ "Lowers Accuracy (Status)", /* 24 */ "Lowers Evasion (Status)", /* 25 */ "Resets stat changes", /* 26 */ "Bide effect", /* 27 */ "Locked into move for 2-3 turns; confuses user after", /* 28 */ "Whirlwind/ Roar effect", /* 29 */ "Hits target 2-5 times", /* 30 */ "Changes user's type to match one of its moves", /* 31 */ "Chance to Flinch", /* 32 */ "Restores up to 50% max HP", /* 33 */ "Badly Poisons", /* 34 */ "Pay Day effect", /* 35 */ "1/2 damage from Special attacks", /* 36 */ "Chance of either Paralyzing; Burning; or Freezing target", /* 37 */ "Causes Sleep and restores all HP", /* 38 */ "OHKO", /* 39 */ "Charging turn; high crit ratio", /* 40 */ "Deals damage equal to 1/2 target's current hp", /* 41 */ "Deals 40 damage", /* 42 */ "Binding move effect", /* 43 */ "High crit ratio", /* 44 */ "Hits twice", /* 45 */ "Deals 1/2 user's max HP to user if it misses", /* 46 */ "Prevents lowering of stats", /* 47 */ "Sharply raises crit ratio", /* 48 */ "1/4 damage dealt recoil", /* 49 */ "Guaranteed Confusion (Status)", /* 50 */ "Sharply raises Atk (Status)", /* 51 */ "Sharply raises Def (Status)", /* 52 */ "Sharply raises Spd (Status)", /* 53 */ "Sharply raises SpAtk (Status)", /* 54 */ "Sharply raises SpDef (Status)", /* 55 */ "Sharply raises Accuracy (Status)", /* 56 */ "Sharply raises Evasion (Status)", /* 57 */ "Transform effect", /* 58 */ "Sharply lowers Atk (Status)", /* 59 */ "Sharply lowers Def (Status)", /* 60 */ "Sharply lowers Spd (Status)", /* 61 */ "Sharply lowers SpAtk (Status)", /* 62 */ "Sharply lowers SpDef (Status)", /* 63 */ "Sharply lowers Evasion (Status)", /* 64 */ null, /* 65 */ "1/2 damage from Physical attacks", /* 66 */ "Guaranteed Poison", /* 67 */ "Guaranteed Paralysis", /* 68 */ "Lowers Atk (Attack)", /* 69 */ "Lowers Def (Attack)", /* 70 */ "Lowers Spd (Attack)", /* 71 */ "Lowers SpAtk (Attack)", /* 72 */ "Lowers SpDef (Attack)", /* 73 */ "Lowers Accuracy (Attack)", /* 74 */ "Lowers Evasion (Attack)", /* 75 */ "Attacks next turn; chance of flinch; increased crit ratio", /* 76 */ "Chance to Confuse", /* 77 */ "Hits twice; chance to poison", /* 78 */ "Vital Throw ??", /* 79 */ "Substitute effect", /* 80 */ "Recharge turn", /* 81 */ "Locked into move; raises Atk whenever hit", /* 82 */ "Copies user-selected move", /* 83 */ "Metronome effect", /* 84 */ "Leech Seed effect", /* 85 */ "Splash effect", /* 86 */ "Disables last move used for 4-7 turns", /* 87 */ "Deals damage equal to user's level", /* 88 */ "Deals up to user's level x1.5 damage", /* 89 */ "2x last amount of damage received", /* 90 */ "Locks target into last move used for 3-7 turns", /* 91 */ "Pain Split effect", /* 92 */ "Can only be used while asleep; chance of causing Flinch", /* 93 */ "Conversion2 effect", /* 94 */ "Next move used by user guaranteed to hit", /* 95 */ "Sketch effect", /* 96 */ null, /* 97 */ "Sleep Talk effect", /* 98 */ "Destiny Bond effect", /* 99 */ "Higher power the less HP the user has", /* 100 */ "Decreases PP of target's last move used by 4", /* 101 */ "False Swipe effect", /* 102 */ "Heal Bell effect", /* 103 */ "Priority +1", /* 104 */ "Hits the target up to 3 times; increases power by 10 with each hit", /* 105 */ "Steals target's held item", /* 106 */ "Prevents target from switching out or fleeing", /* 107 */ "If asleep; target takes damage equal to 1/4 its max HP at the end of every turn", /* 108 */ "Raises Evasion; weak to Stomp/Rollout/Bodyslam", /* 109 */ "Curse effect", /* 110 */ null, /* 111 */ "Protect/ Detect effect", /* 112 */ "Spikes effect", /* 113 */ "Ignores type immunities", /* 114 */ "All users on field faint in 3 turns", /* 115 */ "Causes Sandstorm", /* 116 */ "Allows user to endure a fatal hit and survive at 1 HP", /* 117 */ "Rollout effect", /* 118 */ "Sharply raises target's Atk and causes Confusion", /* 119 */ "2x power for every consecutive hit", /* 120 */ "Infatuates target of opposite gender", /* 121 */ "Return effect", /* 122 */ "Present Effect", /* 123 */ "Frustration effect", /* 124 */ "Safeguard effect", /* 125 */ "Thaws user; chance to Burn", /* 126 */ "Magnitude effect", /* 127 */ "Baton Pass effect", /* 128 */ "Pursuit effect", /* 129 */ "Removes all hazards/ binding moves on user's side of the field", /* 130 */ "Inflicts 20 damage", /* 131 */ null, /* 132 */ "Synthesis effect", /* 133 */ null, /* 134 */ null, /* 135 */ "Hidden Power effect", /* 136 */ "Causes Rain", /* 137 */ "Causes Harsh Sunlight", /* 138 */ "Chance of raising Def", /* 139 */ "Chance of raising Atk", /* 140 */ "Ancient Power boost", /* 141 */ null, /* 142 */ "Belly Drum effect", /* 143 */ "Copies all of target's stat boosts", /* 144 */ "Mirror Coat effect", /* 145 */ "Raises Def; attacks next turn", /* 146 */ "Twister effect", /* 147 */ "2x Damage on Pokemon using Dig", /* 148 */ "Future Sight effect", /* 149 */ "2x Damage on Pokemon using Bounce/Fly", /* 150 */ "Causes flinch and 2x damage if target has used Minimize", /* 151 */ "Charging turn unless in Harsh Sunlight", /* 152 */ "Always hits in rain; chance to Paralyze", /* 153 */ "Flees from wild single battle", /* 154 */ "Beat Up effect", /* 155 */ "Fly effect", /* 156 */ "Raises Def and 2x Rollout/ Ice Ball power", /* 157 */ null, /* 158 */ "Guaranteed Flinch; can only be used turn 1", /* 159 */ "Uproar effect", /* 160 */ "Stockpile effect", /* 161 */ "Spit Up effect", /* 162 */ "Swallow effect", /* 163 */ null, /* 164 */ "Causes Hail", /* 165 */ "Torment effect", /* 166 */ "Raises target's SpAtk and causes Confusion", /* 167 */ "Guaranteed Burn; activates Flash Fire", /* 168 */ "User faints and target's Atk and SpAtk are lowered sharply", /* 169 */ "2x power if user is Poisoned; Paralyzed; or Burned.", /* 170 */ "Focus Punch effect", /* 171 */ "2x power if target is Paralyzed; cures target of Paralysis", /* 172 */ "Redirects all moves to user", /* 173 */ "Nature Power effect", /* 174 */ "Next move deals 2x damage if it is Electric-type", /* 175 */ "Target can't use status moves for 3-5 turns", /* 176 */ "Ally's attack deals 1.5x damage this turn", /* 177 */ "User switches held items with target", /* 178 */ "User copies target's Ability", /* 179 */ "1/2 of user's max HP is restored at the end of next turn", /* 180 */ "Assist effect", /* 181 */ "Ingrain effect", /* 182 */ "Lowers user's Atk and Def", /* 183 */ "Reflects status moves back at their user", /* 184 */ "User regains a consumed held item", /* 185 */ "2x power if the user has been hit this turn", /* 186 */ "Removes Light Screen/ Reflect from target's side of the field", /* 187 */ "Yawn effect", /* 188 */ "Renders the target's held item unusable", /* 189 */ "Target's HP becomes equal to the user's current HP", /* 190 */ "Power= Base power x(user's current HP/ user's max HP)", /* 191 */ "User swaps Abilities with the target", /* 192 */ "Target is prevented from using moves shared with the user", /* 193 */ "Cures user of Burn; Poison; or Paralysis", /* 194 */ "Grudge effect", /* 195 */ "If any Pokemon uses a beneficial status move; the user uses it instead", /* 196 */ "Inflicts greater damage on heavier targets", /* 197 */ "Secret Power effect", /* 198 */ "1/3 damage dealt recoil", /* 199 */ "Guaranteed Confusion (Attack)", /* 200 */ "Chance of causing Burn; increased Crit ratio", /* 201 */ "Weakens Electric-type moves by 50% until user switches out", /* 202 */ "Chance of Badly Poisoning", /* 203 */ "Type changes to match weather", /* 204 */ "Lowers user's SpAtk harshly", /* 205 */ "Lowers target's Atk and Def", /* 206 */ "Raises user's Def and SpDef", /* 207 */ "Can hit Pokemon during semi-invulnerable turns of Fly/Bounce", /* 208 */ "Raises user's Atk and Def", /* 209 */ "Chance of causing Poison; increased crit ratio", /* 210 */ "Water Sport effect", /* 211 */ "Raises user's SpAtk and SpDef", /* 212 */ "Raises user's Atk and Spd", /* 213 */ "Camouflage effect", /* 214 */ "Roost effect", /* 215 */ "Gravity effect", /* 216 */ "2x power if target is asleep; wakes up target", /* 217 */ "Wake-Up Slap effect", /* 218 */ "Lowers user's Spd", /* 219 */ "Power = min(150; (25 x Target's Current Speed / User's Current Speed) + 1)", /* 220 */ "Healing Wish effect", /* 221 */ "2x power if target is at or below 1/2 HP", /* 222 */ "Natural Gift effect", /* 223 */ "Can only hit targets that have used Protect/ Detect", /* 224 */ "Consumes target's berry", /* 225 */ "2x Spd for user's party for 3 turns", /* 226 */ "Sharply raises a random stat of the target", /* 227 */ "Damage= 1.5x damage dealt by the target's last attack", /* 228 */ "Switches user out after dealing damage", /* 229 */ "Lowers user's Def and SpDef", /* 230 */ "2x Power if user moves after target", /* 231 */ "2x damage if the target has already taken damage this turn", /* 232 */ "Prevents the target from using its held item or having items used on it", /* 233 */ "Power and effect determined by held item", /* 234 */ "Cures user of any status condition and afflicts the target with it", /* 235 */ "The less PP the move has; the greater its Power", /* 236 */ "Heal Block effect", /* 237 */ "Power = Base power + 120 x (Target's Current HP / Target's Maximum HP)", /* 238 */ "Swaps the user's Atk stat with its Def stat", /* 239 */ "Suppresses the target's Ability", /* 240 */ "Prevents opponents from landing critical hits on the user's party for 5 turns", /* 241 */ "If the target has not moved yet; the user copies their move and uses it with 1.5x power", /* 242 */ "User uses the last move that was used in battle", /* 243 */ "Swaps the user's Atk and SpAtk buffs with the target's Atk and SpAtk buffs", /* 244 */ "Swaps the user's Def and SpDef buffs with the target's Def and SpDef buffs", /* 245 */ "Power= 60 + (20x # of stat increases of target)", /* 246 */ "Fails unless the user has used all of its other moves at least once", /* 247 */ "Changes the target's Ability to Insomnia", /* 248 */ "Fails if the target did not select a damaging move or has already moved", /* 249 */ "Toxic Spikes effect", /* 250 */ "Swaps the user's stat changes with the target's", /* 251 */ "Restores 1/16 of the user's max HP at the end of every turn", /* 252 */ "User becomes immune to Ground-type attacks and field hazards for 5 turns", /* 253 */ "Chance of causing Burn; 1/3 damage dealt recoil", /* 254 */ "Struggle effect", /* 255 */ "Dive effect", /* 256 */ "Dig effect", /* 257 */ "2x Damage on Pokemon using Dive", /* 258 */ "Defog effect", /* 259 */ "Trick Room effect", /* 260 */ "Always hits in Hail", /* 261 */ "Whirlpool effect", /* 262 */ "Chance of causing Paralysis; 1/3 damage dealt recoil", /* 263 */ "Bounce effect", /* 264 */ null, /* 265 */ "Lowers opposite gender target's SpAtk harshly", /* 266 */ "Stealth Rocks effect", /* 267 */ "Chatter effect", /* 268 */ "Type= Type of Plate held by user", /* 269 */ "1/2 damage dealt recoil", /* 270 */ "Lunar Dance effect", /* 271 */ "Chance of lowering target's SpDef harshly", /* 272 */ "Shadow Force effect", /* 273 */ "Chance of causing Burn; chance of causing Flinch", /* 274 */ "Chance of causing Freeze; chance of causing Flinch", /* 275 */ "Chance of causing Paralysis; chance of causing Flinch", /* 276 */ "Chance of raising user's SpAtk", }; } public static class PersonalData { public class PersonalExtraFiles { public int monId { get; set; } public string description { get; set; } public int iconId { get; set; } public PersonalExtraFiles(int monId, string desc, int iconId) { this.monId = monId; this.description = desc; this.iconId = iconId; } } public static PersonalExtraFiles[] personalExtraFiles = new PersonalExtraFiles[] { /* Deoxys */ new PersonalExtraFiles(386, "Attack", 496), /* Ideally replace this last number with an alt form icon id? */ new PersonalExtraFiles(386, "Defense", 497), new PersonalExtraFiles(386, "Speed", 498), /* Wormadam */ new PersonalExtraFiles(413, "Sandy", 529), new PersonalExtraFiles(413, "Trash", 530), /* Giratina */ new PersonalExtraFiles(487, "Origin", 533), /* Shaymin */ new PersonalExtraFiles(492, "Sky", 534), /* Rotom */ new PersonalExtraFiles(479, "Heat", 535), new PersonalExtraFiles(479, "Wash", 536), new PersonalExtraFiles(479, "Frost", 537), new PersonalExtraFiles(479, "Fan", 538), new PersonalExtraFiles(479, "Mow", 539), }; } } } ================================================ FILE: DS_Map/Resources/ROMToolboxDB/BDHCAMPatchDB.Designer.cs ================================================ //------------------------------------------------------------------------------ // // Il codice è stato generato da uno strumento. // Versione runtime:4.0.30319.42000 // // Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se // il codice viene rigenerato. // //------------------------------------------------------------------------------ namespace DSPRE.Resources.ROMToolboxDB { using System; /// /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. /// // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder. // tramite uno strumento quale ResGen o Visual Studio. // Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen // con l'opzione /str oppure ricompilare il progetto VS. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class BDHCAMPatchDB { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal BDHCAMPatchDB() { } /// /// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe. /// [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("DSPRE.Resources.ROMToolboxDB.BDHCAMPatchDB", typeof(BDHCAMPatchDB).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le /// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] CPUE_cam { get { object obj = ResourceManager.GetObject("CPUE_cam", resourceCulture); return ((byte[])(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] CPUS_cam { get { object obj = ResourceManager.GetObject("CPUS_cam", resourceCulture); return ((byte[])(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] IPGE_cam { get { object obj = ResourceManager.GetObject("IPGE_cam", resourceCulture); return ((byte[])(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] IPGS_cam { get { object obj = ResourceManager.GetObject("IPGS_cam", resourceCulture); return ((byte[])(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] IPKE_cam { get { object obj = ResourceManager.GetObject("IPKE_cam", resourceCulture); return ((byte[])(obj)); } } /// /// Cerca una risorsa localizzata di tipo System.Byte[]. /// internal static byte[] IPKS_cam { get { object obj = ResourceManager.GetObject("IPKS_cam", resourceCulture); return ((byte[])(obj)); } } } } ================================================ FILE: DS_Map/Resources/ROMToolboxDB/BDHCAMPatchDB.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 cpue_cam.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 cpus_cam.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ipge_cam.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ipgs_cam.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ipke_cam.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ipks_cam.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: DS_Map/Resources/ROMToolboxDB/CustomScrCmdDB.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 262368 0x400E0 262360 0x400D8 262368 0x400E0 262368 0x400E0 1027328 0xFAD00 1027304 0xFACE8 1027328 0xFAD00 1027312 0xFACF0 262372 0x400E4 262364 0x400DC 262372 0x400E4 262372 0x400E4 ================================================ FILE: DS_Map/Resources/ROMToolboxDB/ToolboxDB.cs ================================================ using System; using System.Collections.Generic; using System.Reflection; using System.Resources; using static DSPRE.RomInfo; namespace DSPRE.Resources.ROMToolboxDB { public class ToolboxDB { internal class ARM9PatchData { internal string initString; internal string branchString; internal uint branchOffset; internal uint initOffset; public static Dictionary arm9ExpansionCodeDB = new Dictionary() { ["branchString" + "_" + RomInfo.GameFamilies.DP + "_" + RomInfo.GameLanguages.English] = "05 F1 34 FC", ["branchString" + "_" + RomInfo.GameFamilies.DP + "_" + RomInfo.GameLanguages.Spanish] = "05 F1 04 FD", ["branchString" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.English] = "00 F1 B4 F8", ["branchString" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.Spanish] = "00 F1 B2 F9", ["branchString" + "_" + RomInfo.GameFamilies.HGSS + "_" + RomInfo.GameLanguages.English] = "0F F1 30 FB", ["branchString" + "_" + RomInfo.GameFamilies.HGSS + "_" + RomInfo.GameLanguages.Spanish] = "0F F1 40 FB", ["initString" + "_" + RomInfo.GameFamilies.DP] = "FC B5 05 48 C0 46 41 21 09 22 02 4D A8 47 00 20 03 21 FC BD F1 64 00 02 00 80 3C 02", //Valid for ENG and ESP, also for P ["initString" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.English] = "FC B5 05 48 C0 46 41 21 09 22 02 4D A8 47 00 20 03 21 FC BD A5 6A 00 02 00 80 3C 02", ["initString" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.Spanish] = "FC B5 05 48 C0 46 41 21 09 22 02 4D A8 47 00 20 03 21 FC BD B9 6A 00 02 00 80 3C 02", ["initString" + "_" + RomInfo.GameFamilies.HGSS] = "FC B5 05 48 C0 46 1C 21 00 22 02 4D A8 47 00 20 03 21 FC BD 09 75 00 02 00 80 3C 02" //Valid for ENG and ESP, also for SS }; public static Dictionary arm9ExpansionOffsetsDB = new Dictionary() { ["branchOffset" + "_" + RomInfo.GameFamilies.DP] = 0x02000C80, //Valid also for P ["branchOffset" + "_" + RomInfo.GameFamilies.Plat] = 0x02000CB4, ["branchOffset" + "_" + RomInfo.GameFamilies.HGSS] = 0x02000CD0, //Valid also for SS ["initOffset" + "_" + RomInfo.GameFamilies.DP + "_" + RomInfo.GameLanguages.English] = 0x021064EC, ["initOffset" + "_" + RomInfo.GameFamilies.DP + "_" + RomInfo.GameLanguages.Spanish] = 0x0210668C, ["initOffset" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.English] = 0x02100E20, ["initOffset" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.Spanish] = 0x0210101C, ["initOffset" + "_" + RomInfo.GameFamilies.HGSS + "_" + RomInfo.GameLanguages.English] = 0x02110334, ["initOffset" + "_" + RomInfo.GameFamilies.HGSS + "_" + RomInfo.GameLanguages.Spanish] = 0x02110354 }; internal ARM9PatchData() { branchOffset = arm9ExpansionOffsetsDB[nameof(branchOffset) + "_" + RomInfo.gameFamily] - ARM9.address; initOffset = arm9ExpansionOffsetsDB[nameof(initOffset) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage] - ARM9.address; branchString = arm9ExpansionCodeDB[nameof(branchString) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage]; if (RomInfo.gameFamily == GameFamilies.Plat) { initString = arm9ExpansionCodeDB[nameof(initString) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage]; } else { initString = arm9ExpansionCodeDB[nameof(initString) + "_" + RomInfo.gameFamily]; } } } internal class BDHCAMPatchData { internal byte overlayNumber; internal uint branchOffset; internal string branchString; internal uint overlayOffset1; internal uint overlayOffset2; internal string overlayString1; internal string overlayString2; internal byte[] subroutine; public static Dictionary BDHCamCodeDB = new Dictionary() { ["branchString" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.English] = "B9 F3 E2 F8", ["branchString" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.Spanish] = "B9 F3 AA F8", ["branchString" + "_" + RomInfo.GameFamilies.HGSS] = "B6 F3 2E FA", //Also valid for SS, both ESP and ENG ["overlayString1"] = "00 4B 18 47 41 9C 3D 02", ["overlayString2"] = "00 4B 18 47 01 9C 3D 02", }; public static Dictionary BDHCamOffsetsDB = new Dictionary() { ["branchOffset" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.English] = 0x0202040C, ["branchOffset" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.Spanish] = 0x0202047C, ["branchOffset" + "_" + RomInfo.GameFamilies.HGSS] = 0x02023174, //Also valid for SS, both ESP and ENG ["overlayOffset1" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.English] = 0x0001E1B4, ["overlayOffset1" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.Spanish] = 0x0001E1BC, ["overlayOffset1" + "_" + RomInfo.GameFamilies.HGSS] = 0x0001574C, ["overlayOffset2" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.English] = 0x0001E2CC, ["overlayOffset2" + "_" + RomInfo.GameFamilies.Plat + "_" + RomInfo.GameLanguages.Spanish] = 0x0001E2D4, ["overlayOffset2" + "_" + RomInfo.GameFamilies.HGSS] = 0x00015864, }; public static uint BDHCamSubroutineOffset = 0x000115B0; internal BDHCAMPatchData() { switch (RomInfo.gameFamily) { case GameFamilies.Plat: overlayNumber = 5; branchString = BDHCamCodeDB[nameof(branchString) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage]; branchOffset = BDHCamOffsetsDB[nameof(branchOffset) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage]; overlayOffset1 = BDHCamOffsetsDB[nameof(overlayOffset1) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage]; overlayOffset2 = BDHCamOffsetsDB[nameof(overlayOffset2) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage]; break; case GameFamilies.HGSS: overlayNumber = 1; branchString = BDHCamCodeDB[nameof(branchString) + "_" + RomInfo.gameFamily]; branchOffset = BDHCamOffsetsDB[nameof(branchOffset) + "_" + RomInfo.gameFamily]; overlayOffset1 = BDHCamOffsetsDB[nameof(overlayOffset1) + "_" + RomInfo.gameFamily]; overlayOffset2 = BDHCamOffsetsDB[nameof(overlayOffset2) + "_" + RomInfo.gameFamily]; break; } branchOffset -= ARM9.address; overlayString1 = BDHCamCodeDB[nameof(overlayString1)]; overlayString2 = BDHCamCodeDB[nameof(overlayString2)]; subroutine = (byte[])new ResourceManager("DSPRE.Resources.ROMToolboxDB.BDHCAMPatchDB", Assembly.GetExecutingAssembly()).GetObject(RomInfo.romID + "_cam"); } } internal class DynamicHeadersPatchData { internal uint initOffset; internal string initString; internal string REFERENCE_STRING = "19 00 C0 46"; internal int pointerDiff; internal int specialCaseOffset1 = 0x3B522; internal int specialCaseOffset2 = 0x3B526; internal int specialCaseOffset3 = 0x3B53C; internal string specialCaseData1 = "19 00"; internal string specialCaseData2 = "C0 46"; internal string specialCaseData3 = "00 00 00 00"; public static uint getDynamicHeadersInitOffset(string romID) { switch (romID) { case "CPUE": return 0x3A024; case "CPUS": case "CPUI": case "CPUF": case "CPUD": return 0x3A0C8; case "CPUJ": return 0x39BE0; case "IPKS": return 0x3B260; case "IPKJ": case "IPGJ": return 0x3AE20; default: return 0x3B268; } } public static string getDynamicHeadersInitString(string romID) { switch (romID) { case "CPUE": return "00 B5 01 1C 94 20 00 22 CC F7 48 FD 03 1C DE F7 C7 F8 00 BD"; case "CPUS": case "CPUI": case "CPUF": case "CPUD": return "00 B5 01 1C 94 20 00 22 CC F7 00 FD 03 1C CC F7 74 FC 00 BD"; case "CPUJ": return "00 B5 01 1C 94 20 00 22 CC F7 0A FF 03 1C DE F7 3D F9 00 BD"; case "IPKS": return "00 B5 01 1C 32 20 00 22 CC F7 5C F9 03 1C DF F7 4D FC 00 BD"; case "IPKJ": case "IPGJ": return "00 B5 01 1C 32 20 00 22 CC F7 08 FB 03 1C DF F7 C7 FC 00 BD"; default: return "00 B5 01 1C 32 20 00 22 CC F7 58 F9 03 1C DF F7 49 FC 00 BD"; } } public static Dictionary[]> dynamicHeadersPointersDB = new Dictionary[]>() { // format: headerID*18 offset, (ARM9_HEADER_TABLE_OFFSET + n) offset [GameFamilies.Plat] = new Tuple[] { new Tuple(0x3A03E, 0x3A048), new Tuple(0x3A052, 0x3A05C), new Tuple(0x3A066, 0x3A080), new Tuple(0x3A08E, 0x3A098), new Tuple(0x3A0A2, 0x3A0AC), new Tuple(0x3A0B6, 0x3A0C0), new Tuple(0x3A0CA, 0x3A0D4), new Tuple(0x3A0DE, 0x3A0E8), new Tuple(0x3A0F2, 0x3A108), new Tuple(0x3A116, 0x3A120), new Tuple(0x3A12A, 0x3A134), new Tuple(0x3A13E, 0x3A150), new Tuple(0x3A15A, 0x3A170), new Tuple(0x3A17A, 0x3A184), new Tuple(0x3A18E, 0x3A198), new Tuple(0x3A1A2, 0x3A1B4), new Tuple(0x3A1BE, 0x3A1D0), new Tuple(0x3A1DA, 0x3A1EC), new Tuple(0x3A1F6, 0x3A208), new Tuple(0x3A212, 0x3A224), }, [GameFamilies.HGSS] = new Tuple[] { new Tuple(0x3B282, 0x3B28C), new Tuple(0x3B296, 0x3B2A8), new Tuple(0x3B2B2, 0x3B2BC), new Tuple(0x3B2C6, 0x3B2D0), new Tuple(0x3B2DA, 0x3B2E4), new Tuple(0x3B2EE, 0x3B2F8), new Tuple(0x3B302, 0x3B30C), new Tuple(0x3B316, 0x3B320), new Tuple(0x3B32A, 0x3B340), new Tuple(0x3B34A, 0x3B354), new Tuple(0x3B35E, 0x3B368), new Tuple(0x3B372, 0x3B384), new Tuple(0x3B38E, 0x3B3A4), new Tuple(0x3B3AE, 0x3B3C4), new Tuple(0x3B3CE, 0x3B3E0), new Tuple(0x3B3EA, 0x3B3FC), new Tuple(0x3B406, 0x3B418), new Tuple(0x3B422, 0x3B434), new Tuple(0x3B43E, 0x3B450), new Tuple(0x3B45A, 0x3B46C), new Tuple(0x3B476, 0x3B488), new Tuple(0x3B492, 0x3B4A4), new Tuple(0x3B4AE, 0x3B4C0), new Tuple(0x3B4CA, 0x3B4D8), new Tuple(0x3B4E2, 0x3B4F4), new Tuple(0x3B4FE, 0x3B514), }, }; internal DynamicHeadersPatchData() { initOffset = getDynamicHeadersInitOffset(RomInfo.romID); initString = getDynamicHeadersInitString(RomInfo.romID); if (RomInfo.gameFamily == GameFamilies.HGSS) { pointerDiff = (int)(initOffset - getDynamicHeadersInitOffset("IPKE")); } else { pointerDiff = (int)(initOffset - getDynamicHeadersInitOffset("CPUE")); } } } public static Dictionary syntheticOverlayFileNumbersDB = new Dictionary() { [GameFamilies.DP] = 9, [GameFamilies.Plat] = 9, [GameFamilies.HGSS] = 0, }; public static Dictionary matrixExpansionDB = new Dictionary() { [new uint[] { 0x0203AEBE }] = "FF 01", [new uint[] { 0x0203AEC0 }] = "76 01", [new uint[] { 0x0203AF58 }] = "C9 01", [new uint[] { 0x0203AF72 }] = "49 01", [new uint[] { 0x0203AF8C }] = "3E 06 00 00", [new uint[] { 0x0203AF90 }] = "3C 1F 00 00", [new uint[] { 0x0203AFA8 }] = "50 1F 00 00", [new uint[] { 0x0203AFF8, 0x0203B108, 0x0203B1F0, 0x0203B25C }] = "C4 12 00 00", [new uint[] { 0x0203B088 }] = "84 0C 00 00", [new uint[] { 0x0203B0BC }] = "7C 0C 00 00", }; } } ================================================ FILE: DS_Map/Resources/ScriptDatabase.cs ================================================ using DSPRE.ROMFiles; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DSPRE.Resources { public static class ScriptDatabase { public static Dictionary comparisonOperatorsDict = new Dictionary() { [0] = "LESS", [1] = "EQUAL", [2] = "GREATER", [3] = "LESS/EQUAL", [4] = "GREATER/EQUAL", [5] = "DIFFERENT", }; public static Dictionary comparisonOperatorsGenVappendix = new Dictionary() { /* GEN V ONLY */ [6] = "OR", [7] = "AND", [0xFF] = "TRUEUP" }; public static Dictionary specialOverworlds = new Dictionary() { [241] = "Camera", [242] = "Partner", [253] = "Following", [255] = "Player" }; public static Dictionary overworldDirections = new Dictionary() { [0] = "Up", [1] = "Down", [2] = "Left", [3] = "Right" }; public static Dictionary commandsWithRelativeJump = new Dictionary() { //commandID, ID of parameter With Jump Address [0x0016] = 0, //Jump [0x0017] = 1, //Call [0x0018] = 1, //Call [0x0019] = 1, //Call [0x001A] = 0, //Call [0x001C] = 1, //JumpIf [0x001D] = 1, //CallIf [0x005E] = 1, //Movement }; public static HashSet endCodes = new HashSet() { 0x2, 0x16, 0x1B }; public static Dictionary movementsDictIDName = new Dictionary() { [0x0000] = "LookUp", [0x0001] = "LookDown", [0x0002] = "LookLeft", [0x0003] = "LookRight", [0x0004] = "WalkUpSlow", [0x0005] = "WalkDownSlow", [0x0006] = "WalkLeftSlow", [0x0007] = "WalkRightSlow", [0x0008] = "WalkUp", [0x0009] = "WalkDown", [0x000A] = "WalkLeft", [0x000B] = "WalkRight", [0x000C] = "WalkUpFast", [0x000D] = "WalkDownFast", [0x000E] = "WalkLeftFast", [0x000F] = "WalkRightFast", [0x0010] = "WalkUpVeryFast", [0x0011] = "WalkDownVeryFast", [0x0012] = "WalkLeftVeryFast", [0x0013] = "WalkRightVeryFast", [0x0014] = "RunUp", [0x0015] = "RunDown", [0x0016] = "RunLeft", [0x0017] = "RunRight", [0x0018] = "WalkUpSlowSite", [0x0019] = "WalkDownSlowSite", [0x001A] = "WalkLeftSlowSite", [0x001B] = "WalkRightSlowSite", [0x001C] = "WalkUpSite", [0x001D] = "WalkDownSite", [0x001E] = "WalkLeftSite", [0x001F] = "WalkRightSite", [0x0020] = "WalkUpFastSite", [0x0021] = "WalkDownFastSite", [0x0022] = "WalkLeftFastSite", [0x0023] = "WalkRightFastSite", [0x0024] = "WalkUpVeryFastSite", [0x0025] = "WalkDownVeryFastSite", [0x0026] = "WalkLeftVeryFastSite", [0x0027] = "WalkRightVeryFastSite", [0x0028] = "RunUpSite", [0x0029] = "RunDownSite", [0x002A] = "RunLeftSite", [0x002B] = "RunRightSite", [0x002C] = "JumpUpSlow", [0x002D] = "JumpDownSlow", [0x002E] = "JumpLeftSlow", [0x002F] = "JumpRightSlow", [0x0030] = "JumpUpSite", [0x0031] = "JumpDownSite", [0x0032] = "JumpLeftSite", [0x0033] = "JumpRightSite", [0x0034] = "JumpUp", [0x0035] = "JumpDown", [0x0036] = "JumpLeft", [0x0037] = "JumpRight", [0x0038] = "JumpUp2", [0x0039] = "JumpDown2", [0x003A] = "JumpLeft2", [0x003B] = "JumpRight2", [0x003C] = "Freeze1", [0x003D] = "Freeze2", [0x003E] = "Freeze4", [0x003F] = "Freeze8", [0x0040] = "Freeze15", [0x0041] = "Freeze16", [0x0042] = "Freeze32", [0x0043] = "TeleportUp", [0x0044] = "TeleportDown", [0x0045] = "DisappearTrue", [0x0046] = "DisappearFalse", [0x0047] = "LockDir", [0x0048] = "ReleaseDir", [0x0049] = "StopAnimation", [0x004A] = "ResumeAnimation", [0x004B] = "Exclamation", [0x004C] = "WaitWalkUpSlow", [0x004D] = "WaitWalkDownSlow", [0x004E] = "WaitWalkLeftSlow",//Seems to make the player run in HGSS? [0x004F] = "WaitWalkRightSlow", [0x0050] = "WaitWalkUp", [0x0051] = "WaitWalkDown", [0x0052] = "WaitWalkLeft", [0x0053] = "WaitWalkRight", [0x0054] = "WaitMoveUp", [0x0055] = "WaitMoveDown", [0x0056] = "WaitMoveLeft", [0x0057] = "WaitMoveRight", [0x0058] = "WaitWalkBackUp", [0x0059] = "WaitWalkBackDown", [0x005A] = "WaitWalkBackLeft", [0x005B] = "WaitWalkBackRight", [0x005C] = "WaitJumpLeft1", [0x005D] = "WaitJumpRight1", [0x005E] = "WaitJumpLeft2", [0x005F] = "WaitJumpRight2", [0x0064] = "WaitMoveSite", [0x0065] = "WaitJumpSite", [0x0067] = "WaitDoubleExclamation", [0x0068] = "WaitMoveForever", [0x00FE] = "End" }; public static HashSet movementEndCodes = new HashSet() { 0x00FE, }; public static Dictionary DPPtScrCmdNames = new Dictionary() { [0x0000] = "Nop", [0x0001] = "Dummy", [0x0002] = "End", [0x0003] = "WaitTime", [0x0004] = "RegValueSet", [0x0005] = "RegDataSet", [0x0006] = "RegAdrsSet", [0x0007] = "AdrsValueSet", [0x0008] = "AdrsRegSet", [0x0009] = "RegRegSet", [0x000A] = "AdrsAdrsSet", [0x000B] = "CompareRegs", [0x000C] = "CompareRegValue", [0x000D] = "CompareRegAdrs", [0x000E] = "CompareAdrsReg", [0x000F] = "CompareAdrsValue", [0x0010] = "CompareAdrsAdrs", [0x0011] = "CompareVarValue", [0x0012] = "CompareVars", [0x0013] = "ParallelCommonScript", [0x0014] = "CommonScript", [0x0015] = "LocalScript", [0x0016] = "Jump", [0x0017] = "JumpIfObjID", [0x0018] = "JumpIfEventID", [0x0019] = "JumpIfPlayerDir", [0x001A] = "Call", [0x001B] = "Return", [0x001C] = "JumpIf", [0x001D] = "CallIf", [0x001E] = "SetFlag", [0x001F] = "ClearFlag", [0x0020] = "CheckFlag", [0x0021] = "CheckFlagToVar", [0x0022] = "SetFlagFromVar", [0x0023] = "SetTrainerFlag", [0x0024] = "ClearTrainerFlag", [0x0025] = "CheckTrainerFlag", [0x0026] = "IncrementVar", [0x0027] = "DecrementVar", [0x0028] = "SetVar", [0x0029] = "SetVarFromVariable", [0x002A] = "SetVarFromFlexible", [0x002B] = "MessageAll", [0x002C] = "Message", [0x002D] = "MessageFlex", [0x002E] = "MessageNoSkip", [0x0030] = "WaitAB", [0x0031] = "WaitButton", [0x0032] = "WaitABPad", [0x0033] = "OpenMessage", [0x0034] = "CloseMessage", [0x0035] = "FreezeMessage", [0x0036] = "SetIconBoard", [0x0037] = "SetTextBoard", [0x0038] = "ShowBoard", [0x0039] = "WaitBoard", [0x003A] = "BoardMessage", [0x003B] = "CloseBoard", [0x003C] = "Menu", [0x003E] = "YesNoBox", [0x003F] = "DummyGuinnessBox", [0x0040] = "MultiStandardText", [0x0041] = "MultiLocalText", [0x0042] = "AddMultiOption", [0x0043] = "ShowMulti", [0x0044] = "ListStandardText", [0x0045] = "ListLocalText", [0x0046] = "AddListOption", [0x0047] = "ShowList", [0x0048] = "MultiColumn", [0x0049] = "PlayFanfare", [0x004A] = "StopFanfare", [0x004B] = "WaitFanfare", [0x004C] = "PlayCry", [0x004D] = "WaitCry", [0x004E] = "PlaySound", [0x004F] = "WaitSound", [0x0050] = "PlayMusic", [0x0051] = "StopMusic", [0x0052] = "PlayDefaultMusic", [0x0053] = "SetMusic", [0x0054] = "FadeOutMusic", [0x0055] = "FadeInMusic", [0x0057] = "PlayFieldBGM", [0x0059] = "CheckChatotCry", [0x005A] = "StartChatotCry", [0x005B] = "StopChatotCry", [0x005C] = "SaveChatotCry", [0x005D] = "LoadSpearPillarAudio", [0x005E] = "Movement", [0x005F] = "WaitMovement", [0x0060] = "LockAll", [0x0061] = "ReleaseAll", [0x0062] = "Lock", [0x0063] = "Release", [0x0064] = "AddOW", [0x0065] = "RemoveOW", [0x0066] = "LockCamera", [0x0067] = "ReleaseCamera", [0x0068] = "FacePlayer", [0x0069] = "GetPlayerPosition", [0x006A] = "GetOWPosition", [0x006C] = "KeepOverworld", [0x006D] = "SetOWMovement", [0x006E] = "SetFollowingOverworld", [0x006F] = "GiveMoney", [0x0070] = "TakeMoney", [0x0071] = "CompareMoney", [0x0072] = "ShowMoney", [0x0073] = "HideMoney", [0x0074] = "UpdateMoney", [0x0075] = "ShowCoins", [0x0076] = "HideCoins", [0x0077] = "UpdateCoins", [0x0078] = "CheckCoins", [0x0079] = "GiveCoins", [0x007A] = "TakeCoins", [0x007B] = "GiveItem", [0x007C] = "TakeItem", [0x007D] = "CheckItemSpace", [0x007E] = "CheckItem", [0x007F] = "CheckItemIsMachine", [0x0080] = "GetItemPocket", [0x0081] = "DummyGivePCItem", [0x0082] = "DummyCheckPCItem", [0x0083] = "GiveGoods", [0x0084] = "DummyTakeGoods", [0x0085] = "CheckGoodsSpace", [0x0086] = "DummyCheckGoods", [0x0087] = "GiveTrap", [0x0088] = "DummyTakeTrap", [0x0089] = "DummyCheckTrapSpace", [0x008A] = "DummyCheckTrap", [0x008B] = "DummyGiveTreasure", [0x008C] = "DummyTakeTreasure", [0x008D] = "DummyCheckTreasureSpace", [0x008E] = "DummyCheckTreasure", [0x008F] = "GiveSphere", [0x0090] = "DummyTakeSphere", [0x0091] = "DummyCheckSphereSpace", [0x0092] = "DummyCheckSphere", [0x0093] = "CheckSealAmount", [0x0094] = "GiveSeal", [0x0095] = "CheckPokemonForm", [0x0096] = "GivePokemon", [0x0097] = "GivePokemonEgg", [0x0098] = "ReplaceMove", [0x0099] = "CheckMove", [0x009A] = "CheckMoveInParty", [0x009C] = "DummySetWeather", [0x009D] = "DummyInitWeather", [0x009E] = "DummyUpdateWeather", [0x009F] = "DummyCheckMapPosition", [0x00A0] = "DummyCountPartyPokemon", [0x00A1] = "ReturnScreen", [0x00A6] = "DressPokemon", [0x00A7] = "DisplayDressedPokemon", [0x00A8] = "DisplayContestPokemon", [0x00A9] = "SealCapsuleScreen", [0x00AA] = "WorldMapScreen", [0x00AB] = "PCBoxScreen", [0x00AC] = "DrawUnion", [0x00AD] = "TrainerCaseUnion", [0x00AE] = "TradeUnion", [0x00AF] = "RecordMixingUnion", [0x00B0] = "EndGameScreen", [0x00B1] = "PCHallOfFameScreen", [0x00B4] = "StarterSelectionScreen", [0x00B5] = "EndStarterSelectionScreen", [0x00BA] = "ChoosePlayerName", [0x00BB] = "ChoosePokemonNickname", [0x00BC] = "FadeScreen", [0x00BD] = "WaitFadeScreen", [0x00BE] = "Warp", [0x00BF] = "RockClimbAnimation", [0x00C0] = "SurfAnimation", [0x00C1] = "WaterfallAnimation", [0x00C2] = "FlyAnimation", [0x00C3] = "FlashAnimation", [0x00C4] = "DefogAnimation", [0x00C5] = "CutAnimation", [0x00C6] = "Tuxedo", [0x00C7] = "CheckBike", [0x00C8] = "RideBike", [0x00C9] = "CyclingRoad", [0x00CA] = "CheckPlayerForm", [0x00CB] = "SetPlayerForm", [0x00CC] = "UpdatePlayerForm", [0x00CD] = "TextPlayerName", [0x00CE] = "TextRivalName", [0x00CF] = "TextCounterpart", [0x00D0] = "TextPokemon", [0x00D1] = "TextItem", [0x00D2] = "TextPocket", [0x00D3] = "TextMachineMove", [0x00D4] = "TextMove", [0x00D5] = "TextNumber", [0x00D6] = "TextPokeNickname", [0x00D7] = "TextPoketch", [0x00D8] = "TextTrainer", [0x00D9] = "TextPlayerTrainerType", [0x00DA] = "TextPokemonStored", [0x00DB] = "TextStarterPokemon", [0x00DC] = "TextRivalStarter", [0x00DD] = "TextCounterpartStarter", [0x00DE] = "CheckStarter", [0x00DF] = "TextGoods", [0x00E0] = "TextTrap", [0x00E1] = "TextTreasure", [0x00E2] = "TextMapName", [0x00E3] = "GetSwarmInfo", [0x00E4] = "TrainerID", [0x00E5] = "TrainerBattle", [0x00E6] = "TrainerMessage", [0x00E7] = "TrainerMsgCheck", [0x00E8] = "TrainerRematchMsgCheck", [0x00E9] = "TrainerTypeCheck", [0x00EA] = "TrainerMusic", [0x00EB] = "LostBattle", [0x00EC] = "CheckBattleIsLost", [0x00ED] = "CheckDefeatedPokemon", [0x00EE] = "Check2vs2", [0x00EF] = "DummyTrainerBattle", [0x00F0] = "DummyTrainerFlag", [0x00F1] = "DummyTrainerFlagJump", [0x00F7] = "PokemonContest", [0x0111] = "FlashContest", [0x0112] = "EndFlash", [0x0116] = "ShowLinkCountRecord", [0x0119] = "CheckPokerus", [0x011A] = "GetPokemonGender", [0x011B] = "SetWarpData", [0x011C] = "GetElevatorFloor", [0x011D] = "ElevatorBox", [0x011E] = "CountSinnohDexSeen", [0x011F] = "CountSinnohDexObtained", [0x0120] = "CountNationalDexSeen", [0x0121] = "CountNationalDexObtained", [0x0122] = "DummyNationalDexCheck", [0x0123] = "GetDexProgressMsg", [0x0124] = "WildBattle", [0x0125] = "FirstBattle", [0x0126] = "CatchTutorial", [0x0127] = "UpdateHoneyTree", [0x0128] = "CheckHoneyTree", [0x0129] = "HoneyTreeBattle", [0x012A] = "StopHoneyTreeAnimation", [0x012B] = "SignatureScreen", [0x012C] = "CheckSaveGame", [0x012D] = "SaveGame", [0x012E] = "CheckPortrait", [0x012F] = "CheckContestPortrait", [0x0131] = "GivePoketch", [0x0132] = "PoketchFlag", [0x0133] = "GivePoketchApp", [0x0134] = "CheckPoketchApp", [0x0147] = "MartScreen", [0x0148] = "SpMartScreen", [0x0149] = "GoodsMartScreen", [0x014A] = "SealMartScreen", [0x014B] = "DummyLostBattle", [0x014C] = "SetLastWarp", [0x014D] = "CheckPlayerGender", [0x014E] = "HealPokemon", [0x014F] = "DummyUnderground", [0x0152] = "SetPlayerDirComm", [0x0157] = "CheckPokedex", [0x0158] = "GivePokedex", [0x0159] = "CheckShoes", [0x015A] = "GiveShoes", [0x015B] = "CheckBadge", [0x015C] = "GiveBadge", [0x015D] = "CountBadges", [0x015E] = "CheckBag", [0x015F] = "GiveBag", [0x0160] = "CheckPartner", [0x0161] = "SetPartner", [0x0162] = "ClearPartner", [0x0163] = "CheckStepFlag", [0x0164] = "SetStepFlag", [0x0165] = "ClearStepFlag", [0x0166] = "CheckGameIsCompleted", [0x0167] = "GameCompleted", [0x0168] = "DoorAnimation", [0x0169] = "WaitDoor", [0x016A] = "FreeDoor", [0x016B] = "OpenDoor", [0x016C] = "CloseDoor", [0x016D] = "GetDaycareNames", [0x016E] = "GetDaycareStatus", [0x016F] = "InitPastoriaGym", [0x0170] = "PastoriaGymButton", [0x0171] = "InitHearthomeGym", [0x0172] = "HearthomeGymLift", [0x0173] = "InitCanalaveGym", [0x0174] = "InitVeilstoneGym", [0x0175] = "InitSunyshoreGym", [0x0176] = "SunyshoreGymGear", [0x0177] = "GetPartyCount", [0x0178] = "BagScreen", [0x0179] = "GetBagSelection", [0x017A] = "CheckPocketItems", [0x017B] = "TextBerry", [0x017C] = "TextNature", [0x017D] = "GetBerryGrowth", [0x017E] = "GetBerrySpecies", [0x017F] = "GetBerryMulch", [0x0180] = "GetBerryDryness", [0x0181] = "CheckBerryAmount", [0x0182] = "SetBerryMulch", [0x0183] = "SetBerrySpecies", [0x0184] = "WateringAnimation", [0x0185] = "HarvestBerries", [0x0186] = "SetOWDefaultPosition", [0x0187] = "SetOWPosition", [0x0188] = "SetOWDefaultMovement", [0x0189] = "SetOWDefaultDirection", [0x018A] = "SetWarpPosition", [0x018B] = "SetSpawnablePosition", [0x018C] = "SetOWDirection", [0x0190] = "WaitTimeOrAB", [0x0191] = "PokemonSelectionScreen", [0x0193] = "GetSelectedPartySlot", [0x0198] = "GetPartyPokemonID", [0x0199] = "CheckTradedPokemon", [0x019A] = "CountPartyBornPokemon", [0x019B] = "CountRemainingPokemon", [0x019C] = "CountTotalAlivePokemon", [0x019D] = "CountPartyEggs", [0x01A3] = "TakeMoneyFlex", [0x01AB] = "CompareMoneyFlex", [0x01AC] = "EggHatchScreen", //This command is dangerous when used without an egg in party [0x01AD] = "DummyDaycare", [0x01AE] = "CheckDaycareLevel", [0x01B1] = "UnvanishOverworld", [0x01B2] = "VanishOverworld", [0x01B3] = "MailScreen", [0x01B4] = "CountMail", [0x01B6] = "GetTimePeriod", [0x01B7] = "GetRandom", [0x01B8] = "DummyGetRandom", [0x01B9] = "GetPokemonHappiness", [0x01BA] = "AddHappiness", [0x01BB] = "SubHappiness", [0x01BD] = "GetPlayerDirection", [0x01C0] = "CheckBornPokemonInParty", [0x01C1] = "ComparePokemonPlayerSize", [0x01C2] = "SetPokemonSizeRecord", [0x01C3] = "TextPartyPokemonSize", [0x01C4] = "TextPokemonSizeRecord", [0x01C5] = "InitPokemonSizeRecord", [0x01C8] = "GetMoveCount", [0x01C9] = "DeleteMove", [0x01CA] = "GetPartyPokemonMove", [0x01CB] = "TextPartyPokemonMove", [0x01CD] = "CreateJournalData", [0x01CF] = "Strength", [0x01D0] = "Flash", [0x01D1] = "Defog", [0x01E8] = "CheckCompleteSinnohDex", [0x01E9] = "CheckCompleteNationalDex", [0x01EA] = "RegisterSinnohPokedex", [0x01EB] = "RegisterNationalPokedex", [0x01F1] = "GetFossilCount", [0x01F4] = "GetPokeNameFromFossil", [0x01F5] = "CheckFossil", [0x01F6] = "CountPokemonUnderLevel", [0x01F7] = "SurvivePoison", [0x01F8] = "FinishOverworldScreen", [0x01F9] = "DummyGetVar", [0x01FA] = "MessageAllFromArchive", [0x01FB] = "MessageFromArchive", [0x0200] = "GetPreviousHeaderID", [0x0201] = "GetCurrentHeaderID", [0x0202] = "SetSafariFlag", [0x0203] = "BattleRoomWarp", [0x0204] = "ExitBattleRoom", [0x0205] = "GeonetScreen", [0x0206] = "GreatMarshBinoculars", [0x0208] = "ShowPokemonPic", [0x0209] = "HidePokemonPic", [0x020D] = "SpearPillarSequence", [0x020E] = "KeepSafariTrain", [0x020F] = "SafariTrainAnimation", [0x0210] = "CheckSafariTrainMovement", [0x0211] = "IgnoreHeights", [0x0212] = "GetPokemonNature", [0x0213] = "CheckPartyNature", [0x0214] = "CheckSpiritombCounter", [0x0215] = "ClearAmitySquareSteps", [0x0216] = "CheckAmitySquareSteps", [0x0217] = "GetAmitySquareAccessory", [0x021C] = "AddRoamingPokemon", [0x021D] = "UnionGroup", [0x0221] = "RememberMoveScreen", [0x0222] = "DummyMoveCommand", // [0x0223] = "ResponseRememberMove", [0x0224] = "TeachMoveScreen", [0x0225] = "ResponseTeachMove", [0x0226] = "InitTrade", [0x0227] = "GetOfferedPokemon", [0x0228] = "GetRequestedPokemon", [0x0229] = "TradePokemonScreen", [0x022A] = "EndTrade", [0x022B] = "ActivateInternationalDex", [0x022C] = "ActivateDimorphismDex", [0x022D] = "NationalDex", [0x022E] = "CountPokemonRibbons", [0x022F] = "CountPartyRibbons", [0x0230] = "CheckRibbon", [0x0231] = "GiveRibbon", [0x0232] = "TextRibbon", [0x0233] = "CountPokemonEVs", [0x0234] = "GetDayOfWeek", [0x0239] = "ShowRulesList", [0x023A] = "GetPokemonFootprint", [0x023B] = "PCHealAnimation", [0x023C] = "ElevatorAnimation", [0x023D] = "ShipAnimation", [0x023E] = "MysteryGiftGive", [0x0246] = "CheckVersion", [0x0247] = "FirstPokemonInParty", [0x0248] = "GetPartyPokemonTypes", [0x024E] = "GetLottoNumber", [0x024F] = "CheckWinLotto", [0x0250] = "InitLotto", [0x0252] = "CountPCFreeSpace", [0x0258] = "SetPlayerSavingForm", [0x0259] = "ResetPlayerForm", [0x0261] = "TextAccessory", [0x0262] = "CheckPokemonInParty", [0x0263] = "SetDeoxysForm", //0x0264 is different between DP/Plat [0x0267] = "SlotMachine", [0x0268] = "GetHour", [0x0269] = "ShakeOverworld", [0x026A] = "BlinkOverworld", [0x026B] = "CheckRegis", [0x026D] = "MessageUnown", [0x026E] = "CheckGBACartidge", [0x026F] = "ResetSpiritombCounter", [0x0270] = "SetMatrixAlternativeMap", [0x0271] = "WriteStone", [0x0272] = "TextStoneName", [0x027A] = "SunyshoreBinoculars", [0x0280] = "TextNumberSp", [0x0282] = "CheckBirthday", [0x0283] = "MusicVolumeSet", [0x0284] = "CountSeenUnown", [0x028B] = "CheckEventValidity", [0x028F] = "CountLeagueVictories", [0x0297] = "GetBP", [0x0298] = "AddBP", [0x0299] = "SubBP", [0x029A] = "CompareBP", [0x029F] = "ShakeCamera", [0x02A0] = "Battle2vs2", [0x02A5] = "PartyPokemonTradeScreen", [0x02AC] = "ActivateMysteryGift", [0x02AD] = "GetOWMovement", [0x02AE] = "CountPlayingSeq", [0x02B3] = "TextSeal", [0x02B4] = "DummyLockAll", [0x02BC] = "LastBattleCheckCaught", [0x02BD] = "SpWildBattle", [0x02BE] = "CheckTrainerCardLevel", [0x02BF] = "DummyRideBike", [0x02C1] = "ShowSaveBox", [0x02C2] = "HideSaveBox", [0x02C3] = "ScopeMode", [0x0333] = "SetFieldVolume", }; public static Dictionary DPPtScrCmdParameters = new Dictionary() { [0x0000] = new byte[1] { 0 }, [0x0001] = new byte[1] { 0 }, [0x0002] = new byte[1] { 0 }, [0x0003] = new byte[] { 2, 2 }, [0x0004] = new byte[] { 1, 1 }, [0x0005] = new byte[] { 1, 4 }, [0x0006] = new byte[] { 1, 4 }, [0x0007] = new byte[] { 4, 1 }, [0x0008] = new byte[] { 4, 1 }, [0x0009] = new byte[] { 1, 1 }, [0x000A] = new byte[] { 4, 4 }, [0x000B] = new byte[] { 1, 1 }, [0x000C] = new byte[] { 1, 1 }, [0x000D] = new byte[] { 1, 4 }, [0x000E] = new byte[] { 4, 1 }, [0x000F] = new byte[] { 4, 1 }, [0x0010] = new byte[] { 4, 4 }, [0x0011] = new byte[] { 2, 2 }, [0x0012] = new byte[] { 2, 2 }, [0x0013] = new byte[] { 2 }, [0x0014] = new byte[] { 2 }, [0x0015] = new byte[1] { 0 }, [0x0016] = new byte[] { 4 }, [0x0017] = new byte[] { 1, 4 }, [0x0018] = new byte[] { 1, 4 }, [0x0019] = new byte[] { 1, 4 }, [0x001A] = new byte[] { 4 }, [0x001B] = new byte[1] { 0 }, [0x001C] = new byte[] { 1, 4 }, [0x001D] = new byte[] { 1, 4 }, [0x001E] = new byte[] { 2 }, [0x001F] = new byte[] { 2 }, [0x0020] = new byte[] { 2 }, [0x0021] = new byte[] { 2, 2 }, [0x0022] = new byte[] { 2 }, [0x0023] = new byte[] { 2 }, [0x0024] = new byte[] { 2 }, [0x0025] = new byte[] { 2 }, [0x0026] = new byte[] { 2, 2 }, [0x0027] = new byte[] { 2, 2 }, [0x0028] = new byte[] { 2, 2 }, [0x0029] = new byte[] { 2, 2 }, [0x002A] = new byte[] { 2, 2 }, [0x002B] = new byte[] { 1 }, [0x002C] = new byte[] { 1 }, [0x002D] = new byte[] { 2 }, [0x002E] = new byte[] { 2 }, [0x002F] = new byte[] { 1 }, [0x0030] = new byte[1] { 0 }, [0x0031] = new byte[1] { 0 }, [0x0032] = new byte[1] { 0 }, [0x0033] = new byte[1] { 0 }, [0x0034] = new byte[1] { 0 }, [0x0035] = new byte[1] { 0 }, [0x0036] = new byte[] { 1, 1, 2, 2 }, [0x0037] = new byte[] { 1, 2 }, [0x0038] = new byte[] { 1 }, [0x0039] = new byte[1] { 0 }, [0x003A] = new byte[] { 1, 2 }, [0x003B] = new byte[] { 2 }, [0x003C] = new byte[1] { 0 }, [0x003D] = new byte[] { 1, 1, 1, 1, 1, 1 }, [0x003E] = new byte[] { 2 }, [0x003F] = new byte[1] { 0 }, [0x0040] = new byte[] { 1, 1, 1, 1, 2 }, [0x0041] = new byte[] { 1, 1, 1, 1, 2 }, [0x0042] = new byte[] { 1, 1 }, [0x0043] = new byte[1] { 0 }, [0x0044] = new byte[] { 1, 1, 1, 1, 2 }, [0x0045] = new byte[] { 1, 1, 1, 1, 2 }, [0x0046] = new byte[] { 2, 2, 2 }, [0x0047] = new byte[1] { 0 }, [0x0048] = new byte[] { 1 }, [0x0049] = new byte[] { 2 }, [0x004A] = new byte[] { 2 }, [0x004B] = new byte[] { 2 }, [0x004C] = new byte[] { 2, 2 }, [0x004D] = new byte[1] { 0 }, [0x004E] = new byte[] { 2 }, [0x004F] = new byte[1] { 0 }, [0x0050] = new byte[] { 2 }, [0x0051] = new byte[] { 2 }, [0x0052] = new byte[1] { 0 }, [0x0053] = new byte[] { 2 }, [0x0054] = new byte[] { 2, 2 }, [0x0055] = new byte[] { 2 }, [0x0056] = new byte[] { 1, 1 }, [0x0057] = new byte[] { 2 }, [0x0058] = new byte[] { 1 }, [0x0059] = new byte[] { 2 }, [0x005A] = new byte[] { 2 }, [0x005B] = new byte[1] { 0 }, [0x005C] = new byte[1] { 0 }, [0x005D] = new byte[1] { 0 }, [0x005E] = new byte[] { 2, 4 }, [0x005F] = new byte[1] { 0 }, [0x0060] = new byte[1] { 0 }, [0x0061] = new byte[1] { 0 }, [0x0062] = new byte[] { 2 }, [0x0063] = new byte[] { 2 }, [0x0064] = new byte[] { 2 }, [0x0065] = new byte[] { 2 }, [0x0066] = new byte[] { 2, 2 }, [0x0067] = new byte[1] { 0 }, [0x0068] = new byte[1] { 0 }, [0x0069] = new byte[] { 2, 2 }, [0x006A] = new byte[] { 2, 2, 2 }, [0x006B] = new byte[] { 2, 2, 2 }, [0x006C] = new byte[] { 2, 1 }, [0x006D] = new byte[] { 2, 2 }, [0x006E] = new byte[1] { 0 }, [0x006F] = new byte[] { 4 }, [0x0070] = new byte[] { 4 }, [0x0071] = new byte[] { 2, 4 }, [0x0072] = new byte[] { 2, 2 }, [0x0073] = new byte[1] { 0 }, [0x0074] = new byte[1] { 0 }, [0x0075] = new byte[] { 2, 2 }, [0x0076] = new byte[1] { 0 }, [0x0077] = new byte[1] { 0 }, [0x0078] = new byte[] { 2 }, [0x0079] = new byte[] { 2 }, [0x007A] = new byte[] { 2 }, [0x007B] = new byte[] { 2, 2, 2 }, [0x007C] = new byte[] { 2, 2, 2 }, [0x007D] = new byte[] { 2, 2, 2 }, [0x007E] = new byte[] { 2, 2, 2 }, [0x007F] = new byte[] { 2, 2 }, [0x0080] = new byte[] { 2, 2 }, [0x0081] = new byte[1] { 0 }, [0x0082] = new byte[1] { 0 }, [0x0083] = new byte[] { 2, 2, 2 }, [0x0084] = new byte[1] { 0 }, [0x0085] = new byte[] { 2, 2, 2 }, [0x0086] = new byte[1] { 0 }, [0x0087] = new byte[] { 2, 2, 2 }, [0x0088] = new byte[1] { 0 }, [0x0089] = new byte[1] { 0 }, [0x008A] = new byte[1] { 0 }, [0x008B] = new byte[1] { 0 }, [0x008C] = new byte[1] { 0 }, [0x008D] = new byte[1] { 0 }, [0x008E] = new byte[1] { 0 }, [0x008F] = new byte[] { 2, 2, 2 }, [0x0090] = new byte[1] { 0 }, [0x0091] = new byte[1] { 0 }, [0x0092] = new byte[1] { 0 }, [0x0093] = new byte[] { 2, 2 }, [0x0094] = new byte[] { 2, 2 }, [0x0095] = new byte[] { 2, 2 }, [0x0096] = new byte[] { 2, 2, 2, 2 }, [0x0097] = new byte[] { 2, 2 }, [0x0098] = new byte[] { 2, 2, 2 }, [0x0099] = new byte[] { 2, 2, 2 }, [0x009A] = new byte[] { 2, 2 }, [0x009B] = new byte[] { 2, 2 }, [0x009C] = new byte[1] { 0 }, [0x009D] = new byte[1] { 0 }, [0x009E] = new byte[1] { 0 }, [0x009F] = new byte[1] { 0 }, [0x00A0] = new byte[1] { 0 }, [0x00A1] = new byte[1] { 0 }, [0x00A2] = new byte[1] { 0 }, [0x00A3] = new byte[1] { 0 }, [0x00A4] = new byte[1] { 0 }, [0x00A5] = new byte[1] { 0 }, [0x00A6] = new byte[] { 2, 2, 2 }, [0x00A7] = new byte[] { 2, 2 }, [0x00A8] = new byte[] { 2, 2 }, [0x00A9] = new byte[1] { 0 }, [0x00AA] = new byte[1] { 0 }, [0x00AB] = new byte[] { 1 }, [0x00AC] = new byte[1] { 0 }, [0x00AD] = new byte[1] { 0 }, [0x00AE] = new byte[1] { 0 }, [0x00AF] = new byte[1] { 0 }, [0x00B0] = new byte[1] { 0 }, [0x00B1] = new byte[1] { 0 }, [0x00B2] = new byte[] { 2, 2 }, [0x00B3] = new byte[] { 2 }, [0x00B4] = new byte[1] { 0 }, [0x00B5] = new byte[1] { 0 }, [0x00B6] = new byte[] { 2 }, [0x00B7] = new byte[] { 2, 2 }, [0x00B8] = new byte[] { 2 }, [0x00B9] = new byte[] { 2, 2 }, [0x00BA] = new byte[] { 2 }, [0x00BB] = new byte[] { 2, 2 }, [0x00BC] = new byte[] { 2, 2, 2, 2 }, [0x00BD] = new byte[1] { 0 }, [0x00BE] = new byte[] { 2, 2, 2, 2, 2 }, [0x00BF] = new byte[] { 2 }, [0x00C0] = new byte[] { 2 }, [0x00C1] = new byte[] { 2 }, [0x00C2] = new byte[] { 2, 2, 2 }, [0x00C3] = new byte[1] { 0 }, [0x00C4] = new byte[1] { 0 }, [0x00C5] = new byte[] { 2 }, [0x00C6] = new byte[1] { 0 }, [0x00C7] = new byte[] { 2 }, [0x00C8] = new byte[] { 1 }, [0x00C9] = new byte[] { 1 }, [0x00CA] = new byte[] { 2 }, [0x00CB] = new byte[] { 2 }, [0x00CC] = new byte[1] { 0 }, [0x00CD] = new byte[] { 1 }, [0x00CE] = new byte[] { 1 }, [0x00CF] = new byte[] { 1 }, [0x00D0] = new byte[] { 1, 2 }, [0x00D1] = new byte[] { 1, 2 }, [0x00D2] = new byte[] { 1, 2 }, [0x00D3] = new byte[] { 1, 2 }, [0x00D4] = new byte[] { 1, 2 }, [0x00D5] = new byte[] { 1, 2 }, [0x00D6] = new byte[] { 1, 2 }, [0x00D7] = new byte[] { 1, 2 }, [0x00D8] = new byte[] { 1, 2 }, [0x00D9] = new byte[] { 1 }, [0x00DA] = new byte[] { 1, 2, 2, 1 }, [0x00DB] = new byte[] { 1 }, [0x00DC] = new byte[] { 1 }, [0x00DD] = new byte[] { 1 }, [0x00DE] = new byte[] { 2 }, [0x00DF] = new byte[] { 1, 2 }, [0x00E0] = new byte[] { 1, 2 }, [0x00E1] = new byte[] { 1, 2 }, [0x00E2] = new byte[] { 1, 2 }, [0x00E3] = new byte[] { 2, 2 }, [0x00E4] = new byte[] { 2 }, [0x00E5] = new byte[] { 2, 2 }, [0x00E6] = new byte[] { 2, 2 }, [0x00E7] = new byte[] { 2, 2, 2 }, [0x00E8] = new byte[] { 2, 2, 2 }, [0x00E9] = new byte[] { 2 }, [0x00EA] = new byte[] { 2 }, [0x00EB] = new byte[1] { 0 }, [0x00EC] = new byte[] { 2 }, [0x00ED] = new byte[] { 2 }, [0x00EE] = new byte[] { 2 }, [0x00EF] = new byte[1] { 0 }, [0x00F0] = new byte[1] { 0 }, [0x00F1] = new byte[] { 4 }, [0x00F2] = new byte[] { 2, 2, 2, 2 }, [0x00F3] = new byte[] { 2, 2, 2, 2 }, [0x00F4] = new byte[1] { 0 }, [0x00F5] = new byte[1] { 0 }, [0x00F6] = new byte[1] { 0 }, [0x00F7] = new byte[] { 2 }, [0x00F8] = new byte[] { 2 }, [0x00F9] = new byte[] { 2 }, [0x00FA] = new byte[] { 2, 2, 2, 2 }, [0x00FB] = new byte[] { 2 }, [0x00FC] = new byte[1] { 0 }, [0x00FD] = new byte[] { 2, 2 }, [0x00FE] = new byte[] { 2, 2 }, [0x00FF] = new byte[] { 2, 2 }, [0x0100] = new byte[1] { 0 }, [0x0101] = new byte[1] { 0 }, [0x0102] = new byte[] { 2 }, [0x0103] = new byte[] { 2 }, [0x0104] = new byte[] { 2 }, [0x0105] = new byte[1] { 0 }, [0x0106] = new byte[] { 2 }, [0x0107] = new byte[] { 2 }, [0x0108] = new byte[] { 2 }, [0x0109] = new byte[] { 2 }, [0x010A] = new byte[] { 2, 2 }, [0x010B] = new byte[] { 2, 2 }, [0x010C] = new byte[] { 2 }, [0x010D] = new byte[] { 2 }, [0x010E] = new byte[] { 2 }, [0x010F] = new byte[] { 2 }, [0x0110] = new byte[] { 2, 2, 2, 2 }, [0x0111] = new byte[] { 2 }, [0x0112] = new byte[1] { 0 }, [0x0113] = new byte[1] { 0 }, [0x0114] = new byte[1] { 0 }, [0x0115] = new byte[] { 2, 2, 2 }, [0x0116] = new byte[1] { 0 }, [0x0117] = new byte[1] { 0 }, [0x0118] = new byte[1] { 0 }, [0x0119] = new byte[] { 2 }, [0x011A] = new byte[1] { 0 }, [0x011B] = new byte[] { 2, 2, 2, 2, 2 }, [0x011C] = new byte[] { 2 }, [0x011E] = new byte[] { 2 }, [0x011F] = new byte[1] { 0 }, [0x0120] = new byte[] { 2 }, [0x0121] = new byte[] { 2 }, [0x0122] = new byte[1] { 0 }, [0x0123] = new byte[] { 1, 2 }, [0x0124] = new byte[] { 2, 2 }, //0x0125 is different between DP and PT [0x0126] = new byte[1] { 0 }, [0x0127] = new byte[1] { 0 }, [0x0128] = new byte[] { 2 }, [0x0129] = new byte[1] { 0 }, [0x012A] = new byte[1] { 0 }, [0x012B] = new byte[1] { 0 }, [0x012C] = new byte[] { 2 }, [0x012D] = new byte[] { 2 }, [0x012E] = new byte[] { 2, 2 }, [0x012F] = new byte[] { 2, 2 }, [0x0130] = new byte[] { 2 }, [0x0131] = new byte[1] { 0 }, [0x0132] = new byte[] { 2 }, [0x0133] = new byte[] { 2 }, [0x0134] = new byte[] { 2, 2 }, [0x0135] = new byte[] { 2 }, [0x0136] = new byte[1] { 0 }, [0x0137] = new byte[1] { 0 }, [0x0138] = new byte[] { 2 }, [0x0139] = new byte[] { 2 }, [0x013A] = new byte[1] { 0 }, [0x013B] = new byte[1] { 0 }, [0x013C] = new byte[] { 2 }, [0x013D] = new byte[1] { 0 }, [0x013E] = new byte[1] { 0 }, [0x013F] = new byte[] { 2, 2 }, [0x0140] = new byte[] { 2 }, [0x0141] = new byte[] { 2 }, [0x0142] = new byte[1] { 0 }, [0x0143] = new byte[] { 2, 2 }, [0x0144] = new byte[] { 2 }, [0x0145] = new byte[] { 2 }, [0x0146] = new byte[] { 2, 2 }, [0x0147] = new byte[] { 2 }, [0x0148] = new byte[] { 2 }, [0x0149] = new byte[] { 2 }, [0x014A] = new byte[] { 2 }, [0x014B] = new byte[1] { 0 }, [0x014C] = new byte[] { 2 }, [0x014D] = new byte[] { 2 }, [0x014E] = new byte[1] { 0 }, [0x014F] = new byte[1] { 0 }, [0x0150] = new byte[1] { 0 }, [0x0151] = new byte[1] { 0 }, [0x0152] = new byte[] { 2 }, [0x0153] = new byte[1] { 0 }, [0x0154] = new byte[1] { 0 }, [0x0155] = new byte[] { 2, 2 }, [0x0156] = new byte[] { 2 }, [0x0157] = new byte[] { 2 }, [0x0158] = new byte[1] { 0 }, [0x0159] = new byte[] { 2 }, [0x015A] = new byte[1] { 0 }, [0x015B] = new byte[] { 2, 2 }, [0x015C] = new byte[] { 2 }, [0x015D] = new byte[] { 2 }, [0x015E] = new byte[] { 2 }, [0x015F] = new byte[1] { 0 }, [0x0160] = new byte[] { 2 }, [0x0161] = new byte[1] { 0 }, [0x0162] = new byte[1] { 0 }, [0x0163] = new byte[] { 2 }, [0x0164] = new byte[1] { 0 }, [0x0165] = new byte[1] { 0 }, [0x0166] = new byte[] { 2 }, [0x0167] = new byte[1] { 0 }, [0x0168] = new byte[] { 2, 2, 2, 2, 1 }, [0x0169] = new byte[] { 1 }, [0x016A] = new byte[] { 1 }, [0x016B] = new byte[] { 1 }, [0x016C] = new byte[] { 1 }, [0x016D] = new byte[1] { 0 }, [0x016E] = new byte[] { 2 }, [0x016F] = new byte[1] { 0 }, [0x0170] = new byte[1] { 0 }, [0x0171] = new byte[1] { 0 }, [0x0172] = new byte[1] { 0 }, [0x0173] = new byte[1] { 0 }, [0x0174] = new byte[1] { 0 }, [0x0175] = new byte[] { 1 }, [0x0176] = new byte[] { 1 }, [0x0177] = new byte[] { 2 }, [0x0178] = new byte[] { 1 }, [0x0179] = new byte[] { 2 }, [0x017A] = new byte[] { 2, 2 }, [0x017B] = new byte[] { 1, 2, 2 }, [0x017C] = new byte[] { 1, 2 }, [0x017D] = new byte[] { 2 }, [0x017E] = new byte[] { 2 }, [0x017F] = new byte[] { 2 }, [0x0180] = new byte[] { 2 }, [0x0181] = new byte[] { 2 }, [0x0182] = new byte[] { 2 }, [0x0183] = new byte[] { 2 }, [0x0184] = new byte[] { 2 }, [0x0185] = new byte[1] { 0 }, [0x0186] = new byte[] { 2, 2, 2 }, [0x0187] = new byte[] { 2, 2, 2, 2, 2 }, [0x0188] = new byte[] { 2, 2 }, [0x0189] = new byte[] { 2, 2 }, [0x018A] = new byte[] { 2, 2, 2 }, [0x018B] = new byte[] { 2, 2, 2 }, [0x018C] = new byte[] { 2, 2 }, [0x018D] = new byte[1] { 0 }, [0x018E] = new byte[1] { 0 }, [0x018F] = new byte[] { 2 }, [0x0190] = new byte[] { 2 }, [0x0191] = new byte[1] { 0 }, [0x0192] = new byte[1] { 0 }, [0x0193] = new byte[] { 2 }, [0x0194] = new byte[] { 2, 2, 2, 2 }, [0x0195] = new byte[] { 2, 2 }, [0x0196] = new byte[] { 2 }, [0x0197] = new byte[] { 2 }, [0x0198] = new byte[] { 2, 2 }, [0x0199] = new byte[] { 2, 2 }, [0x019A] = new byte[] { 2 }, [0x019B] = new byte[] { 2, 2 }, [0x019C] = new byte[] { 2 }, [0x019D] = new byte[] { 2 }, [0x019E] = new byte[] { 2, 2 }, [0x019F] = new byte[] { 2 }, [0x01A0] = new byte[1] { 0 }, [0x01A1] = new byte[1] { 0 }, [0x01A2] = new byte[1] { 0 }, [0x01A3] = new byte[] { 2 }, [0x01A4] = new byte[] { 2, 2 }, [0x01A5] = new byte[1] { 0 }, [0x01A6] = new byte[1] { 0 }, [0x01A7] = new byte[1] { 0 }, [0x01A8] = new byte[1] { 0 }, [0x01A9] = new byte[1] { 0 }, [0x01AA] = new byte[] { 2, 2 }, [0x01AB] = new byte[] { 2, 2 }, [0x01AC] = new byte[1] { 0 }, [0x01AD] = new byte[1] { 0 }, [0x01AE] = new byte[] { 2, 2 }, [0x01AF] = new byte[] { 2, 2, 2 }, [0x01B0] = new byte[] { 2 }, [0x01B1] = new byte[] { 2 }, [0x01B2] = new byte[] { 2 }, [0x01B3] = new byte[1] { 0 }, [0x01B4] = new byte[] { 2 }, [0x01B5] = new byte[] { 2 }, [0x01B6] = new byte[] { 2 }, [0x01B7] = new byte[] { 2, 2 }, [0x01B8] = new byte[] { 2, 2 }, [0x01B9] = new byte[] { 2, 2 }, [0x01BA] = new byte[] { 2, 2 }, [0x01BB] = new byte[] { 2, 2 }, [0x01BC] = new byte[] { 2, 2, 2, 2 }, [0x01BD] = new byte[] { 2 }, [0x01BE] = new byte[] { 2 }, [0x01BF] = new byte[] { 2 }, [0x01C0] = new byte[] { 2, 2 }, [0x01C1] = new byte[] { 2, 2 }, [0x01C2] = new byte[] { 2 }, [0x01C3] = new byte[] { 2, 2, 2 }, [0x01C4] = new byte[] { 2, 2, 2 }, [0x01C5] = new byte[1] { 0 }, [0x01C6] = new byte[] { 2 }, [0x01C7] = new byte[] { 2 }, [0x01C8] = new byte[] { 2, 2 }, [0x01C9] = new byte[] { 2, 2 }, [0x01CA] = new byte[] { 2, 2, 2 }, [0x01CB] = new byte[] { 1, 2, 2 }, [0x01CC] = new byte[1] { 0 }, [0x01CD] = new byte[] { 2, 2, 2, 2, 2 }, [0x01CE] = new byte[1] { 0 }, [0x01CF] = new byte[] { 0xFF, 1, //0xFF signals that this scrcmd takes a variable num of parameters, 1 is the size of the 1st par 0, 0, //if 1st par is 0, read 0 parameters 1, 0, //if 1st par is 1, read 0 parameters 2, 1, 2 //if 1st par is 2, read 1 parameter of size = 2 bytes }, [0x01D0] = new byte[] { 0xFF, 1, //0xFF signals that this scrcmd takes a variable num of parameters, 1 is the size of the 1st par 0, 0, //if 1st par is 0, read 0 parameters 1, 0, //if 1st par is 1, read 0 parameters 2, 1, 2 //if 1st par is 2, read 1 parameter of size = 2 bytes }, [0x01D1] = new byte[] { 0xFF, 1, //0xFF signals that this scrcmd takes a variable num of parameters, 1 is the size of the 1st par 0, 0, //if 1st par is 0, read 0 parameters 1, 0, //if 1st par is 1, read 0 parameters 2, 1, 2 //if 1st par is 2, read 1 parameter of size = 2 bytes }, [0x01D2] = new byte[] { 2, 2 }, [0x01D3] = new byte[] { 2, 2, 2 }, [0x01D4] = new byte[1] { 0 }, [0x01D5] = new byte[] { 2 }, [0x01D6] = new byte[] { 2, 2 }, [0x01D7] = new byte[] { 2 }, [0x01D8] = new byte[] { 2 }, [0x01D9] = new byte[] { 2, 2 }, [0x01DA] = new byte[1] { 0 }, [0x01DB] = new byte[] { 2, 2 }, [0x01DC] = new byte[1] { 0 }, [0x01DD] = new byte[] { 2, 2, 2 }, [0x01DE] = new byte[] { 2, 2, 2, 2 }, [0x01DF] = new byte[] { 2 }, [0x01E0] = new byte[] { 2 }, [0x01E2] = new byte[] { 2, 2 }, [0x01E3] = new byte[] { 2, 2 }, [0x01E4] = new byte[] { 2 }, [0x01E5] = new byte[] { 2 }, [0x01E6] = new byte[] { 2, 2, 2 }, [0x01E7] = new byte[] { 2, 2, 2, 1 }, [0x01E8] = new byte[] { 2 }, [0x01E9] = new byte[] { 2 }, [0x01EA] = new byte[] { 2 }, [0x01EB] = new byte[] { 2 }, [0x01EC] = new byte[1] { 0 }, [0x01ED] = new byte[] { 2 }, [0x01EE] = new byte[1] { 0 }, [0x01EF] = new byte[1] { 0 }, [0x01F0] = new byte[1] { 0 }, [0x01F1] = new byte[] { 2 }, [0x01F2] = new byte[1] { 0 }, [0x01F3] = new byte[1] { 0 }, [0x01F4] = new byte[] { 2, 2 }, [0x01F5] = new byte[] { 2, 2, 2 }, [0x01F6] = new byte[] { 2, 2 }, [0x01F7] = new byte[] { 2, 2 }, [0x01F8] = new byte[1] { 0 }, [0x01F9] = new byte[] { 2 }, [0x01FA] = new byte[1] { 0 }, [0x01FB] = new byte[] { 2, 2 }, [0x01FC] = new byte[1] { 0 }, [0x01FD] = new byte[] { 2, 2, 2, 2 }, [0x01FE] = new byte[] { 1 }, [0x01FF] = new byte[] { 2, 2, 2 }, [0x0200] = new byte[] { 2 }, [0x0201] = new byte[] { 2 }, [0x0202] = new byte[] { 1 }, [0x0203] = new byte[] { 2, 2, 2, 2, 2 }, [0x0204] = new byte[1] { 0 }, [0x0205] = new byte[1] { 0 }, [0x0206] = new byte[1] { 0 }, [0x0207] = new byte[] { 2 }, [0x0208] = new byte[] { 2, 2 }, [0x0209] = new byte[1] { 0 }, [0x020A] = new byte[] { 2 }, [0x020B] = new byte[1] { 0 }, [0x020C] = new byte[1] { 0 }, [0x020D] = new byte[] { 1, 2 }, [0x020E] = new byte[1] { 0 }, [0x020F] = new byte[] { 2, 2 }, [0x0210] = new byte[] { 2, 2 }, [0x0211] = new byte[] { 1 }, [0x0212] = new byte[] { 2, 2 }, [0x0213] = new byte[] { 2, 2 }, [0x0214] = new byte[] { 2 }, [0x0215] = new byte[1] { 0 }, [0x0216] = new byte[] { 2 }, [0x0217] = new byte[] { 2, 2 }, [0x0218] = new byte[] { 2 }, [0x0219] = new byte[] { 2 }, [0x021A] = new byte[] { 2 }, [0x021B] = new byte[1] { 0 }, [0x021C] = new byte[] { 1 }, [0x021D] = new byte[] { 0xFF, 2, //0xFF = Variable number of parameters, 2 = size of first parameter 0, 2, 2, 2, //if value is 0, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 1, 2, 2, 2, //if value is 1, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 2, 2, 2, 2, //if value is 2, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 3, 2, 2, 2, //if value is 3, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 4, 1, 2, //if value is 4, read 1 parameter... which takes up 2 bytes 5, 1, 2, //if value is 5, read 1 parameter... which takes up 2 bytes 6, 0 //if value is 6, don't read anything }, [0x021E] = new byte[1] { 0 }, [0x021F] = new byte[] { 2, 2 }, [0x0220] = new byte[1] { 0 }, [0x0221] = new byte[] { 2 }, [0x0222] = new byte[1] { 0 }, [0x0223] = new byte[] { 2 }, [0x0224] = new byte[] { 2, 2 }, [0x0225] = new byte[] { 2 }, [0x0226] = new byte[] { 1 }, [0x0227] = new byte[1] { 0 }, [0x0228] = new byte[] { 2 }, [0x0229] = new byte[] { 2 }, [0x022A] = new byte[1] { 0 }, [0x022B] = new byte[1] { 0 }, [0x022C] = new byte[1] { 0 }, [0x022D] = new byte[] { 1, 2 }, [0x022E] = new byte[] { 2, 2 }, [0x022F] = new byte[] { 2 }, [0x0230] = new byte[] { 2, 2, 2 }, [0x0231] = new byte[] { 2, 2 }, [0x0232] = new byte[] { 1, 2 }, [0x0233] = new byte[] { 2, 2 }, [0x0234] = new byte[] { 2 }, [0x0235] = new byte[] { 0xFF, 2, //0xFF = Variable number of parameters, 2 = size of first parameter 0, 1, 2, //if value is 0, read 1 parameter... which takes up 2 bytes 1, 3, 2, 2, 2, //if value is 1, read 3 parameters... each one takes up 2 bytes 2, 0, //if value is 2, don't read anything 3, 3, 2, 2, 2, //if value is 3, read 3 parameters... each one takes up 2 bytes 4, 2, 2, 2, //if value is 4, read 2 parameters... each one takes up 2 bytes 5, 3, 2, 2, 2, //if value is 5, read 3 parameters... each one takes up 2 bytes 6, 1, 2 //if value is 6, read 1 parameter... which takes up 2 bytes }, [0x0236] = new byte[] { 2 }, [0x0237] = new byte[] { 2, 2, 2, 2 }, //u16: 0; Flex: ???; Var: Variable; Var: //u16: 1; Flex: ???; Flex: ???; Flex: ??? [0x0238] = new byte[] { 2, 2 }, [0x0239] = new byte[] { 2 }, [0x023A] = new byte[] { 2, 2, 2 }, [0x023B] = new byte[] { 2 }, [0x023C] = new byte[] { 2, 2 }, [0x023D] = new byte[] { 1, 1, 2, 2, 2 }, [0x023E] = new byte[] { 0xFF, 2, //0xFF = Variable number of parameters, 2 = size of first parameter 0, 0, //if value is 0, don't read anything 1, 1, 2, //if value is 1, read 1 parameter... which takes up 2 bytes 2, 1, 2, //if value is 2, read 1 parameter... which takes up 2 bytes 3, 1, 2, //if value is 3, read 1 parameter... which takes up 2 bytes 4, 0, //if value is 4, don't read anything 5, 2, 2, 2, //if value is 5, read 2 parameters... each one takes up 2 bytes 6, 2, 2, 2, //if value is 6, read 2 parameters... each one takes up 2 bytes 7, 0, //if value is 7, don't read anything 8, 0 //if value is 8, don't read anything }, [0x023F] = new byte[1] { 0 }, [0x0240] = new byte[1] { 0 }, [0x0241] = new byte[1] { 0 }, [0x0242] = new byte[1] { 0 }, [0x0243] = new byte[] { 2, 2, 2 }, [0x0244] = new byte[] { 2, 2, 2, 2 }, [0x0245] = new byte[] { 2, 2 }, [0x0246] = new byte[] { 2 }, [0x0247] = new byte[] { 2 }, [0x0248] = new byte[] { 2, 2, 2 }, [0x0249] = new byte[] { 2, 2, 2, 2, 2 }, [0x024A] = new byte[] { 2 }, [0x024B] = new byte[] { 1 }, [0x024C] = new byte[] { 1 }, [0x024D] = new byte[] { 1 }, [0x024E] = new byte[] { 2 }, [0x024F] = new byte[] { 2, 2, 2, 2 }, [0x0250] = new byte[1] { 0 }, [0x0251] = new byte[] { 1, 2 }, [0x0252] = new byte[] { 2 }, [0x0253] = new byte[] { 2 }, [0x0254] = new byte[] { 2 }, [0x0255] = new byte[1] { 0 }, [0x0256] = new byte[] { 2, 2 }, [0x0257] = new byte[1] { 0 }, [0x0258] = new byte[1] { 0 }, [0x0259] = new byte[1] { 0 }, [0x025A] = new byte[] { 2 }, [0x025B] = new byte[1] { 0 }, [0x025C] = new byte[1] { 0 }, [0x025D] = new byte[] { 2 }, [0x025E] = new byte[1] { 0 }, [0x025F] = new byte[1] { 0 }, [0x0260] = new byte[] { 2 }, [0x0261] = new byte[] { 1, 2 }, [0x0262] = new byte[] { 2, 2 }, [0x0263] = new byte[] { 2 }, [0x0264] = new byte[] { 2 }, [0x0265] = new byte[1] { 0 }, [0x0266] = new byte[1] { 0 }, [0x0267] = new byte[] { 2 }, [0x0268] = new byte[] { 2 }, [0x0269] = new byte[] { 2, 2, 2, 2, 2 }, [0x026A] = new byte[] { 2, 2, 2 }, [0x026B] = new byte[] { 2 }, [0x026C] = new byte[] { 2 }, [0x026D] = new byte[] { 2 }, [0x026E] = new byte[] { 2 }, [0x026F] = new byte[1] { 0 }, [0x0270] = new byte[] { 1, 2 }, [0x0271] = new byte[] { 2 }, [0x0272] = new byte[] { 1 }, [0x0273] = new byte[] { 1, 2 }, [0x0274] = new byte[] { 2, 4 }, [0x0275] = new byte[] { 2 }, [0x0276] = new byte[] { 2, 2, 2 }, [0x0277] = new byte[] { 2 }, [0x0278] = new byte[] { 2, 2 }, [0x0279] = new byte[1] { 0 }, [0x027A] = new byte[1] { 0 }, [0x027B] = new byte[1] { 0 }, [0x027C] = new byte[] { 2, 2 }, [0x027D] = new byte[] { 2, 2 }, [0x027E] = new byte[] { 2 }, [0x027F] = new byte[] { 2 }, [0x0280] = new byte[] { 1, 2, 2 }, [0x0281] = new byte[] { 2, 2, 2 }, [0x0282] = new byte[] { 2 }, [0x0283] = new byte[] { 2, 2 }, [0x0284] = new byte[] { 2 }, [0x0285] = new byte[] { 2, 2 }, [0x0286] = new byte[] { 2 }, [0x0287] = new byte[] { 2 }, [0x0288] = new byte[] { 2 }, [0x0289] = new byte[] { 2, 2, 2, 2, 2, 2, 2 }, [0x028A] = new byte[] { 2 }, [0x028B] = new byte[] { 1, 2 }, [0x028C] = new byte[] { 2 }, [0x028D] = new byte[1] { 0 }, [0x028E] = new byte[] { 2 }, [0x028F] = new byte[] { 2 }, [0x0290] = new byte[] { 2 }, [0x0291] = new byte[] { 2, 2 }, [0x0292] = new byte[] { 1, 2 }, [0x0293] = new byte[] { 2 }, [0x0294] = new byte[] { 2 }, [0x0295] = new byte[1] { 0 }, [0x0296] = new byte[1] { 0 }, [0x0297] = new byte[] { 2 }, [0x0298] = new byte[] { 2 }, [0x0299] = new byte[] { 2 }, [0x029A] = new byte[] { 2, 2 }, [0x029B] = new byte[] { 2, 2, 2, 2 }, [0x029C] = new byte[] { 2, 2 }, [0x029D] = new byte[] { 2, 2 }, [0x029E] = new byte[] { 2, 2 }, [0x029F] = new byte[] { 2 }, [0x02A0] = new byte[] { 2, 2, 2 }, [0x02A1] = new byte[] { 2, 2, 2 }, [0x02A2] = new byte[] { 2 }, [0x02A3] = new byte[] { 2 }, [0x02A4] = new byte[] { 2 }, [0x02A5] = new byte[1] { 0 }, [0x02A6] = new byte[] { 2, 2, 2 }, [0x02A7] = new byte[] { 2, 2 }, [0x02A8] = new byte[] { 2 }, [0x02A9] = new byte[] { 2, 2 }, [0x02AA] = new byte[] { 2, 2, 2, 2, 2 }, [0x02AB] = new byte[] { 2 }, [0x02AC] = new byte[1] { 0 }, [0x02AD] = new byte[] { 2, 2 }, [0x02AE] = new byte[1] { 0 }, [0x02AF] = new byte[] { 2 }, [0x02B0] = new byte[1] { 0 }, [0x02B1] = new byte[1] { 0 }, [0x02B2] = new byte[1] { 0 }, [0x02B3] = new byte[] { 1, 2 }, [0x02B4] = new byte[1] { 0 }, [0x02B5] = new byte[] { 2, 2, 2 }, [0x02B6] = new byte[] { 1, 2 }, [0x02B7] = new byte[] { 2 }, [0x02B8] = new byte[] { 2 }, [0x02B9] = new byte[1] { 0 }, [0x02BA] = new byte[] { 2 }, [0x02BB] = new byte[1] { 0 }, [0x02BC] = new byte[] { 2 }, [0x02BD] = new byte[] { 2, 2 }, [0x02BE] = new byte[] { 2 }, [0x02BF] = new byte[1] { 0 }, [0x02C0] = new byte[] { 2 }, [0x02C1] = new byte[1] { 0 }, [0x02C2] = new byte[1] { 0 }, [0x02C3] = new byte[1] { 1 }, }; public static Dictionary DPScrCmdNames = new Dictionary() { [0x0264] = "CheckBurmyForms", }; public static Dictionary DPScrCmdParameters = new Dictionary() { [0x011D] = new byte[] { 1, 1, 2 }, [0x0125] = new byte[] { 2, 2 }, [0x01E1] = new byte[] { 2, 2 }, //0x02C3 is the last command ID that DP and Plat have in common //International release exclusive [0x02C4] = new byte[] { 1, 2 }, [0x02C5] = new byte[] { 1, 2 }, [0x02C6] = new byte[] { 1, 2 }, [0x02C7] = new byte[] { 1, 2 }, [0x02C8] = new byte[] { 1, 2 }, [0x02C9] = new byte[] { 1, 2, 2, 1 }, [0x02CA] = new byte[] { 1 }, [0x02CB] = new byte[] { 1, 2 }, [0x02CC] = new byte[] { 1, 2 }, [0x02CD] = new byte[] { 1, 2 }, [0x02CE] = new byte[] { 1 }, [0x02CF] = new byte[] { 1 }, [0x02D0] = new byte[] { 2, 2, 2 }, [0x02D1] = new byte[] { 1, 1 } }; public static Dictionary PlatScrCmdNames = new Dictionary() { [0x0264] = "CombeeCheck", //0x02C3 is the last command ID that DP and Plat have in common [0x02C6] = "SpinTradeScreen", //[0x02C7] = "CheckGameVersion", //Needs to be checked [0x02C9] = "InitEternaGym", [0x02CA] = "EternaGymClockAnim", [0x02CD] = "SetDarkFog", [0x02CE] = "ClearDarkFog", [0x02E2] = "ScratchOffScreen", [0x02E3] = "ReleaseScriptApp", [0x02E5] = "CheckLearnableTutorMoves", [0x02E6] = "ShowTutorMovesList", [0x02E7] = "LearnMoveScreen", [0x02E8] = "LearnMoveGetSelection", [0x02E9] = "ChangePartyPokemonMove", [0x02EA] = "CheckAffordMove", [0x02EB] = "PayTutorShards", [0x02EC] = "ShowMovePriceBoard", [0x02ED] = "CloseMovePriceBoard", [0x02F0] = "InitVilla", [0x02F1] = "ChangePokemonForm", [0x02F2] = "InitDistortionWorld", [0x02F9] = "LoadFieldAudio", [0x02FA] = "GetPlayingBGM", [0x02FB] = "SpearPillarSequence2", [0x0302] = "CheckUsedRotomAppliances", [0x0314] = "GetBattleOutcome", [0x0315] = "GetCurrentWeather", [0x0317] = "GetPlayerPositionFull", [0x0318] = "WildBattleFateful", [0x0319] = "GiratinaBattle", [0x031A] = "RegisterSeenPokemon", [0x0320] = "PortalAnimation", [0x032B] = "CheckEventRegigigas", //International release exclusive [0x0337] = "CheckPokemonIsSeen", [0x033C] = "TextItemLowercase", [0x033D] = "TextItemPlural", [0x0344] = "TextTrainerClass", [0x0345] = "TextSealPlural", [0x0346] = "TextCapitalize", [0x0347] = "DisplayFloor", }; public static Dictionary PlatScrCmdParameters = new Dictionary() { [0x011D] = new byte[] { 1, 1, 2, 2 }, [0x0125] = new byte[] { 2 }, [0x01E1] = new byte[] { 2, 2, 2 }, //0x02C3 is the last command ID that DP and Plat have in common [0x02C4] = new byte[] { 1 }, [0x02C5] = new byte[] { 1, 2 }, [0x02C6] = new byte[] { 1, 2 }, [0x02C7] = new byte[] { 2 }, [0x02C8] = new byte[] { 2, 2, 2 }, [0x02C9] = new byte[1] { 0 }, [0x02CA] = new byte[1] { 0 }, [0x02CB] = new byte[] { 2, 2 }, [0x02CC] = new byte[] { 2, 2, 2 }, [0x02CD] = new byte[1] { 0 }, [0x02CE] = new byte[1] { 0 }, [0x02CF] = new byte[] { 2, 2 }, [0x02D0] = new byte[] { 2, 2 }, [0x02D1] = new byte[] { 2 }, [0x02D2] = new byte[] { 2, 2, 2 }, [0x02D3] = new byte[] { 2, 2, 2 }, [0x02D4] = new byte[] { 2, 2, 2 }, [0x02D5] = new byte[] { 2 }, [0x02D6] = new byte[1] { 0 }, [0x02D7] = new byte[] { 2 }, [0x02D8] = new byte[] { 1 }, [0x02D9] = new byte[] { 2, 2, 2 }, [0x02DA] = new byte[] { 2, 2, 2 }, [0x02DB] = new byte[] { 2, 2, 2 }, [0x02DC] = new byte[] { 2 }, [0x02DD] = new byte[] { 2, 2 }, [0x02DE] = new byte[] { 2, 2, 2, 2, 2 }, [0x02DF] = new byte[] { 2 }, [0x02E0] = new byte[] { 2, 2 }, [0x02E1] = new byte[] { 2, 2 }, [0x02E2] = new byte[1] { 0 }, [0x02E3] = new byte[1] { 0 }, [0x02E4] = new byte[] { 2, 2, 2 }, [0x02E5] = new byte[] { 2, 2, 2 }, [0x02E6] = new byte[] { 2, 2, 2 }, [0x02E7] = new byte[] { 2, 2 }, [0x02E8] = new byte[] { 2 }, [0x02E9] = new byte[] { 2, 2, 2 }, [0x02EA] = new byte[] { 2, 2 }, [0x02EB] = new byte[] { 2 }, [0x02EC] = new byte[] { 2, 2, 2 }, [0x02ED] = new byte[1] { 0 }, [0x02EE] = new byte[] { 2, 2, 2, 2 }, [0x02EF] = new byte[1] { 0 }, [0x02F0] = new byte[1] { 0 }, [0x02F1] = new byte[1] { 0 }, [0x02F2] = new byte[1] { 0 }, [0x02F3] = new byte[] { 1, 2 }, [0x02F4] = new byte[] { 2, 2, 2, 2 }, [0x02F5] = new byte[] { 1, 2, 2, 2 }, [0x02F6] = new byte[] { 2, 2, 2 }, [0x02F7] = new byte[] { 2 }, [0x02F8] = new byte[1] { 0 }, [0x02F9] = new byte[] { 2 }, [0x02FA] = new byte[] { 2 }, [0x02FB] = new byte[1] { 0 }, [0x02FC] = new byte[] { 2 }, [0x02FD] = new byte[] { 2, 2, 2 }, [0x02FE] = new byte[] { 2, 2 }, [0x02FF] = new byte[] { 2, 2 }, [0x0300] = new byte[1] { 0 }, [0x0301] = new byte[1] { 0 }, [0x0302] = new byte[] { 2, 2, 2, 2, 2 }, [0x0303] = new byte[] { 2, 2 }, [0x0304] = new byte[] { 2, 2, 2, 2 }, [0x0305] = new byte[] { 2, 2 }, [0x0306] = new byte[] { 2, 2 }, [0x0307] = new byte[] { 2 }, [0x0308] = new byte[1] { 0 }, [0x0309] = new byte[1] { 0 }, [0x030A] = new byte[] { 2 }, [0x030B] = new byte[1] { 0 }, [0x030C] = new byte[1] { 0 }, [0x030D] = new byte[] { 2 }, [0x030E] = new byte[] { 2 }, [0x030F] = new byte[] { 2, 2 }, [0x0310] = new byte[1] { 0 }, [0x0311] = new byte[] { 2 }, [0x0312] = new byte[] { 2 }, [0x0313] = new byte[] { 2 }, [0x0314] = new byte[] { 2 }, [0x0315] = new byte[] { 2 }, [0x0316] = new byte[1] { 0 }, [0x0317] = new byte[] { 2, 2, 2 }, [0x0318] = new byte[] { 2, 2, 2, 2 }, [0x0319] = new byte[] { 2, 2, 2, 2 }, [0x031A] = new byte[1] { 0 }, [0x031B] = new byte[] { 2 }, [0x031C] = new byte[] { 2 }, [0x031D] = new byte[] { 2 }, [0x031E] = new byte[] { 2, 2 }, [0x031F] = new byte[1] { 0 }, [0x0320] = new byte[1] { 0 }, [0x0321] = new byte[] { 2 }, [0x0322] = new byte[1] { 0 }, [0x0323] = new byte[] { 2 }, [0x0324] = new byte[] { 2, 2, 2, 2 }, [0x0325] = new byte[] { 2 }, [0x0326] = new byte[] { 2 }, [0x0327] = new byte[] { 2 }, [0x0328] = new byte[] { 2 }, [0x0329] = new byte[] { 2, 2, 2, 2 }, [0x032A] = new byte[] { 2 }, [0x032B] = new byte[] { 2 }, [0x032C] = new byte[] { 2, 2, 2, 2, }, [0x032D] = new byte[1] { 0 }, [0x032E] = new byte[1] { 0 }, [0x032F] = new byte[] { 2, 2 }, [0x0330] = new byte[1] { 0 }, [0x0331] = new byte[1] { 0 }, [0x0332] = new byte[1] { 0 }, [0x0333] = new byte[] { 2 }, [0x0334] = new byte[] { 2, 2 }, [0x0335] = new byte[] { 2, 4 }, [0x0336] = new byte[] { 2 }, //International release exclusive [0x0337] = new byte[] { 2, 2 }, [0x0338] = new byte[1] { 0 }, [0x0339] = new byte[1] { 0 }, [0x033A] = new byte[] { 1 }, [0x033B] = new byte[] { 1 }, [0x033C] = new byte[] { 1, 2 }, [0x033D] = new byte[] { 1, 2 }, [0x033E] = new byte[] { 1, 2 }, [0x033F] = new byte[] { 1, 2 }, [0x0340] = new byte[] { 1, 2 }, [0x0341] = new byte[] { 1, 2, 2, 1 }, [0x0342] = new byte[] { 1 }, [0x0343] = new byte[] { 1, 2 }, [0x0344] = new byte[] { 1, 2 }, [0x0345] = new byte[] { 1, 2 }, [0x0346] = new byte[] { 1 }, [0x0347] = new byte[] { 1, 1 } }; public static Dictionary HGSSScrCmdNames = new Dictionary() { [0x0000] = "Nop", [0x0001] = "Dummy", [0x0002] = "End", [0x0003] = "WaitTime", [0x0004] = "RegValueSet", [0x0005] = "RegDataSet", [0x0006] = "RegAdrsSet", [0x0007] = "AdrsValueSet", [0x0008] = "AdrsRegSet", [0x0009] = "RegRegSet", [0x000A] = "AdrsAdrsSet", [0x000B] = "CompareRegs", [0x000C] = "CompareRegValue", [0x000D] = "CompareRegAdrs", [0x000E] = "CompareAdrsReg", [0x000F] = "CompareAdrsValue", [0x0010] = "CompareAdrsAdrs", [0x0011] = "CompareVarValue", [0x0012] = "CompareVars", [0x0013] = "ParallelCommonScript", [0x0014] = "CommonScript", [0x0015] = "LocalScript", [0x0016] = "Jump", [0x0017] = "JumpIfObjID", [0x0018] = "JumpIfBgID", [0x0019] = "JumpIfPlayerDir", [0x001A] = "Call", [0x001B] = "Return", [0x001C] = "JumpIf", [0x001D] = "CallIf", [0x001E] = "SetFlag", [0x001F] = "ClearFlag", [0x0020] = "CheckFlag", [0x0021] = "SetFlagFromVar", [0x0022] = "ClearFlagFromVar", [0x0023] = "FlagStatusToVar", [0x0024] = "SetTrainerFlag", [0x0025] = "ClearTrainerFlag", [0x0026] = "CheckTrainerFlag", [0x0027] = "IncrementVar", [0x0028] = "DecrementVar", [0x0029] = "SetVar", [0x002A] = "SetVarFromVariable", [0x002B] = "SetVarFromFlexible", [0x002C] = "MessageAll", [0x002D] = "Message", [0x002E] = "MessageFlex", [0x002F] = "MessageNoSkip", [0x0031] = "WaitAB", [0x0032] = "WaitButton", [0x0033] = "WaitABPad", [0x0034] = "OpenMessage", [0x0035] = "CloseMessage", [0x0036] = "FreezeMessage", [0x0037] = "SetIconBoard", [0x0038] = "SetTextBoard", [0x0039] = "ShowBoard", [0x003A] = "WaitBoard", [0x003B] = "BoardMessage", [0x003C] = "CloseBoard", [0x003D] = "Menu", [0x003F] = "YesNoBox", [0x0040] = "MultiStandardText", [0x0041] = "MultiLocalText", [0x0042] = "AddMultiOption", [0x0043] = "ShowMulti", [0x0044] = "ListStandardText", [0x0045] = "ListLocalText", [0x0046] = "AddListOption", [0x0047] = "ShowList", [0x0048] = "MultiColumn", [0x0049] = "PlayFanfare", [0x004A] = "StopFanfare", [0x004B] = "WaitFanfare", [0x004C] = "PlayCry", [0x004D] = "WaitCry", [0x004E] = "PlaySound", [0x004F] = "WaitSound", [0x0050] = "PlayMusic", [0x0051] = "StopMusic", [0x0052] = "PlayDefaultMusic", [0x0053] = "SetMusic", [0x0054] = "FadeOutMusic", [0x0055] = "FadeInMusic", [0x0059] = "CheckChatotCry", [0x005A] = "StartChatotCry", [0x005B] = "StopChatotCry", [0x005C] = "SaveChatotCry", [0x005E] = "Movement", [0x005F] = "WaitMovement", [0x0060] = "LockAll", [0x0061] = "ReleaseAll", [0x0062] = "Lock", [0x0063] = "Release", [0x0064] = "AddOW", [0x0065] = "RemoveOW", [0x0066] = "LockCamera", [0x0067] = "ReleaseCamera", [0x0068] = "FacePlayer", [0x0069] = "GetPlayerPosition", [0x006A] = "GetOWPosition", [0x006C] = "KeepOverworld", [0x006D] = "SetOWMovement", [0x006E] = "GiveMoney", [0x006F] = "TakeMoney", [0x0070] = "CompareMoney", [0x0071] = "ShowMoney", [0x0072] = "HideMoney", [0x0073] = "UpdateMoney", [0x0074] = "ShowSpecialCurrency", [0x0075] = "HideSpecialCurrency", [0x0076] = "UpdateSpecialCurrency", [0x0077] = "CheckCoins", [0x0078] = "GiveCoins", [0x0079] = "TakeCoins", [0x007A] = "GiveAthletePoints", [0x007B] = "TakeAthletePoints", [0x007C] = "CompareAthletePoints", [0x007D] = "GiveItem", [0x007E] = "TakeItem", [0x007F] = "CheckItemSpace", [0x0080] = "CheckItem", [0x0081] = "CheckItemIsMachine", [0x0082] = "GetItemPocket", [0x0083] = "SetStarter", [0x0084] = "GenderMessage", [0x0089] = "GivePokemon", [0x008A] = "GivePokemonEgg", [0x008B] = "ReplaceMove", [0x008C] = "CheckPokemonHasMove", [0x008D] = "CheckMoveInParty", [0x008F] = "ChooseRivalName", [0x0090] = "GetCounterpartSprite", [0x0091] = "UpgradePokegear", [0x0092] = "RecordPokegearNumber", //to be confirmed [0x0096] = "ReturnScreen", [0x009D] = "WorldMapScreen", [0x00A3] = "EndGameScreen", [0x00A4] = "PCHallOfFameScreen", [0x00A7] = "StarterSelectionScreen", [0x00AC] = "ChoosePlayerName", [0x00AD] = "ChoosePokemonNickname", [0x00AE] = "FadeScreen", [0x00AF] = "WaitFadeScreen", [0x00B0] = "Warp", [0x00B1] = "RockClimbAnimation", [0x00B2] = "SurfAnimation", [0x00B3] = "WaterfallAnimation", [0x00B4] = "FlyAnimation", [0x00B5] = "FlashAnimation", [0x00B6] = "WhirlpoolAnimation", [0x00B7] = "CutAnimation", [0x00B8] = "CheckBike", [0x00B9] = "RideBike", [0x00BA] = "CyclingRoad", [0x00BB] = "CheckPlayerForm", [0x00BC] = "SetPlayerForm", [0x00BD] = "UpdatePlayerForm", [0x00BE] = "TextPlayerName", [0x00BF] = "TextRivalName", [0x00C0] = "TextCounterpart", [0x00C1] = "TextPartyPokemon", [0x00C2] = "TextItem", [0x00C2] = "TextPocket", [0x00C4] = "TextAttackItem", [0x00C5] = "TextMove", [0x00C6] = "TextNumber", [0x00C7] = "TextPokeNickname", [0x00C9] = "TextPlayerTrainerType", [0x00CA] = "TextPokemon", [0x00CB] = "TextStarterPokemon", [0x00CC] = "TextRivalStarter", [0x00CD] = "TextCounterpartStarter", [0x00CE] = "CheckStarter", [0x00CF] = "DummyTextGoods", [0x00D0] = "DummyTextTrap", [0x00D1] = "DummyTextTreasure", [0x00D2] = "TextMapName", [0x00D3] = "GetSwarmInfo", [0x00D4] = "TrainerID", [0x00D5] = "TrainerBattle", [0x00D6] = "TrainerMessage", [0x00D7] = "TrainerMsgCheck", [0x00D8] = "TrainerRematchMsgCheck", [0x00D9] = "TrainerTypeCheck", [0x00DA] = "TrainerMusic", [0x00DB] = "LostBattle", [0x00DC] = "CheckBattleIsLost", [0x00DD] = "CheckDefeatedPokemon", [0x00DE] = "Check2vs2", [0x00DF] = "DummyTrainerBattle", [0x00E0] = "DummyTrainerFlag", [0x00E1] = "DummyTrainerFlagJump", [0x00EE] = "CheckPokerus", [0x00EF] = "GetPokemonGender", [0x00F1] = "GetElevatorFloor", [0x00F2] = "ElevatorBox", [0x00F3] = "CountJohtoDexSeen", [0x00F4] = "CountJohtoDexObtained", [0x00F5] = "CountNationalDexSeen", [0x00F6] = "CountNationalDexObtained", [0x00F7] = "DummyNationalDexCheck", [0x00F8] = "GetDexProgressMsg", [0x00F9] = "WildBattle", [0x00FA] = "WildBattleNoButtons", [0x00FB] = "CatchTutorial", [0x00FD] = "CheckSaveGame", [0x0113] = "MartScreen", [0x0114] = "SpMartScreen", [0x0115] = "GoodsMartScreen", [0x0116] = "SealMartScreen", [0x0117] = "DummyLostBattle", [0x0118] = "SetLastWarp", [0x0119] = "CheckPlayerGender", [0x011A] = "HealPokemon", [0x0122] = "CheckPokedex", [0x0123] = "GivePokedex", [0x0124] = "CheckShoes", [0x0125] = "GiveShoes", [0x0126] = "CheckBadge", [0x0127] = "GiveBadge", [0x0128] = "CountBadges", [0x0129] = "DummyCheckBag", [0x012A] = "DummyGiveBag", [0x012B] = "CheckPartner", [0x012C] = "SetPartner", [0x012D] = "ClearPartner", [0x0131] = "DummyCheckGameCompleted", [0x0132] = "DummyGameCompleted", [0x0133] = "DoorAnimation", [0x0134] = "WaitDoor", [0x0135] = "FreeDoor", [0x0136] = "OpenDoor", [0x0137] = "CloseDoor", [0x0138] = "GetDaycareNames", [0x0139] = "GetDaycareStatus", [0x0141] = "VermillionGymAnimation", [0x0142] = "VermillionGymBin", [0x0144] = "InitVioletGym", [0x0145] = "VioletGymElevator", [0x0147] = "AzaleaGym", [0x0148] = "AzaleaGym2", [0x014C] = "GetPartyCount", [0x0152] = "SetOWDefaultPosition", [0x0153] = "SetOWPosition", [0x0154] = "SetOWDefaultMovement", [0x0155] = "SetOWDefaultDirection", [0x0156] = "SetWarpPosition", [0x0157] = "SetSpawnablePosition", [0x0158] = "SetOWDirection", [0x015C] = "WaitTimeOrAB", [0x015F] = "GetSelectedPartySlot", [0x0162] = "GetPartyPokemonID", [0x0163] = "CheckTradedPokemon", [0x0164] = "CountPartyBornPokemon", [0x0165] = "CountAlivePokemonExceptFirst", [0x0166] = "CountTotalAlivePokemon", [0x0167] = "CountPartyEggs", [0x0168] = "TakeMoneyFlex", [0x016C] = "DeletePartyPokemon", [0x0170] = "CompareMoneyFlex", [0x0171] = "EggHatchScreen", //This command is dangerous when used without an egg in party [0x0176] = "UnvanishOverworld", [0x0177] = "VanishOverworld", [0x0178] = "MailScreen", [0x0179] = "CountMail", [0x017B] = "GetTimePeriod", [0x017C] = "GetRandom", [0x017D] = "DummyGetRandom", [0x017E] = "GetPokemonHappiness", [0x017F] = "AddHappiness", [0x0180] = "SubHappiness", [0x0181] = "TextDaycareMonData", [0x0182] = "GetPlayerDirection", [0x0185] = "CheckBornPokemonInParty", [0x0186] = "ComparePokemonPlayerSize", [0x0187] = "SetPokemonSizeRecord", [0x0188] = "TextPartyPokemonSize", [0x0189] = "TextPokemonRecordSize", [0x018C] = "GetMoveCount", [0x018D] = "DeleteMove", [0x018E] = "GetPartyPokemonMove", [0x018F] = "TextPartyPokemonMove", [0x0190] = "Strength", [0x01A7] = "CheckCompleteJohtoDex", [0x01A8] = "CheckCompleteNationalDex", [0x01AD] = "GetFossilCount", [0x01AE] = "PreparePokeGearCall", [0x01AF] = "StartPokeGearCall", [0x01B0] = "GetPokeNameFromFossil", [0x01B1] = "CheckFossil", [0x01B2] = "CountPokemonUnderLevel", [0x01B3] = "SurvivePoison", [0x01B4] = "FinishOverworldScreen", [0x01B5] = "DummyGetVar", [0x01BD] = "GetPreviousHeaderID", [0x01BE] = "GetCurrentHeaderID", [0x01BF] = "SetSafariFlag", [0x01C2] = "GeonetScreen", [0x01C4] = "ShowPokemonPic", [0x01C5] = "HidePokemonPic", [0x01D0] = "AddRoamingPokemon", [0x01D1] = "UnionGroup", [0x01D6] = "InitTrade", [0x01D7] = "GetOfferedPokemon", [0x01D8] = "GetRequestedPokemon", [0x01D9] = "TradePokemonScreen", [0x01DA] = "EndTrade", [0x01DB] = "DummyInternationalDex", [0x01DC] = "DummyDimorphismDex", [0x01DD] = "NationalDex", [0x01DE] = "PokemonRibbonCount", [0x01DF] = "PartyRibbonCount", [0x01E0] = "CheckRibbon", [0x01E1] = "GiveRibbon", [0x01E2] = "TextRibbon", [0x01E3] = "CountPokemonEVs", [0x01E4] = "GetDayOfWeek", [0x01E5] = "ShowRulesList", [0x01E6] = "DummyGetPokemonFootprint", [0x01E7] = "PCHealAnimation", [0x01E8] = "ElevatorAnimation", [0x01E9] = "MysteryGiftGive", [0x01EF] = "CheckVersion", [0x01F0] = "FirstPokemonInParty", [0x01F1] = "GetPartyPokemonTypes", [0x01F7] = "GetLottoNumber", [0x01F8] = "CheckWinLotto", [0x01F9] = "InitLotto", [0x01FB] = "CountPCFreeSpace", [0x0200] = "SetPlayerSavingForm", [0x0201] = "ResetPlayerForm", [0x0204] = "TextAccessory", [0x0205] = "CheckPokemonInParty", [0x0206] = "SetDeoxysForm", [0x0207] = "CheckBurmyForms", [0x020A] = "GetHour", [0x020B] = "ShakeOverworld", [0x020C] = "BlinkOverworld", [0x020D] = "CheckRegis", [0x020F] = "MessageUnown", [0x0210] = "CheckGBACartidge", [0x0211] = "GetFirstAlivePokemonSlot", [0x0212] = "SetMatrixAlternativeMap", [0x0217] = "GetPokemonLevel", [0x021D] = "TextNumberSp", [0x021F] = "CheckBirthday", [0x0220] = "MusicVolumeSet", [0x0221] = "CountSeenUnown", [0x0231] = "ShakeCamera", [0x0232] = "Battle2vs2", [0x0236] = "PartyPokemonTradeScreen", [0x024D] = "WildBattleSp", [0x024E] = "CheckTrainerCardLevel", [0x024F] = "DummyRideBike", [0x0251] = "ShowSaveBox", [0x0252] = "HideSaveBox", [0x0253] = "ScopeMode", [0x0254] = "GetFollowingPokeSize", [0x0257] = "FollowingPokePCAnimation", [0x0258] = "SendBackFollowingPoke", [0x0259] = "FollowingPokeFacePlayer", [0x025A] = "LockFollowingPoke", [0x025B] = "WaitFollowingPoke", [0x025C] = "SetFollowingPokeMovement", [0x025D] = "SetFollowingPokePosition", [0x025E] = "BallResetFollowingPoke", [0x025F] = "NoBallResetFollowingPoke", [0x0260] = "SendOutFollowingPoke", [0x0261] = "ResetFollowingPoke", [0x0267] = "TakePhoto", [0x026A] = "CheckAlbumPhoto", [0x026E] = "GetOWDirection", [0x026F] = "HarvestApricorn", [0x0270] = "GetApricornColor", [0x0271] = "GiveApricorn", [0x0272] = "TextApricorn", [0x0289] = "ScratchOffScreen", [0x028A] = "ReleaseScriptApp", [0x0290] = "CheckHeadbuttCompatibility", [0x02AB] = "GetBattleOutcome", [0x02AC] = "GetCurrentWeather", [0x02AD] = "GetPlayerPositionFull", [0x02AE] = "WildBattleFateful", [0x02AF] = "RegisterSeenPokemon", [0x02BF] = "SetFieldVolume", [0x02C4] = "FloorTrapAnimation", [0x02C7] = "TalkFollowingPoke", [0x02C9] = "OpenAlphaPuzzle", [0x02CA] = "OpenRuinsofAlphHiddenRoom", [0x02D3] = "BoatAnimation", [0x02D9] = "CheckPokemonAlive", [0x02DA] = "CheckFollowingPoke", [0x02DD] = "GetBornPokemonPartyPos", [0x02EA] = "OpenTouchScreen", [0x02EB] = "CloseTouchScreen", [0x02EC] = "YesNoTouchScreen", [0x02ED] = "MultiTouchStandardText", [0x02EE] = "MultiTouchLocalText", [0x02EF] = "CreateMultiTouchBox", [0x02F0] = "CloseMultiTouch", [0x0310] = "OverlayManager", [0x031B] = "ShowMomMoney", [0x031C] = "HideMomMoney", [0x0344] = "CheckJadeOrbRequirements", [0x0346] = "CheckMoneyFull", [0x034B] = "TextItemLowercase", [0x034C] = "TextItemPlural", [0x034D] = "TextPartyPokemonDefault", [0x0351] = "TextTrainerClass", [0x0352] = "TextSealPlural", [0x0353] = "TextCapitalize", [0x0354] = "TextFloor" }; public static Dictionary HGSSScrCmdParameters = new Dictionary() { [0x0000] = new byte[1] { 0 }, [0x0001] = new byte[1] { 0 }, [0x0002] = new byte[1] { 0 }, [0x0003] = new byte[] { 2, 2 }, [0x0004] = new byte[] { 1, 1 }, [0x0005] = new byte[] { 1, 4 }, [0x0006] = new byte[] { 1, 4 }, [0x0007] = new byte[] { 4, 1 }, [0x0008] = new byte[] { 4, 1 }, [0x0009] = new byte[] { 1, 1 }, [0x000A] = new byte[] { 4, 4 }, [0x000B] = new byte[] { 1, 1 }, [0x000C] = new byte[] { 1, 1 }, [0x000D] = new byte[] { 1, 4 }, [0x000E] = new byte[] { 4, 1 }, [0x000F] = new byte[] { 4, 1 }, [0x0010] = new byte[] { 4, 4 }, [0x0011] = new byte[] { 2, 2 }, [0x0012] = new byte[] { 2, 2 }, [0x0013] = new byte[] { 2 }, [0x0014] = new byte[] { 2 }, [0x0015] = new byte[1] { 0 }, [0x0016] = new byte[] { 4 }, [0x0017] = new byte[] { 1, 4 }, [0x0018] = new byte[] { 1, 4 }, [0x0019] = new byte[] { 1, 4 }, [0x001A] = new byte[] { 4 }, [0x001B] = new byte[1] { 0 }, [0x001C] = new byte[] { 1, 4 }, [0x001D] = new byte[] { 1, 4 }, [0x001E] = new byte[] { 2 }, [0x001F] = new byte[] { 2 }, [0x0020] = new byte[] { 2 }, [0x0021] = new byte[] { 2 }, [0x0022] = new byte[] { 2 }, [0x0023] = new byte[] { 2, 2 }, [0x0024] = new byte[] { 2 }, [0x0025] = new byte[] { 2 }, [0x0026] = new byte[] { 2 }, [0x0027] = new byte[] { 2, 2 }, [0x0028] = new byte[] { 2, 2 }, [0x0029] = new byte[] { 2, 2 }, [0x002A] = new byte[] { 2, 2 }, [0x002B] = new byte[] { 2, 2 }, [0x002C] = new byte[] { 1 }, [0x002D] = new byte[] { 1 }, [0x002E] = new byte[] { 2 }, [0x002F] = new byte[] { 2 }, [0x0030] = new byte[] { 1 }, [0x0031] = new byte[1] { 0 }, [0x0032] = new byte[1] { 0 }, [0x0033] = new byte[1] { 0 }, [0x0034] = new byte[1] { 0 }, [0x0035] = new byte[1] { 0 }, [0x0036] = new byte[1] { 0 }, [0x0037] = new byte[] { 1, 1, 2, 2 }, [0x0038] = new byte[] { 1, 2 }, [0x0039] = new byte[] { 1 }, [0x003A] = new byte[1] { 0 }, [0x003B] = new byte[] { 1, 2 }, [0x003C] = new byte[] { 2 }, [0x003D] = new byte[1] { 0 }, [0x003E] = new byte[] { 1, 1, 1, 1, 1, 1 }, [0x003F] = new byte[] { 2 }, [0x0040] = new byte[] { 1, 1, 1, 1, 2 }, [0x0041] = new byte[] { 1, 1, 1, 1, 2 }, [0x0042] = new byte[] { 1, 1 }, [0x0043] = new byte[1] { 0 }, [0x0044] = new byte[] { 1, 1, 1, 1, 2 }, [0x0045] = new byte[] { 1, 1, 1, 1, 2 }, [0x0046] = new byte[] { 2, 2, 2 }, [0x0047] = new byte[1] { 0 }, [0x0048] = new byte[] { 1 }, [0x0049] = new byte[] { 2 }, [0x004A] = new byte[] { 2 }, [0x004B] = new byte[] { 2 }, [0x004C] = new byte[] { 2, 2 }, [0x004D] = new byte[1] { 0 }, [0x004E] = new byte[] { 2 }, [0x004F] = new byte[1] { 0 }, [0x0050] = new byte[] { 2 }, [0x0051] = new byte[] { 2 }, [0x0052] = new byte[1] { 0 }, [0x0053] = new byte[] { 2 }, [0x0054] = new byte[] { 2, 2 }, [0x0055] = new byte[] { 2 }, [0x0056] = new byte[] { 1, 1 }, [0x0057] = new byte[] { 2 }, [0x0058] = new byte[] { 1 }, [0x0059] = new byte[] { 2 }, [0x005A] = new byte[] { 2 }, [0x005B] = new byte[1] { 0 }, [0x005C] = new byte[1] { 0 }, [0x005D] = new byte[1] { 0 }, [0x005E] = new byte[] { 2, 4 }, [0x005F] = new byte[1] { 0 }, [0x0060] = new byte[1] { 0 }, [0x0061] = new byte[1] { 0 }, [0x0062] = new byte[] { 2 }, [0x0063] = new byte[] { 2 }, [0x0064] = new byte[] { 2 }, [0x0065] = new byte[] { 2 }, [0x0066] = new byte[] { 2, 2 }, [0x0067] = new byte[1] { 0 }, [0x0068] = new byte[1] { 0 }, [0x0069] = new byte[] { 2, 2 }, [0x006A] = new byte[] { 2, 2, 2 }, [0x006B] = new byte[] { 2, 2, 2 }, [0x006C] = new byte[] { 2, 1 }, [0x006D] = new byte[] { 2, 2 }, [0x006E] = new byte[] { 4 }, [0x006F] = new byte[] { 4 }, [0x0070] = new byte[] { 2, 4 }, [0x0071] = new byte[] { 2, 2 }, [0x0072] = new byte[1] { 0 }, [0x0073] = new byte[1] { 0 }, [0x0074] = new byte[] { 1, 2, 2 }, [0x0075] = new byte[1] { 0 }, [0x0076] = new byte[] { 1 }, [0x0077] = new byte[] { 2 }, [0x0078] = new byte[] { 2 }, [0x0079] = new byte[] { 2 }, [0x007A] = new byte[] { 2 }, [0x007B] = new byte[] { 2 }, [0x007C] = new byte[] { 2, 2 }, [0x007D] = new byte[] { 2, 2, 2 }, [0x007E] = new byte[] { 2, 2, 2 }, [0x007F] = new byte[] { 2, 2, 2 }, [0x0080] = new byte[] { 2, 2, 2 }, [0x0081] = new byte[] { 2, 2 }, [0x0082] = new byte[] { 2, 2 }, [0x0083] = new byte[] { 2 }, [0x0084] = new byte[] { 1, 1 }, [0x0085] = new byte[] { 2, 2 }, [0x0086] = new byte[] { 2, 2 }, [0x0087] = new byte[] { 2, 2, 2 }, [0x0088] = new byte[] { 2, 2 }, [0x0089] = new byte[] { 2, 2, 2, 2, 2, 2 }, [0x008A] = new byte[] { 2, 2 }, [0x008B] = new byte[] { 2, 2, 2 }, [0x008C] = new byte[] { 2, 2, 2 }, [0x008D] = new byte[] { 2, 2 }, [0x008E] = new byte[] { 2, 2 }, [0x008F] = new byte[] { 2 }, [0x0090] = new byte[] { 2 }, [0x0091] = new byte[] { 1 }, [0x0092] = new byte[] { 2 }, [0x0093] = new byte[] { 2, 2 }, [0x0094] = new byte[] { 2, 2 }, [0x0095] = new byte[] { 1 }, [0x0096] = new byte[1] { 0 }, [0x0097] = new byte[1] { 0 }, [0x0098] = new byte[1] { 0 }, [0x0099] = new byte[] { 2, 2, 2 }, [0x009A] = new byte[] { 2, 2, 2 }, [0x009B] = new byte[] { 2, 2 }, [0x009C] = new byte[1] { 0 }, [0x009D] = new byte[1] { 0 }, [0x009E] = new byte[] { 1 }, [0x009F] = new byte[1] { 0 }, [0x00A0] = new byte[1] { 0 }, [0x00A1] = new byte[1] { 0 }, [0x00A2] = new byte[1] { 0 }, [0x00A3] = new byte[] { 2 }, [0x00A4] = new byte[] { 0 }, [0x00A5] = new byte[] { 2, 2 }, [0x00A6] = new byte[] { 2 }, [0x00A7] = new byte[1] { 0 }, [0x00A8] = new byte[] { 2 }, [0x00A9] = new byte[] { 2, 2 }, [0x00AA] = new byte[] { 2 }, [0x00AB] = new byte[] { 2, 2 }, [0x00AC] = new byte[1] { 2 }, [0x00AD] = new byte[] { 2, 2 }, [0x00AE] = new byte[] { 2, 2, 2, 2 }, [0x00AF] = new byte[1] { 0 }, [0x00B0] = new byte[] { 2, 2, 2, 2, 2 }, [0x00B1] = new byte[] { 2 }, [0x00B2] = new byte[] { 2 }, [0x00B3] = new byte[] { 2 }, [0x00B4] = new byte[] { 2, 2, 2 }, [0x00B5] = new byte[1] { 0 }, [0x00B6] = new byte[] { 2 }, [0x00B7] = new byte[] { 2 }, [0x00B8] = new byte[] { 2 }, [0x00B9] = new byte[] { 1 }, [0x00BA] = new byte[] { 1 }, [0x00BB] = new byte[] { 2 }, [0x00BC] = new byte[] { 2 }, [0x00BD] = new byte[1] { 0 }, [0x00BE] = new byte[] { 1 }, [0x00BF] = new byte[] { 1 }, [0x00C0] = new byte[] { 1 }, [0x00C1] = new byte[] { 1, 2 }, [0x00C2] = new byte[] { 1, 2 }, [0x00C3] = new byte[] { 1, 2 }, [0x00C4] = new byte[] { 1, 2 }, [0x00C5] = new byte[] { 1, 2 }, [0x00C6] = new byte[] { 1, 2 }, [0x00C7] = new byte[] { 1, 2 }, [0x00C8] = new byte[] { 1, 2 }, [0x00C9] = new byte[] { 1 }, [0x00CA] = new byte[] { 1, 2, 2, 1 }, [0x00CB] = new byte[] { 1 }, [0x00CC] = new byte[] { 1 }, [0x00CD] = new byte[] { 1 }, [0x00CE] = new byte[] { 2 }, [0x00CF] = new byte[] { 1 }, [0x00D0] = new byte[] { 1, 2 }, [0x00D1] = new byte[] { 1, 2 }, [0x00D2] = new byte[] { 1, 2 }, [0x00D3] = new byte[] { 1, 2 }, [0x00D4] = new byte[] { 2 }, [0x00D5] = new byte[] { 2, 2, 1, 1 }, [0x00D6] = new byte[] { 2, 2 }, [0x00D7] = new byte[] { 2, 2, 2 }, [0x00D8] = new byte[] { 2, 2, 2 }, [0x00D9] = new byte[] { 2 }, [0x00DA] = new byte[] { 2 }, [0x00DB] = new byte[1] { 0 }, [0x00DC] = new byte[] { 2 }, [0x00DD] = new byte[] { 2, 1 }, [0x00DE] = new byte[] { 2 }, [0x00DF] = new byte[1] { 0 }, [0x00E0] = new byte[1] { 0 }, [0x00E1] = new byte[] { 4 }, [0x00E2] = new byte[] { 2, 2, 2, 2 }, [0x00E3] = new byte[] { 2, 2, 2, 2 }, [0x00E4] = new byte[] { 2 }, [0x00E5] = new byte[] { 2, 2 }, [0x00E6] = new byte[1] { 0 }, [0x00E7] = new byte[] { 2, 2, 2 }, [0x00E8] = new byte[] { 2, 2, 2 }, [0x00E9] = new byte[] { 2 }, [0x00EA] = new byte[] { 2, 2, 2, 2 }, [0x00EB] = new byte[] { 2 }, [0x00EC] = new byte[] { 2, 2, 2, 2, 2 }, [0x00ED] = new byte[1] { 0 }, [0x00EE] = new byte[] { 2 }, [0x00EF] = new byte[] { 2, 2 }, [0x00F0] = new byte[] { 2, 2, 2, 2, 2 }, [0x00F1] = new byte[] { 2 }, [0x00F2] = new byte[] { 1, 1, 2, 2 }, [0x00F3] = new byte[] { 2 }, [0x00F4] = new byte[] { 2 }, [0x00F5] = new byte[] { 2 }, [0x00F6] = new byte[] { 2 }, [0x00F7] = new byte[1] { 0 }, [0x00F8] = new byte[] { 1, 2, 2 }, [0x00F9] = new byte[] { 2, 2 }, [0x00FA] = new byte[] { 2, 2 }, [0x00FB] = new byte[1] { 0 }, [0x00FC] = new byte[1] { 0 }, [0x00FD] = new byte[] { 2 }, [0x00FE] = new byte[] { 2 }, [0x00FF] = new byte[] { 2, 2 }, [0x0100] = new byte[] { 2 }, [0x0101] = new byte[] { 2 }, [0x0102] = new byte[] { 2, 2 }, [0x0103] = new byte[] { 1, 1 }, [0x0104] = new byte[] { 2 }, [0x0105] = new byte[] { 2 }, [0x0106] = new byte[1] { 0 }, [0x0107] = new byte[1] { 0 }, [0x0108] = new byte[] { 2 }, [0x0109] = new byte[1] { 0 }, [0x010A] = new byte[1] { 0 }, [0x010B] = new byte[] { 2, 2 }, [0x010C] = new byte[] { 2 }, [0x010D] = new byte[] { 2, 2, 2, 2 }, [0x010E] = new byte[] { 2 }, [0x010F] = new byte[] { 2, 2 }, [0x0110] = new byte[] { 2 }, [0x0111] = new byte[] { 2 }, [0x0112] = new byte[] { 2, 2 }, [0x0113] = new byte[] { 2 }, [0x0114] = new byte[] { 2 }, [0x0115] = new byte[] { 2 }, [0x0116] = new byte[] { 2 }, [0x0117] = new byte[1] { 0 }, [0x0118] = new byte[] { 2 }, [0x0119] = new byte[] { 2 }, [0x011A] = new byte[1] { 0 }, [0x011B] = new byte[1] { 0 }, [0x011C] = new byte[1] { 0 }, [0x011D] = new byte[] { 2, 2 }, [0x011E] = new byte[] { 2 }, [0x011F] = new byte[] { 2, 2 }, [0x0120] = new byte[] { 2, 2 }, [0x0121] = new byte[] { 2 }, [0x0122] = new byte[] { 2 }, [0x0123] = new byte[1] { 0 }, [0x0124] = new byte[] { 2 }, [0x0125] = new byte[1] { 0 }, [0x0126] = new byte[] { 2, 2 }, [0x0127] = new byte[] { 2 }, [0x0128] = new byte[] { 2 }, [0x0129] = new byte[] { 2 }, [0x012A] = new byte[1] { 0 }, [0x012B] = new byte[] { 2 }, [0x012C] = new byte[1] { 0 }, [0x012D] = new byte[1] { 0 }, [0x012E] = new byte[] { 2, 2 }, [0x012F] = new byte[] { 2, 2 }, [0x0130] = new byte[] { 2 }, [0x0131] = new byte[] { 2 }, [0x0132] = new byte[] { 0 }, [0x0133] = new byte[] { 2, 2, 2, 2, 1 }, [0x0134] = new byte[] { 1 }, [0x0135] = new byte[] { 1 }, [0x0136] = new byte[] { 1 }, [0x0137] = new byte[] { 1 }, [0x0138] = new byte[1] { 0 }, [0x0139] = new byte[] { 2 }, [0x013A] = new byte[1] { 0 }, [0x013B] = new byte[1] { 0 }, [0x013C] = new byte[1] { 0 }, [0x013D] = new byte[] { 1 }, [0x013E] = new byte[1] { 0 }, [0x013F] = new byte[] { 2 }, [0x0140] = new byte[] { 2 }, [0x0141] = new byte[] { 2 }, [0x0142] = new byte[] { 1, 2 }, [0x0143] = new byte[] { 2, 2 }, [0x0144] = new byte[1] { 0 }, [0x0145] = new byte[1] { 0 }, [0x0146] = new byte[1] { 0 }, [0x0147] = new byte[] { 1 }, [0x0148] = new byte[] { 1 }, [0x0149] = new byte[1] { 0 }, [0x014A] = new byte[1] { 0 }, [0x014B] = new byte[1] { 0 }, [0x014C] = new byte[] { 2 }, [0x014D] = new byte[] { 2 }, [0x014E] = new byte[1] { 0 }, [0x014F] = new byte[1] { 0 }, [0x0150] = new byte[1] { 0 }, [0x0151] = new byte[1] { 0 }, [0x0152] = new byte[] { 2, 2, 2 }, [0x0153] = new byte[] { 2, 2, 2, 2, 2 }, [0x0154] = new byte[] { 2, 2 }, [0x0155] = new byte[] { 2, 2 }, [0x0156] = new byte[] { 2, 2, 2 }, [0x0157] = new byte[] { 2, 2, 2 }, [0x0158] = new byte[] { 2, 2 }, [0x0159] = new byte[1] { 0 }, [0x015A] = new byte[1] { 0 }, [0x015B] = new byte[] { 2 }, [0x015C] = new byte[] { 2 }, [0x015D] = new byte[1] { 0 }, [0x015E] = new byte[1] { 0 }, [0x015F] = new byte[] { 2 }, [0x0160] = new byte[] { 1, 2, 2 }, [0x0161] = new byte[] { 1, 2 }, [0x0162] = new byte[] { 2, 2 }, [0x0163] = new byte[] { 2, 2 }, [0x0164] = new byte[] { 2 }, [0x0165] = new byte[] { 2, 2 }, [0x0166] = new byte[] { 2 }, [0x0167] = new byte[] { 2 }, [0x0168] = new byte[] { 2 }, [0x0169] = new byte[] { 2, 2 }, [0x016A] = new byte[] { 2, 2 }, [0x016B] = new byte[] { 1, 2, 2 }, [0x016C] = new byte[] { 2 }, [0x016D] = new byte[1] { 0 }, [0x016E] = new byte[1] { 0 }, [0x016F] = new byte[] { 2, 2 }, [0x0170] = new byte[] { 2, 2 }, [0x0171] = new byte[1] { 0 }, [0x0172] = new byte[1] { 0 }, [0x0173] = new byte[] { 2, 2 }, [0x0174] = new byte[] { 2, 2 }, [0x0175] = new byte[] { 2 }, [0x0176] = new byte[] { 2 }, [0x0177] = new byte[] { 2 }, [0x0178] = new byte[1] { 0 }, [0x0179] = new byte[] { 2 }, [0x017A] = new byte[] { 2, 2 }, [0x017B] = new byte[] { 2 }, [0x017C] = new byte[] { 2, 2 }, [0x017D] = new byte[] { 2, 2 }, [0x017E] = new byte[] { 2, 2 }, [0x017F] = new byte[] { 2, 2 }, [0x0180] = new byte[] { 2, 2 }, [0x0181] = new byte[] { 2, 2, 2, 2 }, [0x0182] = new byte[] { 2 }, [0x0183] = new byte[] { 2 }, [0x0184] = new byte[] { 2 }, [0x0185] = new byte[] { 2, 2 }, [0x0186] = new byte[] { 2, 2 }, [0x0187] = new byte[] { 2 }, [0x0188] = new byte[] { 2, 2, 2 }, [0x0189] = new byte[] { 2, 2, 2 }, [0x018A] = new byte[] { 2 }, [0x018B] = new byte[] { 2 }, [0x018C] = new byte[] { 2, 2 }, [0x018D] = new byte[] { 2, 2 }, [0x018E] = new byte[] { 2, 2, 2 }, [0x018F] = new byte[] { 1, 2, 2 }, [0x0190] = new byte[] { 0xFF, 1, //0xFF signals that this scrcmd takes a variable num of parameters, 1 is the size of the 1st par 0, 0, //if 1st par is 0, read 0 parameters 1, 0, //if 1st par is 1, read 0 parameters 2, 1, 2 //if 1st par is 2, read 1 parameter of size = 2 bytes }, [0x0191] = new byte[] { 0xFF, 1, //0xFF signals that this scrcmd takes a variable num of parameters, 1 is the size of the 1st par 0, 0, //if 1st par is 0, read 0 parameters 1, 0, //if 1st par is 1, read 0 parameters 2, 1, 2 //if 1st par is 2, read 1 parameter of size = 2 bytes }, [0x0192] = new byte[] { 0xFF, 1, //0xFF signals that this scrcmd takes a variable num of parameters, 1 is the size of the 1st par 0, 0, //if 1st par is 0, read 0 parameters 1, 0, //if 1st par is 1, read 0 parameters 2, 1, 2 //if 1st par is 2, read 1 parameter of size = 2 bytes }, [0x0193] = new byte[] { 2, 2 }, [0x0194] = new byte[] { 2, 2, 2 }, [0x0195] = new byte[] { 2, 2 }, [0x0196] = new byte[] { 2 }, [0x0197] = new byte[] { 2, 2 }, [0x0198] = new byte[] { 2, 2 }, [0x0199] = new byte[1] { 0 }, [0x019A] = new byte[] { 2, 2 }, [0x019B] = new byte[1] { 0 }, [0x019C] = new byte[] { 2, 2, 2 }, [0x019D] = new byte[] { 2, 2, 2, 2 }, [0x019E] = new byte[] { 2 }, [0x019F] = new byte[] { 2 }, [0x01A0] = new byte[] { 2, 2, 2 }, [0x01A1] = new byte[] { 2, 2 }, [0x01A2] = new byte[] { 2, 2 }, [0x01A3] = new byte[] { 2 }, [0x01A4] = new byte[] { 2 }, [0x01A5] = new byte[1] { 0 }, [0x01A6] = new byte[1] { 0 }, [0x01A7] = new byte[] { 2 }, [0x01A8] = new byte[] { 2 }, [0x01A9] = new byte[] { 2 }, [0x01AA] = new byte[] { 1, 2, 2 }, [0x01AB] = new byte[] { 2, 2 }, [0x01AC] = new byte[] { 2 }, [0x01AD] = new byte[] { 2 }, [0x01AE] = new byte[] { 2, 2, 2 }, [0x01AF] = new byte[1] { 0 }, [0x01B0] = new byte[] { 2, 2 }, [0x01B1] = new byte[] { 2, 2, 2 }, [0x01B2] = new byte[] { 2, 2 }, [0x01B3] = new byte[] { 2, 2 }, [0x01B4] = new byte[1] { 0 }, [0x01B5] = new byte[] { 2 }, [0x01B6] = new byte[] { 2, 2 }, [0x01B7] = new byte[] { 2, 2 }, [0x01B8] = new byte[] { 2, 2 }, [0x01B9] = new byte[] { 2, 2 }, [0x01BA] = new byte[] { 2, 2 }, [0x01BB] = new byte[1] { 0 }, [0x01BC] = new byte[] { 1, 2, 2, 1 }, [0x01BD] = new byte[] { 2 }, [0x01BE] = new byte[] { 2 }, [0x01BF] = new byte[] { 1, 1 }, [0x01C0] = new byte[] { 2, 2, 2, 2, 2 }, [0x01C1] = new byte[] { 2, 2 }, [0x01C2] = new byte[1] { 0 }, [0x01C3] = new byte[] { 2 }, [0x01C4] = new byte[] { 2, 2 }, [0x01C5] = new byte[1] { 0 }, [0x01C6] = new byte[1] { 0 }, [0x01C7] = new byte[1] { 0 }, [0x01C8] = new byte[] { 2, 2 }, [0x01C9] = new byte[] { 2, 2 }, [0x01CA] = new byte[] { 2, 2, 2 }, [0x01CB] = new byte[1] { 0 }, [0x01CC] = new byte[] { 2, 2 }, [0x01CD] = new byte[] { 1, 2, 2 }, [0x01CE] = new byte[] { 2 }, [0x01CF] = new byte[1] { 0 }, [0x01D0] = new byte[] { 1 }, [0x01D1] = new byte[] { 0xFF, 2, //0xFF = Variable number of parameters, 2 = size of first parameter 0, 2, 2, 2, //if value is 0, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 1, 2, 2, 2, //if value is 1, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 2, 2, 2, 2, //if value is 2, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 3, 2, 2, 2, //if value is 3, read 2 parameters... first one takes up 2 bytes, second par takes up 2 bytes 4, 1, 2, //if value is 4, read 1 parameter... which takes up 2 bytes 5, 1, 2, //if value is 5, read 1 parameter... which takes up 2 bytes 6, 0, //if value is 6, don't read anything 7, 1, 2, //if value is 7, read 1 parameter... which takes up 2 bytes }, [0x01D2] = new byte[] { 2, 2 }, [0x01D3] = new byte[] { 2 }, [0x01D4] = new byte[] { 2, 2 }, [0x01D5] = new byte[] { 2 }, [0x01D6] = new byte[] { 1 }, [0x01D7] = new byte[] { 2 }, [0x01D8] = new byte[] { 2 }, [0x01D9] = new byte[] { 2 }, [0x01DA] = new byte[1] { 0 }, [0x01DB] = new byte[1] { 0 }, [0x01DC] = new byte[1] { 0 }, [0x01DD] = new byte[] { 1, 2 }, [0x01DE] = new byte[] { 2, 2 }, [0x01DF] = new byte[] { 2 }, [0x01E0] = new byte[] { 2, 2, 2 }, [0x01E1] = new byte[] { 2, 2 }, [0x01E2] = new byte[] { 1, 2 }, [0x01E3] = new byte[] { 2, 2 }, [0x01E4] = new byte[] { 2 }, [0x01E5] = new byte[] { 2 }, [0x01E6] = new byte[1] { 0 }, [0x01E7] = new byte[] { 2 }, [0x01E8] = new byte[] { 2, 2 }, [0x01E9] = new byte[] { 0xFF, 2, //0xFF = Variable number of parameters, 2 = size of first parameter 0, 0, //if value is 0, don't read anything 1, 1, 2, //if value is 1, read 1 parameter... which takes up 2 bytes 2, 1, 2, //if value is 2, read 1 parameter... which takes up 2 bytes 3, 1, 2, //if value is 3, read 1 parameter... which takes up 2 bytes 4, 0, //if value is 4, don't read anything 5, 2, 2, 2, //if value is 5, read 2 parameters... each one takes up 2 bytes 6, 2, 2, 2, //if value is 6, read 2 parameters... each one takes up 2 bytes 7, 0, //if value is 7, don't read anything 8, 0 //if value is 8, don't read anything }, [0x01EA] = new byte[] { 2 }, [0x01EB] = new byte[] { 2 }, [0x01EC] = new byte[] { 2, 2, 2 }, [0x01ED] = new byte[] { 2, 2, 2 }, [0x01EE] = new byte[] { 2, 2 }, [0x01EF] = new byte[] { 2 }, [0x01F0] = new byte[] { 2 }, [0x01F1] = new byte[] { 2, 2, 2 }, [0x01F2] = new byte[] { 2, 2, 2, 2, 2 }, [0x01F3] = new byte[] { 2, 2, 2, 2, 2 }, [0x01F4] = new byte[] { 1 }, [0x01F5] = new byte[] { 1 }, [0x01F6] = new byte[] { 2, 2 }, [0x01F7] = new byte[] { 2 }, [0x01F8] = new byte[] { 2, 2, 2, 2 }, [0x01F9] = new byte[1] { 0 }, [0x01FA] = new byte[] { 1, 2 }, [0x01FB] = new byte[] { 2 }, [0x01FC] = new byte[] { 2 }, [0x01FD] = new byte[] { 2 }, [0x01FE] = new byte[1] { 0 }, [0x01FF] = new byte[] { 2, 2 }, [0x0200] = new byte[] { 0 }, [0x0201] = new byte[] { 0 }, [0x0202] = new byte[] { 2 }, [0x0203] = new byte[] { 2 }, [0x0204] = new byte[] { 1, 2 }, [0x0205] = new byte[] { 2, 2 }, [0x0206] = new byte[] { 2 }, [0x0207] = new byte[] { 2 }, [0x0208] = new byte[1] { 0 }, [0x0209] = new byte[1] { 0 }, [0x020A] = new byte[] { 2 }, [0x020B] = new byte[] { 2, 2, 2, 2, 2 }, [0x020C] = new byte[] { 2, 2, 2, 2, 2 }, [0x020D] = new byte[] { 2 }, [0x020E] = new byte[1] { 0 }, [0x020F] = new byte[] { 2 }, [0x0210] = new byte[] { 2 }, [0x0211] = new byte[] { 2 }, [0x0212] = new byte[] { 2, 1 }, [0x0213] = new byte[] { 1, 2 }, [0x0214] = new byte[] { 2, 2, 2 }, [0x0215] = new byte[] { 2, 2, 2 }, [0x0216] = new byte[] { 2 }, [0x0217] = new byte[] { 2, 2 }, [0x0218] = new byte[] { 2 }, [0x0219] = new byte[1] { 0 }, [0x021A] = new byte[] { 2, 2 }, [0x021B] = new byte[1] { 0 }, [0x021C] = new byte[] { 2 }, [0x021D] = new byte[] { 1, 2, 1, 1 }, [0x021E] = new byte[1] { 0 }, [0x021F] = new byte[] { 2 }, [0x0220] = new byte[] { 2, 2 }, [0x0221] = new byte[] { 2 }, [0x0222] = new byte[] { 1, 2 }, [0x0223] = new byte[] { 2 }, [0x0224] = new byte[1] { 0 }, [0x0225] = new byte[] { 2 }, [0x0226] = new byte[] { 1 }, [0x0227] = new byte[] { 2 }, [0x0228] = new byte[] { 2, 2 }, [0x0229] = new byte[] { 1, 2 }, [0x022A] = new byte[1] { 0 }, [0x022B] = new byte[] { 2 }, [0x022C] = new byte[] { 2 }, [0x022D] = new byte[] { 2, 2 }, [0x022E] = new byte[] { 2, 2 }, [0x022F] = new byte[] { 2 }, [0x0230] = new byte[] { 2, 2 }, [0x0231] = new byte[] { 2, 2, 2, 2 }, [0x0232] = new byte[] { 2, 2, 2, 1 }, [0x0233] = new byte[] { 2, 2 }, [0x0234] = new byte[] { 2 }, [0x0235] = new byte[] { 2 }, [0x0236] = new byte[1] { 0 }, [0x0237] = new byte[] { 2, 2, 2, 2 }, [0x0238] = new byte[] { 2, 2 }, [0x0239] = new byte[] { 2 }, [0x023A] = new byte[] { 2, 2, 2 }, [0x023B] = new byte[] { 2 }, [0x023C] = new byte[] { 2 }, [0x023D] = new byte[1] { 0 }, [0x023E] = new byte[] { 2, 2 }, [0x023F] = new byte[1] { 0 }, [0x0240] = new byte[] { 2 }, [0x0241] = new byte[1] { 0 }, [0x0242] = new byte[1] { 0 }, [0x0243] = new byte[1] { 0 }, [0x0244] = new byte[] { 1, 2 }, [0x0245] = new byte[] { 2, 2 }, [0x0246] = new byte[] { 2, 2, 2 }, [0x0247] = new byte[] { 2 }, [0x0248] = new byte[] { 2 }, [0x0249] = new byte[1] { 0 }, [0x024A] = new byte[] { 2 }, [0x024B] = new byte[1] { 0 }, [0x024C] = new byte[] { 2 }, [0x024D] = new byte[] { 2, 2, 1 }, [0x024E] = new byte[] { 2 }, [0x024F] = new byte[1] { 0 }, [0x0250] = new byte[] { 2 }, [0x0251] = new byte[1] { 0 }, [0x0252] = new byte[1] { 0 }, [0x0253] = new byte[] { 1 }, [0x0254] = new byte[] { 2 }, [0x0255] = new byte[1] { 0 }, [0x0256] = new byte[] { 2 }, [0x0257] = new byte[1] { 0 }, [0x0258] = new byte[1] { 0 }, [0x0259] = new byte[1] { 0 }, [0x025A] = new byte[] { 2 }, [0x025B] = new byte[1] { 0 }, [0x025C] = new byte[] { 2 }, [0x025D] = new byte[] { 1, 1 }, [0x025E] = new byte[1] { 0 }, [0x025F] = new byte[1] { 0 }, [0x0260] = new byte[1] { 0 }, [0x0261] = new byte[1] { 0 }, [0x0262] = new byte[1] { 0 }, [0x0263] = new byte[] { 2, 2, 2, 2, 2, 2 }, [0x0264] = new byte[] { 2 }, [0x0265] = new byte[] { 2 }, [0x0266] = new byte[] { 2 }, [0x0267] = new byte[] { 2, 2 }, [0x0268] = new byte[] { 2 }, [0x0269] = new byte[1] { 0 }, [0x026A] = new byte[] { 2 }, [0x026B] = new byte[] { 2 }, [0x026C] = new byte[] { 1 }, [0x026D] = new byte[] { 2 }, [0x026E] = new byte[] { 2, 2 }, [0x026F] = new byte[] { 2 }, [0x0270] = new byte[] { 2 }, [0x0271] = new byte[] { 2, 2, 2 }, [0x0272] = new byte[] { 1, 2 }, [0x0273] = new byte[] { 1 }, [0x0274] = new byte[] { 2, 2 }, [0x0275] = new byte[] { 2 }, [0x0276] = new byte[] { 2 }, [0x0277] = new byte[] { 2, 2, 2 }, [0x0278] = new byte[] { 2, 2 }, [0x0279] = new byte[] { 2, 2, 2 }, [0x027A] = new byte[] { 2, 2 }, [0x027B] = new byte[] { 2, 2 }, [0x027C] = new byte[] { 2 }, [0x027D] = new byte[] { 2, 2, 2 }, [0x027E] = new byte[] { 2, 2, 2 }, [0x027F] = new byte[] { 2, 2, 2 }, [0x0280] = new byte[] { 2 }, [0x0281] = new byte[] { 2, 2, 2 }, [0x0282] = new byte[] { 2 }, [0x0283] = new byte[] { 2, 2, 2 }, [0x0284] = new byte[] { 2, 2, 2 }, [0x0285] = new byte[] { 2, 2, 2 }, [0x0286] = new byte[] { 2 }, [0x0287] = new byte[] { 2, 2 }, //To be checked! [0x0288] = new byte[] { 2 }, [0x0289] = new byte[1] { 0 }, [0x028A] = new byte[1] { 0 }, [0x028B] = new byte[] { 2, 2, 2 }, [0x028C] = new byte[] { 2, 2, 2 }, [0x028D] = new byte[] { 2, 2, 2, 2 }, [0x028E] = new byte[] { 2, 2, 2 }, [0x028F] = new byte[] { 2, 2 }, [0x0290] = new byte[] { 2, 2 }, [0x0291] = new byte[] { 2, 2, 2, 2 }, [0x0292] = new byte[] { 1, 2 }, [0x0293] = new byte[] { 2 }, [0x0294] = new byte[] { 2 }, [0x0295] = new byte[1] { 0 }, [0x0296] = new byte[] { 2, 2, 2 }, [0x0297] = new byte[] { 2 }, [0x0298] = new byte[1] { 0 }, [0x0299] = new byte[] { 2 }, [0x029A] = new byte[] { 2, 2 }, [0x029B] = new byte[] { 2, 2, 2, 2 }, [0x029C] = new byte[] { 1, 2 }, [0x029D] = new byte[] { 2, 2 }, [0x029E] = new byte[] { 2, 2 }, [0x029F] = new byte[1] { 0 }, [0x02A0] = new byte[] { 2, 2, 2 }, [0x02A1] = new byte[] { 2, 2, 2, 2, 2 }, [0x02A2] = new byte[] { 2, 2 }, [0x02A3] = new byte[] { 2, 2, 2, 2 }, [0x02A4] = new byte[] { 2, 2 }, [0x02A5] = new byte[1] { 0 }, [0x02A6] = new byte[] { 2, 2, 2 }, [0x02A7] = new byte[] { 2, 2 }, [0x02A8] = new byte[] { 2, 2 }, [0x02A9] = new byte[] { 2 }, [0x02AA] = new byte[] { 2 }, [0x02AB] = new byte[] { 2 }, [0x02AC] = new byte[] { 2 }, [0x02AD] = new byte[] { 2, 2, 2 }, [0x02AE] = new byte[] { 2, 2 }, [0x02AF] = new byte[] { 2 }, [0x02B0] = new byte[] { 2 }, [0x02B1] = new byte[] { 2 }, [0x02B2] = new byte[] { 2, 2 }, [0x02B3] = new byte[] { 2 }, [0x02B4] = new byte[1] { 0 }, [0x02B5] = new byte[] { 2 }, [0x02B6] = new byte[] { 2 }, [0x02B7] = new byte[] { 2 }, [0x02B8] = new byte[] { 2 }, [0x02B9] = new byte[1] { 0 }, [0x02BA] = new byte[] { 1, 2, 2 }, [0x02BB] = new byte[1] { 0 }, [0x02BC] = new byte[] { 2 }, [0x02BD] = new byte[] { 2, 2, 2, 2 }, [0x02BE] = new byte[1] { 0 }, [0x02BF] = new byte[] { 2 }, [0x02C0] = new byte[] { 2 }, [0x02C1] = new byte[1] { 0 }, [0x02C2] = new byte[] { 2 }, [0x02C3] = new byte[] { 2, 2 }, [0x02C4] = new byte[] { 2 }, [0x02C5] = new byte[1] { 0 }, [0x02C6] = new byte[1] { 0 }, [0x02C7] = new byte[1] { 0 }, [0x02C8] = new byte[] { 1 }, [0x02C9] = new byte[] { 1 }, [0x02CA] = new byte[] { 1 }, [0x02CB] = new byte[1] { 0 }, [0x02CC] = new byte[1] { 0 }, [0x02CD] = new byte[] { 2 }, [0x02CE] = new byte[] { 1, 2 }, [0x02CF] = new byte[] { 2, 2 }, [0x02D0] = new byte[] { 2 }, [0x02D1] = new byte[] { 2 }, [0x02D2] = new byte[] { 1, 1, 2, 2, 2 }, [0x02D3] = new byte[] { 1, 1, 2, 2, 2 }, [0x02D4] = new byte[] { 2, 2 }, [0x02D5] = new byte[] { 1, 2 }, [0x02D6] = new byte[1] { 0 }, [0x02D7] = new byte[] { 2 }, [0x02D8] = new byte[] { 1, 1 }, [0x02D9] = new byte[] { 2 }, [0x02DA] = new byte[] { 2 }, [0x02DB] = new byte[1] { 0 }, [0x02DC] = new byte[] { 1 }, [0x02DD] = new byte[] { 1, 2 }, [0x02DE] = new byte[] { 1 }, [0x02DF] = new byte[] { 2 }, [0x02E0] = new byte[1] { 0 }, [0x02E1] = new byte[] { 2 }, [0x02E2] = new byte[] { 2 }, [0x02E3] = new byte[1] { 0 }, [0x02E4] = new byte[] { 2, 2, 2 }, [0x02E5] = new byte[] { 2, 2, 2, 2 }, [0x02E6] = new byte[] { 2, 2, 2 }, [0x02E7] = new byte[] { 2 }, [0x02E8] = new byte[1] { 0 }, [0x02E9] = new byte[] { 1, 2 }, [0x02EA] = new byte[1] { 0 }, [0x02EB] = new byte[1] { 0 }, [0x02EC] = new byte[] { 2 }, [0x02ED] = new byte[] { 1, 1, 1, 1, 2 }, [0x02EE] = new byte[] { 1, 1, 1, 1, 2 }, [0x02EF] = new byte[] { 2, 2, 2 }, [0x02F0] = new byte[1] { 0 }, [0x02F1] = new byte[] { 2, 2, 2 }, [0x02F2] = new byte[] { 2 }, [0x02F3] = new byte[1] { 0 }, [0x02F4] = new byte[1] { 0 }, [0x02F5] = new byte[] { 2, 2 }, [0x02F6] = new byte[] { 2, 2, 2 }, [0x02F7] = new byte[1] { 0 }, [0x02F8] = new byte[1] { 0 }, [0x02F9] = new byte[] { 2 }, [0x02FA] = new byte[] { 2 }, [0x02FB] = new byte[1] { 0 }, [0x02FC] = new byte[1] { 0 }, [0x02FD] = new byte[1] { 0 }, [0x02FE] = new byte[] { 2, 2 }, [0x02FF] = new byte[1] { 0 }, [0x0300] = new byte[1] { 0 }, [0x0301] = new byte[1] { 0 }, [0x0302] = new byte[] { 2 }, [0x0303] = new byte[1] { 0 }, [0x0304] = new byte[1] { 0 }, [0x0305] = new byte[] { 2 }, [0x0306] = new byte[] { 2, 2 }, [0x0307] = new byte[] { 2, 2 }, [0x0308] = new byte[1] { 0 }, [0x0309] = new byte[] { 2, 2 }, [0x030A] = new byte[1] { 0 }, [0x030B] = new byte[] { 2, 2 }, [0x030C] = new byte[] { 1, 1 }, [0x030D] = new byte[] { 2 }, [0x030E] = new byte[1] { 0 }, [0x030F] = new byte[] { 1 }, [0x0310] = new byte[] { 1, 1 }, [0x0311] = new byte[] { 2, 1 }, [0x0312] = new byte[] { 1 }, [0x0313] = new byte[] { 2, 2, 2 }, [0x0314] = new byte[] { 1, 2 }, [0x0315] = new byte[] { 1 }, [0x0316] = new byte[] { 2, 2 }, [0x0317] = new byte[] { 1, 2 }, [0x0318] = new byte[1] { 0 }, [0x0319] = new byte[] { 2, 2 }, [0x031A] = new byte[] { 2, 2, 2 }, [0x031B] = new byte[] { 2, 2 }, [0x031C] = new byte[1] { 0 }, [0x031D] = new byte[] { 2 }, [0x031E] = new byte[] { 2 }, [0x031F] = new byte[] { 2 }, [0x0320] = new byte[] { 2 }, [0x0321] = new byte[] { 2 }, [0x0322] = new byte[1] { 0 }, [0x0323] = new byte[] { 2, 2 }, [0x0324] = new byte[] { 1 }, [0x0325] = new byte[1] { 0 }, [0x0326] = new byte[1] { 0 }, [0x0327] = new byte[] { 2, 2 }, [0x0328] = new byte[] { 2 }, [0x0329] = new byte[] { 2 }, [0x032A] = new byte[1] { 0 }, [0x032B] = new byte[] { 2, 2 }, [0x032C] = new byte[] { 2, 2, 2, 2 }, [0x032D] = new byte[] { 2 }, [0x032E] = new byte[1] { 0 }, [0x032F] = new byte[] { 2 }, [0x0330] = new byte[1] { 0 }, [0x0331] = new byte[] { 1 }, [0x0332] = new byte[1] { 0 }, [0x0333] = new byte[1] { 0 }, [0x0334] = new byte[] { 1 }, [0x0335] = new byte[] { 2, 2 }, [0x0336] = new byte[] { 2 }, [0x0337] = new byte[] { 2 }, [0x0338] = new byte[] { 2 }, [0x0339] = new byte[] { 2, 2 }, [0x033A] = new byte[] { 2 }, [0x033B] = new byte[] { 2, 2 }, [0x033C] = new byte[] { 2, 2, 1 }, [0x033D] = new byte[] { 2 }, [0x033E] = new byte[] { 2 }, [0x033F] = new byte[] { 2 }, [0x0340] = new byte[] { 2 }, [0x0341] = new byte[] { 2 }, [0x0342] = new byte[] { 2 }, [0x0343] = new byte[] { 2 }, [0x0344] = new byte[] { 2 }, [0x0345] = new byte[] { 2 }, [0x0346] = new byte[] { 2, 2 }, [0x0347] = new byte[] { 2 }, [0x0348] = new byte[] { 2, 2 }, [0x0349] = new byte[] { 1 }, [0x034A] = new byte[] { 1 }, [0x034B] = new byte[] { 1, 2 }, [0x034C] = new byte[] { 1, 2 }, [0x034D] = new byte[] { 1, 2 }, [0x034E] = new byte[] { 2, 2, 2 }, [0x034F] = new byte[] { 1 }, [0x0350] = new byte[] { 1, 2 }, [0x0351] = new byte[] { 1, 2 }, [0x0352] = new byte[] { 1, 2 }, [0x0353] = new byte[] { 1 }, [0x0354] = new byte[] { 1, 1 } }; } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesB2W2.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptNamesB2W2 { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptNamesB2W2() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptNamesB2W2", typeof(ScriptNamesB2W2).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to End. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to Call. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to Return. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to CallStandard. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to ReturnStandard. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to Jump. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to If. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to SetFlag. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to ClearFlag. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to LockAll. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to ReleaseAll. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to WaitMoment. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to WaitButton. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to MusicalMessage. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to BubbleMessage. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to CloseBubbleMessage. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to Message. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to Message2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress2. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to AngryMessage. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to CloseAngryMessage. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to ApplyMovement. /// internal static string _0064 { get { return ResourceManager.GetString("0064", resourceCulture); } } /// /// Looks up a localized string similar to WaitMovement. /// internal static string _0065 { get { return ResourceManager.GetString("0065", resourceCulture); } } /// /// Looks up a localized string similar to AddPeople. /// internal static string _006B { get { return ResourceManager.GetString("006B", resourceCulture); } } /// /// Looks up a localized string similar to RemovePeople. /// internal static string _006C { get { return ResourceManager.GetString("006C", resourceCulture); } } /// /// Looks up a localized string similar to SetOverworldPosition. /// internal static string _006D { get { return ResourceManager.GetString("006D", resourceCulture); } } /// /// Looks up a localized string similar to FacePlayer. /// internal static string _0074 { get { return ResourceManager.GetString("0074", resourceCulture); } } /// /// Looks up a localized string similar to PlayTrainerMusic. /// internal static string _008B { get { return ResourceManager.GetString("008B", resourceCulture); } } /// /// Looks up a localized string similar to TrainerBattle. /// internal static string _0094 { get { return ResourceManager.GetString("0094", resourceCulture); } } /// /// Looks up a localized string similar to PlaySound. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to PlayFanfare. /// internal static string _00A9 { get { return ResourceManager.GetString("00A9", resourceCulture); } } /// /// Looks up a localized string similar to WaitFanfare. /// internal static string _00AA { get { return ResourceManager.GetString("00AA", resourceCulture); } } /// /// Looks up a localized string similar to PlayCry. /// internal static string _00AB { get { return ResourceManager.GetString("00AB", resourceCulture); } } /// /// Looks up a localized string similar to WaitCry. /// internal static string _00AC { get { return ResourceManager.GetString("00AC", resourceCulture); } } /// /// Looks up a localized string similar to FadeScreen. /// internal static string _00B3 { get { return ResourceManager.GetString("00B3", resourceCulture); } } /// /// Looks up a localized string similar to ResetScreen. /// internal static string _00B4 { get { return ResourceManager.GetString("00B4", resourceCulture); } } /// /// Looks up a localized string similar to HealPokemon. /// internal static string _0104 { get { return ResourceManager.GetString("0104", resourceCulture); } } /// /// Looks up a localized string similar to WildBattle. /// internal static string _0174 { get { return ResourceManager.GetString("0174", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesB2W2.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 End Call Return CallStandard ReturnStandard Jump If SetFlag ClearFlag LockAll ReleaseAll WaitMoment WaitButton MusicalMessage BubbleMessage CloseBubbleMessage Message Message2 CloseMessageOnKeyPress CloseMessageOnKeyPress2 AngryMessage CloseAngryMessage ApplyMovement WaitMovement AddPeople RemovePeople SetOverworldPosition FacePlayer PlayTrainerMusic TrainerBattle PlaySound PlayFanfare WaitFanfare PlayCry WaitCry FadeScreen ResetScreen HealPokemon WildBattle ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesB2W2J.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptNamesB2W2J { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptNamesB2W2J() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptNamesB2W2J", typeof(ScriptNamesB2W2J).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to End. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to Call. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to Return. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to CallStandard. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to ReturnStandard. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to Jump. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to If. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to SetFlag. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to ClearFlag. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to LockAll. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to ReleaseAll. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to WaitMoment. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to WaitButton. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to MusicalMessage. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to BubbleMessage. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to CloseBubbleMessage. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to Message. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to Message2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress2. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to AngryMessage. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to CloseAngryMessage. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to ApplyMovement. /// internal static string _0060 { get { return ResourceManager.GetString("0060", resourceCulture); } } /// /// Looks up a localized string similar to WaitMovement. /// internal static string _0061 { get { return ResourceManager.GetString("0061", resourceCulture); } } /// /// Looks up a localized string similar to AddPeople. /// internal static string _0067 { get { return ResourceManager.GetString("0067", resourceCulture); } } /// /// Looks up a localized string similar to RemovePeople. /// internal static string _0068 { get { return ResourceManager.GetString("0068", resourceCulture); } } /// /// Looks up a localized string similar to SetOverworldPosition. /// internal static string _0069 { get { return ResourceManager.GetString("0069", resourceCulture); } } /// /// Looks up a localized string similar to FacePlayer. /// internal static string _0070 { get { return ResourceManager.GetString("0070", resourceCulture); } } /// /// Looks up a localized string similar to PlayTrainerMusic. /// internal static string _0087 { get { return ResourceManager.GetString("0087", resourceCulture); } } /// /// Looks up a localized string similar to TrainerBattle. /// internal static string _0090 { get { return ResourceManager.GetString("0090", resourceCulture); } } /// /// Looks up a localized string similar to PlaySound. /// internal static string _00A2 { get { return ResourceManager.GetString("00A2", resourceCulture); } } /// /// Looks up a localized string similar to PlayFanfare. /// internal static string _00A5 { get { return ResourceManager.GetString("00A5", resourceCulture); } } /// /// Looks up a localized string similar to WaitFanfare. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to PlayCry. /// internal static string _00A7 { get { return ResourceManager.GetString("00A7", resourceCulture); } } /// /// Looks up a localized string similar to WaitCry. /// internal static string _00A8 { get { return ResourceManager.GetString("00A8", resourceCulture); } } /// /// Looks up a localized string similar to FadeScreen. /// internal static string _00AF { get { return ResourceManager.GetString("00AF", resourceCulture); } } /// /// Looks up a localized string similar to ResetScreen. /// internal static string _00B0 { get { return ResourceManager.GetString("00B0", resourceCulture); } } /// /// Looks up a localized string similar to HealPokemon. /// internal static string _0100 { get { return ResourceManager.GetString("0100", resourceCulture); } } /// /// Looks up a localized string similar to WildBattle. /// internal static string _0170 { get { return ResourceManager.GetString("0170", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesB2W2J.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 End Call Return CallStandard ReturnStandard Jump If SetFlag ClearFlag LockAll ReleaseAll WaitMoment WaitButton MusicalMessage BubbleMessage CloseBubbleMessage Message Message2 CloseMessageOnKeyPress CloseMessageOnKeyPress2 AngryMessage CloseAngryMessage ApplyMovement WaitMovement AddPeople RemovePeople SetOverworldPosition FacePlayer PlayTrainerMusic TrainerBattle PlaySound PlayFanfare WaitFanfare PlayCry WaitCry FadeScreen ResetScreen HealPokemon WildBattle ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesBW.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptNamesBW { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptNamesBW() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptNamesBW", typeof(ScriptNamesBW).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to End. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to PauseEnd. /// internal static string _0003 { get { return ResourceManager.GetString("0003", resourceCulture); } } /// /// Looks up a localized string similar to Call. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to Return. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to ClearVariable. /// internal static string _000A { get { return ResourceManager.GetString("000A", resourceCulture); } } /// /// Looks up a localized string similar to StoreFlag. /// internal static string _0010 { get { return ResourceManager.GetString("0010", resourceCulture); } } /// /// Looks up a localized string similar to CallStandard. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to ReturnStandard. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to Jump. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to If. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to SetFlag. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to ClearFlag. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to LockAll. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to ReleaseAll. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to WaitMoment. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to WaitButton. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to MusicalMessage. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to BubbleMessage. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to CloseBubbleMessage. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to Message. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to Message2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress2. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to AngryMessage. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to CloseAngryMessage. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to ApplyMovement. /// internal static string _0064 { get { return ResourceManager.GetString("0064", resourceCulture); } } /// /// Looks up a localized string similar to WaitMovement. /// internal static string _0065 { get { return ResourceManager.GetString("0065", resourceCulture); } } /// /// Looks up a localized string similar to AddPeople. /// internal static string _006B { get { return ResourceManager.GetString("006B", resourceCulture); } } /// /// Looks up a localized string similar to RemovePeople. /// internal static string _006C { get { return ResourceManager.GetString("006C", resourceCulture); } } /// /// Looks up a localized string similar to SetOverworldPosition. /// internal static string _006D { get { return ResourceManager.GetString("006D", resourceCulture); } } /// /// Looks up a localized string similar to FacePlayer. /// internal static string _0074 { get { return ResourceManager.GetString("0074", resourceCulture); } } /// /// Looks up a localized string similar to PlayTrainerMusic. /// internal static string _008B { get { return ResourceManager.GetString("008B", resourceCulture); } } /// /// Looks up a localized string similar to TrainerBattle. /// internal static string _0094 { get { return ResourceManager.GetString("0094", resourceCulture); } } /// /// Looks up a localized string similar to PlaySound. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to PlayFanfare. /// internal static string _00A9 { get { return ResourceManager.GetString("00A9", resourceCulture); } } /// /// Looks up a localized string similar to WaitFanfare. /// internal static string _00AA { get { return ResourceManager.GetString("00AA", resourceCulture); } } /// /// Looks up a localized string similar to PlayCry. /// internal static string _00AB { get { return ResourceManager.GetString("00AB", resourceCulture); } } /// /// Looks up a localized string similar to WaitCry. /// internal static string _00AC { get { return ResourceManager.GetString("00AC", resourceCulture); } } /// /// Looks up a localized string similar to FadeScreen. /// internal static string _00B3 { get { return ResourceManager.GetString("00B3", resourceCulture); } } /// /// Looks up a localized string similar to ResetScreen. /// internal static string _00B4 { get { return ResourceManager.GetString("00B4", resourceCulture); } } /// /// Looks up a localized string similar to HealPokemon. /// internal static string _0104 { get { return ResourceManager.GetString("0104", resourceCulture); } } /// /// Looks up a localized string similar to WildBattle. /// internal static string _0174 { get { return ResourceManager.GetString("0174", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesBW.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 End PauseEnd Call Return ClearVariable StoreFlag CallStandard ReturnStandard Jump If SetFlag ClearFlag LockAll ReleaseAll WaitMoment WaitButton MusicalMessage BubbleMessage CloseBubbleMessage Message Message2 CloseMessageOnKeyPress CloseMessageOnKeyPress2 AngryMessage CloseAngryMessage ApplyMovement WaitMovement AddPeople RemovePeople SetOverworldPosition FacePlayer PlayTrainerMusic TrainerBattle PlaySound PlayFanfare WaitFanfare PlayCry WaitCry FadeScreen ResetScreen HealPokemon WildBattle ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesBWJ.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptNamesBWJ { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptNamesBWJ() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptNamesBWJ", typeof(ScriptNamesBWJ).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to End. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to PauseEnd. /// internal static string _0003 { get { return ResourceManager.GetString("0003", resourceCulture); } } /// /// Looks up a localized string similar to Call. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to Return. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to ClearVariable. /// internal static string _000A { get { return ResourceManager.GetString("000A", resourceCulture); } } /// /// Looks up a localized string similar to StoreFlag. /// internal static string _0010 { get { return ResourceManager.GetString("0010", resourceCulture); } } /// /// Looks up a localized string similar to CallStandard. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to ReturnStandard. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to Jump. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to If. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to SetFlag. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to ClearFlag. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to LockAll. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to ReleaseAll. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to WaitMoment. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to WaitButton. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to MusicalMessage. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to BubbleMessage. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to CloseBubbleMessage. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to Message. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to Message2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to CloseMessageOnKeyPress2. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to AngryMessage. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to CloseAngryMessage. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to ApplyMovement. /// internal static string _0060 { get { return ResourceManager.GetString("0060", resourceCulture); } } /// /// Looks up a localized string similar to WaitMovement. /// internal static string _0061 { get { return ResourceManager.GetString("0061", resourceCulture); } } /// /// Looks up a localized string similar to AddPeople. /// internal static string _0067 { get { return ResourceManager.GetString("0067", resourceCulture); } } /// /// Looks up a localized string similar to RemovePeople. /// internal static string _0068 { get { return ResourceManager.GetString("0068", resourceCulture); } } /// /// Looks up a localized string similar to SetOverworldPosition. /// internal static string _0069 { get { return ResourceManager.GetString("0069", resourceCulture); } } /// /// Looks up a localized string similar to FacePlayer. /// internal static string _0070 { get { return ResourceManager.GetString("0070", resourceCulture); } } /// /// Looks up a localized string similar to PlayTrainerMusic. /// internal static string _0087 { get { return ResourceManager.GetString("0087", resourceCulture); } } /// /// Looks up a localized string similar to TrainerBattle. /// internal static string _0090 { get { return ResourceManager.GetString("0090", resourceCulture); } } /// /// Looks up a localized string similar to PlaySound. /// internal static string _00A2 { get { return ResourceManager.GetString("00A2", resourceCulture); } } /// /// Looks up a localized string similar to PlayFanfare. /// internal static string _00A5 { get { return ResourceManager.GetString("00A5", resourceCulture); } } /// /// Looks up a localized string similar to WaitFanfare. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to PlayCry. /// internal static string _00A7 { get { return ResourceManager.GetString("00A7", resourceCulture); } } /// /// Looks up a localized string similar to WaitCry. /// internal static string _00A8 { get { return ResourceManager.GetString("00A8", resourceCulture); } } /// /// Looks up a localized string similar to FadeScreen. /// internal static string _00AF { get { return ResourceManager.GetString("00AF", resourceCulture); } } /// /// Looks up a localized string similar to ResetScreen. /// internal static string _00B0 { get { return ResourceManager.GetString("00B0", resourceCulture); } } /// /// Looks up a localized string similar to HealPokemon. /// internal static string _0100 { get { return ResourceManager.GetString("0100", resourceCulture); } } /// /// Looks up a localized string similar to WildBattle. /// internal static string _0170 { get { return ResourceManager.GetString("0170", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesBWJ.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 End PauseEnd Call Return ClearVariable StoreFlag CallStandard ReturnStandard Jump If SetFlag ClearFlag LockAll ReleaseAll WaitMoment WaitButton MusicalMessage BubbleMessage CloseBubbleMessage Message Message2 CloseMessageOnKeyPress CloseMessageOnKeyPress2 AngryMessage CloseAngryMessage ApplyMovement WaitMovement AddPeople RemovePeople SetOverworldPosition FacePlayer PlayTrainerMusic TrainerBattle PlaySound PlayFanfare WaitFanfare PlayCry WaitCry FadeScreen ResetScreen HealPokemon WildBattle ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesWBW.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptNamesWBW { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptNamesWBW() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptNamesWBW", typeof(ScriptNamesWBW).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 006B. /// internal static string AddPeople { get { return ResourceManager.GetString("AddPeople", resourceCulture); } } /// /// Looks up a localized string similar to 004A. /// internal static string AngryMessage { get { return ResourceManager.GetString("AngryMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0064. /// internal static string ApplyMovement { get { return ResourceManager.GetString("ApplyMovement", resourceCulture); } } /// /// Looks up a localized string similar to 0038. /// internal static string BubbleMessage { get { return ResourceManager.GetString("BubbleMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0004. /// internal static string Call { get { return ResourceManager.GetString("Call", resourceCulture); } } /// /// Looks up a localized string similar to 001C. /// internal static string CallStandard { get { return ResourceManager.GetString("CallStandard", resourceCulture); } } /// /// Looks up a localized string similar to 0024. /// internal static string ClearFlag { get { return ResourceManager.GetString("ClearFlag", resourceCulture); } } /// /// Looks up a localized string similar to 000A. /// internal static string ClearVariable { get { return ResourceManager.GetString("ClearVariable", resourceCulture); } } /// /// Looks up a localized string similar to 004B. /// internal static string CloseAngryMessage { get { return ResourceManager.GetString("CloseAngryMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0039. /// internal static string CloseBubbleMessage { get { return ResourceManager.GetString("CloseBubbleMessage", resourceCulture); } } /// /// Looks up a localized string similar to 003E. /// internal static string CloseMessageOnKeyPress { get { return ResourceManager.GetString("CloseMessageOnKeyPress", resourceCulture); } } /// /// Looks up a localized string similar to 003F. /// internal static string CloseMessageOnKeyPress2 { get { return ResourceManager.GetString("CloseMessageOnKeyPress2", resourceCulture); } } /// /// Looks up a localized string similar to 0002. /// internal static string End { get { return ResourceManager.GetString("End", resourceCulture); } } /// /// Looks up a localized string similar to 0074. /// internal static string FacePlayer { get { return ResourceManager.GetString("FacePlayer", resourceCulture); } } /// /// Looks up a localized string similar to 00B3. /// internal static string FadeScreen { get { return ResourceManager.GetString("FadeScreen", resourceCulture); } } /// /// Looks up a localized string similar to 0104. /// internal static string HealPokemon { get { return ResourceManager.GetString("HealPokemon", resourceCulture); } } /// /// Looks up a localized string similar to 001F. /// internal static string If { get { return ResourceManager.GetString("If", resourceCulture); } } /// /// Looks up a localized string similar to 001E. /// internal static string Jump { get { return ResourceManager.GetString("Jump", resourceCulture); } } /// /// Looks up a localized string similar to 002E. /// internal static string LockAll { get { return ResourceManager.GetString("LockAll", resourceCulture); } } /// /// Looks up a localized string similar to 003C. /// internal static string Message { get { return ResourceManager.GetString("Message", resourceCulture); } } /// /// Looks up a localized string similar to 003D. /// internal static string Message2 { get { return ResourceManager.GetString("Message2", resourceCulture); } } /// /// Looks up a localized string similar to 0033. /// internal static string MusicalMessage { get { return ResourceManager.GetString("MusicalMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0003. /// internal static string PauseEnd { get { return ResourceManager.GetString("PauseEnd", resourceCulture); } } /// /// Looks up a localized string similar to 00AB. /// internal static string PlayCry { get { return ResourceManager.GetString("PlayCry", resourceCulture); } } /// /// Looks up a localized string similar to 00A9. /// internal static string PlayFanfare { get { return ResourceManager.GetString("PlayFanfare", resourceCulture); } } /// /// Looks up a localized string similar to 00A6. /// internal static string PlaySound { get { return ResourceManager.GetString("PlaySound", resourceCulture); } } /// /// Looks up a localized string similar to 008B. /// internal static string PlayTrainerMusic { get { return ResourceManager.GetString("PlayTrainerMusic", resourceCulture); } } /// /// Looks up a localized string similar to 002F. /// internal static string ReleaseAll { get { return ResourceManager.GetString("ReleaseAll", resourceCulture); } } /// /// Looks up a localized string similar to 006C. /// internal static string RemovePeople { get { return ResourceManager.GetString("RemovePeople", resourceCulture); } } /// /// Looks up a localized string similar to 00B4. /// internal static string ResetScreen { get { return ResourceManager.GetString("ResetScreen", resourceCulture); } } /// /// Looks up a localized string similar to 0005. /// internal static string Return { get { return ResourceManager.GetString("Return", resourceCulture); } } /// /// Looks up a localized string similar to 001D. /// internal static string ReturnStandard { get { return ResourceManager.GetString("ReturnStandard", resourceCulture); } } /// /// Looks up a localized string similar to 0023. /// internal static string SetFlag { get { return ResourceManager.GetString("SetFlag", resourceCulture); } } /// /// Looks up a localized string similar to 006D. /// internal static string SetOverworldPosition { get { return ResourceManager.GetString("SetOverworldPosition", resourceCulture); } } /// /// Looks up a localized string similar to 0010. /// internal static string StoreFlag { get { return ResourceManager.GetString("StoreFlag", resourceCulture); } } /// /// Looks up a localized string similar to 0094. /// internal static string TrainerBattle { get { return ResourceManager.GetString("TrainerBattle", resourceCulture); } } /// /// Looks up a localized string similar to 0032. /// internal static string WaitButton { get { return ResourceManager.GetString("WaitButton", resourceCulture); } } /// /// Looks up a localized string similar to 00AC. /// internal static string WaitCry { get { return ResourceManager.GetString("WaitCry", resourceCulture); } } /// /// Looks up a localized string similar to 00AA. /// internal static string WaitFanfare { get { return ResourceManager.GetString("WaitFanfare", resourceCulture); } } /// /// Looks up a localized string similar to 0030. /// internal static string WaitMoment { get { return ResourceManager.GetString("WaitMoment", resourceCulture); } } /// /// Looks up a localized string similar to 0065. /// internal static string WaitMovement { get { return ResourceManager.GetString("WaitMovement", resourceCulture); } } /// /// Looks up a localized string similar to 0174. /// internal static string WildBattle { get { return ResourceManager.GetString("WildBattle", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesWBW.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 006B 004A 0064 0038 0004 001C 0024 000A 004B 0039 003E 003F 0002 0074 00B3 0104 001F 001E 002E 003C 003D 0033 0003 00AB 00A9 00A6 008B 002F 006C 00B4 0005 001D 0023 006D 0010 0094 0032 00AC 00AA 0030 0065 0174 ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesWBWJ.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptNamesWBWJ { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptNamesWBWJ() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptNamesWBWJ", typeof(ScriptNamesWBWJ).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 0067. /// internal static string AddPeople { get { return ResourceManager.GetString("AddPeople", resourceCulture); } } /// /// Looks up a localized string similar to 004A. /// internal static string AngryMessage { get { return ResourceManager.GetString("AngryMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0060. /// internal static string ApplyMovement { get { return ResourceManager.GetString("ApplyMovement", resourceCulture); } } /// /// Looks up a localized string similar to 0038. /// internal static string BubbleMessage { get { return ResourceManager.GetString("BubbleMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0004. /// internal static string Call { get { return ResourceManager.GetString("Call", resourceCulture); } } /// /// Looks up a localized string similar to 001C. /// internal static string CallStandard { get { return ResourceManager.GetString("CallStandard", resourceCulture); } } /// /// Looks up a localized string similar to 0024. /// internal static string ClearFlag { get { return ResourceManager.GetString("ClearFlag", resourceCulture); } } /// /// Looks up a localized string similar to 000A. /// internal static string ClearVariable { get { return ResourceManager.GetString("ClearVariable", resourceCulture); } } /// /// Looks up a localized string similar to 004B. /// internal static string CloseAngryMessage { get { return ResourceManager.GetString("CloseAngryMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0039. /// internal static string CloseBubbleMessage { get { return ResourceManager.GetString("CloseBubbleMessage", resourceCulture); } } /// /// Looks up a localized string similar to 003E. /// internal static string CloseMessageOnKeyPress { get { return ResourceManager.GetString("CloseMessageOnKeyPress", resourceCulture); } } /// /// Looks up a localized string similar to 003F. /// internal static string CloseMessageOnKeyPress2 { get { return ResourceManager.GetString("CloseMessageOnKeyPress2", resourceCulture); } } /// /// Looks up a localized string similar to 0002. /// internal static string End { get { return ResourceManager.GetString("End", resourceCulture); } } /// /// Looks up a localized string similar to 0070. /// internal static string FacePlayer { get { return ResourceManager.GetString("FacePlayer", resourceCulture); } } /// /// Looks up a localized string similar to 00AF. /// internal static string FadeScreen { get { return ResourceManager.GetString("FadeScreen", resourceCulture); } } /// /// Looks up a localized string similar to 0100. /// internal static string HealPokemon { get { return ResourceManager.GetString("HealPokemon", resourceCulture); } } /// /// Looks up a localized string similar to 001F. /// internal static string If { get { return ResourceManager.GetString("If", resourceCulture); } } /// /// Looks up a localized string similar to 001E. /// internal static string Jump { get { return ResourceManager.GetString("Jump", resourceCulture); } } /// /// Looks up a localized string similar to 002E. /// internal static string LockAll { get { return ResourceManager.GetString("LockAll", resourceCulture); } } /// /// Looks up a localized string similar to 003C. /// internal static string Message { get { return ResourceManager.GetString("Message", resourceCulture); } } /// /// Looks up a localized string similar to 003D. /// internal static string Message2 { get { return ResourceManager.GetString("Message2", resourceCulture); } } /// /// Looks up a localized string similar to 0033. /// internal static string MusicalMessage { get { return ResourceManager.GetString("MusicalMessage", resourceCulture); } } /// /// Looks up a localized string similar to 0003. /// internal static string PauseEnd { get { return ResourceManager.GetString("PauseEnd", resourceCulture); } } /// /// Looks up a localized string similar to 00A7. /// internal static string PlayCry { get { return ResourceManager.GetString("PlayCry", resourceCulture); } } /// /// Looks up a localized string similar to 00A5. /// internal static string PlayFanfare { get { return ResourceManager.GetString("PlayFanfare", resourceCulture); } } /// /// Looks up a localized string similar to 00A2. /// internal static string PlaySound { get { return ResourceManager.GetString("PlaySound", resourceCulture); } } /// /// Looks up a localized string similar to 0087. /// internal static string PlayTrainerMusic { get { return ResourceManager.GetString("PlayTrainerMusic", resourceCulture); } } /// /// Looks up a localized string similar to 002F. /// internal static string ReleaseAll { get { return ResourceManager.GetString("ReleaseAll", resourceCulture); } } /// /// Looks up a localized string similar to 0068. /// internal static string RemovePeople { get { return ResourceManager.GetString("RemovePeople", resourceCulture); } } /// /// Looks up a localized string similar to 00B0. /// internal static string ResetScreen { get { return ResourceManager.GetString("ResetScreen", resourceCulture); } } /// /// Looks up a localized string similar to 0005. /// internal static string Return { get { return ResourceManager.GetString("Return", resourceCulture); } } /// /// Looks up a localized string similar to 001D. /// internal static string ReturnStandard { get { return ResourceManager.GetString("ReturnStandard", resourceCulture); } } /// /// Looks up a localized string similar to 0023. /// internal static string SetFlag { get { return ResourceManager.GetString("SetFlag", resourceCulture); } } /// /// Looks up a localized string similar to 0069. /// internal static string SetOverworldPosition { get { return ResourceManager.GetString("SetOverworldPosition", resourceCulture); } } /// /// Looks up a localized string similar to 0010. /// internal static string StoreFlag { get { return ResourceManager.GetString("StoreFlag", resourceCulture); } } /// /// Looks up a localized string similar to 0090. /// internal static string TrainerBattle { get { return ResourceManager.GetString("TrainerBattle", resourceCulture); } } /// /// Looks up a localized string similar to 0032. /// internal static string WaitButton { get { return ResourceManager.GetString("WaitButton", resourceCulture); } } /// /// Looks up a localized string similar to 00A8. /// internal static string WaitCry { get { return ResourceManager.GetString("WaitCry", resourceCulture); } } /// /// Looks up a localized string similar to 00A6. /// internal static string WaitFanfare { get { return ResourceManager.GetString("WaitFanfare", resourceCulture); } } /// /// Looks up a localized string similar to 0030. /// internal static string WaitMoment { get { return ResourceManager.GetString("WaitMoment", resourceCulture); } } /// /// Looks up a localized string similar to 0061. /// internal static string WaitMovement { get { return ResourceManager.GetString("WaitMovement", resourceCulture); } } /// /// Looks up a localized string similar to 0170. /// internal static string WildBattle { get { return ResourceManager.GetString("WildBattle", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptNamesWBWJ.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 0067 004A 0060 0038 0004 001C 0024 000A 004B 0039 003E 003F 0002 0070 00AF 0100 001F 001E 002E 003C 003D 0033 0003 00A7 00A5 00A2 0087 002F 0068 00B0 0005 001D 0023 0069 0010 0090 0032 00A8 00A6 0030 0061 0170 ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsB2W2.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptsB2W2 { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptsB2W2() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptsB2W2", typeof(ScriptsB2W2).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 0. /// internal static string _0000 { get { return ResourceManager.GetString("0000", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0001 { get { return ResourceManager.GetString("0001", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0003 { get { return ResourceManager.GetString("0003", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0006 { get { return ResourceManager.GetString("0006", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0007 { get { return ResourceManager.GetString("0007", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0008 { get { return ResourceManager.GetString("0008", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0009 { get { return ResourceManager.GetString("0009", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000A { get { return ResourceManager.GetString("000A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000B { get { return ResourceManager.GetString("000B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000C { get { return ResourceManager.GetString("000C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000D { get { return ResourceManager.GetString("000D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000E { get { return ResourceManager.GetString("000E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000F { get { return ResourceManager.GetString("000F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0010 { get { return ResourceManager.GetString("0010", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0011 { get { return ResourceManager.GetString("0011", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0012 { get { return ResourceManager.GetString("0012", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0013 { get { return ResourceManager.GetString("0013", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0014 { get { return ResourceManager.GetString("0014", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0015 { get { return ResourceManager.GetString("0015", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0016 { get { return ResourceManager.GetString("0016", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0017 { get { return ResourceManager.GetString("0017", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0018 { get { return ResourceManager.GetString("0018", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0019 { get { return ResourceManager.GetString("0019", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001A { get { return ResourceManager.GetString("001A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001B { get { return ResourceManager.GetString("001B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 4. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0020 { get { return ResourceManager.GetString("0020", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0021 { get { return ResourceManager.GetString("0021", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0022 { get { return ResourceManager.GetString("0022", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0025 { get { return ResourceManager.GetString("0025", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0026 { get { return ResourceManager.GetString("0026", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0027 { get { return ResourceManager.GetString("0027", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0028 { get { return ResourceManager.GetString("0028", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0029 { get { return ResourceManager.GetString("0029", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _002A { get { return ResourceManager.GetString("002A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _002B { get { return ResourceManager.GetString("002B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002C { get { return ResourceManager.GetString("002C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _002D { get { return ResourceManager.GetString("002D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0031 { get { return ResourceManager.GetString("0031", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0034 { get { return ResourceManager.GetString("0034", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0035 { get { return ResourceManager.GetString("0035", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0036 { get { return ResourceManager.GetString("0036", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0037 { get { return ResourceManager.GetString("0037", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _003A { get { return ResourceManager.GetString("003A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _003B { get { return ResourceManager.GetString("003B", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 2 2 2 2. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to 5 1 1 2 2 2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0040 { get { return ResourceManager.GetString("0040", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0041 { get { return ResourceManager.GetString("0041", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0042 { get { return ResourceManager.GetString("0042", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0043 { get { return ResourceManager.GetString("0043", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0044 { get { return ResourceManager.GetString("0044", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0045 { get { return ResourceManager.GetString("0045", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0046 { get { return ResourceManager.GetString("0046", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0047 { get { return ResourceManager.GetString("0047", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0048 { get { return ResourceManager.GetString("0048", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0049 { get { return ResourceManager.GetString("0049", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _004C { get { return ResourceManager.GetString("004C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004D { get { return ResourceManager.GetString("004D", resourceCulture); } } /// /// Looks up a localized string similar to 4 1 2 2 1. /// internal static string _004E { get { return ResourceManager.GetString("004E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004F { get { return ResourceManager.GetString("004F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0050 { get { return ResourceManager.GetString("0050", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0051 { get { return ResourceManager.GetString("0051", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0052 { get { return ResourceManager.GetString("0052", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0053 { get { return ResourceManager.GetString("0053", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0054 { get { return ResourceManager.GetString("0054", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0055 { get { return ResourceManager.GetString("0055", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0056 { get { return ResourceManager.GetString("0056", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0057 { get { return ResourceManager.GetString("0057", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0058 { get { return ResourceManager.GetString("0058", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0059 { get { return ResourceManager.GetString("0059", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005A { get { return ResourceManager.GetString("005A", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005B { get { return ResourceManager.GetString("005B", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _005C { get { return ResourceManager.GetString("005C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _005D { get { return ResourceManager.GetString("005D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005E { get { return ResourceManager.GetString("005E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005F { get { return ResourceManager.GetString("005F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0060 { get { return ResourceManager.GetString("0060", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0061 { get { return ResourceManager.GetString("0061", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0062 { get { return ResourceManager.GetString("0062", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0063 { get { return ResourceManager.GetString("0063", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 4. /// internal static string _0064 { get { return ResourceManager.GetString("0064", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0065 { get { return ResourceManager.GetString("0065", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0066 { get { return ResourceManager.GetString("0066", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0067 { get { return ResourceManager.GetString("0067", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0068 { get { return ResourceManager.GetString("0068", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0069 { get { return ResourceManager.GetString("0069", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006A { get { return ResourceManager.GetString("006A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006B { get { return ResourceManager.GetString("006B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006C { get { return ResourceManager.GetString("006C", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _006D { get { return ResourceManager.GetString("006D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006E { get { return ResourceManager.GetString("006E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006F { get { return ResourceManager.GetString("006F", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0070 { get { return ResourceManager.GetString("0070", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0071 { get { return ResourceManager.GetString("0071", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0072 { get { return ResourceManager.GetString("0072", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0073 { get { return ResourceManager.GetString("0073", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0074 { get { return ResourceManager.GetString("0074", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0075 { get { return ResourceManager.GetString("0075", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0076 { get { return ResourceManager.GetString("0076", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0077 { get { return ResourceManager.GetString("0077", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0078 { get { return ResourceManager.GetString("0078", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0079 { get { return ResourceManager.GetString("0079", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _007A { get { return ResourceManager.GetString("007A", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _007B { get { return ResourceManager.GetString("007B", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _007C { get { return ResourceManager.GetString("007C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007D { get { return ResourceManager.GetString("007D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007E { get { return ResourceManager.GetString("007E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _007F { get { return ResourceManager.GetString("007F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0080 { get { return ResourceManager.GetString("0080", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0081 { get { return ResourceManager.GetString("0081", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0082 { get { return ResourceManager.GetString("0082", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0083 { get { return ResourceManager.GetString("0083", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0084 { get { return ResourceManager.GetString("0084", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0085 { get { return ResourceManager.GetString("0085", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0086 { get { return ResourceManager.GetString("0086", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0087 { get { return ResourceManager.GetString("0087", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0088 { get { return ResourceManager.GetString("0088", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0089 { get { return ResourceManager.GetString("0089", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008A { get { return ResourceManager.GetString("008A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _008B { get { return ResourceManager.GetString("008B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008C { get { return ResourceManager.GetString("008C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _008D { get { return ResourceManager.GetString("008D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008E { get { return ResourceManager.GetString("008E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008F { get { return ResourceManager.GetString("008F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0090 { get { return ResourceManager.GetString("0090", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0091 { get { return ResourceManager.GetString("0091", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0092 { get { return ResourceManager.GetString("0092", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0093 { get { return ResourceManager.GetString("0093", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0094 { get { return ResourceManager.GetString("0094", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0095 { get { return ResourceManager.GetString("0095", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0096 { get { return ResourceManager.GetString("0096", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0097 { get { return ResourceManager.GetString("0097", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0098 { get { return ResourceManager.GetString("0098", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0099 { get { return ResourceManager.GetString("0099", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009A { get { return ResourceManager.GetString("009A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009B { get { return ResourceManager.GetString("009B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009C { get { return ResourceManager.GetString("009C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009D { get { return ResourceManager.GetString("009D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009E { get { return ResourceManager.GetString("009E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _009F { get { return ResourceManager.GetString("009F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A0 { get { return ResourceManager.GetString("00A0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A1 { get { return ResourceManager.GetString("00A1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A2 { get { return ResourceManager.GetString("00A2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A3 { get { return ResourceManager.GetString("00A3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A4 { get { return ResourceManager.GetString("00A4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A5 { get { return ResourceManager.GetString("00A5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A7 { get { return ResourceManager.GetString("00A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A8 { get { return ResourceManager.GetString("00A8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A9 { get { return ResourceManager.GetString("00A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AA { get { return ResourceManager.GetString("00AA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00AB { get { return ResourceManager.GetString("00AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AC { get { return ResourceManager.GetString("00AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AD { get { return ResourceManager.GetString("00AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AE { get { return ResourceManager.GetString("00AE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00AF { get { return ResourceManager.GetString("00AF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B0 { get { return ResourceManager.GetString("00B0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B1 { get { return ResourceManager.GetString("00B1", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 1 1 1 2. /// internal static string _00B2 { get { return ResourceManager.GetString("00B2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00B3 { get { return ResourceManager.GetString("00B3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B4 { get { return ResourceManager.GetString("00B4", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B5 { get { return ResourceManager.GetString("00B5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B6 { get { return ResourceManager.GetString("00B6", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B7 { get { return ResourceManager.GetString("00B7", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B8 { get { return ResourceManager.GetString("00B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B9 { get { return ResourceManager.GetString("00B9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BA { get { return ResourceManager.GetString("00BA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00BB { get { return ResourceManager.GetString("00BB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00BC { get { return ResourceManager.GetString("00BC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00BD { get { return ResourceManager.GetString("00BD", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00BE { get { return ResourceManager.GetString("00BE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BF { get { return ResourceManager.GetString("00BF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C0 { get { return ResourceManager.GetString("00C0", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00C1 { get { return ResourceManager.GetString("00C1", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00C2 { get { return ResourceManager.GetString("00C2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C3 { get { return ResourceManager.GetString("00C3", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _00C4 { get { return ResourceManager.GetString("00C4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C5 { get { return ResourceManager.GetString("00C5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C6 { get { return ResourceManager.GetString("00C6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00C7 { get { return ResourceManager.GetString("00C7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C8 { get { return ResourceManager.GetString("00C8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C9 { get { return ResourceManager.GetString("00C9", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00CA { get { return ResourceManager.GetString("00CA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00CB { get { return ResourceManager.GetString("00CB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CC { get { return ResourceManager.GetString("00CC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CD { get { return ResourceManager.GetString("00CD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CE { get { return ResourceManager.GetString("00CE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CF { get { return ResourceManager.GetString("00CF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D0 { get { return ResourceManager.GetString("00D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D1 { get { return ResourceManager.GetString("00D1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D2 { get { return ResourceManager.GetString("00D2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D3 { get { return ResourceManager.GetString("00D3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D4 { get { return ResourceManager.GetString("00D4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D5 { get { return ResourceManager.GetString("00D5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D6 { get { return ResourceManager.GetString("00D6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D7 { get { return ResourceManager.GetString("00D7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D8 { get { return ResourceManager.GetString("00D8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D9 { get { return ResourceManager.GetString("00D9", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00DA { get { return ResourceManager.GetString("00DA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00DB { get { return ResourceManager.GetString("00DB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00DC { get { return ResourceManager.GetString("00DC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00DD { get { return ResourceManager.GetString("00DD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00DE { get { return ResourceManager.GetString("00DE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00DF { get { return ResourceManager.GetString("00DF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E0 { get { return ResourceManager.GetString("00E0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E1 { get { return ResourceManager.GetString("00E1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E2 { get { return ResourceManager.GetString("00E2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E3 { get { return ResourceManager.GetString("00E3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E4 { get { return ResourceManager.GetString("00E4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00E5 { get { return ResourceManager.GetString("00E5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E6 { get { return ResourceManager.GetString("00E6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E7 { get { return ResourceManager.GetString("00E7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E8 { get { return ResourceManager.GetString("00E8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E9 { get { return ResourceManager.GetString("00E9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EA { get { return ResourceManager.GetString("00EA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EB { get { return ResourceManager.GetString("00EB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00EC { get { return ResourceManager.GetString("00EC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00ED { get { return ResourceManager.GetString("00ED", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EE { get { return ResourceManager.GetString("00EE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EF { get { return ResourceManager.GetString("00EF", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00F0 { get { return ResourceManager.GetString("00F0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F1 { get { return ResourceManager.GetString("00F1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F2 { get { return ResourceManager.GetString("00F2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F3 { get { return ResourceManager.GetString("00F3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F4 { get { return ResourceManager.GetString("00F4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F5 { get { return ResourceManager.GetString("00F5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F6 { get { return ResourceManager.GetString("00F6", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00F7 { get { return ResourceManager.GetString("00F7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F8 { get { return ResourceManager.GetString("00F8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F9 { get { return ResourceManager.GetString("00F9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00FA { get { return ResourceManager.GetString("00FA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FB { get { return ResourceManager.GetString("00FB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FC { get { return ResourceManager.GetString("00FC", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00FD { get { return ResourceManager.GetString("00FD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FE { get { return ResourceManager.GetString("00FE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FF { get { return ResourceManager.GetString("00FF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0100 { get { return ResourceManager.GetString("0100", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0101 { get { return ResourceManager.GetString("0101", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0102 { get { return ResourceManager.GetString("0102", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0103 { get { return ResourceManager.GetString("0103", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0104 { get { return ResourceManager.GetString("0104", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0105 { get { return ResourceManager.GetString("0105", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0106 { get { return ResourceManager.GetString("0106", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0107 { get { return ResourceManager.GetString("0107", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0108 { get { return ResourceManager.GetString("0108", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0109 { get { return ResourceManager.GetString("0109", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010A { get { return ResourceManager.GetString("010A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010B { get { return ResourceManager.GetString("010B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _010C { get { return ResourceManager.GetString("010C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _010D { get { return ResourceManager.GetString("010D", resourceCulture); } } /// /// Looks up a localized string similar to 9 2 2 2 2 2 2 2 2 2. /// internal static string _010E { get { return ResourceManager.GetString("010E", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010F { get { return ResourceManager.GetString("010F", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0110 { get { return ResourceManager.GetString("0110", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0111 { get { return ResourceManager.GetString("0111", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0112 { get { return ResourceManager.GetString("0112", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0113 { get { return ResourceManager.GetString("0113", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0114 { get { return ResourceManager.GetString("0114", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0115 { get { return ResourceManager.GetString("0115", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0116 { get { return ResourceManager.GetString("0116", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0117 { get { return ResourceManager.GetString("0117", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0118 { get { return ResourceManager.GetString("0118", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0119 { get { return ResourceManager.GetString("0119", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _011A { get { return ResourceManager.GetString("011A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _011B { get { return ResourceManager.GetString("011B", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _011C { get { return ResourceManager.GetString("011C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011D { get { return ResourceManager.GetString("011D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011E { get { return ResourceManager.GetString("011E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011F { get { return ResourceManager.GetString("011F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0120 { get { return ResourceManager.GetString("0120", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0121 { get { return ResourceManager.GetString("0121", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0122 { get { return ResourceManager.GetString("0122", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0123 { get { return ResourceManager.GetString("0123", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0124 { get { return ResourceManager.GetString("0124", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0125 { get { return ResourceManager.GetString("0125", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0126 { get { return ResourceManager.GetString("0126", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0127 { get { return ResourceManager.GetString("0127", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0128 { get { return ResourceManager.GetString("0128", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0129 { get { return ResourceManager.GetString("0129", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012A { get { return ResourceManager.GetString("012A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _012B { get { return ResourceManager.GetString("012B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012C { get { return ResourceManager.GetString("012C", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _012D { get { return ResourceManager.GetString("012D", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _012E { get { return ResourceManager.GetString("012E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012F { get { return ResourceManager.GetString("012F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0130 { get { return ResourceManager.GetString("0130", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0131 { get { return ResourceManager.GetString("0131", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0132 { get { return ResourceManager.GetString("0132", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0133 { get { return ResourceManager.GetString("0133", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0134 { get { return ResourceManager.GetString("0134", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0135 { get { return ResourceManager.GetString("0135", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0136 { get { return ResourceManager.GetString("0136", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0137 { get { return ResourceManager.GetString("0137", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0138 { get { return ResourceManager.GetString("0138", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0139 { get { return ResourceManager.GetString("0139", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _013A { get { return ResourceManager.GetString("013A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _013B { get { return ResourceManager.GetString("013B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013C { get { return ResourceManager.GetString("013C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013D { get { return ResourceManager.GetString("013D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013E { get { return ResourceManager.GetString("013E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013F { get { return ResourceManager.GetString("013F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0140 { get { return ResourceManager.GetString("0140", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0141 { get { return ResourceManager.GetString("0141", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0142 { get { return ResourceManager.GetString("0142", resourceCulture); } } /// /// Looks up a localized string similar to 11 2 2 2 2 2 2 2 2 2 2 2. /// internal static string _0143 { get { return ResourceManager.GetString("0143", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0144 { get { return ResourceManager.GetString("0144", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0145 { get { return ResourceManager.GetString("0145", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0146 { get { return ResourceManager.GetString("0146", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0147 { get { return ResourceManager.GetString("0147", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _0148 { get { return ResourceManager.GetString("0148", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0149 { get { return ResourceManager.GetString("0149", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014A { get { return ResourceManager.GetString("014A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014B { get { return ResourceManager.GetString("014B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014C { get { return ResourceManager.GetString("014C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _014D { get { return ResourceManager.GetString("014D", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _014E { get { return ResourceManager.GetString("014E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _014F { get { return ResourceManager.GetString("014F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0150 { get { return ResourceManager.GetString("0150", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0151 { get { return ResourceManager.GetString("0151", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0152 { get { return ResourceManager.GetString("0152", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0153 { get { return ResourceManager.GetString("0153", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0154 { get { return ResourceManager.GetString("0154", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0155 { get { return ResourceManager.GetString("0155", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0156 { get { return ResourceManager.GetString("0156", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0157 { get { return ResourceManager.GetString("0157", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0158 { get { return ResourceManager.GetString("0158", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0159 { get { return ResourceManager.GetString("0159", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015A { get { return ResourceManager.GetString("015A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015B { get { return ResourceManager.GetString("015B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015C { get { return ResourceManager.GetString("015C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015D { get { return ResourceManager.GetString("015D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015E { get { return ResourceManager.GetString("015E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015F { get { return ResourceManager.GetString("015F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0160 { get { return ResourceManager.GetString("0160", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0161 { get { return ResourceManager.GetString("0161", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0162 { get { return ResourceManager.GetString("0162", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _0163 { get { return ResourceManager.GetString("0163", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0164 { get { return ResourceManager.GetString("0164", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0165 { get { return ResourceManager.GetString("0165", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0166 { get { return ResourceManager.GetString("0166", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0167 { get { return ResourceManager.GetString("0167", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0168 { get { return ResourceManager.GetString("0168", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0169 { get { return ResourceManager.GetString("0169", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _016A { get { return ResourceManager.GetString("016A", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _016B { get { return ResourceManager.GetString("016B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016C { get { return ResourceManager.GetString("016C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016D { get { return ResourceManager.GetString("016D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _016E { get { return ResourceManager.GetString("016E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _016F { get { return ResourceManager.GetString("016F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0170 { get { return ResourceManager.GetString("0170", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0171 { get { return ResourceManager.GetString("0171", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0172 { get { return ResourceManager.GetString("0172", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0173 { get { return ResourceManager.GetString("0173", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0174 { get { return ResourceManager.GetString("0174", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0175 { get { return ResourceManager.GetString("0175", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0176 { get { return ResourceManager.GetString("0176", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0177 { get { return ResourceManager.GetString("0177", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0178 { get { return ResourceManager.GetString("0178", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0179 { get { return ResourceManager.GetString("0179", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _017A { get { return ResourceManager.GetString("017A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _017B { get { return ResourceManager.GetString("017B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017C { get { return ResourceManager.GetString("017C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017D { get { return ResourceManager.GetString("017D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017E { get { return ResourceManager.GetString("017E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _017F { get { return ResourceManager.GetString("017F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0180 { get { return ResourceManager.GetString("0180", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0181 { get { return ResourceManager.GetString("0181", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0182 { get { return ResourceManager.GetString("0182", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0183 { get { return ResourceManager.GetString("0183", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0184 { get { return ResourceManager.GetString("0184", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0185 { get { return ResourceManager.GetString("0185", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0186 { get { return ResourceManager.GetString("0186", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0187 { get { return ResourceManager.GetString("0187", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0188 { get { return ResourceManager.GetString("0188", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0189 { get { return ResourceManager.GetString("0189", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018A { get { return ResourceManager.GetString("018A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018B { get { return ResourceManager.GetString("018B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _018C { get { return ResourceManager.GetString("018C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018D { get { return ResourceManager.GetString("018D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018E { get { return ResourceManager.GetString("018E", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _018F { get { return ResourceManager.GetString("018F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0190 { get { return ResourceManager.GetString("0190", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0191 { get { return ResourceManager.GetString("0191", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0192 { get { return ResourceManager.GetString("0192", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0193 { get { return ResourceManager.GetString("0193", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0194 { get { return ResourceManager.GetString("0194", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0195 { get { return ResourceManager.GetString("0195", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0196 { get { return ResourceManager.GetString("0196", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0197 { get { return ResourceManager.GetString("0197", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0198 { get { return ResourceManager.GetString("0198", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0199 { get { return ResourceManager.GetString("0199", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _019A { get { return ResourceManager.GetString("019A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019B { get { return ResourceManager.GetString("019B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019C { get { return ResourceManager.GetString("019C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019D { get { return ResourceManager.GetString("019D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019E { get { return ResourceManager.GetString("019E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019F { get { return ResourceManager.GetString("019F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01A0 { get { return ResourceManager.GetString("01A0", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A1 { get { return ResourceManager.GetString("01A1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01A2 { get { return ResourceManager.GetString("01A2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A3 { get { return ResourceManager.GetString("01A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A4 { get { return ResourceManager.GetString("01A4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A5 { get { return ResourceManager.GetString("01A5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01A6 { get { return ResourceManager.GetString("01A6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A7 { get { return ResourceManager.GetString("01A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A8 { get { return ResourceManager.GetString("01A8", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A9 { get { return ResourceManager.GetString("01A9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01AA { get { return ResourceManager.GetString("01AA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AB { get { return ResourceManager.GetString("01AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AC { get { return ResourceManager.GetString("01AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AD { get { return ResourceManager.GetString("01AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AE { get { return ResourceManager.GetString("01AE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01AF { get { return ResourceManager.GetString("01AF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B0 { get { return ResourceManager.GetString("01B0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B1 { get { return ResourceManager.GetString("01B1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B2 { get { return ResourceManager.GetString("01B2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B3 { get { return ResourceManager.GetString("01B3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B4 { get { return ResourceManager.GetString("01B4", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01B5 { get { return ResourceManager.GetString("01B5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B6 { get { return ResourceManager.GetString("01B6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B7 { get { return ResourceManager.GetString("01B7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B8 { get { return ResourceManager.GetString("01B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B9 { get { return ResourceManager.GetString("01B9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BA { get { return ResourceManager.GetString("01BA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BB { get { return ResourceManager.GetString("01BB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BC { get { return ResourceManager.GetString("01BC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BD { get { return ResourceManager.GetString("01BD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BE { get { return ResourceManager.GetString("01BE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01BF { get { return ResourceManager.GetString("01BF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C0 { get { return ResourceManager.GetString("01C0", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01C1 { get { return ResourceManager.GetString("01C1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C2 { get { return ResourceManager.GetString("01C2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C3 { get { return ResourceManager.GetString("01C3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C4 { get { return ResourceManager.GetString("01C4", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01C5 { get { return ResourceManager.GetString("01C5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01C6 { get { return ResourceManager.GetString("01C6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C7 { get { return ResourceManager.GetString("01C7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C8 { get { return ResourceManager.GetString("01C8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C9 { get { return ResourceManager.GetString("01C9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01CA { get { return ResourceManager.GetString("01CA", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01CB { get { return ResourceManager.GetString("01CB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01CC { get { return ResourceManager.GetString("01CC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01CD { get { return ResourceManager.GetString("01CD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01CE { get { return ResourceManager.GetString("01CE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01CF { get { return ResourceManager.GetString("01CF", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D0 { get { return ResourceManager.GetString("01D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D1 { get { return ResourceManager.GetString("01D1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01D2 { get { return ResourceManager.GetString("01D2", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01D3 { get { return ResourceManager.GetString("01D3", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01D4 { get { return ResourceManager.GetString("01D4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D5 { get { return ResourceManager.GetString("01D5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D6 { get { return ResourceManager.GetString("01D6", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D7 { get { return ResourceManager.GetString("01D7", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D8 { get { return ResourceManager.GetString("01D8", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01D9 { get { return ResourceManager.GetString("01D9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01DA { get { return ResourceManager.GetString("01DA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DB { get { return ResourceManager.GetString("01DB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DC { get { return ResourceManager.GetString("01DC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DD { get { return ResourceManager.GetString("01DD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DE { get { return ResourceManager.GetString("01DE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01DF { get { return ResourceManager.GetString("01DF", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E0 { get { return ResourceManager.GetString("01E0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01E1 { get { return ResourceManager.GetString("01E1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01E2 { get { return ResourceManager.GetString("01E2", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E3 { get { return ResourceManager.GetString("01E3", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _01E4 { get { return ResourceManager.GetString("01E4", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E5 { get { return ResourceManager.GetString("01E5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E6 { get { return ResourceManager.GetString("01E6", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E7 { get { return ResourceManager.GetString("01E7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01E8 { get { return ResourceManager.GetString("01E8", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E9 { get { return ResourceManager.GetString("01E9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01EA { get { return ResourceManager.GetString("01EA", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01EB { get { return ResourceManager.GetString("01EB", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01EC { get { return ResourceManager.GetString("01EC", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01ED { get { return ResourceManager.GetString("01ED", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EE { get { return ResourceManager.GetString("01EE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01EF { get { return ResourceManager.GetString("01EF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F0 { get { return ResourceManager.GetString("01F0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F1 { get { return ResourceManager.GetString("01F1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01F2 { get { return ResourceManager.GetString("01F2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01F3 { get { return ResourceManager.GetString("01F3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F4 { get { return ResourceManager.GetString("01F4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01F5 { get { return ResourceManager.GetString("01F5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01F6 { get { return ResourceManager.GetString("01F6", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _01F7 { get { return ResourceManager.GetString("01F7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F8 { get { return ResourceManager.GetString("01F8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F9 { get { return ResourceManager.GetString("01F9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01FA { get { return ResourceManager.GetString("01FA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01FB { get { return ResourceManager.GetString("01FB", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01FC { get { return ResourceManager.GetString("01FC", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01FD { get { return ResourceManager.GetString("01FD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01FE { get { return ResourceManager.GetString("01FE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FF { get { return ResourceManager.GetString("01FF", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0200 { get { return ResourceManager.GetString("0200", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0201 { get { return ResourceManager.GetString("0201", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0202 { get { return ResourceManager.GetString("0202", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0203 { get { return ResourceManager.GetString("0203", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0204 { get { return ResourceManager.GetString("0204", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0205 { get { return ResourceManager.GetString("0205", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0206 { get { return ResourceManager.GetString("0206", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0207 { get { return ResourceManager.GetString("0207", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0208 { get { return ResourceManager.GetString("0208", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0209 { get { return ResourceManager.GetString("0209", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _020A { get { return ResourceManager.GetString("020A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _020B { get { return ResourceManager.GetString("020B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _020C { get { return ResourceManager.GetString("020C", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _020D { get { return ResourceManager.GetString("020D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _020E { get { return ResourceManager.GetString("020E", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _020F { get { return ResourceManager.GetString("020F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0210 { get { return ResourceManager.GetString("0210", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0211 { get { return ResourceManager.GetString("0211", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0212 { get { return ResourceManager.GetString("0212", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0213 { get { return ResourceManager.GetString("0213", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0214 { get { return ResourceManager.GetString("0214", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0215 { get { return ResourceManager.GetString("0215", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0216 { get { return ResourceManager.GetString("0216", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0217 { get { return ResourceManager.GetString("0217", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0218 { get { return ResourceManager.GetString("0218", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0219 { get { return ResourceManager.GetString("0219", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021A { get { return ResourceManager.GetString("021A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _021B { get { return ResourceManager.GetString("021B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021C { get { return ResourceManager.GetString("021C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _021D { get { return ResourceManager.GetString("021D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _021E { get { return ResourceManager.GetString("021E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021F { get { return ResourceManager.GetString("021F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0220 { get { return ResourceManager.GetString("0220", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0221 { get { return ResourceManager.GetString("0221", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0222 { get { return ResourceManager.GetString("0222", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0223 { get { return ResourceManager.GetString("0223", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0224 { get { return ResourceManager.GetString("0224", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0225 { get { return ResourceManager.GetString("0225", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0226 { get { return ResourceManager.GetString("0226", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0227 { get { return ResourceManager.GetString("0227", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0228 { get { return ResourceManager.GetString("0228", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0229 { get { return ResourceManager.GetString("0229", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022A { get { return ResourceManager.GetString("022A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022B { get { return ResourceManager.GetString("022B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022C { get { return ResourceManager.GetString("022C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022D { get { return ResourceManager.GetString("022D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _022E { get { return ResourceManager.GetString("022E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022F { get { return ResourceManager.GetString("022F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0230 { get { return ResourceManager.GetString("0230", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0231 { get { return ResourceManager.GetString("0231", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0232 { get { return ResourceManager.GetString("0232", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0233 { get { return ResourceManager.GetString("0233", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0234 { get { return ResourceManager.GetString("0234", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0235 { get { return ResourceManager.GetString("0235", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0236 { get { return ResourceManager.GetString("0236", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0237 { get { return ResourceManager.GetString("0237", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0238 { get { return ResourceManager.GetString("0238", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0239 { get { return ResourceManager.GetString("0239", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023A { get { return ResourceManager.GetString("023A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023B { get { return ResourceManager.GetString("023B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _023C { get { return ResourceManager.GetString("023C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023D { get { return ResourceManager.GetString("023D", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _023E { get { return ResourceManager.GetString("023E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _023F { get { return ResourceManager.GetString("023F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0240 { get { return ResourceManager.GetString("0240", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0241 { get { return ResourceManager.GetString("0241", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0242 { get { return ResourceManager.GetString("0242", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0243 { get { return ResourceManager.GetString("0243", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0244 { get { return ResourceManager.GetString("0244", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0245 { get { return ResourceManager.GetString("0245", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0246 { get { return ResourceManager.GetString("0246", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0247 { get { return ResourceManager.GetString("0247", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0248 { get { return ResourceManager.GetString("0248", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0249 { get { return ResourceManager.GetString("0249", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _024A { get { return ResourceManager.GetString("024A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _024B { get { return ResourceManager.GetString("024B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _024C { get { return ResourceManager.GetString("024C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024D { get { return ResourceManager.GetString("024D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024E { get { return ResourceManager.GetString("024E", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _024F { get { return ResourceManager.GetString("024F", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0250 { get { return ResourceManager.GetString("0250", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0251 { get { return ResourceManager.GetString("0251", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0252 { get { return ResourceManager.GetString("0252", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _0253 { get { return ResourceManager.GetString("0253", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0254 { get { return ResourceManager.GetString("0254", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0255 { get { return ResourceManager.GetString("0255", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0256 { get { return ResourceManager.GetString("0256", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0257 { get { return ResourceManager.GetString("0257", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0258 { get { return ResourceManager.GetString("0258", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0259 { get { return ResourceManager.GetString("0259", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025A { get { return ResourceManager.GetString("025A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025B { get { return ResourceManager.GetString("025B", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _025C { get { return ResourceManager.GetString("025C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025D { get { return ResourceManager.GetString("025D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025E { get { return ResourceManager.GetString("025E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025F { get { return ResourceManager.GetString("025F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0260 { get { return ResourceManager.GetString("0260", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0261 { get { return ResourceManager.GetString("0261", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0262 { get { return ResourceManager.GetString("0262", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0263 { get { return ResourceManager.GetString("0263", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0264 { get { return ResourceManager.GetString("0264", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0265 { get { return ResourceManager.GetString("0265", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0266 { get { return ResourceManager.GetString("0266", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0267 { get { return ResourceManager.GetString("0267", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0268 { get { return ResourceManager.GetString("0268", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0269 { get { return ResourceManager.GetString("0269", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026A { get { return ResourceManager.GetString("026A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026B { get { return ResourceManager.GetString("026B", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026C { get { return ResourceManager.GetString("026C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026D { get { return ResourceManager.GetString("026D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026E { get { return ResourceManager.GetString("026E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026F { get { return ResourceManager.GetString("026F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0270 { get { return ResourceManager.GetString("0270", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0271 { get { return ResourceManager.GetString("0271", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0272 { get { return ResourceManager.GetString("0272", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0273 { get { return ResourceManager.GetString("0273", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0274 { get { return ResourceManager.GetString("0274", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0275 { get { return ResourceManager.GetString("0275", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0276 { get { return ResourceManager.GetString("0276", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0277 { get { return ResourceManager.GetString("0277", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0278 { get { return ResourceManager.GetString("0278", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0279 { get { return ResourceManager.GetString("0279", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027A { get { return ResourceManager.GetString("027A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027B { get { return ResourceManager.GetString("027B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027C { get { return ResourceManager.GetString("027C", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _027D { get { return ResourceManager.GetString("027D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027E { get { return ResourceManager.GetString("027E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027F { get { return ResourceManager.GetString("027F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0280 { get { return ResourceManager.GetString("0280", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0281 { get { return ResourceManager.GetString("0281", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0282 { get { return ResourceManager.GetString("0282", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0283 { get { return ResourceManager.GetString("0283", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0284 { get { return ResourceManager.GetString("0284", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0285 { get { return ResourceManager.GetString("0285", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0286 { get { return ResourceManager.GetString("0286", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0287 { get { return ResourceManager.GetString("0287", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0288 { get { return ResourceManager.GetString("0288", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0289 { get { return ResourceManager.GetString("0289", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028A { get { return ResourceManager.GetString("028A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028B { get { return ResourceManager.GetString("028B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028C { get { return ResourceManager.GetString("028C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028D { get { return ResourceManager.GetString("028D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028E { get { return ResourceManager.GetString("028E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028F { get { return ResourceManager.GetString("028F", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _0290 { get { return ResourceManager.GetString("0290", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0291 { get { return ResourceManager.GetString("0291", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0292 { get { return ResourceManager.GetString("0292", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0293 { get { return ResourceManager.GetString("0293", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0294 { get { return ResourceManager.GetString("0294", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0295 { get { return ResourceManager.GetString("0295", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0296 { get { return ResourceManager.GetString("0296", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0297 { get { return ResourceManager.GetString("0297", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0298 { get { return ResourceManager.GetString("0298", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0299 { get { return ResourceManager.GetString("0299", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _029A { get { return ResourceManager.GetString("029A", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _029B { get { return ResourceManager.GetString("029B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029C { get { return ResourceManager.GetString("029C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029D { get { return ResourceManager.GetString("029D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _029E { get { return ResourceManager.GetString("029E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _029F { get { return ResourceManager.GetString("029F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02A0 { get { return ResourceManager.GetString("02A0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A1 { get { return ResourceManager.GetString("02A1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A2 { get { return ResourceManager.GetString("02A2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A3 { get { return ResourceManager.GetString("02A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A4 { get { return ResourceManager.GetString("02A4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A5 { get { return ResourceManager.GetString("02A5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A6 { get { return ResourceManager.GetString("02A6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A7 { get { return ResourceManager.GetString("02A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A8 { get { return ResourceManager.GetString("02A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A9 { get { return ResourceManager.GetString("02A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AA { get { return ResourceManager.GetString("02AA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AB { get { return ResourceManager.GetString("02AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AC { get { return ResourceManager.GetString("02AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AD { get { return ResourceManager.GetString("02AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AE { get { return ResourceManager.GetString("02AE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02AF { get { return ResourceManager.GetString("02AF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B0 { get { return ResourceManager.GetString("02B0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B1 { get { return ResourceManager.GetString("02B1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B2 { get { return ResourceManager.GetString("02B2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B3 { get { return ResourceManager.GetString("02B3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B4 { get { return ResourceManager.GetString("02B4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B5 { get { return ResourceManager.GetString("02B5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B6 { get { return ResourceManager.GetString("02B6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B7 { get { return ResourceManager.GetString("02B7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B8 { get { return ResourceManager.GetString("02B8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B9 { get { return ResourceManager.GetString("02B9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02BA { get { return ResourceManager.GetString("02BA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BB { get { return ResourceManager.GetString("02BB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02BC { get { return ResourceManager.GetString("02BC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02BD { get { return ResourceManager.GetString("02BD", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _02BE { get { return ResourceManager.GetString("02BE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BF { get { return ResourceManager.GetString("02BF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02C0 { get { return ResourceManager.GetString("02C0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C1 { get { return ResourceManager.GetString("02C1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C2 { get { return ResourceManager.GetString("02C2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02C3 { get { return ResourceManager.GetString("02C3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C4 { get { return ResourceManager.GetString("02C4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C5 { get { return ResourceManager.GetString("02C5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C6 { get { return ResourceManager.GetString("02C6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C7 { get { return ResourceManager.GetString("02C7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C8 { get { return ResourceManager.GetString("02C8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C9 { get { return ResourceManager.GetString("02C9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02CA { get { return ResourceManager.GetString("02CA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02CB { get { return ResourceManager.GetString("02CB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CC { get { return ResourceManager.GetString("02CC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CD { get { return ResourceManager.GetString("02CD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CE { get { return ResourceManager.GetString("02CE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _02CF { get { return ResourceManager.GetString("02CF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D0 { get { return ResourceManager.GetString("02D0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D1 { get { return ResourceManager.GetString("02D1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D2 { get { return ResourceManager.GetString("02D2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D3 { get { return ResourceManager.GetString("02D3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D4 { get { return ResourceManager.GetString("02D4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D5 { get { return ResourceManager.GetString("02D5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D6 { get { return ResourceManager.GetString("02D6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D7 { get { return ResourceManager.GetString("02D7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D8 { get { return ResourceManager.GetString("02D8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D9 { get { return ResourceManager.GetString("02D9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DA { get { return ResourceManager.GetString("02DA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02DB { get { return ResourceManager.GetString("02DB", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _02DC { get { return ResourceManager.GetString("02DC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DD { get { return ResourceManager.GetString("02DD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DE { get { return ResourceManager.GetString("02DE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DF { get { return ResourceManager.GetString("02DF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E0 { get { return ResourceManager.GetString("02E0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E1 { get { return ResourceManager.GetString("02E1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E2 { get { return ResourceManager.GetString("02E2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E3 { get { return ResourceManager.GetString("02E3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E4 { get { return ResourceManager.GetString("02E4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E5 { get { return ResourceManager.GetString("02E5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E6 { get { return ResourceManager.GetString("02E6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E7 { get { return ResourceManager.GetString("02E7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02E8 { get { return ResourceManager.GetString("02E8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E9 { get { return ResourceManager.GetString("02E9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EA { get { return ResourceManager.GetString("02EA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EB { get { return ResourceManager.GetString("02EB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EC { get { return ResourceManager.GetString("02EC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02ED { get { return ResourceManager.GetString("02ED", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02EE { get { return ResourceManager.GetString("02EE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02EF { get { return ResourceManager.GetString("02EF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02F0 { get { return ResourceManager.GetString("02F0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02F1 { get { return ResourceManager.GetString("02F1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02F2 { get { return ResourceManager.GetString("02F2", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsB2W2.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 0 0 0 0 1 4 0 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 0 1 2 1 2 0 2 2 2 0 0 1 2 0 1 4 2 1 4 0 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 1 2 0 0 0 0 0 1 2 2 2 2 1 2 0 0 2 2 1 0 4 2 2 2 2 1 2 6 1 1 2 2 2 2 5 1 1 2 2 2 0 0 2 2 2 0 0 2 2 2 0 2 2 2 0 1 2 7 1 1 2 2 2 2 2 7 1 1 2 2 2 2 2 2 2 1 0 1 1 2 1 2 4 1 2 2 1 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 3 1 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 4 0 2 2 2 3 2 2 2 2 2 2 6 2 2 2 2 2 2 2 2 2 1 2 1 2 5 2 2 2 2 2 1 2 2 2 2 5 2 2 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 0 1 2 0 0 1 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 1 2 0 2 2 2 1 2 1 2 3 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 0 2 2 2 1 2 0 1 2 0 0 2 2 2 0 2 2 2 2 2 2 4 2 2 2 2 1 2 1 2 2 2 2 1 2 0 0 0 0 0 0 1 2 0 0 2 2 2 1 2 1 2 2 2 2 1 2 0 0 1 2 0 2 2 2 0 0 0 3 2 2 2 0 0 6 1 1 1 1 1 2 4 2 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 2 4 2 2 2 2 0 3 2 2 2 4 2 2 2 2 0 5 2 2 2 2 2 0 1 2 2 2 2 1 2 0 3 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 0 0 3 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 1 2 1 2 1 2 0 1 2 2 2 2 0 1 2 0 1 2 1 2 1 2 0 0 1 2 1 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 0 3 2 2 2 1 2 3 2 2 2 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 9 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 2 0 0 0 4 2 2 2 2 4 2 2 2 2 1 2 2 2 2 1 2 3 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 0 0 1 2 0 2 2 2 0 2 2 2 1 2 3 2 2 2 1 2 1 2 1 2 0 0 0 0 0 0 0 11 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 8 2 2 2 2 2 2 2 2 2 2 2 0 0 0 2 2 2 3 2 2 2 2 2 2 1 2 0 0 1 2 2 2 2 2 2 2 1 2 0 2 2 2 0 1 2 1 2 1 2 0 0 1 2 1 2 0 0 2 2 1 2 2 2 3 1 2 2 3 1 2 2 4 2 2 2 2 1 2 1 2 2 2 2 4 2 2 2 2 1 2 1 2 2 2 2 0 1 2 0 1 2 1 2 3 2 2 2 0 0 1 2 3 2 2 2 0 0 2 2 2 1 2 1 2 1 2 2 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 1 2 8 2 2 2 2 2 2 2 2 1 2 1 2 1 2 0 0 1 2 0 0 0 1 2 0 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 0 0 0 3 2 2 2 0 0 4 2 2 2 2 4 2 2 2 2 0 0 0 0 2 2 2 2 2 2 0 0 0 2 2 2 3 2 2 2 0 0 0 2 2 2 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 0 5 2 2 2 2 2 0 0 2 2 2 4 2 2 2 2 3 2 2 2 1 2 0 2 2 2 0 5 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 4 2 2 2 2 4 2 2 2 2 5 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 0 0 3 2 2 2 6 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 1 2 3 2 2 2 4 2 2 2 2 4 2 2 2 2 5 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 4 2 2 2 2 2 2 2 1 2 4 2 2 2 2 6 2 2 2 2 2 2 0 0 4 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 0 1 2 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 1 2 2 2 2 1 2 2 2 2 4 2 2 2 2 1 2 4 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 1 2 0 1 2 3 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 0 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 2 2 2 1 2 1 2 0 1 2 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 0 2 2 2 3 2 2 2 0 2 2 2 2 2 2 2 2 2 2 2 2 0 2 2 2 1 2 5 2 2 2 2 2 2 2 2 6 2 2 2 2 2 2 1 2 1 2 1 2 2 2 2 2 2 2 6 2 2 2 2 2 2 5 2 2 2 2 2 3 2 2 2 1 2 1 1 1 2 0 0 1 2 0 0 1 2 0 6 2 2 2 2 2 2 1 2 0 1 2 0 0 2 2 2 1 2 0 0 1 2 0 0 0 0 0 2 1 2 2 1 2 2 1 2 0 0 2 2 2 2 2 2 1 2 0 3 1 2 2 2 2 2 0 0 0 2 2 2 0 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 0 0 2 1 1 2 1 1 3 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 0 0 0 0 0 0 1 1 0 1 2 1 2 2 2 2 0 0 4 2 2 2 2 0 2 1 2 2 1 2 1 1 0 0 2 2 2 1 2 2 2 2 1 2 0 0 0 1 2 0 1 2 0 0 0 0 0 0 0 1 2 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 0 2 2 2 1 2 5 2 2 2 2 2 0 2 2 2 0 1 2 2 2 2 0 1 2 0 0 0 0 1 2 1 2 0 0 0 4 2 2 2 2 0 1 2 0 0 1 2 2 2 2 0 2 2 2 1 2 2 2 2 1 2 2 2 2 3 2 2 2 1 2 1 2 1 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 2 2 1 2 0 1 2 2 2 2 ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsB2W2J.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptsB2W2J { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptsB2W2J() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptsB2W2J", typeof(ScriptsB2W2J).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 0. /// internal static string _0000 { get { return ResourceManager.GetString("0000", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0001 { get { return ResourceManager.GetString("0001", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0003 { get { return ResourceManager.GetString("0003", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0006 { get { return ResourceManager.GetString("0006", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0007 { get { return ResourceManager.GetString("0007", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0008 { get { return ResourceManager.GetString("0008", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0009 { get { return ResourceManager.GetString("0009", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000A { get { return ResourceManager.GetString("000A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000B { get { return ResourceManager.GetString("000B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000C { get { return ResourceManager.GetString("000C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000D { get { return ResourceManager.GetString("000D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000E { get { return ResourceManager.GetString("000E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000F { get { return ResourceManager.GetString("000F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0010 { get { return ResourceManager.GetString("0010", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0011 { get { return ResourceManager.GetString("0011", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0012 { get { return ResourceManager.GetString("0012", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0013 { get { return ResourceManager.GetString("0013", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0014 { get { return ResourceManager.GetString("0014", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0015 { get { return ResourceManager.GetString("0015", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0016 { get { return ResourceManager.GetString("0016", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0017 { get { return ResourceManager.GetString("0017", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0018 { get { return ResourceManager.GetString("0018", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0019 { get { return ResourceManager.GetString("0019", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001A { get { return ResourceManager.GetString("001A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001B { get { return ResourceManager.GetString("001B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 4. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0020 { get { return ResourceManager.GetString("0020", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0021 { get { return ResourceManager.GetString("0021", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0022 { get { return ResourceManager.GetString("0022", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0025 { get { return ResourceManager.GetString("0025", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0026 { get { return ResourceManager.GetString("0026", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0027 { get { return ResourceManager.GetString("0027", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0028 { get { return ResourceManager.GetString("0028", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0029 { get { return ResourceManager.GetString("0029", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _002A { get { return ResourceManager.GetString("002A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _002B { get { return ResourceManager.GetString("002B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002C { get { return ResourceManager.GetString("002C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _002D { get { return ResourceManager.GetString("002D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0031 { get { return ResourceManager.GetString("0031", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0034 { get { return ResourceManager.GetString("0034", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0035 { get { return ResourceManager.GetString("0035", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0036 { get { return ResourceManager.GetString("0036", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0037 { get { return ResourceManager.GetString("0037", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _003A { get { return ResourceManager.GetString("003A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _003B { get { return ResourceManager.GetString("003B", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 2 2 2 2. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to 5 1 1 2 2 2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0040 { get { return ResourceManager.GetString("0040", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0041 { get { return ResourceManager.GetString("0041", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0042 { get { return ResourceManager.GetString("0042", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0043 { get { return ResourceManager.GetString("0043", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0044 { get { return ResourceManager.GetString("0044", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0045 { get { return ResourceManager.GetString("0045", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0046 { get { return ResourceManager.GetString("0046", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0047 { get { return ResourceManager.GetString("0047", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0048 { get { return ResourceManager.GetString("0048", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0049 { get { return ResourceManager.GetString("0049", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _004C { get { return ResourceManager.GetString("004C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004D { get { return ResourceManager.GetString("004D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004E { get { return ResourceManager.GetString("004E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004F { get { return ResourceManager.GetString("004F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0050 { get { return ResourceManager.GetString("0050", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0051 { get { return ResourceManager.GetString("0051", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0052 { get { return ResourceManager.GetString("0052", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0053 { get { return ResourceManager.GetString("0053", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0054 { get { return ResourceManager.GetString("0054", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0055 { get { return ResourceManager.GetString("0055", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0056 { get { return ResourceManager.GetString("0056", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0057 { get { return ResourceManager.GetString("0057", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0058 { get { return ResourceManager.GetString("0058", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0059 { get { return ResourceManager.GetString("0059", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _005A { get { return ResourceManager.GetString("005A", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005B { get { return ResourceManager.GetString("005B", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005C { get { return ResourceManager.GetString("005C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005D { get { return ResourceManager.GetString("005D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005E { get { return ResourceManager.GetString("005E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005F { get { return ResourceManager.GetString("005F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 4. /// internal static string _0060 { get { return ResourceManager.GetString("0060", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0061 { get { return ResourceManager.GetString("0061", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0062 { get { return ResourceManager.GetString("0062", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0063 { get { return ResourceManager.GetString("0063", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0064 { get { return ResourceManager.GetString("0064", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0065 { get { return ResourceManager.GetString("0065", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0066 { get { return ResourceManager.GetString("0066", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0067 { get { return ResourceManager.GetString("0067", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0068 { get { return ResourceManager.GetString("0068", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0069 { get { return ResourceManager.GetString("0069", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006A { get { return ResourceManager.GetString("006A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006B { get { return ResourceManager.GetString("006B", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _006C { get { return ResourceManager.GetString("006C", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _006D { get { return ResourceManager.GetString("006D", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _006E { get { return ResourceManager.GetString("006E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006F { get { return ResourceManager.GetString("006F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0070 { get { return ResourceManager.GetString("0070", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0071 { get { return ResourceManager.GetString("0071", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0072 { get { return ResourceManager.GetString("0072", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0073 { get { return ResourceManager.GetString("0073", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0074 { get { return ResourceManager.GetString("0074", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0075 { get { return ResourceManager.GetString("0075", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0076 { get { return ResourceManager.GetString("0076", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0077 { get { return ResourceManager.GetString("0077", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0078 { get { return ResourceManager.GetString("0078", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0079 { get { return ResourceManager.GetString("0079", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007A { get { return ResourceManager.GetString("007A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _007B { get { return ResourceManager.GetString("007B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007C { get { return ResourceManager.GetString("007C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _007D { get { return ResourceManager.GetString("007D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _007E { get { return ResourceManager.GetString("007E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007F { get { return ResourceManager.GetString("007F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0080 { get { return ResourceManager.GetString("0080", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0081 { get { return ResourceManager.GetString("0081", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0082 { get { return ResourceManager.GetString("0082", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0083 { get { return ResourceManager.GetString("0083", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0084 { get { return ResourceManager.GetString("0084", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0085 { get { return ResourceManager.GetString("0085", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0086 { get { return ResourceManager.GetString("0086", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0087 { get { return ResourceManager.GetString("0087", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0088 { get { return ResourceManager.GetString("0088", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0089 { get { return ResourceManager.GetString("0089", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008A { get { return ResourceManager.GetString("008A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008B { get { return ResourceManager.GetString("008B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008C { get { return ResourceManager.GetString("008C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008D { get { return ResourceManager.GetString("008D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008E { get { return ResourceManager.GetString("008E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008F { get { return ResourceManager.GetString("008F", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0090 { get { return ResourceManager.GetString("0090", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0091 { get { return ResourceManager.GetString("0091", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0092 { get { return ResourceManager.GetString("0092", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0093 { get { return ResourceManager.GetString("0093", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0094 { get { return ResourceManager.GetString("0094", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0095 { get { return ResourceManager.GetString("0095", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0096 { get { return ResourceManager.GetString("0096", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0097 { get { return ResourceManager.GetString("0097", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0098 { get { return ResourceManager.GetString("0098", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0099 { get { return ResourceManager.GetString("0099", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009A { get { return ResourceManager.GetString("009A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _009B { get { return ResourceManager.GetString("009B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009C { get { return ResourceManager.GetString("009C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009D { get { return ResourceManager.GetString("009D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _009E { get { return ResourceManager.GetString("009E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _009F { get { return ResourceManager.GetString("009F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A0 { get { return ResourceManager.GetString("00A0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A1 { get { return ResourceManager.GetString("00A1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A2 { get { return ResourceManager.GetString("00A2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A3 { get { return ResourceManager.GetString("00A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A4 { get { return ResourceManager.GetString("00A4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A5 { get { return ResourceManager.GetString("00A5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A7 { get { return ResourceManager.GetString("00A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A8 { get { return ResourceManager.GetString("00A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A9 { get { return ResourceManager.GetString("00A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AA { get { return ResourceManager.GetString("00AA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00AB { get { return ResourceManager.GetString("00AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AC { get { return ResourceManager.GetString("00AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AD { get { return ResourceManager.GetString("00AD", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 1 1 1 2. /// internal static string _00AE { get { return ResourceManager.GetString("00AE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00AF { get { return ResourceManager.GetString("00AF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B0 { get { return ResourceManager.GetString("00B0", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B1 { get { return ResourceManager.GetString("00B1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B2 { get { return ResourceManager.GetString("00B2", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B3 { get { return ResourceManager.GetString("00B3", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B4 { get { return ResourceManager.GetString("00B4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B5 { get { return ResourceManager.GetString("00B5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00B6 { get { return ResourceManager.GetString("00B6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B7 { get { return ResourceManager.GetString("00B7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00B8 { get { return ResourceManager.GetString("00B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B9 { get { return ResourceManager.GetString("00B9", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00BA { get { return ResourceManager.GetString("00BA", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BB { get { return ResourceManager.GetString("00BB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00BC { get { return ResourceManager.GetString("00BC", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00BD { get { return ResourceManager.GetString("00BD", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BE { get { return ResourceManager.GetString("00BE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00BF { get { return ResourceManager.GetString("00BF", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _00C0 { get { return ResourceManager.GetString("00C0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C1 { get { return ResourceManager.GetString("00C1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C2 { get { return ResourceManager.GetString("00C2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00C3 { get { return ResourceManager.GetString("00C3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C4 { get { return ResourceManager.GetString("00C4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C5 { get { return ResourceManager.GetString("00C5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00C6 { get { return ResourceManager.GetString("00C6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00C7 { get { return ResourceManager.GetString("00C7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C8 { get { return ResourceManager.GetString("00C8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C9 { get { return ResourceManager.GetString("00C9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CA { get { return ResourceManager.GetString("00CA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CB { get { return ResourceManager.GetString("00CB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00CC { get { return ResourceManager.GetString("00CC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00CD { get { return ResourceManager.GetString("00CD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CE { get { return ResourceManager.GetString("00CE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CF { get { return ResourceManager.GetString("00CF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D0 { get { return ResourceManager.GetString("00D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D1 { get { return ResourceManager.GetString("00D1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D2 { get { return ResourceManager.GetString("00D2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D3 { get { return ResourceManager.GetString("00D3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D4 { get { return ResourceManager.GetString("00D4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D5 { get { return ResourceManager.GetString("00D5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00D6 { get { return ResourceManager.GetString("00D6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D7 { get { return ResourceManager.GetString("00D7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D8 { get { return ResourceManager.GetString("00D8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D9 { get { return ResourceManager.GetString("00D9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00DA { get { return ResourceManager.GetString("00DA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00DB { get { return ResourceManager.GetString("00DB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00DC { get { return ResourceManager.GetString("00DC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00DD { get { return ResourceManager.GetString("00DD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00DE { get { return ResourceManager.GetString("00DE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00DF { get { return ResourceManager.GetString("00DF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E0 { get { return ResourceManager.GetString("00E0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00E1 { get { return ResourceManager.GetString("00E1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E2 { get { return ResourceManager.GetString("00E2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E3 { get { return ResourceManager.GetString("00E3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E4 { get { return ResourceManager.GetString("00E4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E5 { get { return ResourceManager.GetString("00E5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E6 { get { return ResourceManager.GetString("00E6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E7 { get { return ResourceManager.GetString("00E7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E8 { get { return ResourceManager.GetString("00E8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E9 { get { return ResourceManager.GetString("00E9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EA { get { return ResourceManager.GetString("00EA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EB { get { return ResourceManager.GetString("00EB", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00EC { get { return ResourceManager.GetString("00EC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00ED { get { return ResourceManager.GetString("00ED", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00EE { get { return ResourceManager.GetString("00EE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00EF { get { return ResourceManager.GetString("00EF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F0 { get { return ResourceManager.GetString("00F0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F1 { get { return ResourceManager.GetString("00F1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F2 { get { return ResourceManager.GetString("00F2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00F3 { get { return ResourceManager.GetString("00F3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F4 { get { return ResourceManager.GetString("00F4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F5 { get { return ResourceManager.GetString("00F5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F6 { get { return ResourceManager.GetString("00F6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F7 { get { return ResourceManager.GetString("00F7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F8 { get { return ResourceManager.GetString("00F8", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00F9 { get { return ResourceManager.GetString("00F9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FA { get { return ResourceManager.GetString("00FA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FB { get { return ResourceManager.GetString("00FB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00FC { get { return ResourceManager.GetString("00FC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FD { get { return ResourceManager.GetString("00FD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FE { get { return ResourceManager.GetString("00FE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FF { get { return ResourceManager.GetString("00FF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0100 { get { return ResourceManager.GetString("0100", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0101 { get { return ResourceManager.GetString("0101", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0102 { get { return ResourceManager.GetString("0102", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0103 { get { return ResourceManager.GetString("0103", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0104 { get { return ResourceManager.GetString("0104", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0105 { get { return ResourceManager.GetString("0105", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0106 { get { return ResourceManager.GetString("0106", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0107 { get { return ResourceManager.GetString("0107", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0108 { get { return ResourceManager.GetString("0108", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0109 { get { return ResourceManager.GetString("0109", resourceCulture); } } /// /// Looks up a localized string similar to 9 2 2 2 2 2 2 2 2 2. /// internal static string _010A { get { return ResourceManager.GetString("010A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010B { get { return ResourceManager.GetString("010B", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010C { get { return ResourceManager.GetString("010C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _010D { get { return ResourceManager.GetString("010D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _010E { get { return ResourceManager.GetString("010E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _010F { get { return ResourceManager.GetString("010F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0110 { get { return ResourceManager.GetString("0110", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0111 { get { return ResourceManager.GetString("0111", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0112 { get { return ResourceManager.GetString("0112", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0113 { get { return ResourceManager.GetString("0113", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0114 { get { return ResourceManager.GetString("0114", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0115 { get { return ResourceManager.GetString("0115", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0116 { get { return ResourceManager.GetString("0116", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0117 { get { return ResourceManager.GetString("0117", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0118 { get { return ResourceManager.GetString("0118", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0119 { get { return ResourceManager.GetString("0119", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011A { get { return ResourceManager.GetString("011A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011B { get { return ResourceManager.GetString("011B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011C { get { return ResourceManager.GetString("011C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011D { get { return ResourceManager.GetString("011D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011E { get { return ResourceManager.GetString("011E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _011F { get { return ResourceManager.GetString("011F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0120 { get { return ResourceManager.GetString("0120", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0121 { get { return ResourceManager.GetString("0121", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0122 { get { return ResourceManager.GetString("0122", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0123 { get { return ResourceManager.GetString("0123", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0124 { get { return ResourceManager.GetString("0124", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0125 { get { return ResourceManager.GetString("0125", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0126 { get { return ResourceManager.GetString("0126", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0127 { get { return ResourceManager.GetString("0127", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0128 { get { return ResourceManager.GetString("0128", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0129 { get { return ResourceManager.GetString("0129", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _012A { get { return ResourceManager.GetString("012A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012B { get { return ResourceManager.GetString("012B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _012C { get { return ResourceManager.GetString("012C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _012D { get { return ResourceManager.GetString("012D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012E { get { return ResourceManager.GetString("012E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _012F { get { return ResourceManager.GetString("012F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0130 { get { return ResourceManager.GetString("0130", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0131 { get { return ResourceManager.GetString("0131", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0132 { get { return ResourceManager.GetString("0132", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0133 { get { return ResourceManager.GetString("0133", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0134 { get { return ResourceManager.GetString("0134", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0135 { get { return ResourceManager.GetString("0135", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0136 { get { return ResourceManager.GetString("0136", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0137 { get { return ResourceManager.GetString("0137", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0138 { get { return ResourceManager.GetString("0138", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0139 { get { return ResourceManager.GetString("0139", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013A { get { return ResourceManager.GetString("013A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013B { get { return ResourceManager.GetString("013B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013C { get { return ResourceManager.GetString("013C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013D { get { return ResourceManager.GetString("013D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013E { get { return ResourceManager.GetString("013E", resourceCulture); } } /// /// Looks up a localized string similar to 11 2 2 2 2 2 2 2 2 2 2 2. /// internal static string _013F { get { return ResourceManager.GetString("013F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0140 { get { return ResourceManager.GetString("0140", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0141 { get { return ResourceManager.GetString("0141", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0142 { get { return ResourceManager.GetString("0142", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0143 { get { return ResourceManager.GetString("0143", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _0144 { get { return ResourceManager.GetString("0144", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0145 { get { return ResourceManager.GetString("0145", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0146 { get { return ResourceManager.GetString("0146", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0147 { get { return ResourceManager.GetString("0147", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0148 { get { return ResourceManager.GetString("0148", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0149 { get { return ResourceManager.GetString("0149", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _014A { get { return ResourceManager.GetString("014A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _014B { get { return ResourceManager.GetString("014B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _014C { get { return ResourceManager.GetString("014C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014D { get { return ResourceManager.GetString("014D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014E { get { return ResourceManager.GetString("014E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _014F { get { return ResourceManager.GetString("014F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0150 { get { return ResourceManager.GetString("0150", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0151 { get { return ResourceManager.GetString("0151", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0152 { get { return ResourceManager.GetString("0152", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0153 { get { return ResourceManager.GetString("0153", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0154 { get { return ResourceManager.GetString("0154", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0155 { get { return ResourceManager.GetString("0155", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0156 { get { return ResourceManager.GetString("0156", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0157 { get { return ResourceManager.GetString("0157", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0158 { get { return ResourceManager.GetString("0158", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0159 { get { return ResourceManager.GetString("0159", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015A { get { return ResourceManager.GetString("015A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015B { get { return ResourceManager.GetString("015B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015C { get { return ResourceManager.GetString("015C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015D { get { return ResourceManager.GetString("015D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015E { get { return ResourceManager.GetString("015E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _015F { get { return ResourceManager.GetString("015F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0160 { get { return ResourceManager.GetString("0160", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0161 { get { return ResourceManager.GetString("0161", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0162 { get { return ResourceManager.GetString("0162", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0163 { get { return ResourceManager.GetString("0163", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0164 { get { return ResourceManager.GetString("0164", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0165 { get { return ResourceManager.GetString("0165", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0166 { get { return ResourceManager.GetString("0166", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0167 { get { return ResourceManager.GetString("0167", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0168 { get { return ResourceManager.GetString("0168", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0169 { get { return ResourceManager.GetString("0169", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _016A { get { return ResourceManager.GetString("016A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _016B { get { return ResourceManager.GetString("016B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016C { get { return ResourceManager.GetString("016C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _016D { get { return ResourceManager.GetString("016D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016E { get { return ResourceManager.GetString("016E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016F { get { return ResourceManager.GetString("016F", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0170 { get { return ResourceManager.GetString("0170", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0171 { get { return ResourceManager.GetString("0171", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0172 { get { return ResourceManager.GetString("0172", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0173 { get { return ResourceManager.GetString("0173", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0174 { get { return ResourceManager.GetString("0174", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0175 { get { return ResourceManager.GetString("0175", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0176 { get { return ResourceManager.GetString("0176", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0177 { get { return ResourceManager.GetString("0177", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0178 { get { return ResourceManager.GetString("0178", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0179 { get { return ResourceManager.GetString("0179", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017A { get { return ResourceManager.GetString("017A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _017B { get { return ResourceManager.GetString("017B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017C { get { return ResourceManager.GetString("017C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017D { get { return ResourceManager.GetString("017D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017E { get { return ResourceManager.GetString("017E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017F { get { return ResourceManager.GetString("017F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0180 { get { return ResourceManager.GetString("0180", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0181 { get { return ResourceManager.GetString("0181", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0182 { get { return ResourceManager.GetString("0182", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0183 { get { return ResourceManager.GetString("0183", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0184 { get { return ResourceManager.GetString("0184", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0185 { get { return ResourceManager.GetString("0185", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0186 { get { return ResourceManager.GetString("0186", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0187 { get { return ResourceManager.GetString("0187", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0188 { get { return ResourceManager.GetString("0188", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0189 { get { return ResourceManager.GetString("0189", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018A { get { return ResourceManager.GetString("018A", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _018B { get { return ResourceManager.GetString("018B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018C { get { return ResourceManager.GetString("018C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018D { get { return ResourceManager.GetString("018D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018E { get { return ResourceManager.GetString("018E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _018F { get { return ResourceManager.GetString("018F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0190 { get { return ResourceManager.GetString("0190", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0191 { get { return ResourceManager.GetString("0191", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0192 { get { return ResourceManager.GetString("0192", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0193 { get { return ResourceManager.GetString("0193", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0194 { get { return ResourceManager.GetString("0194", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0195 { get { return ResourceManager.GetString("0195", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0196 { get { return ResourceManager.GetString("0196", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0197 { get { return ResourceManager.GetString("0197", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0198 { get { return ResourceManager.GetString("0198", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0199 { get { return ResourceManager.GetString("0199", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019A { get { return ResourceManager.GetString("019A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019B { get { return ResourceManager.GetString("019B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019C { get { return ResourceManager.GetString("019C", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _019D { get { return ResourceManager.GetString("019D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019E { get { return ResourceManager.GetString("019E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _019F { get { return ResourceManager.GetString("019F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A0 { get { return ResourceManager.GetString("01A0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A1 { get { return ResourceManager.GetString("01A1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01A2 { get { return ResourceManager.GetString("01A2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A3 { get { return ResourceManager.GetString("01A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A4 { get { return ResourceManager.GetString("01A4", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A5 { get { return ResourceManager.GetString("01A5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A6 { get { return ResourceManager.GetString("01A6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A7 { get { return ResourceManager.GetString("01A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A8 { get { return ResourceManager.GetString("01A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A9 { get { return ResourceManager.GetString("01A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AA { get { return ResourceManager.GetString("01AA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01AB { get { return ResourceManager.GetString("01AB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01AC { get { return ResourceManager.GetString("01AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AD { get { return ResourceManager.GetString("01AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AE { get { return ResourceManager.GetString("01AE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AF { get { return ResourceManager.GetString("01AF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B0 { get { return ResourceManager.GetString("01B0", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01B1 { get { return ResourceManager.GetString("01B1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B2 { get { return ResourceManager.GetString("01B2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B3 { get { return ResourceManager.GetString("01B3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B4 { get { return ResourceManager.GetString("01B4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B5 { get { return ResourceManager.GetString("01B5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B6 { get { return ResourceManager.GetString("01B6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B7 { get { return ResourceManager.GetString("01B7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B8 { get { return ResourceManager.GetString("01B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B9 { get { return ResourceManager.GetString("01B9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BA { get { return ResourceManager.GetString("01BA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01BB { get { return ResourceManager.GetString("01BB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BC { get { return ResourceManager.GetString("01BC", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01BD { get { return ResourceManager.GetString("01BD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BE { get { return ResourceManager.GetString("01BE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BF { get { return ResourceManager.GetString("01BF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C0 { get { return ResourceManager.GetString("01C0", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01C1 { get { return ResourceManager.GetString("01C1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01C2 { get { return ResourceManager.GetString("01C2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C3 { get { return ResourceManager.GetString("01C3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C4 { get { return ResourceManager.GetString("01C4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C5 { get { return ResourceManager.GetString("01C5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C6 { get { return ResourceManager.GetString("01C6", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01C7 { get { return ResourceManager.GetString("01C7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C8 { get { return ResourceManager.GetString("01C8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C9 { get { return ResourceManager.GetString("01C9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01CA { get { return ResourceManager.GetString("01CA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01CB { get { return ResourceManager.GetString("01CB", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01CC { get { return ResourceManager.GetString("01CC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01CD { get { return ResourceManager.GetString("01CD", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01CE { get { return ResourceManager.GetString("01CE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01CF { get { return ResourceManager.GetString("01CF", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01D0 { get { return ResourceManager.GetString("01D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D1 { get { return ResourceManager.GetString("01D1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D2 { get { return ResourceManager.GetString("01D2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D3 { get { return ResourceManager.GetString("01D3", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D4 { get { return ResourceManager.GetString("01D4", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01D5 { get { return ResourceManager.GetString("01D5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D6 { get { return ResourceManager.GetString("01D6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D7 { get { return ResourceManager.GetString("01D7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D8 { get { return ResourceManager.GetString("01D8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D9 { get { return ResourceManager.GetString("01D9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DA { get { return ResourceManager.GetString("01DA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01DB { get { return ResourceManager.GetString("01DB", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01DC { get { return ResourceManager.GetString("01DC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01DD { get { return ResourceManager.GetString("01DD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01DE { get { return ResourceManager.GetString("01DE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01DF { get { return ResourceManager.GetString("01DF", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _01E0 { get { return ResourceManager.GetString("01E0", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E1 { get { return ResourceManager.GetString("01E1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E2 { get { return ResourceManager.GetString("01E2", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E3 { get { return ResourceManager.GetString("01E3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01E4 { get { return ResourceManager.GetString("01E4", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E5 { get { return ResourceManager.GetString("01E5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E6 { get { return ResourceManager.GetString("01E6", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E7 { get { return ResourceManager.GetString("01E7", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01E8 { get { return ResourceManager.GetString("01E8", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E9 { get { return ResourceManager.GetString("01E9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EA { get { return ResourceManager.GetString("01EA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01EB { get { return ResourceManager.GetString("01EB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EC { get { return ResourceManager.GetString("01EC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01ED { get { return ResourceManager.GetString("01ED", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01EE { get { return ResourceManager.GetString("01EE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01EF { get { return ResourceManager.GetString("01EF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F0 { get { return ResourceManager.GetString("01F0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01F1 { get { return ResourceManager.GetString("01F1", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01F2 { get { return ResourceManager.GetString("01F2", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _01F3 { get { return ResourceManager.GetString("01F3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F4 { get { return ResourceManager.GetString("01F4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F5 { get { return ResourceManager.GetString("01F5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01F6 { get { return ResourceManager.GetString("01F6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F7 { get { return ResourceManager.GetString("01F7", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01F8 { get { return ResourceManager.GetString("01F8", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01F9 { get { return ResourceManager.GetString("01F9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01FA { get { return ResourceManager.GetString("01FA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FB { get { return ResourceManager.GetString("01FB", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01FC { get { return ResourceManager.GetString("01FC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01FD { get { return ResourceManager.GetString("01FD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01FE { get { return ResourceManager.GetString("01FE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FF { get { return ResourceManager.GetString("01FF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0200 { get { return ResourceManager.GetString("0200", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0201 { get { return ResourceManager.GetString("0201", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0202 { get { return ResourceManager.GetString("0202", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0203 { get { return ResourceManager.GetString("0203", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0204 { get { return ResourceManager.GetString("0204", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0205 { get { return ResourceManager.GetString("0205", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0206 { get { return ResourceManager.GetString("0206", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0207 { get { return ResourceManager.GetString("0207", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0208 { get { return ResourceManager.GetString("0208", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0209 { get { return ResourceManager.GetString("0209", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _020A { get { return ResourceManager.GetString("020A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _020B { get { return ResourceManager.GetString("020B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _020C { get { return ResourceManager.GetString("020C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _020D { get { return ResourceManager.GetString("020D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _020E { get { return ResourceManager.GetString("020E", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _020F { get { return ResourceManager.GetString("020F", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0210 { get { return ResourceManager.GetString("0210", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0211 { get { return ResourceManager.GetString("0211", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0212 { get { return ResourceManager.GetString("0212", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0213 { get { return ResourceManager.GetString("0213", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0214 { get { return ResourceManager.GetString("0214", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0215 { get { return ResourceManager.GetString("0215", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0216 { get { return ResourceManager.GetString("0216", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0217 { get { return ResourceManager.GetString("0217", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0218 { get { return ResourceManager.GetString("0218", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0219 { get { return ResourceManager.GetString("0219", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _021A { get { return ResourceManager.GetString("021A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021B { get { return ResourceManager.GetString("021B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021C { get { return ResourceManager.GetString("021C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021D { get { return ResourceManager.GetString("021D", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _021E { get { return ResourceManager.GetString("021E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021F { get { return ResourceManager.GetString("021F", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0220 { get { return ResourceManager.GetString("0220", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0221 { get { return ResourceManager.GetString("0221", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0222 { get { return ResourceManager.GetString("0222", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0223 { get { return ResourceManager.GetString("0223", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0224 { get { return ResourceManager.GetString("0224", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0225 { get { return ResourceManager.GetString("0225", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0226 { get { return ResourceManager.GetString("0226", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0227 { get { return ResourceManager.GetString("0227", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0228 { get { return ResourceManager.GetString("0228", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0229 { get { return ResourceManager.GetString("0229", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _022A { get { return ResourceManager.GetString("022A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022B { get { return ResourceManager.GetString("022B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022C { get { return ResourceManager.GetString("022C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022D { get { return ResourceManager.GetString("022D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _022E { get { return ResourceManager.GetString("022E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022F { get { return ResourceManager.GetString("022F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0230 { get { return ResourceManager.GetString("0230", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0231 { get { return ResourceManager.GetString("0231", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0232 { get { return ResourceManager.GetString("0232", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0233 { get { return ResourceManager.GetString("0233", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0234 { get { return ResourceManager.GetString("0234", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0235 { get { return ResourceManager.GetString("0235", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0236 { get { return ResourceManager.GetString("0236", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0237 { get { return ResourceManager.GetString("0237", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0238 { get { return ResourceManager.GetString("0238", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0239 { get { return ResourceManager.GetString("0239", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _023A { get { return ResourceManager.GetString("023A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _023B { get { return ResourceManager.GetString("023B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023C { get { return ResourceManager.GetString("023C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023D { get { return ResourceManager.GetString("023D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023E { get { return ResourceManager.GetString("023E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023F { get { return ResourceManager.GetString("023F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0240 { get { return ResourceManager.GetString("0240", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0241 { get { return ResourceManager.GetString("0241", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0242 { get { return ResourceManager.GetString("0242", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0243 { get { return ResourceManager.GetString("0243", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0244 { get { return ResourceManager.GetString("0244", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0245 { get { return ResourceManager.GetString("0245", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0246 { get { return ResourceManager.GetString("0246", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0247 { get { return ResourceManager.GetString("0247", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0248 { get { return ResourceManager.GetString("0248", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0249 { get { return ResourceManager.GetString("0249", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024A { get { return ResourceManager.GetString("024A", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _024B { get { return ResourceManager.GetString("024B", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _024C { get { return ResourceManager.GetString("024C", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _024D { get { return ResourceManager.GetString("024D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _024E { get { return ResourceManager.GetString("024E", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _024F { get { return ResourceManager.GetString("024F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0250 { get { return ResourceManager.GetString("0250", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0251 { get { return ResourceManager.GetString("0251", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0252 { get { return ResourceManager.GetString("0252", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0253 { get { return ResourceManager.GetString("0253", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0254 { get { return ResourceManager.GetString("0254", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0255 { get { return ResourceManager.GetString("0255", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0256 { get { return ResourceManager.GetString("0256", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0257 { get { return ResourceManager.GetString("0257", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0258 { get { return ResourceManager.GetString("0258", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0259 { get { return ResourceManager.GetString("0259", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025A { get { return ResourceManager.GetString("025A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025B { get { return ResourceManager.GetString("025B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025C { get { return ResourceManager.GetString("025C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025D { get { return ResourceManager.GetString("025D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _025E { get { return ResourceManager.GetString("025E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025F { get { return ResourceManager.GetString("025F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0260 { get { return ResourceManager.GetString("0260", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0261 { get { return ResourceManager.GetString("0261", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0262 { get { return ResourceManager.GetString("0262", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0263 { get { return ResourceManager.GetString("0263", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0264 { get { return ResourceManager.GetString("0264", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0265 { get { return ResourceManager.GetString("0265", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0266 { get { return ResourceManager.GetString("0266", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0267 { get { return ResourceManager.GetString("0267", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0268 { get { return ResourceManager.GetString("0268", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0269 { get { return ResourceManager.GetString("0269", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026A { get { return ResourceManager.GetString("026A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026B { get { return ResourceManager.GetString("026B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026C { get { return ResourceManager.GetString("026C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _026D { get { return ResourceManager.GetString("026D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _026E { get { return ResourceManager.GetString("026E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _026F { get { return ResourceManager.GetString("026F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0270 { get { return ResourceManager.GetString("0270", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0271 { get { return ResourceManager.GetString("0271", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0272 { get { return ResourceManager.GetString("0272", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0273 { get { return ResourceManager.GetString("0273", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0274 { get { return ResourceManager.GetString("0274", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0275 { get { return ResourceManager.GetString("0275", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0276 { get { return ResourceManager.GetString("0276", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0277 { get { return ResourceManager.GetString("0277", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0278 { get { return ResourceManager.GetString("0278", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0279 { get { return ResourceManager.GetString("0279", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027A { get { return ResourceManager.GetString("027A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027B { get { return ResourceManager.GetString("027B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027C { get { return ResourceManager.GetString("027C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027D { get { return ResourceManager.GetString("027D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027E { get { return ResourceManager.GetString("027E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _027F { get { return ResourceManager.GetString("027F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0280 { get { return ResourceManager.GetString("0280", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0281 { get { return ResourceManager.GetString("0281", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0282 { get { return ResourceManager.GetString("0282", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0283 { get { return ResourceManager.GetString("0283", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0284 { get { return ResourceManager.GetString("0284", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0285 { get { return ResourceManager.GetString("0285", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0286 { get { return ResourceManager.GetString("0286", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0287 { get { return ResourceManager.GetString("0287", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0288 { get { return ResourceManager.GetString("0288", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0289 { get { return ResourceManager.GetString("0289", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028A { get { return ResourceManager.GetString("028A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028B { get { return ResourceManager.GetString("028B", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _028C { get { return ResourceManager.GetString("028C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028D { get { return ResourceManager.GetString("028D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _028E { get { return ResourceManager.GetString("028E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _028F { get { return ResourceManager.GetString("028F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0290 { get { return ResourceManager.GetString("0290", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0291 { get { return ResourceManager.GetString("0291", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0292 { get { return ResourceManager.GetString("0292", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0293 { get { return ResourceManager.GetString("0293", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0294 { get { return ResourceManager.GetString("0294", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0295 { get { return ResourceManager.GetString("0295", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0296 { get { return ResourceManager.GetString("0296", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _0297 { get { return ResourceManager.GetString("0297", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0298 { get { return ResourceManager.GetString("0298", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0299 { get { return ResourceManager.GetString("0299", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _029A { get { return ResourceManager.GetString("029A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _029B { get { return ResourceManager.GetString("029B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _029C { get { return ResourceManager.GetString("029C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _029D { get { return ResourceManager.GetString("029D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029E { get { return ResourceManager.GetString("029E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029F { get { return ResourceManager.GetString("029F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A0 { get { return ResourceManager.GetString("02A0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A1 { get { return ResourceManager.GetString("02A1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A2 { get { return ResourceManager.GetString("02A2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A3 { get { return ResourceManager.GetString("02A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A4 { get { return ResourceManager.GetString("02A4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A5 { get { return ResourceManager.GetString("02A5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A6 { get { return ResourceManager.GetString("02A6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A7 { get { return ResourceManager.GetString("02A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A8 { get { return ResourceManager.GetString("02A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A9 { get { return ResourceManager.GetString("02A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AA { get { return ResourceManager.GetString("02AA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02AB { get { return ResourceManager.GetString("02AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AC { get { return ResourceManager.GetString("02AC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02AD { get { return ResourceManager.GetString("02AD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02AE { get { return ResourceManager.GetString("02AE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02AF { get { return ResourceManager.GetString("02AF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B0 { get { return ResourceManager.GetString("02B0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B1 { get { return ResourceManager.GetString("02B1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B2 { get { return ResourceManager.GetString("02B2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B3 { get { return ResourceManager.GetString("02B3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B4 { get { return ResourceManager.GetString("02B4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B5 { get { return ResourceManager.GetString("02B5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B6 { get { return ResourceManager.GetString("02B6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B7 { get { return ResourceManager.GetString("02B7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B8 { get { return ResourceManager.GetString("02B8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B9 { get { return ResourceManager.GetString("02B9", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _02BA { get { return ResourceManager.GetString("02BA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BB { get { return ResourceManager.GetString("02BB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02BC { get { return ResourceManager.GetString("02BC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BD { get { return ResourceManager.GetString("02BD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02BE { get { return ResourceManager.GetString("02BE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02BF { get { return ResourceManager.GetString("02BF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C0 { get { return ResourceManager.GetString("02C0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C1 { get { return ResourceManager.GetString("02C1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C2 { get { return ResourceManager.GetString("02C2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C3 { get { return ResourceManager.GetString("02C3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C4 { get { return ResourceManager.GetString("02C4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C5 { get { return ResourceManager.GetString("02C5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C6 { get { return ResourceManager.GetString("02C6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C7 { get { return ResourceManager.GetString("02C7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C8 { get { return ResourceManager.GetString("02C8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C9 { get { return ResourceManager.GetString("02C9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CA { get { return ResourceManager.GetString("02CA", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _02CB { get { return ResourceManager.GetString("02CB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CC { get { return ResourceManager.GetString("02CC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02CD { get { return ResourceManager.GetString("02CD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CE { get { return ResourceManager.GetString("02CE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CF { get { return ResourceManager.GetString("02CF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D0 { get { return ResourceManager.GetString("02D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D1 { get { return ResourceManager.GetString("02D1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D2 { get { return ResourceManager.GetString("02D2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D3 { get { return ResourceManager.GetString("02D3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D4 { get { return ResourceManager.GetString("02D4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D5 { get { return ResourceManager.GetString("02D5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D6 { get { return ResourceManager.GetString("02D6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D7 { get { return ResourceManager.GetString("02D7", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _02D8 { get { return ResourceManager.GetString("02D8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D9 { get { return ResourceManager.GetString("02D9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DA { get { return ResourceManager.GetString("02DA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DB { get { return ResourceManager.GetString("02DB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DC { get { return ResourceManager.GetString("02DC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DD { get { return ResourceManager.GetString("02DD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DE { get { return ResourceManager.GetString("02DE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DF { get { return ResourceManager.GetString("02DF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E0 { get { return ResourceManager.GetString("02E0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E1 { get { return ResourceManager.GetString("02E1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E2 { get { return ResourceManager.GetString("02E2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E3 { get { return ResourceManager.GetString("02E3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02E4 { get { return ResourceManager.GetString("02E4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E5 { get { return ResourceManager.GetString("02E5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E6 { get { return ResourceManager.GetString("02E6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E7 { get { return ResourceManager.GetString("02E7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E8 { get { return ResourceManager.GetString("02E8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02E9 { get { return ResourceManager.GetString("02E9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02EA { get { return ResourceManager.GetString("02EA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02EB { get { return ResourceManager.GetString("02EB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EC { get { return ResourceManager.GetString("02EC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02ED { get { return ResourceManager.GetString("02ED", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02EE { get { return ResourceManager.GetString("02EE", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsB2W2J.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 0 0 0 0 1 4 0 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 0 1 2 1 2 0 2 2 2 0 0 1 2 0 1 4 2 1 4 0 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 1 2 0 0 0 0 0 1 2 2 2 2 1 2 0 0 2 2 1 0 4 2 2 2 2 1 2 6 1 1 2 2 2 2 5 1 1 2 2 2 0 0 2 2 2 0 0 2 2 2 0 2 2 2 0 1 2 7 1 1 2 2 2 2 2 7 1 1 2 2 2 2 2 2 2 1 0 1 1 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 3 1 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 4 0 2 2 2 3 2 2 2 2 2 2 6 2 2 2 2 2 2 2 2 2 1 2 1 2 5 2 2 2 2 2 1 2 2 2 2 5 2 2 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 0 1 2 0 0 1 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 1 2 0 2 2 2 1 2 1 2 3 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 0 2 2 2 1 2 0 1 2 0 0 2 2 2 0 2 2 2 2 2 2 4 2 2 2 2 1 2 1 2 2 2 2 1 2 0 0 0 0 0 0 1 2 0 0 2 2 2 1 2 1 2 2 2 2 1 2 0 0 1 2 0 2 2 2 0 0 0 3 2 2 2 0 0 6 1 1 1 1 1 2 4 2 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 2 4 2 2 2 2 0 3 2 2 2 4 2 2 2 2 0 5 2 2 2 2 2 0 1 2 2 2 2 1 2 0 3 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 0 0 3 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 1 2 1 2 1 2 0 1 2 2 2 2 0 1 2 0 1 2 1 2 1 2 0 0 1 2 1 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 0 3 2 2 2 1 2 3 2 2 2 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 9 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 2 0 0 0 4 2 2 2 2 4 2 2 2 2 1 2 2 2 2 1 2 3 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 0 0 1 2 0 2 2 2 0 2 2 2 1 2 3 2 2 2 1 2 1 2 1 2 0 0 0 0 0 0 0 11 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 8 2 2 2 2 2 2 2 2 2 2 2 0 0 0 2 2 2 3 2 2 2 2 2 2 1 2 0 0 1 2 2 2 2 2 2 2 1 2 0 2 2 2 0 1 2 1 2 1 2 0 0 1 2 1 2 0 0 2 2 1 2 2 2 3 1 2 2 3 1 2 2 4 2 2 2 2 1 2 1 2 2 2 2 4 2 2 2 2 1 2 1 2 2 2 2 0 1 2 0 1 2 1 2 3 2 2 2 0 0 1 2 3 2 2 2 0 0 2 2 2 1 2 1 2 1 2 2 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 1 2 8 2 2 2 2 2 2 2 2 1 2 1 2 1 2 0 0 1 2 0 0 0 1 2 0 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 0 0 0 3 2 2 2 0 0 4 2 2 2 2 4 2 2 2 2 0 0 0 0 2 2 2 2 2 2 0 0 0 2 2 2 3 2 2 2 0 0 0 2 2 2 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 0 5 2 2 2 2 2 0 0 2 2 2 4 2 2 2 2 3 2 2 2 1 2 0 2 2 2 0 5 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 4 2 2 2 2 4 2 2 2 2 5 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 0 0 3 2 2 2 6 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 1 2 3 2 2 2 4 2 2 2 2 4 2 2 2 2 5 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 4 2 2 2 2 2 2 2 1 2 4 2 2 2 2 6 2 2 2 2 2 2 0 0 4 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 0 1 2 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 1 2 2 2 2 1 2 2 2 2 4 2 2 2 2 1 2 4 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 1 2 0 1 2 3 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 0 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 2 2 2 1 2 1 2 0 1 2 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 0 2 2 2 3 2 2 2 0 2 2 2 2 2 2 2 2 2 2 2 2 0 2 2 2 1 2 5 2 2 2 2 2 2 2 2 6 2 2 2 2 2 2 1 2 1 2 1 2 2 2 2 2 2 2 6 2 2 2 2 2 2 5 2 2 2 2 2 3 2 2 2 1 2 1 1 1 2 0 0 1 2 0 0 1 2 0 6 2 2 2 2 2 2 1 2 0 1 2 0 0 2 2 2 1 2 0 0 1 2 0 0 0 0 0 2 1 2 2 1 2 2 1 2 0 0 2 2 2 2 2 2 1 2 0 3 1 2 2 2 2 2 0 0 0 2 2 2 0 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 0 0 2 1 1 2 1 1 3 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 0 0 0 0 0 0 1 1 0 1 2 1 2 2 2 2 0 0 4 2 2 2 2 0 2 1 2 2 1 2 1 1 0 0 2 2 2 1 2 2 2 2 1 2 0 0 0 1 2 0 1 2 0 0 0 0 0 0 0 1 2 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 0 2 2 2 1 2 5 2 2 2 2 2 0 2 2 2 0 1 2 2 2 2 0 1 2 0 0 0 0 1 2 1 2 0 0 0 4 2 2 2 2 0 1 2 0 0 1 2 2 2 2 0 2 2 2 1 2 2 2 2 1 2 2 2 2 3 2 2 2 1 2 1 2 1 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 2 2 1 2 0 1 2 2 2 2 ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsBW.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptsBW { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptsBW() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptsBW", typeof(ScriptsBW).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 0. /// internal static string _0000 { get { return ResourceManager.GetString("0000", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0001 { get { return ResourceManager.GetString("0001", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0003 { get { return ResourceManager.GetString("0003", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0006 { get { return ResourceManager.GetString("0006", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0007 { get { return ResourceManager.GetString("0007", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0008 { get { return ResourceManager.GetString("0008", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0009 { get { return ResourceManager.GetString("0009", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000A { get { return ResourceManager.GetString("000A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000B { get { return ResourceManager.GetString("000B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000C { get { return ResourceManager.GetString("000C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000D { get { return ResourceManager.GetString("000D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000E { get { return ResourceManager.GetString("000E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000F { get { return ResourceManager.GetString("000F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0010 { get { return ResourceManager.GetString("0010", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0011 { get { return ResourceManager.GetString("0011", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0012 { get { return ResourceManager.GetString("0012", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0013 { get { return ResourceManager.GetString("0013", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0014 { get { return ResourceManager.GetString("0014", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0015 { get { return ResourceManager.GetString("0015", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0016 { get { return ResourceManager.GetString("0016", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0017 { get { return ResourceManager.GetString("0017", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0018 { get { return ResourceManager.GetString("0018", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0019 { get { return ResourceManager.GetString("0019", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001A { get { return ResourceManager.GetString("001A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001B { get { return ResourceManager.GetString("001B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 4. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0020 { get { return ResourceManager.GetString("0020", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0021 { get { return ResourceManager.GetString("0021", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0022 { get { return ResourceManager.GetString("0022", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0025 { get { return ResourceManager.GetString("0025", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0026 { get { return ResourceManager.GetString("0026", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0027 { get { return ResourceManager.GetString("0027", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0028 { get { return ResourceManager.GetString("0028", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0029 { get { return ResourceManager.GetString("0029", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _002A { get { return ResourceManager.GetString("002A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _002B { get { return ResourceManager.GetString("002B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002C { get { return ResourceManager.GetString("002C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _002D { get { return ResourceManager.GetString("002D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0031 { get { return ResourceManager.GetString("0031", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0034 { get { return ResourceManager.GetString("0034", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0035 { get { return ResourceManager.GetString("0035", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0036 { get { return ResourceManager.GetString("0036", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0037 { get { return ResourceManager.GetString("0037", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _003A { get { return ResourceManager.GetString("003A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _003B { get { return ResourceManager.GetString("003B", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 2 2 2 2. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to 5 1 1 2 2 2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0040 { get { return ResourceManager.GetString("0040", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0041 { get { return ResourceManager.GetString("0041", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0042 { get { return ResourceManager.GetString("0042", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0043 { get { return ResourceManager.GetString("0043", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0044 { get { return ResourceManager.GetString("0044", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0045 { get { return ResourceManager.GetString("0045", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0046 { get { return ResourceManager.GetString("0046", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0047 { get { return ResourceManager.GetString("0047", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0048 { get { return ResourceManager.GetString("0048", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0049 { get { return ResourceManager.GetString("0049", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _004C { get { return ResourceManager.GetString("004C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004D { get { return ResourceManager.GetString("004D", resourceCulture); } } /// /// Looks up a localized string similar to 4 1 2 2 1. /// internal static string _004E { get { return ResourceManager.GetString("004E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004F { get { return ResourceManager.GetString("004F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0050 { get { return ResourceManager.GetString("0050", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0051 { get { return ResourceManager.GetString("0051", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0052 { get { return ResourceManager.GetString("0052", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0053 { get { return ResourceManager.GetString("0053", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0054 { get { return ResourceManager.GetString("0054", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0055 { get { return ResourceManager.GetString("0055", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0056 { get { return ResourceManager.GetString("0056", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0057 { get { return ResourceManager.GetString("0057", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0058 { get { return ResourceManager.GetString("0058", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0059 { get { return ResourceManager.GetString("0059", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005A { get { return ResourceManager.GetString("005A", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005B { get { return ResourceManager.GetString("005B", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _005C { get { return ResourceManager.GetString("005C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _005D { get { return ResourceManager.GetString("005D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005E { get { return ResourceManager.GetString("005E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005F { get { return ResourceManager.GetString("005F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0060 { get { return ResourceManager.GetString("0060", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0061 { get { return ResourceManager.GetString("0061", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0062 { get { return ResourceManager.GetString("0062", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0063 { get { return ResourceManager.GetString("0063", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 4. /// internal static string _0064 { get { return ResourceManager.GetString("0064", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0065 { get { return ResourceManager.GetString("0065", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0066 { get { return ResourceManager.GetString("0066", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0067 { get { return ResourceManager.GetString("0067", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0068 { get { return ResourceManager.GetString("0068", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0069 { get { return ResourceManager.GetString("0069", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006A { get { return ResourceManager.GetString("006A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006B { get { return ResourceManager.GetString("006B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006C { get { return ResourceManager.GetString("006C", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _006D { get { return ResourceManager.GetString("006D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006E { get { return ResourceManager.GetString("006E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006F { get { return ResourceManager.GetString("006F", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0070 { get { return ResourceManager.GetString("0070", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0071 { get { return ResourceManager.GetString("0071", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0072 { get { return ResourceManager.GetString("0072", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0073 { get { return ResourceManager.GetString("0073", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0074 { get { return ResourceManager.GetString("0074", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0075 { get { return ResourceManager.GetString("0075", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0076 { get { return ResourceManager.GetString("0076", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0077 { get { return ResourceManager.GetString("0077", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0078 { get { return ResourceManager.GetString("0078", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0079 { get { return ResourceManager.GetString("0079", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _007A { get { return ResourceManager.GetString("007A", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _007B { get { return ResourceManager.GetString("007B", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _007C { get { return ResourceManager.GetString("007C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007D { get { return ResourceManager.GetString("007D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007E { get { return ResourceManager.GetString("007E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _007F { get { return ResourceManager.GetString("007F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0080 { get { return ResourceManager.GetString("0080", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0081 { get { return ResourceManager.GetString("0081", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0082 { get { return ResourceManager.GetString("0082", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0083 { get { return ResourceManager.GetString("0083", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0084 { get { return ResourceManager.GetString("0084", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0085 { get { return ResourceManager.GetString("0085", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0086 { get { return ResourceManager.GetString("0086", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0087 { get { return ResourceManager.GetString("0087", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0088 { get { return ResourceManager.GetString("0088", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0089 { get { return ResourceManager.GetString("0089", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008A { get { return ResourceManager.GetString("008A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _008B { get { return ResourceManager.GetString("008B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008C { get { return ResourceManager.GetString("008C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _008D { get { return ResourceManager.GetString("008D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008E { get { return ResourceManager.GetString("008E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008F { get { return ResourceManager.GetString("008F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0090 { get { return ResourceManager.GetString("0090", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0091 { get { return ResourceManager.GetString("0091", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0092 { get { return ResourceManager.GetString("0092", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0093 { get { return ResourceManager.GetString("0093", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0094 { get { return ResourceManager.GetString("0094", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0095 { get { return ResourceManager.GetString("0095", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0096 { get { return ResourceManager.GetString("0096", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0097 { get { return ResourceManager.GetString("0097", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0098 { get { return ResourceManager.GetString("0098", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0099 { get { return ResourceManager.GetString("0099", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009A { get { return ResourceManager.GetString("009A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009B { get { return ResourceManager.GetString("009B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009C { get { return ResourceManager.GetString("009C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009D { get { return ResourceManager.GetString("009D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009E { get { return ResourceManager.GetString("009E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _009F { get { return ResourceManager.GetString("009F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A0 { get { return ResourceManager.GetString("00A0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A1 { get { return ResourceManager.GetString("00A1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A2 { get { return ResourceManager.GetString("00A2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A3 { get { return ResourceManager.GetString("00A3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A4 { get { return ResourceManager.GetString("00A4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A5 { get { return ResourceManager.GetString("00A5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A7 { get { return ResourceManager.GetString("00A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A8 { get { return ResourceManager.GetString("00A8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A9 { get { return ResourceManager.GetString("00A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AA { get { return ResourceManager.GetString("00AA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00AB { get { return ResourceManager.GetString("00AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AC { get { return ResourceManager.GetString("00AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AD { get { return ResourceManager.GetString("00AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AE { get { return ResourceManager.GetString("00AE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00AF { get { return ResourceManager.GetString("00AF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B0 { get { return ResourceManager.GetString("00B0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B1 { get { return ResourceManager.GetString("00B1", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 1 1 1 2. /// internal static string _00B2 { get { return ResourceManager.GetString("00B2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00B3 { get { return ResourceManager.GetString("00B3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B4 { get { return ResourceManager.GetString("00B4", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B5 { get { return ResourceManager.GetString("00B5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B6 { get { return ResourceManager.GetString("00B6", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B7 { get { return ResourceManager.GetString("00B7", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B8 { get { return ResourceManager.GetString("00B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B9 { get { return ResourceManager.GetString("00B9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BA { get { return ResourceManager.GetString("00BA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00BB { get { return ResourceManager.GetString("00BB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00BC { get { return ResourceManager.GetString("00BC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00BD { get { return ResourceManager.GetString("00BD", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00BE { get { return ResourceManager.GetString("00BE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BF { get { return ResourceManager.GetString("00BF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C0 { get { return ResourceManager.GetString("00C0", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00C1 { get { return ResourceManager.GetString("00C1", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00C2 { get { return ResourceManager.GetString("00C2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C3 { get { return ResourceManager.GetString("00C3", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _00C4 { get { return ResourceManager.GetString("00C4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C5 { get { return ResourceManager.GetString("00C5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C6 { get { return ResourceManager.GetString("00C6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00C7 { get { return ResourceManager.GetString("00C7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C8 { get { return ResourceManager.GetString("00C8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C9 { get { return ResourceManager.GetString("00C9", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00CA { get { return ResourceManager.GetString("00CA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00CB { get { return ResourceManager.GetString("00CB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CC { get { return ResourceManager.GetString("00CC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CD { get { return ResourceManager.GetString("00CD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CE { get { return ResourceManager.GetString("00CE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CF { get { return ResourceManager.GetString("00CF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D0 { get { return ResourceManager.GetString("00D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D1 { get { return ResourceManager.GetString("00D1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D2 { get { return ResourceManager.GetString("00D2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D3 { get { return ResourceManager.GetString("00D3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D4 { get { return ResourceManager.GetString("00D4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D5 { get { return ResourceManager.GetString("00D5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D6 { get { return ResourceManager.GetString("00D6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D7 { get { return ResourceManager.GetString("00D7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D8 { get { return ResourceManager.GetString("00D8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D9 { get { return ResourceManager.GetString("00D9", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00DA { get { return ResourceManager.GetString("00DA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00DB { get { return ResourceManager.GetString("00DB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00DC { get { return ResourceManager.GetString("00DC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00DD { get { return ResourceManager.GetString("00DD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00DE { get { return ResourceManager.GetString("00DE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00DF { get { return ResourceManager.GetString("00DF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E0 { get { return ResourceManager.GetString("00E0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E1 { get { return ResourceManager.GetString("00E1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E2 { get { return ResourceManager.GetString("00E2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E3 { get { return ResourceManager.GetString("00E3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E4 { get { return ResourceManager.GetString("00E4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00E5 { get { return ResourceManager.GetString("00E5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E6 { get { return ResourceManager.GetString("00E6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E7 { get { return ResourceManager.GetString("00E7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E8 { get { return ResourceManager.GetString("00E8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E9 { get { return ResourceManager.GetString("00E9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EA { get { return ResourceManager.GetString("00EA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EB { get { return ResourceManager.GetString("00EB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00EC { get { return ResourceManager.GetString("00EC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00ED { get { return ResourceManager.GetString("00ED", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EE { get { return ResourceManager.GetString("00EE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EF { get { return ResourceManager.GetString("00EF", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00F0 { get { return ResourceManager.GetString("00F0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F1 { get { return ResourceManager.GetString("00F1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F2 { get { return ResourceManager.GetString("00F2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F3 { get { return ResourceManager.GetString("00F3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F4 { get { return ResourceManager.GetString("00F4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F5 { get { return ResourceManager.GetString("00F5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F6 { get { return ResourceManager.GetString("00F6", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00F7 { get { return ResourceManager.GetString("00F7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F8 { get { return ResourceManager.GetString("00F8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F9 { get { return ResourceManager.GetString("00F9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00FA { get { return ResourceManager.GetString("00FA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FB { get { return ResourceManager.GetString("00FB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FC { get { return ResourceManager.GetString("00FC", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00FD { get { return ResourceManager.GetString("00FD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FE { get { return ResourceManager.GetString("00FE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FF { get { return ResourceManager.GetString("00FF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0100 { get { return ResourceManager.GetString("0100", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0101 { get { return ResourceManager.GetString("0101", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0102 { get { return ResourceManager.GetString("0102", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0103 { get { return ResourceManager.GetString("0103", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0104 { get { return ResourceManager.GetString("0104", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0105 { get { return ResourceManager.GetString("0105", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0106 { get { return ResourceManager.GetString("0106", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0107 { get { return ResourceManager.GetString("0107", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0108 { get { return ResourceManager.GetString("0108", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0109 { get { return ResourceManager.GetString("0109", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010A { get { return ResourceManager.GetString("010A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010B { get { return ResourceManager.GetString("010B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _010C { get { return ResourceManager.GetString("010C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _010D { get { return ResourceManager.GetString("010D", resourceCulture); } } /// /// Looks up a localized string similar to 9 2 2 2 2 2 2 2 2 2. /// internal static string _010E { get { return ResourceManager.GetString("010E", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010F { get { return ResourceManager.GetString("010F", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0110 { get { return ResourceManager.GetString("0110", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0111 { get { return ResourceManager.GetString("0111", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0112 { get { return ResourceManager.GetString("0112", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0113 { get { return ResourceManager.GetString("0113", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0114 { get { return ResourceManager.GetString("0114", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0115 { get { return ResourceManager.GetString("0115", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0116 { get { return ResourceManager.GetString("0116", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0117 { get { return ResourceManager.GetString("0117", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0118 { get { return ResourceManager.GetString("0118", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0119 { get { return ResourceManager.GetString("0119", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _011A { get { return ResourceManager.GetString("011A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _011B { get { return ResourceManager.GetString("011B", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _011C { get { return ResourceManager.GetString("011C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011D { get { return ResourceManager.GetString("011D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011E { get { return ResourceManager.GetString("011E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011F { get { return ResourceManager.GetString("011F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0120 { get { return ResourceManager.GetString("0120", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0121 { get { return ResourceManager.GetString("0121", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0122 { get { return ResourceManager.GetString("0122", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0123 { get { return ResourceManager.GetString("0123", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0124 { get { return ResourceManager.GetString("0124", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0125 { get { return ResourceManager.GetString("0125", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0126 { get { return ResourceManager.GetString("0126", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0127 { get { return ResourceManager.GetString("0127", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0128 { get { return ResourceManager.GetString("0128", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0129 { get { return ResourceManager.GetString("0129", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012A { get { return ResourceManager.GetString("012A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _012B { get { return ResourceManager.GetString("012B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012C { get { return ResourceManager.GetString("012C", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _012D { get { return ResourceManager.GetString("012D", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _012E { get { return ResourceManager.GetString("012E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012F { get { return ResourceManager.GetString("012F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0130 { get { return ResourceManager.GetString("0130", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0131 { get { return ResourceManager.GetString("0131", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0132 { get { return ResourceManager.GetString("0132", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0133 { get { return ResourceManager.GetString("0133", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0134 { get { return ResourceManager.GetString("0134", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0135 { get { return ResourceManager.GetString("0135", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0136 { get { return ResourceManager.GetString("0136", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0137 { get { return ResourceManager.GetString("0137", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0138 { get { return ResourceManager.GetString("0138", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0139 { get { return ResourceManager.GetString("0139", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _013A { get { return ResourceManager.GetString("013A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _013B { get { return ResourceManager.GetString("013B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013C { get { return ResourceManager.GetString("013C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013D { get { return ResourceManager.GetString("013D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013E { get { return ResourceManager.GetString("013E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013F { get { return ResourceManager.GetString("013F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0140 { get { return ResourceManager.GetString("0140", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0141 { get { return ResourceManager.GetString("0141", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0142 { get { return ResourceManager.GetString("0142", resourceCulture); } } /// /// Looks up a localized string similar to 11 2 2 2 2 2 2 2 2 2 2 2. /// internal static string _0143 { get { return ResourceManager.GetString("0143", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0144 { get { return ResourceManager.GetString("0144", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0145 { get { return ResourceManager.GetString("0145", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0146 { get { return ResourceManager.GetString("0146", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0147 { get { return ResourceManager.GetString("0147", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _0148 { get { return ResourceManager.GetString("0148", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0149 { get { return ResourceManager.GetString("0149", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014A { get { return ResourceManager.GetString("014A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014B { get { return ResourceManager.GetString("014B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014C { get { return ResourceManager.GetString("014C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _014D { get { return ResourceManager.GetString("014D", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _014E { get { return ResourceManager.GetString("014E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _014F { get { return ResourceManager.GetString("014F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0150 { get { return ResourceManager.GetString("0150", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0151 { get { return ResourceManager.GetString("0151", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0152 { get { return ResourceManager.GetString("0152", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0153 { get { return ResourceManager.GetString("0153", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0154 { get { return ResourceManager.GetString("0154", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0155 { get { return ResourceManager.GetString("0155", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0156 { get { return ResourceManager.GetString("0156", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0157 { get { return ResourceManager.GetString("0157", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0158 { get { return ResourceManager.GetString("0158", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0159 { get { return ResourceManager.GetString("0159", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _015A { get { return ResourceManager.GetString("015A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015B { get { return ResourceManager.GetString("015B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015C { get { return ResourceManager.GetString("015C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015D { get { return ResourceManager.GetString("015D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015E { get { return ResourceManager.GetString("015E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015F { get { return ResourceManager.GetString("015F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0160 { get { return ResourceManager.GetString("0160", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0161 { get { return ResourceManager.GetString("0161", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0162 { get { return ResourceManager.GetString("0162", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _0163 { get { return ResourceManager.GetString("0163", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0164 { get { return ResourceManager.GetString("0164", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0165 { get { return ResourceManager.GetString("0165", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0166 { get { return ResourceManager.GetString("0166", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0167 { get { return ResourceManager.GetString("0167", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0168 { get { return ResourceManager.GetString("0168", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0169 { get { return ResourceManager.GetString("0169", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 1 2. /// internal static string _016A { get { return ResourceManager.GetString("016A", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _016B { get { return ResourceManager.GetString("016B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016C { get { return ResourceManager.GetString("016C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016D { get { return ResourceManager.GetString("016D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _016E { get { return ResourceManager.GetString("016E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _016F { get { return ResourceManager.GetString("016F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0170 { get { return ResourceManager.GetString("0170", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0171 { get { return ResourceManager.GetString("0171", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0172 { get { return ResourceManager.GetString("0172", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0173 { get { return ResourceManager.GetString("0173", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0174 { get { return ResourceManager.GetString("0174", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0175 { get { return ResourceManager.GetString("0175", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0176 { get { return ResourceManager.GetString("0176", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0177 { get { return ResourceManager.GetString("0177", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0178 { get { return ResourceManager.GetString("0178", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0179 { get { return ResourceManager.GetString("0179", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _017A { get { return ResourceManager.GetString("017A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017B { get { return ResourceManager.GetString("017B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017C { get { return ResourceManager.GetString("017C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017D { get { return ResourceManager.GetString("017D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017E { get { return ResourceManager.GetString("017E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _017F { get { return ResourceManager.GetString("017F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0180 { get { return ResourceManager.GetString("0180", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0181 { get { return ResourceManager.GetString("0181", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0182 { get { return ResourceManager.GetString("0182", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0183 { get { return ResourceManager.GetString("0183", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0184 { get { return ResourceManager.GetString("0184", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0185 { get { return ResourceManager.GetString("0185", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0186 { get { return ResourceManager.GetString("0186", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0187 { get { return ResourceManager.GetString("0187", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0188 { get { return ResourceManager.GetString("0188", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0189 { get { return ResourceManager.GetString("0189", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018A { get { return ResourceManager.GetString("018A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018B { get { return ResourceManager.GetString("018B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _018C { get { return ResourceManager.GetString("018C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018D { get { return ResourceManager.GetString("018D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018E { get { return ResourceManager.GetString("018E", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _018F { get { return ResourceManager.GetString("018F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0190 { get { return ResourceManager.GetString("0190", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0191 { get { return ResourceManager.GetString("0191", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0192 { get { return ResourceManager.GetString("0192", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0193 { get { return ResourceManager.GetString("0193", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0194 { get { return ResourceManager.GetString("0194", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0195 { get { return ResourceManager.GetString("0195", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0196 { get { return ResourceManager.GetString("0196", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0197 { get { return ResourceManager.GetString("0197", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0198 { get { return ResourceManager.GetString("0198", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0199 { get { return ResourceManager.GetString("0199", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _019A { get { return ResourceManager.GetString("019A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019B { get { return ResourceManager.GetString("019B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019C { get { return ResourceManager.GetString("019C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019D { get { return ResourceManager.GetString("019D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019E { get { return ResourceManager.GetString("019E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019F { get { return ResourceManager.GetString("019F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01A0 { get { return ResourceManager.GetString("01A0", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A1 { get { return ResourceManager.GetString("01A1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01A2 { get { return ResourceManager.GetString("01A2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01A3 { get { return ResourceManager.GetString("01A3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01A4 { get { return ResourceManager.GetString("01A4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A5 { get { return ResourceManager.GetString("01A5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01A6 { get { return ResourceManager.GetString("01A6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01A7 { get { return ResourceManager.GetString("01A7", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01A8 { get { return ResourceManager.GetString("01A8", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A9 { get { return ResourceManager.GetString("01A9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01AA { get { return ResourceManager.GetString("01AA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01AB { get { return ResourceManager.GetString("01AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AC { get { return ResourceManager.GetString("01AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AD { get { return ResourceManager.GetString("01AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AE { get { return ResourceManager.GetString("01AE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AF { get { return ResourceManager.GetString("01AF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B0 { get { return ResourceManager.GetString("01B0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B1 { get { return ResourceManager.GetString("01B1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B2 { get { return ResourceManager.GetString("01B2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B3 { get { return ResourceManager.GetString("01B3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B4 { get { return ResourceManager.GetString("01B4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B5 { get { return ResourceManager.GetString("01B5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B6 { get { return ResourceManager.GetString("01B6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B7 { get { return ResourceManager.GetString("01B7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B8 { get { return ResourceManager.GetString("01B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B9 { get { return ResourceManager.GetString("01B9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BA { get { return ResourceManager.GetString("01BA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BB { get { return ResourceManager.GetString("01BB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BC { get { return ResourceManager.GetString("01BC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BD { get { return ResourceManager.GetString("01BD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BE { get { return ResourceManager.GetString("01BE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01BF { get { return ResourceManager.GetString("01BF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C0 { get { return ResourceManager.GetString("01C0", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01C1 { get { return ResourceManager.GetString("01C1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C2 { get { return ResourceManager.GetString("01C2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C3 { get { return ResourceManager.GetString("01C3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C4 { get { return ResourceManager.GetString("01C4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C5 { get { return ResourceManager.GetString("01C5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01C6 { get { return ResourceManager.GetString("01C6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C7 { get { return ResourceManager.GetString("01C7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C8 { get { return ResourceManager.GetString("01C8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C9 { get { return ResourceManager.GetString("01C9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01CA { get { return ResourceManager.GetString("01CA", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01CB { get { return ResourceManager.GetString("01CB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01CC { get { return ResourceManager.GetString("01CC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01CD { get { return ResourceManager.GetString("01CD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01CE { get { return ResourceManager.GetString("01CE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01CF { get { return ResourceManager.GetString("01CF", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D0 { get { return ResourceManager.GetString("01D0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01D1 { get { return ResourceManager.GetString("01D1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01D2 { get { return ResourceManager.GetString("01D2", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01D3 { get { return ResourceManager.GetString("01D3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01D4 { get { return ResourceManager.GetString("01D4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01D5 { get { return ResourceManager.GetString("01D5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01D6 { get { return ResourceManager.GetString("01D6", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D7 { get { return ResourceManager.GetString("01D7", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D8 { get { return ResourceManager.GetString("01D8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01D9 { get { return ResourceManager.GetString("01D9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DA { get { return ResourceManager.GetString("01DA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01DB { get { return ResourceManager.GetString("01DB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DC { get { return ResourceManager.GetString("01DC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DD { get { return ResourceManager.GetString("01DD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DE { get { return ResourceManager.GetString("01DE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01DF { get { return ResourceManager.GetString("01DF", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E0 { get { return ResourceManager.GetString("01E0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01E1 { get { return ResourceManager.GetString("01E1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01E2 { get { return ResourceManager.GetString("01E2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01E3 { get { return ResourceManager.GetString("01E3", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E4 { get { return ResourceManager.GetString("01E4", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E5 { get { return ResourceManager.GetString("01E5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E6 { get { return ResourceManager.GetString("01E6", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E7 { get { return ResourceManager.GetString("01E7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01E8 { get { return ResourceManager.GetString("01E8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01E9 { get { return ResourceManager.GetString("01E9", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01EA { get { return ResourceManager.GetString("01EA", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01EB { get { return ResourceManager.GetString("01EB", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01EC { get { return ResourceManager.GetString("01EC", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01ED { get { return ResourceManager.GetString("01ED", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EE { get { return ResourceManager.GetString("01EE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EF { get { return ResourceManager.GetString("01EF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F0 { get { return ResourceManager.GetString("01F0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F1 { get { return ResourceManager.GetString("01F1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F2 { get { return ResourceManager.GetString("01F2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01F3 { get { return ResourceManager.GetString("01F3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F4 { get { return ResourceManager.GetString("01F4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F5 { get { return ResourceManager.GetString("01F5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01F6 { get { return ResourceManager.GetString("01F6", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _01F7 { get { return ResourceManager.GetString("01F7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F8 { get { return ResourceManager.GetString("01F8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F9 { get { return ResourceManager.GetString("01F9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FA { get { return ResourceManager.GetString("01FA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FB { get { return ResourceManager.GetString("01FB", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01FC { get { return ResourceManager.GetString("01FC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01FD { get { return ResourceManager.GetString("01FD", resourceCulture); } } /// /// Looks up a localized string similar to 7 2 2 2 2 2 2 2. /// internal static string _01FE { get { return ResourceManager.GetString("01FE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01FF { get { return ResourceManager.GetString("01FF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0200 { get { return ResourceManager.GetString("0200", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0201 { get { return ResourceManager.GetString("0201", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0202 { get { return ResourceManager.GetString("0202", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0203 { get { return ResourceManager.GetString("0203", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0204 { get { return ResourceManager.GetString("0204", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0205 { get { return ResourceManager.GetString("0205", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0206 { get { return ResourceManager.GetString("0206", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0207 { get { return ResourceManager.GetString("0207", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0208 { get { return ResourceManager.GetString("0208", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0209 { get { return ResourceManager.GetString("0209", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _020A { get { return ResourceManager.GetString("020A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _020B { get { return ResourceManager.GetString("020B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _020C { get { return ResourceManager.GetString("020C", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _020D { get { return ResourceManager.GetString("020D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _020E { get { return ResourceManager.GetString("020E", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _020F { get { return ResourceManager.GetString("020F", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0210 { get { return ResourceManager.GetString("0210", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0211 { get { return ResourceManager.GetString("0211", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0212 { get { return ResourceManager.GetString("0212", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0213 { get { return ResourceManager.GetString("0213", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0214 { get { return ResourceManager.GetString("0214", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0215 { get { return ResourceManager.GetString("0215", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0216 { get { return ResourceManager.GetString("0216", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0217 { get { return ResourceManager.GetString("0217", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0218 { get { return ResourceManager.GetString("0218", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0219 { get { return ResourceManager.GetString("0219", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021A { get { return ResourceManager.GetString("021A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _021B { get { return ResourceManager.GetString("021B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _021C { get { return ResourceManager.GetString("021C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _021D { get { return ResourceManager.GetString("021D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _021E { get { return ResourceManager.GetString("021E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _021F { get { return ResourceManager.GetString("021F", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0220 { get { return ResourceManager.GetString("0220", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0221 { get { return ResourceManager.GetString("0221", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0222 { get { return ResourceManager.GetString("0222", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0223 { get { return ResourceManager.GetString("0223", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0224 { get { return ResourceManager.GetString("0224", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0225 { get { return ResourceManager.GetString("0225", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0226 { get { return ResourceManager.GetString("0226", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0227 { get { return ResourceManager.GetString("0227", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0228 { get { return ResourceManager.GetString("0228", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0229 { get { return ResourceManager.GetString("0229", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022A { get { return ResourceManager.GetString("022A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022B { get { return ResourceManager.GetString("022B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022C { get { return ResourceManager.GetString("022C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022D { get { return ResourceManager.GetString("022D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _022E { get { return ResourceManager.GetString("022E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022F { get { return ResourceManager.GetString("022F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0230 { get { return ResourceManager.GetString("0230", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0231 { get { return ResourceManager.GetString("0231", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0232 { get { return ResourceManager.GetString("0232", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0233 { get { return ResourceManager.GetString("0233", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0234 { get { return ResourceManager.GetString("0234", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0235 { get { return ResourceManager.GetString("0235", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0236 { get { return ResourceManager.GetString("0236", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0237 { get { return ResourceManager.GetString("0237", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0238 { get { return ResourceManager.GetString("0238", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0239 { get { return ResourceManager.GetString("0239", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _023A { get { return ResourceManager.GetString("023A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023B { get { return ResourceManager.GetString("023B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _023C { get { return ResourceManager.GetString("023C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023D { get { return ResourceManager.GetString("023D", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _023E { get { return ResourceManager.GetString("023E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _023F { get { return ResourceManager.GetString("023F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0240 { get { return ResourceManager.GetString("0240", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0241 { get { return ResourceManager.GetString("0241", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0242 { get { return ResourceManager.GetString("0242", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0243 { get { return ResourceManager.GetString("0243", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0244 { get { return ResourceManager.GetString("0244", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0245 { get { return ResourceManager.GetString("0245", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0246 { get { return ResourceManager.GetString("0246", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0247 { get { return ResourceManager.GetString("0247", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0248 { get { return ResourceManager.GetString("0248", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0249 { get { return ResourceManager.GetString("0249", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024A { get { return ResourceManager.GetString("024A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _024B { get { return ResourceManager.GetString("024B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _024C { get { return ResourceManager.GetString("024C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024D { get { return ResourceManager.GetString("024D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024E { get { return ResourceManager.GetString("024E", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _024F { get { return ResourceManager.GetString("024F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0250 { get { return ResourceManager.GetString("0250", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0251 { get { return ResourceManager.GetString("0251", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0252 { get { return ResourceManager.GetString("0252", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0253 { get { return ResourceManager.GetString("0253", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0254 { get { return ResourceManager.GetString("0254", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0255 { get { return ResourceManager.GetString("0255", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0256 { get { return ResourceManager.GetString("0256", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0257 { get { return ResourceManager.GetString("0257", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0258 { get { return ResourceManager.GetString("0258", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0259 { get { return ResourceManager.GetString("0259", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025A { get { return ResourceManager.GetString("025A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025B { get { return ResourceManager.GetString("025B", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _025C { get { return ResourceManager.GetString("025C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025D { get { return ResourceManager.GetString("025D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025E { get { return ResourceManager.GetString("025E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025F { get { return ResourceManager.GetString("025F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0260 { get { return ResourceManager.GetString("0260", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0261 { get { return ResourceManager.GetString("0261", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0262 { get { return ResourceManager.GetString("0262", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0263 { get { return ResourceManager.GetString("0263", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0264 { get { return ResourceManager.GetString("0264", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0265 { get { return ResourceManager.GetString("0265", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0266 { get { return ResourceManager.GetString("0266", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0267 { get { return ResourceManager.GetString("0267", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0268 { get { return ResourceManager.GetString("0268", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0269 { get { return ResourceManager.GetString("0269", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026A { get { return ResourceManager.GetString("026A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026B { get { return ResourceManager.GetString("026B", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026C { get { return ResourceManager.GetString("026C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026D { get { return ResourceManager.GetString("026D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026E { get { return ResourceManager.GetString("026E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026F { get { return ResourceManager.GetString("026F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0270 { get { return ResourceManager.GetString("0270", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0271 { get { return ResourceManager.GetString("0271", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0272 { get { return ResourceManager.GetString("0272", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0273 { get { return ResourceManager.GetString("0273", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0274 { get { return ResourceManager.GetString("0274", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0275 { get { return ResourceManager.GetString("0275", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0276 { get { return ResourceManager.GetString("0276", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0277 { get { return ResourceManager.GetString("0277", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0278 { get { return ResourceManager.GetString("0278", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0279 { get { return ResourceManager.GetString("0279", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027A { get { return ResourceManager.GetString("027A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027B { get { return ResourceManager.GetString("027B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027C { get { return ResourceManager.GetString("027C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027D { get { return ResourceManager.GetString("027D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027E { get { return ResourceManager.GetString("027E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _027F { get { return ResourceManager.GetString("027F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0280 { get { return ResourceManager.GetString("0280", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0281 { get { return ResourceManager.GetString("0281", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0282 { get { return ResourceManager.GetString("0282", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0283 { get { return ResourceManager.GetString("0283", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0284 { get { return ResourceManager.GetString("0284", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0285 { get { return ResourceManager.GetString("0285", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0286 { get { return ResourceManager.GetString("0286", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0287 { get { return ResourceManager.GetString("0287", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0288 { get { return ResourceManager.GetString("0288", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0289 { get { return ResourceManager.GetString("0289", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028A { get { return ResourceManager.GetString("028A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028B { get { return ResourceManager.GetString("028B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028C { get { return ResourceManager.GetString("028C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028D { get { return ResourceManager.GetString("028D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028E { get { return ResourceManager.GetString("028E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028F { get { return ResourceManager.GetString("028F", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _0290 { get { return ResourceManager.GetString("0290", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0291 { get { return ResourceManager.GetString("0291", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _0292 { get { return ResourceManager.GetString("0292", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _0293 { get { return ResourceManager.GetString("0293", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0294 { get { return ResourceManager.GetString("0294", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0295 { get { return ResourceManager.GetString("0295", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0296 { get { return ResourceManager.GetString("0296", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0297 { get { return ResourceManager.GetString("0297", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0298 { get { return ResourceManager.GetString("0298", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0299 { get { return ResourceManager.GetString("0299", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _029A { get { return ResourceManager.GetString("029A", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _029B { get { return ResourceManager.GetString("029B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029C { get { return ResourceManager.GetString("029C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029D { get { return ResourceManager.GetString("029D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _029E { get { return ResourceManager.GetString("029E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _029F { get { return ResourceManager.GetString("029F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02A0 { get { return ResourceManager.GetString("02A0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A1 { get { return ResourceManager.GetString("02A1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A2 { get { return ResourceManager.GetString("02A2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A3 { get { return ResourceManager.GetString("02A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A4 { get { return ResourceManager.GetString("02A4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A5 { get { return ResourceManager.GetString("02A5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A6 { get { return ResourceManager.GetString("02A6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A7 { get { return ResourceManager.GetString("02A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A8 { get { return ResourceManager.GetString("02A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A9 { get { return ResourceManager.GetString("02A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AA { get { return ResourceManager.GetString("02AA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AB { get { return ResourceManager.GetString("02AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AC { get { return ResourceManager.GetString("02AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AD { get { return ResourceManager.GetString("02AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AE { get { return ResourceManager.GetString("02AE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02AF { get { return ResourceManager.GetString("02AF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B0 { get { return ResourceManager.GetString("02B0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B1 { get { return ResourceManager.GetString("02B1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B2 { get { return ResourceManager.GetString("02B2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B3 { get { return ResourceManager.GetString("02B3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B4 { get { return ResourceManager.GetString("02B4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B5 { get { return ResourceManager.GetString("02B5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B6 { get { return ResourceManager.GetString("02B6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B7 { get { return ResourceManager.GetString("02B7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B8 { get { return ResourceManager.GetString("02B8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B9 { get { return ResourceManager.GetString("02B9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02BA { get { return ResourceManager.GetString("02BA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BB { get { return ResourceManager.GetString("02BB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02BC { get { return ResourceManager.GetString("02BC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02BD { get { return ResourceManager.GetString("02BD", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _02BE { get { return ResourceManager.GetString("02BE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BF { get { return ResourceManager.GetString("02BF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02C0 { get { return ResourceManager.GetString("02C0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C1 { get { return ResourceManager.GetString("02C1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C2 { get { return ResourceManager.GetString("02C2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02C3 { get { return ResourceManager.GetString("02C3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C4 { get { return ResourceManager.GetString("02C4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C5 { get { return ResourceManager.GetString("02C5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C6 { get { return ResourceManager.GetString("02C6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C7 { get { return ResourceManager.GetString("02C7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C8 { get { return ResourceManager.GetString("02C8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C9 { get { return ResourceManager.GetString("02C9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CA { get { return ResourceManager.GetString("02CA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02CB { get { return ResourceManager.GetString("02CB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CC { get { return ResourceManager.GetString("02CC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CD { get { return ResourceManager.GetString("02CD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CE { get { return ResourceManager.GetString("02CE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _02CF { get { return ResourceManager.GetString("02CF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D0 { get { return ResourceManager.GetString("02D0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D1 { get { return ResourceManager.GetString("02D1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D2 { get { return ResourceManager.GetString("02D2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D3 { get { return ResourceManager.GetString("02D3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D4 { get { return ResourceManager.GetString("02D4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D5 { get { return ResourceManager.GetString("02D5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D6 { get { return ResourceManager.GetString("02D6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D7 { get { return ResourceManager.GetString("02D7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D8 { get { return ResourceManager.GetString("02D8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D9 { get { return ResourceManager.GetString("02D9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DA { get { return ResourceManager.GetString("02DA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02DB { get { return ResourceManager.GetString("02DB", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _02DC { get { return ResourceManager.GetString("02DC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DD { get { return ResourceManager.GetString("02DD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DE { get { return ResourceManager.GetString("02DE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DF { get { return ResourceManager.GetString("02DF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E0 { get { return ResourceManager.GetString("02E0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E1 { get { return ResourceManager.GetString("02E1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E2 { get { return ResourceManager.GetString("02E2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E3 { get { return ResourceManager.GetString("02E3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E4 { get { return ResourceManager.GetString("02E4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E5 { get { return ResourceManager.GetString("02E5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E6 { get { return ResourceManager.GetString("02E6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E7 { get { return ResourceManager.GetString("02E7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02E8 { get { return ResourceManager.GetString("02E8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E9 { get { return ResourceManager.GetString("02E9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EA { get { return ResourceManager.GetString("02EA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EB { get { return ResourceManager.GetString("02EB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EC { get { return ResourceManager.GetString("02EC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02ED { get { return ResourceManager.GetString("02ED", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02EE { get { return ResourceManager.GetString("02EE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02EF { get { return ResourceManager.GetString("02EF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02F0 { get { return ResourceManager.GetString("02F0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02F1 { get { return ResourceManager.GetString("02F1", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsBW.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 0 0 0 0 1 4 0 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 0 1 2 1 2 0 2 2 2 0 0 1 2 0 1 4 2 1 4 0 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 1 2 0 0 0 0 0 1 2 2 2 2 1 2 0 0 2 2 1 0 4 2 2 2 2 1 2 6 1 1 2 2 2 2 5 1 1 2 2 2 0 0 2 2 2 0 0 2 2 2 0 2 2 2 0 1 2 7 1 1 2 2 2 2 2 7 1 1 2 2 2 2 2 2 2 1 0 1 1 2 1 2 4 1 2 2 1 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 3 1 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 4 0 2 2 2 3 2 2 2 2 2 2 6 2 2 2 2 2 2 2 2 2 1 2 1 2 5 2 2 2 2 2 1 2 2 2 2 5 2 2 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 0 1 2 0 0 1 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 1 2 0 2 2 2 1 2 1 2 3 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 0 2 2 2 1 2 0 1 2 0 0 2 2 2 0 2 2 2 2 2 2 4 2 2 2 2 1 2 1 2 2 2 2 1 2 0 0 0 0 0 0 1 2 0 0 2 2 2 1 2 1 2 2 2 2 1 2 0 0 1 2 0 2 2 2 0 0 0 3 2 2 2 0 0 6 1 1 1 1 1 2 4 2 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 2 4 2 2 2 2 0 3 2 2 2 4 2 2 2 2 0 5 2 2 2 2 2 0 1 2 2 2 2 1 2 0 3 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 0 0 3 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 1 2 1 2 1 2 0 1 2 2 2 2 0 1 2 0 1 2 1 2 1 2 0 0 1 2 1 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 0 3 2 2 2 1 2 3 2 2 2 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 9 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 2 0 0 0 4 2 2 2 2 4 2 2 2 2 1 2 2 2 2 1 2 3 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 0 0 1 2 0 2 2 2 0 2 2 2 1 2 3 2 2 2 1 2 1 2 1 2 0 0 0 0 0 0 0 11 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 8 2 2 2 2 2 2 2 2 2 2 2 0 0 0 2 2 2 3 2 2 2 2 2 2 1 2 0 0 1 2 2 2 2 2 2 2 1 2 0 2 2 2 0 4 2 2 2 2 1 2 0 0 0 1 2 1 2 0 0 2 2 1 2 2 2 1 2 0 2 1 2 1 2 3 1 2 2 3 2 1 2 4 2 2 2 2 1 2 1 2 2 2 2 0 1 2 0 1 2 1 2 3 2 2 2 1 2 1 2 2 2 2 3 2 2 2 0 0 1 2 1 2 1 2 1 2 2 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 1 2 8 2 2 2 2 2 2 2 2 1 2 1 2 1 2 0 0 1 2 0 0 0 1 2 0 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 2 2 2 1 2 0 3 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 4 2 2 2 2 1 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 0 5 2 2 2 2 2 0 0 2 2 2 1 2 3 2 2 2 1 2 0 2 2 2 0 5 2 2 2 2 2 1 2 1 2 2 2 2 3 2 2 2 4 2 2 2 2 1 2 3 2 2 2 3 2 2 2 0 0 1 2 4 2 2 2 2 4 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 1 2 1 2 1 2 4 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 4 2 2 2 2 4 2 2 2 2 5 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 4 2 2 2 2 0 0 3 2 2 2 6 2 2 2 2 2 2 0 0 1 2 1 2 3 2 2 2 2 2 2 7 2 2 2 2 2 2 2 0 1 2 0 1 2 1 2 2 2 2 1 2 1 2 2 2 2 1 2 4 2 2 2 2 4 2 2 2 2 2 2 2 4 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 0 1 2 3 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 2 2 0 2 2 2 1 2 1 2 0 4 2 2 2 2 6 2 2 2 2 2 2 4 2 2 2 2 1 2 1 2 0 1 2 4 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 0 2 2 2 1 2 1 2 0 1 2 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 1 2 1 2 2 2 2 0 2 2 2 3 2 2 2 0 1 2 0 2 2 2 2 2 2 0 2 2 2 1 2 5 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 6 2 2 2 2 2 2 0 3 2 2 2 0 2 2 2 1 2 0 0 1 2 0 0 1 2 0 6 2 2 2 2 2 2 1 2 0 1 2 0 0 2 2 2 1 2 0 0 1 2 0 0 0 0 0 2 1 2 2 1 2 2 1 2 0 0 2 2 2 2 2 2 1 2 0 3 1 2 2 2 2 2 0 0 0 0 0 0 0 0 1 2 2 2 2 0 0 2 1 1 2 1 1 3 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 0 0 0 0 0 0 1 1 0 1 1 1 1 2 1 1 0 0 1 2 0 0 2 1 2 1 1 0 0 2 2 2 1 2 2 2 2 1 2 0 0 0 1 2 0 1 2 0 0 0 0 0 0 0 1 2 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 0 2 2 2 1 2 5 2 2 2 2 2 0 2 2 2 0 0 2 2 2 0 1 2 0 0 0 0 0 1 2 0 0 0 4 2 2 2 2 0 1 2 0 0 1 2 2 2 2 0 2 2 2 0 2 2 2 1 2 2 2 2 3 2 2 2 1 2 0 1 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 2 2 1 2 0 1 2 ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsBWJ.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources.ScriptsV { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ScriptsBWJ { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal ScriptsBWJ() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.ScriptsV.ScriptsBWJ", typeof(ScriptsBWJ).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 0. /// internal static string _0000 { get { return ResourceManager.GetString("0000", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0001 { get { return ResourceManager.GetString("0001", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0002 { get { return ResourceManager.GetString("0002", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0003 { get { return ResourceManager.GetString("0003", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _0004 { get { return ResourceManager.GetString("0004", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0005 { get { return ResourceManager.GetString("0005", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0006 { get { return ResourceManager.GetString("0006", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0007 { get { return ResourceManager.GetString("0007", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0008 { get { return ResourceManager.GetString("0008", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0009 { get { return ResourceManager.GetString("0009", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000A { get { return ResourceManager.GetString("000A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000B { get { return ResourceManager.GetString("000B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000C { get { return ResourceManager.GetString("000C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000D { get { return ResourceManager.GetString("000D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000E { get { return ResourceManager.GetString("000E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _000F { get { return ResourceManager.GetString("000F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0010 { get { return ResourceManager.GetString("0010", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0011 { get { return ResourceManager.GetString("0011", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0012 { get { return ResourceManager.GetString("0012", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0013 { get { return ResourceManager.GetString("0013", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0014 { get { return ResourceManager.GetString("0014", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0015 { get { return ResourceManager.GetString("0015", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0016 { get { return ResourceManager.GetString("0016", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0017 { get { return ResourceManager.GetString("0017", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0018 { get { return ResourceManager.GetString("0018", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0019 { get { return ResourceManager.GetString("0019", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001A { get { return ResourceManager.GetString("001A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001B { get { return ResourceManager.GetString("001B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _001C { get { return ResourceManager.GetString("001C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _001D { get { return ResourceManager.GetString("001D", resourceCulture); } } /// /// Looks up a localized string similar to 1 4. /// internal static string _001E { get { return ResourceManager.GetString("001E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 4. /// internal static string _001F { get { return ResourceManager.GetString("001F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0020 { get { return ResourceManager.GetString("0020", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0021 { get { return ResourceManager.GetString("0021", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0022 { get { return ResourceManager.GetString("0022", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0023 { get { return ResourceManager.GetString("0023", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0024 { get { return ResourceManager.GetString("0024", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0025 { get { return ResourceManager.GetString("0025", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0026 { get { return ResourceManager.GetString("0026", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0027 { get { return ResourceManager.GetString("0027", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0028 { get { return ResourceManager.GetString("0028", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0029 { get { return ResourceManager.GetString("0029", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _002A { get { return ResourceManager.GetString("002A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _002B { get { return ResourceManager.GetString("002B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002C { get { return ResourceManager.GetString("002C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _002D { get { return ResourceManager.GetString("002D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002E { get { return ResourceManager.GetString("002E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _002F { get { return ResourceManager.GetString("002F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0030 { get { return ResourceManager.GetString("0030", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0031 { get { return ResourceManager.GetString("0031", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0032 { get { return ResourceManager.GetString("0032", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0033 { get { return ResourceManager.GetString("0033", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0034 { get { return ResourceManager.GetString("0034", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0035 { get { return ResourceManager.GetString("0035", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0036 { get { return ResourceManager.GetString("0036", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0037 { get { return ResourceManager.GetString("0037", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _0038 { get { return ResourceManager.GetString("0038", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0039 { get { return ResourceManager.GetString("0039", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _003A { get { return ResourceManager.GetString("003A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _003B { get { return ResourceManager.GetString("003B", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 2 2 2 2. /// internal static string _003C { get { return ResourceManager.GetString("003C", resourceCulture); } } /// /// Looks up a localized string similar to 5 1 1 2 2 2. /// internal static string _003D { get { return ResourceManager.GetString("003D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003E { get { return ResourceManager.GetString("003E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _003F { get { return ResourceManager.GetString("003F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0040 { get { return ResourceManager.GetString("0040", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0041 { get { return ResourceManager.GetString("0041", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0042 { get { return ResourceManager.GetString("0042", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0043 { get { return ResourceManager.GetString("0043", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0044 { get { return ResourceManager.GetString("0044", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0045 { get { return ResourceManager.GetString("0045", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0046 { get { return ResourceManager.GetString("0046", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0047 { get { return ResourceManager.GetString("0047", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0048 { get { return ResourceManager.GetString("0048", resourceCulture); } } /// /// Looks up a localized string similar to 7 1 1 2 2 2 2 2. /// internal static string _0049 { get { return ResourceManager.GetString("0049", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _004A { get { return ResourceManager.GetString("004A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _004B { get { return ResourceManager.GetString("004B", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _004C { get { return ResourceManager.GetString("004C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004D { get { return ResourceManager.GetString("004D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004E { get { return ResourceManager.GetString("004E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _004F { get { return ResourceManager.GetString("004F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0050 { get { return ResourceManager.GetString("0050", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0051 { get { return ResourceManager.GetString("0051", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0052 { get { return ResourceManager.GetString("0052", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0053 { get { return ResourceManager.GetString("0053", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0054 { get { return ResourceManager.GetString("0054", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0055 { get { return ResourceManager.GetString("0055", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0056 { get { return ResourceManager.GetString("0056", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0057 { get { return ResourceManager.GetString("0057", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0058 { get { return ResourceManager.GetString("0058", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0059 { get { return ResourceManager.GetString("0059", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _005A { get { return ResourceManager.GetString("005A", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005B { get { return ResourceManager.GetString("005B", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005C { get { return ResourceManager.GetString("005C", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005D { get { return ResourceManager.GetString("005D", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005E { get { return ResourceManager.GetString("005E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _005F { get { return ResourceManager.GetString("005F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 4. /// internal static string _0060 { get { return ResourceManager.GetString("0060", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0061 { get { return ResourceManager.GetString("0061", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0062 { get { return ResourceManager.GetString("0062", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0063 { get { return ResourceManager.GetString("0063", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0064 { get { return ResourceManager.GetString("0064", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0065 { get { return ResourceManager.GetString("0065", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0066 { get { return ResourceManager.GetString("0066", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0067 { get { return ResourceManager.GetString("0067", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0068 { get { return ResourceManager.GetString("0068", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0069 { get { return ResourceManager.GetString("0069", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _006A { get { return ResourceManager.GetString("006A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006B { get { return ResourceManager.GetString("006B", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _006C { get { return ResourceManager.GetString("006C", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _006D { get { return ResourceManager.GetString("006D", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _006E { get { return ResourceManager.GetString("006E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _006F { get { return ResourceManager.GetString("006F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0070 { get { return ResourceManager.GetString("0070", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0071 { get { return ResourceManager.GetString("0071", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0072 { get { return ResourceManager.GetString("0072", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0073 { get { return ResourceManager.GetString("0073", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0074 { get { return ResourceManager.GetString("0074", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0075 { get { return ResourceManager.GetString("0075", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0076 { get { return ResourceManager.GetString("0076", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0077 { get { return ResourceManager.GetString("0077", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0078 { get { return ResourceManager.GetString("0078", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0079 { get { return ResourceManager.GetString("0079", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007A { get { return ResourceManager.GetString("007A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _007B { get { return ResourceManager.GetString("007B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007C { get { return ResourceManager.GetString("007C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _007D { get { return ResourceManager.GetString("007D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _007E { get { return ResourceManager.GetString("007E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _007F { get { return ResourceManager.GetString("007F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0080 { get { return ResourceManager.GetString("0080", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0081 { get { return ResourceManager.GetString("0081", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0082 { get { return ResourceManager.GetString("0082", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0083 { get { return ResourceManager.GetString("0083", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0084 { get { return ResourceManager.GetString("0084", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0085 { get { return ResourceManager.GetString("0085", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0086 { get { return ResourceManager.GetString("0086", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0087 { get { return ResourceManager.GetString("0087", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0088 { get { return ResourceManager.GetString("0088", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0089 { get { return ResourceManager.GetString("0089", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008A { get { return ResourceManager.GetString("008A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008B { get { return ResourceManager.GetString("008B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008C { get { return ResourceManager.GetString("008C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _008D { get { return ResourceManager.GetString("008D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008E { get { return ResourceManager.GetString("008E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _008F { get { return ResourceManager.GetString("008F", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0090 { get { return ResourceManager.GetString("0090", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0091 { get { return ResourceManager.GetString("0091", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0092 { get { return ResourceManager.GetString("0092", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0093 { get { return ResourceManager.GetString("0093", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0094 { get { return ResourceManager.GetString("0094", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0095 { get { return ResourceManager.GetString("0095", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0096 { get { return ResourceManager.GetString("0096", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0097 { get { return ResourceManager.GetString("0097", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0098 { get { return ResourceManager.GetString("0098", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0099 { get { return ResourceManager.GetString("0099", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009A { get { return ResourceManager.GetString("009A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _009B { get { return ResourceManager.GetString("009B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009C { get { return ResourceManager.GetString("009C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _009D { get { return ResourceManager.GetString("009D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _009E { get { return ResourceManager.GetString("009E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _009F { get { return ResourceManager.GetString("009F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A0 { get { return ResourceManager.GetString("00A0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A1 { get { return ResourceManager.GetString("00A1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A2 { get { return ResourceManager.GetString("00A2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A3 { get { return ResourceManager.GetString("00A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A4 { get { return ResourceManager.GetString("00A4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00A5 { get { return ResourceManager.GetString("00A5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A6 { get { return ResourceManager.GetString("00A6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00A7 { get { return ResourceManager.GetString("00A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A8 { get { return ResourceManager.GetString("00A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00A9 { get { return ResourceManager.GetString("00A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AA { get { return ResourceManager.GetString("00AA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00AB { get { return ResourceManager.GetString("00AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AC { get { return ResourceManager.GetString("00AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00AD { get { return ResourceManager.GetString("00AD", resourceCulture); } } /// /// Looks up a localized string similar to 6 1 1 1 1 1 2. /// internal static string _00AE { get { return ResourceManager.GetString("00AE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00AF { get { return ResourceManager.GetString("00AF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00B0 { get { return ResourceManager.GetString("00B0", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B1 { get { return ResourceManager.GetString("00B1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B2 { get { return ResourceManager.GetString("00B2", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B3 { get { return ResourceManager.GetString("00B3", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00B4 { get { return ResourceManager.GetString("00B4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B5 { get { return ResourceManager.GetString("00B5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00B6 { get { return ResourceManager.GetString("00B6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B7 { get { return ResourceManager.GetString("00B7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00B8 { get { return ResourceManager.GetString("00B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00B9 { get { return ResourceManager.GetString("00B9", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00BA { get { return ResourceManager.GetString("00BA", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BB { get { return ResourceManager.GetString("00BB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00BC { get { return ResourceManager.GetString("00BC", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00BD { get { return ResourceManager.GetString("00BD", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00BE { get { return ResourceManager.GetString("00BE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00BF { get { return ResourceManager.GetString("00BF", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _00C0 { get { return ResourceManager.GetString("00C0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C1 { get { return ResourceManager.GetString("00C1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C2 { get { return ResourceManager.GetString("00C2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00C3 { get { return ResourceManager.GetString("00C3", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C4 { get { return ResourceManager.GetString("00C4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00C5 { get { return ResourceManager.GetString("00C5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00C6 { get { return ResourceManager.GetString("00C6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00C7 { get { return ResourceManager.GetString("00C7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C8 { get { return ResourceManager.GetString("00C8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00C9 { get { return ResourceManager.GetString("00C9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CA { get { return ResourceManager.GetString("00CA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CB { get { return ResourceManager.GetString("00CB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00CC { get { return ResourceManager.GetString("00CC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00CD { get { return ResourceManager.GetString("00CD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CE { get { return ResourceManager.GetString("00CE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00CF { get { return ResourceManager.GetString("00CF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D0 { get { return ResourceManager.GetString("00D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D1 { get { return ResourceManager.GetString("00D1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D2 { get { return ResourceManager.GetString("00D2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00D3 { get { return ResourceManager.GetString("00D3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D4 { get { return ResourceManager.GetString("00D4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D5 { get { return ResourceManager.GetString("00D5", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00D6 { get { return ResourceManager.GetString("00D6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D7 { get { return ResourceManager.GetString("00D7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00D8 { get { return ResourceManager.GetString("00D8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00D9 { get { return ResourceManager.GetString("00D9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00DA { get { return ResourceManager.GetString("00DA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00DB { get { return ResourceManager.GetString("00DB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00DC { get { return ResourceManager.GetString("00DC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00DD { get { return ResourceManager.GetString("00DD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00DE { get { return ResourceManager.GetString("00DE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00DF { get { return ResourceManager.GetString("00DF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E0 { get { return ResourceManager.GetString("00E0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00E1 { get { return ResourceManager.GetString("00E1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E2 { get { return ResourceManager.GetString("00E2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E3 { get { return ResourceManager.GetString("00E3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E4 { get { return ResourceManager.GetString("00E4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E5 { get { return ResourceManager.GetString("00E5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E6 { get { return ResourceManager.GetString("00E6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00E7 { get { return ResourceManager.GetString("00E7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E8 { get { return ResourceManager.GetString("00E8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _00E9 { get { return ResourceManager.GetString("00E9", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EA { get { return ResourceManager.GetString("00EA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00EB { get { return ResourceManager.GetString("00EB", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00EC { get { return ResourceManager.GetString("00EC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00ED { get { return ResourceManager.GetString("00ED", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00EE { get { return ResourceManager.GetString("00EE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00EF { get { return ResourceManager.GetString("00EF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F0 { get { return ResourceManager.GetString("00F0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F1 { get { return ResourceManager.GetString("00F1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F2 { get { return ResourceManager.GetString("00F2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _00F3 { get { return ResourceManager.GetString("00F3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F4 { get { return ResourceManager.GetString("00F4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F5 { get { return ResourceManager.GetString("00F5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00F6 { get { return ResourceManager.GetString("00F6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F7 { get { return ResourceManager.GetString("00F7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00F8 { get { return ResourceManager.GetString("00F8", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _00F9 { get { return ResourceManager.GetString("00F9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FA { get { return ResourceManager.GetString("00FA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FB { get { return ResourceManager.GetString("00FB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _00FC { get { return ResourceManager.GetString("00FC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FD { get { return ResourceManager.GetString("00FD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FE { get { return ResourceManager.GetString("00FE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _00FF { get { return ResourceManager.GetString("00FF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0100 { get { return ResourceManager.GetString("0100", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0101 { get { return ResourceManager.GetString("0101", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0102 { get { return ResourceManager.GetString("0102", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0103 { get { return ResourceManager.GetString("0103", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0104 { get { return ResourceManager.GetString("0104", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0105 { get { return ResourceManager.GetString("0105", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0106 { get { return ResourceManager.GetString("0106", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0107 { get { return ResourceManager.GetString("0107", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0108 { get { return ResourceManager.GetString("0108", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0109 { get { return ResourceManager.GetString("0109", resourceCulture); } } /// /// Looks up a localized string similar to 9 2 2 2 2 2 2 2 2 2. /// internal static string _010A { get { return ResourceManager.GetString("010A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010B { get { return ResourceManager.GetString("010B", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _010C { get { return ResourceManager.GetString("010C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _010D { get { return ResourceManager.GetString("010D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _010E { get { return ResourceManager.GetString("010E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _010F { get { return ResourceManager.GetString("010F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0110 { get { return ResourceManager.GetString("0110", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0111 { get { return ResourceManager.GetString("0111", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0112 { get { return ResourceManager.GetString("0112", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0113 { get { return ResourceManager.GetString("0113", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0114 { get { return ResourceManager.GetString("0114", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0115 { get { return ResourceManager.GetString("0115", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0116 { get { return ResourceManager.GetString("0116", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0117 { get { return ResourceManager.GetString("0117", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0118 { get { return ResourceManager.GetString("0118", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0119 { get { return ResourceManager.GetString("0119", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011A { get { return ResourceManager.GetString("011A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011B { get { return ResourceManager.GetString("011B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011C { get { return ResourceManager.GetString("011C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _011D { get { return ResourceManager.GetString("011D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _011E { get { return ResourceManager.GetString("011E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _011F { get { return ResourceManager.GetString("011F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0120 { get { return ResourceManager.GetString("0120", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0121 { get { return ResourceManager.GetString("0121", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0122 { get { return ResourceManager.GetString("0122", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0123 { get { return ResourceManager.GetString("0123", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0124 { get { return ResourceManager.GetString("0124", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0125 { get { return ResourceManager.GetString("0125", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0126 { get { return ResourceManager.GetString("0126", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0127 { get { return ResourceManager.GetString("0127", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0128 { get { return ResourceManager.GetString("0128", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0129 { get { return ResourceManager.GetString("0129", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _012A { get { return ResourceManager.GetString("012A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012B { get { return ResourceManager.GetString("012B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _012C { get { return ResourceManager.GetString("012C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _012D { get { return ResourceManager.GetString("012D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _012E { get { return ResourceManager.GetString("012E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _012F { get { return ResourceManager.GetString("012F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0130 { get { return ResourceManager.GetString("0130", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0131 { get { return ResourceManager.GetString("0131", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0132 { get { return ResourceManager.GetString("0132", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0133 { get { return ResourceManager.GetString("0133", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0134 { get { return ResourceManager.GetString("0134", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0135 { get { return ResourceManager.GetString("0135", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0136 { get { return ResourceManager.GetString("0136", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0137 { get { return ResourceManager.GetString("0137", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0138 { get { return ResourceManager.GetString("0138", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0139 { get { return ResourceManager.GetString("0139", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013A { get { return ResourceManager.GetString("013A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013B { get { return ResourceManager.GetString("013B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013C { get { return ResourceManager.GetString("013C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013D { get { return ResourceManager.GetString("013D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _013E { get { return ResourceManager.GetString("013E", resourceCulture); } } /// /// Looks up a localized string similar to 11 2 2 2 2 2 2 2 2 2 2 2. /// internal static string _013F { get { return ResourceManager.GetString("013F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0140 { get { return ResourceManager.GetString("0140", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0141 { get { return ResourceManager.GetString("0141", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0142 { get { return ResourceManager.GetString("0142", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0143 { get { return ResourceManager.GetString("0143", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _0144 { get { return ResourceManager.GetString("0144", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0145 { get { return ResourceManager.GetString("0145", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0146 { get { return ResourceManager.GetString("0146", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0147 { get { return ResourceManager.GetString("0147", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0148 { get { return ResourceManager.GetString("0148", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0149 { get { return ResourceManager.GetString("0149", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _014A { get { return ResourceManager.GetString("014A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _014B { get { return ResourceManager.GetString("014B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _014C { get { return ResourceManager.GetString("014C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014D { get { return ResourceManager.GetString("014D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _014E { get { return ResourceManager.GetString("014E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _014F { get { return ResourceManager.GetString("014F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0150 { get { return ResourceManager.GetString("0150", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0151 { get { return ResourceManager.GetString("0151", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0152 { get { return ResourceManager.GetString("0152", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0153 { get { return ResourceManager.GetString("0153", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0154 { get { return ResourceManager.GetString("0154", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0155 { get { return ResourceManager.GetString("0155", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0156 { get { return ResourceManager.GetString("0156", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0157 { get { return ResourceManager.GetString("0157", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0158 { get { return ResourceManager.GetString("0158", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0159 { get { return ResourceManager.GetString("0159", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015A { get { return ResourceManager.GetString("015A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015B { get { return ResourceManager.GetString("015B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _015C { get { return ResourceManager.GetString("015C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015D { get { return ResourceManager.GetString("015D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _015E { get { return ResourceManager.GetString("015E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 1. /// internal static string _015F { get { return ResourceManager.GetString("015F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0160 { get { return ResourceManager.GetString("0160", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0161 { get { return ResourceManager.GetString("0161", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0162 { get { return ResourceManager.GetString("0162", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0163 { get { return ResourceManager.GetString("0163", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0164 { get { return ResourceManager.GetString("0164", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0165 { get { return ResourceManager.GetString("0165", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 1 2. /// internal static string _0166 { get { return ResourceManager.GetString("0166", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0167 { get { return ResourceManager.GetString("0167", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0168 { get { return ResourceManager.GetString("0168", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0169 { get { return ResourceManager.GetString("0169", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _016A { get { return ResourceManager.GetString("016A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _016B { get { return ResourceManager.GetString("016B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016C { get { return ResourceManager.GetString("016C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _016D { get { return ResourceManager.GetString("016D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016E { get { return ResourceManager.GetString("016E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _016F { get { return ResourceManager.GetString("016F", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0170 { get { return ResourceManager.GetString("0170", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0171 { get { return ResourceManager.GetString("0171", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0172 { get { return ResourceManager.GetString("0172", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0173 { get { return ResourceManager.GetString("0173", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0174 { get { return ResourceManager.GetString("0174", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0175 { get { return ResourceManager.GetString("0175", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0176 { get { return ResourceManager.GetString("0176", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0177 { get { return ResourceManager.GetString("0177", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0178 { get { return ResourceManager.GetString("0178", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0179 { get { return ResourceManager.GetString("0179", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017A { get { return ResourceManager.GetString("017A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _017B { get { return ResourceManager.GetString("017B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017C { get { return ResourceManager.GetString("017C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017D { get { return ResourceManager.GetString("017D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017E { get { return ResourceManager.GetString("017E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _017F { get { return ResourceManager.GetString("017F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0180 { get { return ResourceManager.GetString("0180", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0181 { get { return ResourceManager.GetString("0181", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0182 { get { return ResourceManager.GetString("0182", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0183 { get { return ResourceManager.GetString("0183", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0184 { get { return ResourceManager.GetString("0184", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0185 { get { return ResourceManager.GetString("0185", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0186 { get { return ResourceManager.GetString("0186", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0187 { get { return ResourceManager.GetString("0187", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0188 { get { return ResourceManager.GetString("0188", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0189 { get { return ResourceManager.GetString("0189", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018A { get { return ResourceManager.GetString("018A", resourceCulture); } } /// /// Looks up a localized string similar to 8 2 2 2 2 2 2 2 2. /// internal static string _018B { get { return ResourceManager.GetString("018B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018C { get { return ResourceManager.GetString("018C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018D { get { return ResourceManager.GetString("018D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _018E { get { return ResourceManager.GetString("018E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _018F { get { return ResourceManager.GetString("018F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0190 { get { return ResourceManager.GetString("0190", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0191 { get { return ResourceManager.GetString("0191", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0192 { get { return ResourceManager.GetString("0192", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0193 { get { return ResourceManager.GetString("0193", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0194 { get { return ResourceManager.GetString("0194", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0195 { get { return ResourceManager.GetString("0195", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0196 { get { return ResourceManager.GetString("0196", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0197 { get { return ResourceManager.GetString("0197", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0198 { get { return ResourceManager.GetString("0198", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0199 { get { return ResourceManager.GetString("0199", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019A { get { return ResourceManager.GetString("019A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019B { get { return ResourceManager.GetString("019B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019C { get { return ResourceManager.GetString("019C", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _019D { get { return ResourceManager.GetString("019D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _019E { get { return ResourceManager.GetString("019E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _019F { get { return ResourceManager.GetString("019F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01A0 { get { return ResourceManager.GetString("01A0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A1 { get { return ResourceManager.GetString("01A1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01A2 { get { return ResourceManager.GetString("01A2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01A3 { get { return ResourceManager.GetString("01A3", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01A4 { get { return ResourceManager.GetString("01A4", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A5 { get { return ResourceManager.GetString("01A5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01A6 { get { return ResourceManager.GetString("01A6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01A7 { get { return ResourceManager.GetString("01A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A8 { get { return ResourceManager.GetString("01A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01A9 { get { return ResourceManager.GetString("01A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AA { get { return ResourceManager.GetString("01AA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AB { get { return ResourceManager.GetString("01AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AC { get { return ResourceManager.GetString("01AC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AD { get { return ResourceManager.GetString("01AD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AE { get { return ResourceManager.GetString("01AE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01AF { get { return ResourceManager.GetString("01AF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B0 { get { return ResourceManager.GetString("01B0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B1 { get { return ResourceManager.GetString("01B1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B2 { get { return ResourceManager.GetString("01B2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B3 { get { return ResourceManager.GetString("01B3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B4 { get { return ResourceManager.GetString("01B4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B5 { get { return ResourceManager.GetString("01B5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B6 { get { return ResourceManager.GetString("01B6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B7 { get { return ResourceManager.GetString("01B7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01B8 { get { return ResourceManager.GetString("01B8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01B9 { get { return ResourceManager.GetString("01B9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01BA { get { return ResourceManager.GetString("01BA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01BB { get { return ResourceManager.GetString("01BB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BC { get { return ResourceManager.GetString("01BC", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01BD { get { return ResourceManager.GetString("01BD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BE { get { return ResourceManager.GetString("01BE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01BF { get { return ResourceManager.GetString("01BF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C0 { get { return ResourceManager.GetString("01C0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C1 { get { return ResourceManager.GetString("01C1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01C2 { get { return ResourceManager.GetString("01C2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C3 { get { return ResourceManager.GetString("01C3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C4 { get { return ResourceManager.GetString("01C4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01C5 { get { return ResourceManager.GetString("01C5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01C6 { get { return ResourceManager.GetString("01C6", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01C7 { get { return ResourceManager.GetString("01C7", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C8 { get { return ResourceManager.GetString("01C8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01C9 { get { return ResourceManager.GetString("01C9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01CA { get { return ResourceManager.GetString("01CA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01CB { get { return ResourceManager.GetString("01CB", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01CC { get { return ResourceManager.GetString("01CC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01CD { get { return ResourceManager.GetString("01CD", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01CE { get { return ResourceManager.GetString("01CE", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01CF { get { return ResourceManager.GetString("01CF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01D0 { get { return ResourceManager.GetString("01D0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01D1 { get { return ResourceManager.GetString("01D1", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01D2 { get { return ResourceManager.GetString("01D2", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D3 { get { return ResourceManager.GetString("01D3", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01D4 { get { return ResourceManager.GetString("01D4", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01D5 { get { return ResourceManager.GetString("01D5", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D6 { get { return ResourceManager.GetString("01D6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01D7 { get { return ResourceManager.GetString("01D7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D8 { get { return ResourceManager.GetString("01D8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01D9 { get { return ResourceManager.GetString("01D9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01DA { get { return ResourceManager.GetString("01DA", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01DB { get { return ResourceManager.GetString("01DB", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01DC { get { return ResourceManager.GetString("01DC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01DD { get { return ResourceManager.GetString("01DD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01DE { get { return ResourceManager.GetString("01DE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01DF { get { return ResourceManager.GetString("01DF", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E0 { get { return ResourceManager.GetString("01E0", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E1 { get { return ResourceManager.GetString("01E1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E2 { get { return ResourceManager.GetString("01E2", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01E3 { get { return ResourceManager.GetString("01E3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01E4 { get { return ResourceManager.GetString("01E4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01E5 { get { return ResourceManager.GetString("01E5", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E6 { get { return ResourceManager.GetString("01E6", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E7 { get { return ResourceManager.GetString("01E7", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _01E8 { get { return ResourceManager.GetString("01E8", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01E9 { get { return ResourceManager.GetString("01E9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EA { get { return ResourceManager.GetString("01EA", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EB { get { return ResourceManager.GetString("01EB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01EC { get { return ResourceManager.GetString("01EC", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01ED { get { return ResourceManager.GetString("01ED", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01EE { get { return ResourceManager.GetString("01EE", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _01EF { get { return ResourceManager.GetString("01EF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F0 { get { return ResourceManager.GetString("01F0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F1 { get { return ResourceManager.GetString("01F1", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01F2 { get { return ResourceManager.GetString("01F2", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _01F3 { get { return ResourceManager.GetString("01F3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F4 { get { return ResourceManager.GetString("01F4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01F5 { get { return ResourceManager.GetString("01F5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01F6 { get { return ResourceManager.GetString("01F6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01F7 { get { return ResourceManager.GetString("01F7", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _01F8 { get { return ResourceManager.GetString("01F8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _01F9 { get { return ResourceManager.GetString("01F9", resourceCulture); } } /// /// Looks up a localized string similar to 7 2 2 2 2 2 2 2. /// internal static string _01FA { get { return ResourceManager.GetString("01FA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01FB { get { return ResourceManager.GetString("01FB", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FC { get { return ResourceManager.GetString("01FC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _01FD { get { return ResourceManager.GetString("01FD", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FE { get { return ResourceManager.GetString("01FE", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _01FF { get { return ResourceManager.GetString("01FF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0200 { get { return ResourceManager.GetString("0200", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0201 { get { return ResourceManager.GetString("0201", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0202 { get { return ResourceManager.GetString("0202", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0203 { get { return ResourceManager.GetString("0203", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0204 { get { return ResourceManager.GetString("0204", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0205 { get { return ResourceManager.GetString("0205", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0206 { get { return ResourceManager.GetString("0206", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0207 { get { return ResourceManager.GetString("0207", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0208 { get { return ResourceManager.GetString("0208", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0209 { get { return ResourceManager.GetString("0209", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _020A { get { return ResourceManager.GetString("020A", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _020B { get { return ResourceManager.GetString("020B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _020C { get { return ResourceManager.GetString("020C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _020D { get { return ResourceManager.GetString("020D", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _020E { get { return ResourceManager.GetString("020E", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _020F { get { return ResourceManager.GetString("020F", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0210 { get { return ResourceManager.GetString("0210", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0211 { get { return ResourceManager.GetString("0211", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0212 { get { return ResourceManager.GetString("0212", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0213 { get { return ResourceManager.GetString("0213", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0214 { get { return ResourceManager.GetString("0214", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0215 { get { return ResourceManager.GetString("0215", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0216 { get { return ResourceManager.GetString("0216", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0217 { get { return ResourceManager.GetString("0217", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0218 { get { return ResourceManager.GetString("0218", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0219 { get { return ResourceManager.GetString("0219", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _021A { get { return ResourceManager.GetString("021A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _021B { get { return ResourceManager.GetString("021B", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _021C { get { return ResourceManager.GetString("021C", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _021D { get { return ResourceManager.GetString("021D", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _021E { get { return ResourceManager.GetString("021E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _021F { get { return ResourceManager.GetString("021F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0220 { get { return ResourceManager.GetString("0220", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0221 { get { return ResourceManager.GetString("0221", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0222 { get { return ResourceManager.GetString("0222", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0223 { get { return ResourceManager.GetString("0223", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0224 { get { return ResourceManager.GetString("0224", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0225 { get { return ResourceManager.GetString("0225", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0226 { get { return ResourceManager.GetString("0226", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0227 { get { return ResourceManager.GetString("0227", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0228 { get { return ResourceManager.GetString("0228", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0229 { get { return ResourceManager.GetString("0229", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _022A { get { return ResourceManager.GetString("022A", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _022B { get { return ResourceManager.GetString("022B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022C { get { return ResourceManager.GetString("022C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022D { get { return ResourceManager.GetString("022D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _022E { get { return ResourceManager.GetString("022E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _022F { get { return ResourceManager.GetString("022F", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0230 { get { return ResourceManager.GetString("0230", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0231 { get { return ResourceManager.GetString("0231", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0232 { get { return ResourceManager.GetString("0232", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0233 { get { return ResourceManager.GetString("0233", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0234 { get { return ResourceManager.GetString("0234", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0235 { get { return ResourceManager.GetString("0235", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0236 { get { return ResourceManager.GetString("0236", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0237 { get { return ResourceManager.GetString("0237", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0238 { get { return ResourceManager.GetString("0238", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0239 { get { return ResourceManager.GetString("0239", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _023A { get { return ResourceManager.GetString("023A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _023B { get { return ResourceManager.GetString("023B", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _023C { get { return ResourceManager.GetString("023C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _023D { get { return ResourceManager.GetString("023D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023E { get { return ResourceManager.GetString("023E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _023F { get { return ResourceManager.GetString("023F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0240 { get { return ResourceManager.GetString("0240", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0241 { get { return ResourceManager.GetString("0241", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0242 { get { return ResourceManager.GetString("0242", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _0243 { get { return ResourceManager.GetString("0243", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0244 { get { return ResourceManager.GetString("0244", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _0245 { get { return ResourceManager.GetString("0245", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0246 { get { return ResourceManager.GetString("0246", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0247 { get { return ResourceManager.GetString("0247", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0248 { get { return ResourceManager.GetString("0248", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0249 { get { return ResourceManager.GetString("0249", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024A { get { return ResourceManager.GetString("024A", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _024B { get { return ResourceManager.GetString("024B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _024C { get { return ResourceManager.GetString("024C", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _024D { get { return ResourceManager.GetString("024D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _024E { get { return ResourceManager.GetString("024E", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _024F { get { return ResourceManager.GetString("024F", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0250 { get { return ResourceManager.GetString("0250", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0251 { get { return ResourceManager.GetString("0251", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0252 { get { return ResourceManager.GetString("0252", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0253 { get { return ResourceManager.GetString("0253", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0254 { get { return ResourceManager.GetString("0254", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0255 { get { return ResourceManager.GetString("0255", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0256 { get { return ResourceManager.GetString("0256", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0257 { get { return ResourceManager.GetString("0257", resourceCulture); } } /// /// Looks up a localized string similar to 6 2 2 2 2 2 2. /// internal static string _0258 { get { return ResourceManager.GetString("0258", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0259 { get { return ResourceManager.GetString("0259", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025A { get { return ResourceManager.GetString("025A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025B { get { return ResourceManager.GetString("025B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025C { get { return ResourceManager.GetString("025C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _025D { get { return ResourceManager.GetString("025D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _025E { get { return ResourceManager.GetString("025E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _025F { get { return ResourceManager.GetString("025F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0260 { get { return ResourceManager.GetString("0260", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0261 { get { return ResourceManager.GetString("0261", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0262 { get { return ResourceManager.GetString("0262", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0263 { get { return ResourceManager.GetString("0263", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0264 { get { return ResourceManager.GetString("0264", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0265 { get { return ResourceManager.GetString("0265", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0266 { get { return ResourceManager.GetString("0266", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0267 { get { return ResourceManager.GetString("0267", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0268 { get { return ResourceManager.GetString("0268", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0269 { get { return ResourceManager.GetString("0269", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _026A { get { return ResourceManager.GetString("026A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026B { get { return ResourceManager.GetString("026B", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _026C { get { return ResourceManager.GetString("026C", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _026D { get { return ResourceManager.GetString("026D", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _026E { get { return ResourceManager.GetString("026E", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _026F { get { return ResourceManager.GetString("026F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0270 { get { return ResourceManager.GetString("0270", resourceCulture); } } /// /// Looks up a localized string similar to 3 1 2 2. /// internal static string _0271 { get { return ResourceManager.GetString("0271", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _0272 { get { return ResourceManager.GetString("0272", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0273 { get { return ResourceManager.GetString("0273", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0274 { get { return ResourceManager.GetString("0274", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0275 { get { return ResourceManager.GetString("0275", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0276 { get { return ResourceManager.GetString("0276", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0277 { get { return ResourceManager.GetString("0277", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0278 { get { return ResourceManager.GetString("0278", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0279 { get { return ResourceManager.GetString("0279", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027A { get { return ResourceManager.GetString("027A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _027B { get { return ResourceManager.GetString("027B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _027C { get { return ResourceManager.GetString("027C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027D { get { return ResourceManager.GetString("027D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _027E { get { return ResourceManager.GetString("027E", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _027F { get { return ResourceManager.GetString("027F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0280 { get { return ResourceManager.GetString("0280", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0281 { get { return ResourceManager.GetString("0281", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0282 { get { return ResourceManager.GetString("0282", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0283 { get { return ResourceManager.GetString("0283", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0284 { get { return ResourceManager.GetString("0284", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _0285 { get { return ResourceManager.GetString("0285", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0286 { get { return ResourceManager.GetString("0286", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0287 { get { return ResourceManager.GetString("0287", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0288 { get { return ResourceManager.GetString("0288", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0289 { get { return ResourceManager.GetString("0289", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028A { get { return ResourceManager.GetString("028A", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028B { get { return ResourceManager.GetString("028B", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _028C { get { return ResourceManager.GetString("028C", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _028D { get { return ResourceManager.GetString("028D", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _028E { get { return ResourceManager.GetString("028E", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _028F { get { return ResourceManager.GetString("028F", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 1. /// internal static string _0290 { get { return ResourceManager.GetString("0290", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0291 { get { return ResourceManager.GetString("0291", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0292 { get { return ResourceManager.GetString("0292", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _0293 { get { return ResourceManager.GetString("0293", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0294 { get { return ResourceManager.GetString("0294", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0295 { get { return ResourceManager.GetString("0295", resourceCulture); } } /// /// Looks up a localized string similar to 2 1 2. /// internal static string _0296 { get { return ResourceManager.GetString("0296", resourceCulture); } } /// /// Looks up a localized string similar to 1 1. /// internal static string _0297 { get { return ResourceManager.GetString("0297", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0298 { get { return ResourceManager.GetString("0298", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _0299 { get { return ResourceManager.GetString("0299", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _029A { get { return ResourceManager.GetString("029A", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _029B { get { return ResourceManager.GetString("029B", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _029C { get { return ResourceManager.GetString("029C", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _029D { get { return ResourceManager.GetString("029D", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029E { get { return ResourceManager.GetString("029E", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _029F { get { return ResourceManager.GetString("029F", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A0 { get { return ResourceManager.GetString("02A0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A1 { get { return ResourceManager.GetString("02A1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A2 { get { return ResourceManager.GetString("02A2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02A3 { get { return ResourceManager.GetString("02A3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A4 { get { return ResourceManager.GetString("02A4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A5 { get { return ResourceManager.GetString("02A5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A6 { get { return ResourceManager.GetString("02A6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A7 { get { return ResourceManager.GetString("02A7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A8 { get { return ResourceManager.GetString("02A8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02A9 { get { return ResourceManager.GetString("02A9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AA { get { return ResourceManager.GetString("02AA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02AB { get { return ResourceManager.GetString("02AB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02AC { get { return ResourceManager.GetString("02AC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02AD { get { return ResourceManager.GetString("02AD", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02AE { get { return ResourceManager.GetString("02AE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02AF { get { return ResourceManager.GetString("02AF", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B0 { get { return ResourceManager.GetString("02B0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B1 { get { return ResourceManager.GetString("02B1", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B2 { get { return ResourceManager.GetString("02B2", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B3 { get { return ResourceManager.GetString("02B3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B4 { get { return ResourceManager.GetString("02B4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B5 { get { return ResourceManager.GetString("02B5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B6 { get { return ResourceManager.GetString("02B6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02B7 { get { return ResourceManager.GetString("02B7", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02B8 { get { return ResourceManager.GetString("02B8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02B9 { get { return ResourceManager.GetString("02B9", resourceCulture); } } /// /// Looks up a localized string similar to 5 2 2 2 2 2. /// internal static string _02BA { get { return ResourceManager.GetString("02BA", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BB { get { return ResourceManager.GetString("02BB", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02BC { get { return ResourceManager.GetString("02BC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BD { get { return ResourceManager.GetString("02BD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02BE { get { return ResourceManager.GetString("02BE", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02BF { get { return ResourceManager.GetString("02BF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C0 { get { return ResourceManager.GetString("02C0", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C1 { get { return ResourceManager.GetString("02C1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C2 { get { return ResourceManager.GetString("02C2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C3 { get { return ResourceManager.GetString("02C3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C4 { get { return ResourceManager.GetString("02C4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C5 { get { return ResourceManager.GetString("02C5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C6 { get { return ResourceManager.GetString("02C6", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02C7 { get { return ResourceManager.GetString("02C7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C8 { get { return ResourceManager.GetString("02C8", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02C9 { get { return ResourceManager.GetString("02C9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CA { get { return ResourceManager.GetString("02CA", resourceCulture); } } /// /// Looks up a localized string similar to 4 2 2 2 2. /// internal static string _02CB { get { return ResourceManager.GetString("02CB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CC { get { return ResourceManager.GetString("02CC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02CD { get { return ResourceManager.GetString("02CD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CE { get { return ResourceManager.GetString("02CE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02CF { get { return ResourceManager.GetString("02CF", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D0 { get { return ResourceManager.GetString("02D0", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D1 { get { return ResourceManager.GetString("02D1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D2 { get { return ResourceManager.GetString("02D2", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D3 { get { return ResourceManager.GetString("02D3", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02D4 { get { return ResourceManager.GetString("02D4", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D5 { get { return ResourceManager.GetString("02D5", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D6 { get { return ResourceManager.GetString("02D6", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02D7 { get { return ResourceManager.GetString("02D7", resourceCulture); } } /// /// Looks up a localized string similar to 3 2 2 2. /// internal static string _02D8 { get { return ResourceManager.GetString("02D8", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02D9 { get { return ResourceManager.GetString("02D9", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DA { get { return ResourceManager.GetString("02DA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02DB { get { return ResourceManager.GetString("02DB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DC { get { return ResourceManager.GetString("02DC", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DD { get { return ResourceManager.GetString("02DD", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DE { get { return ResourceManager.GetString("02DE", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02DF { get { return ResourceManager.GetString("02DF", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E0 { get { return ResourceManager.GetString("02E0", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E1 { get { return ResourceManager.GetString("02E1", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E2 { get { return ResourceManager.GetString("02E2", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E3 { get { return ResourceManager.GetString("02E3", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02E4 { get { return ResourceManager.GetString("02E4", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E5 { get { return ResourceManager.GetString("02E5", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E6 { get { return ResourceManager.GetString("02E6", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E7 { get { return ResourceManager.GetString("02E7", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02E8 { get { return ResourceManager.GetString("02E8", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02E9 { get { return ResourceManager.GetString("02E9", resourceCulture); } } /// /// Looks up a localized string similar to 2 2 2. /// internal static string _02EA { get { return ResourceManager.GetString("02EA", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02EB { get { return ResourceManager.GetString("02EB", resourceCulture); } } /// /// Looks up a localized string similar to 0. /// internal static string _02EC { get { return ResourceManager.GetString("02EC", resourceCulture); } } /// /// Looks up a localized string similar to 1 2. /// internal static string _02ED { get { return ResourceManager.GetString("02ED", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/ScriptsV/ScriptsBWJ.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 0 0 0 0 1 4 0 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 0 1 2 1 2 0 2 2 2 0 0 1 2 0 1 4 2 1 4 0 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 1 2 0 0 0 0 0 1 2 2 2 2 1 2 0 0 2 2 1 0 4 2 2 2 2 1 2 6 1 1 2 2 2 2 5 1 1 2 2 2 0 0 2 2 2 0 0 2 2 2 0 2 2 2 0 1 2 7 1 1 2 2 2 2 2 7 1 1 2 2 2 2 2 2 2 1 0 1 1 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 3 1 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 4 0 2 2 2 3 2 2 2 2 2 2 6 2 2 2 2 2 2 2 2 2 1 2 1 2 5 2 2 2 2 2 1 2 2 2 2 5 2 2 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 0 1 2 0 0 1 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 1 2 1 2 2 2 2 1 2 0 2 2 2 1 2 1 2 3 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 0 2 2 2 1 2 0 1 2 0 0 2 2 2 0 2 2 2 2 2 2 4 2 2 2 2 1 2 1 2 2 2 2 1 2 0 0 0 0 0 0 1 2 0 0 2 2 2 1 2 1 2 2 2 2 1 2 0 0 1 2 0 2 2 2 0 0 0 3 2 2 2 0 0 6 1 1 1 1 1 2 4 2 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 2 4 2 2 2 2 0 3 2 2 2 4 2 2 2 2 0 5 2 2 2 2 2 0 1 2 2 2 2 1 2 0 3 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 0 0 3 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 1 2 1 2 1 2 0 1 2 2 2 2 0 1 2 0 1 2 1 2 1 2 0 0 1 2 1 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 0 3 2 2 2 1 2 3 2 2 2 2 2 2 4 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 2 2 2 2 2 9 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 0 4 2 2 2 2 3 2 2 2 3 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 2 0 0 0 4 2 2 2 2 4 2 2 2 2 1 2 2 2 2 1 2 3 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 0 0 1 2 0 2 2 2 0 2 2 2 1 2 3 2 2 2 1 2 1 2 1 2 0 0 0 0 0 0 0 11 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 8 2 2 2 2 2 2 2 2 2 2 2 0 0 0 2 2 2 3 2 2 2 2 2 2 1 2 0 0 1 2 2 2 2 2 2 2 1 2 0 2 2 2 0 4 2 2 2 2 1 2 0 0 0 1 2 1 2 0 0 2 2 1 2 2 2 1 2 0 2 1 2 1 2 3 1 2 2 3 2 1 2 4 2 2 2 2 1 2 1 2 2 2 2 0 1 2 0 1 2 1 2 3 2 2 2 1 2 1 2 2 2 2 3 2 2 2 0 0 1 2 1 2 1 2 1 2 2 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 1 2 8 2 2 2 2 2 2 2 2 1 2 1 2 1 2 0 0 1 2 0 0 0 1 2 0 1 2 1 2 1 2 1 2 1 2 1 2 4 2 2 2 2 1 2 2 2 2 1 2 0 3 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 4 2 2 2 2 1 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 2 2 0 0 2 2 2 2 2 2 3 2 2 2 0 5 2 2 2 2 2 0 0 2 2 2 1 2 3 2 2 2 1 2 0 2 2 2 0 5 2 2 2 2 2 1 2 1 2 2 2 2 3 2 2 2 4 2 2 2 2 1 2 3 2 2 2 3 2 2 2 0 0 1 2 4 2 2 2 2 4 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 1 2 1 2 1 2 4 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 4 2 2 2 2 4 2 2 2 2 5 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 4 2 2 2 2 0 0 3 2 2 2 6 2 2 2 2 2 2 0 0 1 2 1 2 3 2 2 2 2 2 2 7 2 2 2 2 2 2 2 0 1 2 0 1 2 1 2 2 2 2 1 2 1 2 2 2 2 1 2 4 2 2 2 2 4 2 2 2 2 2 2 2 4 2 2 2 2 4 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 0 1 2 3 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 2 2 0 2 2 2 1 2 1 2 0 4 2 2 2 2 6 2 2 2 2 2 2 4 2 2 2 2 1 2 1 2 0 1 2 4 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 0 2 2 2 1 2 1 2 0 1 2 2 2 2 1 2 4 2 2 2 2 3 2 2 2 1 2 1 2 1 2 2 2 2 0 2 2 2 3 2 2 2 0 1 2 0 2 2 2 2 2 2 0 2 2 2 1 2 5 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 6 2 2 2 2 2 2 0 3 2 2 2 0 2 2 2 1 2 0 0 1 2 0 0 1 2 0 6 2 2 2 2 2 2 1 2 0 1 2 0 0 2 2 2 1 2 0 0 1 2 0 0 0 0 0 2 1 2 2 1 2 2 1 2 0 0 2 2 2 2 2 2 1 2 0 3 1 2 2 2 2 2 0 0 0 0 0 0 0 0 1 2 2 2 2 0 0 2 1 1 2 1 1 3 2 2 2 0 3 2 2 2 3 2 2 2 3 2 2 2 0 0 0 0 0 0 1 1 0 1 1 1 1 2 1 1 0 0 1 2 0 0 2 1 2 1 1 0 0 2 2 2 1 2 2 2 2 1 2 0 0 0 1 2 0 1 2 0 0 0 0 0 0 0 1 2 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 0 0 1 2 0 2 2 2 1 2 5 2 2 2 2 2 0 2 2 2 0 0 2 2 2 0 1 2 0 0 0 0 0 1 2 0 0 0 4 2 2 2 2 0 1 2 0 0 1 2 2 2 2 0 2 2 2 0 2 2 2 1 2 2 2 2 3 2 2 2 1 2 0 1 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 2 2 1 2 0 1 2 ================================================ FILE: DS_Map/Resources/TextDatabase.cs ================================================ using System; using System.Collections.Generic; using System.Linq; namespace DSPRE.Resources { public static class TextDatabase { public static Dictionary readTextDictionary = new Dictionary() { [0x0000] = "\\x0000", [0x0001] = "\\x0001", [0x0002] = "ぁ", [0x0003] = "あ", [0x0004] = "ぃ", [0x0005] = "い", [0x0006] = "ぅ", [0x0007] = "う", [0x0008] = "ぇ", [0x0009] = "え", [0x000A] = "ぉ", [0x000B] = "お", [0x000C] = "か", [0x000D] = "が", [0x000E] = "き", [0x000F] = "ぎ", [0x0010] = "く", [0x0011] = "ぐ", [0x0012] = "け", [0x0013] = "げ", [0x0014] = "こ", [0x0015] = "ご", [0x0016] = "さ", [0x0017] = "ざ", [0x0018] = "し", [0x0019] = "じ", [0x001A] = "す", [0x001B] = "ず", [0x001C] = "せ", [0x001D] = "ぜ", [0x001E] = "そ", [0x001F] = "ぞ", [0x0020] = "た", [0x0021] = "だ", [0x0022] = "ち", [0x0023] = "ぢ", [0x0024] = "っ", [0x0025] = "つ", [0x0026] = "づ", [0x0027] = "て", [0x0028] = "で", [0x0029] = "と", [0x002A] = "ど", [0x002B] = "な", [0x002C] = "に", [0x002D] = "ぬ", [0x002E] = "ね", [0x002F] = "の", [0x0030] = "は", [0x0031] = "ば", [0x0032] = "ぱ", [0x0033] = "ひ", [0x0034] = "び", [0x0035] = "ぴ", [0x0036] = "ふ", [0x0037] = "ぶ", [0x0038] = "ぷ", [0x0039] = "へ", [0x003A] = "べ", [0x003B] = "ぺ", [0x003C] = "ほ", [0x003D] = "ぼ", [0x003E] = "ぽ", [0x003F] = "ま", [0x0040] = "み", [0x0041] = "む", [0x0042] = "め", [0x0043] = "も", [0x0044] = "ゃ", [0x0045] = "や", [0x0046] = "ゅ", [0x0047] = "ゆ", [0x0048] = "ょ", [0x0049] = "よ", [0x004A] = "ら", [0x004B] = "り", [0x004C] = "る", [0x004D] = "れ", [0x004E] = "ろ", [0x004F] = "わ", [0x0050] = "を", [0x0051] = "ん", [0x0052] = "ァ", [0x0053] = "ア", [0x0054] = "ィ", [0x0055] = "イ", [0x0056] = "ゥ", [0x0057] = "ウ", [0x0058] = "ェ", [0x0059] = "エ", [0x005A] = "ォ", [0x005B] = "オ", [0x005C] = "カ", [0x005D] = "ガ", [0x005E] = "キ", [0x005F] = "ギ", [0x0060] = "ク", [0x0061] = "グ", [0x0062] = "ケ", [0x0063] = "ゲ", [0x0064] = "コ", [0x0065] = "ゴ", [0x0066] = "サ", [0x0067] = "ザ", [0x0068] = "シ", [0x0069] = "ジ", [0x006A] = "ス", [0x006B] = "ズ", [0x006C] = "セ", [0x006D] = "ゼ", [0x006E] = "ソ", [0x006F] = "ゾ", [0x0070] = "タ", [0x0071] = "ダ", [0x0072] = "チ", [0x0073] = "ヂ", [0x0074] = "ッ", [0x0075] = "ツ", [0x0076] = "ヅ", [0x0077] = "テ", [0x0078] = "デ", [0x0079] = "ト", [0x007A] = "ド", [0x007B] = "ナ", [0x007C] = "ニ", [0x007D] = "ヌ", [0x007E] = "ネ", [0x007F] = "ノ", [0x0080] = "ハ", [0x0081] = "バ", [0x0082] = "パ", [0x0083] = "ヒ", [0x0084] = "ビ", [0x0085] = "ピ", [0x0086] = "フ", [0x0087] = "ブ", [0x0088] = "プ", [0x0089] = "ヘ", [0x008A] = "ベ", [0x008B] = "ペ", [0x008C] = "ホ", [0x008D] = "ボ", [0x008E] = "ポ", [0x008F] = "マ", [0x0090] = "ミ", [0x0091] = "ム", [0x0092] = "メ", [0x0093] = "モ", [0x0094] = "ャ", [0x0095] = "ヤ", [0x0096] = "ュ", [0x0097] = "ユ", [0x0098] = "ョ", [0x0099] = "ヨ", [0x009A] = "ラ", [0x009B] = "リ", [0x009C] = "ル", [0x009D] = "レ", [0x009E] = "ロ", [0x009F] = "ワ", [0x00A0] = "ヲ", [0x00A1] = "ン", [0x00A2] = "0", [0x00A3] = "1", [0x00A4] = "2", [0x00A5] = "3", [0x00A6] = "4", [0x00A7] = "5", [0x00A8] = "6", [0x00A9] = "7", [0x00AA] = "8", [0x00AB] = "9", [0x00AC] = "A", [0x00AD] = "B", [0x00AE] = "C", [0x00AF] = "D", [0x00B0] = "E", [0x00B1] = "F", [0x00B2] = "G", [0x00B3] = "H", [0x00B4] = "I", [0x00B5] = "J", [0x00B6] = "K", [0x00B7] = "L", [0x00B8] = "M", [0x00B9] = "N", [0x00BA] = "O", [0x00BB] = "P", [0x00BC] = "Q", [0x00BD] = "R", [0x00BE] = "S", [0x00BF] = "T", [0x00C0] = "U", [0x00C1] = "V", [0x00C2] = "W", [0x00C3] = "X", [0x00C4] = "Y", [0x00C5] = "Z", [0x00C6] = "a", [0x00C7] = "b", [0x00C8] = "c", [0x00C9] = "d", [0x00CA] = "e", [0x00CB] = "f", [0x00CC] = "g", [0x00CD] = "h", [0x00CE] = "i", [0x00CF] = "j", [0x00D0] = "k", [0x00D1] = "l", [0x00D2] = "m", [0x00D3] = "n", [0x00D4] = "o", [0x00D5] = "p", [0x00D6] = "q", [0x00D7] = "r", [0x00D8] = "s", [0x00D9] = "t", [0x00DA] = "u", [0x00DB] = "v", [0x00DC] = "w", [0x00DD] = "x", [0x00DE] = "y", [0x00DF] = "z", [0x00E1] = "!", [0x00E2] = "?", [0x00E3] = "、", [0x00E4] = "。", [0x00E5] = "⋯", [0x00E6] = "・", [0x00E7] = "/", [0x00E8] = "「", [0x00E9] = "」", [0x00EA] = "『", [0x00EB] = "』", [0x00EC] = "(", [0x00ED] = ")", [0x00EE] = "㊚", [0x00EF] = "㊛", [0x00F0] = "+", [0x00F1] = "-", [0x00F2] = "⊗", [0x00F3] = "⊘", [0x00F4] = "=", [0x00F5] = "z", [0x00F6] = ":", [0x00F7] = ";", [0x00F8] = ".", [0x00F9] = ",", [0x00FA] = "♤", [0x00FB] = "♧", [0x00FC] = "♡", [0x00FD] = "♢", [0x00FE] = "☆", [0x00FF] = "◎", [0x0100] = "○", [0x0101] = "□", [0x0102] = "△", [0x0103] = "◇", [0x0104] = "@", [0x0105] = "♫", [0x0106] = "%", [0x0107] = "☼", [0x0108] = "☔", [0x0109] = "☰", [0x010A] = "❄", [0x010B] = "☋", [0x010C] = "♔", [0x010D] = "♕", [0x010E] = "☊", [0x010F] = "⇗", [0x0110] = "⇘", [0x0111] = "☾", [0x0112] = "¥", [0x0113] = "♈", [0x0114] = "♉", [0x0115] = "♊", [0x0116] = "♋", [0x0117] = "♌", [0x0118] = "♍", [0x0119] = "♎", [0x011A] = "♏", [0x011B] = "←", [0x011C] = "↑", [0x011D] = "↓", [0x011E] = "→", [0x011F] = "‣", [0x0120] = "&", [0x0121] = "0", [0x0122] = "1", [0x0123] = "2", [0x0124] = "3", [0x0125] = "4", [0x0126] = "5", [0x0127] = "6", [0x0128] = "7", [0x0129] = "8", [0x012A] = "9", [0x012B] = "A", [0x012C] = "B", [0x012D] = "C", [0x012E] = "D", [0x012F] = "E", [0x0130] = "F", [0x0131] = "G", [0x0132] = "H", [0x0133] = "I", [0x0134] = "J", [0x0135] = "K", [0x0136] = "L", [0x0137] = "M", [0x0138] = "N", [0x0139] = "O", [0x013A] = "P", [0x013B] = "Q", [0x013C] = "R", [0x013D] = "S", [0x013E] = "T", [0x013F] = "U", [0x0140] = "V", [0x0141] = "W", [0x0142] = "X", [0x0143] = "Y", [0x0144] = "Z", [0x0145] = "a", [0x0146] = "b", [0x0147] = "c", [0x0148] = "d", [0x0149] = "e", [0x014A] = "f", [0x014B] = "g", [0x014C] = "h", [0x014D] = "i", [0x014E] = "j", [0x014F] = "k", [0x0150] = "l", [0x0151] = "m", [0x0152] = "n", [0x0153] = "o", [0x0154] = "p", [0x0155] = "q", [0x0156] = "r", [0x0157] = "s", [0x0158] = "t", [0x0159] = "u", [0x015A] = "v", [0x015B] = "w", [0x015C] = "x", [0x015D] = "y", [0x015E] = "z", [0x015F] = "À", [0x0160] = "Á", [0x0161] = "Â", [0x0162] = "Ã", [0x0163] = "Ä", [0x0164] = "Å", [0x0165] = "Æ", [0x0166] = "Ç", [0x0167] = "È", [0x0168] = "É", [0x0169] = "Ê", [0x016A] = "Ë", [0x016B] = "Ì", [0x016C] = "Í", [0x016D] = "Î", [0x016E] = "Ï", [0x016F] = "Ð", [0x0170] = "Ñ", [0x0171] = "Ò", [0x0172] = "Ó", [0x0173] = "Ô", [0x0174] = "Õ", [0x0175] = "Ö", [0x0176] = "×", [0x0177] = "Ø", [0x0178] = "Ù", [0x0179] = "Ú", [0x017A] = "Û", [0x017B] = "Ü", [0x017C] = "Ý", [0x017D] = "Þ", [0x017E] = "ß", [0x017F] = "à", [0x0180] = "á", [0x0181] = "â", [0x0182] = "ã", [0x0183] = "ä", [0x0184] = "å", [0x0185] = "æ", [0x0186] = "ç", [0x0187] = "è", [0x0188] = "é", [0x0189] = "ê", [0x018A] = "ë", [0x018B] = "ì", [0x018C] = "í", [0x018D] = "î", [0x018E] = "ï", [0x018F] = "ð", [0x0190] = "ñ", [0x0191] = "ò", [0x0192] = "ó", [0x0193] = "ô", [0x0194] = "õ", [0x0195] = "ö", [0x0196] = "÷", [0x0197] = "ø", [0x0198] = "ù", [0x0199] = "ú", [0x019A] = "û", [0x019B] = "ü", [0x019C] = "ý", [0x019D] = "þ", [0x019E] = "ÿ", [0x019F] = "Œ", [0x01A0] = "œ", [0x01A1] = "Ş", [0x01A2] = "ş", [0x01A3] = "ª", [0x01A4] = "º", [0x01A5] = "¹", [0x01A6] = "²", [0x01A7] = "³", [0x01A8] = "$", [0x01A9] = "¡", [0x01AA] = "¿", [0x01AB] = "!", [0x01AC] = "?", [0x01AD] = ",", [0x01AE] = ".", [0x01AF] = "…", [0x01B0] = "·", [0x01B1] = "/", [0x01B2] = "‘", [0x01B3] = "’", [0x01B4] = "“", [0x01B5] = "”", [0x01B6] = "„", [0x01B7] = "《", [0x01B8] = "》", [0x01B9] = "(", [0x01BA] = ")", [0x01BB] = "♂", [0x01BC] = "♀", [0x01BD] = "+", [0x01BE] = "-", [0x01BF] = "*", [0x01C0] = "#", [0x01C1] = "=", [0x01C2] = "&", [0x01C3] = "~", [0x01C4] = ":", [0x01C5] = ";", [0x01C6] = "♠", [0x01C7] = "♣", [0x01C8] = "♥", [0x01C9] = "♦", [0x01CA] = "★", [0x01CB] = "◉", [0x01CC] = "●", [0x01CD] = "■", [0x01CE] = "▲", [0x01CF] = "◆", [0x01D0] = "@", [0x01D1] = "♪", [0x01D2] = "%", [0x01D3] = "☀", [0x01D4] = "☁", [0x01D5] = "☂", [0x01D6] = "☃", [0x01D7] = "☺", [0x01D8] = "♚", [0x01D9] = "♛", [0x01DA] = "☹", [0x01DB] = "↗", [0x01DC] = "↘", [0x01DD] = "☽", [0x01DE] = " ", [0x01DF] = "⁴", [0x01E0] = "[PK]", [0x01E1] = "[MN]", [0x01E8] = "°", [0x01E9] = "_", [0x01EA] = "_", [0x01FC] = "<", [0x01FD] = ">", [0x01FE] = "—", [0x01FF] = "一", [0x0200] = "丁", [0x0201] = "七", [0x0202] = "万", [0x0203] = "丈", [0x0204] = "三", [0x0205] = "上", [0x0206] = "下", [0x0207] = "不", [0x0208] = "与", [0x0209] = "丑", [0x020A] = "专", [0x020B] = "且", [0x020C] = "世", [0x020D] = "丘", [0x020E] = "业", [0x020F] = "丛", [0x0210] = "东", [0x0211] = "丝", [0x0212] = "丢", [0x0213] = "两", [0x0214] = "严", [0x0215] = "丧", [0x0216] = "个", [0x0217] = "丫", [0x0218] = "中", [0x0219] = "丰", [0x021A] = "临", [0x021B] = "丸", [0x021C] = "丹", [0x021D] = "为", [0x021E] = "主", [0x021F] = "丽", [0x0220] = "举", [0x0221] = "乃", [0x0222] = "久", [0x0223] = "么", [0x0224] = "义", [0x0225] = "之", [0x0226] = "乌", [0x0227] = "乍", [0x0228] = "乎", [0x0229] = "乏", [0x022A] = "乐", [0x022B] = "乔", [0x022C] = "乖", [0x022D] = "乘", [0x022E] = "乙", [0x022F] = "九", [0x0230] = "也", [0x0231] = "习", [0x0232] = "乡", [0x0233] = "书", [0x0234] = "买", [0x0235] = "乱", [0x0236] = "了", [0x0237] = "予", [0x0238] = "争", [0x0239] = "事", [0x023A] = "二", [0x023B] = "于", [0x023C] = "亏", [0x023D] = "云", [0x023E] = "互", [0x023F] = "五", [0x0240] = "井", [0x0241] = "亚", [0x0242] = "些", [0x0243] = "亡", [0x0244] = "亢", [0x0245] = "交", [0x0246] = "亥", [0x0247] = "亦", [0x0248] = "产", [0x0249] = "亨", [0x024A] = "享", [0x024B] = "京", [0x024C] = "亮", [0x024D] = "亲", [0x024E] = "人", [0x024F] = "亿", [0x0250] = "什", [0x0251] = "仁", [0x0252] = "仅", [0x0253] = "仆", [0x0254] = "仇", [0x0255] = "今", [0x0256] = "介", [0x0257] = "仍", [0x0258] = "从", [0x0259] = "仓", [0x025A] = "仔", [0x025B] = "他", [0x025C] = "仗", [0x025D] = "付", [0x025E] = "仙", [0x025F] = "代", [0x0260] = "令", [0x0261] = "以", [0x0262] = "仪", [0x0263] = "们", [0x0264] = "仰", [0x0265] = "件", [0x0266] = "价", [0x0267] = "任", [0x0268] = "份", [0x0269] = "仿", [0x026A] = "企", [0x026B] = "伊", [0x026C] = "伍", [0x026D] = "伏", [0x026E] = "伐", [0x026F] = "休", [0x0270] = "众", [0x0271] = "优", [0x0272] = "伙", [0x0273] = "会", [0x0274] = "伞", [0x0275] = "伟", [0x0276] = "传", [0x0277] = "伤", [0x0278] = "伦", [0x0279] = "伪", [0x027A] = "伯", [0x027B] = "估", [0x027C] = "伴", [0x027D] = "伸", [0x027E] = "伺", [0x027F] = "似", [0x0280] = "伽", [0x0281] = "佃", [0x0282] = "但", [0x0283] = "位", [0x0284] = "低", [0x0285] = "住", [0x0286] = "佐", [0x0287] = "佑", [0x0288] = "体", [0x0289] = "何", [0x028A] = "余", [0x028B] = "佛", [0x028C] = "作", [0x028D] = "你", [0x028E] = "佩", [0x028F] = "佯", [0x0290] = "佳", [0x0291] = "使", [0x0292] = "例", [0x0293] = "侍", [0x0294] = "供", [0x0295] = "依", [0x0296] = "侣", [0x0297] = "侦", [0x0298] = "侧", [0x0299] = "侬", [0x029A] = "侵", [0x029B] = "便", [0x029C] = "促", [0x029D] = "俄", [0x029E] = "俊", [0x029F] = "俗", [0x02A0] = "保", [0x02A1] = "信", [0x02A2] = "俩", [0x02A3] = "修", [0x02A4] = "俱", [0x02A5] = "俺", [0x02A6] = "倍", [0x02A7] = "倒", [0x02A8] = "候", [0x02A9] = "借", [0x02AA] = "倦", [0x02AB] = "值", [0x02AC] = "倾", [0x02AD] = "假", [0x02AE] = "偏", [0x02AF] = "偕", [0x02B0] = "做", [0x02B1] = "停", [0x02B2] = "健", [0x02B3] = "偶", [0x02B4] = "偷", [0x02B5] = "偿", [0x02B6] = "傅", [0x02B7] = "傍", [0x02B8] = "储", [0x02B9] = "催", [0x02BA] = "傲", [0x02BB] = "傻", [0x02BC] = "像", [0x02BD] = "僧", [0x02BE] = "僵", [0x02BF] = "僻", [0x02C0] = "儿", [0x02C1] = "允", [0x02C2] = "元", [0x02C3] = "兄", [0x02C4] = "充", [0x02C5] = "兆", [0x02C6] = "先", [0x02C7] = "光", [0x02C8] = "克", [0x02C9] = "免", [0x02CA] = "児", [0x02CB] = "兑", [0x02CC] = "兔", [0x02CD] = "兜", [0x02CE] = "兢", [0x02CF] = "入", [0x02D0] = "全", [0x02D1] = "八", [0x02D2] = "公", [0x02D3] = "六", [0x02D4] = "兮", [0x02D5] = "兰", [0x02D6] = "共", [0x02D7] = "关", [0x02D8] = "兴", [0x02D9] = "兵", [0x02DA] = "其", [0x02DB] = "具", [0x02DC] = "典", [0x02DD] = "兹", [0x02DE] = "养", [0x02DF] = "兼", [0x02E0] = "兽", [0x02E1] = "内", [0x02E2] = "冈", [0x02E3] = "冉", [0x02E4] = "册", [0x02E5] = "再", [0x02E6] = "冒", [0x02E7] = "冕", [0x02E8] = "写", [0x02E9] = "军", [0x02EA] = "农", [0x02EB] = "冠", [0x02EC] = "冤", [0x02ED] = "冥", [0x02EE] = "冬", [0x02EF] = "冰", [0x02F0] = "冲", [0x02F1] = "决", [0x02F2] = "况", [0x02F3] = "冷", [0x02F4] = "冻", [0x02F5] = "净", [0x02F6] = "凃", [0x02F7] = "准", [0x02F8] = "凉", [0x02F9] = "凋", [0x02FA] = "凌", [0x02FB] = "减", [0x02FC] = "凑", [0x02FD] = "凛", [0x02FE] = "凝", [0x02FF] = "几", [0x0300] = "凡", [0x0301] = "凤", [0x0302] = "凭", [0x0303] = "凯", [0x0304] = "凶", [0x0305] = "凸", [0x0306] = "凹", [0x0307] = "出", [0x0308] = "击", [0x0309] = "函", [0x030A] = "刀", [0x030B] = "刃", [0x030C] = "分", [0x030D] = "切", [0x030E] = "刊", [0x030F] = "刑", [0x0310] = "划", [0x0311] = "列", [0x0312] = "则", [0x0313] = "刚", [0x0314] = "创", [0x0315] = "初", [0x0316] = "删", [0x0317] = "判", [0x0318] = "刨", [0x0319] = "利", [0x031A] = "别", [0x031B] = "刮", [0x031C] = "到", [0x031D] = "制", [0x031E] = "刷", [0x031F] = "券", [0x0320] = "刹", [0x0321] = "刺", [0x0322] = "刻", [0x0323] = "剂", [0x0324] = "削", [0x0325] = "前", [0x0326] = "剑", [0x0327] = "剔", [0x0328] = "剥", [0x0329] = "剧", [0x032A] = "剩", [0x032B] = "剪", [0x032C] = "副", [0x032D] = "割", [0x032E] = "劈", [0x032F] = "力", [0x0330] = "劝", [0x0331] = "办", [0x0332] = "功", [0x0333] = "加", [0x0334] = "务", [0x0335] = "劣", [0x0336] = "动", [0x0337] = "助", [0x0338] = "努", [0x0339] = "励", [0x033A] = "劲", [0x033B] = "劳", [0x033C] = "势", [0x033D] = "勃", [0x033E] = "勇", [0x033F] = "勉", [0x0340] = "勋", [0x0341] = "勒", [0x0342] = "募", [0x0343] = "勤", [0x0344] = "勺", [0x0345] = "勾", [0x0346] = "勿", [0x0347] = "包", [0x0348] = "匈", [0x0349] = "匕", [0x034A] = "化", [0x034B] = "北", [0x034C] = "匙", [0x034D] = "匠", [0x034E] = "匣", [0x034F] = "匪", [0x0350] = "匹", [0x0351] = "区", [0x0352] = "医", [0x0353] = "匿", [0x0354] = "十", [0x0355] = "千", [0x0356] = "升", [0x0357] = "午", [0x0358] = "半", [0x0359] = "华", [0x035A] = "协", [0x035B] = "卑", [0x035C] = "卒", [0x035D] = "卓", [0x035E] = "单", [0x035F] = "卖", [0x0360] = "南", [0x0361] = "博", [0x0362] = "卜", [0x0363] = "卟", [0x0364] = "占", [0x0365] = "卡", [0x0366] = "卢", [0x0367] = "卫", [0x0368] = "印", [0x0369] = "危", [0x036A] = "即", [0x036B] = "却", [0x036C] = "卵", [0x036D] = "卷", [0x036E] = "卸", [0x036F] = "厂", [0x0370] = "厄", [0x0371] = "厅", [0x0372] = "历", [0x0373] = "厉", [0x0374] = "压", [0x0375] = "厌", [0x0376] = "厘", [0x0377] = "厚", [0x0378] = "原", [0x0379] = "厦", [0x037A] = "厨", [0x037B] = "去", [0x037C] = "县", [0x037D] = "参", [0x037E] = "又", [0x037F] = "叉", [0x0380] = "及", [0x0381] = "友", [0x0382] = "双", [0x0383] = "反", [0x0384] = "发", [0x0385] = "叔", [0x0386] = "取", [0x0387] = "受", [0x0388] = "变", [0x0389] = "叙", [0x038A] = "叠", [0x038B] = "口", [0x038C] = "古", [0x038D] = "句", [0x038E] = "另", [0x038F] = "叩", [0x0390] = "只", [0x0391] = "叫", [0x0392] = "召", [0x0393] = "叭", [0x0394] = "叮", [0x0395] = "可", [0x0396] = "台", [0x0397] = "史", [0x0398] = "右", [0x0399] = "叶", [0x039A] = "号", [0x039B] = "司", [0x039C] = "叹", [0x039D] = "叼", [0x039E] = "叽", [0x039F] = "吃", [0x03A0] = "各", [0x03A1] = "合", [0x03A2] = "吉", [0x03A3] = "吊", [0x03A4] = "同", [0x03A5] = "名", [0x03A6] = "后", [0x03A7] = "吐", [0x03A8] = "向", [0x03A9] = "吒", [0x03AA] = "吓", [0x03AB] = "吕", [0x03AC] = "吗", [0x03AD] = "君", [0x03AE] = "吝", [0x03AF] = "吞", [0x03B0] = "吟", [0x03B1] = "吠", [0x03B2] = "吡", [0x03B3] = "否", [0x03B4] = "吧", [0x03B5] = "吨", [0x03B6] = "吩", [0x03B7] = "含", [0x03B8] = "听", [0x03B9] = "吭", [0x03BA] = "启", [0x03BB] = "吱", [0x03BC] = "吵", [0x03BD] = "吸", [0x03BE] = "吹", [0x03BF] = "吻", [0x03C0] = "吼", [0x03C1] = "吾", [0x03C2] = "呀", [0x03C3] = "呃", [0x03C4] = "呆", [0x03C5] = "呈", [0x03C6] = "告", [0x03C7] = "呐", [0x03C8] = "呗", [0x03C9] = "员", [0x03CA] = "呜", [0x03CB] = "呢", [0x03CC] = "呦", [0x03CD] = "周", [0x03CE] = "呯", [0x03CF] = "呱", [0x03D0] = "味", [0x03D1] = "呵", [0x03D2] = "呻", [0x03D3] = "呼", [0x03D4] = "命", [0x03D5] = "咄", [0x03D6] = "咆", [0x03D7] = "咋", [0x03D8] = "和", [0x03D9] = "咎", [0x03DA] = "咏", [0x03DB] = "咐", [0x03DC] = "咒", [0x03DD] = "咔", [0x03DE] = "咕", [0x03DF] = "咖", [0x03E0] = "咙", [0x03E1] = "咚", [0x03E2] = "咝", [0x03E3] = "咣", [0x03E4] = "咦", [0x03E5] = "咧", [0x03E6] = "咨", [0x03E7] = "咩", [0x03E8] = "咪", [0x03E9] = "咬", [0x03EA] = "咯", [0x03EB] = "咱", [0x03EC] = "咳", [0x03ED] = "咸", [0x03EE] = "咻", [0x03EF] = "咿", [0x03F0] = "哀", [0x03F1] = "品", [0x03F2] = "哇", [0x03F3] = "哈", [0x03F4] = "哉", [0x03F5] = "响", [0x03F6] = "哎", [0x03F7] = "哐", [0x03F8] = "哑", [0x03F9] = "哔", [0x03FA] = "哗", [0x03FB] = "哞", [0x03FC] = "哟", [0x03FD] = "哥", [0x03FE] = "哦", [0x03FF] = "哧", [0x0400] = "哨", [0x0401] = "哩", [0x0402] = "哪", [0x0403] = "哭", [0x0404] = "哮", [0x0405] = "哲", [0x0406] = "哼", [0x0407] = "唇", [0x0408] = "唉", [0x0409] = "唐", [0x040A] = "唔", [0x040B] = "唤", [0x040C] = "唧", [0x040D] = "唬", [0x040E] = "售", [0x040F] = "唯", [0x0410] = "唱", [0x0411] = "唷", [0x0412] = "唾", [0x0413] = "啃", [0x0414] = "啄", [0x0415] = "商", [0x0416] = "啊", [0x0417] = "啡", [0x0418] = "啥", [0x0419] = "啦", [0x041A] = "啪", [0x041B] = "啰", [0x041C] = "啵", [0x041D] = "啸", [0x041E] = "啼", [0x041F] = "啾", [0x0420] = "喀", [0x0421] = "喂", [0x0422] = "喃", [0x0423] = "善", [0x0424] = "喇", [0x0425] = "喉", [0x0426] = "喊", [0x0427] = "喋", [0x0428] = "喔", [0x0429] = "喘", [0x042A] = "喙", [0x042B] = "喜", [0x042C] = "喝", [0x042D] = "喧", [0x042E] = "喵", [0x042F] = "喷", [0x0430] = "喻", [0x0431] = "喽", [0x0432] = "嗄", [0x0433] = "嗅", [0x0434] = "嗒", [0x0435] = "嗜", [0x0436] = "嗝", [0x0437] = "嗡", [0x0438] = "嗨", [0x0439] = "嗬", [0x043A] = "嗯", [0x043B] = "嗷", [0x043C] = "嗽", [0x043D] = "嘈", [0x043E] = "嘉", [0x043F] = "嘎", [0x0440] = "嘛", [0x0441] = "嘟", [0x0442] = "嘣", [0x0443] = "嘭", [0x0444] = "嘲", [0x0445] = "嘴", [0x0446] = "嘶", [0x0447] = "嘻", [0x0448] = "嘿", [0x0449] = "噔", [0x044A] = "噗", [0x044B] = "噜", [0x044C] = "噢", [0x044D] = "器", [0x044E] = "噩", [0x044F] = "噪", [0x0450] = "噬", [0x0451] = "噶", [0x0452] = "噼", [0x0453] = "嚎", [0x0454] = "嚏", [0x0455] = "嚓", [0x0456] = "嚣", [0x0457] = "嚯", [0x0458] = "嚷", [0x0459] = "囊", [0x045A] = "四", [0x045B] = "回", [0x045C] = "因", [0x045D] = "团", [0x045E] = "囧", [0x045F] = "园", [0x0460] = "困", [0x0461] = "围", [0x0462] = "固", [0x0463] = "国", [0x0464] = "图", [0x0465] = "圃", [0x0466] = "圆", [0x0467] = "圈", [0x0468] = "土", [0x0469] = "圣", [0x046A] = "在", [0x046B] = "圭", [0x046C] = "地", [0x046D] = "圳", [0x046E] = "场", [0x046F] = "圾", [0x0470] = "址", [0x0471] = "均", [0x0472] = "坊", [0x0473] = "坎", [0x0474] = "坏", [0x0475] = "坐", [0x0476] = "坑", [0x0477] = "块", [0x0478] = "坚", [0x0479] = "坝", [0x047A] = "坟", [0x047B] = "坠", [0x047C] = "坡", [0x047D] = "坦", [0x047E] = "坪", [0x047F] = "垂", [0x0480] = "垃", [0x0481] = "型", [0x0482] = "垢", [0x0483] = "垫", [0x0484] = "垮", [0x0485] = "埃", [0x0486] = "埋", [0x0487] = "城", [0x0488] = "埔", [0x0489] = "域", [0x048A] = "培", [0x048B] = "基", [0x048C] = "埼", [0x048D] = "堀", [0x048E] = "堂", [0x048F] = "堆", [0x0490] = "堇", [0x0491] = "堡", [0x0492] = "堤", [0x0493] = "堪", [0x0494] = "堵", [0x0495] = "塌", [0x0496] = "塑", [0x0497] = "塔", [0x0498] = "塘", [0x0499] = "塞", [0x049A] = "填", [0x049B] = "境", [0x049C] = "墅", [0x049D] = "墓", [0x049E] = "墙", [0x049F] = "增", [0x04A0] = "墨", [0x04A1] = "墩", [0x04A2] = "壁", [0x04A3] = "壑", [0x04A4] = "壤", [0x04A5] = "士", [0x04A6] = "壮", [0x04A7] = "声", [0x04A8] = "壳", [0x04A9] = "壶", [0x04AA] = "处", [0x04AB] = "备", [0x04AC] = "复", [0x04AD] = "夏", [0x04AE] = "夕", [0x04AF] = "外", [0x04B0] = "多", [0x04B1] = "夜", [0x04B2] = "够", [0x04B3] = "大", [0x04B4] = "天", [0x04B5] = "太", [0x04B6] = "夫", [0x04B7] = "央", [0x04B8] = "失", [0x04B9] = "头", [0x04BA] = "夷", [0x04BB] = "夸", [0x04BC] = "夹", [0x04BD] = "夺", [0x04BE] = "奇", [0x04BF] = "奈", [0x04C0] = "奉", [0x04C1] = "奋", [0x04C2] = "奏", [0x04C3] = "契", [0x04C4] = "奔", [0x04C5] = "奖", [0x04C6] = "套", [0x04C7] = "奥", [0x04C8] = "女", [0x04C9] = "奶", [0x04CA] = "她", [0x04CB] = "好", [0x04CC] = "如", [0x04CD] = "妄", [0x04CE] = "妆", [0x04CF] = "妇", [0x04D0] = "妈", [0x04D1] = "妒", [0x04D2] = "妖", [0x04D3] = "妙", [0x04D4] = "妨", [0x04D5] = "妮", [0x04D6] = "妹", [0x04D7] = "妻", [0x04D8] = "姆", [0x04D9] = "始", [0x04DA] = "姐", [0x04DB] = "姓", [0x04DC] = "委", [0x04DD] = "姜", [0x04DE] = "姨", [0x04DF] = "姬", [0x04E0] = "姿", [0x04E1] = "威", [0x04E2] = "娃", [0x04E3] = "娇", [0x04E4] = "娜", [0x04E5] = "娱", [0x04E6] = "婆", [0x04E7] = "婚", [0x04E8] = "婴", [0x04E9] = "婶", [0x04EA] = "媚", [0x04EB] = "媛", [0x04EC] = "媲", [0x04ED] = "媳", [0x04EE] = "嫉", [0x04EF] = "嫌", [0x04F0] = "嫩", [0x04F1] = "嬉", [0x04F2] = "子", [0x04F3] = "孔", [0x04F4] = "字", [0x04F5] = "存", [0x04F6] = "孙", [0x04F7] = "孜", [0x04F8] = "孝", [0x04F9] = "孟", [0x04FA] = "孢", [0x04FB] = "季", [0x04FC] = "孤", [0x04FD] = "学", [0x04FE] = "孩", [0x04FF] = "孪", [0x0500] = "孵", [0x0501] = "宁", [0x0502] = "它", [0x0503] = "宅", [0x0504] = "宇", [0x0505] = "守", [0x0506] = "安", [0x0507] = "宋", [0x0508] = "完", [0x0509] = "宏", [0x050A] = "宗", [0x050B] = "官", [0x050C] = "宙", [0x050D] = "定", [0x050E] = "宛", [0x050F] = "宜", [0x0510] = "宝", [0x0511] = "实", [0x0512] = "宠", [0x0513] = "审", [0x0514] = "客", [0x0515] = "宣", [0x0516] = "室", [0x0517] = "宫", [0x0518] = "害", [0x0519] = "家", [0x051A] = "容", [0x051B] = "宽", [0x051C] = "宾", [0x051D] = "宿", [0x051E] = "寂", [0x051F] = "寄", [0x0520] = "密", [0x0521] = "寇", [0x0522] = "富", [0x0523] = "寐", [0x0524] = "寒", [0x0525] = "寓", [0x0526] = "寝", [0x0527] = "寞", [0x0528] = "察", [0x0529] = "寡", [0x052A] = "寨", [0x052B] = "寸", [0x052C] = "对", [0x052D] = "寺", [0x052E] = "寻", [0x052F] = "导", [0x0530] = "寿", [0x0531] = "封", [0x0532] = "射", [0x0533] = "将", [0x0534] = "尊", [0x0535] = "小", [0x0536] = "少", [0x0537] = "尔", [0x0538] = "尖", [0x0539] = "尘", [0x053A] = "尚", [0x053B] = "尝", [0x053C] = "尤", [0x053D] = "尬", [0x053E] = "就", [0x053F] = "尴", [0x0540] = "尺", [0x0541] = "尻", [0x0542] = "尼", [0x0543] = "尽", [0x0544] = "尾", [0x0545] = "局", [0x0546] = "屁", [0x0547] = "层", [0x0548] = "居", [0x0549] = "屈", [0x054A] = "屋", [0x054B] = "屎", [0x054C] = "屏", [0x054D] = "展", [0x054E] = "属", [0x054F] = "山", [0x0550] = "屹", [0x0551] = "岁", [0x0552] = "岂", [0x0553] = "岐", [0x0554] = "岔", [0x0555] = "岖", [0x0556] = "岛", [0x0557] = "岡", [0x0558] = "岩", [0x0559] = "岬", [0x055A] = "岭", [0x055B] = "岱", [0x055C] = "岳", [0x055D] = "岸", [0x055E] = "峡", [0x055F] = "峦", [0x0560] = "峭", [0x0561] = "峰", [0x0562] = "峻", [0x0563] = "崇", [0x0564] = "崎", [0x0565] = "崖", [0x0566] = "崩", [0x0567] = "崭", [0x0568] = "崽", [0x0569] = "嵌", [0x056A] = "嵩", [0x056B] = "巍", [0x056C] = "川", [0x056D] = "州", [0x056E] = "巡", [0x056F] = "巢", [0x0570] = "工", [0x0571] = "左", [0x0572] = "巧", [0x0573] = "巨", [0x0574] = "巫", [0x0575] = "差", [0x0576] = "己", [0x0577] = "已", [0x0578] = "巴", [0x0579] = "巾", [0x057A] = "币", [0x057B] = "市", [0x057C] = "布", [0x057D] = "帅", [0x057E] = "帆", [0x057F] = "师", [0x0580] = "希", [0x0581] = "帐", [0x0582] = "帕", [0x0583] = "帛", [0x0584] = "帜", [0x0585] = "帝", [0x0586] = "带", [0x0587] = "帧", [0x0588] = "席", [0x0589] = "帮", [0x058A] = "帷", [0x058B] = "常", [0x058C] = "帽", [0x058D] = "幅", [0x058E] = "幌", [0x058F] = "幕", [0x0590] = "幢", [0x0591] = "干", [0x0592] = "平", [0x0593] = "年", [0x0594] = "并", [0x0595] = "幸", [0x0596] = "幻", [0x0597] = "幼", [0x0598] = "幽", [0x0599] = "广", [0x059A] = "庄", [0x059B] = "庆", [0x059C] = "床", [0x059D] = "序", [0x059E] = "库", [0x059F] = "应", [0x05A0] = "底", [0x05A1] = "店", [0x05A2] = "庙", [0x05A3] = "废", [0x05A4] = "度", [0x05A5] = "座", [0x05A6] = "庭", [0x05A7] = "庵", [0x05A8] = "康", [0x05A9] = "庸", [0x05AA] = "廉", [0x05AB] = "廓", [0x05AC] = "延", [0x05AD] = "廷", [0x05AE] = "建", [0x05AF] = "开", [0x05B0] = "异", [0x05B1] = "弃", [0x05B2] = "弄", [0x05B3] = "式", [0x05B4] = "引", [0x05B5] = "弖", [0x05B6] = "弗", [0x05B7] = "弘", [0x05B8] = "弛", [0x05B9] = "弟", [0x05BA] = "张", [0x05BB] = "弥", [0x05BC] = "弦", [0x05BD] = "弯", [0x05BE] = "弱", [0x05BF] = "弹", [0x05C0] = "强", [0x05C1] = "归", [0x05C2] = "当", [0x05C3] = "录", [0x05C4] = "彗", [0x05C5] = "形", [0x05C6] = "彦", [0x05C7] = "彩", [0x05C8] = "彬", [0x05C9] = "彭", [0x05CA] = "彰", [0x05CB] = "影", [0x05CC] = "彷", [0x05CD] = "役", [0x05CE] = "彻", [0x05CF] = "彼", [0x05D0] = "往", [0x05D1] = "征", [0x05D2] = "径", [0x05D3] = "待", [0x05D4] = "很", [0x05D5] = "徊", [0x05D6] = "律", [0x05D7] = "徒", [0x05D8] = "得", [0x05D9] = "徘", [0x05DA] = "徙", [0x05DB] = "御", [0x05DC] = "徨", [0x05DD] = "循", [0x05DE] = "微", [0x05DF] = "德", [0x05E0] = "徽", [0x05E1] = "心", [0x05E2] = "必", [0x05E3] = "忆", [0x05E4] = "忌", [0x05E5] = "忍", [0x05E6] = "志", [0x05E7] = "忘", [0x05E8] = "忙", [0x05E9] = "忠", [0x05EA] = "快", [0x05EB] = "念", [0x05EC] = "忽", [0x05ED] = "怀", [0x05EE] = "态", [0x05EF] = "怅", [0x05F0] = "怎", [0x05F1] = "怒", [0x05F2] = "怕", [0x05F3] = "怖", [0x05F4] = "怜", [0x05F5] = "思", [0x05F6] = "怠", [0x05F7] = "急", [0x05F8] = "怦", [0x05F9] = "性", [0x05FA] = "怨", [0x05FB] = "怪", [0x05FC] = "怯", [0x05FD] = "总", [0x05FE] = "恋", [0x05FF] = "恐", [0x0600] = "恒", [0x0601] = "恕", [0x0602] = "恙", [0x0603] = "恢", [0x0604] = "恨", [0x0605] = "恩", [0x0606] = "恭", [0x0607] = "息", [0x0608] = "恰", [0x0609] = "恶", [0x060A] = "恼", [0x060B] = "悉", [0x060C] = "悍", [0x060D] = "悔", [0x060E] = "悚", [0x060F] = "悟", [0x0610] = "悠", [0x0611] = "悦", [0x0612] = "您", [0x0613] = "悬", [0x0614] = "悯", [0x0615] = "悲", [0x0616] = "情", [0x0617] = "惆", [0x0618] = "惊", [0x0619] = "惋", [0x061A] = "惑", [0x061B] = "惘", [0x061C] = "惜", [0x061D] = "惠", [0x061E] = "惧", [0x061F] = "惨", [0x0620] = "惩", [0x0621] = "惫", [0x0622] = "惬", [0x0623] = "惭", [0x0624] = "惯", [0x0625] = "惰", [0x0626] = "想", [0x0627] = "惹", [0x0628] = "愁", [0x0629] = "愈", [0x062A] = "愉", [0x062B] = "意", [0x062C] = "愚", [0x062D] = "感", [0x062E] = "愤", [0x062F] = "愧", [0x0630] = "愿", [0x0631] = "慌", [0x0632] = "慎", [0x0633] = "慑", [0x0634] = "慕", [0x0635] = "慢", [0x0636] = "慧", [0x0637] = "慨", [0x0638] = "慰", [0x0639] = "憎", [0x063A] = "憧", [0x063B] = "憨", [0x063C] = "憩", [0x063D] = "憬", [0x063E] = "憾", [0x063F] = "懂", [0x0640] = "懈", [0x0641] = "懒", [0x0642] = "戈", [0x0643] = "戏", [0x0644] = "成", [0x0645] = "我", [0x0646] = "戒", [0x0647] = "或", [0x0648] = "战", [0x0649] = "戚", [0x064A] = "截", [0x064B] = "戴", [0x064C] = "户", [0x064D] = "房", [0x064E] = "所", [0x064F] = "扁", [0x0650] = "扇", [0x0651] = "扉", [0x0652] = "手", [0x0653] = "才", [0x0654] = "扎", [0x0655] = "扑", [0x0656] = "打", [0x0657] = "扔", [0x0658] = "托", [0x0659] = "扣", [0x065A] = "执", [0x065B] = "扩", [0x065C] = "扫", [0x065D] = "扬", [0x065E] = "扭", [0x065F] = "扮", [0x0660] = "扯", [0x0661] = "扰", [0x0662] = "扳", [0x0663] = "批", [0x0664] = "找", [0x0665] = "承", [0x0666] = "技", [0x0667] = "把", [0x0668] = "抑", [0x0669] = "抓", [0x066A] = "投", [0x066B] = "抖", [0x066C] = "抗", [0x066D] = "折", [0x066E] = "抚", [0x066F] = "抛", [0x0670] = "抠", [0x0671] = "抢", [0x0672] = "护", [0x0673] = "报", [0x0674] = "披", [0x0675] = "抬", [0x0676] = "抱", [0x0677] = "抵", [0x0678] = "抹", [0x0679] = "押", [0x067A] = "抽", [0x067B] = "担", [0x067C] = "拉", [0x067D] = "拌", [0x067E] = "拍", [0x067F] = "拐", [0x0680] = "拒", [0x0681] = "拓", [0x0682] = "拔", [0x0683] = "拖", [0x0684] = "拘", [0x0685] = "拙", [0x0686] = "招", [0x0687] = "拜", [0x0688] = "拟", [0x0689] = "拢", [0x068A] = "拥", [0x068B] = "拦", [0x068C] = "拨", [0x068D] = "择", [0x068E] = "括", [0x068F] = "拭", [0x0690] = "拯", [0x0691] = "拳", [0x0692] = "拷", [0x0693] = "拼", [0x0694] = "拾", [0x0695] = "拿", [0x0696] = "持", [0x0697] = "挂", [0x0698] = "指", [0x0699] = "按", [0x069A] = "挑", [0x069B] = "挖", [0x069C] = "挝", [0x069D] = "挠", [0x069E] = "挡", [0x069F] = "挣", [0x06A0] = "挤", [0x06A1] = "挥", [0x06A2] = "挪", [0x06A3] = "挫", [0x06A4] = "振", [0x06A5] = "挺", [0x06A6] = "挽", [0x06A7] = "捆", [0x06A8] = "捉", [0x06A9] = "捏", [0x06AA] = "捕", [0x06AB] = "损", [0x06AC] = "捡", [0x06AD] = "换", [0x06AE] = "捣", [0x06AF] = "捧", [0x06B0] = "据", [0x06B1] = "捷", [0x06B2] = "掀", [0x06B3] = "授", [0x06B4] = "掉", [0x06B5] = "掌", [0x06B6] = "掏", [0x06B7] = "排", [0x06B8] = "掘", [0x06B9] = "掠", [0x06BA] = "探", [0x06BB] = "接", [0x06BC] = "控", [0x06BD] = "推", [0x06BE] = "掩", [0x06BF] = "措", [0x06C0] = "掷", [0x06C1] = "掺", [0x06C2] = "揉", [0x06C3] = "揍", [0x06C4] = "描", [0x06C5] = "提", [0x06C6] = "插", [0x06C7] = "握", [0x06C8] = "揭", [0x06C9] = "援", [0x06CA] = "搁", [0x06CB] = "搅", [0x06CC] = "搏", [0x06CD] = "搐", [0x06CE] = "搔", [0x06CF] = "搜", [0x06D0] = "搞", [0x06D1] = "搬", [0x06D2] = "搭", [0x06D3] = "携", [0x06D4] = "摄", [0x06D5] = "摆", [0x06D6] = "摇", [0x06D7] = "摒", [0x06D8] = "摔", [0x06D9] = "摘", [0x06DA] = "摧", [0x06DB] = "摩", [0x06DC] = "摸", [0x06DD] = "撑", [0x06DE] = "撒", [0x06DF] = "撕", [0x06E0] = "撞", [0x06E1] = "撤", [0x06E2] = "播", [0x06E3] = "撼", [0x06E4] = "擂", [0x06E5] = "擅", [0x06E6] = "操", [0x06E7] = "擎", [0x06E8] = "擞", [0x06E9] = "擦", [0x06EA] = "攀", [0x06EB] = "攒", [0x06EC] = "攘", [0x06ED] = "支", [0x06EE] = "收", [0x06EF] = "改", [0x06F0] = "攻", [0x06F1] = "放", [0x06F2] = "政", [0x06F3] = "故", [0x06F4] = "效", [0x06F5] = "敌", [0x06F6] = "敏", [0x06F7] = "救", [0x06F8] = "教", [0x06F9] = "敞", [0x06FA] = "敢", [0x06FB] = "散", [0x06FC] = "敦", [0x06FD] = "敬", [0x06FE] = "数", [0x06FF] = "敲", [0x0700] = "整", [0x0701] = "敷", [0x0702] = "文", [0x0703] = "斋", [0x0704] = "娄", [0x0705] = "斑", [0x0706] = "斗", [0x0707] = "料", [0x0708] = "斜", [0x0709] = "斤", [0x070A] = "斩", [0x070B] = "断", [0x070C] = "斯", [0x070D] = "新", [0x070E] = "方", [0x070F] = "施", [0x0710] = "旁", [0x0711] = "旅", [0x0712] = "旋", [0x0713] = "族", [0x0714] = "旗", [0x0715] = "无", [0x0716] = "既", [0x0717] = "日", [0x0718] = "旦", [0x0719] = "旧", [0x071A] = "旨", [0x071B] = "早", [0x071C] = "时", [0x071D] = "旺", [0x071E] = "昂", [0x071F] = "昆", [0x0720] = "昌", [0x0721] = "明", [0x0722] = "昏", [0x0723] = "易", [0x0724] = "星", [0x0725] = "映", [0x0726] = "春", [0x0727] = "昧", [0x0728] = "昨", [0x0729] = "昭", [0x072A] = "是", [0x072B] = "昵", [0x072C] = "显", [0x072D] = "晃", [0x072E] = "晋", [0x072F] = "晒", [0x0730] = "晓", [0x0731] = "晕", [0x0732] = "晚", [0x0733] = "晨", [0x0734] = "普", [0x0735] = "景", [0x0736] = "晰", [0x0737] = "晴", [0x0738] = "晶", [0x0739] = "智", [0x073A] = "晾", [0x073B] = "暂", [0x073C] = "暇", [0x073D] = "暑", [0x073E] = "暖", [0x073F] = "暗", [0x0740] = "暧", [0x0741] = "暮", [0x0742] = "暴", [0x0743] = "曲", [0x0744] = "曳", [0x0745] = "更", [0x0746] = "曼", [0x0747] = "曾", [0x0748] = "替", [0x0749] = "最", [0x074A] = "月", [0x074B] = "有", [0x074C] = "朋", [0x074D] = "服", [0x074E] = "朗", [0x074F] = "望", [0x0750] = "朝", [0x0751] = "期", [0x0752] = "木", [0x0753] = "未", [0x0754] = "末", [0x0755] = "本", [0x0756] = "札", [0x0757] = "术", [0x0758] = "朱", [0x0759] = "朴", [0x075A] = "朵", [0x075B] = "机", [0x075C] = "朽", [0x075D] = "杀", [0x075E] = "杂", [0x075F] = "权", [0x0760] = "杆", [0x0761] = "杉", [0x0762] = "李", [0x0763] = "材", [0x0764] = "村", [0x0765] = "杜", [0x0766] = "束", [0x0767] = "条", [0x0768] = "来", [0x0769] = "杯", [0x076A] = "杰", [0x076B] = "杵", [0x076C] = "杷", [0x076D] = "松", [0x076E] = "板", [0x076F] = "极", [0x0770] = "构", [0x0771] = "枇", [0x0772] = "枉", [0x0773] = "析", [0x0774] = "枕", [0x0775] = "林", [0x0776] = "枚", [0x0777] = "果", [0x0778] = "枝", [0x0779] = "枪", [0x077A] = "枫", [0x077B] = "枯", [0x077C] = "架", [0x077D] = "枸", [0x077E] = "柏", [0x077F] = "某", [0x0780] = "柑", [0x0781] = "染", [0x0782] = "柔", [0x0783] = "柜", [0x0784] = "查", [0x0785] = "柬", [0x0786] = "柯", [0x0787] = "柱", [0x0788] = "柳", [0x0789] = "柴", [0x078A] = "栃", [0x078B] = "栅", [0x078C] = "标", [0x078D] = "栈", [0x078E] = "栋", [0x078F] = "栏", [0x0790] = "树", [0x0791] = "栖", [0x0792] = "栗", [0x0793] = "校", [0x0794] = "样", [0x0795] = "核", [0x0796] = "根", [0x0797] = "格", [0x0798] = "栽", [0x0799] = "桂", [0x079A] = "桃", [0x079B] = "框", [0x079C] = "案", [0x079D] = "桌", [0x079E] = "桐", [0x079F] = "桑", [0x07A0] = "桔", [0x07A1] = "档", [0x07A2] = "桥", [0x07A3] = "桨", [0x07A4] = "桶", [0x07A5] = "梁", [0x07A6] = "梅", [0x07A7] = "梗", [0x07A8] = "梦", [0x07A9] = "梧", [0x07AA] = "梨", [0x07AB] = "梭", [0x07AC] = "梯", [0x07AD] = "械", [0x07AE] = "梳", [0x07AF] = "梵", [0x07B0] = "检", [0x07B1] = "棉", [0x07B2] = "棋", [0x07B3] = "棍", [0x07B4] = "棒", [0x07B5] = "棕", [0x07B6] = "棘", [0x07B7] = "森", [0x07B8] = "棱", [0x07B9] = "棵", [0x07BA] = "椅", [0x07BB] = "椋", [0x07BC] = "植", [0x07BD] = "椎", [0x07BE] = "椰", [0x07BF] = "椿", [0x07C0] = "楚", [0x07C1] = "楠", [0x07C2] = "楢", [0x07C3] = "楼", [0x07C4] = "概", [0x07C5] = "榜", [0x07C6] = "榨", [0x07C7] = "槌", [0x07C8] = "槙", [0x07C9] = "槟", [0x07CA] = "槽", [0x07CB] = "模", [0x07CC] = "横", [0x07CD] = "樱", [0x07CE] = "樽", [0x07CF] = "橘", [0x07D0] = "橙", [0x07D1] = "橡", [0x07D2] = "檐", [0x07D3] = "欠", [0x07D4] = "次", [0x07D5] = "欢", [0x07D6] = "欣", [0x07D7] = "欧", [0x07D8] = "欲", [0x07D9] = "欺", [0x07DA] = "款", [0x07DB] = "歇", [0x07DC] = "歉", [0x07DD] = "歌", [0x07DE] = "止", [0x07DF] = "正", [0x07E0] = "此", [0x07E1] = "步", [0x07E2] = "武", [0x07E3] = "歪", [0x07E4] = "歹", [0x07E5] = "死", [0x07E6] = "殆", [0x07E7] = "殊", [0x07E8] = "残", [0x07E9] = "殖", [0x07EA] = "段", [0x07EB] = "殿", [0x07EC] = "毁", [0x07ED] = "毅", [0x07EE] = "母", [0x07EF] = "每", [0x07F0] = "毒", [0x07F1] = "比", [0x07F2] = "毕", [0x07F3] = "毛", [0x07F4] = "毫", [0x07F5] = "毯", [0x07F6] = "毽", [0x07F7] = "氏", [0x07F8] = "民", [0x07F9] = "氓", [0x07FA] = "气", [0x07FB] = "気", [0x07FC] = "氛", [0x07FD] = "氧", [0x07FE] = "水", [0x07FF] = "永", [0x0800] = "汁", [0x0801] = "求", [0x0802] = "汇", [0x0803] = "汉", [0x0804] = "汐", [0x0805] = "汗", [0x0806] = "江", [0x0807] = "池", [0x0808] = "污", [0x0809] = "汤", [0x080A] = "汪", [0x080B] = "汰", [0x080C] = "汶", [0x080D] = "汹", [0x080E] = "汽", [0x080F] = "沃", [0x0810] = "沉", [0x0811] = "沌", [0x0812] = "沐", [0x0813] = "沙", [0x0814] = "沛", [0x0815] = "沟", [0x0816] = "没", [0x0817] = "沥", [0x0818] = "沫", [0x0819] = "沮", [0x081A] = "河", [0x081B] = "沸", [0x081C] = "油", [0x081D] = "治", [0x081E] = "沼", [0x081F] = "沾", [0x0820] = "沿", [0x0821] = "泄", [0x0822] = "泉", [0x0823] = "泊", [0x0824] = "泌", [0x0825] = "法", [0x0826] = "泛", [0x0827] = "泡", [0x0828] = "波", [0x0829] = "泣", [0x082A] = "泥", [0x082B] = "注", [0x082C] = "泪", [0x082D] = "泰", [0x082E] = "泳", [0x082F] = "泵", [0x0830] = "泷", [0x0831] = "泼", [0x0832] = "泽", [0x0833] = "洁", [0x0834] = "洋", [0x0835] = "洒", [0x0836] = "洗", [0x0837] = "洛", [0x0838] = "洞", [0x0839] = "津", [0x083A] = "洪", [0x083B] = "活", [0x083C] = "洼", [0x083D] = "洽", [0x083E] = "派", [0x083F] = "流", [0x0840] = "浅", [0x0841] = "浆", [0x0842] = "浇", [0x0843] = "浊", [0x0844] = "测", [0x0845] = "济", [0x0846] = "浏", [0x0847] = "浑", [0x0848] = "浓", [0x0849] = "浙", [0x084A] = "浜", [0x084B] = "浦", [0x084C] = "浩", [0x084D] = "浪", [0x084E] = "浮", [0x084F] = "浴", [0x0850] = "海", [0x0851] = "浸", [0x0852] = "涂", [0x0853] = "涅", [0x0854] = "消", [0x0855] = "涉", [0x0856] = "涌", [0x0857] = "涕", [0x0858] = "涛", [0x0859] = "涡", [0x085A] = "润", [0x085B] = "涨", [0x085C] = "涩", [0x085D] = "液", [0x085E] = "涵", [0x085F] = "涸", [0x0860] = "淀", [0x0861] = "淇", [0x0862] = "淋", [0x0863] = "淌", [0x0864] = "淘", [0x0865] = "淡", [0x0866] = "淤", [0x0867] = "淿", [0x0868] = "淳", [0x0869] = "混", [0x086A] = "淹", [0x086B] = "添", [0x086C] = "清", [0x086D] = "渊", [0x086E] = "渍", [0x086F] = "渐", [0x0870] = "渔", [0x0871] = "渗", [0x0872] = "渠", [0x0873] = "渡", [0x0874] = "温", [0x0875] = "港", [0x0876] = "渴", [0x0877] = "游", [0x0878] = "湖", [0x0879] = "湛", [0x087A] = "湾", [0x087B] = "湿", [0x087C] = "溃", [0x087D] = "溅", [0x087E] = "源", [0x087F] = "溜", [0x0880] = "溢", [0x0881] = "溪", [0x0882] = "溯", [0x0883] = "溶", [0x0884] = "溺", [0x0885] = "滋", [0x0886] = "滑", [0x0887] = "滕", [0x0888] = "滚", [0x0889] = "滞", [0x088A] = "满", [0x088B] = "滤", [0x088C] = "滥", [0x088D] = "滨", [0x088E] = "滩", [0x088F] = "滴", [0x0890] = "漂", [0x0891] = "漆", [0x0892] = "漉", [0x0893] = "漏", [0x0894] = "漓", [0x0895] = "演", [0x0896] = "漠", [0x0897] = "漩", [0x0898] = "漫", [0x0899] = "潇", [0x089A] = "潘", [0x089B] = "潜", [0x089C] = "潟", [0x089D] = "潦", [0x089E] = "潭", [0x089F] = "潮", [0x08A0] = "澄", [0x08A1] = "澈", [0x08A2] = "澡", [0x08A3] = "澳", [0x08A4] = "激", [0x08A5] = "漱", [0x08A6] = "濒", [0x08A7] = "瀑", [0x08A8] = "灌", [0x08A9] = "火", [0x08AA] = "灭", [0x08AB] = "灯", [0x08AC] = "灰", [0x08AD] = "灵", [0x08AE] = "灶", [0x08AF] = "灼", [0x08B0] = "灾", [0x08B1] = "灿", [0x08B2] = "炉", [0x08B3] = "炎", [0x08B4] = "炒", [0x08B5] = "炙", [0x08B6] = "炫", [0x08B7] = "炭", [0x08B8] = "炮", [0x08B9] = "炸", [0x08BA] = "点", [0x08BB] = "炼", [0x08BC] = "炽", [0x08BD] = "烁", [0x08BE] = "烂", [0x08BF] = "烈", [0x08C0] = "烛", [0x08C1] = "烟", [0x08C2] = "烤", [0x08C3] = "烦", [0x08C4] = "烧", [0x08C5] = "烫", [0x08C6] = "热", [0x08C7] = "烹", [0x08C8] = "烽", [0x08C9] = "焚", [0x08CA] = "焦", [0x08CB] = "焰", [0x08CC] = "然", [0x08CD] = "煎", [0x08CE] = "煞", [0x08CF] = "煤", [0x08D0] = "煦", [0x08D1] = "照", [0x08D2] = "煮", [0x08D3] = "煽", [0x08D4] = "熄", [0x08D5] = "熊", [0x08D6] = "熔", [0x08D7] = "熙", [0x08D8] = "熟", [0x08D9] = "熬", [0x08DA] = "燃", [0x08DB] = "燕", [0x08DC] = "燥", [0x08DD] = "爆", [0x08DE] = "爪", [0x08DF] = "爬", [0x08E0] = "爱", [0x08E1] = "爵", [0x08E2] = "父", [0x08E3] = "爷", [0x08E4] = "爸", [0x08E5] = "爹", [0x08E6] = "爽", [0x08E7] = "片", [0x08E8] = "版", [0x08E9] = "牌", [0x08EA] = "牙", [0x08EB] = "牛", [0x08EC] = "牝", [0x08ED] = "牡", [0x08EE] = "牢", [0x08EF] = "牧", [0x08F0] = "物", [0x08F1] = "牲", [0x08F2] = "牵", [0x08F3] = "特", [0x08F4] = "牺", [0x08F5] = "犀", [0x08F6] = "犬", [0x08F7] = "犯", [0x08F8] = "状", [0x08F9] = "犸", [0x08FA] = "犹", [0x08FB] = "狂", [0x08FC] = "狃", [0x08FD] = "狄", [0x08FE] = "狈", [0x08FF] = "狐", [0x0900] = "狗", [0x0901] = "狙", [0x0902] = "狠", [0x0903] = "狡", [0x0904] = "狩", [0x0905] = "独", [0x0906] = "狭", [0x0907] = "狮", [0x0908] = "狱", [0x0909] = "狸", [0x090A] = "狼", [0x090B] = "猎", [0x090C] = "猛", [0x090D] = "猜", [0x090E] = "猥", [0x090F] = "猪", [0x0910] = "猫", [0x0911] = "猬", [0x0912] = "献", [0x0913] = "猴", [0x0914] = "猾", [0x0915] = "猿", [0x0916] = "獠", [0x0917] = "率", [0x0918] = "玉", [0x0919] = "王", [0x091A] = "玖", [0x091B] = "玛", [0x091C] = "玩", [0x091D] = "玫", [0x091E] = "环", [0x091F] = "现", [0x0920] = "玲", [0x0921] = "玺", [0x0922] = "玻", [0x0923] = "珀", [0x0924] = "珈", [0x0925] = "珊", [0x0926] = "珍", [0x0927] = "珑", [0x0928] = "珠", [0x0929] = "班", [0x092A] = "球", [0x092B] = "琅", [0x092C] = "理", [0x092D] = "琉", [0x092E] = "琢", [0x092F] = "琥", [0x0930] = "琳", [0x0931] = "琴", [0x0932] = "瑙", [0x0933] = "瑚", [0x0934] = "瑜", [0x0935] = "瑞", [0x0936] = "瑟", [0x0937] = "瑰", [0x0938] = "璀", [0x0939] = "璃", [0x093A] = "璨", [0x093B] = "瓜", [0x093C] = "瓢", [0x093D] = "瓣", [0x093E] = "瓦", [0x093F] = "瓶", [0x0940] = "甘", [0x0941] = "甚", [0x0942] = "甜", [0x0943] = "生", [0x0944] = "用", [0x0945] = "甩", [0x0946] = "田", [0x0947] = "由", [0x0948] = "甲", [0x0949] = "申", [0x094A] = "电", [0x094B] = "男", [0x094C] = "甸", [0x094D] = "画", [0x094E] = "畅", [0x094F] = "界", [0x0950] = "畏", [0x0951] = "畔", [0x0952] = "留", [0x0953] = "畜", [0x0954] = "略", [0x0955] = "番", [0x0956] = "疆", [0x0957] = "疏", [0x0958] = "疑", [0x0959] = "疗", [0x095A] = "疚", [0x095B] = "疫", [0x095C] = "疯", [0x095D] = "疲", [0x095E] = "疼", [0x095F] = "病", [0x0960] = "症", [0x0961] = "痊", [0x0962] = "痒", [0x0963] = "痕", [0x0964] = "痛", [0x0965] = "痴", [0x0966] = "痹", [0x0967] = "瘙", [0x0968] = "瘦", [0x0969] = "瘫", [0x096A] = "癖", [0x096B] = "登", [0x096C] = "白", [0x096D] = "百", [0x096E] = "皂", [0x096F] = "的", [0x0970] = "皆", [0x0971] = "皇", [0x0972] = "皐", [0x0973] = "皮", [0x0974] = "皱", [0x0975] = "盆", [0x0976] = "盈", [0x0977] = "益", [0x0978] = "盐", [0x0979] = "监", [0x097A] = "盒", [0x097B] = "盔", [0x097C] = "盖", [0x097D] = "盗", [0x097E] = "盘", [0x097F] = "盛", [0x0980] = "盟", [0x0981] = "目", [0x0982] = "盯", [0x0983] = "直", [0x0984] = "相", [0x0985] = "盹", [0x0986] = "盼", [0x0987] = "盾", [0x0988] = "省", [0x0989] = "眉", [0x098A] = "看", [0x098B] = "真", [0x098C] = "眠", [0x098D] = "眨", [0x098E] = "眩", [0x098F] = "眶", [0x0990] = "眷", [0x0991] = "眺", [0x0992] = "眼", [0x0993] = "着", [0x0994] = "睁", [0x0995] = "睛", [0x0996] = "睡", [0x0997] = "督", [0x0998] = "睦", [0x0999] = "睫", [0x099A] = "瞄", [0x099B] = "瞅", [0x099C] = "瞌", [0x099D] = "瞒", [0x099E] = "瞧", [0x099F] = "瞩", [0x09A0] = "瞪", [0x09A1] = "瞬", [0x09A2] = "瞭", [0x09A3] = "瞳", [0x09A4] = "矗", [0x09A5] = "矛", [0x09A6] = "矢", [0x09A7] = "知", [0x09A8] = "矫", [0x09A9] = "短", [0x09AA] = "矮", [0x09AB] = "石", [0x09AC] = "矿", [0x09AD] = "码", [0x09AE] = "砂", [0x09AF] = "砍", [0x09B0] = "研", [0x09B1] = "砖", [0x09B2] = "砰", [0x09B3] = "破", [0x09B4] = "砸", [0x09B5] = "砾", [0x09B6] = "础", [0x09B7] = "硫", [0x09B8] = "硬", [0x09B9] = "确", [0x09BA] = "碌", [0x09BB] = "碍", [0x09BC] = "碎", [0x09BD] = "碑", [0x09BE] = "碗", [0x09BF] = "碟", [0x09C0] = "碧", [0x09C1] = "碰", [0x09C2] = "碳", [0x09C3] = "磁", [0x09C4] = "磐", [0x09C5] = "磕", [0x09C6] = "磨", [0x09C7] = "磺", [0x09C8] = "示", [0x09C9] = "礼", [0x09CA] = "社", [0x09CB] = "祈", [0x09CC] = "祖", [0x09CD] = "祝", [0x09CE] = "神", [0x09CF] = "祥", [0x09D0] = "票", [0x09D1] = "祭", [0x09D2] = "祷", [0x09D3] = "祸", [0x09D4] = "禁", [0x09D5] = "福", [0x09D6] = "离", [0x09D7] = "禽", [0x09D8] = "秀", [0x09D9] = "私", [0x09DA] = "秃", [0x09DB] = "秋", [0x09DC] = "种", [0x09DD] = "科", [0x09DE] = "秒", [0x09DF] = "秘", [0x09E0] = "租", [0x09E1] = "积", [0x09E2] = "称", [0x09E3] = "移", [0x09E4] = "稀", [0x09E5] = "程", [0x09E6] = "稍", [0x09E7] = "税", [0x09E8] = "稚", [0x09E9] = "稳", [0x09EA] = "稻", [0x09EB] = "稿", [0x09EC] = "穆", [0x09ED] = "穗", [0x09EE] = "穴", [0x09EF] = "究", [0x09F0] = "穷", [0x09F1] = "空", [0x09F2] = "穿", [0x09F3] = "突", [0x09F4] = "窃", [0x09F5] = "窄", [0x09F6] = "窍", [0x09F7] = "窒", [0x09F8] = "窗", [0x09F9] = "窝", [0x09FA] = "窟", [0x09FB] = "窥", [0x09FC] = "立", [0x09FD] = "竖", [0x09FE] = "站", [0x09FF] = "竜", [0x0A00] = "竞", [0x0A01] = "竟", [0x0A02] = "章", [0x0A03] = "童", [0x0A04] = "竭", [0x0A05] = "端", [0x0A06] = "竹", [0x0A07] = "竿", [0x0A08] = "笑", [0x0A09] = "笔", [0x0A0A] = "笛", [0x0A0B] = "笠", [0x0A0C] = "符", [0x0A0D] = "笨", [0x0A0E] = "第", [0x0A0F] = "笼", [0x0A10] = "等", [0x0A11] = "筋", [0x0A12] = "筑", [0x0A13] = "筒", [0x0A14] = "答", [0x0A15] = "策", [0x0A16] = "筝", [0x0A17] = "筹", [0x0A18] = "签", [0x0A19] = "简", [0x0A1A] = "算", [0x0A1B] = "管", [0x0A1C] = "箭", [0x0A1D] = "箱", [0x0A1E] = "篇", [0x0A1F] = "篮", [0x0A20] = "篷", [0x0A21] = "簧", [0x0A22] = "籍", [0x0A23] = "米", [0x0A24] = "类", [0x0A25] = "粉", [0x0A26] = "粒", [0x0A27] = "粗", [0x0A28] = "粘", [0x0A29] = "粪", [0x0A2A] = "粹", [0x0A2B] = "精", [0x0A2C] = "糊", [0x0A2D] = "糕", [0x0A2E] = "糖", [0x0A2F] = "糟", [0x0A30] = "系", [0x0A31] = "素", [0x0A32] = "索", [0x0A33] = "紧", [0x0A34] = "紫", [0x0A35] = "累", [0x0A36] = "繁", [0x0A37] = "红", [0x0A38] = "纤", [0x0A39] = "约", [0x0A3A] = "级", [0x0A3B] = "纪", [0x0A3C] = "纫", [0x0A3D] = "纯", [0x0A3E] = "纱", [0x0A3F] = "纳", [0x0A40] = "纵", [0x0A41] = "纶", [0x0A42] = "纷", [0x0A43] = "纸", [0x0A44] = "纹", [0x0A45] = "纽", [0x0A46] = "线", [0x0A47] = "练", [0x0A48] = "组", [0x0A49] = "绅", [0x0A4A] = "细", [0x0A4B] = "织", [0x0A4C] = "终", [0x0A4D] = "绊", [0x0A4E] = "绍", [0x0A4F] = "绎", [0x0A50] = "经", [0x0A51] = "绑", [0x0A52] = "绒", [0x0A53] = "结", [0x0A54] = "绕", [0x0A55] = "绘", [0x0A56] = "给", [0x0A57] = "络", [0x0A58] = "绝", [0x0A59] = "绞", [0x0A5A] = "统", [0x0A5B] = "绣", [0x0A5C] = "继", [0x0A5D] = "绩", [0x0A5E] = "绪", [0x0A5F] = "绫", [0x0A60] = "续", [0x0A61] = "绮", [0x0A62] = "绰", [0x0A63] = "绳", [0x0A64] = "维", [0x0A65] = "绵", [0x0A66] = "绷", [0x0A67] = "绻", [0x0A68] = "综", [0x0A69] = "绽", [0x0A6A] = "绿", [0x0A6B] = "缅", [0x0A6C] = "缎", [0x0A6D] = "缓", [0x0A6E] = "编", [0x0A6F] = "缘", [0x0A70] = "缚", [0x0A71] = "缝", [0x0A72] = "缠", [0x0A73] = "缤", [0x0A74] = "缩", [0x0A75] = "缪", [0x0A76] = "缺", [0x0A77] = "罐", [0x0A78] = "网", [0x0A79] = "罕", [0x0A7A] = "罗", [0x0A7B] = "罚", [0x0A7C] = "罢", [0x0A7D] = "罩", [0x0A7E] = "罪", [0x0A7F] = "置", [0x0A80] = "羁", [0x0A81] = "羊", [0x0A82] = "美", [0x0A83] = "羞", [0x0A84] = "羡", [0x0A85] = "群", [0x0A86] = "羹", [0x0A87] = "羽", [0x0A88] = "翁", [0x0A89] = "翅", [0x0A8A] = "翔", [0x0A8B] = "翘", [0x0A8C] = "翠", [0x0A8D] = "翩", [0x0A8E] = "翰", [0x0A8F] = "翱", [0x0A90] = "翻", [0x0A91] = "翼", [0x0A92] = "耀", [0x0A93] = "老", [0x0A94] = "考", [0x0A95] = "者", [0x0A96] = "而", [0x0A97] = "耍", [0x0A98] = "耐", [0x0A99] = "耗", [0x0A9A] = "耳", [0x0A9B] = "耶", [0x0A9C] = "耸", [0x0A9D] = "耻", [0x0A9E] = "耽", [0x0A9F] = "耿", [0x0AA0] = "聂", [0x0AA1] = "聊", [0x0AA2] = "职", [0x0AA3] = "联", [0x0AA4] = "聚", [0x0AA5] = "聪", [0x0AA6] = "肃", [0x0AA7] = "肆", [0x0AA8] = "肉", [0x0AA9] = "肌", [0x0AAA] = "肖", [0x0AAB] = "肘", [0x0AAC] = "肚", [0x0AAD] = "肠", [0x0AAE] = "股", [0x0AAF] = "肢", [0x0AB0] = "肤", [0x0AB1] = "肥", [0x0AB2] = "肩", [0x0AB3] = "肪", [0x0AB4] = "肮", [0x0AB5] = "肯", [0x0AB6] = "育", [0x0AB7] = "肿", [0x0AB8] = "胀", [0x0AB9] = "胃", [0x0ABA] = "胆", [0x0ABB] = "背", [0x0ABC] = "胎", [0x0ABD] = "胖", [0x0ABE] = "胜", [0x0ABF] = "胞", [0x0AC0] = "胡", [0x0AC1] = "胤", [0x0AC2] = "胳", [0x0AC3] = "胶", [0x0AC4] = "胸", [0x0AC5] = "能", [0x0AC6] = "脂", [0x0AC7] = "脆", [0x0AC8] = "脉", [0x0AC9] = "脏", [0x0ACA] = "脑", [0x0ACB] = "脖", [0x0ACC] = "脚", [0x0ACD] = "脱", [0x0ACE] = "脸", [0x0ACF] = "脾", [0x0AD0] = "腊", [0x0AD1] = "腌", [0x0AD2] = "腕", [0x0AD3] = "腮", [0x0AD4] = "腰", [0x0AD5] = "腹", [0x0AD6] = "腻", [0x0AD7] = "腾", [0x0AD8] = "腿", [0x0AD9] = "膀", [0x0ADA] = "膊", [0x0ADB] = "膏", [0x0ADC] = "膘", [0x0ADD] = "膜", [0x0ADE] = "膝", [0x0ADF] = "膨", [0x0AE0] = "膳", [0x0AE1] = "臂", [0x0AE2] = "臃", [0x0AE3] = "臣", [0x0AE4] = "自", [0x0AE5] = "臭", [0x0AE6] = "至", [0x0AE7] = "致", [0x0AE8] = "臼", [0x0AE9] = "舌", [0x0AEA] = "舍", [0x0AEB] = "舒", [0x0AEC] = "舔", [0x0AED] = "舞", [0x0AEE] = "舟", [0x0AEF] = "航", [0x0AF0] = "般", [0x0AF1] = "舵", [0x0AF2] = "船", [0x0AF3] = "艇", [0x0AF4] = "艘", [0x0AF5] = "艮", [0x0AF6] = "良", [0x0AF7] = "艰", [0x0AF8] = "色", [0x0AF9] = "艳", [0x0AFA] = "艺", [0x0AFB] = "艾", [0x0AFC] = "节", [0x0AFD] = "芋", [0x0AFE] = "芒", [0x0AFF] = "芙", [0x0B00] = "芜", [0x0B01] = "芝", [0x0B02] = "芥", [0x0B03] = "芦", [0x0B04] = "芬", [0x0B05] = "芭", [0x0B06] = "花", [0x0B07] = "芳", [0x0B08] = "芹", [0x0B09] = "芽", [0x0B0A] = "苏", [0x0B0B] = "苔", [0x0B0C] = "苗", [0x0B0D] = "苛", [0x0B0E] = "苞", [0x0B0F] = "若", [0x0B10] = "苦", [0x0B11] = "英", [0x0B12] = "茁", [0x0B13] = "茂", [0x0B14] = "范", [0x0B15] = "茄", [0x0B16] = "茜", [0x0B17] = "茧", [0x0B18] = "茨", [0x0B19] = "茬", [0x0B1A] = "茵", [0x0B1B] = "茶", [0x0B1C] = "茸", [0x0B1D] = "荆", [0x0B1E] = "草", [0x0B1F] = "荐", [0x0B20] = "荒", [0x0B21] = "荠", [0x0B22] = "荡", [0x0B23] = "荣", [0x0B24] = "荧", [0x0B25] = "药", [0x0B26] = "荷", [0x0B27] = "莉", [0x0B28] = "莎", [0x0B29] = "莫", [0x0B2A] = "莱", [0x0B2B] = "莲", [0x0B2C] = "获", [0x0B2D] = "莹", [0x0B2E] = "莽", [0x0B2F] = "菇", [0x0B30] = "菊", [0x0B31] = "菌", [0x0B32] = "菘", [0x0B33] = "菜", [0x0B34] = "菱", [0x0B35] = "菲", [0x0B36] = "苹", [0x0B37] = "萄", [0x0B38] = "萌", [0x0B39] = "萍", [0x0B3A] = "萎", [0x0B3B] = "萤", [0x0B3C] = "营", [0x0B3D] = "萨", [0x0B3E] = "落", [0x0B3F] = "著", [0x0B40] = "葛", [0x0B41] = "葡", [0x0B42] = "葫", [0x0B43] = "葱", [0x0B44] = "葵", [0x0B45] = "蒂", [0x0B46] = "蒙", [0x0B47] = "蒸", [0x0B48] = "蓄", [0x0B49] = "蓑", [0x0B4A] = "蓝", [0x0B4B] = "蓬", [0x0B4C] = "蔓", [0x0B4D] = "蔚", [0x0B4E] = "蔽", [0x0B4F] = "蕉", [0x0B50] = "蕊", [0x0B51] = "蕴", [0x0B52] = "蕾", [0x0B53] = "薄", [0x0B54] = "薯", [0x0B55] = "藉", [0x0B56] = "藏", [0x0B57] = "藤", [0x0B58] = "蘑", [0x0B59] = "虎", [0x0B5A] = "虑", [0x0B5B] = "虚", [0x0B5C] = "虫", [0x0B5D] = "虹", [0x0B5E] = "虽", [0x0B5F] = "虾", [0x0B60] = "蚁", [0x0B61] = "蚊", [0x0B62] = "蚪", [0x0B63] = "蛀", [0x0B64] = "蛇", [0x0B65] = "蛋", [0x0B66] = "蛙", [0x0B67] = "蛛", [0x0B68] = "蛮", [0x0B69] = "蛹", [0x0B6A] = "蛾", [0x0B6B] = "蜂", [0x0B6C] = "蜍", [0x0B6D] = "蜒", [0x0B6E] = "蜓", [0x0B6F] = "蜕", [0x0B70] = "蜗", [0x0B71] = "蜘", [0x0B72] = "蜜", [0x0B73] = "蜡", [0x0B74] = "蜥", [0x0B75] = "蜴", [0x0B76] = "蜷", [0x0B77] = "蜻", [0x0B78] = "婉", [0x0B79] = "蝇", [0x0B7A] = "蝉", [0x0B7B] = "蝌", [0x0B7C] = "蝎", [0x0B7D] = "蝙", [0x0B7E] = "蝠", [0x0B7F] = "蝴", [0x0B80] = "蝶", [0x0B81] = "螂", [0x0B82] = "螃", [0x0B83] = "融", [0x0B84] = "螯", [0x0B85] = "螳", [0x0B86] = "螺", [0x0B87] = "蟀", [0x0B88] = "蟋", [0x0B89] = "蟹", [0x0B8A] = "蟾", [0x0B8B] = "蠕", [0x0B8C] = "蠢", [0x0B8D] = "血", [0x0B8E] = "衅", [0x0B8F] = "行", [0x0B90] = "衍", [0x0B91] = "街", [0x0B92] = "衡", [0x0B93] = "衣", [0x0B94] = "补", [0x0B95] = "表", [0x0B96] = "衫", [0x0B97] = "衰", [0x0B98] = "衷", [0x0B99] = "袋", [0x0B9A] = "袖", [0x0B9B] = "袤", [0x0B9C] = "被", [0x0B9D] = "袭", [0x0B9E] = "裁", [0x0B9F] = "裂", [0x0BA0] = "装", [0x0BA1] = "裕", [0x0BA2] = "裙", [0x0BA3] = "裤", [0x0BA4] = "裸", [0x0BA5] = "裹", [0x0BA6] = "褶", [0x0BA7] = "西", [0x0BA8] = "要", [0x0BA9] = "覆", [0x0BAA] = "见", [0x0BAB] = "观", [0x0BAC] = "规", [0x0BAD] = "觅", [0x0BAE] = "视", [0x0BAF] = "览", [0x0BB0] = "觉", [0x0BB1] = "角", [0x0BB2] = "解", [0x0BB3] = "触", [0x0BB4] = "言", [0x0BB5] = "警", [0x0BB6] = "计", [0x0BB7] = "订", [0x0BB8] = "认", [0x0BB9] = "讨", [0x0BBA] = "让", [0x0BBB] = "讪", [0x0BBC] = "训", [0x0BBD] = "议", [0x0BBE] = "讯", [0x0BBF] = "记", [0x0BC0] = "讲", [0x0BC1] = "讶", [0x0BC2] = "讷", [0x0BC3] = "许", [0x0BC4] = "论", [0x0BC5] = "设", [0x0BC6] = "访", [0x0BC7] = "诀", [0x0BC8] = "证", [0x0BC9] = "评", [0x0BCA] = "诅", [0x0BCB] = "识", [0x0BCC] = "诈", [0x0BCD] = "诉", [0x0BCE] = "诊", [0x0BCF] = "词", [0x0BD0] = "译", [0x0BD1] = "试", [0x0BD2] = "诗", [0x0BD3] = "诘", [0x0BD4] = "诙", [0x0BD5] = "诚", [0x0BD6] = "话", [0x0BD7] = "诞", [0x0BD8] = "诡", [0x0BD9] = "询", [0x0BDA] = "该", [0x0BDB] = "详", [0x0BDC] = "语", [0x0BDD] = "误", [0x0BDE] = "诱", [0x0BDF] = "诲", [0x0BE0] = "说", [0x0BE1] = "诵", [0x0BE2] = "诶", [0x0BE3] = "请", [0x0BE4] = "诸", [0x0BE5] = "诺", [0x0BE6] = "读", [0x0BE7] = "课", [0x0BE8] = "谁", [0x0BE9] = "调", [0x0BEA] = "谅", [0x0BEB] = "谈", [0x0BEC] = "谊", [0x0BED] = "谋", [0x0BEE] = "谎", [0x0BEF] = "谐", [0x0BF0] = "谓", [0x0BF1] = "谛", [0x0BF2] = "谜", [0x0BF3] = "谟", [0x0BF4] = "谢", [0x0BF5] = "谦", [0x0BF6] = "谨", [0x0BF7] = "谱", [0x0BF8] = "谷", [0x0BF9] = "豆", [0x0BFA] = "豚", [0x0BFB] = "象", [0x0BFC] = "豪", [0x0BFD] = "豫", [0x0BFE] = "豹", [0x0BFF] = "貂", [0x0C00] = "貌", [0x0C01] = "贝", [0x0C02] = "贞", [0x0C03] = "负", [0x0C04] = "贡", [0x0C05] = "财", [0x0C06] = "责", [0x0C07] = "败", [0x0C08] = "账", [0x0C09] = "货", [0x0C0A] = "质", [0x0C0B] = "贩", [0x0C0C] = "贪", [0x0C0D] = "购", [0x0C0E] = "贯", [0x0C0F] = "贴", [0x0C10] = "贵", [0x0C11] = "费", [0x0C12] = "贺", [0x0C13] = "贼", [0x0C14] = "贾", [0x0C15] = "资", [0x0C16] = "赋", [0x0C17] = "赌", [0x0C18] = "赏", [0x0C19] = "赐", [0x0C1A] = "赔", [0x0C1B] = "赖", [0x0C1C] = "赚", [0x0C1D] = "赛", [0x0C1E] = "赞", [0x0C1F] = "赠", [0x0C20] = "赢", [0x0C21] = "赤", [0x0C22] = "赫", [0x0C23] = "走", [0x0C24] = "赴", [0x0C25] = "赶", [0x0C26] = "起", [0x0C27] = "趁", [0x0C28] = "超", [0x0C29] = "越", [0x0C2A] = "趋", [0x0C2B] = "趟", [0x0C2C] = "趣", [0x0C2D] = "足", [0x0C2E] = "趴", [0x0C2F] = "跃", [0x0C30] = "跋", [0x0C31] = "跌", [0x0C32] = "跑", [0x0C33] = "距", [0x0C34] = "跟", [0x0C35] = "跨", [0x0C36] = "路", [0x0C37] = "跳", [0x0C38] = "践", [0x0C39] = "跺", [0x0C3A] = "踊", [0x0C3B] = "踌", [0x0C3C] = "踏", [0x0C3D] = "踢", [0x0C3E] = "踩", [0x0C3F] = "踪", [0x0C40] = "踹", [0x0C41] = "蹂", [0x0C42] = "蹈", [0x0C43] = "蹦", [0x0C44] = "蹬", [0x0C45] = "蹼", [0x0C46] = "蹿", [0x0C47] = "躁", [0x0C48] = "躇", [0x0C49] = "躏", [0x0C4A] = "身", [0x0C4B] = "躬", [0x0C4C] = "躯", [0x0C4D] = "躲", [0x0C4E] = "躺", [0x0C4F] = "车", [0x0C50] = "轨", [0x0C51] = "轩", [0x0C52] = "转", [0x0C53] = "轮", [0x0C54] = "软", [0x0C55] = "轰", [0x0C56] = "轴", [0x0C57] = "轻", [0x0C58] = "载", [0x0C59] = "较", [0x0C5A] = "辅", [0x0C5B] = "辆", [0x0C5C] = "辈", [0x0C5D] = "辉", [0x0C5E] = "辐", [0x0C5F] = "辑", [0x0C60] = "输", [0x0C61] = "辙", [0x0C62] = "辛", [0x0C63] = "辞", [0x0C64] = "辟", [0x0C65] = "辣", [0x0C66] = "辨", [0x0C67] = "辰", [0x0C68] = "辱", [0x0C69] = "边", [0x0C6A] = "辽", [0x0C6B] = "达", [0x0C6C] = "迁", [0x0C6D] = "迂", [0x0C6E] = "迅", [0x0C6F] = "过", [0x0C70] = "迈", [0x0C71] = "迎", [0x0C72] = "运", [0x0C73] = "近", [0x0C74] = "返", [0x0C75] = "还", [0x0C76] = "这", [0x0C77] = "进", [0x0C78] = "远", [0x0C79] = "违", [0x0C7A] = "连", [0x0C7B] = "迟", [0x0C7C] = "迪", [0x0C7D] = "迫", [0x0C7E] = "述", [0x0C7F] = "迷", [0x0C80] = "迸", [0x0C81] = "迹", [0x0C82] = "追", [0x0C83] = "退", [0x0C84] = "送", [0x0C85] = "适", [0x0C86] = "逃", [0x0C87] = "逅", [0x0C88] = "逆", [0x0C89] = "选", [0x0C8A] = "逊", [0x0C8B] = "透", [0x0C8C] = "逐", [0x0C8D] = "递", [0x0C8E] = "途", [0x0C8F] = "通", [0x0C90] = "逝", [0x0C91] = "逞", [0x0C92] = "速", [0x0C93] = "造", [0x0C94] = "逢", [0x0C95] = "逸", [0x0C96] = "逻", [0x0C97] = "逼", [0x0C98] = "遁", [0x0C99] = "遇", [0x0C9A] = "遍", [0x0C9B] = "道", [0x0C9C] = "遗", [0x0C9D] = "遣", [0x0C9E] = "遥", [0x0C9F] = "遭", [0x0CA0] = "遮", [0x0CA1] = "遵", [0x0CA2] = "避", [0x0CA3] = "邀", [0x0CA4] = "邂", [0x0CA5] = "邃", [0x0CA6] = "那", [0x0CA7] = "邦", [0x0CA8] = "邪", [0x0CA9] = "邮", [0x0CAA] = "邻", [0x0CAB] = "郁", [0x0CAC] = "郊", [0x0CAD] = "郎", [0x0CAE] = "郡", [0x0CAF] = "部", [0x0CB0] = "都", [0x0CB1] = "配", [0x0CB2] = "酒", [0x0CB3] = "酚", [0x0CB4] = "酝", [0x0CB5] = "酣", [0x0CB6] = "酬", [0x0CB7] = "酱", [0x0CB8] = "酵", [0x0CB9] = "酷", [0x0CBA] = "酸", [0x0CBB] = "酿", [0x0CBC] = "醉", [0x0CBD] = "醒", [0x0CBE] = "采", [0x0CBF] = "释", [0x0CC0] = "里", [0x0CC1] = "重", [0x0CC2] = "野", [0x0CC3] = "量", [0x0CC4] = "金", [0x0CC5] = "鉴", [0x0CC6] = "针", [0x0CC7] = "钉", [0x0CC8] = "钏", [0x0CC9] = "钓", [0x0CCA] = "钜", [0x0CCB] = "钝", [0x0CCC] = "钟", [0x0CCD] = "钢", [0x0CCE] = "钥", [0x0CCF] = "钩", [0x0CD0] = "钮", [0x0CD1] = "钱", [0x0CD2] = "钳", [0x0CD3] = "钵", [0x0CD4] = "钹", [0x0CD5] = "钻", [0x0CD6] = "钾", [0x0CD7] = "铁", [0x0CD8] = "铃", [0x0CD9] = "铋", [0x0CDA] = "铎", [0x0CDB] = "铛", [0x0CDC] = "铜", [0x0CDD] = "铠", [0x0CDE] = "铭", [0x0CDF] = "铲", [0x0CE0] = "铳", [0x0CE1] = "银", [0x0CE2] = "铸", [0x0CE3] = "铺", [0x0CE4] = "链", [0x0CE5] = "销", [0x0CE6] = "锁", [0x0CE7] = "锄", [0x0CE8] = "锅", [0x0CE9] = "锈", [0x0CEA] = "锋", [0x0CEB] = "涧", [0x0CEC] = "锐", [0x0CED] = "错", [0x0CEE] = "锡", [0x0CEF] = "锤", [0x0CF0] = "键", [0x0CF1] = "锯", [0x0CF2] = "锵", [0x0CF3] = "锹", [0x0CF4] = "锻", [0x0CF5] = "镇", [0x0CF6] = "镌", [0x0CF7] = "镖", [0x0CF8] = "镜", [0x0CF9] = "镧", [0x0CFA] = "镰", [0x0CFB] = "镶", [0x0CFC] = "长", [0x0CFD] = "门", [0x0CFE] = "闪", [0x0CFF] = "闭", [0x0D00] = "问", [0x0D01] = "闯", [0x0D02] = "闲", [0x0D03] = "间", [0x0D04] = "闷", [0x0D05] = "闹", [0x0D06] = "闻", [0x0D07] = "阅", [0x0D08] = "阔", [0x0D09] = "阜", [0x0D0A] = "队", [0x0D0B] = "阡", [0x0D0C] = "阪", [0x0D0D] = "阱", [0x0D0E] = "防", [0x0D0F] = "阳", [0x0D10] = "阴", [0x0D11] = "阵", [0x0D12] = "阶", [0x0D13] = "阻", [0x0D14] = "阿", [0x0D15] = "陀", [0x0D16] = "附", [0x0D17] = "际", [0x0D18] = "陆", [0x0D19] = "陈", [0x0D1A] = "陋", [0x0D1B] = "陌", [0x0D1C] = "降", [0x0D1D] = "限", [0x0D1E] = "陕", [0x0D1F] = "陡", [0x0D20] = "院", [0x0D21] = "除", [0x0D22] = "陨", [0x0D23] = "险", [0x0D24] = "陪", [0x0D25] = "陵", [0x0D26] = "陶", [0x0D27] = "陷", [0x0D28] = "隆", [0x0D29] = "随", [0x0D2A] = "隐", [0x0D2B] = "隔", [0x0D2C] = "隙", [0x0D2D] = "障", [0x0D2E] = "隧", [0x0D2F] = "难", [0x0D30] = "雀", [0x0D31] = "雄", [0x0D32] = "雅", [0x0D33] = "集", [0x0D34] = "雌", [0x0D35] = "雏", [0x0D36] = "雕", [0x0D37] = "雨", [0x0D38] = "雪", [0x0D39] = "零", [0x0D3A] = "雷", [0x0D3B] = "雹", [0x0D3C] = "雾", [0x0D3D] = "需", [0x0D3E] = "震", [0x0D3F] = "霉", [0x0D40] = "霍", [0x0D41] = "霓", [0x0D42] = "露", [0x0D43] = "霸", [0x0D44] = "霹", [0x0D45] = "青", [0x0D46] = "静", [0x0D47] = "非", [0x0D48] = "靠", [0x0D49] = "面", [0x0D4A] = "革", [0x0D4B] = "鞋", [0x0D4C] = "鞠", [0x0D4D] = "鞭", [0x0D4E] = "韦", [0x0D4F] = "韧", [0x0D50] = "韩", [0x0D51] = "音", [0x0D52] = "页", [0x0D53] = "顶", [0x0D54] = "顷", [0x0D55] = "项", [0x0D56] = "顺", [0x0D57] = "须", [0x0D58] = "顽", [0x0D59] = "顾", [0x0D5A] = "顿", [0x0D5B] = "颁", [0x0D5C] = "预", [0x0D5D] = "颅", [0x0D5E] = "领", [0x0D5F] = "颇", [0x0D60] = "颈", [0x0D61] = "颊", [0x0D62] = "频", [0x0D63] = "颗", [0x0D64] = "题", [0x0D65] = "颚", [0x0D66] = "颜", [0x0D67] = "额", [0x0D68] = "颠", [0x0D69] = "颤", [0x0D6A] = "风", [0x0D6B] = "飘", [0x0D6C] = "飙", [0x0D6D] = "飞", [0x0D6E] = "食", [0x0D6F] = "餐", [0x0D70] = "饪", [0x0D71] = "饭", [0x0D72] = "饮", [0x0D73] = "饰", [0x0D74] = "饱", [0x0D75] = "饲", [0x0D76] = "饵", [0x0D77] = "饶", [0x0D78] = "饼", [0x0D79] = "饿", [0x0D7A] = "馆", [0x0D7B] = "馈", [0x0D7C] = "馋", [0x0D7D] = "馒", [0x0D7E] = "首", [0x0D7F] = "香", [0x0D80] = "馥", [0x0D81] = "馨", [0x0D82] = "马", [0x0D83] = "驯", [0x0D84] = "驰", [0x0D85] = "驱", [0x0D86] = "驳", [0x0D87] = "驶", [0x0D88] = "驹", [0x0D89] = "驻", [0x0D8A] = "驼", [0x0D8B] = "驾", [0x0D8C] = "骂", [0x0D8D] = "骄", [0x0D8E] = "验", [0x0D8F] = "骑", [0x0D90] = "骗", [0x0D91] = "骚", [0x0D92] = "骤", [0x0D93] = "骨", [0x0D94] = "骷", [0x0D95] = "髓", [0x0D96] = "高", [0x0D97] = "髦", [0x0D98] = "鬃", [0x0D99] = "鬼", [0x0D9A] = "魁", [0x0D9B] = "魂", [0x0D9C] = "魄", [0x0D9D] = "魅", [0x0D9E] = "魇", [0x0D9F] = "魍", [0x0DA0] = "魔", [0x0DA1] = "鱼", [0x0DA2] = "鱿", [0x0DA3] = "鲁", [0x0DA4] = "鲍", [0x0DA5] = "鲜", [0x0DA6] = "鲤", [0x0DA7] = "鲨", [0x0DA8] = "鲶", [0x0DA9] = "鲸", [0x0DAA] = "鳄", [0x0DAB] = "鳅", [0x0DAC] = "鳍", [0x0DAD] = "鳔", [0x0DAE] = "鳗", [0x0DAF] = "鳞", [0x0DB0] = "鸟", [0x0DB1] = "鸡", [0x0DB2] = "鸣", [0x0DB3] = "鸥", [0x0DB4] = "鸦", [0x0DB5] = "鸫", [0x0DB6] = "鸭", [0x0DB7] = "鹅", [0x0DB8] = "鹉", [0x0DB9] = "鹤", [0x0DBA] = "鹦", [0x0DBB] = "鹰", [0x0DBC] = "鹿", [0x0DBD] = "麒", [0x0DBE] = "麓", [0x0DBF] = "麝", [0x0DC0] = "麟", [0x0DC1] = "麦", [0x0DC2] = "麻", [0x0DC3] = "黄", [0x0DC4] = "黍", [0x0DC5] = "黎", [0x0DC6] = "黏", [0x0DC7] = "黑", [0x0DC8] = "默", [0x0DC9] = "黯", [0x0DCA] = "鼎", [0x0DCB] = "鼓", [0x0DCC] = "鼠", [0x0DCD] = "鼬", [0x0DCE] = "鼹", [0x0DCF] = "鼻", [0x0DD0] = "鼾", [0x0DD1] = "齐", [0x0DD2] = "齿", [0x0DD3] = "龄", [0x0DD4] = "龅", [0x0DD5] = "龊", [0x0DD6] = "龌", [0x0DD7] = "龙", [0x0DD8] = "龟", [0x0DD9] = "蒨", [0x0DDA] = "镕", [0x0DDB] = "玥", [0x0DDC] = "亭", [0x0DDD] = "仲", [0x0DDE] = "佬", [0x0DDF] = "俯", [0x0DE0] = "倪", [0x0DE1] = "儒", [0x0DE2] = "菈", [0x0DE3] = "凰", [0x0DE4] = "凿", [0x0DE5] = "匆", [0x0DE6] = "厥", [0x0DE7] = "呛", [0x0DE8] = "咀", [0x0DE9] = "哒", [0x0DEA] = "唰", [0x0DEB] = "嚼", [0x0DEC] = "夭", [0x0DED] = "妞", [0x0DEE] = "姚", [0x0DEF] = "娅", [0x0DF0] = "娥", [0x0DF1] = "婪", [0x0DF2] = "婷", [0x0DF3] = "嫚", [0x0DF4] = "孕", [0x0DF5] = "宪", [0x0DF6] = "岚", [0x0DF7] = "庞", [0x0DF8] = "悄", [0x0DF9] = "惕", [0x0DFA] = "慈", [0x0DFB] = "懦", [0x0DFC] = "戳", [0x0DFD] = "抡", [0x0DFE] = "拆", [0x0DFF] = "拱", [0x0E00] = "拽", [0x0E01] = "挨", [0x0E02] = "捂", [0x0E03] = "捩", [0x0E04] = "摁", [0x0E05] = "敛", [0x0E06] = "暄", [0x0E07] = "暹", [0x0E08] = "朔", [0x0E09] = "杏", [0x0E0A] = "枳", [0x0E0B] = "柚", [0x0E0C] = "柞", [0x0E0D] = "柠", [0x0E0E] = "柿", [0x0E0F] = "栎", [0x0E10] = "桄", [0x0E11] = "梣", [0x0E12] = "楔", [0x0E13] = "榔", [0x0E14] = "榛", [0x0E15] = "榠", [0x0E16] = "榴", [0x0E17] = "檬", [0x0E18] = "殴", [0x0E19] = "殷", [0x0E1A] = "汲", [0x0E1B] = "沁", [0x0E1C] = "沈", [0x0E1D] = "沧", [0x0E1E] = "泞", [0x0E1F] = "泱", [0x0E20] = "涎", [0x0E21] = "涟", [0x0E22] = "涣", [0x0E23] = "深", [0x0E24] = "渣", [0x0E25] = "湍", [0x0E26] = "漪", [0x0E27] = "澎", [0x0E28] = "炳", [0x0E29] = "焕", [0x0E2A] = "熏", [0x0E2B] = "獭", [0x0E2C] = "玄", [0x0E2D] = "玮", [0x0E2E] = "珐", [0x0E2F] = "琵", [0x0E30] = "琶", [0x0E31] = "瑄", [0x0E32] = "瑠", [0x0E33] = "瑶", [0x0E34] = "疙", [0x0E35] = "疾", [0x0E36] = "瘩", [0x0E37] = "瘪", [0x0E38] = "皋", [0x0E39] = "眸", [0x0E3A] = "睿", [0x0E3B] = "矶", [0x0E3C] = "砗", [0x0E3D] = "砺", [0x0E3E] = "硕", [0x0E3F] = "碜", [0x0E40] = "磷", [0x0E41] = "祀", [0x0E42] = "禄", [0x0E43] = "秤", [0x0E44] = "稼", [0x0E45] = "窜", [0x0E46] = "竺", [0x0E47] = "笹", [0x0E48] = "筠", [0x0E49] = "籁", [0x0E4A] = "糙", [0x0E4B] = "紊", [0x0E4C] = "纭", [0x0E4D] = "纺", [0x0E4E] = "绸", [0x0E4F] = "聒", [0x0E50] = "胄", [0x0E51] = "腔", [0x0E52] = "腥", [0x0E53] = "膛", [0x0E54] = "臀", [0x0E55] = "芷", [0x0E56] = "苍", [0x0E57] = "苑", [0x0E58] = "苟", [0x0E59] = "茉", [0x0E5A] = "茎", [0x0E5B] = "茫", [0x0E5C] = "荔", [0x0E5D] = "荟", [0x0E5E] = "莓", [0x0E5F] = "莞", [0x0E60] = "莺", [0x0E61] = "萝", [0x0E62] = "萧", [0x0E63] = "蒲", [0x0E64] = "蔷", [0x0E65] = "薇", [0x0E66] = "薰", [0x0E67] = "藻", [0x0E68] = "蚕", [0x0E69] = "蜃", [0x0E6A] = "袁", [0x0E6B] = "觊", [0x0E6C] = "觎", [0x0E6D] = "詹", [0x0E6E] = "貘", [0x0E6F] = "贮", [0x0E70] = "贸", [0x0E71] = "跚", [0x0E72] = "踝", [0x0E73] = "蹒", [0x0E74] = "辕", [0x0E75] = "釜", [0x0E76] = "钼", [0x0E77] = "锥", [0x0E78] = "锦", [0x0E79] = "闸", [0x0E7A] = "阁", [0x0E7B] = "雁", [0x0E7C] = "雯", [0x0E7D] = "雳", [0x0E7E] = "霁", [0x0E7F] = "霄", [0x0E80] = "霆", [0x0E81] = "霈", [0x0E82] = "霏", [0x0E83] = "靛", [0x0E84] = "飒", [0x0E85] = "饥", [0x0E86] = "驮", [0x0E87] = "骇", [0x0E88] = "鸯", [0x0E89] = "鸿", [0x0E8A] = "鹃", [0x0E8B] = "黛", [0x0E8C] = "黾", [0x0E8D] = "俏", [0x0E8E] = "唭", [0x0E8F] = "啯", [0x0E90] = "嗣", [0x0E91] = "嗤", [0x0E92] = "妤", [0x0E93] = "峨", [0x0E94] = "扼", [0x0E95] = "杳", [0x0E96] = "毋", [0x0E97] = "汀", [0x0E98] = "涓", [0x0E99] = "湘", [0x0E9A] = "滟", [0x0E9B] = "潋", [0x0E9C] = "牟", [0x0E9D] = "穰", [0x0E9E] = "窣", [0x0E9F] = "窸", [0x0EA0] = "笙", [0x0EA1] = "绨", [0x0EA2] = "缈", [0x0EA3] = "缥", [0x0EA4] = "丙", [0x0EA5] = "串", [0x0EA6] = "乒", [0x0EA7] = "乓", [0x0EA8] = "乞", [0x0EA9] = "乳", [0x0EAA] = "亩", [0x0EAB] = "仑", [0x0EAC] = "仞", [0x0EAD] = "伎", [0x0EAE] = "伫", [0x0EAF] = "伶", [0x0EB0] = "佣", [0x0EB1] = "侄", [0x0EB2] = "侈", [0x0EB3] = "侠", [0x0EB4] = "侨", [0x0EB5] = "侮", [0x0EB6] = "侯", [0x0EB7] = "俘", [0x0EB8] = "俭", [0x0EB9] = "倘", [0x0EBA] = "倚", [0x0EBB] = "倡", [0x0EBC] = "倩", [0x0EBD] = "倬", [0x0EBE] = "债", [0x0EBF] = "偌", [0x0EC0] = "偎", [0x0EC1] = "僚", [0x0EC2] = "兀", [0x0EC3] = "党", [0x0EC4] = "冶", [0x0EC5] = "冽", [0x0EC6] = "凄", [0x0EC7] = "凪", [0x0EC8] = "凳", [0x0EC9] = "刘", [0x0ECA] = "剁", [0x0ECB] = "剃", [0x0ECC] = "剖", [0x0ECD] = "劫", [0x0ECE] = "勘", [0x0ECF] = "匀", [0x0ED0] = "匍", [0x0ED1] = "匐", [0x0ED2] = "卉", [0x0ED3] = "卧", [0x0ED4] = "卯", [0x0ED5] = "卿", [0x0ED6] = "厕", [0x0ED7] = "厢", [0x0ED8] = "厮", [0x0ED9] = "叛", [0x0EDA] = "叨", [0x0EDB] = "吁", [0x0EDC] = "吆", [0x0EDD] = "吔", [0x0EDE] = "吖", [0x0EDF] = "吮", [0x0EE0] = "吴", [0x0EE1] = "呒", [0x0EE2] = "呔", [0x0EE3] = "呕", [0x0EE4] = "呖", [0x0EE5] = "呣", [0x0EE6] = "呤", [0x0EE7] = "呲", [0x0EE8] = "呶", [0x0EE9] = "呷", [0x0EEA] = "呸", [0x0EEB] = "咂", [0x0EEC] = "咫", [0x0EED] = "咲", [0x0EEE] = "咽", [0x0EEF] = "哄", [0x0EF0] = "哆", [0x0EF1] = "哝", [0x0EF2] = "哱", [0x0EF3] = "哺", [0x0EF4] = "唏", [0x0EF5] = "唑", [0x0EF6] = "唞", [0x0EF7] = "唠", [0x0EF8] = "唦", [0x0EF9] = "啜", [0x0EFA] = "啤", [0x0EFB] = "啬", [0x0EFC] = "啷", [0x0EFD] = "喁", [0x0EFE] = "喏", [0x0EFF] = "喱", [0x0F00] = "喳", [0x0F01] = "嗓", [0x0F02] = "嗖", [0x0F03] = "嗙", [0x0F04] = "嗞", [0x0F05] = "嗦", [0x0F06] = "嗳", [0x0F07] = "嗵", [0x0F08] = "嘀", [0x0F09] = "嘁", [0x0F0A] = "嘘", [0x0F0B] = "嘞", [0x0F0C] = "嘤", [0x0F0D] = "嘱", [0x0F0E] = "噎", [0x0F0F] = "噫", [0x0F10] = "噻", [0x0F11] = "囔", [0x0F12] = "囱", [0x0F13] = "坂", [0x0F14] = "坍", [0x0F15] = "坛", [0x0F16] = "坷", [0x0F17] = "垄", [0x0F18] = "垒", [0x0F19] = "垠", [0x0F1A] = "垦", [0x0F1B] = "墟", [0x0F1C] = "壬", [0x0F1D] = "奄", [0x0F1E] = "奕", [0x0F1F] = "奠", [0x0F20] = "奢", [0x0F21] = "奴", [0x0F22] = "奸", [0x0F23] = "妃", [0x0F24] = "妍", [0x0F25] = "妓", [0x0F26] = "妥", [0x0F27] = "妩", [0x0F28] = "妲", [0x0F29] = "姑", [0x0F2A] = "姗", [0x0F2B] = "姥", [0x0F2C] = "姻", [0x0F2D] = "娑", [0x0F2E] = "娘", [0x0F2F] = "娴", [0x0F30] = "婕", [0x0F31] = "媒", [0x0F32] = "嫁", [0x0F33] = "嫂", [0x0F34] = "嫦", [0x0F35] = "孱", [0x0F36] = "孽", [0x0F37] = "宰", [0x0F38] = "宴", [0x0F39] = "宵", [0x0F3A] = "寅", [0x0F3B] = "尸", [0x0F3C] = "尿", [0x0F3D] = "届", [0x0F3E] = "屑", [0x0F3F] = "屠", [0x0F40] = "屡", [0x0F41] = "履", [0x0F42] = "屯", [0x0F43] = "屿", [0x0F44] = "岗", [0x0F45] = "峙", [0x0F46] = "崛", [0x0F47] = "巅", [0x0F48] = "巩", [0x0F49] = "巳", [0x0F4A] = "巷", [0x0F4B] = "帖", [0x0F4C] = "帘", [0x0F4D] = "幔", [0x0F4E] = "幡", [0x0F4F] = "幺", [0x0F50] = "庇", [0x0F51] = "府", [0x0F52] = "庶", [0x0F53] = "廊", [0x0F54] = "廿", [0x0F55] = "弊", [0x0F56] = "弓", [0x0F57] = "弧", [0x0F58] = "弩", [0x0F59] = "徐", [0x0F5A] = "忐", [0x0F5B] = "忑", [0x0F5C] = "忒", [0x0F5D] = "忤", [0x0F5E] = "忧", [0x0F5F] = "忪", [0x0F60] = "忱", [0x0F61] = "怂", [0x0F62] = "怏", [0x0F63] = "怡", [0x0F64] = "恤", [0x0F65] = "恫", [0x0F66] = "恬", [0x0F67] = "恳", [0x0F68] = "患", [0x0F69] = "悴", [0x0F6A] = "悸", [0x0F6B] = "悼", [0x0F6C] = "惮", [0x0F6D] = "惺", [0x0F6E] = "愕", [0x0F6F] = "愣", [0x0F70] = "慵", [0x0F71] = "慷", [0x0F72] = "憋", [0x0F73] = "憔", [0x0F74] = "懊", [0x0F75] = "扒", [0x0F76] = "扛", [0x0F77] = "扶", [0x0F78] = "抄", [0x0F79] = "拂", [0x0F7A] = "拗", [0x0F7B] = "拣", [0x0F7C] = "拧", [0x0F7D] = "拴", [0x0F7E] = "挎", [0x0F7F] = "挚", [0x0F80] = "捎", [0x0F81] = "捐", [0x0F82] = "捞", [0x0F83] = "捶", [0x0F84] = "捺", [0x0F85] = "掰", [0x0F86] = "掳", [0x0F87] = "掸", [0x0F88] = "揣", [0x0F89] = "揪", [0x0F8A] = "搂", [0x0F8B] = "搓", [0x0F8C] = "搡", [0x0F8D] = "搧", [0x0F8E] = "摊", [0x0F8F] = "撇", [0x0F90] = "擒", [0x0F91] = "攥", [0x0F92] = "攸", [0x0F93] = "斐", [0x0F94] = "斓", [0x0F95] = "斥", [0x0F96] = "斧", [0x0F97] = "旬", [0x0F98] = "旭", [0x0F99] = "旱", [0x0F9A] = "旷", [0x0F9B] = "昔", [0x0F9C] = "昙", [0x0F9D] = "昶", [0x0F9E] = "昼", [0x0F9F] = "晌", [0x0FA0] = "晖", [0x0FA1] = "曙", [0x0FA2] = "曝", [0x0FA3] = "朦", [0x0FA4] = "杈", [0x0FA5] = "杖", [0x0FA6] = "杠", [0x0FA7] = "杨", [0x0FA8] = "枣", [0x0FA9] = "枥", [0x0FAA] = "枭", [0x0FAB] = "枷", [0x0FAC] = "柄", [0x0FAD] = "栉", [0x0FAE] = "株", [0x0FAF] = "桀", [0x0FB0] = "桧", [0x0FB1] = "桩", [0x0FB2] = "梆", [0x0FB3] = "梓", [0x0FB4] = "梢", [0x0FB5] = "棚", [0x0FB6] = "棺", [0x0FB7] = "椒", [0x0FB8] = "楷", [0x0FB9] = "榆", [0x0FBA] = "榻", [0x0FBB] = "槐", [0x0FBC] = "樵", [0x0FBD] = "橱", [0x0FBE] = "歧", [0x0FBF] = "歼", [0x0FC0] = "殃", [0x0FC1] = "殄", [0x0FC2] = "毗", [0x0FC3] = "毙", [0x0FC4] = "汝", [0x0FC5] = "決", [0x0FC6] = "沓", [0x0FC7] = "沦", [0x0FC8] = "沱", [0x0FC9] = "泅", [0x0FCA] = "泻", [0x0FCB] = "洄", [0x0FCC] = "洲", [0x0FCD] = "浃", [0x0FCE] = "涝", [0x0FCF] = "涤", [0x0FD0] = "涯", [0x0FD1] = "淅", [0x0FD2] = "淆", [0x0FD3] = "淑", [0x0FD4] = "渚", [0x0FD5] = "渺", [0x0FD6] = "湃", [0x0FD7] = "溉", [0x0FD8] = "滂", [0x0FD9] = "滔", [0x0FDA] = "漾", [0x0FDB] = "潺", [0x0FDC] = "澜", [0x0FDD] = "濑", [0x0FDE] = "瀚", [0x0FDF] = "灞", [0x0FE0] = "炊", [0x0FE1] = "炕", [0x0FE2] = "炖", [0x0FE3] = "炬", [0x0FE4] = "炯", [0x0FE5] = "烊", [0x0FE6] = "烘", [0x0FE7] = "烬", [0x0FE8] = "焉", [0x0FE9] = "焐", [0x0FEA] = "焙", [0x0FEB] = "焠", [0x0FEC] = "煅", [0x0FED] = "煌", [0x0FEE] = "熠", [0x0FEF] = "犁", [0x0FF0] = "犄", [0x0FF1] = "犊", [0x0FF2] = "犒", [0x0FF3] = "犷", [0x0FF4] = "猩", [0x0FF5] = "珂", [0x0FF6] = "琦", [0x0FF7] = "琪", [0x0FF8] = "琼", [0x0FF9] = "瑕", [0x0FFA] = "璇", [0x0FFB] = "璐", [0x0FFC] = "璞", [0x0FFD] = "甭", [0x0FFE] = "疤", [0x0FFF] = "疮", [0x1000] = "痞", [0x1001] = "痰", [0x1002] = "瘾", [0x1003] = "皎", [0x1004] = "皓", [0x1005] = "皿", [0x1006] = "盎", [0x1007] = "盏", [0x1008] = "盲", [0x1009] = "眯", [0x100A] = "睐", [0x100B] = "睬", [0x100C] = "睹", [0x100D] = "瞎", [0x100E] = "瞑", [0x100F] = "瞰", [0x1010] = "矜", [0x1011] = "矩", [0x1012] = "砌", [0x1013] = "碉", [0x1014] = "碴", [0x1015] = "確", [0x1016] = "碾", [0x1017] = "磅", [0x1018] = "磊", [0x1019] = "磋", [0x101A] = "礁", [0x101B] = "祐", [0x101C] = "祟", [0x101D] = "祠", [0x101E] = "禅", [0x101F] = "禾", [0x1020] = "秆", [0x1021] = "秦", [0x1022] = "秧", [0x1023] = "秩", [0x1024] = "秽", [0x1025] = "稔", [0x1026] = "稠", [0x1027] = "穹", [0x1028] = "窑", [0x1029] = "窘", [0x102A] = "笃", [0x102B] = "笋", [0x102C] = "笞", [0x102D] = "笺", [0x102E] = "筏", [0x102F] = "筐", [0x1030] = "筛", [0x1031] = "筷", [0x1032] = "箍", [0x1033] = "箩", [0x1034] = "篑", [0x1035] = "篝", [0x1036] = "簇", [0x1037] = "簌", [0x1038] = "簿", [0x1039] = "粟", [0x103A] = "粥", [0x103B] = "粮", [0x103C] = "粱", [0x103D] = "糠", [0x103E] = "絮", [0x103F] = "纠", [0x1040] = "纲", [0x1041] = "纾", [0x1042] = "绚", [0x1043] = "绢", [0x1044] = "缀", [0x1045] = "缇", [0x1046] = "缉", [0x1047] = "缔", [0x1048] = "缭", [0x1049] = "缮", [0x104A] = "缴", [0x104B] = "缸", [0x104C] = "署", [0x104D] = "罹", [0x104E] = "翎", [0x104F] = "耕", [0x1050] = "耷", [0x1051] = "聋", [0x1052] = "聘", [0x1053] = "肝", [0x1054] = "肱", [0x1055] = "肴", [0x1056] = "肺", [0x1057] = "肾", [0x1058] = "胁", [0x1059] = "胧", [0x105A] = "胴", [0x105B] = "脊", [0x105C] = "脐", [0x105D] = "腆", [0x105E] = "腐", [0x105F] = "腺", [0x1060] = "腼", [0x1061] = "舅", [0x1062] = "舜", [0x1063] = "舰", [0x1064] = "舱", [0x1065] = "舶", [0x1066] = "舷", [0x1067] = "芮", [0x1068] = "茅", [0x1069] = "茏", [0x106A] = "茹", [0x106B] = "荫", [0x106C] = "菠", [0x106D] = "萃", [0x106E] = "萦", [0x106F] = "董", [0x1070] = "葬", [0x1071] = "蒜", [0x1072] = "蓉", [0x1073] = "蔑", [0x1074] = "蔫", [0x1075] = "蔬", [0x1076] = "蔼", [0x1077] = "薪", [0x1078] = "藓", [0x1079] = "虏", [0x107A] = "虐", [0x107B] = "虻", [0x107C] = "蚀", [0x107D] = "蚂", [0x107E] = "蚌", [0x107F] = "蚣", [0x1080] = "蜇", [0x1081] = "蜈", [0x1082] = "蜿", [0x1083] = "衔", [0x1084] = "衬", [0x1085] = "袄", [0x1086] = "袍", [0x1087] = "袜", [0x1088] = "裳", [0x1089] = "裴", [0x108A] = "褐", [0x108B] = "褥", [0x108C] = "褪", [0x108D] = "襟", [0x108E] = "見", [0x108F] = "觑", [0x1090] = "誉", [0x1091] = "誓", [0x1092] = "讳", [0x1093] = "讽", [0x1094] = "诣", [0x1095] = "诬", [0x1096] = "谙", [0x1097] = "谚", [0x1098] = "谣", [0x1099] = "谬", [0x109A] = "谭", [0x109B] = "豁", [0x109C] = "贤", [0x109D] = "贫", [0x109E] = "贱", [0x109F] = "贷", [0x10A0] = "贿", [0x10A1] = "赎", [0x10A2] = "赘", [0x10A3] = "赝", [0x10A4] = "赦", [0x10A5] = "赳", [0x10A6] = "赵", [0x10A7] = "跤", [0x10A8] = "跪", [0x10A9] = "踞", [0x10AA] = "蹄", [0x10AB] = "蹭", [0x10AC] = "蹲", [0x10AD] = "轧", [0x10AE] = "轱", [0x10AF] = "轶", [0x10B0] = "轿", [0x10B1] = "辄", [0x10B2] = "辗", [0x10B3] = "辘", [0x10B4] = "辜", [0x10B5] = "辩", [0x10B6] = "辫", [0x10B7] = "込", [0x10B8] = "迄", [0x10B9] = "迢", [0x10BA] = "迦", [0x10BB] = "逍", [0x10BC] = "逗", [0x10BD] = "逛", [0x10BE] = "逮", [0x10BF] = "逾", [0x10C0] = "邸", [0x10C1] = "郑", [0x10C2] = "鄙", [0x10C3] = "酋", [0x10C4] = "酥", [0x10C5] = "酪", [0x10C6] = "醇", [0x10C7] = "醋", [0x10C8] = "鑫", [0x10C9] = "钙", [0x10CA] = "钞", [0x10CB] = "钦", [0x10CC] = "钧", [0x10CD] = "钰", [0x10CE] = "铂", [0x10CF] = "铅", [0x10D0] = "铐", [0x10D1] = "铗", [0x10D2] = "铮", [0x10D3] = "锃", [0x10D4] = "锉", [0x10D5] = "锌", [0x10D6] = "锏", [0x10D7] = "锚", [0x10D8] = "锣", [0x10D9] = "镁", [0x10DA] = "镂", [0x10DB] = "镐", [0x10DC] = "镭", [0x10DD] = "镯", [0x10DE] = "闺", [0x10DF] = "阀", [0x10E0] = "阄", [0x10E1] = "隶", [0x10E2] = "雇", [0x10E3] = "霖", [0x10E4] = "霜", [0x10E5] = "霞", [0x10E6] = "霾", [0x10E7] = "靓", [0x10E8] = "靖", [0x10E9] = "靡", [0x10EA] = "靴", [0x10EB] = "靶", [0x10EC] = "鞘", [0x10ED] = "鞣", [0x10EE] = "韵", [0x10EF] = "颂", [0x10F0] = "颓", [0x10F1] = "颖", [0x10F2] = "飓", [0x10F3] = "飕", [0x10F4] = "飚", [0x10F5] = "餮", [0x10F6] = "饕", [0x10F7] = "饯", [0x10F8] = "饺", [0x10F9] = "馁", [0x10FA] = "馅", [0x10FB] = "驭", [0x10FC] = "驴", [0x10FD] = "骆", [0x10FE] = "骋", [0x10FF] = "骜", [0x1100] = "骡", [0x1101] = "骸", [0x1102] = "骼", [0x1103] = "髅", [0x1104] = "鲈", [0x1105] = "鸳", [0x1106] = "鸽", [0x1107] = "鹊", [0x1108] = "鹏", [0x1109] = "黠", [0x110B] = "矸", [0x110C] = "蓓", [0x110D] = "遨", [0x110E] = "邱", [0x110F] = "郝", [0x1110] = "郭", [0x1111] = "铆", [0x1112] = "隼", [0x1113] = "骏", [0x1116] = "俐", [0x1117] = "丌", [0x1118] = "丐", [0x1119] = "丕", [0x111A] = "丞", [0x111B] = "丨", [0x111C] = "丬", [0x111D] = "丶", [0x111E] = "丿", [0x111F] = "乇", [0x1120] = "乜", [0x1121] = "乩", [0x1122] = "乾", [0x1123] = "亍", [0x1124] = "亓", [0x1125] = "亘", [0x1126] = "亟", [0x1127] = "亠", [0x1128] = "亳", [0x1129] = "亵", [0x112A] = "亻", [0x112B] = "仂", [0x112C] = "仃", [0x112D] = "仄", [0x112E] = "仉", [0x112F] = "仕", [0x1130] = "仝", [0x1131] = "仟", [0x1132] = "仡", [0x1133] = "仨", [0x1134] = "仫", [0x1135] = "仳", [0x1136] = "仵", [0x1137] = "伉", [0x1138] = "伛", [0x1139] = "伢", [0x113A] = "伥", [0x113B] = "伧", [0x113C] = "伲", [0x113D] = "佗", [0x113E] = "佘", [0x113F] = "佚", [0x1140] = "佝", [0x1141] = "佞", [0x1142] = "佟", [0x1143] = "佤", [0x1144] = "佥", [0x1145] = "佧", [0x1146] = "佰", [0x1147] = "佴", [0x1148] = "佶", [0x1149] = "佻", [0x114A] = "佼", [0x114B] = "佾", [0x114C] = "侃", [0x114D] = "侉", [0x114E] = "侏", [0x114F] = "侑", [0x1150] = "侔", [0x1151] = "侗", [0x1152] = "侥", [0x1153] = "侩", [0x1154] = "侪", [0x1155] = "俅", [0x1156] = "俎", [0x1157] = "俑", [0x1158] = "俚", [0x1159] = "俜", [0x115A] = "俞", [0x115B] = "俟", [0x115C] = "俣", [0x115D] = "俦", [0x115E] = "俨", [0x115F] = "俪", [0x1160] = "俳", [0x1161] = "俸", [0x1162] = "俾", [0x1163] = "倌", [0x1164] = "倏", [0x1165] = "倔", [0x1166] = "倜", [0x1167] = "倥", [0x1168] = "倨", [0x1169] = "倭", [0x116A] = "倮", [0x116B] = "偃", [0x116C] = "偈", [0x116D] = "偬", [0x116E] = "偻", [0x116F] = "偾", [0x1170] = "傀", [0x1171] = "傈", [0x1172] = "傣", [0x1173] = "傥", [0x1174] = "傧", [0x1175] = "傩", [0x1176] = "傺", [0x1177] = "僖", [0x1178] = "僦", [0x1179] = "僬", [0x117A] = "僭", [0x117B] = "僮", [0x117C] = "僳", [0x117D] = "儆", [0x117E] = "儇", [0x117F] = "儋", [0x1180] = "儡", [0x1181] = "兕", [0x1182] = "兖", [0x1183] = "冀", [0x1184] = "冁", [0x1185] = "冂", [0x1186] = "冖", [0x1187] = "冗", [0x1188] = "冢", [0x1189] = "冫", [0x118A] = "冯", [0x118B] = "冱", [0x118C] = "冼", [0x118D] = "凇", [0x118E] = "凫", [0x118F] = "凵", [0x1190] = "凼", [0x1191] = "刁", [0x1192] = "刂", [0x1193] = "刈", [0x1194] = "刍", [0x1195] = "刎", [0x1196] = "刖", [0x1197] = "刭", [0x1198] = "刳", [0x1199] = "刽", [0x119A] = "刿", [0x119B] = "剀", [0x119C] = "剌", [0x119D] = "剐", [0x119E] = "剜", [0x119F] = "剞", [0x11A0] = "剡", [0x11A1] = "剽", [0x11A2] = "剿", [0x11A3] = "劁", [0x11A4] = "劂", [0x11A5] = "劐", [0x11A6] = "劓", [0x11A7] = "劢", [0x11A8] = "劬", [0x11A9] = "劭", [0x11AA] = "劾", [0x11AB] = "勐", [0x11AC] = "勖", [0x11AD] = "勰", [0x11AE] = "勹", [0x11AF] = "匏", [0x11B0] = "匚", [0x11B1] = "匝", [0x11B2] = "匡", [0x11B3] = "匦", [0x11B4] = "匮", [0x11B5] = "匾", [0x11B6] = "卅", [0x11B7] = "卞", [0x11B8] = "卣", [0x11B9] = "卤", [0x11BA] = "卦", [0x11BB] = "卩", [0x11BC] = "卮", [0x11BD] = "卺", [0x11BE] = "厍", [0x11BF] = "厝", [0x11C0] = "厣", [0x11C1] = "厩", [0x11C2] = "厶", [0x11C3] = "叁", [0x11C4] = "叟", [0x11C5] = "叱", [0x11C6] = "叵", [0x11C7] = "叻", [0x11C8] = "吏", [0x11C9] = "吣", [0x11CA] = "吲", [0x11CB] = "呋", [0x11CC] = "呓", [0x11CD] = "呙", [0x11CE] = "咛", [0x11CF] = "咤", [0x11D0] = "咭", [0x11D1] = "咴", [0x11D2] = "哂", [0x11D3] = "哌", [0x11D4] = "哏", [0x11D5] = "哓", [0x11D6] = "哕", [0x11D7] = "哙", [0x11D8] = "哚", [0x11D9] = "哜", [0x11DA] = "哳", [0x11DB] = "哽", [0x11DC] = "哿", [0x11DD] = "唁", [0x11DE] = "唆", [0x11DF] = "唛", [0x11E0] = "唢", [0x11E1] = "唣", [0x11E2] = "唪", [0x11E3] = "唳", [0x11E4] = "唼", [0x11E5] = "唿", [0x11E6] = "啁", [0x11E7] = "啉", [0x11E8] = "啐", [0x11E9] = "啕", [0x11EA] = "啖", [0x11EB] = "啧", [0x11EC] = "啭", [0x11ED] = "啮", [0x11EE] = "啶", [0x11EF] = "啻", [0x11F0] = "喈", [0x11F1] = "喑", [0x11F2] = "喟", [0x11F3] = "喹", [0x11F4] = "喾", [0x11F5] = "嗉", [0x11F6] = "嗌", [0x11F7] = "嗍", [0x11F8] = "嗑", [0x11F9] = "嗔", [0x11FA] = "嗟", [0x11FB] = "嗥", [0x11FC] = "嗪", [0x11FD] = "嗫", [0x11FE] = "嗲", [0x11FF] = "嗾", [0x1200] = "嘌", [0x1201] = "嘏", [0x1202] = "嘧", [0x1203] = "嘬", [0x1204] = "嘹", [0x1205] = "噌", [0x1206] = "噍", [0x1207] = "噘", [0x1208] = "噙", [0x1209] = "噤", [0x120A] = "噱", [0x120B] = "嚅", [0x120C] = "嚆", [0x120D] = "囗", [0x120E] = "囚", [0x120F] = "囝", [0x1210] = "囟", [0x1211] = "囡", [0x1212] = "囤", [0x1213] = "囫", [0x1214] = "囵", [0x1215] = "囹", [0x1216] = "囿", [0x1217] = "圄", [0x1218] = "圉", [0x1219] = "圊", [0x121A] = "圜", [0x121B] = "圩", [0x121C] = "圪", [0x121D] = "圬", [0x121E] = "圮", [0x121F] = "圯", [0x1220] = "圹", [0x1221] = "圻", [0x1222] = "坌", [0x1223] = "坜", [0x1224] = "坞", [0x1225] = "坤", [0x1226] = "坨", [0x1227] = "坩", [0x1228] = "坫", [0x1229] = "坭", [0x122A] = "坯", [0x122B] = "坳", [0x122C] = "坶", [0x122D] = "坻", [0x122E] = "坼", [0x122F] = "垅", [0x1230] = "垆", [0x1231] = "垌", [0x1232] = "垓", [0x1233] = "垛", [0x1234] = "垡", [0x1235] = "垣", [0x1236] = "垤", [0x1237] = "垧", [0x1238] = "垩", [0x1239] = "垭", [0x123A] = "垲", [0x123B] = "垴", [0x123C] = "垸", [0x123D] = "埂", [0x123E] = "埏", [0x123F] = "埒", [0x1240] = "埕", [0x1241] = "埘", [0x1242] = "埙", [0x1243] = "埚", [0x1244] = "埝", [0x1245] = "埠", [0x1246] = "埤", [0x1247] = "埭", [0x1248] = "埯", [0x1249] = "埴", [0x124A] = "埸", [0x124B] = "埽", [0x124C] = "堋", [0x124D] = "堍", [0x124E] = "堑", [0x124F] = "堕", [0x1250] = "堙", [0x1251] = "堞", [0x1252] = "堠", [0x1253] = "堰", [0x1254] = "塄", [0x1255] = "塍", [0x1256] = "塥", [0x1257] = "塬", [0x1258] = "塾", [0x1259] = "墀", [0x125A] = "墁", [0x125B] = "墉", [0x125C] = "墒", [0x125D] = "墚", [0x125E] = "墼", [0x125F] = "壅", [0x1260] = "壕", [0x1261] = "壹", [0x1262] = "夂", [0x1263] = "夔", [0x1264] = "夙", [0x1265] = "夤", [0x1266] = "夥", [0x1267] = "夯", [0x1268] = "夼", [0x1269] = "奁", [0x126A] = "奂", [0x126B] = "奎", [0x126C] = "奘", [0x126D] = "奚", [0x126E] = "妁", [0x126F] = "妊", [0x1270] = "妗", [0x1271] = "妣", [0x1272] = "妪", [0x1273] = "妫", [0x1274] = "妯", [0x1275] = "妾", [0x1276] = "姊", [0x1277] = "姒", [0x1278] = "姘", [0x1279] = "姝", [0x127A] = "姣", [0x127B] = "姹", [0x127C] = "娆", [0x127D] = "娈", [0x127E] = "娉", [0x127F] = "娌", [0x1280] = "娓", [0x1281] = "娟", [0x1282] = "娠", [0x1283] = "娣", [0x1284] = "娩", [0x1285] = "娲", [0x1286] = "娶", [0x1287] = "娼", [0x1288] = "婀", [0x1289] = "婊", [0x128A] = "婢", [0x128B] = "婧", [0x128C] = "婵", [0x128D] = "婺", [0x128E] = "婿", [0x128F] = "媪", [0x1290] = "媵", [0x1291] = "媸", [0x1292] = "媾", [0x1293] = "嫒", [0x1294] = "嫔", [0x1295] = "嫖", [0x1296] = "嫘", [0x1297] = "嫜", [0x1298] = "嫠", [0x1299] = "嫡", [0x129A] = "嫣", [0x129B] = "嫫", [0x129C] = "嫱", [0x129D] = "嬖", [0x129E] = "嬗", [0x129F] = "嬲", [0x12A0] = "嬴", [0x12A1] = "嬷", [0x12A2] = "孀", [0x12A3] = "孑", [0x12A4] = "孓", [0x12A5] = "孚", [0x12A6] = "孛", [0x12A7] = "孥", [0x12A8] = "孬", [0x12A9] = "孰", [0x12AA] = "孳", [0x12AB] = "孺", [0x12AC] = "宀", [0x12AD] = "宄", [0x12AE] = "宓", [0x12AF] = "宕", [0x12B0] = "宥", [0x12B1] = "宦", [0x12B2] = "宸", [0x12B3] = "寤", [0x12B4] = "寥", [0x12B5] = "寮", [0x12B6] = "寰", [0x12B7] = "尉", [0x12B8] = "尕", [0x12B9] = "尜", [0x12BA] = "尢", [0x12BB] = "尥", [0x12BC] = "尧", [0x12BD] = "尹", [0x12BE] = "屉", [0x12BF] = "屐", [0x12C0] = "屙", [0x12C1] = "屣", [0x12C2] = "屦", [0x12C3] = "屮", [0x12C4] = "屺", [0x12C5] = "岈", [0x12C6] = "岌", [0x12C7] = "岍", [0x12C8] = "岑", [0x12C9] = "岘", [0x12CA] = "岙", [0x12CB] = "岜", [0x12CC] = "岢", [0x12CD] = "岣", [0x12CE] = "岫", [0x12CF] = "岵", [0x12D0] = "岷", [0x12D1] = "岽", [0x12D2] = "岿", [0x12D3] = "峁", [0x12D4] = "峄", [0x12D5] = "峋", [0x12D6] = "峒", [0x12D7] = "峤", [0x12D8] = "峥", [0x12D9] = "峪", [0x12DA] = "崂", [0x12DB] = "崃", [0x12DC] = "崆", [0x12DD] = "崔", [0x12DE] = "崞", [0x12DF] = "崤", [0x12E0] = "崦", [0x12E1] = "崧", [0x12E2] = "崮", [0x12E3] = "崴", [0x12E4] = "崾", [0x12E5] = "嵇", [0x12E6] = "嵊", [0x12E7] = "嵋", [0x12E8] = "嵘", [0x12E9] = "嵛", [0x12EA] = "嵝", [0x12EB] = "嵫", [0x12EC] = "嵬", [0x12ED] = "嵯", [0x12EE] = "嵴", [0x12EF] = "嶂", [0x12F0] = "嶙", [0x12F1] = "嶝", [0x12F2] = "嶷", [0x12F3] = "巛", [0x12F4] = "巯", [0x12F5] = "巽", [0x12F6] = "帏", [0x12F7] = "帑", [0x12F8] = "帔", [0x12F9] = "帙", [0x12FA] = "帚", [0x12FB] = "帱", [0x12FC] = "帻", [0x12FD] = "帼", [0x12FE] = "幂", [0x12FF] = "幄", [0x1300] = "幛", [0x1301] = "幞", [0x1302] = "庀", [0x1303] = "庋", [0x1304] = "庐", [0x1305] = "庑", [0x1306] = "庖", [0x1307] = "庚", [0x1308] = "庠", [0x1309] = "庥", [0x130A] = "庳", [0x130B] = "庹", [0x130C] = "庾", [0x130D] = "廑", [0x130E] = "廒", [0x130F] = "廖", [0x1310] = "廛", [0x1311] = "廨", [0x1312] = "廪", [0x1313] = "廴", [0x1314] = "廾", [0x1315] = "弁", [0x1316] = "弈", [0x1317] = "弋", [0x1318] = "弑", [0x1319] = "弪", [0x131A] = "弭", [0x131B] = "弼", [0x131C] = "彀", [0x131D] = "彐", [0x131E] = "彖", [0x131F] = "彘", [0x1320] = "彝", [0x1321] = "彡", [0x1322] = "彤", [0x1323] = "彪", [0x1324] = "彳", [0x1325] = "徂", [0x1326] = "徇", [0x1327] = "徉", [0x1328] = "後", [0x1329] = "徕", [0x132A] = "徜", [0x132B] = "徭", [0x132C] = "徵", [0x132D] = "徼", [0x132E] = "忄", [0x132F] = "忉", [0x1330] = "忏", [0x1331] = "忖", [0x1332] = "忝", [0x1333] = "忡", [0x1334] = "忭", [0x1335] = "忮", [0x1336] = "忸", [0x1337] = "忻", [0x1338] = "忾", [0x1339] = "忿", [0x133A] = "怃", [0x133B] = "怄", [0x133C] = "怆", [0x133D] = "怊", [0x133E] = "怍", [0x133F] = "怔", [0x1340] = "怙", [0x1341] = "怛", [0x1342] = "怩", [0x1343] = "怫", [0x1344] = "怵", [0x1345] = "怼", [0x1346] = "怿", [0x1347] = "恁", [0x1348] = "恂", [0x1349] = "恃", [0x134A] = "恍", [0x134B] = "恚", [0x134C] = "恝", [0x134D] = "恣", [0x134E] = "恧", [0x134F] = "恪", [0x1350] = "恸", [0x1351] = "恹", [0x1352] = "恺", [0x1353] = "恻", [0x1354] = "恽", [0x1355] = "恿", [0x1356] = "悃", [0x1357] = "悌", [0x1358] = "悒", [0x1359] = "悖", [0x135A] = "悛", [0x135B] = "悝", [0x135C] = "悫", [0x135D] = "悭", [0x135E] = "悱", [0x135F] = "悻", [0x1360] = "惚", [0x1361] = "惝", [0x1362] = "惟", [0x1363] = "惦", [0x1364] = "惴", [0x1365] = "惶", [0x1366] = "愀", [0x1367] = "愆", [0x1368] = "愍", [0x1369] = "愎", [0x136A] = "愠", [0x136B] = "愦", [0x136C] = "愫", [0x136D] = "慊", [0x136E] = "慝", [0x136F] = "憝", [0x1370] = "憷", [0x1371] = "懋", [0x1372] = "懑", [0x1373] = "懔", [0x1374] = "懵", [0x1375] = "懿", [0x1376] = "戆", [0x1377] = "戊", [0x1378] = "戋", [0x1379] = "戌", [0x137A] = "戍", [0x137B] = "戎", [0x137C] = "戕", [0x137D] = "戗", [0x137E] = "戛", [0x137F] = "戟", [0x1380] = "戡", [0x1381] = "戢", [0x1382] = "戤", [0x1383] = "戥", [0x1384] = "戬", [0x1385] = "戮", [0x1386] = "戽", [0x1387] = "戾", [0x1388] = "扃", [0x1389] = "扈", [0x138A] = "扌", [0x138B] = "扦", [0x138C] = "扪", [0x138D] = "抉", [0x138E] = "抒", [0x138F] = "抟", [0x1390] = "抨", [0x1391] = "抻", [0x1392] = "抿", [0x1393] = "拄", [0x1394] = "拇", [0x1395] = "拈", [0x1396] = "拊", [0x1397] = "拎", [0x1398] = "拚", [0x1399] = "拮", [0x139A] = "拶", [0x139B] = "挈", [0x139C] = "挛", [0x139D] = "挞", [0x139E] = "挟", [0x139F] = "挢", [0x13A0] = "挲", [0x13A1] = "挹", [0x13A2] = "捃", [0x13A3] = "捅", [0x13A4] = "捋", [0x13A5] = "捌", [0x13A6] = "捍", [0x13A7] = "捭", [0x13A8] = "捱", [0x13A9] = "捻", [0x13AA] = "掂", [0x13AB] = "掇", [0x13AC] = "掊", [0x13AD] = "掎", [0x13AE] = "掐", [0x13AF] = "掖", [0x13B0] = "掣", [0x13B1] = "掬", [0x13B2] = "掭", [0x13B3] = "掮", [0x13B4] = "掴", [0x13B5] = "掼", [0x13B6] = "掾", [0x13B7] = "揄", [0x13B8] = "揆", [0x13B9] = "揎", [0x13BA] = "揖", [0x13BB] = "揞", [0x13BC] = "揠", [0x13BD] = "揩", [0x13BE] = "揲", [0x13BF] = "揶", [0x13C0] = "揸", [0x13C1] = "揽", [0x13C2] = "揿", [0x13C3] = "搀", [0x13C4] = "搋", [0x13C5] = "搌", [0x13C6] = "搛", [0x13C7] = "搠", [0x13C8] = "搦", [0x13C9] = "搪", [0x13CA] = "搴", [0x13CB] = "搽", [0x13CC] = "搿", [0x13CD] = "摅", [0x13CE] = "摈", [0x13CF] = "摞", [0x13D0] = "摭", [0x13D1] = "摹", [0x13D2] = "摺", [0x13D3] = "撂", [0x13D4] = "撄", [0x13D5] = "撅", [0x13D6] = "撖", [0x13D7] = "撙", [0x13D8] = "撩", [0x13D9] = "撬", [0x13DA] = "撮", [0x13DB] = "撰", [0x13DC] = "撵", [0x13DD] = "撷", [0x13DE] = "撸", [0x13DF] = "撺", [0x13E0] = "擀", [0x13E1] = "擐", [0x13E2] = "擗", [0x13E3] = "擘", [0x13E4] = "擢", [0x13E5] = "擤", [0x13E6] = "攉", [0x13E7] = "攫", [0x13E8] = "攮", [0x13E9] = "攴", [0x13EA] = "攵", [0x13EB] = "敉", [0x13EC] = "敕", [0x13ED] = "敖", [0x13EE] = "敝", [0x13EF] = "敫", [0x13F0] = "斌", [0x13F1] = "斛", [0x13F2] = "斟", [0x13F3] = "斡", [0x13F4] = "斫", [0x13F5] = "於", [0x13F6] = "旃", [0x13F7] = "旄", [0x13F8] = "旆", [0x13F9] = "旌", [0x13FA] = "旎", [0x13FB] = "旒", [0x13FC] = "旖", [0x13FD] = "旮", [0x13FE] = "旯", [0x13FF] = "旰", [0x1400] = "昀", [0x1401] = "昃", [0x1402] = "昊", [0x1403] = "昕", [0x1404] = "昝", [0x1405] = "昱", [0x1406] = "昴", [0x1407] = "晁", [0x1408] = "晏", [0x1409] = "晔", [0x140A] = "晗", [0x140B] = "晟", [0x140C] = "晡", [0x140D] = "晤", [0x140E] = "晦", [0x140F] = "晷", [0x1410] = "暌", [0x1411] = "暝", [0x1412] = "暨", [0x1413] = "暾", [0x1414] = "曛", [0x1415] = "曜", [0x1416] = "曦", [0x1417] = "曩", [0x1418] = "曰", [0x1419] = "曷", [0x141A] = "曹", [0x141B] = "朊", [0x141C] = "朐", [0x141D] = "朕", [0x141E] = "杌", [0x141F] = "杓", [0x1420] = "杞", [0x1421] = "杩", [0x1422] = "杪", [0x1423] = "杭", [0x1424] = "杲", [0x1425] = "杼", [0x1426] = "枋", [0x1427] = "枘", [0x1428] = "枞", [0x1429] = "枢", [0x142A] = "枧", [0x142B] = "枨", [0x142C] = "枰", [0x142D] = "枵", [0x142E] = "柁", [0x142F] = "柃", [0x1430] = "柒", [0x1431] = "柘", [0x1432] = "柙", [0x1433] = "柝", [0x1434] = "柢", [0x1435] = "柩", [0x1436] = "柰", [0x1437] = "柽", [0x1438] = "栀", [0x1439] = "栊", [0x143A] = "栌", [0x143B] = "栓", [0x143C] = "栝", [0x143D] = "栩", [0x143E] = "栲", [0x143F] = "栳", [0x1440] = "栾", [0x1441] = "桁", [0x1442] = "桅", [0x1443] = "桉", [0x1444] = "桊", [0x1445] = "桎", [0x1446] = "桓", [0x1447] = "桕", [0x1448] = "桠", [0x1449] = "桡", [0x144A] = "桢", [0x144B] = "桤", [0x144C] = "桦", [0x144D] = "桫", [0x144E] = "桴", [0x144F] = "桷", [0x1450] = "梃", [0x1451] = "梏", [0x1452] = "棂", [0x1453] = "棠", [0x1454] = "棣", [0x1455] = "棰", [0x1456] = "棹", [0x1457] = "棼", [0x1458] = "椁", [0x1459] = "椐", [0x145A] = "椟", [0x145B] = "椠", [0x145C] = "椤", [0x145D] = "椭", [0x145E] = "椴", [0x145F] = "椹", [0x1460] = "椽", [0x1461] = "楂", [0x1462] = "楗", [0x1463] = "楝", [0x1464] = "楞", [0x1465] = "楣", [0x1466] = "楦", [0x1467] = "楫", [0x1468] = "楮", [0x1469] = "楱", [0x146A] = "楸", [0x146B] = "楹", [0x146C] = "榀", [0x146D] = "榄", [0x146E] = "榇", [0x146F] = "榈", [0x1470] = "榉", [0x1471] = "榍", [0x1472] = "榕", [0x1473] = "榘", [0x1474] = "榧", [0x1475] = "榫", [0x1476] = "榭", [0x1477] = "榱", [0x1478] = "榷", [0x1479] = "槁", [0x147A] = "槊", [0x147B] = "槎", [0x147C] = "槔", [0x147D] = "槛", [0x147E] = "槠", [0x147F] = "槭", [0x1480] = "槲", [0x1481] = "槿", [0x1482] = "樊", [0x1483] = "樗", [0x1484] = "樘", [0x1485] = "樟", [0x1486] = "樨", [0x1487] = "樯", [0x1488] = "樾", [0x1489] = "橄", [0x148A] = "橇", [0x148B] = "橐", [0x148C] = "橛", [0x148D] = "橥", [0x148E] = "橹", [0x148F] = "橼", [0x1490] = "檀", [0x1491] = "檄", [0x1492] = "檎", [0x1493] = "檑", [0x1494] = "檗", [0x1495] = "檠", [0x1496] = "檩", [0x1497] = "檫", [0x1498] = "欤", [0x1499] = "欷", [0x149A] = "欹", [0x149B] = "歃", [0x149C] = "歆", [0x149D] = "歙", [0x149E] = "殁", [0x149F] = "殂", [0x14A0] = "殇", [0x14A1] = "殉", [0x14A2] = "殍", [0x14A3] = "殒", [0x14A4] = "殓", [0x14A5] = "殚", [0x14A6] = "殛", [0x14A7] = "殡", [0x14A8] = "殪", [0x14A9] = "殳", [0x14AA] = "毂", [0x14AB] = "毓", [0x14AC] = "毖", [0x14AD] = "毡", [0x14AE] = "毪", [0x14AF] = "毳", [0x14B0] = "毵", [0x14B1] = "毹", [0x14B2] = "氅", [0x14B3] = "氆", [0x14B4] = "氇", [0x14B5] = "氍", [0x14B6] = "氐", [0x14B7] = "氕", [0x14B8] = "氖", [0x14B9] = "氘", [0x14BA] = "氙", [0x14BB] = "氚", [0x14BC] = "氟", [0x14BD] = "氡", [0x14BE] = "氢", [0x14BF] = "氤", [0x14C0] = "氦", [0x14C1] = "氨", [0x14C2] = "氩", [0x14C3] = "氪", [0x14C4] = "氮", [0x14C5] = "氯", [0x14C6] = "氰", [0x14C7] = "氲", [0x14C8] = "氵", [0x14C9] = "氽", [0x14CA] = "汆", [0x14CB] = "汊", [0x14CC] = "汔", [0x14CD] = "汕", [0x14CE] = "汛", [0x14CF] = "汜", [0x14D0] = "汞", [0x14D1] = "汨", [0x14D2] = "汩", [0x14D3] = "汴", [0x14D4] = "汾", [0x14D5] = "沂", [0x14D6] = "沅", [0x14D7] = "沆", [0x14D8] = "沏", [0x14D9] = "沔", [0x14DA] = "沣", [0x14DB] = "沤", [0x14DC] = "沩", [0x14DD] = "沪", [0x14DE] = "沭", [0x14DF] = "沲", [0x14E0] = "沽", [0x14E1] = "泐", [0x14E2] = "泓", [0x14E3] = "泔", [0x14E4] = "泖", [0x14E5] = "泗", [0x14E6] = "泠", [0x14E7] = "泫", [0x14E8] = "泮", [0x14E9] = "泯", [0x14EA] = "泶", [0x14EB] = "泸", [0x14EC] = "泺", [0x14ED] = "泾", [0x14EE] = "洇", [0x14EF] = "洌", [0x14F0] = "洎", [0x14F1] = "洙", [0x14F2] = "洚", [0x14F3] = "洧", [0x14F4] = "洫", [0x14F5] = "洮", [0x14F6] = "洱", [0x14F7] = "洳", [0x14F8] = "洵", [0x14F9] = "洹", [0x14FA] = "浈", [0x14FB] = "浍", [0x14FC] = "浒", [0x14FD] = "浔", [0x14FE] = "浚", [0x14FF] = "浞", [0x1500] = "浠", [0x1501] = "浣", [0x1502] = "浯", [0x1503] = "浼", [0x1504] = "涑", [0x1505] = "涔", [0x1506] = "涞", [0x1507] = "涠", [0x1508] = "涪", [0x1509] = "涫", [0x150A] = "涮", [0x150B] = "涿", [0x150C] = "淄", [0x150D] = "淖", [0x150E] = "淙", [0x150F] = "淝", [0x1510] = "淞", [0x1511] = "淠", [0x1512] = "淦", [0x1513] = "淫", [0x1514] = "淬", [0x1515] = "淮", [0x1516] = "淼", [0x1517] = "渌", [0x1518] = "渎", [0x1519] = "渑", [0x151A] = "渖", [0x151B] = "渝", [0x151C] = "渤", [0x151D] = "渥", [0x151E] = "渫", [0x151F] = "渭", [0x1520] = "渲", [0x1521] = "湄", [0x1522] = "湎", [0x1523] = "湓", [0x1524] = "湔", [0x1525] = "湟", [0x1526] = "湫", [0x1527] = "湮", [0x1528] = "溆", [0x1529] = "溏", [0x152A] = "溘", [0x152B] = "溟", [0x152C] = "溥", [0x152D] = "溧", [0x152E] = "溱", [0x152F] = "溲", [0x1530] = "溴", [0x1531] = "溷", [0x1532] = "溻", [0x1533] = "溽", [0x1534] = "滁", [0x1535] = "滇", [0x1536] = "滏", [0x1537] = "滓", [0x1538] = "滗", [0x1539] = "滠", [0x153A] = "滢", [0x153B] = "滦", [0x153C] = "滹", [0x153D] = "漕", [0x153E] = "漤", [0x153F] = "漭", [0x1540] = "漯", [0x1541] = "漳", [0x1542] = "漶", [0x1543] = "潆", [0x1544] = "潍", [0x1545] = "潞", [0x1546] = "潢", [0x1547] = "潲", [0x1548] = "潴", [0x1549] = "潸", [0x154A] = "潼", [0x154B] = "澉", [0x154C] = "澌", [0x154D] = "澍", [0x154E] = "澧", [0x154F] = "澶", [0x1550] = "澹", [0x1551] = "濂", [0x1552] = "濉", [0x1553] = "濞", [0x1554] = "濠", [0x1555] = "濡", [0x1556] = "濮", [0x1557] = "濯", [0x1558] = "瀛", [0x1559] = "瀣", [0x155A] = "瀵", [0x155B] = "瀹", [0x155C] = "灏", [0x155D] = "灬", [0x155E] = "灸", [0x155F] = "炀", [0x1560] = "炅", [0x1561] = "炔", [0x1562] = "炜", [0x1563] = "炝", [0x1564] = "炱", [0x1565] = "炷", [0x1566] = "炻", [0x1567] = "烀", [0x1568] = "烃", [0x1569] = "烙", [0x156A] = "烨", [0x156B] = "烩", [0x156C] = "烯", [0x156D] = "烷", [0x156E] = "焊", [0x156F] = "焓", [0x1570] = "焖", [0x1571] = "焘", [0x1572] = "焯", [0x1573] = "焱", [0x1574] = "煊", [0x1575] = "煜", [0x1576] = "煨", [0x1577] = "煲", [0x1578] = "煳", [0x1579] = "煸", [0x157A] = "煺", [0x157B] = "熘", [0x157C] = "熨", [0x157D] = "熳", [0x157E] = "熵", [0x157F] = "熹", [0x1580] = "燎", [0x1581] = "燔", [0x1582] = "燠", [0x1583] = "燧", [0x1584] = "燮", [0x1585] = "燹", [0x1586] = "爝", [0x1587] = "爨", [0x1588] = "爰", [0x1589] = "爻", [0x158A] = "爿", [0x158B] = "牍", [0x158C] = "牒", [0x158D] = "牖", [0x158E] = "牦", [0x158F] = "牮", [0x1590] = "牯", [0x1591] = "牾", [0x1592] = "牿", [0x1593] = "犋", [0x1594] = "犍", [0x1595] = "犏", [0x1596] = "犟", [0x1597] = "犭", [0x1598] = "犰", [0x1599] = "犴", [0x159A] = "狁", [0x159B] = "狍", [0x159C] = "狎", [0x159D] = "狒", [0x159E] = "狞", [0x159F] = "狨", [0x15A0] = "狯", [0x15A1] = "狰", [0x15A2] = "狲", [0x15A3] = "狳", [0x15A4] = "狴", [0x15A5] = "狷", [0x15A6] = "狺", [0x15A7] = "狻", [0x15A8] = "猁", [0x15A9] = "猃", [0x15AA] = "猊", [0x15AB] = "猓", [0x15AC] = "猕", [0x15AD] = "猖", [0x15AE] = "猗", [0x15AF] = "猝", [0x15B0] = "猞", [0x15B1] = "猡", [0x15B2] = "猢", [0x15B3] = "猱", [0x15B4] = "猷", [0x15B5] = "猸", [0x15B6] = "猹", [0x15B7] = "獍", [0x15B8] = "獐", [0x15B9] = "獒", [0x15BA] = "獗", [0x15BB] = "獬", [0x15BC] = "獯", [0x15BD] = "獾", [0x15BE] = "玎", [0x15BF] = "玑", [0x15C0] = "玟", [0x15C1] = "玢", [0x15C2] = "玳", [0x15C3] = "玷", [0x15C4] = "珉", [0x15C5] = "珏", [0x15C6] = "珙", [0x15C7] = "珞", [0x15C8] = "珥", [0x15C9] = "珧", [0x15CA] = "珩", [0x15CB] = "珲", [0x15CC] = "琊", [0x15CD] = "琏", [0x15CE] = "琐", [0x15CF] = "琚", [0x15D0] = "琛", [0x15D1] = "琨", [0x15D2] = "琬", [0x15D3] = "琮", [0x15D4] = "琰", [0x15D5] = "瑁", [0x15D6] = "瑗", [0x15D7] = "瑛", [0x15D8] = "瑭", [0x15D9] = "瑷", [0x15DA] = "瑾", [0x15DB] = "璁", [0x15DC] = "璋", [0x15DD] = "璎", [0x15DE] = "璜", [0x15DF] = "璧", [0x15E0] = "璩", [0x15E1] = "璺", [0x15E2] = "瓒", [0x15E3] = "瓞", [0x15E4] = "瓠", [0x15E5] = "瓤", [0x15E6] = "瓮", [0x15E7] = "瓯", [0x15E8] = "瓴", [0x15E9] = "瓷", [0x15EA] = "瓿", [0x15EB] = "甄", [0x15EC] = "甍", [0x15ED] = "甏", [0x15EE] = "甑", [0x15EF] = "甓", [0x15F0] = "甙", [0x15F1] = "甥", [0x15F2] = "甫", [0x15F3] = "甬", [0x15F4] = "甯", [0x15F5] = "町", [0x15F6] = "甾", [0x15F7] = "畀", [0x15F8] = "畈", [0x15F9] = "畋", [0x15FA] = "畎", [0x15FB] = "畚", [0x15FC] = "畛", [0x15FD] = "畦", [0x15FE] = "畲", [0x15FF] = "畴", [0x1600] = "畸", [0x1601] = "畹", [0x1602] = "畿", [0x1603] = "疃", [0x1604] = "疋", [0x1605] = "疒", [0x1606] = "疔", [0x1607] = "疖", [0x1608] = "疝", [0x1609] = "疟", [0x160A] = "疠", [0x160B] = "疡", [0x160C] = "疣", [0x160D] = "疥", [0x160E] = "疬", [0x160F] = "疰", [0x1610] = "疱", [0x1611] = "疳", [0x1612] = "疴", [0x1613] = "疵", [0x1614] = "疸", [0x1615] = "疹", [0x1616] = "疽", [0x1617] = "痂", [0x1618] = "痃", [0x1619] = "痄", [0x161A] = "痈", [0x161B] = "痉", [0x161C] = "痍", [0x161D] = "痔", [0x161E] = "痖", [0x161F] = "痘", [0x1620] = "痢", [0x1621] = "痣", [0x1622] = "痤", [0x1623] = "痦", [0x1624] = "痧", [0x1625] = "痨", [0x1626] = "痪", [0x1627] = "痫", [0x1628] = "痱", [0x1629] = "痼", [0x162A] = "痿", [0x162B] = "瘀", [0x162C] = "瘁", [0x162D] = "瘃", [0x162E] = "瘅", [0x162F] = "瘊", [0x1630] = "瘌", [0x1631] = "瘐", [0x1632] = "瘕", [0x1633] = "瘗", [0x1634] = "瘘", [0x1635] = "瘛", [0x1636] = "瘟", [0x1637] = "瘠", [0x1638] = "瘢", [0x1639] = "瘤", [0x163A] = "瘥", [0x163B] = "瘭", [0x163C] = "瘰", [0x163D] = "瘳", [0x163E] = "瘴", [0x163F] = "瘵", [0x1640] = "瘸", [0x1641] = "瘼", [0x1642] = "瘿", [0x1643] = "癀", [0x1644] = "癃", [0x1645] = "癌", [0x1646] = "癍", [0x1647] = "癔", [0x1648] = "癜", [0x1649] = "癞", [0x164A] = "癣", [0x164B] = "癫", [0x164C] = "癯", [0x164D] = "癸", [0x164E] = "皈", [0x164F] = "皑", [0x1650] = "皖", [0x1651] = "皙", [0x1652] = "皤", [0x1653] = "皲", [0x1654] = "皴", [0x1655] = "盂", [0x1656] = "盅", [0x1657] = "盍", [0x1658] = "盥", [0x1659] = "盱", [0x165A] = "眄", [0x165B] = "眇", [0x165C] = "眈", [0x165D] = "眍", [0x165E] = "眙", [0x165F] = "眚", [0x1660] = "眢", [0x1661] = "眦", [0x1662] = "眭", [0x1663] = "眵", [0x1664] = "睃", [0x1665] = "睇", [0x1666] = "睑", [0x1667] = "睚", [0x1668] = "睢", [0x1669] = "睥", [0x166A] = "睨", [0x166B] = "睽", [0x166C] = "睾", [0x166D] = "瞀", [0x166E] = "瞍", [0x166F] = "瞟", [0x1670] = "瞠", [0x1671] = "瞢", [0x1672] = "瞥", [0x1673] = "瞵", [0x1674] = "瞻", [0x1675] = "瞽", [0x1676] = "瞿", [0x1677] = "矍", [0x1678] = "矣", [0x1679] = "矧", [0x167A] = "矬", [0x167B] = "矽", [0x167C] = "矾", [0x167D] = "砀", [0x167E] = "砉", [0x167F] = "砑", [0x1680] = "砒", [0x1681] = "砘", [0x1682] = "砚", [0x1683] = "砜", [0x1684] = "砝", [0x1685] = "砟", [0x1686] = "砣", [0x1687] = "砥", [0x1688] = "砦", [0x1689] = "砧", [0x168A] = "砩", [0x168B] = "砬", [0x168C] = "砭", [0x168D] = "砷", [0x168E] = "砹", [0x168F] = "砻", [0x1690] = "砼", [0x1691] = "硅", [0x1692] = "硇", [0x1693] = "硌", [0x1694] = "硎", [0x1695] = "硐", [0x1696] = "硒", [0x1697] = "硖", [0x1698] = "硗", [0x1699] = "硝", [0x169A] = "硪", [0x169B] = "硭", [0x169C] = "硷", [0x169D] = "硼", [0x169E] = "碇", [0x169F] = "碓", [0x16A0] = "碘", [0x16A1] = "碚", [0x16A2] = "碛", [0x16A3] = "碡", [0x16A4] = "碣", [0x16A5] = "碥", [0x16A6] = "碱", [0x16A7] = "碲", [0x16A8] = "碹", [0x16A9] = "磉", [0x16AA] = "磔", [0x16AB] = "磙", [0x16AC] = "磬", [0x16AD] = "磲", [0x16AE] = "磴", [0x16AF] = "礅", [0x16B0] = "礓", [0x16B1] = "礞", [0x16B2] = "礤", [0x16B3] = "礴", [0x16B4] = "礻", [0x16B5] = "祁", [0x16B6] = "祆", [0x16B7] = "祉", [0x16B8] = "祓", [0x16B9] = "祗", [0x16BA] = "祚", [0x16BB] = "祛", [0x16BC] = "祜", [0x16BD] = "祢", [0x16BE] = "祧", [0x16BF] = "祯", [0x16C0] = "祺", [0x16C1] = "禀", [0x16C2] = "禊", [0x16C3] = "禚", [0x16C4] = "禧", [0x16C5] = "禳", [0x16C6] = "禹", [0x16C7] = "禺", [0x16C8] = "秉", [0x16C9] = "秕", [0x16CA] = "秣", [0x16CB] = "秫", [0x16CC] = "秭", [0x16CD] = "秸", [0x16CE] = "稂", [0x16CF] = "稃", [0x16D0] = "稆", [0x16D1] = "稗", [0x16D2] = "稞", [0x16D3] = "稣", [0x16D4] = "稷", [0x16D5] = "稹", [0x16D6] = "稽", [0x16D7] = "穑", [0x16D8] = "穸", [0x16D9] = "窀", [0x16DA] = "窆", [0x16DB] = "窈", [0x16DC] = "窕", [0x16DD] = "窖", [0x16DE] = "窠", [0x16DF] = "窦", [0x16E0] = "窨", [0x16E1] = "窬", [0x16E2] = "窭", [0x16E3] = "窳", [0x16E4] = "窿", [0x16E5] = "竣", [0x16E6] = "竦", [0x16E7] = "竽", [0x16E8] = "笄", [0x16E9] = "笆", [0x16EA] = "笈", [0x16EB] = "笊", [0x16EC] = "笏", [0x16ED] = "笕", [0x16EE] = "笤", [0x16EF] = "笥", [0x16F0] = "笪", [0x16F1] = "笫", [0x16F2] = "笮", [0x16F3] = "笱", [0x16F4] = "笳", [0x16F5] = "笸", [0x16F6] = "笾", [0x16F7] = "筅", [0x16F8] = "筇", [0x16F9] = "筌", [0x16FA] = "筘", [0x16FB] = "筚", [0x16FC] = "筢", [0x16FD] = "筮", [0x16FE] = "筱", [0x16FF] = "筲", [0x1700] = "筵", [0x1701] = "筻", [0x1702] = "箅", [0x1703] = "箐", [0x1704] = "箔", [0x1705] = "箕", [0x1706] = "箜", [0x1707] = "箝", [0x1708] = "箢", [0x1709] = "箦", [0x170A] = "箧", [0x170B] = "箨", [0x170C] = "箪", [0x170D] = "箫", [0x170E] = "箬", [0x170F] = "箴", [0x1710] = "箸", [0x1711] = "篁", [0x1712] = "篆", [0x1713] = "篌", [0x1714] = "篓", [0x1715] = "篙", [0x1716] = "篚", [0x1717] = "篡", [0x1718] = "篥", [0x1719] = "篦", [0x171A] = "篪", [0x171B] = "篱", [0x171C] = "篼", [0x171D] = "篾", [0x171E] = "簋", [0x171F] = "簏", [0x1720] = "簖", [0x1721] = "簟", [0x1722] = "簦", [0x1723] = "簪", [0x1724] = "簸", [0x1725] = "籀", [0x1726] = "籴", [0x1727] = "籼", [0x1728] = "籽", [0x1729] = "粑", [0x172A] = "粕", [0x172B] = "粜", [0x172C] = "粝", [0x172D] = "粞", [0x172E] = "粢", [0x172F] = "粤", [0x1730] = "粲", [0x1731] = "粳", [0x1732] = "粼", [0x1733] = "粽", [0x1734] = "糁", [0x1735] = "糅", [0x1736] = "糇", [0x1737] = "糈", [0x1738] = "糌", [0x1739] = "糍", [0x173A] = "糗", [0x173B] = "糜", [0x173C] = "糨", [0x173D] = "糯", [0x173E] = "糸", [0x173F] = "絷", [0x1740] = "綦", [0x1741] = "綮", [0x1742] = "縻", [0x1743] = "繇", [0x1744] = "纂", [0x1745] = "纛", [0x1746] = "纟", [0x1747] = "纡", [0x1748] = "纣", [0x1749] = "纥", [0x174A] = "纨", [0x174B] = "纩", [0x174C] = "纬", [0x174D] = "纰", [0x174E] = "绀", [0x174F] = "绁", [0x1750] = "绂", [0x1751] = "绉", [0x1752] = "绋", [0x1753] = "绌", [0x1754] = "绐", [0x1755] = "绔", [0x1756] = "绗", [0x1757] = "绛", [0x1758] = "绠", [0x1759] = "绡", [0x175A] = "绥", [0x175B] = "绦", [0x175C] = "绯", [0x175D] = "绱", [0x175E] = "绲", [0x175F] = "绶", [0x1760] = "绺", [0x1761] = "绾", [0x1762] = "缁", [0x1763] = "缂", [0x1764] = "缃", [0x1765] = "缄", [0x1766] = "缆", [0x1767] = "缋", [0x1768] = "缌", [0x1769] = "缍", [0x176A] = "缏", [0x176B] = "缑", [0x176C] = "缒", [0x176D] = "缕", [0x176E] = "缗", [0x176F] = "缙", [0x1770] = "缛", [0x1771] = "缜", [0x1772] = "缟", [0x1773] = "缡", [0x1774] = "缢", [0x1775] = "缣", [0x1776] = "缦", [0x1777] = "缧", [0x1778] = "缨", [0x1779] = "缫", [0x177A] = "缬", [0x177B] = "缯", [0x177C] = "缰", [0x177D] = "缱", [0x177E] = "缲", [0x177F] = "缳", [0x1780] = "缵", [0x1781] = "缶", [0x1782] = "罂", [0x1783] = "罄", [0x1784] = "罅", [0x1785] = "罔", [0x1786] = "罘", [0x1787] = "罟", [0x1788] = "罡", [0x1789] = "罨", [0x178A] = "罱", [0x178B] = "罴", [0x178C] = "罾", [0x178D] = "羌", [0x178E] = "羔", [0x178F] = "羚", [0x1790] = "羝", [0x1791] = "羟", [0x1792] = "羧", [0x1793] = "羯", [0x1794] = "羰", [0x1795] = "羲", [0x1796] = "羸", [0x1797] = "羼", [0x1798] = "羿", [0x1799] = "翊", [0x179A] = "翌", [0x179B] = "翕", [0x179C] = "翟", [0x179D] = "翡", [0x179E] = "翥", [0x179F] = "翦", [0x17A0] = "翮", [0x17A1] = "翳", [0x17A2] = "耄", [0x17A3] = "耆", [0x17A4] = "耋", [0x17A5] = "耒", [0x17A6] = "耔", [0x17A7] = "耖", [0x17A8] = "耘", [0x17A9] = "耙", [0x17AA] = "耜", [0x17AB] = "耠", [0x17AC] = "耢", [0x17AD] = "耥", [0x17AE] = "耦", [0x17AF] = "耧", [0x17B0] = "耨", [0x17B1] = "耩", [0x17B2] = "耪", [0x17B3] = "耱", [0x17B4] = "耵", [0x17B5] = "聃", [0x17B6] = "聆", [0x17B7] = "聍", [0x17B8] = "聩", [0x17B9] = "聱", [0x17BA] = "聿", [0x17BB] = "肀", [0x17BC] = "肄", [0x17BD] = "肇", [0x17BE] = "肋", [0x17BF] = "肓", [0x17C0] = "肛", [0x17C1] = "肜", [0x17C2] = "肟", [0x17C3] = "肫", [0x17C4] = "肭", [0x17C5] = "肷", [0x17C6] = "肼", [0x17C7] = "肽", [0x17C8] = "胂", [0x17C9] = "胍", [0x17CA] = "胗", [0x17CB] = "胙", [0x17CC] = "胚", [0x17CD] = "胛", [0x17CE] = "胝", [0x17CF] = "胥", [0x17D0] = "胨", [0x17D1] = "胩", [0x17D2] = "胪", [0x17D3] = "胫", [0x17D4] = "胬", [0x17D5] = "胭", [0x17D6] = "胯", [0x17D7] = "胰", [0x17D8] = "胱", [0x17D9] = "胲", [0x17DA] = "胺", [0x17DB] = "胼", [0x17DC] = "脍", [0x17DD] = "脎", [0x17DE] = "脒", [0x17DF] = "脓", [0x17E0] = "脔", [0x17E1] = "脘", [0x17E2] = "脞", [0x17E3] = "脬", [0x17E4] = "脯", [0x17E5] = "脲", [0x17E6] = "脶", [0x17E7] = "腈", [0x17E8] = "腋", [0x17E9] = "腑", [0x17EA] = "腓", [0x17EB] = "腙", [0x17EC] = "腚", [0x17ED] = "腠", [0x17EE] = "腧", [0x17EF] = "腩", [0x17F0] = "腭", [0x17F1] = "腱", [0x17F2] = "腴", [0x17F3] = "腽", [0x17F4] = "膂", [0x17F5] = "膈", [0x17F6] = "膑", [0x17F7] = "膣", [0x17F8] = "膦", [0x17F9] = "膪", [0x17FA] = "膺", [0x17FB] = "膻", [0x17FC] = "臁", [0x17FD] = "臆", [0x17FE] = "臊", [0x17FF] = "臌", [0x1800] = "臧", [0x1801] = "臬", [0x1802] = "臻", [0x1803] = "臾", [0x1804] = "舀", [0x1805] = "舁", [0x1806] = "舂", [0x1807] = "舄", [0x1808] = "舆", [0x1809] = "舐", [0x180A] = "舛", [0x180B] = "舡", [0x180C] = "舢", [0x180D] = "舣", [0x180E] = "舨", [0x180F] = "舫", [0x1810] = "舭", [0x1811] = "舯", [0x1812] = "舳", [0x1813] = "舴", [0x1814] = "舸", [0x1815] = "舻", [0x1816] = "舾", [0x1817] = "艄", [0x1818] = "艉", [0x1819] = "艋", [0x181A] = "艏", [0x181B] = "艚", [0x181C] = "艟", [0x181D] = "艨", [0x181E] = "艴", [0x181F] = "艹", [0x1820] = "艽", [0x1821] = "艿", [0x1822] = "芄", [0x1823] = "芈", [0x1824] = "芊", [0x1825] = "芍", [0x1826] = "芎", [0x1827] = "芏", [0x1828] = "芑", [0x1829] = "芗", [0x182A] = "芘", [0x182B] = "芟", [0x182C] = "芡", [0x182D] = "芤", [0x182E] = "芨", [0x182F] = "芩", [0x1830] = "芪", [0x1831] = "芫", [0x1832] = "芯", [0x1833] = "芰", [0x1834] = "芴", [0x1835] = "芸", [0x1836] = "芾", [0x1837] = "苁", [0x1838] = "苄", [0x1839] = "苇", [0x183A] = "苈", [0x183B] = "苊", [0x183C] = "苋", [0x183D] = "苌", [0x183E] = "苎", [0x183F] = "苒", [0x1840] = "苓", [0x1841] = "苕", [0x1842] = "苘", [0x1843] = "苜", [0x1844] = "苠", [0x1845] = "苡", [0x1846] = "苣", [0x1847] = "苤", [0x1848] = "苫", [0x1849] = "苯", [0x184A] = "苴", [0x184B] = "苷", [0x184C] = "苻", [0x184D] = "茆", [0x184E] = "茇", [0x184F] = "茈", [0x1850] = "茌", [0x1851] = "茑", [0x1852] = "茔", [0x1853] = "茕", [0x1854] = "茗", [0x1855] = "茚", [0x1856] = "茛", [0x1857] = "茭", [0x1858] = "茯", [0x1859] = "茱", [0x185A] = "茳", [0x185B] = "茴", [0x185C] = "茺", [0x185D] = "茼", [0x185E] = "荀", [0x185F] = "荃", [0x1860] = "荇", [0x1861] = "荏", [0x1862] = "荑", [0x1863] = "荚", [0x1864] = "荛", [0x1865] = "荜", [0x1866] = "荞", [0x1867] = "荤", [0x1868] = "荥", [0x1869] = "荦", [0x186A] = "荨", [0x186B] = "荩", [0x186C] = "荪", [0x186D] = "荬", [0x186E] = "荭", [0x186F] = "荮", [0x1870] = "荸", [0x1871] = "荻", [0x1872] = "荼", [0x1873] = "荽", [0x1874] = "莅", [0x1875] = "莆", [0x1876] = "莒", [0x1877] = "莘", [0x1878] = "莛", [0x1879] = "莜", [0x187A] = "莠", [0x187B] = "莨", [0x187C] = "莩", [0x187D] = "莪", [0x187E] = "莰", [0x187F] = "莳", [0x1880] = "莴", [0x1881] = "莶", [0x1882] = "莸", [0x1883] = "莼", [0x1884] = "菀", [0x1885] = "菁", [0x1886] = "菅", [0x1887] = "菏", [0x1888] = "菔", [0x1889] = "菖", [0x188A] = "菝", [0x188B] = "菟", [0x188C] = "菡", [0x188D] = "菥", [0x188E] = "菩", [0x188F] = "菪", [0x1890] = "菰", [0x1891] = "菸", [0x1892] = "菹", [0x1893] = "菽", [0x1894] = "萁", [0x1895] = "萆", [0x1896] = "萋", [0x1897] = "萏", [0x1898] = "萑", [0x1899] = "萘", [0x189A] = "萜", [0x189B] = "萱", [0x189C] = "萸", [0x189D] = "萼", [0x189E] = "葆", [0x189F] = "葑", [0x18A0] = "葙", [0x18A1] = "葚", [0x18A2] = "葜", [0x18A3] = "葩", [0x18A4] = "葭", [0x18A5] = "葳", [0x18A6] = "葶", [0x18A7] = "葸", [0x18A8] = "葺", [0x18A9] = "蒇", [0x18AA] = "蒈", [0x18AB] = "蒉", [0x18AC] = "蒋", [0x18AD] = "蒌", [0x18AE] = "蒎", [0x18AF] = "蒗", [0x18B0] = "蒡", [0x18B1] = "蒯", [0x18B2] = "蒴", [0x18B3] = "蒹", [0x18B4] = "蒺", [0x18B5] = "蒽", [0x18B6] = "蒿", [0x18B7] = "蓁", [0x18B8] = "蓊", [0x18B9] = "蓍", [0x18BA] = "蓐", [0x18BB] = "蓖", [0x18BC] = "蓟", [0x18BD] = "蓠", [0x18BE] = "蓣", [0x18BF] = "蓥", [0x18C0] = "蓦", [0x18C1] = "蓰", [0x18C2] = "蓼", [0x18C3] = "蓿", [0x18C4] = "蔌", [0x18C5] = "蔗", [0x18C6] = "蔟", [0x18C7] = "蔡", [0x18C8] = "蔸", [0x18C9] = "蔹", [0x18CA] = "蔺", [0x18CB] = "蔻", [0x18CC] = "蕃", [0x18CD] = "蕈", [0x18CE] = "蕖", [0x18CF] = "蕙", [0x18D0] = "蕞", [0x18D1] = "蕤", [0x18D2] = "蕨", [0x18D3] = "蕲", [0x18D4] = "蕹", [0x18D5] = "蕺", [0x18D6] = "蕻", [0x18D7] = "薅", [0x18D8] = "薏", [0x18D9] = "薛", [0x18DA] = "薜", [0x18DB] = "薤", [0x18DC] = "薨", [0x18DD] = "薮", [0x18DE] = "薷", [0x18DF] = "薹", [0x18E0] = "藁", [0x18E1] = "藐", [0x18E2] = "藕", [0x18E3] = "藜", [0x18E4] = "藩", [0x18E5] = "藿", [0x18E6] = "蘅", [0x18E7] = "蘖", [0x18E8] = "蘧", [0x18E9] = "蘩", [0x18EA] = "蘸", [0x18EB] = "蘼", [0x18EC] = "虍", [0x18ED] = "虔", [0x18EE] = "虞", [0x18EF] = "虢", [0x18F0] = "虬", [0x18F1] = "虮", [0x18F2] = "虱", [0x18F3] = "虺", [0x18F4] = "虼", [0x18F5] = "虿", [0x18F6] = "蚋", [0x18F7] = "蚍", [0x18F8] = "蚓", [0x18F9] = "蚜", [0x18FA] = "蚝", [0x18FB] = "蚤", [0x18FC] = "蚧", [0x18FD] = "蚨", [0x18FE] = "蚩", [0x18FF] = "蚬", [0x1900] = "蚯", [0x1901] = "蚰", [0x1902] = "蚱", [0x1903] = "蚴", [0x1904] = "蚵", [0x1905] = "蚶", [0x1906] = "蚺", [0x1907] = "蛄", [0x1908] = "蛆", [0x1909] = "蛉", [0x190A] = "蛊", [0x190B] = "蛎", [0x190C] = "蛏", [0x190D] = "蛐", [0x190E] = "蛑", [0x190F] = "蛔", [0x1910] = "蛘", [0x1911] = "蛞", [0x1912] = "蛟", [0x1913] = "蛤", [0x1914] = "蛩", [0x1915] = "蛭", [0x1916] = "蛰", [0x1917] = "蛱", [0x1918] = "蛲", [0x1919] = "蛳", [0x191A] = "蛴", [0x191B] = "蛸", [0x191C] = "蜀", [0x191D] = "蜉", [0x191E] = "蜊", [0x191F] = "蜚", [0x1920] = "蜞", [0x1921] = "蜢", [0x1922] = "蜣", [0x1923] = "蜩", [0x1924] = "蜮", [0x1925] = "蜱", [0x1926] = "蜾", [0x1927] = "蝈", [0x1928] = "蝓", [0x1929] = "蝗", [0x192A] = "蝣", [0x192B] = "蝤", [0x192C] = "蝥", [0x192D] = "蝮", [0x192E] = "蝰", [0x192F] = "蝻", [0x1930] = "蝼", [0x1931] = "蝽", [0x1932] = "蝾", [0x1933] = "螅", [0x1934] = "螈", [0x1935] = "螋", [0x1936] = "螓", [0x1937] = "螗", [0x1938] = "螟", [0x1939] = "螨", [0x193A] = "螫", [0x193B] = "螬", [0x193C] = "螭", [0x193D] = "螵", [0x193E] = "螽", [0x193F] = "蟆", [0x1940] = "蟊", [0x1941] = "蟑", [0x1942] = "蟒", [0x1943] = "蟓", [0x1944] = "蟛", [0x1945] = "蟠", [0x1946] = "蟥", [0x1947] = "蟪", [0x1948] = "蟮", [0x1949] = "蠃", [0x194A] = "蠊", [0x194B] = "蠓", [0x194C] = "蠖", [0x194D] = "蠛", [0x194E] = "蠡", [0x194F] = "蠲", [0x1950] = "蠹", [0x1951] = "蠼", [0x1952] = "衄", [0x1953] = "衙", [0x1954] = "衢", [0x1955] = "衤", [0x1956] = "衩", [0x1957] = "衮", [0x1958] = "衲", [0x1959] = "衽", [0x195A] = "衾", [0x195B] = "衿", [0x195C] = "袂", [0x195D] = "袅", [0x195E] = "袈", [0x195F] = "袒", [0x1960] = "袢", [0x1961] = "袱", [0x1962] = "袷", [0x1963] = "袼", [0x1964] = "裆", [0x1965] = "裉", [0x1966] = "裎", [0x1967] = "裒", [0x1968] = "裔", [0x1969] = "裘", [0x196A] = "裟", [0x196B] = "裢", [0x196C] = "裣", [0x196D] = "裥", [0x196E] = "裨", [0x196F] = "裰", [0x1970] = "裱", [0x1971] = "裼", [0x1972] = "裾", [0x1973] = "褂", [0x1974] = "褊", [0x1975] = "褒", [0x1976] = "褓", [0x1977] = "褙", [0x1978] = "褚", [0x1979] = "褛", [0x197A] = "褡", [0x197B] = "褫", [0x197C] = "褰", [0x197D] = "褴", [0x197E] = "襁", [0x197F] = "襄", [0x1980] = "襞", [0x1981] = "襦", [0x1982] = "襻", [0x1983] = "覃", [0x1984] = "觇", [0x1985] = "觋", [0x1986] = "觌", [0x1987] = "觏", [0x1988] = "觐", [0x1989] = "觖", [0x198A] = "觚", [0x198B] = "觜", [0x198C] = "觞", [0x198D] = "觥", [0x198E] = "觫", [0x198F] = "觯", [0x1990] = "觳", [0x1991] = "訇", [0x1992] = "訾", [0x1993] = "詈", [0x1994] = "誊", [0x1995] = "謇", [0x1996] = "謦", [0x1997] = "譬", [0x1998] = "讠", [0x1999] = "讣", [0x199A] = "讥", [0x199B] = "讦", [0x199C] = "讧", [0x199D] = "讫", [0x199E] = "讴", [0x199F] = "讵", [0x19A0] = "讹", [0x19A1] = "讼", [0x19A2] = "诂", [0x19A3] = "诃", [0x19A4] = "诋", [0x19A5] = "诌", [0x19A6] = "诎", [0x19A7] = "诏", [0x19A8] = "诒", [0x19A9] = "诓", [0x19AA] = "诔", [0x19AB] = "诖", [0x19AC] = "诛", [0x19AD] = "诜", [0x19AE] = "诟", [0x19AF] = "诠", [0x19B0] = "诤", [0x19B1] = "诧", [0x19B2] = "诨", [0x19B3] = "诩", [0x19B4] = "诫", [0x19B5] = "诮", [0x19B6] = "诰", [0x19B7] = "诳", [0x19B8] = "诹", [0x19B9] = "诼", [0x19BA] = "诽", [0x19BB] = "诿", [0x19BC] = "谀", [0x19BD] = "谂", [0x19BE] = "谄", [0x19BF] = "谆", [0x19C0] = "谇", [0x19C1] = "谌", [0x19C2] = "谍", [0x19C3] = "谏", [0x19C4] = "谑", [0x19C5] = "谒", [0x19C6] = "谔", [0x19C7] = "谕", [0x19C8] = "谖", [0x19C9] = "谗", [0x19CA] = "谘", [0x19CB] = "谝", [0x19CC] = "谠", [0x19CD] = "谡", [0x19CE] = "谤", [0x19CF] = "谥", [0x19D0] = "谧", [0x19D1] = "谩", [0x19D2] = "谪", [0x19D3] = "谫", [0x19D4] = "谮", [0x19D5] = "谯", [0x19D6] = "谰", [0x19D7] = "谲", [0x19D8] = "谳", [0x19D9] = "谴", [0x19DA] = "谵", [0x19DB] = "谶", [0x19DC] = "豇", [0x19DD] = "豉", [0x19DE] = "豌", [0x19DF] = "豕", [0x19E0] = "豢", [0x19E1] = "豳", [0x19E2] = "豸", [0x19E3] = "豺", [0x19E4] = "貅", [0x19E5] = "貉", [0x19E6] = "貊", [0x19E7] = "貔", [0x19E8] = "贬", [0x19E9] = "贰", [0x19EA] = "贲", [0x19EB] = "贳", [0x19EC] = "贶", [0x19ED] = "贻", [0x19EE] = "贽", [0x19EF] = "赀", [0x19F0] = "赁", [0x19F1] = "赂", [0x19F2] = "赃", [0x19F3] = "赅", [0x19F4] = "赆", [0x19F5] = "赇", [0x19F6] = "赈", [0x19F7] = "赉", [0x19F8] = "赊", [0x19F9] = "赍", [0x19FA] = "赓", [0x19FB] = "赕", [0x19FC] = "赙", [0x19FD] = "赜", [0x19FE] = "赡", [0x19FF] = "赣", [0x1A00] = "赧", [0x1A01] = "赭", [0x1A02] = "趄", [0x1A03] = "趑", [0x1A04] = "趔", [0x1A05] = "趱", [0x1A06] = "趵", [0x1A07] = "趸", [0x1A08] = "趺", [0x1A09] = "趼", [0x1A0A] = "趾", [0x1A0B] = "趿", [0x1A0C] = "跄", [0x1A0D] = "跆", [0x1A0E] = "跎", [0x1A0F] = "跏", [0x1A10] = "跖", [0x1A11] = "跗", [0x1A12] = "跛", [0x1A13] = "跞", [0x1A14] = "跣", [0x1A15] = "跫", [0x1A16] = "跬", [0x1A17] = "跷", [0x1A18] = "跸", [0x1A19] = "跹", [0x1A1A] = "跻", [0x1A1B] = "跽", [0x1A1C] = "踅", [0x1A1D] = "踉", [0x1A1E] = "踔", [0x1A1F] = "踟", [0x1A20] = "踣", [0x1A21] = "踬", [0x1A22] = "踮", [0x1A23] = "踯", [0x1A24] = "踱", [0x1A25] = "踵", [0x1A26] = "踺", [0x1A27] = "踽", [0x1A28] = "蹀", [0x1A29] = "蹁", [0x1A2A] = "蹇", [0x1A2B] = "蹉", [0x1A2C] = "蹊", [0x1A2D] = "蹋", [0x1A2E] = "蹑", [0x1A2F] = "蹙", [0x1A30] = "蹩", [0x1A31] = "蹯", [0x1A32] = "蹰", [0x1A33] = "蹴", [0x1A34] = "蹶", [0x1A35] = "躅", [0x1A36] = "躐", [0x1A37] = "躔", [0x1A38] = "躜", [0x1A39] = "躞", [0x1A3A] = "軎", [0x1A3B] = "轫", [0x1A3C] = "轭", [0x1A3D] = "轲", [0x1A3E] = "轳", [0x1A3F] = "轵", [0x1A40] = "轷", [0x1A41] = "轸", [0x1A42] = "轹", [0x1A43] = "轺", [0x1A44] = "轼", [0x1A45] = "轾", [0x1A46] = "辁", [0x1A47] = "辂", [0x1A48] = "辇", [0x1A49] = "辊", [0x1A4A] = "辋", [0x1A4B] = "辍", [0x1A4C] = "辎", [0x1A4D] = "辏", [0x1A4E] = "辔", [0x1A4F] = "辖", [0x1A50] = "辚", [0x1A51] = "辶", [0x1A52] = "迓", [0x1A53] = "迕", [0x1A54] = "迤", [0x1A55] = "迥", [0x1A56] = "迨", [0x1A57] = "迩", [0x1A58] = "迭", [0x1A59] = "迮", [0x1A5A] = "迳", [0x1A5B] = "逄", [0x1A5C] = "逋", [0x1A5D] = "逑", [0x1A5E] = "逖", [0x1A5F] = "逡", [0x1A60] = "逦", [0x1A61] = "逭", [0x1A62] = "逯", [0x1A63] = "逵", [0x1A64] = "逶", [0x1A65] = "遂", [0x1A66] = "遄", [0x1A67] = "遏", [0x1A68] = "遐", [0x1A69] = "遑", [0x1A6A] = "遒", [0x1A6B] = "遘", [0x1A6C] = "遛", [0x1A6D] = "遢", [0x1A6E] = "遴", [0x1A6F] = "遽", [0x1A70] = "邈", [0x1A71] = "邋", [0x1A72] = "邑", [0x1A73] = "邓", [0x1A74] = "邕", [0x1A75] = "邗", [0x1A76] = "邙", [0x1A77] = "邛", [0x1A78] = "邝", [0x1A79] = "邡", [0x1A7A] = "邢", [0x1A7B] = "邬", [0x1A7C] = "邯", [0x1A7D] = "邰", [0x1A7E] = "邳", [0x1A7F] = "邴", [0x1A80] = "邵", [0x1A81] = "邶", [0x1A82] = "邹", [0x1A83] = "邺", [0x1A84] = "邾", [0x1A85] = "郄", [0x1A86] = "郅", [0x1A87] = "郇", [0x1A88] = "郏", [0x1A89] = "郐", [0x1A8A] = "郓", [0x1A8B] = "郗", [0x1A8C] = "郛", [0x1A8D] = "郜", [0x1A8E] = "郢", [0x1A8F] = "郦", [0x1A90] = "郧", [0x1A91] = "郫", [0x1A92] = "郯", [0x1A93] = "郴", [0x1A94] = "郸", [0x1A95] = "郾", [0x1A96] = "鄂", [0x1A97] = "鄄", [0x1A98] = "鄞", [0x1A99] = "鄢", [0x1A9A] = "鄣", [0x1A9B] = "鄯", [0x1A9C] = "鄱", [0x1A9D] = "鄹", [0x1A9E] = "酃", [0x1A9F] = "酆", [0x1AA0] = "酉", [0x1AA1] = "酊", [0x1AA2] = "酌", [0x1AA3] = "酎", [0x1AA4] = "酏", [0x1AA5] = "酐", [0x1AA6] = "酗", [0x1AA7] = "酞", [0x1AA8] = "酡", [0x1AA9] = "酢", [0x1AAA] = "酤", [0x1AAB] = "酩", [0x1AAC] = "酮", [0x1AAD] = "酯", [0x1AAE] = "酰", [0x1AAF] = "酲", [0x1AB0] = "酴", [0x1AB1] = "酶", [0x1AB2] = "酹", [0x1AB3] = "酽", [0x1AB4] = "酾", [0x1AB5] = "醅", [0x1AB6] = "醌", [0x1AB7] = "醍", [0x1AB8] = "醐", [0x1AB9] = "醑", [0x1ABA] = "醚", [0x1ABB] = "醛", [0x1ABC] = "醢", [0x1ABD] = "醣", [0x1ABE] = "醪", [0x1ABF] = "醭", [0x1AC0] = "醮", [0x1AC1] = "醯", [0x1AC2] = "醴", [0x1AC3] = "醵", [0x1AC4] = "醺", [0x1AC5] = "釉", [0x1AC6] = "銎", [0x1AC7] = "銮", [0x1AC8] = "鋈", [0x1AC9] = "錾", [0x1ACA] = "鍪", [0x1ACB] = "鎏", [0x1ACC] = "鏊", [0x1ACD] = "鏖", [0x1ACE] = "鐾", [0x1ACF] = "钅", [0x1AD0] = "钆", [0x1AD1] = "钇", [0x1AD2] = "钊", [0x1AD3] = "钋", [0x1AD4] = "钌", [0x1AD5] = "钍", [0x1AD6] = "钎", [0x1AD7] = "钐", [0x1AD8] = "钒", [0x1AD9] = "钔", [0x1ADA] = "钕", [0x1ADB] = "钗", [0x1ADC] = "钚", [0x1ADD] = "钛", [0x1ADE] = "钠", [0x1ADF] = "钡", [0x1AE0] = "钣", [0x1AE1] = "钤", [0x1AE2] = "钨", [0x1AE3] = "钪", [0x1AE4] = "钫", [0x1AE5] = "钬", [0x1AE6] = "钭", [0x1AE7] = "钯", [0x1AE8] = "钲", [0x1AE9] = "钴", [0x1AEA] = "钶", [0x1AEB] = "钷", [0x1AEC] = "钸", [0x1AED] = "钺", [0x1AEE] = "钽", [0x1AEF] = "钿", [0x1AF0] = "铀", [0x1AF1] = "铄", [0x1AF2] = "铈", [0x1AF3] = "铉", [0x1AF4] = "铊", [0x1AF5] = "铌", [0x1AF6] = "铍", [0x1AF7] = "铑", [0x1AF8] = "铒", [0x1AF9] = "铕", [0x1AFA] = "铖", [0x1AFB] = "铘", [0x1AFC] = "铙", [0x1AFD] = "铝", [0x1AFE] = "铞", [0x1AFF] = "铟", [0x1B00] = "铡", [0x1B01] = "铢", [0x1B02] = "铣", [0x1B03] = "铤", [0x1B04] = "铥", [0x1B05] = "铧", [0x1B06] = "铨", [0x1B07] = "铩", [0x1B08] = "铪", [0x1B09] = "铫", [0x1B0A] = "铬", [0x1B0B] = "铯", [0x1B0C] = "铰", [0x1B0D] = "铱", [0x1B0E] = "铴", [0x1B0F] = "铵", [0x1B10] = "铷", [0x1B11] = "铹", [0x1B12] = "铼", [0x1B13] = "铽", [0x1B14] = "铿", [0x1B15] = "锂", [0x1B16] = "锆", [0x1B17] = "锇", [0x1B18] = "锊", [0x1B19] = "锍", [0x1B1A] = "锎", [0x1B1B] = "锑", [0x1B1C] = "锒", [0x1B1D] = "锓", [0x1B1E] = "锔", [0x1B1F] = "锕", [0x1B20] = "锖", [0x1B21] = "锗", [0x1B22] = "锘", [0x1B23] = "锛", [0x1B24] = "锝", [0x1B25] = "锞", [0x1B26] = "锟", [0x1B27] = "锢", [0x1B28] = "锨", [0x1B29] = "锩", [0x1B2A] = "锪", [0x1B2B] = "锫", [0x1B2C] = "锬", [0x1B2D] = "锭", [0x1B2E] = "锰", [0x1B2F] = "锱", [0x1B30] = "锲", [0x1B31] = "锴", [0x1B32] = "锶", [0x1B33] = "锷", [0x1B34] = "锸", [0x1B35] = "锺", [0x1B36] = "锼", [0x1B37] = "锾", [0x1B38] = "锿", [0x1B39] = "镀", [0x1B3A] = "镄", [0x1B3B] = "镅", [0x1B3C] = "镆", [0x1B3D] = "镉", [0x1B3E] = "镊", [0x1B3F] = "镍", [0x1B40] = "镎", [0x1B41] = "镏", [0x1B42] = "镑", [0x1B43] = "镒", [0x1B44] = "镓", [0x1B45] = "镔", [0x1B46] = "镗", [0x1B47] = "镘", [0x1B48] = "镙", [0x1B49] = "镛", [0x1B4A] = "镝", [0x1B4B] = "镞", [0x1B4C] = "镟", [0x1B4D] = "镡", [0x1B4E] = "镢", [0x1B4F] = "镣", [0x1B50] = "镤", [0x1B51] = "镥", [0x1B52] = "镦", [0x1B53] = "镨", [0x1B54] = "镩", [0x1B55] = "镪", [0x1B56] = "镫", [0x1B57] = "镬", [0x1B58] = "镱", [0x1B59] = "镲", [0x1B5A] = "镳", [0x1B5B] = "闩", [0x1B5C] = "闫", [0x1B5D] = "闰", [0x1B5E] = "闱", [0x1B5F] = "闳", [0x1B60] = "闵", [0x1B61] = "闶", [0x1B62] = "闼", [0x1B63] = "闽", [0x1B64] = "闾", [0x1B65] = "阂", [0x1B66] = "阃", [0x1B67] = "阆", [0x1B68] = "阈", [0x1B69] = "阉", [0x1B6A] = "阊", [0x1B6B] = "阋", [0x1B6C] = "阌", [0x1B6D] = "阍", [0x1B6E] = "阎", [0x1B6F] = "阏", [0x1B70] = "阐", [0x1B71] = "阑", [0x1B72] = "阒", [0x1B73] = "阕", [0x1B74] = "阖", [0x1B75] = "阗", [0x1B76] = "阙", [0x1B77] = "阚", [0x1B78] = "阝", [0x1B79] = "阢", [0x1B7A] = "阮", [0x1B7B] = "阼", [0x1B7C] = "阽", [0x1B7D] = "陂", [0x1B7E] = "陇", [0x1B7F] = "陉", [0x1B80] = "陔", [0x1B81] = "陛", [0x1B82] = "陟", [0x1B83] = "陧", [0x1B84] = "陬", [0x1B85] = "陲", [0x1B86] = "陴", [0x1B87] = "隅", [0x1B88] = "隈", [0x1B89] = "隋", [0x1B8A] = "隍", [0x1B8B] = "隗", [0x1B8C] = "隘", [0x1B8D] = "隰", [0x1B8E] = "隳", [0x1B8F] = "隹", [0x1B90] = "隽", [0x1B91] = "雉", [0x1B92] = "雍", [0x1B93] = "雎", [0x1B94] = "雒", [0x1B95] = "雠", [0x1B96] = "雩", [0x1B97] = "霎", [0x1B98] = "霪", [0x1B99] = "霭", [0x1B9A] = "霰", [0x1B9B] = "靥", [0x1B9C] = "靳", [0x1B9D] = "靼", [0x1B9E] = "鞅", [0x1B9F] = "鞍", [0x1BA0] = "鞑", [0x1BA1] = "鞒", [0x1BA2] = "鞔", [0x1BA3] = "鞫", [0x1BA4] = "鞯", [0x1BA5] = "鞲", [0x1BA6] = "鞴", [0x1BA7] = "韪", [0x1BA8] = "韫", [0x1BA9] = "韬", [0x1BAA] = "韭", [0x1BAB] = "韶", [0x1BAC] = "顸", [0x1BAD] = "顼", [0x1BAE] = "颀", [0x1BAF] = "颃", [0x1BB0] = "颉", [0x1BB1] = "颌", [0x1BB2] = "颍", [0x1BB3] = "颏", [0x1BB4] = "颐", [0x1BB5] = "颔", [0x1BB6] = "颛", [0x1BB7] = "颞", [0x1BB8] = "颟", [0x1BB9] = "颡", [0x1BBA] = "颢", [0x1BBB] = "颥", [0x1BBC] = "颦", [0x1BBD] = "颧", [0x1BBE] = "飑", [0x1BBF] = "飧", [0x1BC0] = "飨", [0x1BC1] = "餍", [0x1BC2] = "饔", [0x1BC3] = "饣", [0x1BC4] = "饧", [0x1BC5] = "饨", [0x1BC6] = "饩", [0x1BC7] = "饫", [0x1BC8] = "饬", [0x1BC9] = "饴", [0x1BCA] = "饷", [0x1BCB] = "饽", [0x1BCC] = "馀", [0x1BCD] = "馄", [0x1BCE] = "馇", [0x1BCF] = "馊", [0x1BD0] = "馍", [0x1BD1] = "馏", [0x1BD2] = "馐", [0x1BD3] = "馑", [0x1BD4] = "馓", [0x1BD5] = "馔", [0x1BD6] = "馕", [0x1BD7] = "馗", [0x1BD8] = "馘", [0x1BD9] = "驵", [0x1BDA] = "驷", [0x1BDB] = "驸", [0x1BDC] = "驺", [0x1BDD] = "驽", [0x1BDE] = "驿", [0x1BDF] = "骀", [0x1BE0] = "骁", [0x1BE1] = "骅", [0x1BE2] = "骈", [0x1BE3] = "骊", [0x1BE4] = "骐", [0x1BE5] = "骒", [0x1BE6] = "骓", [0x1BE7] = "骖", [0x1BE8] = "骘", [0x1BE9] = "骛", [0x1BEA] = "骝", [0x1BEB] = "骞", [0x1BEC] = "骟", [0x1BED] = "骠", [0x1BEE] = "骢", [0x1BEF] = "骣", [0x1BF0] = "骥", [0x1BF1] = "骧", [0x1BF2] = "骰", [0x1BF3] = "骱", [0x1BF4] = "骶", [0x1BF5] = "骺", [0x1BF6] = "髀", [0x1BF7] = "髁", [0x1BF8] = "髂", [0x1BF9] = "髋", [0x1BFA] = "髌", [0x1BFB] = "髑", [0x1BFC] = "髟", [0x1BFD] = "髡", [0x1BFE] = "髫", [0x1BFF] = "髭", [0x1C00] = "髯", [0x1C01] = "髹", [0x1C02] = "髻", [0x1C03] = "鬈", [0x1C04] = "鬏", [0x1C05] = "鬓", [0x1C06] = "鬟", [0x1C07] = "鬣", [0x1C08] = "鬯", [0x1C09] = "鬲", [0x1C0A] = "鬻", [0x1C0B] = "魃", [0x1C0C] = "魈", [0x1C0D] = "魉", [0x1C0E] = "魏", [0x1C0F] = "魑", [0x1C10] = "鲂", [0x1C11] = "鲅", [0x1C12] = "鲆", [0x1C13] = "鲇", [0x1C14] = "鲋", [0x1C15] = "鲎", [0x1C16] = "鲐", [0x1C17] = "鲑", [0x1C18] = "鲒", [0x1C19] = "鲔", [0x1C1A] = "鲕", [0x1C1B] = "鲚", [0x1C1C] = "鲛", [0x1C1D] = "鲞", [0x1C1E] = "鲟", [0x1C1F] = "鲠", [0x1C20] = "鲡", [0x1C21] = "鲢", [0x1C22] = "鲣", [0x1C23] = "鲥", [0x1C24] = "鲦", [0x1C25] = "鲧", [0x1C26] = "鲩", [0x1C27] = "鲫", [0x1C28] = "鲭", [0x1C29] = "鲮", [0x1C2A] = "鲰", [0x1C2B] = "鲱", [0x1C2C] = "鲲", [0x1C2D] = "鲳", [0x1C2E] = "鲴", [0x1C2F] = "鲵", [0x1C30] = "鲷", [0x1C31] = "鲺", [0x1C32] = "鲻", [0x1C33] = "鲼", [0x1C34] = "鲽", [0x1C35] = "鳃", [0x1C36] = "鳆", [0x1C37] = "鳇", [0x1C38] = "鳊", [0x1C39] = "鳋", [0x1C3A] = "鳌", [0x1C3B] = "鳎", [0x1C3C] = "鳏", [0x1C3D] = "鳐", [0x1C3E] = "鳓", [0x1C3F] = "鳕", [0x1C40] = "鳖", [0x1C41] = "鳘", [0x1C42] = "鳙", [0x1C43] = "鳜", [0x1C44] = "鳝", [0x1C45] = "鳟", [0x1C46] = "鳢", [0x1C47] = "鸠", [0x1C48] = "鸢", [0x1C49] = "鸨", [0x1C4A] = "鸩", [0x1C4B] = "鸪", [0x1C4C] = "鸬", [0x1C4D] = "鸱", [0x1C4E] = "鸲", [0x1C4F] = "鸵", [0x1C50] = "鸶", [0x1C51] = "鸷", [0x1C52] = "鸸", [0x1C53] = "鸹", [0x1C54] = "鸺", [0x1C55] = "鸾", [0x1C56] = "鹁", [0x1C57] = "鹂", [0x1C58] = "鹄", [0x1C59] = "鹆", [0x1C5A] = "鹇", [0x1C5B] = "鹈", [0x1C5C] = "鹋", [0x1C5D] = "鹌", [0x1C5E] = "鹎", [0x1C5F] = "鹑", [0x1C60] = "鹕", [0x1C61] = "鹗", [0x1C62] = "鹘", [0x1C63] = "鹚", [0x1C64] = "鹛", [0x1C65] = "鹜", [0x1C66] = "鹞", [0x1C67] = "鹣", [0x1C68] = "鹧", [0x1C69] = "鹨", [0x1C6A] = "鹩", [0x1C6B] = "鹪", [0x1C6C] = "鹫", [0x1C6D] = "鹬", [0x1C6E] = "鹭", [0x1C6F] = "鹱", [0x1C70] = "鹳", [0x1C71] = "鹾", [0x1C72] = "麂", [0x1C73] = "麇", [0x1C74] = "麈", [0x1C75] = "麋", [0x1C76] = "麴", [0x1C77] = "麸", [0x1C78] = "麽", [0x1C79] = "麾", [0x1C7A] = "黉", [0x1C7B] = "黔", [0x1C7C] = "黜", [0x1C7D] = "黝", [0x1C7E] = "黟", [0x1C7F] = "黢", [0x1C80] = "黥", [0x1C81] = "黧", [0x1C82] = "黩", [0x1C83] = "黪", [0x1C84] = "黹", [0x1C85] = "黻", [0x1C86] = "黼", [0x1C87] = "鼋", [0x1C88] = "鼍", [0x1C89] = "鼐", [0x1C8A] = "鼗", [0x1C8B] = "鼙", [0x1C8C] = "鼢", [0x1C8D] = "鼯", [0x1C8E] = "鼷", [0x1C8F] = "鼽", [0x1C90] = "齄", [0x1C91] = "齑", [0x1C92] = "龀", [0x1C93] = "龃", [0x1C94] = "龆", [0x1C95] = "龇", [0x1C96] = "龈", [0x1C97] = "龉", [0x1C98] = "龋", [0x1C99] = "龚", [0x1C9A] = "龛", }; public static Dictionary writeTextDictionary = new Dictionary() { [32] = 0x01DE, [33] = 0x01AB, [35] = 0x01C0, [36] = 0x01A8, [37] = 0x01D2, [38] = 0x01C2, [39] = 0x01B3, [40] = 0x01B9, [41] = 0x01BA, [42] = 0x01BF, [43] = 0x01BD, [44] = 0x01AD, [45] = 0x01BE, [46] = 0x01AE, [47] = 0x01B1, [48] = 0x0121, [49] = 0x0122, [50] = 0x0123, [51] = 0x0124, [52] = 0x0125, [53] = 0x0126, [54] = 0x0127, [55] = 0x0128, [56] = 0x0129, [57] = 0x012A, [58] = 0x01C4, [59] = 0x01C5, [61] = 0x01C1, [63] = 0x01AC, [64] = 0x01D0, [65] = 0x012B, [66] = 0x012C, [67] = 0x012D, [68] = 0x012E, [69] = 0x012F, [70] = 0x0130, [71] = 0x0131, [72] = 0x0132, [73] = 0x0133, [74] = 0x0134, [75] = 0x0135, [76] = 0x0136, [77] = 0x0137, [78] = 0x0138, [79] = 0x0139, [80] = 0x013A, [81] = 0x013B, [82] = 0x013C, [83] = 0x013D, [84] = 0x013E, [85] = 0x013F, [86] = 0x0140, [87] = 0x0141, [88] = 0x0142, [89] = 0x0143, [90] = 0x0144, [91] = 0x01E1, [95] = 0x01E9, [97] = 0x0145, [98] = 0x0146, [99] = 0x0147, [100] = 0x0148, [101] = 0x0149, [102] = 0x014A, [103] = 0x014B, [104] = 0x014C, [105] = 0x014D, [106] = 0x014E, [107] = 0x014F, [108] = 0x0150, [109] = 0x0151, [110] = 0x0152, [111] = 0x0153, [112] = 0x0154, [113] = 0x0155, [114] = 0x0156, [115] = 0x0157, [116] = 0x0158, [117] = 0x0159, [118] = 0x015A, [119] = 0x015B, [120] = 0x015C, [121] = 0x015D, [122] = 0x015E, [126] = 0x01C3, [161] = 0x01A9, [165] = 0x0112, [170] = 0x01A3, [176] = 0x01E8, [178] = 0x01A6, [179] = 0x01A7, [183] = 0x01B0, [185] = 0x01A5, [186] = 0x01A4, [191] = 0x01AA, [192] = 0x015F, [193] = 0x0160, [194] = 0x0161, [195] = 0x0162, [196] = 0x0163, [197] = 0x0164, [198] = 0x0165, [199] = 0x0166, [200] = 0x0167, [201] = 0x0168, [202] = 0x0169, [203] = 0x016A, [204] = 0x016B, [205] = 0x016C, [206] = 0x016D, [207] = 0x016E, [208] = 0x016F, [209] = 0x0170, [210] = 0x0171, [211] = 0x0172, [212] = 0x0173, [213] = 0x0174, [214] = 0x0175, [215] = 0x0176, [216] = 0x0177, [217] = 0x0178, [218] = 0x0179, [219] = 0x017A, [220] = 0x017B, [221] = 0x017C, [222] = 0x017D, [223] = 0x017E, [224] = 0x017F, [225] = 0x0180, [226] = 0x0181, [227] = 0x0182, [228] = 0x0183, [229] = 0x0184, [230] = 0x0185, [231] = 0x0186, [232] = 0x0187, [233] = 0x0188, [234] = 0x0189, [235] = 0x018A, [236] = 0x018B, [237] = 0x018C, [238] = 0x018D, [239] = 0x018E, [240] = 0x018F, [241] = 0x0190, [242] = 0x0191, [243] = 0x0192, [244] = 0x0193, [245] = 0x0194, [246] = 0x0195, [247] = 0x0196, [248] = 0x0197, [249] = 0x0198, [250] = 0x0199, [251] = 0x019A, [252] = 0x019B, [253] = 0x019C, [254] = 0x019D, [255] = 0x019E, [338] = 0x019F, [339] = 0x01A0, [350] = 0x01A1, [351] = 0x01A2, [4352] = 0x0D31, [4353] = 0x0D32, [4354] = 0x0D33, [4355] = 0x0D34, [4356] = 0x0D35, [4357] = 0x0D36, [4358] = 0x0D37, [4359] = 0x0D38, [4360] = 0x0D39, [4361] = 0x0D3A, [4362] = 0x0D3B, [4363] = 0x0D3C, [4364] = 0x0D3D, [4365] = 0x0D3E, [4366] = 0x0D3F, [4367] = 0x0D40, [4368] = 0x0D41, [4369] = 0x0D42, [4370] = 0x0D43, [4449] = 0x0D44, [4450] = 0x0D45, [4451] = 0x0D46, [4452] = 0x0D47, [4453] = 0x0D48, [4454] = 0x0D49, [4455] = 0x0D4A, [4456] = 0x0D4B, [4457] = 0x0D4C, [4461] = 0x0D4D, [4462] = 0x0D4E, [4466] = 0x0D4F, [4467] = 0x0D50, [4469] = 0x0D51, [8216] = 0x01B2, [8217] = 0x01B3, [8220] = 0x01B4, [8221] = 0x01B5, [8222] = 0x01B6, [8227] = 0x011F, [8230] = 0x01AF, [8308] = 0x01DF, [8592] = 0x011B, [8593] = 0x011C, [8594] = 0x011E, [8595] = 0x011D, [8599] = 0x01DB, [8600] = 0x01DC, [8663] = 0x010F, [8664] = 0x0110, [8855] = 0x00F2, [8856] = 0x00F3, [8943] = 0x00E5, [9632] = 0x01CD, [9633] = 0x0101, [9650] = 0x01CE, [9651] = 0x0102, [9670] = 0x01CF, [9671] = 0x0103, [9673] = 0x01CB, [9675] = 0x0100, [9678] = 0x00FF, [9679] = 0x01CC, [9728] = 0x01D3, [9729] = 0x01D4, [9730] = 0x01D5, [9731] = 0x01D6, [9733] = 0x01CA, [9734] = 0x00FE, [9738] = 0x010E, [9739] = 0x010B, [9748] = 0x0108, [9776] = 0x0109, [9785] = 0x01DA, [9786] = 0x01D7, [9788] = 0x0107, [9789] = 0x01DD, [9790] = 0x0111, [9792] = 0x01BC, [9794] = 0x01BB, [9800] = 0x0113, [9801] = 0x0114, [9802] = 0x0115, [9803] = 0x0116, [9804] = 0x0117, [9805] = 0x0118, [9806] = 0x0119, [9807] = 0x011A, [9812] = 0x010C, [9813] = 0x010D, [9818] = 0x01D8, [9819] = 0x01D9, [9824] = 0x01C6, [9825] = 0x00FC, [9826] = 0x00FD, [9827] = 0x01C7, [9828] = 0x00FA, [9829] = 0x01C8, [9830] = 0x01C9, [9831] = 0x00FB, [9834] = 0x01D1, [9835] = 0x0105, [10052] = 0x010A, [12289] = 0x00E3, [12290] = 0x00E4, [12298] = 0x01B7, [12299] = 0x01B8, [12300] = 0x00E8, [12301] = 0x00E9, [12302] = 0x00EA, [12303] = 0x00EB, [12353] = 0x0002, [12354] = 0x0003, [12355] = 0x0004, [12356] = 0x0005, [12357] = 0x0006, [12358] = 0x0007, [12359] = 0x0008, [12360] = 0x0009, [12361] = 0x000A, [12362] = 0x000B, [12363] = 0x000C, [12364] = 0x000D, [12365] = 0x000E, [12366] = 0x000F, [12367] = 0x0010, [12368] = 0x0011, [12369] = 0x0012, [12370] = 0x0013, [12371] = 0x0014, [12372] = 0x0015, [12373] = 0x0016, [12374] = 0x0017, [12375] = 0x0018, [12376] = 0x0019, [12377] = 0x001A, [12378] = 0x001B, [12379] = 0x001C, [12380] = 0x001D, [12381] = 0x001E, [12382] = 0x001F, [12383] = 0x0020, [12384] = 0x0021, [12385] = 0x0022, [12386] = 0x0023, [12387] = 0x0024, [12388] = 0x0025, [12389] = 0x0026, [12390] = 0x0027, [12391] = 0x0028, [12392] = 0x0029, [12393] = 0x002A, [12394] = 0x002B, [12395] = 0x002C, [12396] = 0x002D, [12397] = 0x002E, [12398] = 0x002F, [12399] = 0x0030, [12400] = 0x0031, [12401] = 0x0032, [12402] = 0x0033, [12403] = 0x0034, [12404] = 0x0035, [12405] = 0x0036, [12406] = 0x0037, [12407] = 0x0038, [12408] = 0x0039, [12409] = 0x003A, [12410] = 0x003B, [12411] = 0x003C, [12412] = 0x003D, [12413] = 0x003E, [12414] = 0x003F, [12415] = 0x0040, [12416] = 0x0041, [12417] = 0x0042, [12418] = 0x0043, [12419] = 0x0044, [12420] = 0x0045, [12421] = 0x0046, [12422] = 0x0047, [12423] = 0x0048, [12424] = 0x0049, [12425] = 0x004A, [12426] = 0x004B, [12427] = 0x004C, [12428] = 0x004D, [12429] = 0x004E, [12431] = 0x004F, [12434] = 0x0050, [12435] = 0x0051, [12449] = 0x0052, [12450] = 0x0053, [12451] = 0x0054, [12452] = 0x0055, [12453] = 0x0056, [12454] = 0x0057, [12455] = 0x0058, [12456] = 0x0059, [12457] = 0x005A, [12458] = 0x005B, [12459] = 0x005C, [12460] = 0x005D, [12461] = 0x005E, [12462] = 0x005F, [12463] = 0x0060, [12464] = 0x0061, [12465] = 0x0062, [12466] = 0x0063, [12467] = 0x0064, [12468] = 0x0065, [12469] = 0x0066, [12470] = 0x0067, [12471] = 0x0068, [12472] = 0x0069, [12473] = 0x006A, [12474] = 0x006B, [12475] = 0x006C, [12476] = 0x006D, [12477] = 0x006E, [12478] = 0x006F, [12479] = 0x0070, [12480] = 0x0071, [12481] = 0x0072, [12482] = 0x0073, [12483] = 0x0074, [12484] = 0x0075, [12485] = 0x0076, [12486] = 0x0077, [12487] = 0x0078, [12488] = 0x0079, [12489] = 0x007A, [12490] = 0x007B, [12491] = 0x007C, [12492] = 0x007D, [12493] = 0x007E, [12494] = 0x007F, [12495] = 0x0080, [12496] = 0x0081, [12497] = 0x0082, [12498] = 0x0083, [12499] = 0x0084, [12500] = 0x0085, [12501] = 0x0086, [12502] = 0x0087, [12503] = 0x0088, [12504] = 0x0089, [12505] = 0x008A, [12506] = 0x008B, [12507] = 0x008C, [12508] = 0x008D, [12509] = 0x008E, [12510] = 0x008F, [12511] = 0x0090, [12512] = 0x0091, [12513] = 0x0092, [12514] = 0x0093, [12515] = 0x0094, [12516] = 0x0095, [12517] = 0x0096, [12518] = 0x0097, [12519] = 0x0098, [12520] = 0x0099, [12521] = 0x009A, [12522] = 0x009B, [12523] = 0x009C, [12524] = 0x009D, [12525] = 0x009E, [12527] = 0x009F, [12530] = 0x00A0, [12531] = 0x00A1, [12539] = 0x00E6, [12954] = 0x00EE, [12955] = 0x00EF, [19968] = 0x01FF, [19969] = 0x0200, [19971] = 0x0201, [19975] = 0x0202, [19976] = 0x0203, [19977] = 0x0204, [19978] = 0x0205, [19979] = 0x0206, [19980] = 0x1117, [19981] = 0x0207, [19982] = 0x0208, [19984] = 0x1118, [19985] = 0x0209, [19987] = 0x020A, [19988] = 0x020B, [19989] = 0x1119, [19990] = 0x020C, [19992] = 0x020D, [19993] = 0x0EA4, [19994] = 0x020E, [19995] = 0x020F, [19996] = 0x0210, [19997] = 0x0211, [19998] = 0x111A, [20002] = 0x0212, [20004] = 0x0213, [20005] = 0x0214, [20007] = 0x0215, [20008] = 0x111B, [20010] = 0x0216, [20011] = 0x0217, [20012] = 0x111C, [20013] = 0x0218, [20016] = 0x0219, [20018] = 0x0EA5, [20020] = 0x021A, [20022] = 0x111D, [20024] = 0x021B, [20025] = 0x021C, [20026] = 0x021D, [20027] = 0x021E, [20029] = 0x021F, [20030] = 0x0220, [20031] = 0x111E, [20035] = 0x0221, [20037] = 0x0222, [20039] = 0x111F, [20040] = 0x0223, [20041] = 0x0224, [20043] = 0x0225, [20044] = 0x0226, [20045] = 0x0227, [20046] = 0x0228, [20047] = 0x0229, [20048] = 0x022A, [20050] = 0x0EA6, [20051] = 0x0EA7, [20052] = 0x022B, [20054] = 0x022C, [20056] = 0x022D, [20057] = 0x022E, [20060] = 0x1120, [20061] = 0x022F, [20062] = 0x0EA8, [20063] = 0x0230, [20064] = 0x0231, [20065] = 0x0232, [20070] = 0x0233, [20073] = 0x1121, [20080] = 0x0234, [20081] = 0x0235, [20083] = 0x0EA9, [20094] = 0x1122, [20102] = 0x0236, [20104] = 0x0237, [20105] = 0x0238, [20107] = 0x0239, [20108] = 0x023A, [20109] = 0x1123, [20110] = 0x023B, [20111] = 0x023C, [20113] = 0x023D, [20114] = 0x023E, [20115] = 0x1124, [20116] = 0x023F, [20117] = 0x0240, [20120] = 0x1125, [20122] = 0x0241, [20123] = 0x0242, [20127] = 0x1126, [20128] = 0x1127, [20129] = 0x0243, [20130] = 0x0244, [20132] = 0x0245, [20133] = 0x0246, [20134] = 0x0247, [20135] = 0x0248, [20136] = 0x0249, [20137] = 0x0EAA, [20139] = 0x024A, [20140] = 0x024B, [20141] = 0x0DDC, [20142] = 0x024C, [20146] = 0x024D, [20147] = 0x1128, [20149] = 0x1129, [20154] = 0x024E, [20155] = 0x112A, [20159] = 0x024F, [20160] = 0x0250, [20161] = 0x0251, [20162] = 0x112B, [20163] = 0x112C, [20164] = 0x112D, [20165] = 0x0252, [20166] = 0x0253, [20167] = 0x0254, [20169] = 0x112E, [20170] = 0x0255, [20171] = 0x0256, [20173] = 0x0257, [20174] = 0x0258, [20177] = 0x0EAB, [20179] = 0x0259, [20180] = 0x025A, [20181] = 0x112F, [20182] = 0x025B, [20183] = 0x025C, [20184] = 0x025D, [20185] = 0x025E, [20189] = 0x1130, [20190] = 0x0EAC, [20191] = 0x1131, [20193] = 0x1132, [20195] = 0x025F, [20196] = 0x0260, [20197] = 0x0261, [20200] = 0x1133, [20202] = 0x0262, [20203] = 0x1134, [20204] = 0x0263, [20208] = 0x0264, [20210] = 0x0DDD, [20211] = 0x1135, [20213] = 0x1136, [20214] = 0x0265, [20215] = 0x0266, [20219] = 0x0267, [20221] = 0x0268, [20223] = 0x0269, [20225] = 0x026A, [20233] = 0x1137, [20234] = 0x026B, [20237] = 0x026C, [20238] = 0x0EAD, [20239] = 0x026D, [20240] = 0x026E, [20241] = 0x026F, [20247] = 0x0270, [20248] = 0x0271, [20249] = 0x0272, [20250] = 0x0273, [20251] = 0x1138, [20254] = 0x0274, [20255] = 0x0275, [20256] = 0x0276, [20258] = 0x1139, [20260] = 0x0277, [20261] = 0x113A, [20262] = 0x0278, [20263] = 0x113B, [20266] = 0x0279, [20267] = 0x0EAE, [20271] = 0x027A, [20272] = 0x027B, [20274] = 0x113C, [20276] = 0x027C, [20278] = 0x0EAF, [20280] = 0x027D, [20282] = 0x027E, [20284] = 0x027F, [20285] = 0x0280, [20291] = 0x0281, [20294] = 0x0282, [20301] = 0x0283, [20302] = 0x0284, [20303] = 0x0285, [20304] = 0x0286, [20305] = 0x0287, [20307] = 0x0288, [20309] = 0x0289, [20311] = 0x113D, [20312] = 0x113E, [20313] = 0x028A, [20314] = 0x113F, [20315] = 0x028B, [20316] = 0x028C, [20317] = 0x1140, [20318] = 0x1141, [20319] = 0x1142, [20320] = 0x028D, [20323] = 0x0EB0, [20324] = 0x1143, [20325] = 0x1144, [20327] = 0x1145, [20329] = 0x028E, [20332] = 0x0DDE, [20335] = 0x028F, [20336] = 0x1146, [20339] = 0x0290, [20340] = 0x1147, [20342] = 0x1148, [20347] = 0x1149, [20348] = 0x114A, [20350] = 0x114B, [20351] = 0x0291, [20355] = 0x114C, [20356] = 0x0EB1, [20360] = 0x0EB2, [20361] = 0x114D, [20363] = 0x0292, [20365] = 0x0293, [20367] = 0x114E, [20369] = 0x114F, [20372] = 0x1150, [20375] = 0x1151, [20379] = 0x0294, [20381] = 0x0295, [20384] = 0x0EB3, [20387] = 0x0296, [20389] = 0x1152, [20390] = 0x0297, [20391] = 0x0298, [20392] = 0x0EB4, [20393] = 0x1153, [20394] = 0x1154, [20396] = 0x0299, [20398] = 0x0EB5, [20399] = 0x0EB6, [20405] = 0x029A, [20415] = 0x029B, [20419] = 0x029C, [20420] = 0x029D, [20421] = 0x1155, [20426] = 0x029E, [20430] = 0x1156, [20431] = 0x0E8D, [20432] = 0x1116, [20433] = 0x1157, [20439] = 0x029F, [20440] = 0x0EB7, [20442] = 0x1158, [20444] = 0x1159, [20445] = 0x02A0, [20446] = 0x115A, [20447] = 0x115B, [20449] = 0x02A1, [20451] = 0x115C, [20454] = 0x115D, [20456] = 0x115E, [20457] = 0x02A2, [20458] = 0x115F, [20461] = 0x0EB8, [20462] = 0x02A3, [20463] = 0x0DDF, [20465] = 0x02A4, [20467] = 0x1160, [20472] = 0x1161, [20474] = 0x02A5, [20478] = 0x1162, [20492] = 0x1163, [20493] = 0x02A6, [20495] = 0x1164, [20498] = 0x02A7, [20500] = 0x1165, [20504] = 0x0EB9, [20505] = 0x02A8, [20506] = 0x0EBA, [20508] = 0x1166, [20511] = 0x02A9, [20513] = 0x0EBB, [20517] = 0x1167, [20518] = 0x02AA, [20520] = 0x1168, [20521] = 0x0EBC, [20522] = 0x0DE0, [20524] = 0x0EBD, [20525] = 0x1169, [20526] = 0x116A, [20538] = 0x0EBE, [20540] = 0x02AB, [20542] = 0x02AC, [20547] = 0x116B, [20551] = 0x02AD, [20552] = 0x116C, [20556] = 0x0EBF, [20558] = 0x0EC0, [20559] = 0x02AE, [20565] = 0x02AF, [20570] = 0x02B0, [20572] = 0x02B1, [20581] = 0x02B2, [20588] = 0x116D, [20598] = 0x02B3, [20599] = 0x02B4, [20603] = 0x116E, [20606] = 0x116F, [20607] = 0x02B5, [20608] = 0x1170, [20613] = 0x02B6, [20616] = 0x1171, [20621] = 0x02B7, [20643] = 0x1172, [20645] = 0x1173, [20647] = 0x1174, [20648] = 0x02B8, [20649] = 0x1175, [20652] = 0x02B9, [20658] = 0x02BA, [20666] = 0x1176, [20667] = 0x02BB, [20687] = 0x02BC, [20694] = 0x1177, [20698] = 0x0EC1, [20710] = 0x1178, [20711] = 0x02BD, [20716] = 0x1179, [20717] = 0x117A, [20718] = 0x117B, [20723] = 0x117C, [20725] = 0x02BE, [20731] = 0x02BF, [20742] = 0x117D, [20743] = 0x117E, [20747] = 0x117F, [20754] = 0x0DE1, [20769] = 0x1180, [20799] = 0x02C0, [20800] = 0x0EC2, [20801] = 0x02C1, [20803] = 0x02C2, [20804] = 0x02C3, [20805] = 0x02C4, [20806] = 0x02C5, [20808] = 0x02C6, [20809] = 0x02C7, [20811] = 0x02C8, [20813] = 0x02C9, [20816] = 0x02CA, [20817] = 0x02CB, [20820] = 0x02CC, [20821] = 0x1181, [20822] = 0x1182, [20826] = 0x0EC3, [20828] = 0x02CD, [20834] = 0x02CE, [20837] = 0x02CF, [20840] = 0x02D0, [20843] = 0x02D1, [20844] = 0x02D2, [20845] = 0x02D3, [20846] = 0x02D4, [20848] = 0x02D5, [20849] = 0x02D6, [20851] = 0x02D7, [20852] = 0x02D8, [20853] = 0x02D9, [20854] = 0x02DA, [20855] = 0x02DB, [20856] = 0x02DC, [20857] = 0x02DD, [20859] = 0x02DE, [20860] = 0x02DF, [20861] = 0x02E0, [20864] = 0x1183, [20865] = 0x1184, [20866] = 0x1185, [20869] = 0x02E1, [20872] = 0x02E2, [20873] = 0x02E3, [20876] = 0x02E4, [20877] = 0x02E5, [20882] = 0x02E6, [20885] = 0x02E7, [20886] = 0x1186, [20887] = 0x1187, [20889] = 0x02E8, [20891] = 0x02E9, [20892] = 0x02EA, [20896] = 0x02EB, [20898] = 0x1188, [20900] = 0x02EC, [20901] = 0x02ED, [20907] = 0x1189, [20908] = 0x02EE, [20911] = 0x118A, [20912] = 0x02EF, [20913] = 0x118B, [20914] = 0x02F0, [20915] = 0x02F1, [20917] = 0x02F2, [20918] = 0x0EC4, [20919] = 0x02F3, [20923] = 0x02F4, [20924] = 0x118C, [20925] = 0x0EC5, [20928] = 0x02F5, [20931] = 0x02F6, [20932] = 0x0EC6, [20934] = 0x02F7, [20935] = 0x118D, [20937] = 0x02F8, [20939] = 0x02F9, [20940] = 0x02FA, [20943] = 0x02FB, [20945] = 0x02FC, [20955] = 0x02FD, [20957] = 0x02FE, [20960] = 0x02FF, [20961] = 0x0300, [20964] = 0x0301, [20970] = 0x0EC7, [20971] = 0x118E, [20973] = 0x0302, [20975] = 0x0303, [20976] = 0x0DE3, [20979] = 0x0EC8, [20981] = 0x118F, [20982] = 0x0304, [20984] = 0x0305, [20985] = 0x0306, [20986] = 0x0307, [20987] = 0x0308, [20988] = 0x1190, [20989] = 0x0309, [20991] = 0x0DE4, [20992] = 0x030A, [20993] = 0x1191, [20994] = 0x1192, [20995] = 0x030B, [20998] = 0x030C, [20999] = 0x030D, [21000] = 0x1193, [21002] = 0x030E, [21005] = 0x1194, [21006] = 0x1195, [21009] = 0x030F, [21010] = 0x0310, [21014] = 0x1196, [21015] = 0x0311, [21016] = 0x0EC9, [21017] = 0x0312, [21018] = 0x0313, [21019] = 0x0314, [21021] = 0x0315, [21024] = 0x0316, [21028] = 0x0317, [21032] = 0x0318, [21033] = 0x0319, [21035] = 0x031A, [21037] = 0x1197, [21038] = 0x031B, [21040] = 0x031C, [21043] = 0x1198, [21046] = 0x031D, [21047] = 0x031E, [21048] = 0x031F, [21049] = 0x0320, [21050] = 0x0321, [21051] = 0x0322, [21053] = 0x1199, [21055] = 0x119A, [21056] = 0x119B, [21057] = 0x0ECA, [21058] = 0x0323, [21059] = 0x0ECB, [21066] = 0x0324, [21068] = 0x119C, [21069] = 0x0325, [21072] = 0x119D, [21073] = 0x0326, [21076] = 0x0327, [21078] = 0x0ECC, [21084] = 0x119E, [21086] = 0x119F, [21089] = 0x11A0, [21093] = 0x0328, [21095] = 0x0329, [21097] = 0x032A, [21098] = 0x032B, [21103] = 0x032C, [21106] = 0x032D, [21117] = 0x11A1, [21119] = 0x11A2, [21121] = 0x11A3, [21122] = 0x11A4, [21128] = 0x032E, [21136] = 0x11A5, [21139] = 0x11A6, [21147] = 0x032F, [21149] = 0x0330, [21150] = 0x0331, [21151] = 0x0332, [21152] = 0x0333, [21153] = 0x0334, [21154] = 0x11A7, [21155] = 0x0335, [21160] = 0x0336, [21161] = 0x0337, [21162] = 0x0338, [21163] = 0x0ECD, [21164] = 0x11A8, [21165] = 0x11A9, [21169] = 0x0339, [21170] = 0x033A, [21171] = 0x033B, [21182] = 0x11AA, [21183] = 0x033C, [21187] = 0x033D, [21191] = 0x033E, [21193] = 0x033F, [21195] = 0x0340, [21200] = 0x11AB, [21202] = 0x0341, [21206] = 0x11AC, [21208] = 0x0ECE, [21215] = 0x0342, [21220] = 0x0343, [21232] = 0x11AD, [21241] = 0x11AE, [21242] = 0x0344, [21246] = 0x0345, [21247] = 0x0346, [21248] = 0x0ECF, [21253] = 0x0347, [21254] = 0x0DE5, [21256] = 0x0348, [21261] = 0x0ED0, [21263] = 0x11AF, [21264] = 0x0ED1, [21269] = 0x0349, [21270] = 0x034A, [21271] = 0x034B, [21273] = 0x034C, [21274] = 0x11B0, [21277] = 0x11B1, [21280] = 0x034D, [21281] = 0x11B2, [21283] = 0x034E, [21286] = 0x11B3, [21290] = 0x034F, [21294] = 0x11B4, [21305] = 0x0350, [21306] = 0x0351, [21307] = 0x0352, [21310] = 0x11B5, [21311] = 0x0353, [21313] = 0x0354, [21315] = 0x0355, [21317] = 0x11B6, [21319] = 0x0356, [21320] = 0x0357, [21321] = 0x0ED2, [21322] = 0x0358, [21326] = 0x0359, [21327] = 0x035A, [21329] = 0x035B, [21330] = 0x035C, [21331] = 0x035D, [21333] = 0x035E, [21334] = 0x035F, [21335] = 0x0360, [21338] = 0x0361, [21340] = 0x0362, [21342] = 0x11B7, [21343] = 0x0363, [21344] = 0x0364, [21345] = 0x0365, [21346] = 0x0366, [21347] = 0x11B8, [21348] = 0x11B9, [21350] = 0x11BA, [21351] = 0x0ED3, [21353] = 0x11BB, [21355] = 0x0367, [21358] = 0x11BC, [21359] = 0x0ED4, [21360] = 0x0368, [21361] = 0x0369, [21363] = 0x036A, [21364] = 0x036B, [21365] = 0x036C, [21367] = 0x036D, [21368] = 0x036E, [21370] = 0x11BD, [21375] = 0x0ED5, [21378] = 0x036F, [21380] = 0x0370, [21381] = 0x0371, [21382] = 0x0372, [21385] = 0x0373, [21387] = 0x0374, [21388] = 0x0375, [21389] = 0x11BE, [21397] = 0x0ED6, [21400] = 0x0376, [21402] = 0x0377, [21405] = 0x11BF, [21407] = 0x0378, [21410] = 0x0ED7, [21411] = 0x11C0, [21413] = 0x0DE6, [21414] = 0x0379, [21416] = 0x037A, [21417] = 0x11C1, [21422] = 0x0ED8, [21430] = 0x11C2, [21435] = 0x037B, [21439] = 0x037C, [21441] = 0x11C3, [21442] = 0x037D, [21448] = 0x037E, [21449] = 0x037F, [21450] = 0x0380, [21451] = 0x0381, [21452] = 0x0382, [21453] = 0x0383, [21457] = 0x0384, [21460] = 0x0385, [21462] = 0x0386, [21463] = 0x0387, [21464] = 0x0388, [21465] = 0x0389, [21467] = 0x0ED9, [21471] = 0x11C4, [21472] = 0x038A, [21475] = 0x038B, [21476] = 0x038C, [21477] = 0x038D, [21478] = 0x038E, [21480] = 0x0EDA, [21481] = 0x038F, [21482] = 0x0390, [21483] = 0x0391, [21484] = 0x0392, [21485] = 0x0393, [21486] = 0x0394, [21487] = 0x0395, [21488] = 0x0396, [21489] = 0x11C5, [21490] = 0x0397, [21491] = 0x0398, [21493] = 0x11C6, [21494] = 0x0399, [21495] = 0x039A, [21496] = 0x039B, [21497] = 0x039C, [21499] = 0x11C7, [21500] = 0x039D, [21501] = 0x039E, [21505] = 0x0EDB, [21507] = 0x039F, [21508] = 0x03A0, [21510] = 0x0EDC, [21512] = 0x03A1, [21513] = 0x03A2, [21514] = 0x03A3, [21516] = 0x03A4, [21517] = 0x03A5, [21518] = 0x03A6, [21519] = 0x11C8, [21520] = 0x03A7, [21521] = 0x03A8, [21522] = 0x03A9, [21523] = 0x03AA, [21524] = 0x0EDD, [21525] = 0x03AB, [21526] = 0x0EDE, [21527] = 0x03AC, [21531] = 0x03AD, [21533] = 0x03AE, [21534] = 0x03AF, [21535] = 0x03B0, [21536] = 0x03B1, [21537] = 0x03B2, [21539] = 0x11C9, [21542] = 0x03B3, [21543] = 0x03B4, [21544] = 0x03B5, [21545] = 0x03B6, [21547] = 0x03B7, [21548] = 0x03B8, [21549] = 0x03B9, [21550] = 0x0EDF, [21551] = 0x03BA, [21553] = 0x03BB, [21554] = 0x11CA, [21556] = 0x0EE0, [21557] = 0x03BC, [21560] = 0x03BD, [21561] = 0x03BE, [21563] = 0x03BF, [21564] = 0x03C0, [21566] = 0x03C1, [21568] = 0x03C2, [21571] = 0x03C3, [21574] = 0x03C4, [21576] = 0x03C5, [21578] = 0x03C6, [21579] = 0x11CB, [21584] = 0x03C7, [21586] = 0x0EE1, [21587] = 0x11CC, [21588] = 0x0EE2, [21589] = 0x0EE3, [21590] = 0x0EE4, [21591] = 0x03C8, [21592] = 0x03C9, [21593] = 0x11CD, [21595] = 0x0DE7, [21596] = 0x03CA, [21602] = 0x03CB, [21603] = 0x0EE5, [21604] = 0x0EE6, [21606] = 0x03CC, [21608] = 0x03CD, [21615] = 0x03CE, [21617] = 0x03CF, [21618] = 0x0EE7, [21619] = 0x03D0, [21621] = 0x03D1, [21622] = 0x0EE8, [21623] = 0x0EE9, [21624] = 0x0EEA, [21627] = 0x03D2, [21628] = 0x03D3, [21629] = 0x03D4, [21632] = 0x0DE8, [21634] = 0x0EEB, [21636] = 0x03D5, [21638] = 0x03D6, [21643] = 0x03D7, [21644] = 0x03D8, [21646] = 0x03D9, [21647] = 0x03DA, [21648] = 0x03DB, [21650] = 0x03DC, [21652] = 0x03DD, [21653] = 0x03DE, [21654] = 0x03DF, [21657] = 0x03E0, [21658] = 0x03E1, [21659] = 0x11CE, [21661] = 0x03E2, [21667] = 0x03E3, [21668] = 0x11CF, [21670] = 0x03E4, [21671] = 0x03E5, [21672] = 0x03E6, [21673] = 0x03E7, [21674] = 0x03E8, [21675] = 0x0EEC, [21676] = 0x03E9, [21677] = 0x11D0, [21679] = 0x03EA, [21681] = 0x03EB, [21682] = 0x0EED, [21683] = 0x03EC, [21684] = 0x11D1, [21688] = 0x03ED, [21691] = 0x03EE, [21693] = 0x0EEE, [21695] = 0x03EF, [21696] = 0x03F0, [21697] = 0x03F1, [21698] = 0x11D2, [21700] = 0x0EEF, [21702] = 0x0EF0, [21703] = 0x03F2, [21704] = 0x03F3, [21705] = 0x03F4, [21708] = 0x11D3, [21709] = 0x03F5, [21710] = 0x03F6, [21711] = 0x11D4, [21712] = 0x03F7, [21713] = 0x03F8, [21714] = 0x0DE9, [21715] = 0x11D5, [21716] = 0x03F9, [21717] = 0x11D6, [21719] = 0x03FA, [21721] = 0x11D7, [21722] = 0x11D8, [21724] = 0x11D9, [21725] = 0x0EF1, [21726] = 0x03FB, [21727] = 0x03FC, [21733] = 0x03FD, [21734] = 0x03FE, [21735] = 0x03FF, [21736] = 0x0400, [21737] = 0x0401, [21738] = 0x0402, [21741] = 0x0403, [21742] = 0x0404, [21745] = 0x0EF2, [21746] = 0x0405, [21747] = 0x11DA, [21754] = 0x0EF3, [21756] = 0x0406, [21757] = 0x11DB, [21759] = 0x11DC, [21761] = 0x11DD, [21766] = 0x11DE, [21767] = 0x0407, [21769] = 0x0408, [21775] = 0x0EF4, [21776] = 0x0409, [21777] = 0x0EF5, [21780] = 0x040A, [21787] = 0x11DF, [21790] = 0x0EF6, [21792] = 0x0EF7, [21794] = 0x11E0, [21795] = 0x11E1, [21796] = 0x040B, [21798] = 0x0EF8, [21799] = 0x040C, [21802] = 0x11E2, [21804] = 0x040D, [21805] = 0x0E8E, [21806] = 0x040E, [21807] = 0x040F, [21808] = 0x0DEA, [21809] = 0x0410, [21811] = 0x11E3, [21815] = 0x0411, [21820] = 0x11E4, [21822] = 0x0412, [21823] = 0x11E5, [21825] = 0x11E6, [21827] = 0x0413, [21828] = 0x0414, [21830] = 0x0415, [21833] = 0x11E7, [21834] = 0x0416, [21840] = 0x11E8, [21845] = 0x11E9, [21846] = 0x11EA, [21852] = 0x0EF9, [21857] = 0x0417, [21860] = 0x0EFA, [21861] = 0x0418, [21862] = 0x0419, [21863] = 0x11EB, [21866] = 0x041A, [21868] = 0x0EFB, [21869] = 0x11EC, [21870] = 0x11ED, [21871] = 0x0E8F, [21872] = 0x041B, [21877] = 0x041C, [21878] = 0x11EE, [21879] = 0x0EFC, [21880] = 0x041D, [21883] = 0x11EF, [21884] = 0x041E, [21886] = 0x041F, [21888] = 0x0420, [21889] = 0x0EFD, [21890] = 0x0421, [21891] = 0x0422, [21892] = 0x0423, [21895] = 0x0424, [21896] = 0x11F0, [21897] = 0x0425, [21898] = 0x0426, [21899] = 0x0427, [21903] = 0x0EFE, [21905] = 0x11F1, [21908] = 0x0428, [21912] = 0x0429, [21913] = 0x042A, [21916] = 0x042B, [21917] = 0x042C, [21919] = 0x11F2, [21927] = 0x042D, [21937] = 0x0EFF, [21939] = 0x0F00, [21941] = 0x042E, [21943] = 0x042F, [21945] = 0x11F3, [21947] = 0x0430, [21949] = 0x0431, [21950] = 0x11F4, [21956] = 0x0432, [21957] = 0x0433, [21961] = 0x11F5, [21964] = 0x11F6, [21965] = 0x11F7, [21969] = 0x11F8, [21970] = 0x0434, [21971] = 0x0F01, [21972] = 0x11F9, [21974] = 0x0F02, [21977] = 0x0F03, [21980] = 0x0435, [21981] = 0x0436, [21982] = 0x0F04, [21983] = 0x11FA, [21985] = 0x0437, [21987] = 0x0E90, [21988] = 0x0E91, [21989] = 0x11FB, [21990] = 0x0F05, [21992] = 0x0438, [21994] = 0x11FC, [21995] = 0x11FD, [21996] = 0x0439, [21999] = 0x043A, [22002] = 0x11FE, [22003] = 0x0F06, [22005] = 0x0F07, [22007] = 0x043B, [22013] = 0x043C, [22014] = 0x11FF, [22016] = 0x0F08, [22017] = 0x0F09, [22024] = 0x043D, [22025] = 0x043E, [22028] = 0x1200, [22030] = 0x043F, [22031] = 0x1201, [22040] = 0x0F0A, [22043] = 0x0440, [22046] = 0x0F0B, [22047] = 0x0441, [22051] = 0x0442, [22052] = 0x0F0C, [22055] = 0x1202, [22060] = 0x1203, [22061] = 0x0443, [22065] = 0x0F0D, [22066] = 0x0444, [22068] = 0x0445, [22070] = 0x0446, [22073] = 0x1204, [22075] = 0x0447, [22079] = 0x0448, [22092] = 0x1205, [22093] = 0x1206, [22094] = 0x0F0E, [22100] = 0x0449, [22103] = 0x044A, [22104] = 0x1207, [22105] = 0x1208, [22108] = 0x044B, [22114] = 0x044C, [22116] = 0x1209, [22120] = 0x044D, [22121] = 0x044E, [22122] = 0x044F, [22123] = 0x0F0F, [22124] = 0x0450, [22129] = 0x120A, [22134] = 0x0451, [22139] = 0x0F10, [22140] = 0x0452, [22149] = 0x120B, [22150] = 0x120C, [22158] = 0x0453, [22159] = 0x0454, [22163] = 0x0455, [22179] = 0x0456, [22191] = 0x0457, [22199] = 0x0458, [22204] = 0x0DEB, [22218] = 0x0459, [22228] = 0x0F11, [22231] = 0x120D, [22234] = 0x120E, [22235] = 0x045A, [22237] = 0x120F, [22238] = 0x045B, [22239] = 0x1210, [22240] = 0x045C, [22241] = 0x1211, [22242] = 0x045D, [22244] = 0x1212, [22247] = 0x045E, [22251] = 0x1213, [22253] = 0x045F, [22256] = 0x0460, [22257] = 0x0F12, [22260] = 0x0461, [22261] = 0x1214, [22265] = 0x1215, [22266] = 0x0462, [22269] = 0x0463, [22270] = 0x0464, [22271] = 0x1216, [22275] = 0x0465, [22276] = 0x1217, [22278] = 0x0466, [22280] = 0x0467, [22281] = 0x1218, [22282] = 0x1219, [22300] = 0x121A, [22303] = 0x0468, [22307] = 0x0469, [22312] = 0x046A, [22313] = 0x121B, [22314] = 0x121C, [22316] = 0x121D, [22317] = 0x046B, [22318] = 0x121E, [22319] = 0x121F, [22320] = 0x046C, [22323] = 0x046D, [22329] = 0x1220, [22330] = 0x046E, [22331] = 0x1221, [22334] = 0x046F, [22336] = 0x0470, [22338] = 0x0F13, [22343] = 0x0471, [22346] = 0x0472, [22348] = 0x1222, [22349] = 0x0F14, [22350] = 0x0473, [22351] = 0x0474, [22352] = 0x0475, [22353] = 0x0476, [22359] = 0x0477, [22362] = 0x0478, [22363] = 0x0F15, [22364] = 0x1223, [22365] = 0x0479, [22366] = 0x1224, [22367] = 0x047A, [22368] = 0x047B, [22369] = 0x047C, [22372] = 0x1225, [22374] = 0x047D, [22376] = 0x1226, [22377] = 0x1227, [22378] = 0x047E, [22379] = 0x1228, [22381] = 0x1229, [22383] = 0x122A, [22387] = 0x122B, [22390] = 0x122C, [22391] = 0x0F16, [22395] = 0x122D, [22396] = 0x122E, [22402] = 0x047F, [22403] = 0x0480, [22404] = 0x0F17, [22405] = 0x122F, [22406] = 0x1230, [22411] = 0x0481, [22412] = 0x1231, [22418] = 0x0F18, [22419] = 0x1232, [22427] = 0x1233, [22432] = 0x0F19, [22433] = 0x1234, [22434] = 0x0482, [22435] = 0x1235, [22436] = 0x1236, [22438] = 0x0F1A, [22439] = 0x1237, [22441] = 0x1238, [22443] = 0x0483, [22445] = 0x1239, [22446] = 0x0484, [22450] = 0x123A, [22452] = 0x123B, [22456] = 0x123C, [22466] = 0x123D, [22467] = 0x0485, [22475] = 0x0486, [22478] = 0x0487, [22479] = 0x123E, [22482] = 0x123F, [22484] = 0x0488, [22485] = 0x1240, [22488] = 0x1241, [22489] = 0x1242, [22490] = 0x1243, [22493] = 0x1244, [22495] = 0x0489, [22496] = 0x1245, [22500] = 0x1246, [22509] = 0x1247, [22511] = 0x1248, [22516] = 0x1249, [22520] = 0x124A, [22521] = 0x048A, [22522] = 0x048B, [22524] = 0x048C, [22525] = 0x124B, [22528] = 0x048D, [22530] = 0x048E, [22534] = 0x048F, [22535] = 0x0490, [22539] = 0x124C, [22541] = 0x124D, [22545] = 0x124E, [22549] = 0x124F, [22553] = 0x1250, [22558] = 0x1251, [22560] = 0x1252, [22561] = 0x0491, [22564] = 0x0492, [22570] = 0x0493, [22576] = 0x1253, [22581] = 0x0494, [22596] = 0x1254, [22604] = 0x0495, [22605] = 0x1255, [22609] = 0x0496, [22612] = 0x0497, [22616] = 0x0498, [22622] = 0x0499, [22629] = 0x1256, [22635] = 0x049A, [22636] = 0x1257, [22654] = 0x1258, [22656] = 0x1259, [22657] = 0x125A, [22659] = 0x049B, [22661] = 0x049C, [22665] = 0x125B, [22674] = 0x125C, [22675] = 0x049D, [22681] = 0x049E, [22682] = 0x125D, [22686] = 0x049F, [22687] = 0x0F1B, [22696] = 0x04A0, [22697] = 0x04A1, [22716] = 0x125E, [22721] = 0x04A2, [22725] = 0x125F, [22737] = 0x04A3, [22741] = 0x1260, [22756] = 0x04A4, [22763] = 0x04A5, [22764] = 0x0F1C, [22766] = 0x04A6, [22768] = 0x04A7, [22771] = 0x04A8, [22774] = 0x04A9, [22777] = 0x1261, [22786] = 0x1262, [22788] = 0x04AA, [22791] = 0x04AB, [22797] = 0x04AC, [22799] = 0x04AD, [22804] = 0x1263, [22805] = 0x04AE, [22806] = 0x04AF, [22809] = 0x1264, [22810] = 0x04B0, [22812] = 0x04B1, [22815] = 0x04B2, [22820] = 0x1265, [22821] = 0x1266, [22823] = 0x04B3, [22825] = 0x04B4, [22826] = 0x04B5, [22827] = 0x04B6, [22829] = 0x0DEC, [22830] = 0x04B7, [22831] = 0x1267, [22833] = 0x04B8, [22836] = 0x04B9, [22839] = 0x04BA, [22840] = 0x04BB, [22841] = 0x04BC, [22842] = 0x04BD, [22844] = 0x1268, [22849] = 0x1269, [22850] = 0x126A, [22852] = 0x0F1D, [22855] = 0x04BE, [22856] = 0x04BF, [22857] = 0x04C0, [22859] = 0x04C1, [22862] = 0x126B, [22863] = 0x04C2, [22865] = 0x04C3, [22868] = 0x04C4, [22869] = 0x0F1E, [22870] = 0x04C5, [22871] = 0x04C6, [22872] = 0x126C, [22874] = 0x126D, [22880] = 0x0F1F, [22882] = 0x0F20, [22885] = 0x04C7, [22899] = 0x04C8, [22900] = 0x0F21, [22902] = 0x04C9, [22904] = 0x0F22, [22905] = 0x04CA, [22909] = 0x04CB, [22913] = 0x126E, [22914] = 0x04CC, [22915] = 0x0F23, [22916] = 0x04CD, [22918] = 0x04CE, [22919] = 0x04CF, [22920] = 0x04D0, [22922] = 0x126F, [22925] = 0x0F24, [22930] = 0x04D1, [22931] = 0x0F25, [22934] = 0x04D2, [22935] = 0x1270, [22937] = 0x04D3, [22942] = 0x0DED, [22947] = 0x1271, [22948] = 0x0E92, [22949] = 0x0F26, [22952] = 0x04D4, [22953] = 0x0F27, [22954] = 0x1272, [22955] = 0x1273, [22958] = 0x04D5, [22959] = 0x1274, [22962] = 0x0F28, [22969] = 0x04D6, [22971] = 0x04D7, [22974] = 0x1275, [22982] = 0x04D8, [22986] = 0x1276, [22987] = 0x04D9, [22992] = 0x04DA, [22993] = 0x0F29, [22994] = 0x1277, [22995] = 0x04DB, [22996] = 0x04DC, [22999] = 0x0F2A, [23000] = 0x1278, [23002] = 0x0DEE, [23004] = 0x04DD, [23005] = 0x1279, [23011] = 0x127A, [23013] = 0x0F2B, [23016] = 0x04DE, [23020] = 0x04DF, [23033] = 0x127B, [23035] = 0x0F2C, [23039] = 0x04E0, [23041] = 0x04E1, [23043] = 0x04E2, [23044] = 0x0704, [23045] = 0x0DEF, [23046] = 0x127C, [23047] = 0x04E3, [23048] = 0x127D, [23049] = 0x127E, [23052] = 0x127F, [23057] = 0x0F2D, [23059] = 0x1280, [23064] = 0x0F2E, [23068] = 0x04E4, [23071] = 0x1281, [23072] = 0x1282, [23075] = 0x1283, [23077] = 0x0DF0, [23081] = 0x1284, [23089] = 0x04E5, [23090] = 0x1285, [23092] = 0x0F2F, [23094] = 0x1286, [23100] = 0x1287, [23104] = 0x1288, [23110] = 0x04E6, [23113] = 0x0B78, [23114] = 0x1289, [23125] = 0x0F30, [23130] = 0x04E7, [23138] = 0x128A, [23143] = 0x128B, [23146] = 0x0DF1, [23156] = 0x04E8, [23157] = 0x128C, [23158] = 0x04E9, [23159] = 0x0DF2, [23162] = 0x128D, [23167] = 0x128E, [23186] = 0x0F31, [23194] = 0x04EA, [23195] = 0x04EB, [23210] = 0x128F, [23218] = 0x04EC, [23219] = 0x04ED, [23221] = 0x1290, [23224] = 0x1291, [23230] = 0x1292, [23233] = 0x0F32, [23234] = 0x0F33, [23241] = 0x04EE, [23244] = 0x04EF, [23250] = 0x1293, [23252] = 0x1294, [23254] = 0x1295, [23256] = 0x1296, [23258] = 0x0DF3, [23260] = 0x1297, [23264] = 0x1298, [23265] = 0x1299, [23267] = 0x129A, [23270] = 0x0F34, [23273] = 0x04F0, [23275] = 0x129B, [23281] = 0x129C, [23305] = 0x04F1, [23318] = 0x129D, [23319] = 0x129E, [23346] = 0x129F, [23348] = 0x12A0, [23351] = 0x12A1, [23360] = 0x12A2, [23376] = 0x04F2, [23377] = 0x12A3, [23379] = 0x12A4, [23380] = 0x04F3, [23381] = 0x0DF4, [23383] = 0x04F4, [23384] = 0x04F5, [23385] = 0x04F6, [23386] = 0x12A5, [23387] = 0x12A6, [23388] = 0x04F7, [23389] = 0x04F8, [23391] = 0x04F9, [23394] = 0x04FA, [23395] = 0x04FB, [23396] = 0x04FC, [23397] = 0x12A7, [23398] = 0x04FD, [23401] = 0x04FE, [23402] = 0x04FF, [23404] = 0x12A8, [23408] = 0x12A9, [23409] = 0x0F35, [23411] = 0x12AA, [23413] = 0x0500, [23418] = 0x12AB, [23421] = 0x0F36, [23424] = 0x12AC, [23425] = 0x0501, [23427] = 0x0502, [23428] = 0x12AD, [23429] = 0x0503, [23431] = 0x0504, [23432] = 0x0505, [23433] = 0x0506, [23435] = 0x0507, [23436] = 0x0508, [23439] = 0x0509, [23443] = 0x12AE, [23445] = 0x12AF, [23447] = 0x050A, [23448] = 0x050B, [23449] = 0x050C, [23450] = 0x050D, [23451] = 0x050E, [23452] = 0x050F, [23453] = 0x0510, [23454] = 0x0511, [23456] = 0x0512, [23457] = 0x0513, [23458] = 0x0514, [23459] = 0x0515, [23460] = 0x0516, [23461] = 0x12B0, [23462] = 0x12B1, [23466] = 0x0DF5, [23467] = 0x0517, [23472] = 0x0F37, [23475] = 0x0518, [23476] = 0x0F38, [23477] = 0x0F39, [23478] = 0x0519, [23480] = 0x12B2, [23481] = 0x051A, [23485] = 0x051B, [23486] = 0x051C, [23487] = 0x051D, [23490] = 0x051E, [23492] = 0x051F, [23493] = 0x0F3A, [23494] = 0x0520, [23495] = 0x0521, [23500] = 0x0522, [23504] = 0x0523, [23506] = 0x0524, [23507] = 0x0525, [23517] = 0x0526, [23518] = 0x0527, [23519] = 0x0528, [23521] = 0x0529, [23524] = 0x12B3, [23525] = 0x12B4, [23528] = 0x052A, [23534] = 0x12B5, [23536] = 0x12B6, [23544] = 0x052B, [23545] = 0x052C, [23546] = 0x052D, [23547] = 0x052E, [23548] = 0x052F, [23551] = 0x0530, [23553] = 0x0531, [23556] = 0x0532, [23558] = 0x0533, [23561] = 0x12B7, [23562] = 0x0534, [23567] = 0x0535, [23569] = 0x0536, [23572] = 0x0537, [23573] = 0x12B8, [23574] = 0x0538, [23576] = 0x0539, [23578] = 0x053A, [23580] = 0x12B9, [23581] = 0x053B, [23586] = 0x12BA, [23588] = 0x053C, [23589] = 0x12BB, [23591] = 0x12BC, [23596] = 0x053D, [23601] = 0x053E, [23604] = 0x053F, [23608] = 0x0F3B, [23609] = 0x12BD, [23610] = 0x0540, [23611] = 0x0541, [23612] = 0x0542, [23613] = 0x0543, [23614] = 0x0544, [23615] = 0x0F3C, [23616] = 0x0545, [23617] = 0x0546, [23618] = 0x0547, [23621] = 0x0548, [23624] = 0x0549, [23625] = 0x12BE, [23626] = 0x0F3D, [23627] = 0x054A, [23630] = 0x054B, [23631] = 0x054C, [23632] = 0x12BF, [23633] = 0x0F3E, [23637] = 0x054D, [23641] = 0x12C0, [23646] = 0x054E, [23648] = 0x0F3F, [23649] = 0x0F40, [23651] = 0x12C1, [23653] = 0x0F41, [23654] = 0x12C2, [23662] = 0x12C3, [23663] = 0x0F42, [23665] = 0x054F, [23673] = 0x0550, [23674] = 0x12C4, [23679] = 0x0F43, [23681] = 0x0551, [23682] = 0x0552, [23688] = 0x12C5, [23692] = 0x12C6, [23693] = 0x12C7, [23696] = 0x0553, [23697] = 0x12C8, [23700] = 0x0554, [23702] = 0x0555, [23703] = 0x0F44, [23704] = 0x12C9, [23705] = 0x12CA, [23706] = 0x0DF6, [23707] = 0x0556, [23708] = 0x12CB, [23713] = 0x0557, [23714] = 0x12CC, [23715] = 0x12CD, [23721] = 0x0558, [23723] = 0x12CE, [23724] = 0x0559, [23725] = 0x055A, [23729] = 0x055B, [23731] = 0x055C, [23733] = 0x12CF, [23735] = 0x12D0, [23736] = 0x055D, [23741] = 0x12D1, [23743] = 0x12D2, [23745] = 0x12D3, [23748] = 0x12D4, [23755] = 0x12D5, [23762] = 0x12D6, [23769] = 0x0F45, [23777] = 0x055E, [23780] = 0x12D7, [23781] = 0x12D8, [23782] = 0x055F, [23784] = 0x0E93, [23786] = 0x12D9, [23789] = 0x0560, [23792] = 0x0561, [23803] = 0x0562, [23810] = 0x12DA, [23811] = 0x12DB, [23814] = 0x12DC, [23815] = 0x0563, [23822] = 0x0564, [23828] = 0x12DD, [23830] = 0x0565, [23835] = 0x0F46, [23838] = 0x12DE, [23844] = 0x12DF, [23846] = 0x12E0, [23847] = 0x12E1, [23849] = 0x0566, [23853] = 0x0567, [23854] = 0x12E2, [23860] = 0x12E3, [23869] = 0x0568, [23870] = 0x12E4, [23879] = 0x12E5, [23882] = 0x12E6, [23883] = 0x12E7, [23884] = 0x0569, [23896] = 0x12E8, [23899] = 0x12E9, [23901] = 0x12EA, [23913] = 0x056A, [23915] = 0x12EB, [23916] = 0x12EC, [23919] = 0x12ED, [23924] = 0x12EE, [23938] = 0x12EF, [23961] = 0x12F0, [23965] = 0x12F1, [23991] = 0x12F2, [24005] = 0x0F47, [24013] = 0x056B, [24027] = 0x12F3, [24029] = 0x056C, [24030] = 0x056D, [24033] = 0x056E, [24034] = 0x056F, [24037] = 0x0570, [24038] = 0x0571, [24039] = 0x0572, [24040] = 0x0573, [24041] = 0x0F48, [24043] = 0x0574, [24046] = 0x0575, [24047] = 0x12F4, [24049] = 0x0576, [24050] = 0x0577, [24051] = 0x0F49, [24052] = 0x0578, [24055] = 0x0F4A, [24061] = 0x12F5, [24062] = 0x0579, [24065] = 0x057A, [24066] = 0x057B, [24067] = 0x057C, [24069] = 0x057D, [24070] = 0x057E, [24072] = 0x057F, [24076] = 0x0580, [24079] = 0x12F6, [24080] = 0x0581, [24081] = 0x12F7, [24084] = 0x12F8, [24085] = 0x0582, [24086] = 0x0F4B, [24088] = 0x0F4C, [24089] = 0x12F9, [24090] = 0x12FA, [24091] = 0x0583, [24092] = 0x0584, [24093] = 0x0585, [24102] = 0x0586, [24103] = 0x0587, [24109] = 0x0588, [24110] = 0x0589, [24113] = 0x12FB, [24119] = 0x058A, [24120] = 0x058B, [24123] = 0x12FC, [24124] = 0x12FD, [24125] = 0x058C, [24130] = 0x12FE, [24132] = 0x12FF, [24133] = 0x058D, [24140] = 0x058E, [24148] = 0x0F4D, [24149] = 0x058F, [24155] = 0x1300, [24158] = 0x1301, [24161] = 0x0F4E, [24162] = 0x0590, [24178] = 0x0591, [24179] = 0x0592, [24180] = 0x0593, [24182] = 0x0594, [24184] = 0x0595, [24186] = 0x0F4F, [24187] = 0x0596, [24188] = 0x0597, [24189] = 0x0598, [24191] = 0x0599, [24192] = 0x1302, [24196] = 0x059A, [24198] = 0x059B, [24199] = 0x0F50, [24202] = 0x059C, [24203] = 0x1303, [24207] = 0x059D, [24208] = 0x1304, [24209] = 0x1305, [24211] = 0x059E, [24212] = 0x059F, [24213] = 0x05A0, [24214] = 0x1306, [24215] = 0x05A1, [24217] = 0x05A2, [24218] = 0x1307, [24220] = 0x0F51, [24222] = 0x0DF7, [24223] = 0x05A3, [24224] = 0x1308, [24229] = 0x1309, [24230] = 0x05A4, [24231] = 0x05A5, [24237] = 0x05A6, [24243] = 0x130A, [24245] = 0x05A7, [24246] = 0x0F52, [24247] = 0x05A8, [24248] = 0x05A9, [24249] = 0x130B, [24254] = 0x130C, [24265] = 0x05AA, [24266] = 0x0F53, [24273] = 0x130D, [24274] = 0x130E, [24275] = 0x05AB, [24278] = 0x130F, [24283] = 0x1310, [24296] = 0x1311, [24298] = 0x1312, [24308] = 0x1313, [24310] = 0x05AC, [24311] = 0x05AD, [24314] = 0x05AE, [24318] = 0x1314, [24319] = 0x0F54, [24320] = 0x05AF, [24321] = 0x1315, [24322] = 0x05B0, [24323] = 0x05B1, [24324] = 0x05B2, [24328] = 0x1316, [24330] = 0x0F55, [24331] = 0x1317, [24335] = 0x05B3, [24337] = 0x1318, [24339] = 0x0F56, [24341] = 0x05B4, [24342] = 0x05B5, [24343] = 0x05B6, [24344] = 0x05B7, [24347] = 0x05B8, [24351] = 0x05B9, [24352] = 0x05BA, [24357] = 0x05BB, [24358] = 0x05BC, [24359] = 0x0F57, [24361] = 0x0F58, [24362] = 0x1319, [24365] = 0x131A, [24367] = 0x05BD, [24369] = 0x05BE, [24377] = 0x05BF, [24378] = 0x05C0, [24380] = 0x131B, [24384] = 0x131C, [24400] = 0x131D, [24402] = 0x05C1, [24403] = 0x05C2, [24405] = 0x05C3, [24406] = 0x131E, [24407] = 0x05C4, [24408] = 0x131F, [24413] = 0x1320, [24417] = 0x1321, [24418] = 0x05C5, [24420] = 0x1322, [24422] = 0x05C6, [24425] = 0x05C7, [24426] = 0x1323, [24428] = 0x05C8, [24429] = 0x05C9, [24432] = 0x05CA, [24433] = 0x05CB, [24435] = 0x1324, [24439] = 0x05CC, [24441] = 0x05CD, [24443] = 0x05CE, [24444] = 0x05CF, [24448] = 0x05D0, [24449] = 0x05D1, [24450] = 0x1325, [24452] = 0x05D2, [24453] = 0x05D3, [24455] = 0x1326, [24456] = 0x05D4, [24457] = 0x1327, [24458] = 0x05D5, [24459] = 0x05D6, [24460] = 0x1328, [24464] = 0x0F59, [24466] = 0x05D7, [24469] = 0x1329, [24471] = 0x05D8, [24472] = 0x05D9, [24473] = 0x05DA, [24476] = 0x132A, [24481] = 0x05DB, [24488] = 0x05DC, [24490] = 0x05DD, [24493] = 0x132B, [24494] = 0x05DE, [24501] = 0x132C, [24503] = 0x05DF, [24508] = 0x132D, [24509] = 0x05E0, [24515] = 0x05E1, [24516] = 0x132E, [24517] = 0x05E2, [24518] = 0x05E3, [24521] = 0x132F, [24524] = 0x05E4, [24525] = 0x05E5, [24527] = 0x1330, [24528] = 0x0F5A, [24529] = 0x0F5B, [24530] = 0x0F5C, [24534] = 0x1331, [24535] = 0x05E6, [24536] = 0x05E7, [24537] = 0x05E8, [24541] = 0x1332, [24544] = 0x05E9, [24545] = 0x1333, [24548] = 0x0F5D, [24551] = 0x0F5E, [24554] = 0x0F5F, [24555] = 0x05EA, [24557] = 0x1334, [24558] = 0x1335, [24561] = 0x0F60, [24565] = 0x05EB, [24568] = 0x1336, [24571] = 0x1337, [24573] = 0x05EC, [24574] = 0x1338, [24575] = 0x1339, [24576] = 0x05ED, [24577] = 0x05EE, [24578] = 0x0F61, [24579] = 0x133A, [24580] = 0x133B, [24581] = 0x05EF, [24582] = 0x133C, [24586] = 0x133D, [24589] = 0x133E, [24590] = 0x05F0, [24591] = 0x0F62, [24594] = 0x05F1, [24596] = 0x133F, [24597] = 0x05F2, [24598] = 0x05F3, [24601] = 0x1340, [24603] = 0x1341, [24604] = 0x05F4, [24605] = 0x05F5, [24608] = 0x05F6, [24609] = 0x0F63, [24613] = 0x05F7, [24614] = 0x05F8, [24615] = 0x05F9, [24616] = 0x05FA, [24617] = 0x1342, [24618] = 0x05FB, [24619] = 0x1343, [24623] = 0x05FC, [24629] = 0x1344, [24635] = 0x05FD, [24636] = 0x1345, [24639] = 0x1346, [24641] = 0x1347, [24642] = 0x1348, [24643] = 0x1349, [24651] = 0x05FE, [24653] = 0x134A, [24656] = 0x05FF, [24658] = 0x0600, [24661] = 0x0601, [24665] = 0x0602, [24666] = 0x134B, [24669] = 0x134C, [24674] = 0x0603, [24675] = 0x134D, [24676] = 0x0F64, [24679] = 0x134E, [24680] = 0x0604, [24681] = 0x0605, [24682] = 0x134F, [24683] = 0x0F65, [24684] = 0x0F66, [24685] = 0x0606, [24687] = 0x0607, [24688] = 0x0608, [24691] = 0x0F67, [24694] = 0x0609, [24696] = 0x1350, [24697] = 0x1351, [24698] = 0x1352, [24699] = 0x1353, [24700] = 0x060A, [24701] = 0x1354, [24703] = 0x1355, [24707] = 0x1356, [24708] = 0x0DF8, [24713] = 0x060B, [24716] = 0x1357, [24717] = 0x060C, [24722] = 0x1358, [24724] = 0x060D, [24726] = 0x1359, [24730] = 0x060E, [24731] = 0x135A, [24733] = 0x135B, [24735] = 0x060F, [24736] = 0x0610, [24739] = 0x0F68, [24742] = 0x0611, [24744] = 0x0612, [24747] = 0x135C, [24748] = 0x0613, [24749] = 0x135D, [24751] = 0x0614, [24753] = 0x135E, [24754] = 0x0615, [24756] = 0x0F69, [24760] = 0x0F6A, [24763] = 0x135F, [24764] = 0x0F6B, [24773] = 0x0616, [24774] = 0x0617, [24778] = 0x0618, [24779] = 0x0619, [24785] = 0x061A, [24789] = 0x0DF9, [24792] = 0x061B, [24794] = 0x1360, [24796] = 0x061C, [24797] = 0x1361, [24799] = 0x1362, [24800] = 0x061D, [24806] = 0x1363, [24807] = 0x061E, [24808] = 0x061F, [24809] = 0x0620, [24811] = 0x0621, [24812] = 0x0622, [24813] = 0x0623, [24814] = 0x0F6C, [24815] = 0x0624, [24816] = 0x0625, [24819] = 0x0626, [24820] = 0x1364, [24822] = 0x1365, [24825] = 0x0627, [24826] = 0x0F6D, [24832] = 0x1366, [24833] = 0x0628, [24838] = 0x1367, [24840] = 0x0629, [24841] = 0x062A, [24845] = 0x1368, [24846] = 0x1369, [24847] = 0x062B, [24853] = 0x0F6E, [24858] = 0x062C, [24863] = 0x062D, [24864] = 0x136A, [24867] = 0x0F6F, [24868] = 0x062E, [24870] = 0x136B, [24871] = 0x062F, [24875] = 0x136C, [24895] = 0x0630, [24904] = 0x0DFA, [24906] = 0x136D, [24908] = 0x0631, [24910] = 0x0632, [24913] = 0x0633, [24917] = 0x0634, [24925] = 0x136E, [24930] = 0x0635, [24935] = 0x0636, [24936] = 0x0637, [24944] = 0x0638, [24949] = 0x0F70, [24951] = 0x0F71, [24971] = 0x0F72, [24974] = 0x0639, [24980] = 0x0F73, [24989] = 0x136F, [24999] = 0x063A, [25000] = 0x063B, [25001] = 0x063C, [25004] = 0x063D, [25015] = 0x1370, [25022] = 0x063E, [25026] = 0x063F, [25032] = 0x0640, [25034] = 0x0F74, [25035] = 0x1371, [25041] = 0x1372, [25042] = 0x0641, [25044] = 0x1373, [25062] = 0x0DFB, [25077] = 0x1374, [25087] = 0x1375, [25094] = 0x1376, [25096] = 0x0642, [25098] = 0x1377, [25099] = 0x1378, [25100] = 0x1379, [25101] = 0x137A, [25102] = 0x137B, [25103] = 0x0643, [25104] = 0x0644, [25105] = 0x0645, [25106] = 0x0646, [25109] = 0x137C, [25110] = 0x0647, [25111] = 0x137D, [25112] = 0x0648, [25114] = 0x0649, [25115] = 0x137E, [25119] = 0x137F, [25121] = 0x1380, [25122] = 0x1381, [25124] = 0x1382, [25125] = 0x1383, [25130] = 0x064A, [25132] = 0x1384, [25134] = 0x1385, [25139] = 0x0DFC, [25140] = 0x064B, [25143] = 0x064C, [25149] = 0x1386, [25150] = 0x1387, [25151] = 0x064D, [25152] = 0x064E, [25153] = 0x064F, [25155] = 0x1388, [25159] = 0x0650, [25160] = 0x1389, [25161] = 0x0651, [25163] = 0x0652, [25164] = 0x138A, [25165] = 0x0653, [25166] = 0x0654, [25169] = 0x0655, [25170] = 0x0F75, [25171] = 0x0656, [25172] = 0x0657, [25176] = 0x0658, [25179] = 0x0F76, [25187] = 0x0659, [25190] = 0x138B, [25191] = 0x065A, [25193] = 0x065B, [25194] = 0x138C, [25195] = 0x065C, [25196] = 0x065D, [25197] = 0x065E, [25198] = 0x065F, [25199] = 0x0660, [25200] = 0x0661, [25203] = 0x0662, [25206] = 0x0F77, [25209] = 0x0663, [25212] = 0x0E94, [25214] = 0x0664, [25215] = 0x0665, [25216] = 0x0666, [25220] = 0x0F78, [25225] = 0x138D, [25226] = 0x0667, [25233] = 0x0668, [25234] = 0x138E, [25235] = 0x0669, [25237] = 0x066A, [25238] = 0x066B, [25239] = 0x066C, [25240] = 0x066D, [25242] = 0x066E, [25243] = 0x066F, [25247] = 0x138F, [25248] = 0x0670, [25249] = 0x0DFD, [25250] = 0x0671, [25252] = 0x0672, [25253] = 0x0673, [25256] = 0x1390, [25259] = 0x0674, [25260] = 0x0675, [25265] = 0x0676, [25269] = 0x0677, [25273] = 0x0678, [25275] = 0x1391, [25276] = 0x0679, [25277] = 0x067A, [25279] = 0x1392, [25282] = 0x0F79, [25284] = 0x1393, [25285] = 0x067B, [25286] = 0x0DFE, [25287] = 0x1394, [25288] = 0x1395, [25289] = 0x067C, [25290] = 0x1396, [25292] = 0x067D, [25293] = 0x067E, [25294] = 0x1397, [25296] = 0x067F, [25298] = 0x0680, [25299] = 0x0681, [25300] = 0x0682, [25302] = 0x0683, [25303] = 0x0F7A, [25304] = 0x0684, [25305] = 0x0685, [25306] = 0x1398, [25307] = 0x0686, [25308] = 0x0687, [25311] = 0x0688, [25314] = 0x0689, [25315] = 0x0F7B, [25317] = 0x068A, [25318] = 0x068B, [25319] = 0x0F7C, [25320] = 0x068C, [25321] = 0x068D, [25324] = 0x068E, [25325] = 0x068F, [25326] = 0x1399, [25327] = 0x0690, [25329] = 0x0DFF, [25331] = 0x0691, [25332] = 0x0F7D, [25334] = 0x139A, [25335] = 0x0692, [25340] = 0x0693, [25341] = 0x0E00, [25342] = 0x0694, [25343] = 0x0695, [25345] = 0x0696, [25346] = 0x0697, [25351] = 0x0698, [25352] = 0x139B, [25353] = 0x0699, [25358] = 0x0F7E, [25361] = 0x069A, [25366] = 0x069B, [25370] = 0x0F7F, [25371] = 0x139C, [25373] = 0x069C, [25374] = 0x139D, [25375] = 0x139E, [25376] = 0x069D, [25377] = 0x069E, [25378] = 0x139F, [25379] = 0x069F, [25380] = 0x06A0, [25381] = 0x06A1, [25384] = 0x0E01, [25386] = 0x06A2, [25387] = 0x06A3, [25391] = 0x06A4, [25394] = 0x13A0, [25401] = 0x13A1, [25402] = 0x06A5, [25405] = 0x06A6, [25410] = 0x0E02, [25411] = 0x13A2, [25413] = 0x13A3, [25414] = 0x06A7, [25417] = 0x06A8, [25419] = 0x13A4, [25420] = 0x13A5, [25421] = 0x13A6, [25422] = 0x0F80, [25423] = 0x06A9, [25424] = 0x0F81, [25429] = 0x06AA, [25438] = 0x0F82, [25439] = 0x06AB, [25441] = 0x06AC, [25442] = 0x06AD, [25443] = 0x06AE, [25447] = 0x06AF, [25449] = 0x0E03, [25453] = 0x13A7, [25454] = 0x06B0, [25457] = 0x13A8, [25462] = 0x0F83, [25463] = 0x06B1, [25466] = 0x0F84, [25467] = 0x13A9, [25472] = 0x06B2, [25474] = 0x13AA, [25479] = 0x13AB, [25480] = 0x06B3, [25481] = 0x06B4, [25482] = 0x13AC, [25484] = 0x06B5, [25486] = 0x13AD, [25487] = 0x06B6, [25488] = 0x13AE, [25490] = 0x06B7, [25494] = 0x13AF, [25496] = 0x06B8, [25504] = 0x06B9, [25506] = 0x06BA, [25507] = 0x13B0, [25509] = 0x06BB, [25511] = 0x06BC, [25512] = 0x06BD, [25513] = 0x06BE, [25514] = 0x06BF, [25516] = 0x13B1, [25517] = 0x13B2, [25518] = 0x13B3, [25520] = 0x0F85, [25523] = 0x0F86, [25524] = 0x13B4, [25527] = 0x06C0, [25528] = 0x0F87, [25530] = 0x06C1, [25532] = 0x13B5, [25534] = 0x13B6, [25540] = 0x13B7, [25542] = 0x13B8, [25545] = 0x06C2, [25549] = 0x06C3, [25550] = 0x13B9, [25551] = 0x06C4, [25552] = 0x06C5, [25554] = 0x06C6, [25558] = 0x13BA, [25566] = 0x13BB, [25568] = 0x13BC, [25569] = 0x06C7, [25571] = 0x0F88, [25577] = 0x13BD, [25578] = 0x0F89, [25581] = 0x06C8, [25586] = 0x13BE, [25588] = 0x06C9, [25590] = 0x13BF, [25592] = 0x13C0, [25597] = 0x13C1, [25599] = 0x13C2, [25600] = 0x13C3, [25601] = 0x06CA, [25602] = 0x0F8A, [25605] = 0x06CB, [25611] = 0x13C4, [25612] = 0x13C5, [25615] = 0x06CC, [25616] = 0x06CD, [25619] = 0x0F8B, [25620] = 0x06CE, [25627] = 0x13C6, [25628] = 0x06CF, [25630] = 0x06D0, [25632] = 0x13C7, [25633] = 0x0F8C, [25638] = 0x13C8, [25639] = 0x0F8D, [25642] = 0x13C9, [25644] = 0x06D1, [25645] = 0x06D2, [25652] = 0x13CA, [25658] = 0x06D3, [25661] = 0x13CB, [25663] = 0x13CC, [25665] = 0x0E04, [25668] = 0x06D4, [25669] = 0x13CD, [25670] = 0x06D5, [25671] = 0x06D6, [25672] = 0x13CE, [25674] = 0x0F8E, [25682] = 0x06D7, [25684] = 0x06D8, [25688] = 0x06D9, [25694] = 0x13CF, [25703] = 0x06DA, [25705] = 0x06DB, [25709] = 0x13D0, [25720] = 0x06DC, [25721] = 0x13D1, [25722] = 0x13D2, [25730] = 0x13D3, [25732] = 0x13D4, [25733] = 0x13D5, [25735] = 0x0F8F, [25745] = 0x06DD, [25746] = 0x06DE, [25749] = 0x06DF, [25750] = 0x13D6, [25753] = 0x13D7, [25758] = 0x06E0, [25764] = 0x06E1, [25769] = 0x13D8, [25772] = 0x13D9, [25773] = 0x06E2, [25774] = 0x13DA, [25776] = 0x13DB, [25781] = 0x13DC, [25783] = 0x13DD, [25784] = 0x13DE, [25786] = 0x13DF, [25788] = 0x06E3, [25792] = 0x13E0, [25794] = 0x06E4, [25797] = 0x06E5, [25805] = 0x06E6, [25806] = 0x06E7, [25808] = 0x13E1, [25810] = 0x0F90, [25815] = 0x13E2, [25816] = 0x13E3, [25822] = 0x06E8, [25826] = 0x13E4, [25828] = 0x13E5, [25830] = 0x06E9, [25856] = 0x06EA, [25865] = 0x13E6, [25874] = 0x06EB, [25880] = 0x06EC, [25893] = 0x0F91, [25899] = 0x13E7, [25902] = 0x13E8, [25903] = 0x06ED, [25908] = 0x13E9, [25909] = 0x13EA, [25910] = 0x06EE, [25912] = 0x0F92, [25913] = 0x06EF, [25915] = 0x06F0, [25918] = 0x06F1, [25919] = 0x06F2, [25925] = 0x06F3, [25928] = 0x06F4, [25929] = 0x13EB, [25932] = 0x06F5, [25935] = 0x06F6, [25937] = 0x06F7, [25941] = 0x13EC, [25942] = 0x13ED, [25945] = 0x06F8, [25947] = 0x0E05, [25949] = 0x13EE, [25950] = 0x06F9, [25954] = 0x06FA, [25955] = 0x06FB, [25958] = 0x06FC, [25963] = 0x13EF, [25964] = 0x06FD, [25968] = 0x06FE, [25970] = 0x06FF, [25972] = 0x0700, [25975] = 0x0701, [25991] = 0x0702, [25995] = 0x0703, [25996] = 0x13F0, [26000] = 0x0F93, [26001] = 0x0705, [26003] = 0x0F94, [26007] = 0x0706, [26009] = 0x0707, [26011] = 0x13F1, [26012] = 0x0708, [26015] = 0x13F2, [26017] = 0x13F3, [26020] = 0x0709, [26021] = 0x0F95, [26023] = 0x0F96, [26025] = 0x070A, [26027] = 0x13F4, [26029] = 0x070B, [26031] = 0x070C, [26032] = 0x070D, [26041] = 0x070E, [26044] = 0x13F5, [26045] = 0x070F, [26049] = 0x0710, [26051] = 0x13F6, [26052] = 0x13F7, [26053] = 0x0711, [26054] = 0x13F8, [26059] = 0x0712, [26060] = 0x13F9, [26062] = 0x13FA, [26063] = 0x0713, [26066] = 0x13FB, [26070] = 0x13FC, [26071] = 0x0714, [26080] = 0x0715, [26082] = 0x0716, [26085] = 0x0717, [26086] = 0x0718, [26087] = 0x0719, [26088] = 0x071A, [26089] = 0x071B, [26092] = 0x0F97, [26093] = 0x0F98, [26094] = 0x13FD, [26095] = 0x13FE, [26096] = 0x13FF, [26097] = 0x0F99, [26102] = 0x071C, [26103] = 0x0F9A, [26106] = 0x071D, [26112] = 0x1400, [26114] = 0x071E, [26115] = 0x1401, [26118] = 0x071F, [26122] = 0x1402, [26124] = 0x0720, [26126] = 0x0721, [26127] = 0x0722, [26131] = 0x0723, [26132] = 0x0F9B, [26133] = 0x1403, [26137] = 0x0F9C, [26141] = 0x1404, [26143] = 0x0724, [26144] = 0x0725, [26149] = 0x0726, [26151] = 0x0727, [26152] = 0x0728, [26157] = 0x0729, [26159] = 0x072A, [26161] = 0x1405, [26164] = 0x1406, [26165] = 0x072B, [26166] = 0x0F9D, [26172] = 0x0F9E, [26174] = 0x072C, [26177] = 0x1407, [26179] = 0x072D, [26187] = 0x072E, [26188] = 0x0F9F, [26191] = 0x1408, [26194] = 0x072F, [26195] = 0x0730, [26196] = 0x1409, [26197] = 0x0731, [26198] = 0x0FA0, [26199] = 0x140A, [26202] = 0x0732, [26207] = 0x140B, [26209] = 0x140C, [26212] = 0x140D, [26214] = 0x140E, [26216] = 0x0733, [26222] = 0x0734, [26223] = 0x0735, [26224] = 0x0736, [26228] = 0x0737, [26230] = 0x0738, [26231] = 0x140F, [26234] = 0x0739, [26238] = 0x073A, [26242] = 0x073B, [26244] = 0x0E06, [26247] = 0x073C, [26252] = 0x1410, [26257] = 0x073D, [26262] = 0x073E, [26263] = 0x073F, [26269] = 0x1411, [26279] = 0x0740, [26280] = 0x1412, [26286] = 0x0741, [26292] = 0x0742, [26297] = 0x0E07, [26302] = 0x1413, [26329] = 0x0FA1, [26331] = 0x1414, [26332] = 0x1415, [26333] = 0x0FA2, [26342] = 0x1416, [26345] = 0x1417, [26352] = 0x1418, [26354] = 0x0743, [26355] = 0x0744, [26356] = 0x0745, [26359] = 0x1419, [26361] = 0x141A, [26364] = 0x0746, [26366] = 0x0747, [26367] = 0x0748, [26368] = 0x0749, [26376] = 0x074A, [26377] = 0x074B, [26378] = 0x141B, [26379] = 0x074C, [26381] = 0x074D, [26384] = 0x141C, [26388] = 0x0E08, [26389] = 0x141D, [26391] = 0x074E, [26395] = 0x074F, [26397] = 0x0750, [26399] = 0x0751, [26406] = 0x0FA3, [26408] = 0x0752, [26410] = 0x0753, [26411] = 0x0754, [26412] = 0x0755, [26413] = 0x0756, [26415] = 0x0757, [26417] = 0x0758, [26420] = 0x0759, [26421] = 0x075A, [26426] = 0x075B, [26429] = 0x075C, [26432] = 0x075D, [26434] = 0x075E, [26435] = 0x075F, [26438] = 0x0760, [26440] = 0x0FA4, [26441] = 0x0761, [26444] = 0x141E, [26446] = 0x0762, [26447] = 0x0E09, [26448] = 0x0763, [26449] = 0x0764, [26451] = 0x141F, [26454] = 0x0FA5, [26460] = 0x0765, [26462] = 0x1420, [26463] = 0x0766, [26464] = 0x0FA6, [26465] = 0x0767, [26469] = 0x0768, [26472] = 0x0FA7, [26473] = 0x1421, [26474] = 0x1422, [26477] = 0x1423, [26479] = 0x0769, [26480] = 0x076A, [26482] = 0x1424, [26483] = 0x0E95, [26485] = 0x076B, [26487] = 0x076C, [26492] = 0x1425, [26494] = 0x076D, [26495] = 0x076E, [26497] = 0x076F, [26500] = 0x0770, [26503] = 0x0771, [26505] = 0x0772, [26507] = 0x1426, [26512] = 0x0773, [26517] = 0x0774, [26519] = 0x0775, [26520] = 0x1427, [26522] = 0x0776, [26524] = 0x0777, [26525] = 0x0778, [26526] = 0x1428, [26530] = 0x1429, [26531] = 0x0FA8, [26533] = 0x0FA9, [26535] = 0x142A, [26536] = 0x142B, [26538] = 0x0779, [26539] = 0x077A, [26541] = 0x0FAA, [26543] = 0x077B, [26544] = 0x142C, [26547] = 0x0E0A, [26549] = 0x142D, [26550] = 0x077C, [26551] = 0x0FAB, [26552] = 0x077D, [26561] = 0x142E, [26563] = 0x142F, [26564] = 0x0FAC, [26575] = 0x077E, [26576] = 0x077F, [26577] = 0x0780, [26578] = 0x1430, [26579] = 0x0781, [26580] = 0x0782, [26584] = 0x1431, [26585] = 0x1432, [26586] = 0x0E0B, [26588] = 0x0783, [26589] = 0x1433, [26590] = 0x0E0C, [26592] = 0x0E0D, [26594] = 0x1434, [26597] = 0x0784, [26601] = 0x1435, [26604] = 0x0785, [26607] = 0x0786, [26608] = 0x1436, [26609] = 0x0787, [26611] = 0x0788, [26612] = 0x0789, [26621] = 0x1437, [26623] = 0x0E0E, [26624] = 0x1438, [26627] = 0x078A, [26629] = 0x078B, [26631] = 0x078C, [26632] = 0x078D, [26633] = 0x0FAD, [26634] = 0x1439, [26635] = 0x078E, [26636] = 0x143A, [26638] = 0x0E0F, [26639] = 0x078F, [26641] = 0x0790, [26643] = 0x143B, [26646] = 0x0791, [26647] = 0x0792, [26653] = 0x143C, [26657] = 0x0793, [26665] = 0x143D, [26666] = 0x0FAE, [26674] = 0x143E, [26675] = 0x143F, [26679] = 0x0794, [26680] = 0x0795, [26681] = 0x0796, [26684] = 0x0797, [26685] = 0x0798, [26686] = 0x1440, [26688] = 0x0FAF, [26689] = 0x1441, [26690] = 0x0799, [26691] = 0x079A, [26692] = 0x0E10, [26693] = 0x1442, [26694] = 0x079B, [26696] = 0x079C, [26697] = 0x1443, [26698] = 0x1444, [26700] = 0x079D, [26702] = 0x1445, [26704] = 0x079E, [26705] = 0x079F, [26707] = 0x1446, [26708] = 0x07A0, [26709] = 0x1447, [26720] = 0x1448, [26721] = 0x1449, [26722] = 0x144A, [26723] = 0x07A1, [26724] = 0x144B, [26725] = 0x07A2, [26726] = 0x144C, [26727] = 0x0FB0, [26728] = 0x07A3, [26729] = 0x0FB1, [26731] = 0x144D, [26740] = 0x144E, [26742] = 0x07A4, [26743] = 0x144F, [26753] = 0x07A5, [26755] = 0x1450, [26757] = 0x07A6, [26758] = 0x0FB2, [26767] = 0x1451, [26771] = 0x0FB3, [26775] = 0x07A7, [26786] = 0x0FB4, [26787] = 0x0E11, [26790] = 0x07A8, [26791] = 0x07A9, [26792] = 0x07AA, [26797] = 0x07AB, [26799] = 0x07AC, [26800] = 0x07AD, [26803] = 0x07AE, [26805] = 0x07AF, [26816] = 0x07B0, [26818] = 0x1452, [26825] = 0x07B1, [26827] = 0x07B2, [26829] = 0x07B3, [26834] = 0x07B4, [26837] = 0x07B5, [26840] = 0x07B6, [26842] = 0x0FB5, [26848] = 0x1453, [26851] = 0x1454, [26862] = 0x07B7, [26864] = 0x1455, [26865] = 0x07B8, [26869] = 0x07B9, [26873] = 0x1456, [26874] = 0x0FB6, [26876] = 0x1457, [26881] = 0x1458, [26885] = 0x07BA, [26891] = 0x07BB, [26893] = 0x07BC, [26894] = 0x07BD, [26896] = 0x1459, [26898] = 0x0FB7, [26911] = 0x145A, [26912] = 0x145B, [26916] = 0x145C, [26925] = 0x145D, [26928] = 0x07BE, [26932] = 0x145E, [26937] = 0x145F, [26941] = 0x1460, [26943] = 0x07BF, [26946] = 0x1461, [26964] = 0x0E12, [26967] = 0x1462, [26970] = 0x07C0, [26973] = 0x1463, [26974] = 0x1464, [26976] = 0x07C1, [26978] = 0x07C2, [26979] = 0x1465, [26982] = 0x1466, [26987] = 0x1467, [26990] = 0x1468, [26993] = 0x1469, [26999] = 0x0FB8, [27000] = 0x146A, [27001] = 0x146B, [27004] = 0x07C3, [27008] = 0x146C, [27010] = 0x07C4, [27012] = 0x146D, [27014] = 0x0FB9, [27015] = 0x146E, [27016] = 0x146F, [27017] = 0x1470, [27021] = 0x1471, [27028] = 0x0E13, [27029] = 0x1472, [27032] = 0x1473, [27035] = 0x0E14, [27036] = 0x07C5, [27040] = 0x0E15, [27047] = 0x1474, [27048] = 0x07C6, [27051] = 0x1475, [27053] = 0x1476, [27057] = 0x1477, [27060] = 0x0E16, [27063] = 0x1478, [27067] = 0x0FBA, [27073] = 0x1479, [27082] = 0x147A, [27084] = 0x07C7, [27086] = 0x147B, [27088] = 0x0FBB, [27092] = 0x147C, [27097] = 0x07C8, [27099] = 0x147D, [27103] = 0x07C9, [27104] = 0x147E, [27117] = 0x147F, [27122] = 0x1480, [27133] = 0x07CA, [27135] = 0x1481, [27146] = 0x1482, [27159] = 0x1483, [27160] = 0x1484, [27167] = 0x1485, [27169] = 0x07CB, [27176] = 0x1486, [27178] = 0x07CC, [27183] = 0x1487, [27185] = 0x07CD, [27189] = 0x0FBC, [27197] = 0x07CE, [27198] = 0x1488, [27204] = 0x1489, [27207] = 0x148A, [27216] = 0x148B, [27224] = 0x07CF, [27225] = 0x07D0, [27227] = 0x148C, [27233] = 0x07D1, [27237] = 0x148D, [27249] = 0x0FBD, [27257] = 0x148E, [27260] = 0x148F, [27264] = 0x1490, [27268] = 0x1491, [27278] = 0x1492, [27280] = 0x07D2, [27281] = 0x1493, [27287] = 0x1494, [27296] = 0x1495, [27305] = 0x1496, [27307] = 0x1497, [27308] = 0x0E17, [27424] = 0x07D3, [27425] = 0x07D4, [27426] = 0x07D5, [27427] = 0x07D6, [27428] = 0x1498, [27431] = 0x07D7, [27442] = 0x07D8, [27447] = 0x1499, [27449] = 0x149A, [27450] = 0x07D9, [27454] = 0x07DA, [27459] = 0x149B, [27462] = 0x149C, [27463] = 0x07DB, [27465] = 0x07DC, [27468] = 0x07DD, [27481] = 0x149D, [27490] = 0x07DE, [27491] = 0x07DF, [27492] = 0x07E0, [27493] = 0x07E1, [27494] = 0x07E2, [27495] = 0x0FBE, [27498] = 0x07E3, [27513] = 0x07E4, [27515] = 0x07E5, [27516] = 0x0FBF, [27521] = 0x149E, [27522] = 0x149F, [27523] = 0x0FC0, [27524] = 0x0FC1, [27526] = 0x07E6, [27527] = 0x14A0, [27529] = 0x14A1, [27530] = 0x07E7, [27531] = 0x07E8, [27533] = 0x14A2, [27538] = 0x14A3, [27539] = 0x14A4, [27542] = 0x07E9, [27546] = 0x14A5, [27547] = 0x14A6, [27553] = 0x14A7, [27562] = 0x14A8, [27571] = 0x14A9, [27572] = 0x0E18, [27573] = 0x07EA, [27575] = 0x0E19, [27583] = 0x07EB, [27585] = 0x07EC, [27586] = 0x14AA, [27589] = 0x07ED, [27595] = 0x0E96, [27597] = 0x07EE, [27599] = 0x07EF, [27602] = 0x07F0, [27603] = 0x14AB, [27604] = 0x07F1, [27605] = 0x07F2, [27606] = 0x14AC, [27607] = 0x0FC2, [27609] = 0x0FC3, [27611] = 0x07F3, [27617] = 0x14AD, [27626] = 0x14AE, [27627] = 0x07F4, [27631] = 0x07F5, [27635] = 0x14AF, [27637] = 0x14B0, [27641] = 0x14B1, [27645] = 0x07F6, [27653] = 0x14B2, [27654] = 0x14B3, [27655] = 0x14B4, [27661] = 0x14B5, [27663] = 0x07F7, [27664] = 0x14B6, [27665] = 0x07F8, [27667] = 0x07F9, [27668] = 0x07FA, [27669] = 0x14B7, [27670] = 0x14B8, [27671] = 0x07FB, [27672] = 0x14B9, [27673] = 0x14BA, [27674] = 0x14BB, [27675] = 0x07FC, [27679] = 0x14BC, [27681] = 0x14BD, [27682] = 0x14BE, [27684] = 0x14BF, [27686] = 0x14C0, [27687] = 0x07FD, [27688] = 0x14C1, [27689] = 0x14C2, [27690] = 0x14C3, [27694] = 0x14C4, [27695] = 0x14C5, [27696] = 0x14C6, [27698] = 0x14C7, [27700] = 0x07FE, [27701] = 0x14C8, [27704] = 0x07FF, [27709] = 0x14C9, [27712] = 0x0E97, [27713] = 0x0800, [27714] = 0x0801, [27718] = 0x14CA, [27719] = 0x0802, [27721] = 0x0803, [27722] = 0x14CB, [27728] = 0x0804, [27732] = 0x14CC, [27733] = 0x14CD, [27735] = 0x0805, [27739] = 0x14CE, [27740] = 0x14CF, [27741] = 0x0FC4, [27742] = 0x14D0, [27743] = 0x0806, [27744] = 0x0807, [27745] = 0x0808, [27748] = 0x0809, [27752] = 0x14D1, [27753] = 0x14D2, [27754] = 0x080A, [27760] = 0x080B, [27762] = 0x0E1A, [27764] = 0x14D3, [27766] = 0x080C, [27769] = 0x080D, [27770] = 0x0FC5, [27773] = 0x080E, [27774] = 0x14D4, [27777] = 0x0E1B, [27778] = 0x14D5, [27779] = 0x080F, [27781] = 0x14D6, [27782] = 0x14D7, [27784] = 0x0E1C, [27785] = 0x0810, [27788] = 0x0811, [27791] = 0x14D8, [27792] = 0x0812, [27795] = 0x0FC6, [27796] = 0x14D9, [27801] = 0x0813, [27803] = 0x0814, [27807] = 0x0815, [27809] = 0x0816, [27811] = 0x14DA, [27812] = 0x14DB, [27813] = 0x0817, [27814] = 0x0FC7, [27815] = 0x0E1D, [27817] = 0x14DC, [27818] = 0x14DD, [27819] = 0x0818, [27821] = 0x14DE, [27822] = 0x0819, [27825] = 0x0FC8, [27826] = 0x14DF, [27827] = 0x081A, [27832] = 0x081B, [27833] = 0x081C, [27835] = 0x081D, [27836] = 0x081E, [27837] = 0x14E0, [27838] = 0x081F, [27839] = 0x0820, [27844] = 0x0821, [27845] = 0x0FC9, [27849] = 0x0822, [27850] = 0x0823, [27852] = 0x0824, [27856] = 0x14E1, [27859] = 0x14E2, [27860] = 0x14E3, [27861] = 0x0825, [27862] = 0x14E4, [27863] = 0x14E5, [27867] = 0x0826, [27870] = 0x0E1E, [27872] = 0x14E6, [27873] = 0x0827, [27874] = 0x0828, [27875] = 0x0829, [27877] = 0x082A, [27880] = 0x082B, [27882] = 0x082C, [27883] = 0x14E7, [27886] = 0x14E8, [27887] = 0x14E9, [27888] = 0x082D, [27889] = 0x0E1F, [27891] = 0x082E, [27893] = 0x082F, [27894] = 0x14EA, [27895] = 0x0830, [27896] = 0x14EB, [27898] = 0x14EC, [27899] = 0x0FCA, [27900] = 0x0831, [27901] = 0x0832, [27902] = 0x14ED, [27905] = 0x0833, [27908] = 0x0FCB, [27911] = 0x14EE, [27915] = 0x0834, [27916] = 0x14EF, [27918] = 0x14F0, [27922] = 0x0835, [27927] = 0x0836, [27929] = 0x14F1, [27930] = 0x14F2, [27931] = 0x0837, [27934] = 0x0838, [27941] = 0x0839, [27943] = 0x14F3, [27946] = 0x083A, [27947] = 0x14F4, [27950] = 0x14F5, [27953] = 0x14F6, [27954] = 0x0FCC, [27955] = 0x14F7, [27957] = 0x14F8, [27961] = 0x14F9, [27963] = 0x083B, [27964] = 0x083C, [27965] = 0x083D, [27966] = 0x083E, [27969] = 0x083F, [27971] = 0x0FCD, [27973] = 0x0840, [27974] = 0x0841, [27975] = 0x0842, [27976] = 0x14FA, [27978] = 0x0843, [27979] = 0x0844, [27981] = 0x14FB, [27982] = 0x0845, [27983] = 0x0846, [27985] = 0x0847, [27986] = 0x14FC, [27987] = 0x0848, [27988] = 0x14FD, [27993] = 0x0849, [27994] = 0x14FE, [27996] = 0x084A, [27998] = 0x14FF, [28000] = 0x1500, [28003] = 0x1501, [28006] = 0x084B, [28009] = 0x084C, [28010] = 0x084D, [28014] = 0x084E, [28015] = 0x1502, [28020] = 0x084F, [28023] = 0x0850, [28024] = 0x0851, [28028] = 0x1503, [28034] = 0x0852, [28037] = 0x0853, [28040] = 0x0854, [28041] = 0x0855, [28044] = 0x0856, [28046] = 0x0E20, [28049] = 0x1504, [28051] = 0x0E98, [28052] = 0x1505, [28053] = 0x0857, [28059] = 0x0858, [28061] = 0x0FCE, [28062] = 0x1506, [28063] = 0x0E21, [28064] = 0x1507, [28065] = 0x0859, [28067] = 0x0E22, [28068] = 0x0FCF, [28070] = 0x085A, [28071] = 0x0CEB, [28072] = 0x085B, [28073] = 0x085C, [28074] = 0x1508, [28075] = 0x1509, [28078] = 0x150A, [28079] = 0x0FD0, [28082] = 0x085D, [28085] = 0x085E, [28088] = 0x085F, [28095] = 0x150B, [28096] = 0x0860, [28100] = 0x150C, [28101] = 0x0FD1, [28102] = 0x0FD2, [28103] = 0x0861, [28107] = 0x0862, [28108] = 0x0863, [28113] = 0x0FD3, [28118] = 0x150D, [28120] = 0x0864, [28121] = 0x150E, [28125] = 0x150F, [28126] = 0x1510, [28128] = 0x1511, [28129] = 0x0865, [28132] = 0x0866, [28134] = 0x1512, [28139] = 0x1513, [28140] = 0x1514, [28142] = 0x1515, [28145] = 0x0E23, [28147] = 0x0868, [28151] = 0x0869, [28153] = 0x086A, [28155] = 0x086B, [28156] = 0x1516, [28159] = 0x0867, [28165] = 0x086C, [28170] = 0x086D, [28172] = 0x1517, [28173] = 0x086E, [28174] = 0x1518, [28176] = 0x086F, [28177] = 0x1519, [28180] = 0x0870, [28182] = 0x151A, [28183] = 0x0871, [28186] = 0x0FD4, [28189] = 0x151B, [28192] = 0x0872, [28193] = 0x0873, [28195] = 0x0E24, [28196] = 0x151C, [28197] = 0x151D, [28201] = 0x0874, [28203] = 0x151E, [28205] = 0x151F, [28207] = 0x0875, [28210] = 0x1520, [28212] = 0x0876, [28216] = 0x0877, [28218] = 0x0FD5, [28227] = 0x0FD6, [28228] = 0x1521, [28237] = 0x0E25, [28238] = 0x1522, [28243] = 0x1523, [28244] = 0x1524, [28246] = 0x0878, [28248] = 0x0E99, [28251] = 0x0879, [28255] = 0x1525, [28267] = 0x1526, [28270] = 0x1527, [28286] = 0x087A, [28287] = 0x087B, [28291] = 0x087C, [28293] = 0x087D, [28294] = 0x1528, [28297] = 0x0FD7, [28303] = 0x1529, [28304] = 0x087E, [28312] = 0x152A, [28316] = 0x087F, [28319] = 0x152B, [28322] = 0x0880, [28325] = 0x152C, [28327] = 0x152D, [28330] = 0x0881, [28335] = 0x0882, [28337] = 0x152E, [28338] = 0x152F, [28340] = 0x1530, [28342] = 0x0883, [28343] = 0x1531, [28346] = 0x0884, [28347] = 0x1532, [28349] = 0x1533, [28353] = 0x1534, [28354] = 0x0FD8, [28359] = 0x1535, [28363] = 0x0885, [28367] = 0x1536, [28369] = 0x0886, [28371] = 0x1537, [28372] = 0x0FD9, [28373] = 0x0887, [28375] = 0x1538, [28378] = 0x0888, [28382] = 0x0889, [28383] = 0x0E9A, [28384] = 0x1539, [28385] = 0x088A, [28386] = 0x153A, [28388] = 0x088B, [28389] = 0x088C, [28390] = 0x153B, [28392] = 0x088D, [28393] = 0x088E, [28404] = 0x088F, [28409] = 0x153C, [28418] = 0x0890, [28422] = 0x0891, [28425] = 0x0892, [28431] = 0x0893, [28435] = 0x0894, [28436] = 0x0895, [28437] = 0x153D, [28448] = 0x0896, [28452] = 0x153E, [28457] = 0x0897, [28458] = 0x0E26, [28459] = 0x0898, [28461] = 0x153F, [28463] = 0x1540, [28465] = 0x08A5, [28467] = 0x1541, [28470] = 0x1542, [28478] = 0x0FDA, [28486] = 0x1543, [28487] = 0x0899, [28491] = 0x0E9B, [28493] = 0x1544, [28504] = 0x089A, [28508] = 0x089B, [28510] = 0x1545, [28511] = 0x089C, [28514] = 0x1546, [28518] = 0x089D, [28525] = 0x089E, [28526] = 0x089F, [28530] = 0x1547, [28532] = 0x1548, [28536] = 0x1549, [28538] = 0x0FDB, [28540] = 0x154A, [28548] = 0x08A0, [28552] = 0x08A1, [28553] = 0x154B, [28556] = 0x154C, [28557] = 0x154D, [28558] = 0x0E27, [28572] = 0x0FDC, [28577] = 0x08A2, [28583] = 0x154E, [28595] = 0x08A3, [28598] = 0x154F, [28601] = 0x1550, [28608] = 0x08A4, [28610] = 0x1551, [28617] = 0x1552, [28625] = 0x0FDD, [28626] = 0x08A6, [28638] = 0x1553, [28640] = 0x1554, [28641] = 0x1555, [28654] = 0x1556, [28655] = 0x1557, [28689] = 0x08A7, [28698] = 0x0FDE, [28699] = 0x1558, [28707] = 0x1559, [28725] = 0x155A, [28729] = 0x155B, [28748] = 0x08A8, [28751] = 0x155C, [28766] = 0x0FDF, [28779] = 0x08A9, [28780] = 0x155D, [28781] = 0x08AA, [28783] = 0x08AB, [28784] = 0x08AC, [28789] = 0x08AD, [28790] = 0x08AE, [28792] = 0x155E, [28796] = 0x08AF, [28798] = 0x08B0, [28799] = 0x08B1, [28800] = 0x155F, [28805] = 0x1560, [28809] = 0x08B2, [28810] = 0x0FE0, [28814] = 0x08B3, [28818] = 0x08B4, [28820] = 0x1561, [28821] = 0x0FE1, [28822] = 0x0FE2, [28825] = 0x08B5, [28828] = 0x1562, [28829] = 0x1563, [28843] = 0x08B6, [28844] = 0x0FE3, [28845] = 0x08B7, [28846] = 0x08B8, [28847] = 0x0FE4, [28849] = 0x1564, [28851] = 0x0E28, [28855] = 0x1565, [28856] = 0x08B9, [28857] = 0x08BA, [28859] = 0x1566, [28860] = 0x08BB, [28861] = 0x08BC, [28864] = 0x1567, [28865] = 0x08BD, [28866] = 0x08BE, [28867] = 0x1568, [28872] = 0x08BF, [28874] = 0x0FE5, [28888] = 0x0FE6, [28889] = 0x1569, [28891] = 0x08C0, [28895] = 0x08C1, [28900] = 0x08C2, [28902] = 0x08C3, [28903] = 0x08C4, [28904] = 0x156A, [28905] = 0x156B, [28907] = 0x08C5, [28908] = 0x0FE7, [28909] = 0x08C6, [28911] = 0x156C, [28919] = 0x156D, [28921] = 0x08C7, [28925] = 0x08C8, [28937] = 0x0FE8, [28938] = 0x156E, [28944] = 0x0FE9, [28947] = 0x156F, [28949] = 0x0E29, [28950] = 0x1570, [28952] = 0x1571, [28953] = 0x0FEA, [28954] = 0x08C9, [28960] = 0x0FEB, [28966] = 0x08CA, [28975] = 0x1572, [28976] = 0x08CB, [28977] = 0x1573, [28982] = 0x08CC, [28997] = 0x0FEC, [29002] = 0x1574, [29004] = 0x0FED, [29006] = 0x08CD, [29020] = 0x1575, [29022] = 0x08CE, [29028] = 0x08CF, [29030] = 0x08D0, [29031] = 0x08D1, [29032] = 0x1576, [29038] = 0x08D2, [29042] = 0x1577, [29043] = 0x1578, [29048] = 0x1579, [29050] = 0x157A, [29053] = 0x08D3, [29060] = 0x08D4, [29066] = 0x08D5, [29071] = 0x0E2A, [29076] = 0x08D6, [29080] = 0x157B, [29081] = 0x08D7, [29087] = 0x08D8, [29088] = 0x0FEE, [29096] = 0x157C, [29100] = 0x08D9, [29107] = 0x157D, [29109] = 0x157E, [29113] = 0x157F, [29123] = 0x08DA, [29134] = 0x1580, [29140] = 0x1581, [29141] = 0x08DB, [29152] = 0x1582, [29157] = 0x08DC, [29159] = 0x1583, [29166] = 0x1584, [29177] = 0x1585, [29190] = 0x08DD, [29213] = 0x1586, [29224] = 0x1587, [29226] = 0x08DE, [29228] = 0x08DF, [29232] = 0x1588, [29233] = 0x08E0, [29237] = 0x08E1, [29238] = 0x08E2, [29239] = 0x08E3, [29240] = 0x08E4, [29241] = 0x08E5, [29243] = 0x1589, [29245] = 0x08E6, [29247] = 0x158A, [29255] = 0x08E7, [29256] = 0x08E8, [29260] = 0x08E9, [29261] = 0x158B, [29266] = 0x158C, [29270] = 0x158D, [29273] = 0x08EA, [29275] = 0x08EB, [29277] = 0x08EC, [29279] = 0x0E9C, [29281] = 0x08ED, [29282] = 0x08EE, [29286] = 0x158E, [29287] = 0x08EF, [29289] = 0x08F0, [29294] = 0x158F, [29295] = 0x1590, [29298] = 0x08F1, [29301] = 0x08F2, [29305] = 0x08F3, [29306] = 0x08F4, [29310] = 0x1591, [29311] = 0x1592, [29312] = 0x08F5, [29313] = 0x0FEF, [29316] = 0x0FF0, [29322] = 0x0FF1, [29323] = 0x1593, [29325] = 0x1594, [29327] = 0x1595, [29330] = 0x0FF2, [29343] = 0x1596, [29356] = 0x08F6, [29357] = 0x1597, [29359] = 0x08F7, [29360] = 0x1598, [29364] = 0x1599, [29366] = 0x08F8, [29367] = 0x0FF3, [29368] = 0x08F9, [29369] = 0x08FA, [29377] = 0x159A, [29378] = 0x08FB, [29379] = 0x08FC, [29380] = 0x08FD, [29384] = 0x08FE, [29389] = 0x159B, [29390] = 0x159C, [29392] = 0x08FF, [29394] = 0x159D, [29399] = 0x0900, [29401] = 0x0901, [29406] = 0x159E, [29408] = 0x0902, [29409] = 0x0903, [29416] = 0x159F, [29417] = 0x0904, [29420] = 0x0905, [29421] = 0x0906, [29422] = 0x0907, [29423] = 0x15A0, [29424] = 0x15A1, [29425] = 0x0908, [29426] = 0x15A2, [29427] = 0x15A3, [29428] = 0x15A4, [29431] = 0x15A5, [29432] = 0x0909, [29434] = 0x15A6, [29435] = 0x15A7, [29436] = 0x090A, [29441] = 0x15A8, [29443] = 0x15A9, [29450] = 0x15AA, [29454] = 0x090B, [29459] = 0x15AB, [29461] = 0x15AC, [29462] = 0x15AD, [29463] = 0x15AE, [29467] = 0x090C, [29468] = 0x090D, [29469] = 0x15AF, [29470] = 0x15B0, [29473] = 0x15B1, [29474] = 0x15B2, [29477] = 0x090E, [29481] = 0x0FF4, [29482] = 0x090F, [29483] = 0x0910, [29484] = 0x0911, [29486] = 0x0912, [29489] = 0x15B3, [29492] = 0x0913, [29495] = 0x15B4, [29496] = 0x15B5, [29497] = 0x15B6, [29502] = 0x0914, [29503] = 0x0915, [29517] = 0x15B7, [29520] = 0x15B8, [29522] = 0x15B9, [29527] = 0x15BA, [29536] = 0x0916, [29548] = 0x15BB, [29549] = 0x0E2B, [29551] = 0x15BC, [29566] = 0x15BD, [29572] = 0x0E2C, [29575] = 0x0917, [29577] = 0x0918, [29579] = 0x0919, [29582] = 0x15BE, [29585] = 0x15BF, [29590] = 0x091A, [29595] = 0x091B, [29599] = 0x15C0, [29602] = 0x15C1, [29605] = 0x0DDB, [29609] = 0x091C, [29611] = 0x091D, [29614] = 0x0E2D, [29615] = 0x091E, [29616] = 0x091F, [29618] = 0x0920, [29619] = 0x15C2, [29623] = 0x15C3, [29626] = 0x0921, [29627] = 0x0922, [29632] = 0x0923, [29634] = 0x0FF5, [29640] = 0x0924, [29641] = 0x15C4, [29642] = 0x0925, [29645] = 0x0926, [29647] = 0x15C5, [29648] = 0x0E2E, [29649] = 0x0927, [29657] = 0x15C6, [29662] = 0x15C7, [29664] = 0x0928, [29669] = 0x15C8, [29671] = 0x15C9, [29673] = 0x15CA, [29677] = 0x0929, [29682] = 0x15CB, [29699] = 0x092A, [29701] = 0x092B, [29702] = 0x092C, [29705] = 0x092D, [29706] = 0x15CC, [29711] = 0x15CD, [29712] = 0x15CE, [29722] = 0x15CF, [29723] = 0x15D0, [29730] = 0x092E, [29733] = 0x092F, [29734] = 0x0FF6, [29736] = 0x15D1, [29738] = 0x0FF7, [29740] = 0x15D2, [29742] = 0x15D3, [29744] = 0x15D4, [29747] = 0x0930, [29748] = 0x0931, [29749] = 0x0E2F, [29750] = 0x0E30, [29756] = 0x0FF8, [29761] = 0x15D5, [29764] = 0x0E31, [29781] = 0x0FF9, [29783] = 0x15D6, [29785] = 0x0932, [29786] = 0x0933, [29787] = 0x15D7, [29788] = 0x0934, [29790] = 0x0935, [29791] = 0x0936, [29792] = 0x0E32, [29805] = 0x15D8, [29808] = 0x0937, [29814] = 0x0E33, [29815] = 0x15D9, [29822] = 0x15DA, [29824] = 0x0938, [29825] = 0x15DB, [29827] = 0x0939, [29831] = 0x0FFA, [29835] = 0x15DC, [29838] = 0x15DD, [29840] = 0x0FFB, [29852] = 0x15DE, [29854] = 0x0FFC, [29863] = 0x15DF, [29864] = 0x093A, [29865] = 0x15E0, [29882] = 0x15E1, [29906] = 0x15E2, [29916] = 0x093B, [29918] = 0x15E3, [29920] = 0x15E4, [29922] = 0x093C, [29923] = 0x093D, [29924] = 0x15E5, [29926] = 0x093E, [29934] = 0x15E6, [29935] = 0x15E7, [29940] = 0x15E8, [29942] = 0x093F, [29943] = 0x15E9, [29951] = 0x15EA, [29956] = 0x15EB, [29965] = 0x15EC, [29967] = 0x15ED, [29969] = 0x15EE, [29971] = 0x15EF, [29976] = 0x0940, [29977] = 0x15F0, [29978] = 0x0941, [29980] = 0x0942, [29983] = 0x0943, [29989] = 0x15F1, [29992] = 0x0944, [29993] = 0x0945, [29995] = 0x15F2, [29996] = 0x15F3, [29997] = 0x0FFD, [29999] = 0x15F4, [30000] = 0x0946, [30001] = 0x0947, [30002] = 0x0948, [30003] = 0x0949, [30005] = 0x094A, [30007] = 0x094B, [30008] = 0x094C, [30010] = 0x15F5, [30011] = 0x094D, [30014] = 0x15F6, [30016] = 0x15F7, [30021] = 0x094E, [30024] = 0x15F8, [30027] = 0x15F9, [30028] = 0x094F, [30030] = 0x15FA, [30031] = 0x0950, [30036] = 0x0951, [30041] = 0x0952, [30042] = 0x15FB, [30043] = 0x15FC, [30044] = 0x0953, [30053] = 0x0954, [30054] = 0x15FD, [30058] = 0x0955, [30066] = 0x15FE, [30068] = 0x15FF, [30072] = 0x1600, [30073] = 0x1601, [30079] = 0x1602, [30083] = 0x1603, [30086] = 0x0956, [30091] = 0x1604, [30095] = 0x0957, [30097] = 0x0958, [30098] = 0x1605, [30100] = 0x1606, [30102] = 0x1607, [30103] = 0x0959, [30105] = 0x0E34, [30106] = 0x095A, [30109] = 0x1608, [30111] = 0x1609, [30112] = 0x160A, [30113] = 0x160B, [30115] = 0x160C, [30116] = 0x0FFE, [30117] = 0x160D, [30123] = 0x095B, [30124] = 0x160E, [30126] = 0x0FFF, [30127] = 0x095C, [30128] = 0x160F, [30129] = 0x1610, [30130] = 0x095D, [30131] = 0x1611, [30132] = 0x1612, [30133] = 0x1613, [30136] = 0x1614, [30137] = 0x1615, [30140] = 0x095E, [30141] = 0x1616, [30142] = 0x0E35, [30146] = 0x1617, [30147] = 0x1618, [30148] = 0x1619, [30149] = 0x095F, [30151] = 0x0960, [30152] = 0x161A, [30153] = 0x161B, [30154] = 0x0961, [30157] = 0x161C, [30162] = 0x0962, [30164] = 0x161D, [30165] = 0x0963, [30166] = 0x161E, [30168] = 0x161F, [30171] = 0x0964, [30174] = 0x1000, [30178] = 0x1620, [30179] = 0x1621, [30180] = 0x1622, [30182] = 0x1623, [30183] = 0x1624, [30184] = 0x1625, [30186] = 0x1626, [30187] = 0x1627, [30192] = 0x1001, [30193] = 0x1628, [30196] = 0x0965, [30201] = 0x0966, [30204] = 0x1629, [30207] = 0x162A, [30208] = 0x162B, [30209] = 0x162C, [30211] = 0x162D, [30213] = 0x162E, [30218] = 0x162F, [30220] = 0x1630, [30224] = 0x1631, [30229] = 0x1632, [30231] = 0x1633, [30232] = 0x1634, [30233] = 0x0967, [30235] = 0x1635, [30239] = 0x1636, [30240] = 0x1637, [30242] = 0x1638, [30244] = 0x1639, [30245] = 0x163A, [30246] = 0x0968, [30249] = 0x0E36, [30250] = 0x0E37, [30251] = 0x0969, [30253] = 0x163B, [30256] = 0x163C, [30259] = 0x163D, [30260] = 0x163E, [30261] = 0x163F, [30264] = 0x1640, [30268] = 0x1641, [30270] = 0x1002, [30271] = 0x1642, [30272] = 0x1643, [30275] = 0x1644, [30284] = 0x1645, [30285] = 0x1646, [30292] = 0x1647, [30294] = 0x096A, [30300] = 0x1648, [30302] = 0x1649, [30307] = 0x164A, [30315] = 0x164B, [30319] = 0x164C, [30328] = 0x164D, [30331] = 0x096B, [30333] = 0x096C, [30334] = 0x096D, [30338] = 0x096E, [30340] = 0x096F, [30342] = 0x0970, [30343] = 0x0971, [30344] = 0x164E, [30347] = 0x0E38, [30350] = 0x1003, [30352] = 0x0972, [30353] = 0x164F, [30355] = 0x1004, [30358] = 0x1650, [30361] = 0x1651, [30372] = 0x1652, [30382] = 0x0973, [30385] = 0x0974, [30386] = 0x1653, [30388] = 0x1654, [30399] = 0x1005, [30402] = 0x1655, [30405] = 0x1656, [30406] = 0x0975, [30408] = 0x0976, [30410] = 0x0977, [30413] = 0x1657, [30414] = 0x1006, [30415] = 0x1007, [30416] = 0x0978, [30417] = 0x0979, [30418] = 0x097A, [30420] = 0x097B, [30422] = 0x097C, [30423] = 0x097D, [30424] = 0x097E, [30427] = 0x097F, [30431] = 0x0980, [30437] = 0x1658, [30446] = 0x0981, [30447] = 0x0982, [30449] = 0x1659, [30450] = 0x1008, [30452] = 0x0983, [30456] = 0x0984, [30457] = 0x0985, [30460] = 0x0986, [30462] = 0x0987, [30465] = 0x0988, [30468] = 0x165A, [30471] = 0x165B, [30472] = 0x165C, [30473] = 0x0989, [30475] = 0x098A, [30477] = 0x165D, [30489] = 0x165E, [30490] = 0x165F, [30495] = 0x098B, [30496] = 0x098C, [30498] = 0x1660, [30502] = 0x1661, [30504] = 0x098D, [30505] = 0x098E, [30509] = 0x1662, [30511] = 0x1009, [30517] = 0x1663, [30518] = 0x098F, [30519] = 0x0990, [30520] = 0x0E39, [30522] = 0x0991, [30524] = 0x0992, [30528] = 0x0993, [30529] = 0x0994, [30531] = 0x1664, [30535] = 0x1665, [30544] = 0x100A, [30545] = 0x1666, [30554] = 0x1667, [30555] = 0x0995, [30561] = 0x0996, [30562] = 0x1668, [30563] = 0x0997, [30565] = 0x1669, [30566] = 0x0998, [30568] = 0x166A, [30571] = 0x0999, [30572] = 0x100B, [30585] = 0x100C, [30589] = 0x166B, [30590] = 0x166C, [30591] = 0x0E3A, [30592] = 0x166D, [30596] = 0x099A, [30597] = 0x099B, [30604] = 0x099C, [30605] = 0x166E, [30606] = 0x100D, [30609] = 0x100E, [30610] = 0x099D, [30623] = 0x166F, [30624] = 0x1670, [30626] = 0x1671, [30629] = 0x1672, [30631] = 0x099E, [30633] = 0x099F, [30634] = 0x09A0, [30636] = 0x09A1, [30637] = 0x09A2, [30640] = 0x100F, [30643] = 0x09A3, [30645] = 0x1673, [30651] = 0x1674, [30653] = 0x1675, [30655] = 0x1676, [30669] = 0x1677, [30679] = 0x09A4, [30683] = 0x09A5, [30684] = 0x1010, [30690] = 0x09A6, [30691] = 0x1678, [30693] = 0x09A7, [30695] = 0x1679, [30697] = 0x1011, [30699] = 0x09A8, [30700] = 0x167A, [30701] = 0x09A9, [30702] = 0x09AA, [30707] = 0x09AB, [30710] = 0x0E3B, [30712] = 0x110B, [30717] = 0x167B, [30718] = 0x167C, [30719] = 0x09AC, [30720] = 0x167D, [30721] = 0x09AD, [30722] = 0x09AE, [30729] = 0x167E, [30732] = 0x1012, [30733] = 0x09AF, [30737] = 0x167F, [30738] = 0x1680, [30740] = 0x09B0, [30742] = 0x09B1, [30743] = 0x0E3C, [30744] = 0x1681, [30746] = 0x1682, [30748] = 0x1683, [30749] = 0x1684, [30751] = 0x1685, [30755] = 0x1686, [30757] = 0x1687, [30758] = 0x1688, [30759] = 0x1689, [30761] = 0x168A, [30764] = 0x168B, [30765] = 0x168C, [30768] = 0x09B2, [30772] = 0x09B3, [30775] = 0x168D, [30776] = 0x09B4, [30777] = 0x168E, [30778] = 0x0E3D, [30779] = 0x168F, [30780] = 0x1690, [30782] = 0x09B5, [30784] = 0x09B6, [30789] = 0x1691, [30791] = 0x1692, [30796] = 0x1693, [30798] = 0x1694, [30800] = 0x1695, [30802] = 0x1696, [30805] = 0x0E3E, [30806] = 0x1697, [30807] = 0x1698, [30813] = 0x1699, [30826] = 0x169A, [30827] = 0x09B7, [30828] = 0x09B8, [30829] = 0x169B, [30830] = 0x09B9, [30839] = 0x169C, [30844] = 0x169D, [30855] = 0x169E, [30857] = 0x1013, [30860] = 0x09BA, [30861] = 0x09BB, [30862] = 0x09BC, [30865] = 0x09BD, [30867] = 0x169F, [30871] = 0x09BE, [30872] = 0x16A0, [30874] = 0x16A1, [30875] = 0x16A2, [30876] = 0x0E3F, [30879] = 0x09BF, [30881] = 0x16A3, [30883] = 0x16A4, [30885] = 0x16A5, [30887] = 0x09C0, [30896] = 0x09C1, [30897] = 0x16A6, [30898] = 0x16A7, [30899] = 0x09C2, [30900] = 0x1014, [30905] = 0x16A8, [30906] = 0x1015, [30910] = 0x1016, [30913] = 0x09C3, [30917] = 0x1017, [30921] = 0x16A9, [30922] = 0x1018, [30923] = 0x1019, [30928] = 0x09C4, [30932] = 0x16AA, [30933] = 0x09C5, [30937] = 0x16AB, [30952] = 0x09C6, [30956] = 0x16AC, [30962] = 0x16AD, [30964] = 0x16AE, [30967] = 0x0E40, [30970] = 0x09C7, [30977] = 0x101A, [30981] = 0x16AF, [30995] = 0x16B0, [31006] = 0x16B1, [31012] = 0x16B2, [31028] = 0x16B3, [31034] = 0x09C8, [31035] = 0x16B4, [31036] = 0x09C9, [31038] = 0x09CA, [31040] = 0x0E41, [31041] = 0x16B5, [31046] = 0x16B6, [31048] = 0x09CB, [31049] = 0x16B7, [31056] = 0x101B, [31059] = 0x16B8, [31062] = 0x09CC, [31063] = 0x16B9, [31066] = 0x16BA, [31067] = 0x16BB, [31068] = 0x16BC, [31069] = 0x09CD, [31070] = 0x09CE, [31071] = 0x101C, [31072] = 0x101D, [31074] = 0x16BD, [31077] = 0x09CF, [31079] = 0x16BE, [31080] = 0x09D0, [31085] = 0x09D1, [31087] = 0x16BF, [31095] = 0x09D2, [31096] = 0x09D3, [31098] = 0x16C0, [31104] = 0x16C1, [31105] = 0x09D4, [31108] = 0x0E42, [31109] = 0x101E, [31114] = 0x16C2, [31119] = 0x09D5, [31130] = 0x16C3, [31143] = 0x16C4, [31155] = 0x16C5, [31161] = 0x16C6, [31162] = 0x16C7, [31163] = 0x09D6, [31165] = 0x09D7, [31166] = 0x101F, [31168] = 0x09D8, [31169] = 0x09D9, [31171] = 0x09DA, [31174] = 0x1020, [31177] = 0x16C8, [31179] = 0x09DB, [31181] = 0x09DC, [31185] = 0x09DD, [31186] = 0x09DE, [31189] = 0x16C9, [31192] = 0x09DF, [31199] = 0x09E0, [31203] = 0x16CA, [31204] = 0x0E43, [31206] = 0x1021, [31207] = 0x1022, [31209] = 0x1023, [31211] = 0x16CB, [31213] = 0x16CC, [31215] = 0x09E1, [31216] = 0x09E2, [31224] = 0x16CD, [31227] = 0x09E3, [31229] = 0x1024, [31232] = 0x09E4, [31234] = 0x16CE, [31235] = 0x16CF, [31238] = 0x16D0, [31243] = 0x09E5, [31245] = 0x09E6, [31246] = 0x09E7, [31252] = 0x1025, [31255] = 0x16D1, [31258] = 0x09E8, [31262] = 0x16D2, [31264] = 0x1026, [31267] = 0x16D3, [31283] = 0x09E9, [31287] = 0x16D4, [31289] = 0x16D5, [31291] = 0x09EA, [31292] = 0x0E44, [31293] = 0x16D6, [31295] = 0x09EB, [31302] = 0x09EC, [31313] = 0x16D7, [31319] = 0x09ED, [31344] = 0x0E9D, [31348] = 0x09EE, [31350] = 0x09EF, [31351] = 0x09F0, [31352] = 0x16D8, [31353] = 0x1027, [31354] = 0x09F1, [31359] = 0x09F2, [31360] = 0x16D9, [31361] = 0x09F3, [31363] = 0x09F4, [31364] = 0x09F5, [31366] = 0x16DA, [31368] = 0x16DB, [31373] = 0x09F6, [31377] = 0x1028, [31378] = 0x09F7, [31381] = 0x16DC, [31382] = 0x16DD, [31383] = 0x09F8, [31384] = 0x1029, [31388] = 0x0E45, [31389] = 0x09F9, [31391] = 0x09FA, [31392] = 0x16DE, [31395] = 0x0E9E, [31397] = 0x09FB, [31398] = 0x16DF, [31400] = 0x16E0, [31404] = 0x16E1, [31405] = 0x16E2, [31411] = 0x16E3, [31416] = 0x0E9F, [31423] = 0x16E4, [31435] = 0x09FC, [31446] = 0x09FD, [31449] = 0x09FE, [31452] = 0x09FF, [31454] = 0x0A00, [31455] = 0x0A01, [31456] = 0x0A02, [31459] = 0x16E5, [31461] = 0x0A03, [31462] = 0x16E6, [31469] = 0x0A04, [31471] = 0x0A05, [31481] = 0x0A06, [31482] = 0x0E46, [31485] = 0x16E7, [31487] = 0x0A07, [31491] = 0x102A, [31492] = 0x16E8, [31494] = 0x16E9, [31496] = 0x16EA, [31498] = 0x16EB, [31499] = 0x102B, [31503] = 0x16EC, [31505] = 0x0A08, [31508] = 0x0A09, [31509] = 0x16ED, [31513] = 0x0EA0, [31515] = 0x0A0A, [31518] = 0x102C, [31520] = 0x0A0B, [31524] = 0x16EE, [31525] = 0x16EF, [31526] = 0x0A0C, [31528] = 0x0A0D, [31530] = 0x16F0, [31531] = 0x16F1, [31532] = 0x0A0E, [31534] = 0x16F2, [31537] = 0x16F3, [31539] = 0x16F4, [31544] = 0x16F5, [31545] = 0x0E47, [31546] = 0x102D, [31548] = 0x0A0F, [31550] = 0x16F6, [31557] = 0x16F7, [31559] = 0x16F8, [31561] = 0x0A10, [31563] = 0x0A11, [31564] = 0x16F9, [31567] = 0x102E, [31568] = 0x102F, [31569] = 0x0A12, [31570] = 0x0A13, [31572] = 0x0A14, [31574] = 0x0A15, [31576] = 0x16FA, [31578] = 0x16FB, [31579] = 0x1030, [31581] = 0x0A16, [31584] = 0x0E48, [31586] = 0x16FC, [31598] = 0x16FD, [31601] = 0x16FE, [31602] = 0x16FF, [31605] = 0x1700, [31607] = 0x1031, [31609] = 0x0A17, [31611] = 0x1701, [31614] = 0x0A18, [31616] = 0x0A19, [31621] = 0x1702, [31629] = 0x1032, [31632] = 0x1703, [31636] = 0x1704, [31637] = 0x1705, [31639] = 0x0A1A, [31644] = 0x1706, [31645] = 0x1707, [31649] = 0x0A1B, [31650] = 0x1708, [31654] = 0x1709, [31655] = 0x170A, [31656] = 0x170B, [31657] = 0x1033, [31658] = 0x170C, [31659] = 0x170D, [31660] = 0x170E, [31661] = 0x0A1C, [31665] = 0x0A1D, [31668] = 0x170F, [31672] = 0x1710, [31681] = 0x1711, [31686] = 0x1712, [31687] = 0x0A1E, [31692] = 0x1713, [31697] = 0x1034, [31699] = 0x1714, [31705] = 0x1715, [31706] = 0x1716, [31709] = 0x1035, [31713] = 0x1717, [31717] = 0x1718, [31718] = 0x1719, [31722] = 0x171A, [31726] = 0x0A1F, [31729] = 0x171B, [31735] = 0x0A20, [31740] = 0x171C, [31742] = 0x171D, [31751] = 0x1036, [31755] = 0x171E, [31756] = 0x1037, [31759] = 0x171F, [31766] = 0x1720, [31775] = 0x1721, [31782] = 0x1722, [31783] = 0x0A21, [31786] = 0x1723, [31800] = 0x1724, [31807] = 0x1038, [31808] = 0x1725, [31809] = 0x0E49, [31821] = 0x0A22, [31859] = 0x0A23, [31860] = 0x1726, [31867] = 0x0A24, [31868] = 0x1727, [31869] = 0x1728, [31881] = 0x0A25, [31889] = 0x1729, [31890] = 0x0A26, [31893] = 0x172A, [31895] = 0x0A27, [31896] = 0x0A28, [31900] = 0x172B, [31901] = 0x172C, [31902] = 0x172D, [31903] = 0x1039, [31906] = 0x172E, [31908] = 0x172F, [31909] = 0x103A, [31914] = 0x0A29, [31918] = 0x103B, [31921] = 0x103C, [31922] = 0x1730, [31923] = 0x1731, [31929] = 0x0A2A, [31932] = 0x1732, [31933] = 0x1733, [31934] = 0x0A2B, [31937] = 0x1734, [31941] = 0x1735, [31943] = 0x1736, [31944] = 0x1737, [31946] = 0x0A2C, [31948] = 0x1738, [31949] = 0x1739, [31957] = 0x0A2D, [31958] = 0x0A2E, [31959] = 0x173A, [31961] = 0x0E4A, [31964] = 0x173B, [31967] = 0x0A2F, [31968] = 0x103D, [31976] = 0x173C, [31983] = 0x173D, [31992] = 0x173E, [31995] = 0x0A30, [32010] = 0x0E4B, [32032] = 0x0A31, [32034] = 0x0A32, [32039] = 0x0A33, [32043] = 0x0A34, [32047] = 0x0A35, [32110] = 0x103E, [32119] = 0x173F, [32166] = 0x1740, [32174] = 0x1741, [32315] = 0x1742, [32321] = 0x0A36, [32327] = 0x1743, [32386] = 0x1744, [32411] = 0x1745, [32415] = 0x1746, [32416] = 0x103F, [32417] = 0x1747, [32418] = 0x0A37, [32419] = 0x1748, [32420] = 0x0A38, [32421] = 0x1749, [32422] = 0x0A39, [32423] = 0x0A3A, [32424] = 0x174A, [32425] = 0x174B, [32426] = 0x0A3B, [32427] = 0x0A3C, [32428] = 0x174C, [32429] = 0x0E4C, [32431] = 0x0A3D, [32432] = 0x174D, [32433] = 0x0A3E, [32434] = 0x1040, [32435] = 0x0A3F, [32437] = 0x0A40, [32438] = 0x0A41, [32439] = 0x0A42, [32440] = 0x0A43, [32441] = 0x0A44, [32442] = 0x0E4D, [32445] = 0x0A45, [32446] = 0x1041, [32447] = 0x0A46, [32448] = 0x174E, [32449] = 0x174F, [32450] = 0x1750, [32451] = 0x0A47, [32452] = 0x0A48, [32453] = 0x0A49, [32454] = 0x0A4A, [32455] = 0x0A4B, [32456] = 0x0A4C, [32457] = 0x1751, [32458] = 0x0A4D, [32459] = 0x1752, [32460] = 0x1753, [32461] = 0x0A4E, [32462] = 0x0A4F, [32463] = 0x0A50, [32464] = 0x1754, [32465] = 0x0A51, [32466] = 0x0A52, [32467] = 0x0A53, [32468] = 0x1755, [32469] = 0x0A54, [32471] = 0x1756, [32472] = 0x0A55, [32473] = 0x0A56, [32474] = 0x1042, [32475] = 0x1757, [32476] = 0x0A57, [32477] = 0x0A58, [32478] = 0x0A59, [32479] = 0x0A5A, [32480] = 0x1758, [32481] = 0x1759, [32482] = 0x1043, [32483] = 0x0A5B, [32485] = 0x175A, [32486] = 0x175B, [32487] = 0x0A5C, [32488] = 0x0EA1, [32489] = 0x0A5D, [32490] = 0x0A5E, [32491] = 0x0A5F, [32493] = 0x0A60, [32494] = 0x0A61, [32495] = 0x175C, [32496] = 0x0A62, [32497] = 0x175D, [32498] = 0x175E, [32499] = 0x0A63, [32500] = 0x0A64, [32501] = 0x0A65, [32502] = 0x175F, [32503] = 0x0A66, [32504] = 0x0E4E, [32506] = 0x1760, [32507] = 0x0A67, [32508] = 0x0A68, [32509] = 0x0A69, [32510] = 0x1761, [32511] = 0x0A6A, [32512] = 0x1044, [32513] = 0x1762, [32514] = 0x1763, [32515] = 0x1764, [32516] = 0x1765, [32517] = 0x0A6B, [32518] = 0x1766, [32519] = 0x1045, [32520] = 0x0EA2, [32521] = 0x1046, [32523] = 0x1767, [32524] = 0x1768, [32525] = 0x1769, [32526] = 0x0A6C, [32527] = 0x176A, [32529] = 0x176B, [32530] = 0x176C, [32531] = 0x0A6D, [32532] = 0x1047, [32533] = 0x176D, [32534] = 0x0A6E, [32535] = 0x176E, [32536] = 0x0A6F, [32537] = 0x176F, [32538] = 0x0A70, [32539] = 0x1770, [32540] = 0x1771, [32541] = 0x0A71, [32543] = 0x1772, [32544] = 0x0A72, [32545] = 0x1773, [32546] = 0x1774, [32547] = 0x1775, [32548] = 0x0A73, [32549] = 0x0EA3, [32550] = 0x1776, [32551] = 0x1777, [32552] = 0x1778, [32553] = 0x0A74, [32554] = 0x0A75, [32555] = 0x1779, [32556] = 0x177A, [32557] = 0x1048, [32558] = 0x1049, [32559] = 0x177B, [32560] = 0x177C, [32561] = 0x177D, [32562] = 0x177E, [32563] = 0x177F, [32564] = 0x104A, [32565] = 0x1780, [32566] = 0x1781, [32568] = 0x104B, [32570] = 0x0A76, [32578] = 0x1782, [32580] = 0x1783, [32581] = 0x1784, [32592] = 0x0A77, [32593] = 0x0A78, [32596] = 0x1785, [32597] = 0x0A79, [32599] = 0x0A7A, [32600] = 0x1786, [32602] = 0x0A7B, [32607] = 0x1787, [32609] = 0x1788, [32610] = 0x0A7C, [32616] = 0x1789, [32617] = 0x0A7D, [32618] = 0x0A7E, [32622] = 0x0A7F, [32625] = 0x178A, [32626] = 0x104C, [32628] = 0x178B, [32633] = 0x104D, [32638] = 0x178C, [32641] = 0x0A80, [32650] = 0x0A81, [32652] = 0x178D, [32654] = 0x0A82, [32660] = 0x178E, [32666] = 0x178F, [32669] = 0x1790, [32670] = 0x0A83, [32671] = 0x1791, [32673] = 0x0A84, [32676] = 0x0A85, [32679] = 0x1792, [32687] = 0x1793, [32688] = 0x1794, [32690] = 0x1795, [32696] = 0x1796, [32697] = 0x0A86, [32700] = 0x1797, [32701] = 0x0A87, [32703] = 0x1798, [32705] = 0x0A88, [32709] = 0x0A89, [32714] = 0x1799, [32716] = 0x179A, [32718] = 0x104E, [32724] = 0x0A8A, [32725] = 0x179B, [32728] = 0x0A8B, [32735] = 0x179C, [32736] = 0x0A8C, [32737] = 0x179D, [32741] = 0x179E, [32742] = 0x179F, [32745] = 0x0A8D, [32750] = 0x17A0, [32752] = 0x0A8E, [32753] = 0x0A8F, [32755] = 0x17A1, [32763] = 0x0A90, [32764] = 0x0A91, [32768] = 0x0A92, [32769] = 0x0A93, [32771] = 0x0A94, [32772] = 0x17A2, [32773] = 0x0A95, [32774] = 0x17A3, [32779] = 0x17A4, [32780] = 0x0A96, [32781] = 0x0A97, [32784] = 0x0A98, [32786] = 0x17A5, [32788] = 0x17A6, [32789] = 0x104F, [32790] = 0x17A7, [32791] = 0x0A99, [32792] = 0x17A8, [32793] = 0x17A9, [32796] = 0x17AA, [32800] = 0x17AB, [32802] = 0x17AC, [32805] = 0x17AD, [32806] = 0x17AE, [32807] = 0x17AF, [32808] = 0x17B0, [32809] = 0x17B1, [32810] = 0x17B2, [32817] = 0x17B3, [32819] = 0x0A9A, [32821] = 0x17B4, [32822] = 0x0A9B, [32823] = 0x1050, [32824] = 0x0A9C, [32827] = 0x0A9D, [32829] = 0x0A9E, [32831] = 0x0A9F, [32834] = 0x0AA0, [32835] = 0x17B5, [32838] = 0x17B6, [32842] = 0x0AA1, [32843] = 0x1051, [32844] = 0x0AA2, [32845] = 0x17B7, [32850] = 0x0E4F, [32852] = 0x0AA3, [32856] = 0x1052, [32858] = 0x0AA4, [32873] = 0x17B8, [32874] = 0x0AA5, [32881] = 0x17B9, [32895] = 0x17BA, [32896] = 0x17BB, [32899] = 0x0AA6, [32900] = 0x17BC, [32902] = 0x0AA7, [32903] = 0x17BD, [32905] = 0x0AA8, [32907] = 0x17BE, [32908] = 0x0AA9, [32915] = 0x17BF, [32918] = 0x0AAA, [32920] = 0x0AAB, [32922] = 0x0AAC, [32923] = 0x17C0, [32924] = 0x17C1, [32925] = 0x1053, [32927] = 0x17C2, [32928] = 0x0AAD, [32929] = 0x0AAE, [32930] = 0x0AAF, [32932] = 0x0AB0, [32933] = 0x0AB1, [32937] = 0x0AB2, [32938] = 0x0AB3, [32939] = 0x17C3, [32941] = 0x17C4, [32942] = 0x0AB4, [32943] = 0x0AB5, [32945] = 0x1054, [32946] = 0x0AB6, [32948] = 0x1055, [32951] = 0x17C5, [32954] = 0x1056, [32956] = 0x17C6, [32957] = 0x17C7, [32958] = 0x1057, [32959] = 0x0AB7, [32960] = 0x0AB8, [32961] = 0x1058, [32962] = 0x17C8, [32963] = 0x0AB9, [32964] = 0x0E50, [32966] = 0x0ABA, [32972] = 0x0ABB, [32973] = 0x17C9, [32974] = 0x0ABC, [32982] = 0x0ABD, [32983] = 0x17CA, [32985] = 0x17CB, [32986] = 0x17CC, [32987] = 0x17CD, [32988] = 0x0ABE, [32989] = 0x17CE, [32990] = 0x0ABF, [32993] = 0x0AC0, [32996] = 0x0AC1, [32997] = 0x17CF, [32999] = 0x1059, [33000] = 0x17D0, [33001] = 0x17D1, [33002] = 0x17D2, [33003] = 0x17D3, [33004] = 0x17D4, [33005] = 0x17D5, [33007] = 0x17D6, [33008] = 0x17D7, [33009] = 0x17D8, [33010] = 0x17D9, [33011] = 0x0AC2, [33012] = 0x105A, [33014] = 0x0AC3, [33016] = 0x0AC4, [33018] = 0x17DA, [33020] = 0x17DB, [33021] = 0x0AC5, [33026] = 0x0AC6, [33030] = 0x0AC7, [33033] = 0x0AC8, [33034] = 0x105B, [33037] = 0x17DC, [33038] = 0x17DD, [33039] = 0x0AC9, [33040] = 0x105C, [33041] = 0x0ACA, [33042] = 0x17DE, [33043] = 0x17DF, [33044] = 0x17E0, [33046] = 0x0ACB, [33048] = 0x17E1, [33050] = 0x0ACC, [33054] = 0x17E2, [33068] = 0x17E3, [33071] = 0x17E4, [33073] = 0x0ACD, [33074] = 0x17E5, [33078] = 0x17E6, [33080] = 0x0ACE, [33086] = 0x0ACF, [33094] = 0x105D, [33096] = 0x17E7, [33098] = 0x0AD0, [33099] = 0x17E8, [33100] = 0x0AD1, [33104] = 0x105E, [33105] = 0x17E9, [33107] = 0x17EA, [33108] = 0x0E51, [33109] = 0x0AD2, [33113] = 0x17EB, [33114] = 0x17EC, [33120] = 0x17ED, [33125] = 0x0E52, [33127] = 0x17EE, [33129] = 0x17EF, [33133] = 0x17F0, [33134] = 0x0AD3, [33136] = 0x0AD4, [33137] = 0x17F1, [33140] = 0x17F2, [33145] = 0x0AD5, [33146] = 0x105F, [33147] = 0x0AD6, [33148] = 0x1060, [33149] = 0x17F3, [33150] = 0x0AD7, [33151] = 0x0AD8, [33152] = 0x0AD9, [33154] = 0x17F4, [33160] = 0x17F5, [33162] = 0x0ADA, [33167] = 0x0ADB, [33169] = 0x17F6, [33176] = 0x0ADC, [33179] = 0x0E53, [33180] = 0x0ADD, [33181] = 0x0ADE, [33187] = 0x17F7, [33190] = 0x17F8, [33192] = 0x0ADF, [33194] = 0x17F9, [33203] = 0x0AE0, [33210] = 0x17FA, [33211] = 0x17FB, [33216] = 0x0E54, [33217] = 0x17FC, [33218] = 0x0AE1, [33219] = 0x0AE2, [33222] = 0x17FD, [33226] = 0x17FE, [33228] = 0x17FF, [33251] = 0x0AE3, [33255] = 0x1800, [33258] = 0x0AE4, [33260] = 0x1801, [33261] = 0x0AE5, [33267] = 0x0AE6, [33268] = 0x0AE7, [33275] = 0x1802, [33276] = 0x0AE8, [33278] = 0x1803, [33280] = 0x1804, [33281] = 0x1805, [33282] = 0x1806, [33284] = 0x1807, [33285] = 0x1061, [33286] = 0x1808, [33292] = 0x0AE9, [33293] = 0x0AEA, [33296] = 0x1809, [33298] = 0x0AEB, [33300] = 0x0AEC, [33307] = 0x180A, [33308] = 0x1062, [33310] = 0x0AED, [33311] = 0x0AEE, [33313] = 0x180B, [33314] = 0x180C, [33315] = 0x180D, [33320] = 0x180E, [33322] = 0x0AEF, [33323] = 0x180F, [33324] = 0x0AF0, [33325] = 0x1810, [33327] = 0x1811, [33328] = 0x1063, [33329] = 0x1064, [33331] = 0x1812, [33332] = 0x1813, [33333] = 0x0AF1, [33334] = 0x1065, [33335] = 0x1066, [33336] = 0x1814, [33337] = 0x0AF2, [33339] = 0x1815, [33342] = 0x1816, [33348] = 0x1817, [33351] = 0x0AF3, [33353] = 0x1818, [33355] = 0x1819, [33359] = 0x181A, [33368] = 0x0AF4, [33370] = 0x181B, [33375] = 0x181C, [33384] = 0x181D, [33390] = 0x0AF5, [33391] = 0x0AF6, [33392] = 0x0AF7, [33394] = 0x0AF8, [33395] = 0x0AF9, [33396] = 0x181E, [33401] = 0x181F, [33402] = 0x0AFA, [33405] = 0x1820, [33406] = 0x0AFB, [33407] = 0x1821, [33410] = 0x0AFC, [33412] = 0x1822, [33416] = 0x1823, [33418] = 0x1824, [33419] = 0x0AFD, [33421] = 0x1825, [33422] = 0x1826, [33423] = 0x1827, [33425] = 0x1828, [33426] = 0x0AFE, [33431] = 0x1829, [33432] = 0x182A, [33433] = 0x0AFF, [33436] = 0x0B00, [33437] = 0x0B01, [33439] = 0x182B, [33441] = 0x182C, [33444] = 0x182D, [33445] = 0x0B02, [33446] = 0x0B03, [33448] = 0x182E, [33449] = 0x182F, [33450] = 0x1830, [33451] = 0x1831, [33452] = 0x0B04, [33453] = 0x0B05, [33454] = 0x1067, [33455] = 0x1832, [33456] = 0x1833, [33457] = 0x0B06, [33459] = 0x0B07, [33460] = 0x1834, [33463] = 0x0E55, [33464] = 0x1835, [33465] = 0x0B08, [33469] = 0x0B09, [33470] = 0x1836, [33473] = 0x1837, [33476] = 0x1838, [33479] = 0x1839, [33480] = 0x183A, [33482] = 0x183B, [33483] = 0x183C, [33484] = 0x183D, [33485] = 0x0E56, [33486] = 0x183E, [33487] = 0x0B0A, [33489] = 0x0E57, [33490] = 0x183F, [33491] = 0x1840, [33492] = 0x0B0B, [33493] = 0x1841, [33495] = 0x0B0C, [33496] = 0x1842, [33499] = 0x0B0D, [33500] = 0x1843, [33502] = 0x0B0E, [33503] = 0x0E58, [33504] = 0x1844, [33505] = 0x1845, [33507] = 0x1846, [33508] = 0x1847, [33509] = 0x0B0F, [33510] = 0x0B10, [33515] = 0x1848, [33519] = 0x1849, [33521] = 0x0B11, [33524] = 0x184A, [33527] = 0x184B, [33529] = 0x0B36, [33531] = 0x184C, [33537] = 0x0B12, [33538] = 0x0B13, [33539] = 0x0B14, [33540] = 0x0B15, [33541] = 0x1068, [33542] = 0x184D, [33543] = 0x184E, [33544] = 0x184F, [33545] = 0x0E59, [33548] = 0x1850, [33550] = 0x0E5A, [33551] = 0x1069, [33553] = 0x1851, [33556] = 0x1852, [33557] = 0x1853, [33559] = 0x1854, [33562] = 0x1855, [33563] = 0x1856, [33564] = 0x0B16, [33575] = 0x0B17, [33576] = 0x0B18, [33579] = 0x0E5B, [33580] = 0x0B19, [33581] = 0x1857, [33583] = 0x1858, [33585] = 0x1859, [33587] = 0x185A, [33588] = 0x185B, [33589] = 0x0B1A, [33590] = 0x0B1B, [33592] = 0x0B1C, [33593] = 0x106A, [33594] = 0x185C, [33596] = 0x185D, [33600] = 0x185E, [33603] = 0x185F, [33606] = 0x0B1D, [33607] = 0x1860, [33609] = 0x0B1E, [33615] = 0x1861, [33616] = 0x0B1F, [33617] = 0x1862, [33618] = 0x0B20, [33620] = 0x0E5C, [33626] = 0x1863, [33627] = 0x1864, [33628] = 0x1865, [33630] = 0x1866, [33631] = 0x0E5D, [33632] = 0x0B21, [33633] = 0x0B22, [33635] = 0x0B23, [33636] = 0x1867, [33637] = 0x1868, [33638] = 0x1869, [33639] = 0x0B24, [33640] = 0x186A, [33641] = 0x186B, [33642] = 0x186C, [33643] = 0x106B, [33644] = 0x186D, [33645] = 0x186E, [33646] = 0x186F, [33647] = 0x0B25, [33655] = 0x0B26, [33656] = 0x1870, [33659] = 0x1871, [33660] = 0x1872, [33661] = 0x1873, [33669] = 0x1874, [33670] = 0x1875, [33673] = 0x0B27, [33678] = 0x0B28, [33682] = 0x1876, [33683] = 0x0E5E, [33688] = 0x1877, [33691] = 0x1878, [33692] = 0x1879, [33694] = 0x0E5F, [33696] = 0x187A, [33704] = 0x187B, [33705] = 0x187C, [33706] = 0x187D, [33707] = 0x0B29, [33712] = 0x187E, [33713] = 0x0B2A, [33714] = 0x0B2B, [33715] = 0x187F, [33716] = 0x1880, [33718] = 0x1881, [33719] = 0x0B2C, [33720] = 0x1882, [33721] = 0x0B2D, [33722] = 0x0E60, [33724] = 0x1883, [33725] = 0x0B2E, [33728] = 0x1884, [33729] = 0x1885, [33733] = 0x1886, [33735] = 0x0B2F, [33736] = 0x0DE2, [33738] = 0x0B30, [33740] = 0x0B31, [33743] = 0x1887, [33748] = 0x1888, [33750] = 0x1889, [33752] = 0x0B32, [33756] = 0x0B33, [33757] = 0x188A, [33759] = 0x188B, [33760] = 0x106C, [33761] = 0x188C, [33765] = 0x188D, [33769] = 0x188E, [33770] = 0x188F, [33776] = 0x1890, [33777] = 0x0B34, [33778] = 0x0B35, [33784] = 0x1891, [33785] = 0x1892, [33789] = 0x1893, [33793] = 0x1894, [33795] = 0x106D, [33796] = 0x0B37, [33798] = 0x1895, [33803] = 0x1896, [33804] = 0x0B38, [33805] = 0x0B39, [33806] = 0x0B3A, [33807] = 0x1897, [33809] = 0x1898, [33816] = 0x1899, [33820] = 0x189A, [33821] = 0x0E61, [33828] = 0x0B3B, [33829] = 0x0B3C, [33830] = 0x106E, [33831] = 0x0E62, [33832] = 0x0B3D, [33841] = 0x189B, [33848] = 0x189C, [33852] = 0x189D, [33853] = 0x0B3E, [33862] = 0x189E, [33873] = 0x189F, [33879] = 0x0B3F, [33881] = 0x18A0, [33882] = 0x18A1, [33883] = 0x0B40, [33884] = 0x18A2, [33889] = 0x0B41, [33891] = 0x106F, [33897] = 0x18A3, [33899] = 0x0B42, [33900] = 0x1070, [33901] = 0x18A4, [33905] = 0x0B43, [33907] = 0x18A5, [33909] = 0x0B44, [33910] = 0x18A6, [33912] = 0x18A7, [33914] = 0x18A8, [33922] = 0x0B45, [33927] = 0x18A9, [33928] = 0x18AA, [33929] = 0x18AB, [33931] = 0x18AC, [33932] = 0x18AD, [33934] = 0x18AE, [33943] = 0x18AF, [33945] = 0x0B46, [33948] = 0x1071, [33953] = 0x18B0, [33960] = 0x0DD9, [33967] = 0x18B1, [33970] = 0x0E63, [33972] = 0x18B2, [33976] = 0x0B47, [33977] = 0x18B3, [33978] = 0x18B4, [33981] = 0x18B5, [33983] = 0x18B6, [33985] = 0x18B7, [33988] = 0x0B48, [33993] = 0x1072, [33994] = 0x18B8, [33997] = 0x18B9, [34000] = 0x18BA, [34001] = 0x0B49, [34003] = 0x110C, [34006] = 0x18BB, [34013] = 0x0B4A, [34015] = 0x18BC, [34016] = 0x18BD, [34019] = 0x18BE, [34021] = 0x18BF, [34022] = 0x18C0, [34028] = 0x0B4B, [34032] = 0x18C1, [34044] = 0x18C2, [34047] = 0x18C3, [34060] = 0x18C4, [34065] = 0x1073, [34067] = 0x0B4C, [34071] = 0x18C5, [34074] = 0x0B4D, [34079] = 0x18C6, [34081] = 0x18C7, [34091] = 0x1074, [34092] = 0x1075, [34103] = 0x0E64, [34104] = 0x18C8, [34105] = 0x18C9, [34106] = 0x18CA, [34107] = 0x18CB, [34108] = 0x1076, [34109] = 0x0B4E, [34115] = 0x18CC, [34120] = 0x18CD, [34121] = 0x0B4F, [34122] = 0x0B50, [34134] = 0x18CE, [34137] = 0x18CF, [34142] = 0x18D0, [34148] = 0x18D1, [34152] = 0x18D2, [34162] = 0x18D3, [34164] = 0x0B51, [34169] = 0x18D4, [34170] = 0x18D5, [34171] = 0x18D6, [34174] = 0x0B52, [34180] = 0x0B53, [34181] = 0x18D7, [34183] = 0x0E65, [34191] = 0x18D8, [34203] = 0x18D9, [34204] = 0x18DA, [34212] = 0x18DB, [34216] = 0x18DC, [34218] = 0x1077, [34222] = 0x18DD, [34223] = 0x0B54, [34224] = 0x0E66, [34231] = 0x18DE, [34233] = 0x18DF, [34241] = 0x18E0, [34249] = 0x0B55, [34255] = 0x0B56, [34256] = 0x18E1, [34259] = 0x1078, [34261] = 0x18E2, [34268] = 0x18E3, [34276] = 0x0B57, [34281] = 0x18E4, [34299] = 0x0E67, [34303] = 0x18E5, [34309] = 0x18E6, [34321] = 0x0B58, [34326] = 0x18E7, [34343] = 0x18E8, [34345] = 0x18E9, [34360] = 0x18EA, [34364] = 0x18EB, [34381] = 0x18EC, [34382] = 0x0B59, [34383] = 0x1079, [34384] = 0x107A, [34385] = 0x0B5A, [34388] = 0x18ED, [34394] = 0x0B5B, [34398] = 0x18EE, [34402] = 0x18EF, [34411] = 0x0B5C, [34412] = 0x18F0, [34414] = 0x18F1, [34417] = 0x18F2, [34425] = 0x0B5D, [34426] = 0x18F3, [34427] = 0x107B, [34428] = 0x18F4, [34429] = 0x0B5E, [34430] = 0x0B5F, [34431] = 0x18F5, [34432] = 0x107C, [34433] = 0x0B60, [34434] = 0x107D, [34442] = 0x0B61, [34443] = 0x18F6, [34444] = 0x107E, [34445] = 0x18F7, [34451] = 0x18F8, [34453] = 0x0E68, [34460] = 0x18F9, [34461] = 0x18FA, [34467] = 0x107F, [34468] = 0x18FB, [34471] = 0x18FC, [34472] = 0x18FD, [34473] = 0x18FE, [34474] = 0x0B62, [34476] = 0x18FF, [34479] = 0x1900, [34480] = 0x1901, [34481] = 0x1902, [34484] = 0x1903, [34485] = 0x1904, [34486] = 0x1905, [34490] = 0x1906, [34496] = 0x0B63, [34500] = 0x1907, [34502] = 0x1908, [34503] = 0x0B64, [34505] = 0x1909, [34506] = 0x190A, [34507] = 0x0B65, [34510] = 0x190B, [34511] = 0x190C, [34512] = 0x190D, [34513] = 0x190E, [34516] = 0x190F, [34520] = 0x1910, [34521] = 0x0B66, [34523] = 0x0B67, [34526] = 0x1911, [34527] = 0x1912, [34532] = 0x1913, [34537] = 0x1914, [34541] = 0x1915, [34542] = 0x0B68, [34544] = 0x1916, [34545] = 0x1917, [34546] = 0x1918, [34547] = 0x1919, [34548] = 0x191A, [34552] = 0x191B, [34553] = 0x0B69, [34558] = 0x0B6A, [34560] = 0x191C, [34562] = 0x0B6B, [34563] = 0x0E69, [34567] = 0x1080, [34568] = 0x1081, [34569] = 0x191D, [34570] = 0x191E, [34573] = 0x0B6C, [34578] = 0x0B6D, [34579] = 0x0B6E, [34581] = 0x0B6F, [34583] = 0x0B70, [34584] = 0x0B71, [34586] = 0x191F, [34588] = 0x0B72, [34590] = 0x1920, [34593] = 0x0B73, [34594] = 0x1921, [34595] = 0x1922, [34597] = 0x0B74, [34601] = 0x1923, [34606] = 0x1924, [34609] = 0x1925, [34612] = 0x0B75, [34615] = 0x0B76, [34619] = 0x0B77, [34622] = 0x1926, [34623] = 0x1082, [34631] = 0x0B79, [34632] = 0x1927, [34633] = 0x0B7A, [34636] = 0x0B7B, [34638] = 0x0B7C, [34643] = 0x1928, [34647] = 0x1929, [34649] = 0x0B7D, [34656] = 0x0B7E, [34659] = 0x192A, [34660] = 0x192B, [34661] = 0x192C, [34670] = 0x192D, [34672] = 0x192E, [34676] = 0x0B7F, [34678] = 0x0B80, [34683] = 0x192F, [34684] = 0x1930, [34685] = 0x1931, [34686] = 0x1932, [34690] = 0x0B81, [34691] = 0x0B82, [34693] = 0x1933, [34696] = 0x1934, [34699] = 0x1935, [34701] = 0x0B83, [34707] = 0x1936, [34711] = 0x1937, [34719] = 0x1938, [34728] = 0x1939, [34731] = 0x193A, [34732] = 0x193B, [34733] = 0x193C, [34735] = 0x0B84, [34739] = 0x0B85, [34741] = 0x193D, [34746] = 0x0B86, [34749] = 0x193E, [34752] = 0x0B87, [34758] = 0x193F, [34762] = 0x1940, [34763] = 0x0B88, [34769] = 0x1941, [34770] = 0x1942, [34771] = 0x1943, [34779] = 0x1944, [34784] = 0x1945, [34789] = 0x1946, [34794] = 0x1947, [34798] = 0x1948, [34809] = 0x0B89, [34814] = 0x0B8A, [34819] = 0x1949, [34826] = 0x194A, [34835] = 0x194B, [34837] = 0x0B8B, [34838] = 0x194C, [34843] = 0x194D, [34849] = 0x194E, [34850] = 0x0B8C, [34866] = 0x194F, [34873] = 0x1950, [34876] = 0x1951, [34880] = 0x0B8D, [34884] = 0x1952, [34885] = 0x0B8E, [34892] = 0x0B8F, [34893] = 0x0B90, [34900] = 0x1083, [34903] = 0x0B91, [34905] = 0x1953, [34913] = 0x0B92, [34914] = 0x1954, [34915] = 0x0B93, [34916] = 0x1955, [34917] = 0x0B94, [34920] = 0x0B95, [34921] = 0x1956, [34923] = 0x0B96, [34924] = 0x1084, [34926] = 0x1957, [34928] = 0x0B97, [34930] = 0x1958, [34935] = 0x0B98, [34941] = 0x1959, [34942] = 0x195A, [34943] = 0x195B, [34945] = 0x0E6A, [34946] = 0x195C, [34948] = 0x1085, [34949] = 0x195D, [34952] = 0x195E, [34955] = 0x0B99, [34957] = 0x1086, [34962] = 0x195F, [34966] = 0x0B9A, [34972] = 0x1087, [34978] = 0x1960, [34980] = 0x0B9B, [34987] = 0x0B9C, [34989] = 0x0B9D, [34993] = 0x1961, [34999] = 0x1962, [35004] = 0x1963, [35009] = 0x0B9E, [35010] = 0x0B9F, [35013] = 0x0BA0, [35014] = 0x1964, [35017] = 0x1965, [35022] = 0x1966, [35026] = 0x1967, [35028] = 0x1968, [35029] = 0x0BA1, [35032] = 0x1969, [35033] = 0x0BA2, [35039] = 0x196A, [35042] = 0x196B, [35043] = 0x196C, [35044] = 0x0BA3, [35045] = 0x196D, [35048] = 0x196E, [35056] = 0x196F, [35057] = 0x1970, [35059] = 0x1088, [35060] = 0x1089, [35064] = 0x0BA4, [35065] = 0x0BA5, [35068] = 0x1971, [35070] = 0x1972, [35074] = 0x1973, [35082] = 0x1974, [35088] = 0x108A, [35090] = 0x1975, [35091] = 0x1976, [35097] = 0x1977, [35098] = 0x1978, [35099] = 0x1979, [35105] = 0x197A, [35109] = 0x108B, [35114] = 0x108C, [35115] = 0x197B, [35120] = 0x197C, [35124] = 0x197D, [35126] = 0x0BA6, [35137] = 0x197E, [35140] = 0x197F, [35166] = 0x1980, [35167] = 0x108D, [35174] = 0x1981, [35195] = 0x1982, [35199] = 0x0BA7, [35201] = 0x0BA8, [35203] = 0x1983, [35206] = 0x0BA9, [35211] = 0x108E, [35265] = 0x0BAA, [35266] = 0x0BAB, [35268] = 0x0BAC, [35269] = 0x0BAD, [35270] = 0x0BAE, [35271] = 0x1984, [35272] = 0x0BAF, [35273] = 0x0BB0, [35274] = 0x0E6B, [35275] = 0x1985, [35276] = 0x1986, [35278] = 0x0E6C, [35279] = 0x1987, [35280] = 0x1988, [35281] = 0x108F, [35282] = 0x0BB1, [35286] = 0x1989, [35290] = 0x198A, [35292] = 0x198B, [35294] = 0x198C, [35299] = 0x0BB2, [35301] = 0x198D, [35302] = 0x0BB3, [35307] = 0x198E, [35311] = 0x198F, [35315] = 0x1990, [35328] = 0x0BB4, [35335] = 0x1991, [35390] = 0x1992, [35400] = 0x1993, [35449] = 0x0E6D, [35465] = 0x1090, [35466] = 0x1994, [35475] = 0x1091, [35591] = 0x1995, [35622] = 0x1996, [35686] = 0x0BB5, [35692] = 0x1997, [35744] = 0x1998, [35745] = 0x0BB6, [35746] = 0x0BB7, [35747] = 0x1999, [35748] = 0x0BB8, [35749] = 0x199A, [35750] = 0x199B, [35751] = 0x199C, [35752] = 0x0BB9, [35753] = 0x0BBA, [35754] = 0x0BBB, [35755] = 0x199D, [35757] = 0x0BBC, [35758] = 0x0BBD, [35759] = 0x0BBE, [35760] = 0x0BBF, [35762] = 0x0BC0, [35763] = 0x1092, [35764] = 0x199E, [35765] = 0x199F, [35766] = 0x0BC1, [35767] = 0x0BC2, [35768] = 0x0BC3, [35769] = 0x19A0, [35770] = 0x0BC4, [35772] = 0x19A1, [35773] = 0x1093, [35774] = 0x0BC5, [35775] = 0x0BC6, [35776] = 0x0BC7, [35777] = 0x0BC8, [35778] = 0x19A2, [35779] = 0x19A3, [35780] = 0x0BC9, [35781] = 0x0BCA, [35782] = 0x0BCB, [35784] = 0x0BCC, [35785] = 0x0BCD, [35786] = 0x0BCE, [35787] = 0x19A4, [35788] = 0x19A5, [35789] = 0x0BCF, [35790] = 0x19A6, [35791] = 0x19A7, [35793] = 0x0BD0, [35794] = 0x19A8, [35795] = 0x19A9, [35796] = 0x19AA, [35797] = 0x0BD1, [35798] = 0x19AB, [35799] = 0x0BD2, [35800] = 0x0BD3, [35801] = 0x0BD4, [35802] = 0x0BD5, [35803] = 0x19AC, [35804] = 0x19AD, [35805] = 0x0BD6, [35806] = 0x0BD7, [35807] = 0x19AE, [35808] = 0x19AF, [35809] = 0x0BD8, [35810] = 0x0BD9, [35811] = 0x1094, [35812] = 0x19B0, [35813] = 0x0BDA, [35814] = 0x0BDB, [35815] = 0x19B1, [35816] = 0x19B2, [35817] = 0x19B3, [35819] = 0x19B4, [35820] = 0x1095, [35821] = 0x0BDC, [35822] = 0x19B5, [35823] = 0x0BDD, [35824] = 0x19B6, [35825] = 0x0BDE, [35826] = 0x0BDF, [35827] = 0x19B7, [35828] = 0x0BE0, [35829] = 0x0BE1, [35830] = 0x0BE2, [35831] = 0x0BE3, [35832] = 0x0BE4, [35833] = 0x19B8, [35834] = 0x0BE5, [35835] = 0x0BE6, [35836] = 0x19B9, [35837] = 0x19BA, [35838] = 0x0BE7, [35839] = 0x19BB, [35840] = 0x19BC, [35841] = 0x0BE8, [35842] = 0x19BD, [35843] = 0x0BE9, [35844] = 0x19BE, [35845] = 0x0BEA, [35846] = 0x19BF, [35847] = 0x19C0, [35848] = 0x0BEB, [35850] = 0x0BEC, [35851] = 0x0BED, [35852] = 0x19C1, [35853] = 0x19C2, [35854] = 0x0BEE, [35855] = 0x19C3, [35856] = 0x0BEF, [35857] = 0x19C4, [35858] = 0x19C5, [35859] = 0x0BF0, [35860] = 0x19C6, [35861] = 0x19C7, [35862] = 0x19C8, [35863] = 0x19C9, [35864] = 0x19CA, [35865] = 0x1096, [35866] = 0x1097, [35867] = 0x0BF1, [35868] = 0x0BF2, [35869] = 0x19CB, [35871] = 0x0BF3, [35872] = 0x19CC, [35873] = 0x19CD, [35874] = 0x0BF4, [35875] = 0x1098, [35876] = 0x19CE, [35877] = 0x19CF, [35878] = 0x0BF5, [35879] = 0x19D0, [35880] = 0x0BF6, [35881] = 0x19D1, [35882] = 0x19D2, [35883] = 0x19D3, [35884] = 0x1099, [35885] = 0x109A, [35886] = 0x19D4, [35887] = 0x19D5, [35888] = 0x19D6, [35889] = 0x0BF7, [35890] = 0x19D7, [35891] = 0x19D8, [35892] = 0x19D9, [35893] = 0x19DA, [35894] = 0x19DB, [35895] = 0x0BF8, [35905] = 0x109B, [35910] = 0x0BF9, [35911] = 0x19DC, [35913] = 0x19DD, [35916] = 0x19DE, [35925] = 0x19DF, [35930] = 0x0BFA, [35937] = 0x0BFB, [35938] = 0x19E0, [35946] = 0x0BFC, [35947] = 0x0BFD, [35955] = 0x19E1, [35960] = 0x19E2, [35961] = 0x0BFE, [35962] = 0x19E3, [35970] = 0x0BFF, [35973] = 0x19E4, [35977] = 0x19E5, [35978] = 0x19E6, [35980] = 0x0C00, [35988] = 0x19E7, [35992] = 0x0E6E, [36125] = 0x0C01, [36126] = 0x0C02, [36127] = 0x0C03, [36129] = 0x0C04, [36130] = 0x0C05, [36131] = 0x0C06, [36132] = 0x109C, [36133] = 0x0C07, [36134] = 0x0C08, [36135] = 0x0C09, [36136] = 0x0C0A, [36137] = 0x0C0B, [36138] = 0x0C0C, [36139] = 0x109D, [36140] = 0x19E8, [36141] = 0x0C0D, [36142] = 0x0E6F, [36143] = 0x0C0E, [36144] = 0x19E9, [36145] = 0x109E, [36146] = 0x19EA, [36147] = 0x19EB, [36148] = 0x0C0F, [36149] = 0x0C10, [36150] = 0x19EC, [36151] = 0x109F, [36152] = 0x0E70, [36153] = 0x0C11, [36154] = 0x0C12, [36155] = 0x19ED, [36156] = 0x0C13, [36157] = 0x19EE, [36158] = 0x0C14, [36159] = 0x10A0, [36160] = 0x19EF, [36161] = 0x19F0, [36162] = 0x19F1, [36163] = 0x19F2, [36164] = 0x0C15, [36165] = 0x19F3, [36166] = 0x19F4, [36167] = 0x19F5, [36168] = 0x19F6, [36169] = 0x19F7, [36170] = 0x19F8, [36171] = 0x0C16, [36172] = 0x0C17, [36173] = 0x19F9, [36174] = 0x10A1, [36175] = 0x0C18, [36176] = 0x0C19, [36179] = 0x19FA, [36180] = 0x0C1A, [36181] = 0x19FB, [36182] = 0x0C1B, [36184] = 0x10A2, [36185] = 0x19FC, [36186] = 0x0C1C, [36187] = 0x0C1D, [36188] = 0x19FD, [36189] = 0x10A3, [36190] = 0x0C1E, [36192] = 0x0C1F, [36193] = 0x19FE, [36194] = 0x0C20, [36195] = 0x19FF, [36196] = 0x0C21, [36198] = 0x10A4, [36199] = 0x1A00, [36203] = 0x0C22, [36205] = 0x1A01, [36208] = 0x0C23, [36211] = 0x10A5, [36212] = 0x0C24, [36213] = 0x10A6, [36214] = 0x0C25, [36215] = 0x0C26, [36225] = 0x0C27, [36228] = 0x1A02, [36229] = 0x0C28, [36234] = 0x0C29, [36235] = 0x0C2A, [36241] = 0x1A03, [36244] = 0x1A04, [36255] = 0x0C2B, [36259] = 0x0C2C, [36273] = 0x1A05, [36275] = 0x0C2D, [36276] = 0x0C2E, [36277] = 0x1A06, [36280] = 0x1A07, [36282] = 0x1A08, [36284] = 0x1A09, [36286] = 0x1A0A, [36287] = 0x1A0B, [36291] = 0x0C2F, [36292] = 0x1A0C, [36294] = 0x1A0D, [36299] = 0x0C30, [36300] = 0x0C31, [36302] = 0x1A0E, [36303] = 0x1A0F, [36305] = 0x0C32, [36310] = 0x1A10, [36311] = 0x1A11, [36314] = 0x0E71, [36315] = 0x1A12, [36317] = 0x0C33, [36318] = 0x1A13, [36319] = 0x0C34, [36323] = 0x1A14, [36324] = 0x10A7, [36328] = 0x0C35, [36330] = 0x10A8, [36331] = 0x1A15, [36332] = 0x1A16, [36335] = 0x0C36, [36339] = 0x0C37, [36341] = 0x0C38, [36343] = 0x1A17, [36344] = 0x1A18, [36345] = 0x1A19, [36346] = 0x0C39, [36347] = 0x1A1A, [36349] = 0x1A1B, [36357] = 0x1A1C, [36361] = 0x1A1D, [36362] = 0x0C3A, [36364] = 0x0C3B, [36367] = 0x0C3C, [36372] = 0x1A1E, [36381] = 0x0E72, [36382] = 0x10A9, [36383] = 0x1A1F, [36386] = 0x0C3D, [36387] = 0x1A20, [36393] = 0x0C3E, [36394] = 0x0C3F, [36396] = 0x1A21, [36398] = 0x1A22, [36399] = 0x1A23, [36401] = 0x1A24, [36405] = 0x1A25, [36409] = 0x0C40, [36410] = 0x1A26, [36413] = 0x1A27, [36416] = 0x1A28, [36417] = 0x1A29, [36418] = 0x0C41, [36420] = 0x10AA, [36423] = 0x1A2A, [36424] = 0x0C42, [36425] = 0x1A2B, [36426] = 0x1A2C, [36427] = 0x1A2D, [36433] = 0x1A2E, [36434] = 0x0E73, [36441] = 0x1A2F, [36454] = 0x0C43, [36457] = 0x1A30, [36460] = 0x0C44, [36461] = 0x10AB, [36463] = 0x1A31, [36464] = 0x1A32, [36466] = 0x10AC, [36468] = 0x1A33, [36470] = 0x1A34, [36476] = 0x0C45, [36479] = 0x0C46, [36481] = 0x0C47, [36485] = 0x1A35, [36487] = 0x0C48, [36495] = 0x0C49, [36496] = 0x1A36, [36500] = 0x1A37, [36508] = 0x1A38, [36510] = 0x1A39, [36523] = 0x0C4A, [36524] = 0x0C4B, [36527] = 0x0C4C, [36530] = 0x0C4D, [36538] = 0x0C4E, [36558] = 0x1A3A, [36710] = 0x0C4F, [36711] = 0x10AD, [36712] = 0x0C50, [36713] = 0x0C51, [36715] = 0x1A3B, [36716] = 0x0C52, [36717] = 0x1A3C, [36718] = 0x0C53, [36719] = 0x0C54, [36720] = 0x0C55, [36721] = 0x10AE, [36722] = 0x1A3D, [36723] = 0x1A3E, [36724] = 0x0C56, [36725] = 0x1A3F, [36726] = 0x10AF, [36727] = 0x1A40, [36728] = 0x1A41, [36729] = 0x1A42, [36730] = 0x1A43, [36731] = 0x0C57, [36732] = 0x1A44, [36733] = 0x0C58, [36734] = 0x1A45, [36735] = 0x10B0, [36737] = 0x1A46, [36738] = 0x1A47, [36739] = 0x0C59, [36740] = 0x10B1, [36741] = 0x0C5A, [36742] = 0x0C5B, [36743] = 0x1A48, [36744] = 0x0C5C, [36745] = 0x0C5D, [36746] = 0x1A49, [36747] = 0x1A4A, [36749] = 0x1A4B, [36750] = 0x1A4C, [36751] = 0x1A4D, [36752] = 0x0C5E, [36753] = 0x0C5F, [36755] = 0x0C60, [36756] = 0x1A4E, [36757] = 0x0E74, [36758] = 0x1A4F, [36759] = 0x10B2, [36760] = 0x10B3, [36761] = 0x0C61, [36762] = 0x1A50, [36763] = 0x0C62, [36764] = 0x10B4, [36766] = 0x0C63, [36767] = 0x0C64, [36771] = 0x0C65, [36776] = 0x0C66, [36777] = 0x10B5, [36779] = 0x10B6, [36784] = 0x0C67, [36785] = 0x0C68, [36790] = 0x1A51, [36793] = 0x0C69, [36796] = 0x10B7, [36797] = 0x0C6A, [36798] = 0x0C6B, [36801] = 0x0C6C, [36802] = 0x0C6D, [36804] = 0x10B8, [36805] = 0x0C6E, [36807] = 0x0C6F, [36808] = 0x0C70, [36814] = 0x0C71, [36816] = 0x0C72, [36817] = 0x0C73, [36819] = 0x1A52, [36820] = 0x0C74, [36821] = 0x1A53, [36824] = 0x0C75, [36825] = 0x0C76, [36827] = 0x0C77, [36828] = 0x0C78, [36829] = 0x0C79, [36830] = 0x0C7A, [36831] = 0x0C7B, [36834] = 0x10B9, [36836] = 0x1A54, [36837] = 0x1A55, [36838] = 0x10BA, [36840] = 0x1A56, [36841] = 0x1A57, [36842] = 0x0C7C, [36843] = 0x0C7D, [36845] = 0x1A58, [36846] = 0x1A59, [36848] = 0x0C7E, [36851] = 0x1A5A, [36855] = 0x0C7F, [36856] = 0x0C80, [36857] = 0x0C81, [36861] = 0x0C82, [36864] = 0x0C83, [36865] = 0x0C84, [36866] = 0x0C85, [36867] = 0x0C86, [36868] = 0x1A5B, [36869] = 0x0C87, [36870] = 0x0C88, [36873] = 0x0C89, [36874] = 0x0C8A, [36875] = 0x1A5C, [36877] = 0x10BB, [36879] = 0x0C8B, [36880] = 0x0C8C, [36881] = 0x1A5D, [36882] = 0x0C8D, [36884] = 0x0C8E, [36886] = 0x1A5E, [36887] = 0x10BC, [36890] = 0x0C8F, [36891] = 0x10BD, [36893] = 0x0C90, [36894] = 0x0C91, [36895] = 0x0C92, [36896] = 0x0C93, [36897] = 0x1A5F, [36898] = 0x0C94, [36902] = 0x1A60, [36909] = 0x1A61, [36910] = 0x10BE, [36911] = 0x1A62, [36917] = 0x1A63, [36918] = 0x1A64, [36920] = 0x0C95, [36923] = 0x0C96, [36924] = 0x0C97, [36926] = 0x10BF, [36929] = 0x0C98, [36930] = 0x1A65, [36932] = 0x1A66, [36935] = 0x0C99, [36941] = 0x0C9A, [36943] = 0x1A67, [36944] = 0x1A68, [36945] = 0x1A69, [36946] = 0x1A6A, [36947] = 0x0C9B, [36951] = 0x0C9C, [36952] = 0x1A6B, [36955] = 0x1A6C, [36962] = 0x1A6D, [36963] = 0x0C9D, [36965] = 0x0C9E, [36968] = 0x110D, [36973] = 0x0C9F, [36974] = 0x0CA0, [36980] = 0x1A6E, [36981] = 0x0CA1, [36989] = 0x1A6F, [36991] = 0x0CA2, [36992] = 0x0CA3, [36994] = 0x0CA4, [36995] = 0x0CA5, [37000] = 0x1A70, [37003] = 0x1A71, [37009] = 0x1A72, [37011] = 0x1A73, [37013] = 0x1A74, [37015] = 0x1A75, [37017] = 0x1A76, [37019] = 0x1A77, [37021] = 0x1A78, [37025] = 0x1A79, [37026] = 0x1A7A, [37027] = 0x0CA6, [37030] = 0x0CA7, [37034] = 0x0CA8, [37036] = 0x1A7B, [37038] = 0x0CA9, [37039] = 0x1A7C, [37040] = 0x1A7D, [37041] = 0x110E, [37043] = 0x1A7E, [37044] = 0x1A7F, [37045] = 0x1A80, [37046] = 0x1A81, [37048] = 0x10C0, [37049] = 0x1A82, [37050] = 0x1A83, [37051] = 0x0CAA, [37054] = 0x1A84, [37057] = 0x0CAB, [37060] = 0x1A85, [37061] = 0x1A86, [37063] = 0x1A87, [37066] = 0x0CAC, [37070] = 0x0CAD, [37071] = 0x1A88, [37072] = 0x1A89, [37073] = 0x10C1, [37075] = 0x1A8A, [37079] = 0x1A8B, [37083] = 0x1A8C, [37084] = 0x1A8D, [37085] = 0x110F, [37089] = 0x0CAE, [37090] = 0x1A8E, [37094] = 0x1A8F, [37095] = 0x1A90, [37096] = 0x0CAF, [37099] = 0x1A91, [37101] = 0x1110, [37103] = 0x1A92, [37108] = 0x1A93, [37112] = 0x1A94, [37117] = 0x0CB0, [37118] = 0x1A95, [37122] = 0x1A96, [37124] = 0x1A97, [37145] = 0x10C2, [37150] = 0x1A98, [37154] = 0x1A99, [37155] = 0x1A9A, [37167] = 0x1A9B, [37169] = 0x1A9C, [37177] = 0x1A9D, [37187] = 0x1A9E, [37190] = 0x1A9F, [37193] = 0x1AA0, [37194] = 0x1AA1, [37195] = 0x10C3, [37196] = 0x1AA2, [37197] = 0x0CB1, [37198] = 0x1AA3, [37199] = 0x1AA4, [37200] = 0x1AA5, [37202] = 0x0CB2, [37207] = 0x1AA6, [37210] = 0x0CB3, [37213] = 0x0CB4, [37214] = 0x1AA7, [37217] = 0x1AA8, [37218] = 0x1AA9, [37219] = 0x0CB5, [37220] = 0x1AAA, [37221] = 0x10C4, [37225] = 0x1AAB, [37226] = 0x10C5, [37228] = 0x0CB6, [37230] = 0x1AAC, [37231] = 0x1AAD, [37232] = 0x1AAE, [37233] = 0x0CB7, [37234] = 0x1AAF, [37236] = 0x1AB0, [37237] = 0x0CB8, [37238] = 0x1AB1, [37239] = 0x0CB9, [37240] = 0x0CBA, [37241] = 0x1AB2, [37245] = 0x1AB3, [37246] = 0x1AB4, [37247] = 0x0CBB, [37253] = 0x1AB5, [37255] = 0x10C6, [37257] = 0x0CBC, [37259] = 0x10C7, [37260] = 0x1AB6, [37261] = 0x1AB7, [37264] = 0x1AB8, [37265] = 0x1AB9, [37266] = 0x0CBD, [37274] = 0x1ABA, [37275] = 0x1ABB, [37282] = 0x1ABC, [37283] = 0x1ABD, [37290] = 0x1ABE, [37293] = 0x1ABF, [37294] = 0x1AC0, [37295] = 0x1AC1, [37300] = 0x1AC2, [37301] = 0x1AC3, [37306] = 0x1AC4, [37319] = 0x0CBE, [37321] = 0x1AC5, [37322] = 0x0CBF, [37324] = 0x0CC0, [37325] = 0x0CC1, [37326] = 0x0CC2, [37327] = 0x0CC3, [37329] = 0x0CC4, [37340] = 0x0E75, [37492] = 0x0CC5, [37518] = 0x1AC6, [37550] = 0x1AC7, [37576] = 0x1AC8, [37694] = 0x1AC9, [37738] = 0x1ACA, [37775] = 0x1ACB, [37834] = 0x1ACC, [37846] = 0x1ACD, [37950] = 0x1ACE, [37995] = 0x10C8, [38021] = 0x1ACF, [38022] = 0x1AD0, [38023] = 0x1AD1, [38024] = 0x0CC6, [38025] = 0x0CC7, [38026] = 0x1AD2, [38027] = 0x1AD3, [38028] = 0x1AD4, [38029] = 0x1AD5, [38030] = 0x1AD6, [38031] = 0x0CC8, [38032] = 0x1AD7, [38034] = 0x1AD8, [38035] = 0x0CC9, [38036] = 0x1AD9, [38037] = 0x1ADA, [38039] = 0x1ADB, [38041] = 0x10C9, [38042] = 0x1ADC, [38043] = 0x1ADD, [38044] = 0x0CCA, [38045] = 0x0CCB, [38046] = 0x10CA, [38047] = 0x0CCC, [38048] = 0x1ADE, [38049] = 0x1ADF, [38050] = 0x0CCD, [38051] = 0x1AE0, [38052] = 0x1AE1, [38053] = 0x0CCE, [38054] = 0x10CB, [38055] = 0x10CC, [38056] = 0x1AE2, [38057] = 0x0CCF, [38058] = 0x1AE3, [38059] = 0x1AE4, [38060] = 0x1AE5, [38061] = 0x1AE6, [38062] = 0x0CD0, [38063] = 0x1AE7, [38064] = 0x10CD, [38065] = 0x0CD1, [38066] = 0x1AE8, [38067] = 0x0CD2, [38068] = 0x1AE9, [38069] = 0x0CD3, [38070] = 0x1AEA, [38071] = 0x1AEB, [38072] = 0x1AEC, [38073] = 0x0CD4, [38074] = 0x1AED, [38075] = 0x0CD5, [38076] = 0x0E76, [38077] = 0x1AEE, [38078] = 0x0CD6, [38079] = 0x1AEF, [38080] = 0x1AF0, [38081] = 0x0CD7, [38082] = 0x10CE, [38083] = 0x0CD8, [38084] = 0x1AF1, [38085] = 0x10CF, [38086] = 0x1111, [38088] = 0x1AF2, [38089] = 0x1AF3, [38090] = 0x1AF4, [38091] = 0x0CD9, [38092] = 0x1AF5, [38093] = 0x1AF6, [38094] = 0x0CDA, [38096] = 0x10D0, [38097] = 0x1AF7, [38098] = 0x1AF8, [38101] = 0x1AF9, [38102] = 0x1AFA, [38103] = 0x10D1, [38104] = 0x1AFB, [38105] = 0x1AFC, [38107] = 0x0CDB, [38108] = 0x0CDC, [38109] = 0x1AFD, [38110] = 0x1AFE, [38111] = 0x1AFF, [38112] = 0x0CDD, [38113] = 0x1B00, [38114] = 0x1B01, [38115] = 0x1B02, [38116] = 0x1B03, [38117] = 0x1B04, [38119] = 0x1B05, [38120] = 0x1B06, [38121] = 0x1B07, [38122] = 0x1B08, [38123] = 0x1B09, [38124] = 0x1B0A, [38125] = 0x0CDE, [38126] = 0x10D2, [38127] = 0x1B0B, [38128] = 0x1B0C, [38129] = 0x1B0D, [38130] = 0x0CDF, [38131] = 0x0CE0, [38132] = 0x1B0E, [38133] = 0x1B0F, [38134] = 0x0CE1, [38135] = 0x1B10, [38136] = 0x0CE2, [38137] = 0x1B11, [38138] = 0x0CE3, [38140] = 0x1B12, [38141] = 0x1B13, [38142] = 0x0CE4, [38143] = 0x1B14, [38144] = 0x0CE5, [38145] = 0x0CE6, [38146] = 0x1B15, [38147] = 0x10D3, [38148] = 0x0CE7, [38149] = 0x0CE8, [38150] = 0x1B16, [38151] = 0x1B17, [38152] = 0x0CE9, [38153] = 0x10D4, [38154] = 0x1B18, [38155] = 0x0CEA, [38156] = 0x10D5, [38157] = 0x1B19, [38158] = 0x1B1A, [38159] = 0x10D6, [38160] = 0x0CEC, [38161] = 0x1B1B, [38162] = 0x1B1C, [38163] = 0x1B1D, [38164] = 0x1B1E, [38165] = 0x1B1F, [38166] = 0x1B20, [38167] = 0x1B21, [38168] = 0x1B22, [38169] = 0x0CED, [38170] = 0x10D7, [38171] = 0x1B23, [38173] = 0x1B24, [38174] = 0x1B25, [38175] = 0x1B26, [38177] = 0x0CEE, [38178] = 0x1B27, [38179] = 0x10D8, [38180] = 0x0CEF, [38181] = 0x0E77, [38182] = 0x0E78, [38184] = 0x1B28, [38185] = 0x1B29, [38186] = 0x1B2A, [38187] = 0x1B2B, [38188] = 0x1B2C, [38189] = 0x1B2D, [38190] = 0x0CF0, [38191] = 0x0CF1, [38192] = 0x1B2E, [38193] = 0x1B2F, [38194] = 0x1B30, [38196] = 0x1B31, [38197] = 0x0CF2, [38198] = 0x1B32, [38199] = 0x1B33, [38200] = 0x1B34, [38201] = 0x0CF3, [38202] = 0x1B35, [38203] = 0x0CF4, [38204] = 0x1B36, [38206] = 0x1B37, [38207] = 0x1B38, [38208] = 0x1B39, [38209] = 0x10D9, [38210] = 0x10DA, [38212] = 0x1B3A, [38213] = 0x1B3B, [38214] = 0x1B3C, [38215] = 0x0CF5, [38217] = 0x1B3D, [38218] = 0x1B3E, [38220] = 0x0CF6, [38221] = 0x1B3F, [38222] = 0x1B40, [38223] = 0x1B41, [38224] = 0x10DB, [38225] = 0x1B42, [38226] = 0x1B43, [38227] = 0x1B44, [38228] = 0x1B45, [38229] = 0x0DDA, [38230] = 0x0CF7, [38231] = 0x1B46, [38232] = 0x1B47, [38233] = 0x1B48, [38235] = 0x1B49, [38236] = 0x0CF8, [38237] = 0x1B4A, [38238] = 0x1B4B, [38239] = 0x1B4C, [38241] = 0x1B4D, [38242] = 0x1B4E, [38243] = 0x1B4F, [38244] = 0x1B50, [38245] = 0x1B51, [38246] = 0x1B52, [38247] = 0x0CF9, [38248] = 0x1B53, [38249] = 0x1B54, [38250] = 0x1B55, [38251] = 0x1B56, [38252] = 0x1B57, [38253] = 0x10DC, [38255] = 0x10DD, [38256] = 0x0CFA, [38257] = 0x1B58, [38258] = 0x1B59, [38259] = 0x1B5A, [38262] = 0x0CFB, [38271] = 0x0CFC, [38376] = 0x0CFD, [38377] = 0x1B5B, [38378] = 0x0CFE, [38379] = 0x1B5C, [38381] = 0x0CFF, [38382] = 0x0D00, [38383] = 0x0D01, [38384] = 0x1B5D, [38385] = 0x1B5E, [38386] = 0x0D02, [38387] = 0x1B5F, [38388] = 0x0D03, [38389] = 0x1B60, [38390] = 0x1B61, [38391] = 0x0D04, [38392] = 0x0E79, [38393] = 0x0D05, [38394] = 0x10DE, [38395] = 0x0D06, [38396] = 0x1B62, [38397] = 0x1B63, [38398] = 0x1B64, [38400] = 0x10DF, [38401] = 0x0E7A, [38402] = 0x1B65, [38403] = 0x1B66, [38404] = 0x10E0, [38405] = 0x0D07, [38406] = 0x1B67, [38408] = 0x1B68, [38409] = 0x1B69, [38410] = 0x1B6A, [38411] = 0x1B6B, [38412] = 0x1B6C, [38413] = 0x1B6D, [38414] = 0x1B6E, [38415] = 0x1B6F, [38416] = 0x1B70, [38417] = 0x1B71, [38418] = 0x1B72, [38420] = 0x0D08, [38421] = 0x1B73, [38422] = 0x1B74, [38423] = 0x1B75, [38425] = 0x1B76, [38426] = 0x1B77, [38428] = 0x0D09, [38429] = 0x1B78, [38431] = 0x0D0A, [38433] = 0x0D0B, [38434] = 0x1B79, [38442] = 0x0D0C, [38446] = 0x1B7A, [38449] = 0x0D0D, [38450] = 0x0D0E, [38451] = 0x0D0F, [38452] = 0x0D10, [38453] = 0x0D11, [38454] = 0x0D12, [38459] = 0x0D13, [38460] = 0x1B7B, [38461] = 0x1B7C, [38463] = 0x0D14, [38464] = 0x0D15, [38466] = 0x1B7D, [38468] = 0x0D16, [38469] = 0x0D17, [38470] = 0x0D18, [38471] = 0x1B7E, [38472] = 0x0D19, [38473] = 0x1B7F, [38475] = 0x0D1A, [38476] = 0x0D1B, [38477] = 0x0D1C, [38480] = 0x0D1D, [38484] = 0x1B80, [38485] = 0x0D1E, [38491] = 0x1B81, [38495] = 0x1B82, [38497] = 0x0D1F, [38498] = 0x0D20, [38500] = 0x0D21, [38503] = 0x1B83, [38504] = 0x0D22, [38505] = 0x0D23, [38506] = 0x0D24, [38508] = 0x1B84, [38514] = 0x1B85, [38516] = 0x1B86, [38517] = 0x0D25, [38518] = 0x0D26, [38519] = 0x0D27, [38533] = 0x1B87, [38534] = 0x0D28, [38536] = 0x1B88, [38539] = 0x1B89, [38541] = 0x1B8A, [38543] = 0x0D29, [38544] = 0x0D2A, [38548] = 0x0D2B, [38551] = 0x1B8B, [38552] = 0x1B8C, [38553] = 0x0D2C, [38556] = 0x0D2D, [38567] = 0x0D2E, [38576] = 0x1B8D, [38579] = 0x1B8E, [38582] = 0x10E1, [38585] = 0x1B8F, [38588] = 0x1112, [38589] = 0x1B90, [38590] = 0x0D2F, [38592] = 0x0D30, [38593] = 0x0E7B, [38596] = 0x0D31, [38597] = 0x0D32, [38598] = 0x0D33, [38599] = 0x10E2, [38601] = 0x1B91, [38604] = 0x0D34, [38605] = 0x1B92, [38606] = 0x1B93, [38607] = 0x0D35, [38610] = 0x1B94, [38613] = 0x0D36, [38624] = 0x1B95, [38632] = 0x0D37, [38633] = 0x1B96, [38634] = 0x0D38, [38639] = 0x0E7C, [38643] = 0x0E7D, [38646] = 0x0D39, [38647] = 0x0D3A, [38649] = 0x0D3B, [38654] = 0x0D3C, [38656] = 0x0D3D, [38657] = 0x0E7E, [38660] = 0x0E7F, [38662] = 0x0E80, [38663] = 0x0D3E, [38664] = 0x0E81, [38665] = 0x0D3F, [38669] = 0x0D40, [38670] = 0x1B97, [38671] = 0x0E82, [38675] = 0x0D41, [38678] = 0x10E3, [38684] = 0x10E4, [38686] = 0x10E5, [38698] = 0x1B98, [38701] = 0x1B99, [38704] = 0x1B9A, [38706] = 0x0D42, [38712] = 0x0D43, [38713] = 0x0D44, [38718] = 0x10E6, [38738] = 0x0D45, [38739] = 0x10E7, [38742] = 0x10E8, [38745] = 0x0D46, [38747] = 0x0E83, [38750] = 0x0D47, [38752] = 0x0D48, [38753] = 0x10E9, [38754] = 0x0D49, [38757] = 0x1B9B, [38761] = 0x0D4A, [38771] = 0x1B9C, [38772] = 0x10EA, [38774] = 0x10EB, [38780] = 0x1B9D, [38789] = 0x1B9E, [38795] = 0x0D4B, [38797] = 0x1B9F, [38801] = 0x1BA0, [38802] = 0x1BA1, [38804] = 0x1BA2, [38808] = 0x10EC, [38816] = 0x0D4C, [38819] = 0x10ED, [38827] = 0x1BA3, [38829] = 0x0D4D, [38831] = 0x1BA4, [38834] = 0x1BA5, [38836] = 0x1BA6, [38886] = 0x0D4E, [38887] = 0x0D4F, [38889] = 0x0D50, [38890] = 0x1BA7, [38891] = 0x1BA8, [38892] = 0x1BA9, [38893] = 0x1BAA, [38899] = 0x0D51, [38901] = 0x10EE, [38902] = 0x1BAB, [39029] = 0x0D52, [39030] = 0x0D53, [39031] = 0x0D54, [39032] = 0x1BAC, [39033] = 0x0D55, [39034] = 0x0D56, [39035] = 0x0D57, [39036] = 0x1BAD, [39037] = 0x0D58, [39038] = 0x0D59, [39039] = 0x0D5A, [39040] = 0x1BAE, [39041] = 0x0D5B, [39042] = 0x10EF, [39043] = 0x1BAF, [39044] = 0x0D5C, [39045] = 0x0D5D, [39046] = 0x0D5E, [39047] = 0x0D5F, [39048] = 0x0D60, [39049] = 0x1BB0, [39050] = 0x0D61, [39052] = 0x1BB1, [39053] = 0x1BB2, [39055] = 0x1BB3, [39056] = 0x1BB4, [39057] = 0x0D62, [39059] = 0x10F0, [39060] = 0x1BB5, [39062] = 0x10F1, [39063] = 0x0D63, [39064] = 0x0D64, [39066] = 0x0D65, [39067] = 0x1BB6, [39068] = 0x0D66, [39069] = 0x0D67, [39070] = 0x1BB7, [39071] = 0x1BB8, [39072] = 0x0D68, [39073] = 0x1BB9, [39074] = 0x1BBA, [39076] = 0x0D69, [39077] = 0x1BBB, [39078] = 0x1BBC, [39079] = 0x1BBD, [39118] = 0x0D6A, [39121] = 0x1BBE, [39122] = 0x0E84, [39123] = 0x10F2, [39125] = 0x10F3, [39128] = 0x0D6B, [39129] = 0x0D6C, [39130] = 0x10F4, [39134] = 0x0D6D, [39135] = 0x0D6E, [39143] = 0x1BBF, [39144] = 0x1BC0, [39181] = 0x1BC1, [39184] = 0x0D6F, [39214] = 0x10F5, [39252] = 0x1BC2, [39253] = 0x10F6, [39267] = 0x1BC3, [39269] = 0x0E85, [39271] = 0x1BC4, [39272] = 0x1BC5, [39273] = 0x1BC6, [39274] = 0x0D70, [39275] = 0x1BC7, [39276] = 0x1BC8, [39277] = 0x0D71, [39278] = 0x0D72, [39279] = 0x10F7, [39280] = 0x0D73, [39281] = 0x0D74, [39282] = 0x0D75, [39284] = 0x1BC9, [39285] = 0x0D76, [39286] = 0x0D77, [39287] = 0x1BCA, [39290] = 0x10F8, [39292] = 0x0D78, [39293] = 0x1BCB, [39295] = 0x0D79, [39296] = 0x1BCC, [39297] = 0x10F9, [39300] = 0x1BCD, [39301] = 0x10FA, [39302] = 0x0D7A, [39303] = 0x1BCE, [39304] = 0x0D7B, [39306] = 0x1BCF, [39307] = 0x0D7C, [39309] = 0x1BD0, [39311] = 0x1BD1, [39312] = 0x1BD2, [39313] = 0x1BD3, [39314] = 0x0D7D, [39315] = 0x1BD4, [39316] = 0x1BD5, [39317] = 0x1BD6, [39318] = 0x0D7E, [39319] = 0x1BD7, [39320] = 0x1BD8, [39321] = 0x0D7F, [39333] = 0x0D80, [39336] = 0x0D81, [39532] = 0x0D82, [39533] = 0x10FB, [39534] = 0x0E86, [39535] = 0x0D83, [39536] = 0x0D84, [39537] = 0x0D85, [39539] = 0x0D86, [39540] = 0x10FC, [39541] = 0x1BD9, [39542] = 0x0D87, [39543] = 0x1BDA, [39544] = 0x1BDB, [39545] = 0x0D88, [39546] = 0x1BDC, [39547] = 0x0D89, [39548] = 0x0D8A, [39549] = 0x1BDD, [39550] = 0x0D8B, [39551] = 0x1BDE, [39552] = 0x1BDF, [39553] = 0x1BE0, [39554] = 0x0D8C, [39556] = 0x0D8D, [39557] = 0x1BE1, [39558] = 0x10FD, [39559] = 0x0E87, [39560] = 0x1BE2, [39562] = 0x1BE3, [39563] = 0x10FE, [39564] = 0x0D8E, [39567] = 0x1113, [39568] = 0x1BE4, [39569] = 0x0D8F, [39570] = 0x1BE5, [39571] = 0x1BE6, [39574] = 0x1BE7, [39575] = 0x0D90, [39576] = 0x1BE8, [39578] = 0x0D91, [39579] = 0x1BE9, [39580] = 0x10FF, [39581] = 0x1BEA, [39582] = 0x1BEB, [39583] = 0x1BEC, [39584] = 0x1BED, [39585] = 0x1100, [39586] = 0x1BEE, [39587] = 0x1BEF, [39588] = 0x0D92, [39589] = 0x1BF0, [39591] = 0x1BF1, [39592] = 0x0D93, [39600] = 0x1BF2, [39601] = 0x1BF3, [39606] = 0x1BF4, [39607] = 0x0D94, [39608] = 0x1101, [39610] = 0x1BF5, [39612] = 0x1102, [39616] = 0x1BF6, [39617] = 0x1BF7, [39618] = 0x1BF8, [39621] = 0x1103, [39627] = 0x1BF9, [39628] = 0x1BFA, [39633] = 0x1BFB, [39635] = 0x0D95, [39640] = 0x0D96, [39647] = 0x1BFC, [39649] = 0x1BFD, [39654] = 0x0D97, [39659] = 0x1BFE, [39661] = 0x1BFF, [39663] = 0x1C00, [39673] = 0x1C01, [39675] = 0x1C02, [39683] = 0x0D98, [39688] = 0x1C03, [39695] = 0x1C04, [39699] = 0x1C05, [39711] = 0x1C06, [39715] = 0x1C07, [39727] = 0x1C08, [39730] = 0x1C09, [39739] = 0x1C0A, [39740] = 0x0D99, [39745] = 0x0D9A, [39746] = 0x0D9B, [39747] = 0x1C0B, [39748] = 0x0D9C, [39749] = 0x0D9D, [39751] = 0x0D9E, [39752] = 0x1C0C, [39753] = 0x1C0D, [39757] = 0x0D9F, [39759] = 0x1C0E, [39761] = 0x1C0F, [39764] = 0x0DA0, [40060] = 0x0DA1, [40063] = 0x0DA2, [40065] = 0x0DA3, [40066] = 0x1C10, [40069] = 0x1C11, [40070] = 0x1C12, [40071] = 0x1C13, [40072] = 0x1104, [40075] = 0x1C14, [40077] = 0x0DA4, [40078] = 0x1C15, [40080] = 0x1C16, [40081] = 0x1C17, [40082] = 0x1C18, [40084] = 0x1C19, [40085] = 0x1C1A, [40090] = 0x1C1B, [40091] = 0x1C1C, [40092] = 0x0DA5, [40094] = 0x1C1D, [40095] = 0x1C1E, [40096] = 0x1C1F, [40097] = 0x1C20, [40098] = 0x1C21, [40099] = 0x1C22, [40100] = 0x0DA6, [40101] = 0x1C23, [40102] = 0x1C24, [40103] = 0x1C25, [40104] = 0x0DA7, [40105] = 0x1C26, [40107] = 0x1C27, [40109] = 0x1C28, [40110] = 0x1C29, [40112] = 0x1C2A, [40113] = 0x1C2B, [40114] = 0x1C2C, [40115] = 0x1C2D, [40116] = 0x1C2E, [40117] = 0x1C2F, [40118] = 0x0DA8, [40119] = 0x1C30, [40120] = 0x0DA9, [40122] = 0x1C31, [40123] = 0x1C32, [40124] = 0x1C33, [40125] = 0x1C34, [40131] = 0x1C35, [40132] = 0x0DAA, [40133] = 0x0DAB, [40134] = 0x1C36, [40135] = 0x1C37, [40138] = 0x1C38, [40139] = 0x1C39, [40140] = 0x1C3A, [40141] = 0x0DAC, [40142] = 0x1C3B, [40143] = 0x1C3C, [40144] = 0x1C3D, [40147] = 0x1C3E, [40148] = 0x0DAD, [40149] = 0x1C3F, [40150] = 0x1C40, [40151] = 0x0DAE, [40152] = 0x1C41, [40153] = 0x1C42, [40156] = 0x1C43, [40157] = 0x1C44, [40158] = 0x0DAF, [40159] = 0x1C45, [40162] = 0x1C46, [40479] = 0x0DB0, [40480] = 0x1C47, [40481] = 0x0DB1, [40482] = 0x1C48, [40483] = 0x0DB2, [40485] = 0x0DB3, [40486] = 0x0DB4, [40488] = 0x1C49, [40489] = 0x1C4A, [40490] = 0x1C4B, [40491] = 0x0DB5, [40492] = 0x1C4C, [40493] = 0x0DB6, [40495] = 0x0E88, [40497] = 0x1C4D, [40498] = 0x1C4E, [40499] = 0x1105, [40501] = 0x1C4F, [40502] = 0x1C50, [40503] = 0x1C51, [40504] = 0x1C52, [40505] = 0x1C53, [40506] = 0x1C54, [40509] = 0x1106, [40510] = 0x1C55, [40511] = 0x0E89, [40513] = 0x1C56, [40514] = 0x1C57, [40515] = 0x0E8A, [40516] = 0x1C58, [40517] = 0x0DB7, [40518] = 0x1C59, [40519] = 0x1C5A, [40520] = 0x1C5B, [40521] = 0x0DB8, [40522] = 0x1107, [40523] = 0x1C5C, [40524] = 0x1C5D, [40526] = 0x1C5E, [40527] = 0x1108, [40529] = 0x1C5F, [40533] = 0x1C60, [40535] = 0x1C61, [40536] = 0x1C62, [40538] = 0x1C63, [40539] = 0x1C64, [40540] = 0x1C65, [40542] = 0x1C66, [40547] = 0x1C67, [40548] = 0x0DB9, [40550] = 0x0DBA, [40551] = 0x1C68, [40552] = 0x1C69, [40553] = 0x1C6A, [40554] = 0x1C6B, [40555] = 0x1C6C, [40556] = 0x1C6D, [40557] = 0x1C6E, [40560] = 0x0DBB, [40561] = 0x1C6F, [40563] = 0x1C70, [40574] = 0x1C71, [40575] = 0x0DBC, [40578] = 0x1C72, [40583] = 0x1C73, [40584] = 0x1C74, [40587] = 0x1C75, [40594] = 0x0DBD, [40595] = 0x0DBE, [40605] = 0x0DBF, [40607] = 0x0DC0, [40614] = 0x0DC1, [40628] = 0x1C76, [40632] = 0x1C77, [40635] = 0x0DC2, [40637] = 0x1C78, [40638] = 0x1C79, [40644] = 0x0DC3, [40649] = 0x1C7A, [40653] = 0x0DC4, [40654] = 0x0DC5, [40655] = 0x0DC6, [40657] = 0x0DC7, [40660] = 0x1C7B, [40664] = 0x0DC8, [40667] = 0x0E8B, [40668] = 0x1C7C, [40669] = 0x1C7D, [40671] = 0x1C7E, [40672] = 0x1109, [40674] = 0x1C7F, [40677] = 0x1C80, [40679] = 0x1C81, [40681] = 0x1C82, [40682] = 0x1C83, [40687] = 0x0DC9, [40697] = 0x1C84, [40699] = 0x1C85, [40700] = 0x1C86, [40702] = 0x0E8C, [40715] = 0x1C87, [40717] = 0x1C88, [40718] = 0x0DCA, [40720] = 0x1C89, [40723] = 0x0DCB, [40727] = 0x1C8A, [40729] = 0x1C8B, [40736] = 0x0DCC, [40738] = 0x1C8C, [40748] = 0x0DCD, [40751] = 0x1C8D, [40759] = 0x1C8E, [40761] = 0x0DCE, [40763] = 0x0DCF, [40765] = 0x1C8F, [40766] = 0x0DD0, [40772] = 0x1C90, [40784] = 0x0DD1, [40785] = 0x1C91, [40831] = 0x0DD2, [40832] = 0x1C92, [40835] = 0x1C93, [40836] = 0x0DD3, [40837] = 0x0DD4, [40838] = 0x1C94, [40839] = 0x1C95, [40840] = 0x1C96, [40841] = 0x1C97, [40842] = 0x0DD5, [40843] = 0x1C98, [40844] = 0x0DD6, [40857] = 0x0DD7, [40858] = 0x1C99, [40859] = 0x1C9A, [40863] = 0x0DD8, [40864] = 0x1C9B, [44032] = 0x0400, [44033] = 0x0401, [44036] = 0x0402, [44039] = 0x0403, [44040] = 0x0404, [44041] = 0x0405, [44042] = 0x0406, [44048] = 0x0407, [44049] = 0x0408, [44050] = 0x0409, [44051] = 0x040A, [44052] = 0x040B, [44053] = 0x040C, [44054] = 0x040D, [44055] = 0x040E, [44057] = 0x0410, [44058] = 0x0411, [44059] = 0x0412, [44060] = 0x0413, [44061] = 0x0414, [44064] = 0x0415, [44068] = 0x0416, [44076] = 0x0417, [44077] = 0x0418, [44079] = 0x0419, [44080] = 0x041A, [44081] = 0x041B, [44088] = 0x041C, [44089] = 0x041D, [44092] = 0x041E, [44096] = 0x041F, [44107] = 0x0420, [44109] = 0x0421, [44116] = 0x0422, [44120] = 0x0423, [44124] = 0x0424, [44144] = 0x0425, [44145] = 0x0426, [44148] = 0x0427, [44151] = 0x0428, [44152] = 0x0429, [44154] = 0x042A, [44160] = 0x042B, [44161] = 0x042C, [44163] = 0x042D, [44164] = 0x042E, [44165] = 0x042F, [44166] = 0x0430, [44169] = 0x0431, [44170] = 0x0432, [44171] = 0x0433, [44172] = 0x0434, [44176] = 0x0435, [44180] = 0x0436, [44188] = 0x0437, [44189] = 0x0438, [44191] = 0x0439, [44192] = 0x043A, [44193] = 0x043B, [44200] = 0x043C, [44201] = 0x043D, [44202] = 0x043E, [44204] = 0x043F, [44207] = 0x0440, [44208] = 0x0441, [44216] = 0x0442, [44217] = 0x0443, [44219] = 0x0444, [44220] = 0x0445, [44221] = 0x0446, [44225] = 0x0447, [44228] = 0x0448, [44232] = 0x0449, [44236] = 0x044A, [44245] = 0x044B, [44247] = 0x044C, [44256] = 0x044D, [44257] = 0x044E, [44260] = 0x044F, [44263] = 0x0450, [44264] = 0x0451, [44266] = 0x0452, [44268] = 0x0453, [44271] = 0x0454, [44272] = 0x0455, [44273] = 0x0456, [44275] = 0x0457, [44277] = 0x0458, [44278] = 0x0459, [44284] = 0x045A, [44285] = 0x045B, [44288] = 0x045C, [44292] = 0x045D, [44294] = 0x045E, [44300] = 0x045F, [44301] = 0x0460, [44303] = 0x0461, [44305] = 0x0462, [44312] = 0x0463, [44316] = 0x0464, [44320] = 0x0465, [44329] = 0x0466, [44332] = 0x0467, [44333] = 0x0468, [44340] = 0x0469, [44341] = 0x046A, [44344] = 0x046B, [44348] = 0x046C, [44356] = 0x046D, [44357] = 0x046E, [44359] = 0x046F, [44361] = 0x0470, [44368] = 0x0471, [44372] = 0x0472, [44376] = 0x0473, [44385] = 0x0474, [44387] = 0x0475, [44396] = 0x0476, [44397] = 0x0477, [44400] = 0x0478, [44403] = 0x0479, [44404] = 0x047A, [44405] = 0x047B, [44406] = 0x047C, [44411] = 0x047D, [44412] = 0x047E, [44413] = 0x047F, [44415] = 0x0480, [44417] = 0x0481, [44418] = 0x0482, [44424] = 0x0483, [44425] = 0x0484, [44428] = 0x0485, [44432] = 0x0486, [44444] = 0x0487, [44445] = 0x0488, [44452] = 0x0489, [44471] = 0x048A, [44480] = 0x048B, [44481] = 0x048C, [44484] = 0x048D, [44488] = 0x048E, [44496] = 0x048F, [44497] = 0x0490, [44499] = 0x0491, [44508] = 0x0492, [44512] = 0x0493, [44516] = 0x0494, [44536] = 0x0495, [44537] = 0x0496, [44540] = 0x0497, [44543] = 0x0498, [44544] = 0x0499, [44545] = 0x049A, [44552] = 0x049B, [44553] = 0x049C, [44555] = 0x049D, [44557] = 0x049E, [44564] = 0x049F, [44592] = 0x04A0, [44593] = 0x04A1, [44596] = 0x04A2, [44599] = 0x04A3, [44600] = 0x04A4, [44602] = 0x04A5, [44608] = 0x04A6, [44609] = 0x04A7, [44611] = 0x04A8, [44613] = 0x04A9, [44614] = 0x04AA, [44618] = 0x04AB, [44620] = 0x04AC, [44621] = 0x04AD, [44622] = 0x04AE, [44624] = 0x04AF, [44628] = 0x04B0, [44630] = 0x04B1, [44636] = 0x04B2, [44637] = 0x04B3, [44639] = 0x04B4, [44640] = 0x04B5, [44641] = 0x04B6, [44645] = 0x04B7, [44648] = 0x04B8, [44649] = 0x04B9, [44652] = 0x04BA, [44656] = 0x04BB, [44664] = 0x04BC, [44665] = 0x04BD, [44667] = 0x04BE, [44668] = 0x04BF, [44669] = 0x04C0, [44676] = 0x04C1, [44677] = 0x04C2, [44684] = 0x04C3, [44732] = 0x04C4, [44733] = 0x04C5, [44734] = 0x04C6, [44736] = 0x04C7, [44740] = 0x04C8, [44748] = 0x04C9, [44749] = 0x04CA, [44751] = 0x04CB, [44752] = 0x04CC, [44753] = 0x04CD, [44760] = 0x04CE, [44761] = 0x04CF, [44764] = 0x04D0, [44776] = 0x04D1, [44779] = 0x04D2, [44781] = 0x04D3, [44788] = 0x04D4, [44792] = 0x04D5, [44796] = 0x04D6, [44807] = 0x04D7, [44808] = 0x04D8, [44813] = 0x04D9, [44816] = 0x04DA, [44844] = 0x04DB, [44845] = 0x04DC, [44848] = 0x04DD, [44850] = 0x04DE, [44852] = 0x04DF, [44860] = 0x04E0, [44861] = 0x04E1, [44863] = 0x04E2, [44865] = 0x04E3, [44866] = 0x04E4, [44867] = 0x04E5, [44872] = 0x04E6, [44873] = 0x04E7, [44880] = 0x04E8, [44892] = 0x04E9, [44893] = 0x04EA, [44900] = 0x04EB, [44901] = 0x04EC, [44921] = 0x04ED, [44928] = 0x04EE, [44932] = 0x04EF, [44936] = 0x04F0, [44944] = 0x04F1, [44945] = 0x04F2, [44949] = 0x04F3, [44956] = 0x04F4, [44984] = 0x04F5, [44985] = 0x04F6, [44988] = 0x04F7, [44992] = 0x04F8, [44999] = 0x04F9, [45000] = 0x04FA, [45001] = 0x04FB, [45003] = 0x04FC, [45005] = 0x04FD, [45006] = 0x04FE, [45012] = 0x04FF, [45020] = 0x0500, [45032] = 0x0501, [45033] = 0x0502, [45040] = 0x0503, [45041] = 0x0504, [45044] = 0x0505, [45048] = 0x0506, [45056] = 0x0507, [45057] = 0x0508, [45060] = 0x0509, [45068] = 0x050A, [45072] = 0x050B, [45076] = 0x050C, [45084] = 0x050D, [45085] = 0x050E, [45096] = 0x050F, [45124] = 0x0510, [45125] = 0x0511, [45128] = 0x0512, [45130] = 0x0513, [45132] = 0x0514, [45134] = 0x0515, [45139] = 0x0516, [45140] = 0x0517, [45141] = 0x0518, [45143] = 0x0519, [45145] = 0x051A, [45149] = 0x051B, [45180] = 0x051C, [45181] = 0x051D, [45184] = 0x051E, [45188] = 0x051F, [45196] = 0x0520, [45197] = 0x0521, [45199] = 0x0522, [45201] = 0x0523, [45208] = 0x0524, [45209] = 0x0525, [45210] = 0x0526, [45212] = 0x0527, [45215] = 0x0528, [45216] = 0x0529, [45217] = 0x052A, [45218] = 0x052B, [45224] = 0x052C, [45225] = 0x052D, [45227] = 0x052E, [45228] = 0x052F, [45229] = 0x0530, [45230] = 0x0531, [45231] = 0x0532, [45233] = 0x0533, [45235] = 0x0534, [45236] = 0x0535, [45237] = 0x0536, [45240] = 0x0537, [45244] = 0x0538, [45252] = 0x0539, [45253] = 0x053A, [45255] = 0x053B, [45256] = 0x053C, [45257] = 0x053D, [45264] = 0x053E, [45265] = 0x053F, [45268] = 0x0540, [45272] = 0x0541, [45280] = 0x0542, [45285] = 0x0543, [45320] = 0x0544, [45321] = 0x0545, [45323] = 0x0546, [45324] = 0x0547, [45328] = 0x0548, [45330] = 0x0549, [45331] = 0x054A, [45336] = 0x054B, [45337] = 0x054C, [45339] = 0x054D, [45340] = 0x054E, [45341] = 0x054F, [45347] = 0x0550, [45348] = 0x0551, [45349] = 0x0552, [45352] = 0x0553, [45356] = 0x0554, [45364] = 0x0555, [45365] = 0x0556, [45367] = 0x0557, [45368] = 0x0558, [45369] = 0x0559, [45376] = 0x055A, [45377] = 0x055B, [45380] = 0x055C, [45384] = 0x055D, [45392] = 0x055E, [45393] = 0x055F, [45396] = 0x0560, [45397] = 0x0561, [45400] = 0x0562, [45404] = 0x0563, [45408] = 0x0564, [45432] = 0x0565, [45433] = 0x0566, [45436] = 0x0567, [45440] = 0x0568, [45442] = 0x0569, [45448] = 0x056A, [45449] = 0x056B, [45451] = 0x056C, [45453] = 0x056D, [45458] = 0x056E, [45459] = 0x056F, [45460] = 0x0570, [45464] = 0x0571, [45468] = 0x0572, [45480] = 0x0573, [45516] = 0x0574, [45520] = 0x0575, [45524] = 0x0576, [45532] = 0x0577, [45533] = 0x0578, [45535] = 0x0579, [45544] = 0x057A, [45545] = 0x057B, [45548] = 0x057C, [45552] = 0x057D, [45561] = 0x057E, [45563] = 0x057F, [45565] = 0x0580, [45572] = 0x0581, [45573] = 0x0582, [45576] = 0x0583, [45579] = 0x0584, [45580] = 0x0585, [45588] = 0x0586, [45589] = 0x0587, [45591] = 0x0588, [45593] = 0x0589, [45600] = 0x058A, [45620] = 0x058B, [45628] = 0x058C, [45656] = 0x058D, [45660] = 0x058E, [45664] = 0x058F, [45672] = 0x0590, [45673] = 0x0591, [45684] = 0x0592, [45685] = 0x0593, [45692] = 0x0594, [45700] = 0x0595, [45701] = 0x0596, [45705] = 0x0597, [45712] = 0x0598, [45713] = 0x0599, [45716] = 0x059A, [45720] = 0x059B, [45721] = 0x059C, [45722] = 0x059D, [45728] = 0x059E, [45729] = 0x059F, [45731] = 0x05A0, [45733] = 0x05A1, [45734] = 0x05A2, [45738] = 0x05A3, [45740] = 0x05A4, [45744] = 0x05A5, [45748] = 0x05A6, [45768] = 0x05A7, [45769] = 0x05A8, [45772] = 0x05A9, [45776] = 0x05AA, [45778] = 0x05AB, [45784] = 0x05AC, [45785] = 0x05AD, [45787] = 0x05AE, [45789] = 0x05AF, [45794] = 0x05B0, [45796] = 0x05B1, [45797] = 0x05B2, [45798] = 0x05B3, [45800] = 0x05B4, [45803] = 0x05B5, [45804] = 0x05B6, [45805] = 0x05B7, [45806] = 0x05B8, [45807] = 0x05B9, [45811] = 0x05BA, [45812] = 0x05BB, [45813] = 0x05BC, [45815] = 0x05BD, [45816] = 0x05BE, [45817] = 0x05BF, [45818] = 0x05C0, [45819] = 0x05C1, [45823] = 0x05C2, [45824] = 0x05C3, [45825] = 0x05C4, [45828] = 0x05C5, [45832] = 0x05C6, [45840] = 0x05C7, [45841] = 0x05C8, [45843] = 0x05C9, [45844] = 0x05CA, [45845] = 0x05CB, [45852] = 0x05CC, [45908] = 0x05CD, [45909] = 0x05CE, [45910] = 0x05CF, [45912] = 0x05D0, [45915] = 0x05D1, [45916] = 0x05D2, [45918] = 0x05D3, [45919] = 0x05D4, [45924] = 0x05D5, [45925] = 0x05D6, [45927] = 0x05D7, [45929] = 0x05D8, [45931] = 0x05D9, [45934] = 0x05DA, [45936] = 0x05DB, [45937] = 0x05DC, [45940] = 0x05DD, [45944] = 0x05DE, [45952] = 0x05DF, [45953] = 0x05E0, [45955] = 0x05E1, [45956] = 0x05E2, [45957] = 0x05E3, [45964] = 0x05E4, [45968] = 0x05E5, [45972] = 0x05E6, [45984] = 0x05E7, [45985] = 0x05E8, [45992] = 0x05E9, [45996] = 0x05EA, [46020] = 0x05EB, [46021] = 0x05EC, [46024] = 0x05ED, [46027] = 0x05EE, [46028] = 0x05EF, [46030] = 0x05F0, [46032] = 0x05F1, [46036] = 0x05F2, [46037] = 0x05F3, [46039] = 0x05F4, [46041] = 0x05F5, [46043] = 0x05F6, [46045] = 0x05F7, [46048] = 0x05F8, [46052] = 0x05F9, [46056] = 0x05FA, [46076] = 0x05FB, [46096] = 0x05FC, [46104] = 0x05FD, [46108] = 0x05FE, [46112] = 0x05FF, [46120] = 0x0600, [46121] = 0x0601, [46123] = 0x0602, [46132] = 0x0603, [46160] = 0x0604, [46161] = 0x0605, [46164] = 0x0606, [46168] = 0x0607, [46176] = 0x0608, [46177] = 0x0609, [46179] = 0x060A, [46181] = 0x060B, [46188] = 0x060C, [46208] = 0x060D, [46216] = 0x060E, [46237] = 0x060F, [46244] = 0x0610, [46248] = 0x0611, [46252] = 0x0612, [46261] = 0x0613, [46263] = 0x0614, [46265] = 0x0615, [46272] = 0x0616, [46276] = 0x0617, [46280] = 0x0618, [46288] = 0x0619, [46293] = 0x061A, [46300] = 0x061B, [46301] = 0x061C, [46304] = 0x061D, [46307] = 0x061E, [46308] = 0x061F, [46310] = 0x0620, [46316] = 0x0621, [46317] = 0x0622, [46319] = 0x0623, [46321] = 0x0624, [46328] = 0x0625, [46356] = 0x0626, [46357] = 0x0627, [46360] = 0x0628, [46363] = 0x0629, [46364] = 0x062A, [46372] = 0x062B, [46373] = 0x062C, [46375] = 0x062D, [46376] = 0x062E, [46377] = 0x062F, [46378] = 0x0630, [46384] = 0x0631, [46385] = 0x0632, [46388] = 0x0633, [46392] = 0x0634, [46400] = 0x0635, [46401] = 0x0636, [46403] = 0x0637, [46404] = 0x0638, [46405] = 0x0639, [46411] = 0x063A, [46412] = 0x063B, [46413] = 0x063C, [46416] = 0x063D, [46420] = 0x063E, [46428] = 0x063F, [46429] = 0x0640, [46431] = 0x0641, [46432] = 0x0642, [46433] = 0x0643, [46496] = 0x0644, [46497] = 0x0645, [46500] = 0x0646, [46504] = 0x0647, [46506] = 0x0648, [46507] = 0x0649, [46512] = 0x064A, [46513] = 0x064B, [46515] = 0x064C, [46516] = 0x064D, [46517] = 0x064E, [46523] = 0x064F, [46524] = 0x0650, [46525] = 0x0651, [46528] = 0x0652, [46532] = 0x0653, [46540] = 0x0654, [46541] = 0x0655, [46543] = 0x0656, [46544] = 0x0657, [46545] = 0x0658, [46552] = 0x0659, [46572] = 0x065A, [46608] = 0x065B, [46609] = 0x065C, [46612] = 0x065D, [46616] = 0x065E, [46629] = 0x065F, [46636] = 0x0660, [46644] = 0x0661, [46664] = 0x0662, [46692] = 0x0663, [46696] = 0x0664, [46748] = 0x0665, [46749] = 0x0666, [46752] = 0x0667, [46756] = 0x0668, [46763] = 0x0669, [46764] = 0x066A, [46769] = 0x066B, [46804] = 0x066C, [46832] = 0x066D, [46836] = 0x066E, [46840] = 0x066F, [46848] = 0x0670, [46849] = 0x0671, [46853] = 0x0672, [46888] = 0x0673, [46889] = 0x0674, [46892] = 0x0675, [46895] = 0x0676, [46896] = 0x0677, [46904] = 0x0678, [46905] = 0x0679, [46907] = 0x067A, [46916] = 0x067B, [46920] = 0x067C, [46924] = 0x067D, [46932] = 0x067E, [46933] = 0x067F, [46944] = 0x0680, [46948] = 0x0681, [46952] = 0x0682, [46960] = 0x0683, [46961] = 0x0684, [46963] = 0x0685, [46965] = 0x0686, [46972] = 0x0687, [46973] = 0x0688, [46976] = 0x0689, [46980] = 0x068A, [46988] = 0x068B, [46989] = 0x068C, [46991] = 0x068D, [46992] = 0x068E, [46993] = 0x068F, [46994] = 0x0690, [46998] = 0x0691, [46999] = 0x0692, [47000] = 0x0693, [47001] = 0x0694, [47004] = 0x0695, [47008] = 0x0696, [47016] = 0x0697, [47017] = 0x0698, [47019] = 0x0699, [47020] = 0x069A, [47021] = 0x069B, [47028] = 0x069C, [47029] = 0x069D, [47032] = 0x069E, [47047] = 0x069F, [47049] = 0x06A0, [47084] = 0x06A1, [47085] = 0x06A2, [47088] = 0x06A3, [47092] = 0x06A4, [47100] = 0x06A5, [47101] = 0x06A6, [47103] = 0x06A7, [47104] = 0x06A8, [47105] = 0x06A9, [47111] = 0x06AA, [47112] = 0x06AB, [47113] = 0x06AC, [47116] = 0x06AD, [47120] = 0x06AE, [47128] = 0x06AF, [47129] = 0x06B0, [47131] = 0x06B1, [47133] = 0x06B2, [47140] = 0x06B3, [47141] = 0x06B4, [47144] = 0x06B5, [47148] = 0x06B6, [47156] = 0x06B7, [47157] = 0x06B8, [47159] = 0x06B9, [47160] = 0x06BA, [47161] = 0x06BB, [47168] = 0x06BC, [47172] = 0x06BD, [47185] = 0x06BE, [47187] = 0x06BF, [47196] = 0x06C0, [47197] = 0x06C1, [47200] = 0x06C2, [47204] = 0x06C3, [47212] = 0x06C4, [47213] = 0x06C5, [47215] = 0x06C6, [47217] = 0x06C7, [47224] = 0x06C8, [47228] = 0x06C9, [47245] = 0x06CA, [47252] = 0x0D61, [47272] = 0x06CB, [47280] = 0x06CC, [47284] = 0x06CD, [47288] = 0x06CE, [47296] = 0x06CF, [47297] = 0x06D0, [47299] = 0x06D1, [47301] = 0x06D2, [47308] = 0x06D3, [47312] = 0x06D4, [47316] = 0x06D5, [47325] = 0x06D6, [47327] = 0x06D7, [47329] = 0x06D8, [47336] = 0x06D9, [47337] = 0x06DA, [47340] = 0x06DB, [47344] = 0x06DC, [47352] = 0x06DD, [47353] = 0x06DE, [47355] = 0x06DF, [47357] = 0x06E0, [47364] = 0x06E1, [47384] = 0x06E2, [47392] = 0x06E3, [47420] = 0x06E4, [47421] = 0x06E5, [47424] = 0x06E6, [47428] = 0x06E7, [47436] = 0x06E8, [47439] = 0x06E9, [47441] = 0x06EA, [47448] = 0x06EB, [47449] = 0x06EC, [47452] = 0x06ED, [47456] = 0x06EE, [47464] = 0x06EF, [47465] = 0x06F0, [47467] = 0x06F1, [47469] = 0x06F2, [47476] = 0x06F3, [47477] = 0x06F4, [47480] = 0x06F5, [47484] = 0x06F6, [47492] = 0x06F7, [47493] = 0x06F8, [47495] = 0x06F9, [47497] = 0x06FA, [47498] = 0x06FB, [47501] = 0x06FC, [47502] = 0x06FD, [47532] = 0x06FE, [47533] = 0x06FF, [47536] = 0x0700, [47540] = 0x0701, [47548] = 0x0702, [47549] = 0x0703, [47551] = 0x0704, [47553] = 0x0705, [47560] = 0x0706, [47561] = 0x0707, [47564] = 0x0708, [47566] = 0x0709, [47567] = 0x070A, [47568] = 0x070B, [47569] = 0x070C, [47570] = 0x070D, [47576] = 0x070E, [47577] = 0x070F, [47579] = 0x0710, [47581] = 0x0711, [47582] = 0x0712, [47585] = 0x0713, [47587] = 0x0714, [47588] = 0x0715, [47589] = 0x0716, [47592] = 0x0717, [47596] = 0x0718, [47604] = 0x0719, [47605] = 0x071A, [47607] = 0x071B, [47608] = 0x071C, [47609] = 0x071D, [47610] = 0x071E, [47616] = 0x071F, [47617] = 0x0720, [47624] = 0x0721, [47637] = 0x0722, [47672] = 0x0723, [47673] = 0x0724, [47676] = 0x0725, [47680] = 0x0726, [47682] = 0x0727, [47688] = 0x0728, [47689] = 0x0729, [47691] = 0x072A, [47693] = 0x072B, [47694] = 0x072C, [47699] = 0x072D, [47700] = 0x072E, [47701] = 0x072F, [47704] = 0x0730, [47708] = 0x0731, [47716] = 0x0732, [47717] = 0x0733, [47719] = 0x0734, [47720] = 0x0735, [47721] = 0x0736, [47728] = 0x0737, [47729] = 0x0738, [47732] = 0x0739, [47736] = 0x073A, [47747] = 0x073B, [47748] = 0x073C, [47749] = 0x073D, [47751] = 0x073E, [47756] = 0x073F, [47784] = 0x0740, [47785] = 0x0741, [47787] = 0x0742, [47788] = 0x0743, [47792] = 0x0744, [47794] = 0x0745, [47800] = 0x0746, [47801] = 0x0747, [47803] = 0x0748, [47805] = 0x0749, [47812] = 0x074A, [47816] = 0x074B, [47832] = 0x074C, [47833] = 0x074D, [47868] = 0x074E, [47872] = 0x074F, [47876] = 0x0750, [47885] = 0x0751, [47887] = 0x0752, [47889] = 0x0753, [47896] = 0x0754, [47900] = 0x0755, [47904] = 0x0756, [47913] = 0x0757, [47915] = 0x0758, [47924] = 0x0759, [47925] = 0x075A, [47926] = 0x075B, [47928] = 0x075C, [47931] = 0x075D, [47932] = 0x075E, [47933] = 0x075F, [47934] = 0x0760, [47940] = 0x0761, [47941] = 0x0762, [47943] = 0x0763, [47945] = 0x0764, [47949] = 0x0765, [47951] = 0x0766, [47952] = 0x0767, [47956] = 0x0768, [47960] = 0x0769, [47969] = 0x076A, [47971] = 0x076B, [47980] = 0x076C, [48008] = 0x076D, [48012] = 0x076E, [48016] = 0x076F, [48036] = 0x0770, [48040] = 0x0771, [48044] = 0x0772, [48052] = 0x0773, [48055] = 0x0774, [48064] = 0x0775, [48068] = 0x0776, [48072] = 0x0777, [48080] = 0x0778, [48083] = 0x0779, [48120] = 0x077A, [48121] = 0x077B, [48124] = 0x077C, [48127] = 0x077D, [48128] = 0x077E, [48130] = 0x077F, [48136] = 0x0780, [48137] = 0x0781, [48139] = 0x0782, [48140] = 0x0783, [48141] = 0x0784, [48143] = 0x0785, [48145] = 0x0786, [48148] = 0x0787, [48149] = 0x0788, [48150] = 0x0789, [48151] = 0x078A, [48152] = 0x078B, [48155] = 0x078C, [48156] = 0x078D, [48157] = 0x078E, [48158] = 0x078F, [48159] = 0x0790, [48164] = 0x0791, [48165] = 0x0792, [48167] = 0x0793, [48169] = 0x0794, [48173] = 0x0795, [48176] = 0x0796, [48177] = 0x0797, [48180] = 0x0798, [48184] = 0x0799, [48192] = 0x079A, [48193] = 0x079B, [48195] = 0x079C, [48196] = 0x079D, [48197] = 0x079E, [48201] = 0x079F, [48204] = 0x07A0, [48205] = 0x07A1, [48208] = 0x07A2, [48221] = 0x07A3, [48260] = 0x07A4, [48261] = 0x07A5, [48264] = 0x07A6, [48267] = 0x07A7, [48268] = 0x07A8, [48270] = 0x07A9, [48276] = 0x07AA, [48277] = 0x07AB, [48279] = 0x07AC, [48281] = 0x07AD, [48282] = 0x07AE, [48288] = 0x07AF, [48289] = 0x07B0, [48292] = 0x07B1, [48295] = 0x07B2, [48296] = 0x07B3, [48304] = 0x07B4, [48305] = 0x07B5, [48307] = 0x07B6, [48308] = 0x07B7, [48309] = 0x07B8, [48316] = 0x07B9, [48317] = 0x07BA, [48320] = 0x07BB, [48324] = 0x07BC, [48333] = 0x07BD, [48335] = 0x07BE, [48336] = 0x07BF, [48337] = 0x07C0, [48341] = 0x07C1, [48344] = 0x07C2, [48348] = 0x07C3, [48372] = 0x07C4, [48373] = 0x07C5, [48374] = 0x07C6, [48376] = 0x07C7, [48380] = 0x07C8, [48388] = 0x07C9, [48389] = 0x07CA, [48391] = 0x07CB, [48393] = 0x07CC, [48400] = 0x07CD, [48404] = 0x07CE, [48420] = 0x07CF, [48428] = 0x07D0, [48448] = 0x07D1, [48456] = 0x07D2, [48457] = 0x07D3, [48460] = 0x07D4, [48464] = 0x07D5, [48472] = 0x07D6, [48473] = 0x07D7, [48484] = 0x07D8, [48488] = 0x07D9, [48512] = 0x07DA, [48513] = 0x07DB, [48516] = 0x07DC, [48519] = 0x07DD, [48520] = 0x07DE, [48521] = 0x07DF, [48522] = 0x07E0, [48528] = 0x07E1, [48529] = 0x07E2, [48531] = 0x07E3, [48533] = 0x07E4, [48537] = 0x07E5, [48538] = 0x07E6, [48540] = 0x07E7, [48548] = 0x07E8, [48560] = 0x07E9, [48568] = 0x07EA, [48596] = 0x07EB, [48597] = 0x07EC, [48600] = 0x07ED, [48604] = 0x07EE, [48617] = 0x07EF, [48624] = 0x07F0, [48628] = 0x07F1, [48632] = 0x07F2, [48640] = 0x07F3, [48643] = 0x07F4, [48645] = 0x07F5, [48652] = 0x07F6, [48653] = 0x07F7, [48656] = 0x07F8, [48660] = 0x07F9, [48668] = 0x07FA, [48669] = 0x07FB, [48671] = 0x07FC, [48708] = 0x07FD, [48709] = 0x07FE, [48712] = 0x07FF, [48716] = 0x0800, [48718] = 0x0801, [48724] = 0x0802, [48725] = 0x0803, [48727] = 0x0804, [48729] = 0x0805, [48730] = 0x0806, [48731] = 0x0807, [48736] = 0x0808, [48737] = 0x0809, [48740] = 0x080A, [48744] = 0x080B, [48746] = 0x080C, [48752] = 0x080D, [48753] = 0x080E, [48755] = 0x080F, [48756] = 0x0810, [48757] = 0x0811, [48763] = 0x0812, [48764] = 0x0813, [48765] = 0x0814, [48768] = 0x0815, [48772] = 0x0816, [48780] = 0x0817, [48781] = 0x0818, [48783] = 0x0819, [48784] = 0x081A, [48785] = 0x081B, [48792] = 0x081C, [48793] = 0x081D, [48808] = 0x081E, [48848] = 0x081F, [48849] = 0x0820, [48852] = 0x0821, [48855] = 0x0822, [48856] = 0x0823, [48864] = 0x0824, [48867] = 0x0825, [48868] = 0x0826, [48869] = 0x0827, [48876] = 0x0828, [48897] = 0x0829, [48904] = 0x082A, [48905] = 0x082B, [48920] = 0x082C, [48921] = 0x082D, [48923] = 0x082E, [48924] = 0x082F, [48925] = 0x0830, [48960] = 0x0831, [48961] = 0x0832, [48964] = 0x0833, [48968] = 0x0834, [48976] = 0x0835, [48977] = 0x0836, [48981] = 0x0837, [49044] = 0x0838, [49072] = 0x0839, [49093] = 0x083A, [49100] = 0x083B, [49101] = 0x083C, [49104] = 0x083D, [49108] = 0x083E, [49116] = 0x083F, [49119] = 0x0840, [49121] = 0x0841, [49212] = 0x0842, [49233] = 0x0843, [49240] = 0x0844, [49244] = 0x0845, [49248] = 0x0846, [49256] = 0x0847, [49257] = 0x0848, [49296] = 0x0849, [49297] = 0x084A, [49300] = 0x084B, [49304] = 0x084C, [49312] = 0x084D, [49313] = 0x084E, [49315] = 0x084F, [49317] = 0x0850, [49324] = 0x0851, [49325] = 0x0852, [49327] = 0x0853, [49328] = 0x0854, [49331] = 0x0855, [49332] = 0x0856, [49333] = 0x0857, [49334] = 0x0858, [49340] = 0x0859, [49341] = 0x085A, [49343] = 0x085B, [49344] = 0x085C, [49345] = 0x085D, [49349] = 0x085E, [49352] = 0x085F, [49353] = 0x0860, [49356] = 0x0861, [49360] = 0x0862, [49368] = 0x0863, [49369] = 0x0864, [49371] = 0x0865, [49372] = 0x0866, [49373] = 0x0867, [49380] = 0x0868, [49381] = 0x0869, [49384] = 0x086A, [49388] = 0x086B, [49396] = 0x086C, [49397] = 0x086D, [49399] = 0x086E, [49401] = 0x086F, [49408] = 0x0870, [49412] = 0x0871, [49416] = 0x0872, [49424] = 0x0873, [49429] = 0x0874, [49436] = 0x0875, [49437] = 0x0876, [49438] = 0x0877, [49439] = 0x0878, [49440] = 0x0879, [49443] = 0x087A, [49444] = 0x087B, [49446] = 0x087C, [49447] = 0x087D, [49452] = 0x087E, [49453] = 0x087F, [49455] = 0x0880, [49456] = 0x0881, [49457] = 0x0882, [49462] = 0x0883, [49464] = 0x0884, [49465] = 0x0885, [49468] = 0x0886, [49472] = 0x0887, [49480] = 0x0888, [49481] = 0x0889, [49483] = 0x088A, [49484] = 0x088B, [49485] = 0x088C, [49492] = 0x088D, [49493] = 0x088E, [49496] = 0x088F, [49500] = 0x0890, [49508] = 0x0891, [49509] = 0x0892, [49511] = 0x0893, [49512] = 0x0894, [49513] = 0x0895, [49520] = 0x0896, [49524] = 0x0897, [49528] = 0x0898, [49541] = 0x0899, [49548] = 0x089A, [49549] = 0x089B, [49550] = 0x089C, [49552] = 0x089D, [49556] = 0x089E, [49558] = 0x089F, [49564] = 0x08A0, [49565] = 0x08A1, [49567] = 0x08A2, [49569] = 0x08A3, [49573] = 0x08A4, [49576] = 0x08A5, [49577] = 0x08A6, [49580] = 0x08A7, [49584] = 0x08A8, [49597] = 0x08A9, [49604] = 0x08AA, [49608] = 0x08AB, [49612] = 0x08AC, [49620] = 0x08AD, [49623] = 0x08AE, [49624] = 0x08AF, [49632] = 0x08B0, [49636] = 0x08B1, [49640] = 0x08B2, [49648] = 0x08B3, [49649] = 0x08B4, [49651] = 0x08B5, [49660] = 0x08B6, [49661] = 0x08B7, [49664] = 0x08B8, [49668] = 0x08B9, [49676] = 0x08BA, [49677] = 0x08BB, [49679] = 0x08BC, [49681] = 0x08BD, [49688] = 0x08BE, [49689] = 0x08BF, [49692] = 0x08C0, [49695] = 0x08C1, [49696] = 0x08C2, [49704] = 0x08C3, [49705] = 0x08C4, [49707] = 0x08C5, [49709] = 0x08C6, [49711] = 0x08C7, [49713] = 0x08C8, [49714] = 0x08C9, [49716] = 0x08CA, [49736] = 0x08CB, [49744] = 0x08CC, [49745] = 0x08CD, [49748] = 0x08CE, [49752] = 0x08CF, [49760] = 0x08D0, [49765] = 0x08D1, [49772] = 0x08D2, [49773] = 0x08D3, [49776] = 0x08D4, [49780] = 0x08D5, [49788] = 0x08D6, [49789] = 0x08D7, [49791] = 0x08D8, [49793] = 0x08D9, [49800] = 0x08DA, [49801] = 0x08DB, [49808] = 0x08DC, [49816] = 0x08DD, [49819] = 0x08DE, [49821] = 0x08DF, [49828] = 0x08E0, [49829] = 0x08E1, [49832] = 0x08E2, [49836] = 0x08E3, [49837] = 0x08E4, [49844] = 0x08E5, [49845] = 0x08E6, [49847] = 0x08E7, [49849] = 0x08E8, [49884] = 0x08E9, [49885] = 0x08EA, [49888] = 0x08EB, [49891] = 0x08EC, [49892] = 0x08ED, [49899] = 0x08EE, [49900] = 0x08EF, [49901] = 0x08F0, [49903] = 0x08F1, [49905] = 0x08F2, [49910] = 0x08F3, [49912] = 0x08F4, [49913] = 0x08F5, [49915] = 0x08F6, [49916] = 0x08F7, [49920] = 0x08F8, [49928] = 0x08F9, [49929] = 0x08FA, [49932] = 0x08FB, [49933] = 0x08FC, [49939] = 0x08FD, [49940] = 0x08FE, [49941] = 0x08FF, [49944] = 0x0900, [49948] = 0x0901, [49956] = 0x0902, [49957] = 0x0903, [49960] = 0x0904, [49961] = 0x0905, [49968] = 0x0D62, [49989] = 0x0906, [50024] = 0x0907, [50025] = 0x0908, [50028] = 0x0909, [50032] = 0x090A, [50034] = 0x090B, [50040] = 0x090C, [50041] = 0x090D, [50044] = 0x090E, [50045] = 0x090F, [50052] = 0x0910, [50056] = 0x0911, [50060] = 0x0912, [50108] = 0x0D63, [50112] = 0x0913, [50136] = 0x0914, [50137] = 0x0915, [50140] = 0x0916, [50143] = 0x0917, [50144] = 0x0918, [50146] = 0x0919, [50152] = 0x091A, [50153] = 0x091B, [50157] = 0x091C, [50164] = 0x091D, [50165] = 0x091E, [50168] = 0x091F, [50184] = 0x0920, [50192] = 0x0921, [50212] = 0x0922, [50220] = 0x0923, [50224] = 0x0924, [50228] = 0x0925, [50236] = 0x0926, [50237] = 0x0927, [50248] = 0x0928, [50276] = 0x0929, [50277] = 0x092A, [50280] = 0x092B, [50284] = 0x092C, [50292] = 0x092D, [50293] = 0x092E, [50297] = 0x092F, [50304] = 0x0930, [50324] = 0x0931, [50332] = 0x0932, [50360] = 0x0933, [50364] = 0x0934, [50388] = 0x0D64, [50409] = 0x0935, [50416] = 0x0936, [50417] = 0x0937, [50420] = 0x0938, [50424] = 0x0939, [50426] = 0x093A, [50431] = 0x093B, [50432] = 0x093C, [50433] = 0x093D, [50444] = 0x093E, [50448] = 0x093F, [50452] = 0x0940, [50460] = 0x0941, [50472] = 0x0942, [50473] = 0x0943, [50476] = 0x0944, [50480] = 0x0945, [50488] = 0x0946, [50489] = 0x0947, [50491] = 0x0948, [50493] = 0x0949, [50500] = 0x094A, [50501] = 0x094B, [50504] = 0x094C, [50505] = 0x094D, [50506] = 0x094E, [50508] = 0x094F, [50509] = 0x0950, [50510] = 0x0951, [50515] = 0x0952, [50516] = 0x0953, [50517] = 0x0954, [50519] = 0x0955, [50520] = 0x0956, [50521] = 0x0957, [50525] = 0x0958, [50526] = 0x0959, [50528] = 0x095A, [50529] = 0x095B, [50532] = 0x095C, [50536] = 0x095D, [50544] = 0x095E, [50545] = 0x095F, [50547] = 0x0960, [50548] = 0x0961, [50549] = 0x0962, [50556] = 0x0963, [50557] = 0x0964, [50560] = 0x0965, [50564] = 0x0966, [50567] = 0x0967, [50572] = 0x0968, [50573] = 0x0969, [50575] = 0x096A, [50577] = 0x096B, [50581] = 0x096C, [50583] = 0x096D, [50584] = 0x096E, [50588] = 0x096F, [50592] = 0x0970, [50601] = 0x0971, [50612] = 0x0972, [50613] = 0x0973, [50616] = 0x0974, [50617] = 0x0975, [50619] = 0x0976, [50620] = 0x0977, [50621] = 0x0978, [50622] = 0x0979, [50628] = 0x097A, [50629] = 0x097B, [50630] = 0x097C, [50631] = 0x097D, [50632] = 0x097E, [50633] = 0x097F, [50634] = 0x0980, [50636] = 0x0981, [50638] = 0x0982, [50640] = 0x0983, [50641] = 0x0984, [50644] = 0x0985, [50648] = 0x0986, [50656] = 0x0987, [50657] = 0x0988, [50659] = 0x0989, [50661] = 0x098A, [50668] = 0x098B, [50669] = 0x098C, [50670] = 0x098D, [50672] = 0x098E, [50676] = 0x098F, [50678] = 0x0990, [50679] = 0x0991, [50684] = 0x0992, [50685] = 0x0993, [50686] = 0x0994, [50687] = 0x0995, [50688] = 0x0996, [50689] = 0x0997, [50693] = 0x0998, [50694] = 0x0999, [50695] = 0x099A, [50696] = 0x099B, [50700] = 0x099C, [50704] = 0x099D, [50712] = 0x099E, [50713] = 0x099F, [50715] = 0x09A0, [50716] = 0x09A1, [50724] = 0x09A2, [50725] = 0x09A3, [50728] = 0x09A4, [50732] = 0x09A5, [50733] = 0x09A6, [50734] = 0x09A7, [50736] = 0x09A8, [50739] = 0x09A9, [50740] = 0x09AA, [50741] = 0x09AB, [50743] = 0x09AC, [50745] = 0x09AD, [50747] = 0x09AE, [50752] = 0x09AF, [50753] = 0x09B0, [50756] = 0x09B1, [50760] = 0x09B2, [50768] = 0x09B3, [50769] = 0x09B4, [50771] = 0x09B5, [50772] = 0x09B6, [50773] = 0x09B7, [50780] = 0x09B8, [50781] = 0x09B9, [50784] = 0x09BA, [50796] = 0x09BB, [50799] = 0x09BC, [50801] = 0x09BD, [50808] = 0x09BE, [50809] = 0x09BF, [50812] = 0x09C0, [50816] = 0x09C1, [50824] = 0x09C2, [50825] = 0x09C3, [50827] = 0x09C4, [50829] = 0x09C5, [50836] = 0x09C6, [50837] = 0x09C7, [50840] = 0x09C8, [50844] = 0x09C9, [50852] = 0x09CA, [50853] = 0x09CB, [50855] = 0x09CC, [50857] = 0x09CD, [50864] = 0x09CE, [50865] = 0x09CF, [50868] = 0x09D0, [50872] = 0x09D1, [50873] = 0x09D2, [50874] = 0x09D3, [50880] = 0x09D4, [50881] = 0x09D5, [50883] = 0x09D6, [50885] = 0x09D7, [50892] = 0x09D8, [50893] = 0x09D9, [50896] = 0x09DA, [50900] = 0x09DB, [50908] = 0x09DC, [50909] = 0x09DD, [50912] = 0x09DE, [50913] = 0x09DF, [50920] = 0x09E0, [50921] = 0x09E1, [50924] = 0x09E2, [50928] = 0x09E3, [50936] = 0x09E4, [50937] = 0x09E5, [50941] = 0x09E6, [50948] = 0x09E7, [50949] = 0x09E8, [50952] = 0x09E9, [50956] = 0x09EA, [50964] = 0x09EB, [50965] = 0x09EC, [50967] = 0x09ED, [50969] = 0x09EE, [50976] = 0x09EF, [50977] = 0x09F0, [50980] = 0x09F1, [50984] = 0x09F2, [50992] = 0x09F3, [50993] = 0x09F4, [50995] = 0x09F5, [50997] = 0x09F6, [50999] = 0x09F7, [51004] = 0x09F8, [51005] = 0x09F9, [51008] = 0x09FA, [51012] = 0x09FB, [51018] = 0x09FC, [51020] = 0x09FD, [51021] = 0x09FE, [51023] = 0x09FF, [51025] = 0x0A00, [51026] = 0x0A01, [51027] = 0x0A02, [51028] = 0x0A03, [51029] = 0x0A04, [51030] = 0x0A05, [51031] = 0x0A06, [51032] = 0x0A07, [51036] = 0x0A08, [51040] = 0x0A09, [51048] = 0x0A0A, [51051] = 0x0A0B, [51060] = 0x0A0C, [51061] = 0x0A0D, [51064] = 0x0A0E, [51068] = 0x0A0F, [51069] = 0x0A10, [51070] = 0x0A11, [51075] = 0x0A12, [51076] = 0x0A13, [51077] = 0x0A14, [51079] = 0x0A15, [51080] = 0x0A16, [51081] = 0x0A17, [51082] = 0x0A18, [51086] = 0x0A19, [51088] = 0x0A1A, [51089] = 0x0A1B, [51092] = 0x0A1C, [51094] = 0x0A1D, [51095] = 0x0A1E, [51096] = 0x0A1F, [51098] = 0x0A20, [51104] = 0x0A21, [51105] = 0x0A22, [51107] = 0x0A23, [51108] = 0x0A24, [51109] = 0x0A25, [51110] = 0x0A26, [51116] = 0x0A27, [51117] = 0x0A28, [51120] = 0x0A29, [51124] = 0x0A2A, [51132] = 0x0A2B, [51133] = 0x0A2C, [51135] = 0x0A2D, [51136] = 0x0A2E, [51137] = 0x0A2F, [51144] = 0x0A30, [51145] = 0x0A31, [51148] = 0x0A32, [51150] = 0x0A33, [51152] = 0x0A34, [51160] = 0x0A35, [51165] = 0x0A36, [51172] = 0x0A37, [51176] = 0x0A38, [51180] = 0x0A39, [51200] = 0x0A3A, [51201] = 0x0A3B, [51204] = 0x0A3C, [51208] = 0x0A3D, [51210] = 0x0A3E, [51216] = 0x0A3F, [51217] = 0x0A40, [51219] = 0x0A41, [51221] = 0x0A42, [51222] = 0x0A43, [51228] = 0x0A44, [51229] = 0x0A45, [51232] = 0x0A46, [51236] = 0x0A47, [51244] = 0x0A48, [51245] = 0x0A49, [51247] = 0x0A4A, [51249] = 0x0A4B, [51256] = 0x0A4C, [51260] = 0x0A4D, [51264] = 0x0A4E, [51272] = 0x0A4F, [51273] = 0x0A50, [51276] = 0x0A51, [51277] = 0x0A52, [51284] = 0x0A53, [51312] = 0x0A54, [51313] = 0x0A55, [51316] = 0x0A56, [51320] = 0x0A57, [51322] = 0x0A58, [51328] = 0x0A59, [51329] = 0x0A5A, [51331] = 0x0A5B, [51333] = 0x0A5C, [51334] = 0x0A5D, [51335] = 0x0A5E, [51339] = 0x0A5F, [51340] = 0x0A60, [51341] = 0x0A61, [51348] = 0x0A62, [51357] = 0x0A63, [51359] = 0x0A64, [51361] = 0x0A65, [51368] = 0x0A66, [51388] = 0x0A67, [51389] = 0x0A68, [51396] = 0x0A69, [51400] = 0x0A6A, [51404] = 0x0A6B, [51412] = 0x0A6C, [51413] = 0x0A6D, [51415] = 0x0A6E, [51417] = 0x0A6F, [51424] = 0x0A70, [51425] = 0x0A71, [51428] = 0x0A72, [51445] = 0x0A73, [51452] = 0x0A74, [51453] = 0x0A75, [51456] = 0x0A76, [51460] = 0x0A77, [51461] = 0x0A78, [51462] = 0x0A79, [51468] = 0x0A7A, [51469] = 0x0A7B, [51471] = 0x0A7C, [51473] = 0x0A7D, [51480] = 0x0A7E, [51500] = 0x0A7F, [51508] = 0x0A80, [51536] = 0x0A81, [51537] = 0x0A82, [51540] = 0x0A83, [51544] = 0x0A84, [51552] = 0x0A85, [51553] = 0x0A86, [51555] = 0x0A87, [51564] = 0x0A88, [51568] = 0x0A89, [51572] = 0x0A8A, [51580] = 0x0A8B, [51592] = 0x0A8C, [51593] = 0x0A8D, [51596] = 0x0A8E, [51600] = 0x0A8F, [51608] = 0x0A90, [51609] = 0x0A91, [51611] = 0x0A92, [51613] = 0x0A93, [51648] = 0x0A94, [51649] = 0x0A95, [51652] = 0x0A96, [51655] = 0x0A97, [51656] = 0x0A98, [51658] = 0x0A99, [51664] = 0x0A9A, [51665] = 0x0A9B, [51667] = 0x0A9C, [51669] = 0x0A9D, [51670] = 0x0A9E, [51673] = 0x0A9F, [51674] = 0x0AA0, [51676] = 0x0AA1, [51677] = 0x0AA2, [51680] = 0x0AA3, [51682] = 0x0AA4, [51684] = 0x0AA5, [51687] = 0x0AA6, [51692] = 0x0AA7, [51693] = 0x0AA8, [51695] = 0x0AA9, [51696] = 0x0AAA, [51697] = 0x0AAB, [51704] = 0x0AAC, [51705] = 0x0AAD, [51708] = 0x0AAE, [51712] = 0x0AAF, [51720] = 0x0AB0, [51721] = 0x0AB1, [51723] = 0x0AB2, [51724] = 0x0AB3, [51725] = 0x0AB4, [51732] = 0x0AB5, [51736] = 0x0AB6, [51753] = 0x0AB7, [51788] = 0x0AB8, [51789] = 0x0AB9, [51792] = 0x0ABA, [51796] = 0x0ABB, [51804] = 0x0ABC, [51805] = 0x0ABD, [51807] = 0x0ABE, [51808] = 0x0ABF, [51809] = 0x0AC0, [51816] = 0x0AC1, [51837] = 0x0AC2, [51844] = 0x0AC3, [51864] = 0x0AC4, [51900] = 0x0AC5, [51901] = 0x0AC6, [51904] = 0x0AC7, [51908] = 0x0AC8, [51916] = 0x0AC9, [51917] = 0x0ACA, [51919] = 0x0ACB, [51921] = 0x0ACC, [51923] = 0x0ACD, [51928] = 0x0ACE, [51929] = 0x0ACF, [51936] = 0x0AD0, [51948] = 0x0AD1, [51956] = 0x0AD2, [51976] = 0x0AD3, [51984] = 0x0AD4, [51988] = 0x0AD5, [51992] = 0x0AD6, [52000] = 0x0AD7, [52001] = 0x0AD8, [52012] = 0x0D65, [52033] = 0x0AD9, [52040] = 0x0ADA, [52041] = 0x0ADB, [52044] = 0x0ADC, [52048] = 0x0ADD, [52056] = 0x0ADE, [52057] = 0x0ADF, [52061] = 0x0AE0, [52068] = 0x0AE1, [52088] = 0x0AE2, [52089] = 0x0AE3, [52124] = 0x0AE4, [52152] = 0x0AE5, [52180] = 0x0AE6, [52196] = 0x0AE7, [52199] = 0x0AE8, [52201] = 0x0AE9, [52236] = 0x0AEA, [52237] = 0x0AEB, [52240] = 0x0AEC, [52244] = 0x0AED, [52252] = 0x0AEE, [52253] = 0x0AEF, [52257] = 0x0AF0, [52258] = 0x0AF1, [52263] = 0x0AF2, [52264] = 0x0AF3, [52265] = 0x0AF4, [52268] = 0x0AF5, [52270] = 0x0AF6, [52272] = 0x0AF7, [52280] = 0x0AF8, [52281] = 0x0AF9, [52283] = 0x0AFA, [52284] = 0x0AFB, [52285] = 0x0AFC, [52286] = 0x0AFD, [52292] = 0x0AFE, [52293] = 0x0AFF, [52296] = 0x0B00, [52300] = 0x0B01, [52308] = 0x0B02, [52309] = 0x0B03, [52311] = 0x0B04, [52312] = 0x0B05, [52313] = 0x0B06, [52320] = 0x0B07, [52324] = 0x0B08, [52326] = 0x0B09, [52328] = 0x0B0A, [52336] = 0x0B0B, [52341] = 0x0B0C, [52376] = 0x0B0D, [52377] = 0x0B0E, [52380] = 0x0B0F, [52384] = 0x0B10, [52392] = 0x0B11, [52393] = 0x0B12, [52395] = 0x0B13, [52396] = 0x0B14, [52397] = 0x0B15, [52404] = 0x0B16, [52405] = 0x0B17, [52408] = 0x0B18, [52412] = 0x0B19, [52420] = 0x0B1A, [52421] = 0x0B1B, [52423] = 0x0B1C, [52425] = 0x0B1D, [52432] = 0x0B1E, [52436] = 0x0B1F, [52452] = 0x0B20, [52460] = 0x0B21, [52464] = 0x0B22, [52481] = 0x0B23, [52488] = 0x0B24, [52489] = 0x0B25, [52492] = 0x0B26, [52496] = 0x0B27, [52504] = 0x0B28, [52505] = 0x0B29, [52507] = 0x0B2A, [52509] = 0x0B2B, [52516] = 0x0B2C, [52520] = 0x0B2D, [52524] = 0x0B2E, [52537] = 0x0B2F, [52572] = 0x0B30, [52576] = 0x0B31, [52580] = 0x0B32, [52588] = 0x0B33, [52589] = 0x0B34, [52591] = 0x0B35, [52593] = 0x0B36, [52600] = 0x0B37, [52616] = 0x0B38, [52628] = 0x0B39, [52629] = 0x0B3A, [52632] = 0x0B3B, [52636] = 0x0B3C, [52644] = 0x0B3D, [52645] = 0x0B3E, [52647] = 0x0B3F, [52649] = 0x0B40, [52656] = 0x0B41, [52676] = 0x0B42, [52684] = 0x0B43, [52688] = 0x0B44, [52712] = 0x0B45, [52716] = 0x0B46, [52720] = 0x0B47, [52728] = 0x0B48, [52729] = 0x0B49, [52731] = 0x0B4A, [52733] = 0x0B4B, [52740] = 0x0B4C, [52744] = 0x0B4D, [52748] = 0x0B4E, [52756] = 0x0B4F, [52761] = 0x0B50, [52768] = 0x0B51, [52769] = 0x0B52, [52772] = 0x0B53, [52776] = 0x0B54, [52784] = 0x0B55, [52785] = 0x0B56, [52787] = 0x0B57, [52789] = 0x0B58, [52824] = 0x0B59, [52825] = 0x0B5A, [52828] = 0x0B5B, [52831] = 0x0B5C, [52832] = 0x0B5D, [52833] = 0x0B5E, [52840] = 0x0B5F, [52841] = 0x0B60, [52843] = 0x0B61, [52845] = 0x0B62, [52852] = 0x0B63, [52853] = 0x0B64, [52856] = 0x0B65, [52860] = 0x0B66, [52868] = 0x0B67, [52869] = 0x0B68, [52871] = 0x0B69, [52873] = 0x0B6A, [52880] = 0x0B6B, [52881] = 0x0B6C, [52884] = 0x0B6D, [52888] = 0x0B6E, [52896] = 0x0B6F, [52897] = 0x0B70, [52899] = 0x0B71, [52900] = 0x0B72, [52901] = 0x0B73, [52908] = 0x0B74, [52909] = 0x0B75, [52929] = 0x0B76, [52964] = 0x0B77, [52965] = 0x0B78, [52968] = 0x0B79, [52971] = 0x0B7A, [52972] = 0x0B7B, [52980] = 0x0B7C, [52981] = 0x0B7D, [52983] = 0x0B7E, [52984] = 0x0B7F, [52985] = 0x0B80, [52992] = 0x0B81, [52993] = 0x0B82, [52996] = 0x0B83, [53000] = 0x0B84, [53008] = 0x0B85, [53009] = 0x0B86, [53011] = 0x0B87, [53013] = 0x0B88, [53020] = 0x0B89, [53024] = 0x0B8A, [53028] = 0x0B8B, [53036] = 0x0B8C, [53037] = 0x0B8D, [53039] = 0x0B8E, [53040] = 0x0B8F, [53041] = 0x0B90, [53048] = 0x0B91, [53076] = 0x0B92, [53077] = 0x0B93, [53080] = 0x0B94, [53084] = 0x0B95, [53092] = 0x0B96, [53093] = 0x0B97, [53095] = 0x0B98, [53097] = 0x0B99, [53104] = 0x0B9A, [53105] = 0x0B9B, [53108] = 0x0B9C, [53112] = 0x0B9D, [53120] = 0x0B9E, [53125] = 0x0B9F, [53132] = 0x0BA0, [53153] = 0x0BA1, [53160] = 0x0BA2, [53168] = 0x0BA3, [53188] = 0x0BA4, [53216] = 0x0BA5, [53217] = 0x0BA6, [53220] = 0x0BA7, [53224] = 0x0BA8, [53232] = 0x0BA9, [53233] = 0x0BAA, [53235] = 0x0BAB, [53237] = 0x0BAC, [53244] = 0x0BAD, [53248] = 0x0BAE, [53252] = 0x0BAF, [53265] = 0x0BB0, [53272] = 0x0BB1, [53293] = 0x0BB2, [53300] = 0x0BB3, [53301] = 0x0BB4, [53304] = 0x0BB5, [53308] = 0x0BB6, [53316] = 0x0BB7, [53317] = 0x0BB8, [53319] = 0x0BB9, [53321] = 0x0BBA, [53328] = 0x0BBB, [53332] = 0x0BBC, [53336] = 0x0BBD, [53344] = 0x0BBE, [53356] = 0x0BBF, [53357] = 0x0BC0, [53360] = 0x0BC1, [53364] = 0x0BC2, [53372] = 0x0BC3, [53373] = 0x0BC4, [53377] = 0x0BC5, [53412] = 0x0BC6, [53413] = 0x0BC7, [53416] = 0x0BC8, [53420] = 0x0BC9, [53428] = 0x0BCA, [53429] = 0x0BCB, [53431] = 0x0BCC, [53433] = 0x0BCD, [53440] = 0x0BCE, [53441] = 0x0BCF, [53444] = 0x0BD0, [53448] = 0x0BD1, [53449] = 0x0BD2, [53456] = 0x0BD3, [53457] = 0x0BD4, [53459] = 0x0BD5, [53460] = 0x0BD6, [53461] = 0x0BD7, [53468] = 0x0BD8, [53469] = 0x0BD9, [53472] = 0x0BDA, [53476] = 0x0BDB, [53484] = 0x0BDC, [53485] = 0x0BDD, [53487] = 0x0BDE, [53488] = 0x0BDF, [53489] = 0x0BE0, [53496] = 0x0BE1, [53517] = 0x0BE2, [53552] = 0x0BE3, [53553] = 0x0BE4, [53556] = 0x0BE5, [53560] = 0x0BE6, [53562] = 0x0BE7, [53568] = 0x0BE8, [53569] = 0x0BE9, [53571] = 0x0BEA, [53572] = 0x0BEB, [53573] = 0x0BEC, [53580] = 0x0BED, [53581] = 0x0BEE, [53584] = 0x0BEF, [53588] = 0x0BF0, [53596] = 0x0BF1, [53597] = 0x0BF2, [53599] = 0x0BF3, [53601] = 0x0BF4, [53608] = 0x0BF5, [53612] = 0x0BF6, [53628] = 0x0BF7, [53636] = 0x0BF8, [53640] = 0x0BF9, [53664] = 0x0BFA, [53665] = 0x0BFB, [53668] = 0x0BFC, [53672] = 0x0BFD, [53680] = 0x0BFE, [53681] = 0x0BFF, [53683] = 0x0C00, [53685] = 0x0C01, [53690] = 0x0C02, [53692] = 0x0C03, [53696] = 0x0C04, [53720] = 0x0C05, [53748] = 0x0C06, [53752] = 0x0C07, [53767] = 0x0C08, [53769] = 0x0C09, [53776] = 0x0C0A, [53804] = 0x0C0B, [53805] = 0x0C0C, [53808] = 0x0C0D, [53812] = 0x0C0E, [53820] = 0x0C0F, [53821] = 0x0C10, [53823] = 0x0C11, [53825] = 0x0C12, [53832] = 0x0C13, [53852] = 0x0C14, [53860] = 0x0C15, [53888] = 0x0C16, [53889] = 0x0C17, [53892] = 0x0C18, [53896] = 0x0C19, [53904] = 0x0C1A, [53905] = 0x0C1B, [53909] = 0x0C1C, [53916] = 0x0C1D, [53920] = 0x0C1E, [53924] = 0x0C1F, [53932] = 0x0C20, [53937] = 0x0C21, [53944] = 0x0C22, [53945] = 0x0C23, [53948] = 0x0C24, [53951] = 0x0C25, [53952] = 0x0C26, [53954] = 0x0C27, [53960] = 0x0C28, [53961] = 0x0C29, [53963] = 0x0C2A, [53972] = 0x0C2B, [53976] = 0x0C2C, [53980] = 0x0C2D, [53988] = 0x0C2E, [53989] = 0x0C2F, [54000] = 0x0C30, [54001] = 0x0C31, [54004] = 0x0C32, [54008] = 0x0C33, [54016] = 0x0C34, [54017] = 0x0C35, [54019] = 0x0C36, [54021] = 0x0C37, [54028] = 0x0C38, [54029] = 0x0C39, [54030] = 0x0C3A, [54032] = 0x0C3B, [54036] = 0x0C3C, [54038] = 0x0C3D, [54044] = 0x0C3E, [54045] = 0x0C3F, [54047] = 0x0C40, [54048] = 0x0C41, [54049] = 0x0C42, [54053] = 0x0C43, [54056] = 0x0C44, [54057] = 0x0C45, [54060] = 0x0C46, [54064] = 0x0C47, [54072] = 0x0C48, [54073] = 0x0C49, [54075] = 0x0C4A, [54076] = 0x0C4B, [54077] = 0x0C4C, [54084] = 0x0C4D, [54085] = 0x0C4E, [54140] = 0x0C4F, [54141] = 0x0C50, [54144] = 0x0C51, [54148] = 0x0C52, [54156] = 0x0C53, [54157] = 0x0C54, [54159] = 0x0C55, [54160] = 0x0C56, [54161] = 0x0C57, [54168] = 0x0C58, [54169] = 0x0C59, [54172] = 0x0C5A, [54176] = 0x0C5B, [54184] = 0x0C5C, [54185] = 0x0C5D, [54187] = 0x0C5E, [54189] = 0x0C5F, [54196] = 0x0C60, [54200] = 0x0C61, [54204] = 0x0C62, [54212] = 0x0C63, [54213] = 0x0C64, [54216] = 0x0C65, [54217] = 0x0C66, [54224] = 0x0C67, [54232] = 0x0C68, [54241] = 0x0C69, [54243] = 0x0C6A, [54252] = 0x0C6B, [54253] = 0x0C6C, [54256] = 0x0C6D, [54260] = 0x0C6E, [54268] = 0x0C6F, [54269] = 0x0C70, [54271] = 0x0C71, [54273] = 0x0C72, [54280] = 0x0C73, [54301] = 0x0C74, [54336] = 0x0C75, [54340] = 0x0C76, [54364] = 0x0C77, [54368] = 0x0C78, [54372] = 0x0C79, [54381] = 0x0C7A, [54383] = 0x0C7B, [54392] = 0x0C7C, [54393] = 0x0C7D, [54396] = 0x0C7E, [54399] = 0x0C7F, [54400] = 0x0C80, [54402] = 0x0C81, [54408] = 0x0C82, [54409] = 0x0C83, [54411] = 0x0C84, [54413] = 0x0C85, [54420] = 0x0C86, [54441] = 0x0C87, [54476] = 0x0C88, [54480] = 0x0C89, [54484] = 0x0C8A, [54492] = 0x0C8B, [54495] = 0x0C8C, [54504] = 0x0C8D, [54508] = 0x0C8E, [54512] = 0x0C8F, [54520] = 0x0C90, [54523] = 0x0C91, [54525] = 0x0C92, [54532] = 0x0C93, [54536] = 0x0C94, [54540] = 0x0C95, [54548] = 0x0C96, [54549] = 0x0C97, [54551] = 0x0C98, [54588] = 0x0C99, [54589] = 0x0C9A, [54592] = 0x0C9B, [54596] = 0x0C9C, [54604] = 0x0C9D, [54605] = 0x0C9E, [54607] = 0x0C9F, [54609] = 0x0CA0, [54616] = 0x0CA1, [54617] = 0x0CA2, [54620] = 0x0CA3, [54624] = 0x0CA4, [54629] = 0x0CA5, [54632] = 0x0CA6, [54633] = 0x0CA7, [54635] = 0x0CA8, [54637] = 0x0CA9, [54644] = 0x0CAA, [54645] = 0x0CAB, [54648] = 0x0CAC, [54652] = 0x0CAD, [54660] = 0x0CAE, [54661] = 0x0CAF, [54663] = 0x0CB0, [54664] = 0x0CB1, [54665] = 0x0CB2, [54672] = 0x0CB3, [54693] = 0x0CB4, [54728] = 0x0CB5, [54729] = 0x0CB6, [54732] = 0x0CB7, [54736] = 0x0CB8, [54738] = 0x0CB9, [54744] = 0x0CBA, [54745] = 0x0CBB, [54747] = 0x0CBC, [54749] = 0x0CBD, [54756] = 0x0CBE, [54757] = 0x0CBF, [54760] = 0x0CC0, [54764] = 0x0CC1, [54772] = 0x0CC2, [54773] = 0x0CC3, [54775] = 0x0CC4, [54777] = 0x0CC5, [54784] = 0x0CC6, [54785] = 0x0CC7, [54788] = 0x0CC8, [54792] = 0x0CC9, [54800] = 0x0CCA, [54801] = 0x0CCB, [54803] = 0x0CCC, [54804] = 0x0CCD, [54805] = 0x0CCE, [54812] = 0x0CCF, [54816] = 0x0CD0, [54820] = 0x0CD1, [54829] = 0x0CD2, [54840] = 0x0CD3, [54841] = 0x0CD4, [54844] = 0x0CD5, [54848] = 0x0CD6, [54853] = 0x0CD7, [54856] = 0x0CD8, [54857] = 0x0CD9, [54859] = 0x0CDA, [54861] = 0x0CDB, [54865] = 0x0CDC, [54868] = 0x0CDD, [54869] = 0x0CDE, [54872] = 0x0CDF, [54876] = 0x0CE0, [54887] = 0x0CE1, [54889] = 0x0CE2, [54896] = 0x0CE3, [54897] = 0x0CE4, [54900] = 0x0CE5, [54915] = 0x0CE6, [54917] = 0x0CE7, [54924] = 0x0CE8, [54925] = 0x0CE9, [54928] = 0x0CEA, [54932] = 0x0CEB, [54941] = 0x0CEC, [54943] = 0x0CED, [54945] = 0x0CEE, [54952] = 0x0CEF, [54956] = 0x0CF0, [54960] = 0x0CF1, [54969] = 0x0CF2, [54971] = 0x0CF3, [54980] = 0x0CF4, [54981] = 0x0CF5, [54984] = 0x0CF6, [54988] = 0x0CF7, [54993] = 0x0CF8, [54996] = 0x0CF9, [54999] = 0x0CFA, [55001] = 0x0CFB, [55008] = 0x0CFC, [55012] = 0x0CFD, [55016] = 0x0CFE, [55024] = 0x0CFF, [55029] = 0x0D00, [55036] = 0x0D01, [55037] = 0x0D02, [55040] = 0x0D03, [55044] = 0x0D04, [55057] = 0x0D05, [55064] = 0x0D06, [55065] = 0x0D07, [55068] = 0x0D08, [55072] = 0x0D09, [55080] = 0x0D0A, [55081] = 0x0D0B, [55083] = 0x0D0C, [55085] = 0x0D0D, [55092] = 0x0D0E, [55093] = 0x0D0F, [55096] = 0x0D10, [55100] = 0x0D11, [55108] = 0x0D12, [55111] = 0x0D13, [55113] = 0x0D14, [55120] = 0x0D15, [55121] = 0x0D16, [55124] = 0x0D17, [55126] = 0x0D18, [55127] = 0x0D19, [55128] = 0x0D1A, [55129] = 0x0D1B, [55136] = 0x0D1C, [55137] = 0x0D1D, [55139] = 0x0D1E, [55141] = 0x0D1F, [55145] = 0x0D20, [55148] = 0x0D21, [55152] = 0x0D22, [55156] = 0x0D23, [55164] = 0x0D24, [55165] = 0x0D25, [55169] = 0x0D26, [55176] = 0x0D27, [55177] = 0x0D28, [55180] = 0x0D29, [55184] = 0x0D2A, [55192] = 0x0D2B, [55193] = 0x0D2C, [55195] = 0x0D2D, [55197] = 0x0D2E, [65281] = 0x00E1, [65285] = 0x0106, [65286] = 0x0120, [65288] = 0x00EC, [65289] = 0x00ED, [65291] = 0x00F0, [65292] = 0x00F9, [65293] = 0x00F1, [65294] = 0x00F8, [65295] = 0x00E7, [65296] = 0x00A2, [65297] = 0x00A3, [65298] = 0x00A4, [65299] = 0x00A5, [65300] = 0x00A6, [65301] = 0x00A7, [65302] = 0x00A8, [65303] = 0x00A9, [65304] = 0x00AA, [65305] = 0x00AB, [65306] = 0x00F6, [65307] = 0x00F7, [65309] = 0x00F4, [65311] = 0x00E2, [65312] = 0x0104, [65313] = 0x00AC, [65314] = 0x00AD, [65315] = 0x00AE, [65316] = 0x00AF, [65317] = 0x00B0, [65318] = 0x00B1, [65319] = 0x00B2, [65320] = 0x00B3, [65321] = 0x00B4, [65322] = 0x00B5, [65323] = 0x00B6, [65324] = 0x00B7, [65325] = 0x00B8, [65326] = 0x00B9, [65327] = 0x00BA, [65328] = 0x00BB, [65329] = 0x00BC, [65330] = 0x00BD, [65331] = 0x00BE, [65332] = 0x00BF, [65333] = 0x00C0, [65334] = 0x00C1, [65335] = 0x00C2, [65336] = 0x00C3, [65337] = 0x00C4, [65338] = 0x00C5, [65343] = 0x01EA, [65345] = 0x00C6, [65346] = 0x00C7, [65347] = 0x00C8, [65348] = 0x00C9, [65349] = 0x00CA, [65350] = 0x00CB, [65351] = 0x00CC, [65352] = 0x00CD, [65353] = 0x00CE, [65354] = 0x00CF, [65355] = 0x00D0, [65356] = 0x00D1, [65357] = 0x00D2, [65358] = 0x00D3, [65359] = 0x00D4, [65360] = 0x00D5, [65361] = 0x00D6, [65362] = 0x00D7, [65363] = 0x00D8, [65364] = 0x00D9, [65365] = 0x00DA, [65366] = 0x00DB, [65367] = 0x00DC, [65368] = 0x00DD, [65369] = 0x00DE, [65370] = 0x00F5 }; } } ================================================ FILE: DS_Map/Resources/writeText.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace WindowsFormsApplication1.Resources { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class writeText { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal writeText() { } /// /// Returns the cached ResourceManager instance used by this class. /// [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("WindowsFormsApplication1.Resources.writeText", typeof(writeText).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to 0148. /// internal static string _100 { get { return ResourceManager.GetString("100", resourceCulture); } } /// /// Looks up a localized string similar to 010A. /// internal static string _10052 { get { return ResourceManager.GetString("10052", resourceCulture); } } /// /// Looks up a localized string similar to 0149. /// internal static string _101 { get { return ResourceManager.GetString("101", resourceCulture); } } /// /// Looks up a localized string similar to 014A. /// internal static string _102 { get { return ResourceManager.GetString("102", resourceCulture); } } /// /// Looks up a localized string similar to 014B. /// internal static string _103 { get { return ResourceManager.GetString("103", resourceCulture); } } /// /// Looks up a localized string similar to 014C. /// internal static string _104 { get { return ResourceManager.GetString("104", resourceCulture); } } /// /// Looks up a localized string similar to 014D. /// internal static string _105 { get { return ResourceManager.GetString("105", resourceCulture); } } /// /// Looks up a localized string similar to 014E. /// internal static string _106 { get { return ResourceManager.GetString("106", resourceCulture); } } /// /// Looks up a localized string similar to 014F. /// internal static string _107 { get { return ResourceManager.GetString("107", resourceCulture); } } /// /// Looks up a localized string similar to 0150. /// internal static string _108 { get { return ResourceManager.GetString("108", resourceCulture); } } /// /// Looks up a localized string similar to 0151. /// internal static string _109 { get { return ResourceManager.GetString("109", resourceCulture); } } /// /// Looks up a localized string similar to 0152. /// internal static string _110 { get { return ResourceManager.GetString("110", resourceCulture); } } /// /// Looks up a localized string similar to 0153. /// internal static string _111 { get { return ResourceManager.GetString("111", resourceCulture); } } /// /// Looks up a localized string similar to 0154. /// internal static string _112 { get { return ResourceManager.GetString("112", resourceCulture); } } /// /// Looks up a localized string similar to 0155. /// internal static string _113 { get { return ResourceManager.GetString("113", resourceCulture); } } /// /// Looks up a localized string similar to 0156. /// internal static string _114 { get { return ResourceManager.GetString("114", resourceCulture); } } /// /// Looks up a localized string similar to 0157. /// internal static string _115 { get { return ResourceManager.GetString("115", resourceCulture); } } /// /// Looks up a localized string similar to 0158. /// internal static string _116 { get { return ResourceManager.GetString("116", resourceCulture); } } /// /// Looks up a localized string similar to 0159. /// internal static string _117 { get { return ResourceManager.GetString("117", resourceCulture); } } /// /// Looks up a localized string similar to 015A. /// internal static string _118 { get { return ResourceManager.GetString("118", resourceCulture); } } /// /// Looks up a localized string similar to 015B. /// internal static string _119 { get { return ResourceManager.GetString("119", resourceCulture); } } /// /// Looks up a localized string similar to 015C. /// internal static string _120 { get { return ResourceManager.GetString("120", resourceCulture); } } /// /// Looks up a localized string similar to 015D. /// internal static string _121 { get { return ResourceManager.GetString("121", resourceCulture); } } /// /// Looks up a localized string similar to 015E. /// internal static string _122 { get { return ResourceManager.GetString("122", resourceCulture); } } /// /// Looks up a localized string similar to 00E3. /// internal static string _12289 { get { return ResourceManager.GetString("12289", resourceCulture); } } /// /// Looks up a localized string similar to 00E4. /// internal static string _12290 { get { return ResourceManager.GetString("12290", resourceCulture); } } /// /// Looks up a localized string similar to 01B7. /// internal static string _12298 { get { return ResourceManager.GetString("12298", resourceCulture); } } /// /// Looks up a localized string similar to 01B8. /// internal static string _12299 { get { return ResourceManager.GetString("12299", resourceCulture); } } /// /// Looks up a localized string similar to 00E8. /// internal static string _12300 { get { return ResourceManager.GetString("12300", resourceCulture); } } /// /// Looks up a localized string similar to 00E9. /// internal static string _12301 { get { return ResourceManager.GetString("12301", resourceCulture); } } /// /// Looks up a localized string similar to 00EA. /// internal static string _12302 { get { return ResourceManager.GetString("12302", resourceCulture); } } /// /// Looks up a localized string similar to 00EB. /// internal static string _12303 { get { return ResourceManager.GetString("12303", resourceCulture); } } /// /// Looks up a localized string similar to 0002. /// internal static string _12353 { get { return ResourceManager.GetString("12353", resourceCulture); } } /// /// Looks up a localized string similar to 0003. /// internal static string _12354 { get { return ResourceManager.GetString("12354", resourceCulture); } } /// /// Looks up a localized string similar to 0004. /// internal static string _12355 { get { return ResourceManager.GetString("12355", resourceCulture); } } /// /// Looks up a localized string similar to 0005. /// internal static string _12356 { get { return ResourceManager.GetString("12356", resourceCulture); } } /// /// Looks up a localized string similar to 0006. /// internal static string _12357 { get { return ResourceManager.GetString("12357", resourceCulture); } } /// /// Looks up a localized string similar to 0007. /// internal static string _12358 { get { return ResourceManager.GetString("12358", resourceCulture); } } /// /// Looks up a localized string similar to 0008. /// internal static string _12359 { get { return ResourceManager.GetString("12359", resourceCulture); } } /// /// Looks up a localized string similar to 0009. /// internal static string _12360 { get { return ResourceManager.GetString("12360", resourceCulture); } } /// /// Looks up a localized string similar to 000A. /// internal static string _12361 { get { return ResourceManager.GetString("12361", resourceCulture); } } /// /// Looks up a localized string similar to 000B. /// internal static string _12362 { get { return ResourceManager.GetString("12362", resourceCulture); } } /// /// Looks up a localized string similar to 000C. /// internal static string _12363 { get { return ResourceManager.GetString("12363", resourceCulture); } } /// /// Looks up a localized string similar to 000D. /// internal static string _12364 { get { return ResourceManager.GetString("12364", resourceCulture); } } /// /// Looks up a localized string similar to 000E. /// internal static string _12365 { get { return ResourceManager.GetString("12365", resourceCulture); } } /// /// Looks up a localized string similar to 000F. /// internal static string _12366 { get { return ResourceManager.GetString("12366", resourceCulture); } } /// /// Looks up a localized string similar to 0010. /// internal static string _12367 { get { return ResourceManager.GetString("12367", resourceCulture); } } /// /// Looks up a localized string similar to 0011. /// internal static string _12368 { get { return ResourceManager.GetString("12368", resourceCulture); } } /// /// Looks up a localized string similar to 0012. /// internal static string _12369 { get { return ResourceManager.GetString("12369", resourceCulture); } } /// /// Looks up a localized string similar to 0013. /// internal static string _12370 { get { return ResourceManager.GetString("12370", resourceCulture); } } /// /// Looks up a localized string similar to 0014. /// internal static string _12371 { get { return ResourceManager.GetString("12371", resourceCulture); } } /// /// Looks up a localized string similar to 0015. /// internal static string _12372 { get { return ResourceManager.GetString("12372", resourceCulture); } } /// /// Looks up a localized string similar to 0016. /// internal static string _12373 { get { return ResourceManager.GetString("12373", resourceCulture); } } /// /// Looks up a localized string similar to 0017. /// internal static string _12374 { get { return ResourceManager.GetString("12374", resourceCulture); } } /// /// Looks up a localized string similar to 0018. /// internal static string _12375 { get { return ResourceManager.GetString("12375", resourceCulture); } } /// /// Looks up a localized string similar to 0019. /// internal static string _12376 { get { return ResourceManager.GetString("12376", resourceCulture); } } /// /// Looks up a localized string similar to 001A. /// internal static string _12377 { get { return ResourceManager.GetString("12377", resourceCulture); } } /// /// Looks up a localized string similar to 001B. /// internal static string _12378 { get { return ResourceManager.GetString("12378", resourceCulture); } } /// /// Looks up a localized string similar to 001C. /// internal static string _12379 { get { return ResourceManager.GetString("12379", resourceCulture); } } /// /// Looks up a localized string similar to 001D. /// internal static string _12380 { get { return ResourceManager.GetString("12380", resourceCulture); } } /// /// Looks up a localized string similar to 001E. /// internal static string _12381 { get { return ResourceManager.GetString("12381", resourceCulture); } } /// /// Looks up a localized string similar to 001F. /// internal static string _12382 { get { return ResourceManager.GetString("12382", resourceCulture); } } /// /// Looks up a localized string similar to 0020. /// internal static string _12383 { get { return ResourceManager.GetString("12383", resourceCulture); } } /// /// Looks up a localized string similar to 0021. /// internal static string _12384 { get { return ResourceManager.GetString("12384", resourceCulture); } } /// /// Looks up a localized string similar to 0022. /// internal static string _12385 { get { return ResourceManager.GetString("12385", resourceCulture); } } /// /// Looks up a localized string similar to 0023. /// internal static string _12386 { get { return ResourceManager.GetString("12386", resourceCulture); } } /// /// Looks up a localized string similar to 0024. /// internal static string _12387 { get { return ResourceManager.GetString("12387", resourceCulture); } } /// /// Looks up a localized string similar to 0025. /// internal static string _12388 { get { return ResourceManager.GetString("12388", resourceCulture); } } /// /// Looks up a localized string similar to 0026. /// internal static string _12389 { get { return ResourceManager.GetString("12389", resourceCulture); } } /// /// Looks up a localized string similar to 0027. /// internal static string _12390 { get { return ResourceManager.GetString("12390", resourceCulture); } } /// /// Looks up a localized string similar to 0028. /// internal static string _12391 { get { return ResourceManager.GetString("12391", resourceCulture); } } /// /// Looks up a localized string similar to 0029. /// internal static string _12392 { get { return ResourceManager.GetString("12392", resourceCulture); } } /// /// Looks up a localized string similar to 002A. /// internal static string _12393 { get { return ResourceManager.GetString("12393", resourceCulture); } } /// /// Looks up a localized string similar to 002B. /// internal static string _12394 { get { return ResourceManager.GetString("12394", resourceCulture); } } /// /// Looks up a localized string similar to 002C. /// internal static string _12395 { get { return ResourceManager.GetString("12395", resourceCulture); } } /// /// Looks up a localized string similar to 002D. /// internal static string _12396 { get { return ResourceManager.GetString("12396", resourceCulture); } } /// /// Looks up a localized string similar to 002E. /// internal static string _12397 { get { return ResourceManager.GetString("12397", resourceCulture); } } /// /// Looks up a localized string similar to 002F. /// internal static string _12398 { get { return ResourceManager.GetString("12398", resourceCulture); } } /// /// Looks up a localized string similar to 0030. /// internal static string _12399 { get { return ResourceManager.GetString("12399", resourceCulture); } } /// /// Looks up a localized string similar to 0031. /// internal static string _12400 { get { return ResourceManager.GetString("12400", resourceCulture); } } /// /// Looks up a localized string similar to 0032. /// internal static string _12401 { get { return ResourceManager.GetString("12401", resourceCulture); } } /// /// Looks up a localized string similar to 0033. /// internal static string _12402 { get { return ResourceManager.GetString("12402", resourceCulture); } } /// /// Looks up a localized string similar to 0034. /// internal static string _12403 { get { return ResourceManager.GetString("12403", resourceCulture); } } /// /// Looks up a localized string similar to 0035. /// internal static string _12404 { get { return ResourceManager.GetString("12404", resourceCulture); } } /// /// Looks up a localized string similar to 0036. /// internal static string _12405 { get { return ResourceManager.GetString("12405", resourceCulture); } } /// /// Looks up a localized string similar to 0037. /// internal static string _12406 { get { return ResourceManager.GetString("12406", resourceCulture); } } /// /// Looks up a localized string similar to 0038. /// internal static string _12407 { get { return ResourceManager.GetString("12407", resourceCulture); } } /// /// Looks up a localized string similar to 0039. /// internal static string _12408 { get { return ResourceManager.GetString("12408", resourceCulture); } } /// /// Looks up a localized string similar to 003A. /// internal static string _12409 { get { return ResourceManager.GetString("12409", resourceCulture); } } /// /// Looks up a localized string similar to 003B. /// internal static string _12410 { get { return ResourceManager.GetString("12410", resourceCulture); } } /// /// Looks up a localized string similar to 003C. /// internal static string _12411 { get { return ResourceManager.GetString("12411", resourceCulture); } } /// /// Looks up a localized string similar to 003D. /// internal static string _12412 { get { return ResourceManager.GetString("12412", resourceCulture); } } /// /// Looks up a localized string similar to 003E. /// internal static string _12413 { get { return ResourceManager.GetString("12413", resourceCulture); } } /// /// Looks up a localized string similar to 003F. /// internal static string _12414 { get { return ResourceManager.GetString("12414", resourceCulture); } } /// /// Looks up a localized string similar to 0040. /// internal static string _12415 { get { return ResourceManager.GetString("12415", resourceCulture); } } /// /// Looks up a localized string similar to 0041. /// internal static string _12416 { get { return ResourceManager.GetString("12416", resourceCulture); } } /// /// Looks up a localized string similar to 0042. /// internal static string _12417 { get { return ResourceManager.GetString("12417", resourceCulture); } } /// /// Looks up a localized string similar to 0043. /// internal static string _12418 { get { return ResourceManager.GetString("12418", resourceCulture); } } /// /// Looks up a localized string similar to 0044. /// internal static string _12419 { get { return ResourceManager.GetString("12419", resourceCulture); } } /// /// Looks up a localized string similar to 0045. /// internal static string _12420 { get { return ResourceManager.GetString("12420", resourceCulture); } } /// /// Looks up a localized string similar to 0046. /// internal static string _12421 { get { return ResourceManager.GetString("12421", resourceCulture); } } /// /// Looks up a localized string similar to 0047. /// internal static string _12422 { get { return ResourceManager.GetString("12422", resourceCulture); } } /// /// Looks up a localized string similar to 0048. /// internal static string _12423 { get { return ResourceManager.GetString("12423", resourceCulture); } } /// /// Looks up a localized string similar to 0049. /// internal static string _12424 { get { return ResourceManager.GetString("12424", resourceCulture); } } /// /// Looks up a localized string similar to 004A. /// internal static string _12425 { get { return ResourceManager.GetString("12425", resourceCulture); } } /// /// Looks up a localized string similar to 004B. /// internal static string _12426 { get { return ResourceManager.GetString("12426", resourceCulture); } } /// /// Looks up a localized string similar to 004C. /// internal static string _12427 { get { return ResourceManager.GetString("12427", resourceCulture); } } /// /// Looks up a localized string similar to 004D. /// internal static string _12428 { get { return ResourceManager.GetString("12428", resourceCulture); } } /// /// Looks up a localized string similar to 004E. /// internal static string _12429 { get { return ResourceManager.GetString("12429", resourceCulture); } } /// /// Looks up a localized string similar to 004F. /// internal static string _12431 { get { return ResourceManager.GetString("12431", resourceCulture); } } /// /// Looks up a localized string similar to 0050. /// internal static string _12434 { get { return ResourceManager.GetString("12434", resourceCulture); } } /// /// Looks up a localized string similar to 0051. /// internal static string _12435 { get { return ResourceManager.GetString("12435", resourceCulture); } } /// /// Looks up a localized string similar to 0052. /// internal static string _12449 { get { return ResourceManager.GetString("12449", resourceCulture); } } /// /// Looks up a localized string similar to 0053. /// internal static string _12450 { get { return ResourceManager.GetString("12450", resourceCulture); } } /// /// Looks up a localized string similar to 0054. /// internal static string _12451 { get { return ResourceManager.GetString("12451", resourceCulture); } } /// /// Looks up a localized string similar to 0055. /// internal static string _12452 { get { return ResourceManager.GetString("12452", resourceCulture); } } /// /// Looks up a localized string similar to 0056. /// internal static string _12453 { get { return ResourceManager.GetString("12453", resourceCulture); } } /// /// Looks up a localized string similar to 0057. /// internal static string _12454 { get { return ResourceManager.GetString("12454", resourceCulture); } } /// /// Looks up a localized string similar to 0058. /// internal static string _12455 { get { return ResourceManager.GetString("12455", resourceCulture); } } /// /// Looks up a localized string similar to 0059. /// internal static string _12456 { get { return ResourceManager.GetString("12456", resourceCulture); } } /// /// Looks up a localized string similar to 005A. /// internal static string _12457 { get { return ResourceManager.GetString("12457", resourceCulture); } } /// /// Looks up a localized string similar to 005B. /// internal static string _12458 { get { return ResourceManager.GetString("12458", resourceCulture); } } /// /// Looks up a localized string similar to 005C. /// internal static string _12459 { get { return ResourceManager.GetString("12459", resourceCulture); } } /// /// Looks up a localized string similar to 005D. /// internal static string _12460 { get { return ResourceManager.GetString("12460", resourceCulture); } } /// /// Looks up a localized string similar to 005E. /// internal static string _12461 { get { return ResourceManager.GetString("12461", resourceCulture); } } /// /// Looks up a localized string similar to 005F. /// internal static string _12462 { get { return ResourceManager.GetString("12462", resourceCulture); } } /// /// Looks up a localized string similar to 0060. /// internal static string _12463 { get { return ResourceManager.GetString("12463", resourceCulture); } } /// /// Looks up a localized string similar to 0061. /// internal static string _12464 { get { return ResourceManager.GetString("12464", resourceCulture); } } /// /// Looks up a localized string similar to 0062. /// internal static string _12465 { get { return ResourceManager.GetString("12465", resourceCulture); } } /// /// Looks up a localized string similar to 0063. /// internal static string _12466 { get { return ResourceManager.GetString("12466", resourceCulture); } } /// /// Looks up a localized string similar to 0064. /// internal static string _12467 { get { return ResourceManager.GetString("12467", resourceCulture); } } /// /// Looks up a localized string similar to 0065. /// internal static string _12468 { get { return ResourceManager.GetString("12468", resourceCulture); } } /// /// Looks up a localized string similar to 0066. /// internal static string _12469 { get { return ResourceManager.GetString("12469", resourceCulture); } } /// /// Looks up a localized string similar to 0067. /// internal static string _12470 { get { return ResourceManager.GetString("12470", resourceCulture); } } /// /// Looks up a localized string similar to 0068. /// internal static string _12471 { get { return ResourceManager.GetString("12471", resourceCulture); } } /// /// Looks up a localized string similar to 0069. /// internal static string _12472 { get { return ResourceManager.GetString("12472", resourceCulture); } } /// /// Looks up a localized string similar to 006A. /// internal static string _12473 { get { return ResourceManager.GetString("12473", resourceCulture); } } /// /// Looks up a localized string similar to 006B. /// internal static string _12474 { get { return ResourceManager.GetString("12474", resourceCulture); } } /// /// Looks up a localized string similar to 006C. /// internal static string _12475 { get { return ResourceManager.GetString("12475", resourceCulture); } } /// /// Looks up a localized string similar to 006D. /// internal static string _12476 { get { return ResourceManager.GetString("12476", resourceCulture); } } /// /// Looks up a localized string similar to 006E. /// internal static string _12477 { get { return ResourceManager.GetString("12477", resourceCulture); } } /// /// Looks up a localized string similar to 006F. /// internal static string _12478 { get { return ResourceManager.GetString("12478", resourceCulture); } } /// /// Looks up a localized string similar to 0070. /// internal static string _12479 { get { return ResourceManager.GetString("12479", resourceCulture); } } /// /// Looks up a localized string similar to 0071. /// internal static string _12480 { get { return ResourceManager.GetString("12480", resourceCulture); } } /// /// Looks up a localized string similar to 0072. /// internal static string _12481 { get { return ResourceManager.GetString("12481", resourceCulture); } } /// /// Looks up a localized string similar to 0073. /// internal static string _12482 { get { return ResourceManager.GetString("12482", resourceCulture); } } /// /// Looks up a localized string similar to 0074. /// internal static string _12483 { get { return ResourceManager.GetString("12483", resourceCulture); } } /// /// Looks up a localized string similar to 0075. /// internal static string _12484 { get { return ResourceManager.GetString("12484", resourceCulture); } } /// /// Looks up a localized string similar to 0076. /// internal static string _12485 { get { return ResourceManager.GetString("12485", resourceCulture); } } /// /// Looks up a localized string similar to 0077. /// internal static string _12486 { get { return ResourceManager.GetString("12486", resourceCulture); } } /// /// Looks up a localized string similar to 0078. /// internal static string _12487 { get { return ResourceManager.GetString("12487", resourceCulture); } } /// /// Looks up a localized string similar to 0079. /// internal static string _12488 { get { return ResourceManager.GetString("12488", resourceCulture); } } /// /// Looks up a localized string similar to 007A. /// internal static string _12489 { get { return ResourceManager.GetString("12489", resourceCulture); } } /// /// Looks up a localized string similar to 007B. /// internal static string _12490 { get { return ResourceManager.GetString("12490", resourceCulture); } } /// /// Looks up a localized string similar to 007C. /// internal static string _12491 { get { return ResourceManager.GetString("12491", resourceCulture); } } /// /// Looks up a localized string similar to 007D. /// internal static string _12492 { get { return ResourceManager.GetString("12492", resourceCulture); } } /// /// Looks up a localized string similar to 007E. /// internal static string _12493 { get { return ResourceManager.GetString("12493", resourceCulture); } } /// /// Looks up a localized string similar to 007F. /// internal static string _12494 { get { return ResourceManager.GetString("12494", resourceCulture); } } /// /// Looks up a localized string similar to 0080. /// internal static string _12495 { get { return ResourceManager.GetString("12495", resourceCulture); } } /// /// Looks up a localized string similar to 0081. /// internal static string _12496 { get { return ResourceManager.GetString("12496", resourceCulture); } } /// /// Looks up a localized string similar to 0082. /// internal static string _12497 { get { return ResourceManager.GetString("12497", resourceCulture); } } /// /// Looks up a localized string similar to 0083. /// internal static string _12498 { get { return ResourceManager.GetString("12498", resourceCulture); } } /// /// Looks up a localized string similar to 0084. /// internal static string _12499 { get { return ResourceManager.GetString("12499", resourceCulture); } } /// /// Looks up a localized string similar to 0085. /// internal static string _12500 { get { return ResourceManager.GetString("12500", resourceCulture); } } /// /// Looks up a localized string similar to 0086. /// internal static string _12501 { get { return ResourceManager.GetString("12501", resourceCulture); } } /// /// Looks up a localized string similar to 0087. /// internal static string _12502 { get { return ResourceManager.GetString("12502", resourceCulture); } } /// /// Looks up a localized string similar to 0088. /// internal static string _12503 { get { return ResourceManager.GetString("12503", resourceCulture); } } /// /// Looks up a localized string similar to 0089. /// internal static string _12504 { get { return ResourceManager.GetString("12504", resourceCulture); } } /// /// Looks up a localized string similar to 008A. /// internal static string _12505 { get { return ResourceManager.GetString("12505", resourceCulture); } } /// /// Looks up a localized string similar to 008B. /// internal static string _12506 { get { return ResourceManager.GetString("12506", resourceCulture); } } /// /// Looks up a localized string similar to 008C. /// internal static string _12507 { get { return ResourceManager.GetString("12507", resourceCulture); } } /// /// Looks up a localized string similar to 008D. /// internal static string _12508 { get { return ResourceManager.GetString("12508", resourceCulture); } } /// /// Looks up a localized string similar to 008E. /// internal static string _12509 { get { return ResourceManager.GetString("12509", resourceCulture); } } /// /// Looks up a localized string similar to 008F. /// internal static string _12510 { get { return ResourceManager.GetString("12510", resourceCulture); } } /// /// Looks up a localized string similar to 0090. /// internal static string _12511 { get { return ResourceManager.GetString("12511", resourceCulture); } } /// /// Looks up a localized string similar to 0091. /// internal static string _12512 { get { return ResourceManager.GetString("12512", resourceCulture); } } /// /// Looks up a localized string similar to 0092. /// internal static string _12513 { get { return ResourceManager.GetString("12513", resourceCulture); } } /// /// Looks up a localized string similar to 0093. /// internal static string _12514 { get { return ResourceManager.GetString("12514", resourceCulture); } } /// /// Looks up a localized string similar to 0094. /// internal static string _12515 { get { return ResourceManager.GetString("12515", resourceCulture); } } /// /// Looks up a localized string similar to 0095. /// internal static string _12516 { get { return ResourceManager.GetString("12516", resourceCulture); } } /// /// Looks up a localized string similar to 0096. /// internal static string _12517 { get { return ResourceManager.GetString("12517", resourceCulture); } } /// /// Looks up a localized string similar to 0097. /// internal static string _12518 { get { return ResourceManager.GetString("12518", resourceCulture); } } /// /// Looks up a localized string similar to 0098. /// internal static string _12519 { get { return ResourceManager.GetString("12519", resourceCulture); } } /// /// Looks up a localized string similar to 0099. /// internal static string _12520 { get { return ResourceManager.GetString("12520", resourceCulture); } } /// /// Looks up a localized string similar to 009A. /// internal static string _12521 { get { return ResourceManager.GetString("12521", resourceCulture); } } /// /// Looks up a localized string similar to 009B. /// internal static string _12522 { get { return ResourceManager.GetString("12522", resourceCulture); } } /// /// Looks up a localized string similar to 009C. /// internal static string _12523 { get { return ResourceManager.GetString("12523", resourceCulture); } } /// /// Looks up a localized string similar to 009D. /// internal static string _12524 { get { return ResourceManager.GetString("12524", resourceCulture); } } /// /// Looks up a localized string similar to 009E. /// internal static string _12525 { get { return ResourceManager.GetString("12525", resourceCulture); } } /// /// Looks up a localized string similar to 009F. /// internal static string _12527 { get { return ResourceManager.GetString("12527", resourceCulture); } } /// /// Looks up a localized string similar to 00A0. /// internal static string _12530 { get { return ResourceManager.GetString("12530", resourceCulture); } } /// /// Looks up a localized string similar to 00A1. /// internal static string _12531 { get { return ResourceManager.GetString("12531", resourceCulture); } } /// /// Looks up a localized string similar to 00E6. /// internal static string _12539 { get { return ResourceManager.GetString("12539", resourceCulture); } } /// /// Looks up a localized string similar to 01C3. /// internal static string _126 { get { return ResourceManager.GetString("126", resourceCulture); } } /// /// Looks up a localized string similar to 00EE. /// internal static string _12954 { get { return ResourceManager.GetString("12954", resourceCulture); } } /// /// Looks up a localized string similar to 00EF. /// internal static string _12955 { get { return ResourceManager.GetString("12955", resourceCulture); } } /// /// Looks up a localized string similar to 01A9. /// internal static string _161 { get { return ResourceManager.GetString("161", resourceCulture); } } /// /// Looks up a localized string similar to 0112. /// internal static string _165 { get { return ResourceManager.GetString("165", resourceCulture); } } /// /// Looks up a localized string similar to 01A3. /// internal static string _170 { get { return ResourceManager.GetString("170", resourceCulture); } } /// /// Looks up a localized string similar to 01E8. /// internal static string _176 { get { return ResourceManager.GetString("176", resourceCulture); } } /// /// Looks up a localized string similar to 01A6. /// internal static string _178 { get { return ResourceManager.GetString("178", resourceCulture); } } /// /// Looks up a localized string similar to 01A7. /// internal static string _179 { get { return ResourceManager.GetString("179", resourceCulture); } } /// /// Looks up a localized string similar to 01B0. /// internal static string _183 { get { return ResourceManager.GetString("183", resourceCulture); } } /// /// Looks up a localized string similar to 01A5. /// internal static string _185 { get { return ResourceManager.GetString("185", resourceCulture); } } /// /// Looks up a localized string similar to 01A4. /// internal static string _186 { get { return ResourceManager.GetString("186", resourceCulture); } } /// /// Looks up a localized string similar to 01AA. /// internal static string _191 { get { return ResourceManager.GetString("191", resourceCulture); } } /// /// Looks up a localized string similar to 015F. /// internal static string _192 { get { return ResourceManager.GetString("192", resourceCulture); } } /// /// Looks up a localized string similar to 0160. /// internal static string _193 { get { return ResourceManager.GetString("193", resourceCulture); } } /// /// Looks up a localized string similar to 0161. /// internal static string _194 { get { return ResourceManager.GetString("194", resourceCulture); } } /// /// Looks up a localized string similar to 0162. /// internal static string _195 { get { return ResourceManager.GetString("195", resourceCulture); } } /// /// Looks up a localized string similar to 0163. /// internal static string _196 { get { return ResourceManager.GetString("196", resourceCulture); } } /// /// Looks up a localized string similar to 0164. /// internal static string _197 { get { return ResourceManager.GetString("197", resourceCulture); } } /// /// Looks up a localized string similar to 0165. /// internal static string _198 { get { return ResourceManager.GetString("198", resourceCulture); } } /// /// Looks up a localized string similar to 0166. /// internal static string _199 { get { return ResourceManager.GetString("199", resourceCulture); } } /// /// Looks up a localized string similar to 0167. /// internal static string _200 { get { return ResourceManager.GetString("200", resourceCulture); } } /// /// Looks up a localized string similar to 0168. /// internal static string _201 { get { return ResourceManager.GetString("201", resourceCulture); } } /// /// Looks up a localized string similar to 0169. /// internal static string _202 { get { return ResourceManager.GetString("202", resourceCulture); } } /// /// Looks up a localized string similar to 016A. /// internal static string _203 { get { return ResourceManager.GetString("203", resourceCulture); } } /// /// Looks up a localized string similar to 016B. /// internal static string _204 { get { return ResourceManager.GetString("204", resourceCulture); } } /// /// Looks up a localized string similar to 016C. /// internal static string _205 { get { return ResourceManager.GetString("205", resourceCulture); } } /// /// Looks up a localized string similar to 016D. /// internal static string _206 { get { return ResourceManager.GetString("206", resourceCulture); } } /// /// Looks up a localized string similar to 016E. /// internal static string _207 { get { return ResourceManager.GetString("207", resourceCulture); } } /// /// Looks up a localized string similar to 016F. /// internal static string _208 { get { return ResourceManager.GetString("208", resourceCulture); } } /// /// Looks up a localized string similar to 0170. /// internal static string _209 { get { return ResourceManager.GetString("209", resourceCulture); } } /// /// Looks up a localized string similar to 0171. /// internal static string _210 { get { return ResourceManager.GetString("210", resourceCulture); } } /// /// Looks up a localized string similar to 0172. /// internal static string _211 { get { return ResourceManager.GetString("211", resourceCulture); } } /// /// Looks up a localized string similar to 0173. /// internal static string _212 { get { return ResourceManager.GetString("212", resourceCulture); } } /// /// Looks up a localized string similar to 0174. /// internal static string _213 { get { return ResourceManager.GetString("213", resourceCulture); } } /// /// Looks up a localized string similar to 0175. /// internal static string _214 { get { return ResourceManager.GetString("214", resourceCulture); } } /// /// Looks up a localized string similar to 0176. /// internal static string _215 { get { return ResourceManager.GetString("215", resourceCulture); } } /// /// Looks up a localized string similar to 0177. /// internal static string _216 { get { return ResourceManager.GetString("216", resourceCulture); } } /// /// Looks up a localized string similar to 0178. /// internal static string _217 { get { return ResourceManager.GetString("217", resourceCulture); } } /// /// Looks up a localized string similar to 0179. /// internal static string _218 { get { return ResourceManager.GetString("218", resourceCulture); } } /// /// Looks up a localized string similar to 017A. /// internal static string _219 { get { return ResourceManager.GetString("219", resourceCulture); } } /// /// Looks up a localized string similar to 017B. /// internal static string _220 { get { return ResourceManager.GetString("220", resourceCulture); } } /// /// Looks up a localized string similar to 017C. /// internal static string _221 { get { return ResourceManager.GetString("221", resourceCulture); } } /// /// Looks up a localized string similar to 017D. /// internal static string _222 { get { return ResourceManager.GetString("222", resourceCulture); } } /// /// Looks up a localized string similar to 017E. /// internal static string _223 { get { return ResourceManager.GetString("223", resourceCulture); } } /// /// Looks up a localized string similar to 017F. /// internal static string _224 { get { return ResourceManager.GetString("224", resourceCulture); } } /// /// Looks up a localized string similar to 0180. /// internal static string _225 { get { return ResourceManager.GetString("225", resourceCulture); } } /// /// Looks up a localized string similar to 0181. /// internal static string _226 { get { return ResourceManager.GetString("226", resourceCulture); } } /// /// Looks up a localized string similar to 0182. /// internal static string _227 { get { return ResourceManager.GetString("227", resourceCulture); } } /// /// Looks up a localized string similar to 0183. /// internal static string _228 { get { return ResourceManager.GetString("228", resourceCulture); } } /// /// Looks up a localized string similar to 0184. /// internal static string _229 { get { return ResourceManager.GetString("229", resourceCulture); } } /// /// Looks up a localized string similar to 0185. /// internal static string _230 { get { return ResourceManager.GetString("230", resourceCulture); } } /// /// Looks up a localized string similar to 0186. /// internal static string _231 { get { return ResourceManager.GetString("231", resourceCulture); } } /// /// Looks up a localized string similar to 0187. /// internal static string _232 { get { return ResourceManager.GetString("232", resourceCulture); } } /// /// Looks up a localized string similar to 0188. /// internal static string _233 { get { return ResourceManager.GetString("233", resourceCulture); } } /// /// Looks up a localized string similar to 0189. /// internal static string _234 { get { return ResourceManager.GetString("234", resourceCulture); } } /// /// Looks up a localized string similar to 018A. /// internal static string _235 { get { return ResourceManager.GetString("235", resourceCulture); } } /// /// Looks up a localized string similar to 018B. /// internal static string _236 { get { return ResourceManager.GetString("236", resourceCulture); } } /// /// Looks up a localized string similar to 018C. /// internal static string _237 { get { return ResourceManager.GetString("237", resourceCulture); } } /// /// Looks up a localized string similar to 018D. /// internal static string _238 { get { return ResourceManager.GetString("238", resourceCulture); } } /// /// Looks up a localized string similar to 018E. /// internal static string _239 { get { return ResourceManager.GetString("239", resourceCulture); } } /// /// Looks up a localized string similar to 018F. /// internal static string _240 { get { return ResourceManager.GetString("240", resourceCulture); } } /// /// Looks up a localized string similar to 0190. /// internal static string _241 { get { return ResourceManager.GetString("241", resourceCulture); } } /// /// Looks up a localized string similar to 0191. /// internal static string _242 { get { return ResourceManager.GetString("242", resourceCulture); } } /// /// Looks up a localized string similar to 0192. /// internal static string _243 { get { return ResourceManager.GetString("243", resourceCulture); } } /// /// Looks up a localized string similar to 0193. /// internal static string _244 { get { return ResourceManager.GetString("244", resourceCulture); } } /// /// Looks up a localized string similar to 0194. /// internal static string _245 { get { return ResourceManager.GetString("245", resourceCulture); } } /// /// Looks up a localized string similar to 0195. /// internal static string _246 { get { return ResourceManager.GetString("246", resourceCulture); } } /// /// Looks up a localized string similar to 0196. /// internal static string _247 { get { return ResourceManager.GetString("247", resourceCulture); } } /// /// Looks up a localized string similar to 0197. /// internal static string _248 { get { return ResourceManager.GetString("248", resourceCulture); } } /// /// Looks up a localized string similar to 0198. /// internal static string _249 { get { return ResourceManager.GetString("249", resourceCulture); } } /// /// Looks up a localized string similar to 0199. /// internal static string _250 { get { return ResourceManager.GetString("250", resourceCulture); } } /// /// Looks up a localized string similar to 019A. /// internal static string _251 { get { return ResourceManager.GetString("251", resourceCulture); } } /// /// Looks up a localized string similar to 019B. /// internal static string _252 { get { return ResourceManager.GetString("252", resourceCulture); } } /// /// Looks up a localized string similar to 019C. /// internal static string _253 { get { return ResourceManager.GetString("253", resourceCulture); } } /// /// Looks up a localized string similar to 019D. /// internal static string _254 { get { return ResourceManager.GetString("254", resourceCulture); } } /// /// Looks up a localized string similar to 019E. /// internal static string _255 { get { return ResourceManager.GetString("255", resourceCulture); } } /// /// Looks up a localized string similar to 01DE. /// internal static string _32 { get { return ResourceManager.GetString("32", resourceCulture); } } /// /// Looks up a localized string similar to 01AB. /// internal static string _33 { get { return ResourceManager.GetString("33", resourceCulture); } } /// /// Looks up a localized string similar to 019F. /// internal static string _338 { get { return ResourceManager.GetString("338", resourceCulture); } } /// /// Looks up a localized string similar to 01A0. /// internal static string _339 { get { return ResourceManager.GetString("339", resourceCulture); } } /// /// Looks up a localized string similar to 01C0. /// internal static string _35 { get { return ResourceManager.GetString("35", resourceCulture); } } /// /// Looks up a localized string similar to 01A1. /// internal static string _350 { get { return ResourceManager.GetString("350", resourceCulture); } } /// /// Looks up a localized string similar to 01A2. /// internal static string _351 { get { return ResourceManager.GetString("351", resourceCulture); } } /// /// Looks up a localized string similar to 01A8. /// internal static string _36 { get { return ResourceManager.GetString("36", resourceCulture); } } /// /// Looks up a localized string similar to 01D2. /// internal static string _37 { get { return ResourceManager.GetString("37", resourceCulture); } } /// /// Looks up a localized string similar to 01C2. /// internal static string _38 { get { return ResourceManager.GetString("38", resourceCulture); } } /// /// Looks up a localized string similar to 01B3. /// internal static string _39 { get { return ResourceManager.GetString("39", resourceCulture); } } /// /// Looks up a localized string similar to 01B9. /// internal static string _40 { get { return ResourceManager.GetString("40", resourceCulture); } } /// /// Looks up a localized string similar to 01BA. /// internal static string _41 { get { return ResourceManager.GetString("41", resourceCulture); } } /// /// Looks up a localized string similar to 01BF. /// internal static string _42 { get { return ResourceManager.GetString("42", resourceCulture); } } /// /// Looks up a localized string similar to 01BD. /// internal static string _43 { get { return ResourceManager.GetString("43", resourceCulture); } } /// /// Looks up a localized string similar to 0D31. /// internal static string _4352 { get { return ResourceManager.GetString("4352", resourceCulture); } } /// /// Looks up a localized string similar to 0D32. /// internal static string _4353 { get { return ResourceManager.GetString("4353", resourceCulture); } } /// /// Looks up a localized string similar to 0D33. /// internal static string _4354 { get { return ResourceManager.GetString("4354", resourceCulture); } } /// /// Looks up a localized string similar to 0D34. /// internal static string _4355 { get { return ResourceManager.GetString("4355", resourceCulture); } } /// /// Looks up a localized string similar to 0D35. /// internal static string _4356 { get { return ResourceManager.GetString("4356", resourceCulture); } } /// /// Looks up a localized string similar to 0D36. /// internal static string _4357 { get { return ResourceManager.GetString("4357", resourceCulture); } } /// /// Looks up a localized string similar to 0D37. /// internal static string _4358 { get { return ResourceManager.GetString("4358", resourceCulture); } } /// /// Looks up a localized string similar to 0D38. /// internal static string _4359 { get { return ResourceManager.GetString("4359", resourceCulture); } } /// /// Looks up a localized string similar to 0D39. /// internal static string _4360 { get { return ResourceManager.GetString("4360", resourceCulture); } } /// /// Looks up a localized string similar to 0D3A. /// internal static string _4361 { get { return ResourceManager.GetString("4361", resourceCulture); } } /// /// Looks up a localized string similar to 0D3B. /// internal static string _4362 { get { return ResourceManager.GetString("4362", resourceCulture); } } /// /// Looks up a localized string similar to 0D3C. /// internal static string _4363 { get { return ResourceManager.GetString("4363", resourceCulture); } } /// /// Looks up a localized string similar to 0D3D. /// internal static string _4364 { get { return ResourceManager.GetString("4364", resourceCulture); } } /// /// Looks up a localized string similar to 0D3E. /// internal static string _4365 { get { return ResourceManager.GetString("4365", resourceCulture); } } /// /// Looks up a localized string similar to 0D3F. /// internal static string _4366 { get { return ResourceManager.GetString("4366", resourceCulture); } } /// /// Looks up a localized string similar to 0D40. /// internal static string _4367 { get { return ResourceManager.GetString("4367", resourceCulture); } } /// /// Looks up a localized string similar to 0D41. /// internal static string _4368 { get { return ResourceManager.GetString("4368", resourceCulture); } } /// /// Looks up a localized string similar to 0D42. /// internal static string _4369 { get { return ResourceManager.GetString("4369", resourceCulture); } } /// /// Looks up a localized string similar to 0D43. /// internal static string _4370 { get { return ResourceManager.GetString("4370", resourceCulture); } } /// /// Looks up a localized string similar to 01AD. /// internal static string _44 { get { return ResourceManager.GetString("44", resourceCulture); } } /// /// Looks up a localized string similar to 0400. /// internal static string _44032 { get { return ResourceManager.GetString("44032", resourceCulture); } } /// /// Looks up a localized string similar to 0401. /// internal static string _44033 { get { return ResourceManager.GetString("44033", resourceCulture); } } /// /// Looks up a localized string similar to 0402. /// internal static string _44036 { get { return ResourceManager.GetString("44036", resourceCulture); } } /// /// Looks up a localized string similar to 0403. /// internal static string _44039 { get { return ResourceManager.GetString("44039", resourceCulture); } } /// /// Looks up a localized string similar to 0404. /// internal static string _44040 { get { return ResourceManager.GetString("44040", resourceCulture); } } /// /// Looks up a localized string similar to 0405. /// internal static string _44041 { get { return ResourceManager.GetString("44041", resourceCulture); } } /// /// Looks up a localized string similar to 0406. /// internal static string _44042 { get { return ResourceManager.GetString("44042", resourceCulture); } } /// /// Looks up a localized string similar to 0407. /// internal static string _44048 { get { return ResourceManager.GetString("44048", resourceCulture); } } /// /// Looks up a localized string similar to 0408. /// internal static string _44049 { get { return ResourceManager.GetString("44049", resourceCulture); } } /// /// Looks up a localized string similar to 0409. /// internal static string _44050 { get { return ResourceManager.GetString("44050", resourceCulture); } } /// /// Looks up a localized string similar to 040A. /// internal static string _44051 { get { return ResourceManager.GetString("44051", resourceCulture); } } /// /// Looks up a localized string similar to 040B. /// internal static string _44052 { get { return ResourceManager.GetString("44052", resourceCulture); } } /// /// Looks up a localized string similar to 040C. /// internal static string _44053 { get { return ResourceManager.GetString("44053", resourceCulture); } } /// /// Looks up a localized string similar to 040D. /// internal static string _44054 { get { return ResourceManager.GetString("44054", resourceCulture); } } /// /// Looks up a localized string similar to 040E. /// internal static string _44055 { get { return ResourceManager.GetString("44055", resourceCulture); } } /// /// Looks up a localized string similar to 0410. /// internal static string _44057 { get { return ResourceManager.GetString("44057", resourceCulture); } } /// /// Looks up a localized string similar to 0411. /// internal static string _44058 { get { return ResourceManager.GetString("44058", resourceCulture); } } /// /// Looks up a localized string similar to 0412. /// internal static string _44059 { get { return ResourceManager.GetString("44059", resourceCulture); } } /// /// Looks up a localized string similar to 0413. /// internal static string _44060 { get { return ResourceManager.GetString("44060", resourceCulture); } } /// /// Looks up a localized string similar to 0414. /// internal static string _44061 { get { return ResourceManager.GetString("44061", resourceCulture); } } /// /// Looks up a localized string similar to 0415. /// internal static string _44064 { get { return ResourceManager.GetString("44064", resourceCulture); } } /// /// Looks up a localized string similar to 0416. /// internal static string _44068 { get { return ResourceManager.GetString("44068", resourceCulture); } } /// /// Looks up a localized string similar to 0417. /// internal static string _44076 { get { return ResourceManager.GetString("44076", resourceCulture); } } /// /// Looks up a localized string similar to 0418. /// internal static string _44077 { get { return ResourceManager.GetString("44077", resourceCulture); } } /// /// Looks up a localized string similar to 0419. /// internal static string _44079 { get { return ResourceManager.GetString("44079", resourceCulture); } } /// /// Looks up a localized string similar to 041A. /// internal static string _44080 { get { return ResourceManager.GetString("44080", resourceCulture); } } /// /// Looks up a localized string similar to 041B. /// internal static string _44081 { get { return ResourceManager.GetString("44081", resourceCulture); } } /// /// Looks up a localized string similar to 041C. /// internal static string _44088 { get { return ResourceManager.GetString("44088", resourceCulture); } } /// /// Looks up a localized string similar to 041D. /// internal static string _44089 { get { return ResourceManager.GetString("44089", resourceCulture); } } /// /// Looks up a localized string similar to 041E. /// internal static string _44092 { get { return ResourceManager.GetString("44092", resourceCulture); } } /// /// Looks up a localized string similar to 041F. /// internal static string _44096 { get { return ResourceManager.GetString("44096", resourceCulture); } } /// /// Looks up a localized string similar to 0420. /// internal static string _44107 { get { return ResourceManager.GetString("44107", resourceCulture); } } /// /// Looks up a localized string similar to 0421. /// internal static string _44109 { get { return ResourceManager.GetString("44109", resourceCulture); } } /// /// Looks up a localized string similar to 0422. /// internal static string _44116 { get { return ResourceManager.GetString("44116", resourceCulture); } } /// /// Looks up a localized string similar to 0423. /// internal static string _44120 { get { return ResourceManager.GetString("44120", resourceCulture); } } /// /// Looks up a localized string similar to 0424. /// internal static string _44124 { get { return ResourceManager.GetString("44124", resourceCulture); } } /// /// Looks up a localized string similar to 0425. /// internal static string _44144 { get { return ResourceManager.GetString("44144", resourceCulture); } } /// /// Looks up a localized string similar to 0426. /// internal static string _44145 { get { return ResourceManager.GetString("44145", resourceCulture); } } /// /// Looks up a localized string similar to 0427. /// internal static string _44148 { get { return ResourceManager.GetString("44148", resourceCulture); } } /// /// Looks up a localized string similar to 0428. /// internal static string _44151 { get { return ResourceManager.GetString("44151", resourceCulture); } } /// /// Looks up a localized string similar to 0429. /// internal static string _44152 { get { return ResourceManager.GetString("44152", resourceCulture); } } /// /// Looks up a localized string similar to 042A. /// internal static string _44154 { get { return ResourceManager.GetString("44154", resourceCulture); } } /// /// Looks up a localized string similar to 042B. /// internal static string _44160 { get { return ResourceManager.GetString("44160", resourceCulture); } } /// /// Looks up a localized string similar to 042C. /// internal static string _44161 { get { return ResourceManager.GetString("44161", resourceCulture); } } /// /// Looks up a localized string similar to 042D. /// internal static string _44163 { get { return ResourceManager.GetString("44163", resourceCulture); } } /// /// Looks up a localized string similar to 042E. /// internal static string _44164 { get { return ResourceManager.GetString("44164", resourceCulture); } } /// /// Looks up a localized string similar to 042F. /// internal static string _44165 { get { return ResourceManager.GetString("44165", resourceCulture); } } /// /// Looks up a localized string similar to 0430. /// internal static string _44166 { get { return ResourceManager.GetString("44166", resourceCulture); } } /// /// Looks up a localized string similar to 0431. /// internal static string _44169 { get { return ResourceManager.GetString("44169", resourceCulture); } } /// /// Looks up a localized string similar to 0432. /// internal static string _44170 { get { return ResourceManager.GetString("44170", resourceCulture); } } /// /// Looks up a localized string similar to 0433. /// internal static string _44171 { get { return ResourceManager.GetString("44171", resourceCulture); } } /// /// Looks up a localized string similar to 0434. /// internal static string _44172 { get { return ResourceManager.GetString("44172", resourceCulture); } } /// /// Looks up a localized string similar to 0435. /// internal static string _44176 { get { return ResourceManager.GetString("44176", resourceCulture); } } /// /// Looks up a localized string similar to 0436. /// internal static string _44180 { get { return ResourceManager.GetString("44180", resourceCulture); } } /// /// Looks up a localized string similar to 0437. /// internal static string _44188 { get { return ResourceManager.GetString("44188", resourceCulture); } } /// /// Looks up a localized string similar to 0438. /// internal static string _44189 { get { return ResourceManager.GetString("44189", resourceCulture); } } /// /// Looks up a localized string similar to 0439. /// internal static string _44191 { get { return ResourceManager.GetString("44191", resourceCulture); } } /// /// Looks up a localized string similar to 043A. /// internal static string _44192 { get { return ResourceManager.GetString("44192", resourceCulture); } } /// /// Looks up a localized string similar to 043B. /// internal static string _44193 { get { return ResourceManager.GetString("44193", resourceCulture); } } /// /// Looks up a localized string similar to 043C. /// internal static string _44200 { get { return ResourceManager.GetString("44200", resourceCulture); } } /// /// Looks up a localized string similar to 043D. /// internal static string _44201 { get { return ResourceManager.GetString("44201", resourceCulture); } } /// /// Looks up a localized string similar to 043E. /// internal static string _44202 { get { return ResourceManager.GetString("44202", resourceCulture); } } /// /// Looks up a localized string similar to 043F. /// internal static string _44204 { get { return ResourceManager.GetString("44204", resourceCulture); } } /// /// Looks up a localized string similar to 0440. /// internal static string _44207 { get { return ResourceManager.GetString("44207", resourceCulture); } } /// /// Looks up a localized string similar to 0441. /// internal static string _44208 { get { return ResourceManager.GetString("44208", resourceCulture); } } /// /// Looks up a localized string similar to 0442. /// internal static string _44216 { get { return ResourceManager.GetString("44216", resourceCulture); } } /// /// Looks up a localized string similar to 0443. /// internal static string _44217 { get { return ResourceManager.GetString("44217", resourceCulture); } } /// /// Looks up a localized string similar to 0444. /// internal static string _44219 { get { return ResourceManager.GetString("44219", resourceCulture); } } /// /// Looks up a localized string similar to 0445. /// internal static string _44220 { get { return ResourceManager.GetString("44220", resourceCulture); } } /// /// Looks up a localized string similar to 0446. /// internal static string _44221 { get { return ResourceManager.GetString("44221", resourceCulture); } } /// /// Looks up a localized string similar to 0447. /// internal static string _44225 { get { return ResourceManager.GetString("44225", resourceCulture); } } /// /// Looks up a localized string similar to 0448. /// internal static string _44228 { get { return ResourceManager.GetString("44228", resourceCulture); } } /// /// Looks up a localized string similar to 0449. /// internal static string _44232 { get { return ResourceManager.GetString("44232", resourceCulture); } } /// /// Looks up a localized string similar to 044A. /// internal static string _44236 { get { return ResourceManager.GetString("44236", resourceCulture); } } /// /// Looks up a localized string similar to 044B. /// internal static string _44245 { get { return ResourceManager.GetString("44245", resourceCulture); } } /// /// Looks up a localized string similar to 044C. /// internal static string _44247 { get { return ResourceManager.GetString("44247", resourceCulture); } } /// /// Looks up a localized string similar to 044D. /// internal static string _44256 { get { return ResourceManager.GetString("44256", resourceCulture); } } /// /// Looks up a localized string similar to 044E. /// internal static string _44257 { get { return ResourceManager.GetString("44257", resourceCulture); } } /// /// Looks up a localized string similar to 044F. /// internal static string _44260 { get { return ResourceManager.GetString("44260", resourceCulture); } } /// /// Looks up a localized string similar to 0450. /// internal static string _44263 { get { return ResourceManager.GetString("44263", resourceCulture); } } /// /// Looks up a localized string similar to 0451. /// internal static string _44264 { get { return ResourceManager.GetString("44264", resourceCulture); } } /// /// Looks up a localized string similar to 0452. /// internal static string _44266 { get { return ResourceManager.GetString("44266", resourceCulture); } } /// /// Looks up a localized string similar to 0453. /// internal static string _44268 { get { return ResourceManager.GetString("44268", resourceCulture); } } /// /// Looks up a localized string similar to 0454. /// internal static string _44271 { get { return ResourceManager.GetString("44271", resourceCulture); } } /// /// Looks up a localized string similar to 0455. /// internal static string _44272 { get { return ResourceManager.GetString("44272", resourceCulture); } } /// /// Looks up a localized string similar to 0456. /// internal static string _44273 { get { return ResourceManager.GetString("44273", resourceCulture); } } /// /// Looks up a localized string similar to 0457. /// internal static string _44275 { get { return ResourceManager.GetString("44275", resourceCulture); } } /// /// Looks up a localized string similar to 0458. /// internal static string _44277 { get { return ResourceManager.GetString("44277", resourceCulture); } } /// /// Looks up a localized string similar to 0459. /// internal static string _44278 { get { return ResourceManager.GetString("44278", resourceCulture); } } /// /// Looks up a localized string similar to 045A. /// internal static string _44284 { get { return ResourceManager.GetString("44284", resourceCulture); } } /// /// Looks up a localized string similar to 045B. /// internal static string _44285 { get { return ResourceManager.GetString("44285", resourceCulture); } } /// /// Looks up a localized string similar to 045C. /// internal static string _44288 { get { return ResourceManager.GetString("44288", resourceCulture); } } /// /// Looks up a localized string similar to 045D. /// internal static string _44292 { get { return ResourceManager.GetString("44292", resourceCulture); } } /// /// Looks up a localized string similar to 045E. /// internal static string _44294 { get { return ResourceManager.GetString("44294", resourceCulture); } } /// /// Looks up a localized string similar to 045F. /// internal static string _44300 { get { return ResourceManager.GetString("44300", resourceCulture); } } /// /// Looks up a localized string similar to 0460. /// internal static string _44301 { get { return ResourceManager.GetString("44301", resourceCulture); } } /// /// Looks up a localized string similar to 0461. /// internal static string _44303 { get { return ResourceManager.GetString("44303", resourceCulture); } } /// /// Looks up a localized string similar to 0462. /// internal static string _44305 { get { return ResourceManager.GetString("44305", resourceCulture); } } /// /// Looks up a localized string similar to 0463. /// internal static string _44312 { get { return ResourceManager.GetString("44312", resourceCulture); } } /// /// Looks up a localized string similar to 0464. /// internal static string _44316 { get { return ResourceManager.GetString("44316", resourceCulture); } } /// /// Looks up a localized string similar to 0465. /// internal static string _44320 { get { return ResourceManager.GetString("44320", resourceCulture); } } /// /// Looks up a localized string similar to 0466. /// internal static string _44329 { get { return ResourceManager.GetString("44329", resourceCulture); } } /// /// Looks up a localized string similar to 0467. /// internal static string _44332 { get { return ResourceManager.GetString("44332", resourceCulture); } } /// /// Looks up a localized string similar to 0468. /// internal static string _44333 { get { return ResourceManager.GetString("44333", resourceCulture); } } /// /// Looks up a localized string similar to 0469. /// internal static string _44340 { get { return ResourceManager.GetString("44340", resourceCulture); } } /// /// Looks up a localized string similar to 046A. /// internal static string _44341 { get { return ResourceManager.GetString("44341", resourceCulture); } } /// /// Looks up a localized string similar to 046B. /// internal static string _44344 { get { return ResourceManager.GetString("44344", resourceCulture); } } /// /// Looks up a localized string similar to 046C. /// internal static string _44348 { get { return ResourceManager.GetString("44348", resourceCulture); } } /// /// Looks up a localized string similar to 046D. /// internal static string _44356 { get { return ResourceManager.GetString("44356", resourceCulture); } } /// /// Looks up a localized string similar to 046E. /// internal static string _44357 { get { return ResourceManager.GetString("44357", resourceCulture); } } /// /// Looks up a localized string similar to 046F. /// internal static string _44359 { get { return ResourceManager.GetString("44359", resourceCulture); } } /// /// Looks up a localized string similar to 0470. /// internal static string _44361 { get { return ResourceManager.GetString("44361", resourceCulture); } } /// /// Looks up a localized string similar to 0471. /// internal static string _44368 { get { return ResourceManager.GetString("44368", resourceCulture); } } /// /// Looks up a localized string similar to 0472. /// internal static string _44372 { get { return ResourceManager.GetString("44372", resourceCulture); } } /// /// Looks up a localized string similar to 0473. /// internal static string _44376 { get { return ResourceManager.GetString("44376", resourceCulture); } } /// /// Looks up a localized string similar to 0474. /// internal static string _44385 { get { return ResourceManager.GetString("44385", resourceCulture); } } /// /// Looks up a localized string similar to 0475. /// internal static string _44387 { get { return ResourceManager.GetString("44387", resourceCulture); } } /// /// Looks up a localized string similar to 0476. /// internal static string _44396 { get { return ResourceManager.GetString("44396", resourceCulture); } } /// /// Looks up a localized string similar to 0477. /// internal static string _44397 { get { return ResourceManager.GetString("44397", resourceCulture); } } /// /// Looks up a localized string similar to 0478. /// internal static string _44400 { get { return ResourceManager.GetString("44400", resourceCulture); } } /// /// Looks up a localized string similar to 0479. /// internal static string _44403 { get { return ResourceManager.GetString("44403", resourceCulture); } } /// /// Looks up a localized string similar to 047A. /// internal static string _44404 { get { return ResourceManager.GetString("44404", resourceCulture); } } /// /// Looks up a localized string similar to 047B. /// internal static string _44405 { get { return ResourceManager.GetString("44405", resourceCulture); } } /// /// Looks up a localized string similar to 047C. /// internal static string _44406 { get { return ResourceManager.GetString("44406", resourceCulture); } } /// /// Looks up a localized string similar to 047D. /// internal static string _44411 { get { return ResourceManager.GetString("44411", resourceCulture); } } /// /// Looks up a localized string similar to 047E. /// internal static string _44412 { get { return ResourceManager.GetString("44412", resourceCulture); } } /// /// Looks up a localized string similar to 047F. /// internal static string _44413 { get { return ResourceManager.GetString("44413", resourceCulture); } } /// /// Looks up a localized string similar to 0480. /// internal static string _44415 { get { return ResourceManager.GetString("44415", resourceCulture); } } /// /// Looks up a localized string similar to 0481. /// internal static string _44417 { get { return ResourceManager.GetString("44417", resourceCulture); } } /// /// Looks up a localized string similar to 0482. /// internal static string _44418 { get { return ResourceManager.GetString("44418", resourceCulture); } } /// /// Looks up a localized string similar to 0483. /// internal static string _44424 { get { return ResourceManager.GetString("44424", resourceCulture); } } /// /// Looks up a localized string similar to 0484. /// internal static string _44425 { get { return ResourceManager.GetString("44425", resourceCulture); } } /// /// Looks up a localized string similar to 0485. /// internal static string _44428 { get { return ResourceManager.GetString("44428", resourceCulture); } } /// /// Looks up a localized string similar to 0486. /// internal static string _44432 { get { return ResourceManager.GetString("44432", resourceCulture); } } /// /// Looks up a localized string similar to 0487. /// internal static string _44444 { get { return ResourceManager.GetString("44444", resourceCulture); } } /// /// Looks up a localized string similar to 0488. /// internal static string _44445 { get { return ResourceManager.GetString("44445", resourceCulture); } } /// /// Looks up a localized string similar to 0489. /// internal static string _44452 { get { return ResourceManager.GetString("44452", resourceCulture); } } /// /// Looks up a localized string similar to 048A. /// internal static string _44471 { get { return ResourceManager.GetString("44471", resourceCulture); } } /// /// Looks up a localized string similar to 048B. /// internal static string _44480 { get { return ResourceManager.GetString("44480", resourceCulture); } } /// /// Looks up a localized string similar to 048C. /// internal static string _44481 { get { return ResourceManager.GetString("44481", resourceCulture); } } /// /// Looks up a localized string similar to 048D. /// internal static string _44484 { get { return ResourceManager.GetString("44484", resourceCulture); } } /// /// Looks up a localized string similar to 048E. /// internal static string _44488 { get { return ResourceManager.GetString("44488", resourceCulture); } } /// /// Looks up a localized string similar to 0D44. /// internal static string _4449 { get { return ResourceManager.GetString("4449", resourceCulture); } } /// /// Looks up a localized string similar to 048F. /// internal static string _44496 { get { return ResourceManager.GetString("44496", resourceCulture); } } /// /// Looks up a localized string similar to 0490. /// internal static string _44497 { get { return ResourceManager.GetString("44497", resourceCulture); } } /// /// Looks up a localized string similar to 0491. /// internal static string _44499 { get { return ResourceManager.GetString("44499", resourceCulture); } } /// /// Looks up a localized string similar to 0D45. /// internal static string _4450 { get { return ResourceManager.GetString("4450", resourceCulture); } } /// /// Looks up a localized string similar to 0492. /// internal static string _44508 { get { return ResourceManager.GetString("44508", resourceCulture); } } /// /// Looks up a localized string similar to 0D46. /// internal static string _4451 { get { return ResourceManager.GetString("4451", resourceCulture); } } /// /// Looks up a localized string similar to 0493. /// internal static string _44512 { get { return ResourceManager.GetString("44512", resourceCulture); } } /// /// Looks up a localized string similar to 0494. /// internal static string _44516 { get { return ResourceManager.GetString("44516", resourceCulture); } } /// /// Looks up a localized string similar to 0D47. /// internal static string _4452 { get { return ResourceManager.GetString("4452", resourceCulture); } } /// /// Looks up a localized string similar to 0D48. /// internal static string _4453 { get { return ResourceManager.GetString("4453", resourceCulture); } } /// /// Looks up a localized string similar to 0495. /// internal static string _44536 { get { return ResourceManager.GetString("44536", resourceCulture); } } /// /// Looks up a localized string similar to 0496. /// internal static string _44537 { get { return ResourceManager.GetString("44537", resourceCulture); } } /// /// Looks up a localized string similar to 0D49. /// internal static string _4454 { get { return ResourceManager.GetString("4454", resourceCulture); } } /// /// Looks up a localized string similar to 0497. /// internal static string _44540 { get { return ResourceManager.GetString("44540", resourceCulture); } } /// /// Looks up a localized string similar to 0498. /// internal static string _44543 { get { return ResourceManager.GetString("44543", resourceCulture); } } /// /// Looks up a localized string similar to 0499. /// internal static string _44544 { get { return ResourceManager.GetString("44544", resourceCulture); } } /// /// Looks up a localized string similar to 049A. /// internal static string _44545 { get { return ResourceManager.GetString("44545", resourceCulture); } } /// /// Looks up a localized string similar to 0D4A. /// internal static string _4455 { get { return ResourceManager.GetString("4455", resourceCulture); } } /// /// Looks up a localized string similar to 049B. /// internal static string _44552 { get { return ResourceManager.GetString("44552", resourceCulture); } } /// /// Looks up a localized string similar to 049C. /// internal static string _44553 { get { return ResourceManager.GetString("44553", resourceCulture); } } /// /// Looks up a localized string similar to 049D. /// internal static string _44555 { get { return ResourceManager.GetString("44555", resourceCulture); } } /// /// Looks up a localized string similar to 049E. /// internal static string _44557 { get { return ResourceManager.GetString("44557", resourceCulture); } } /// /// Looks up a localized string similar to 0D4B. /// internal static string _4456 { get { return ResourceManager.GetString("4456", resourceCulture); } } /// /// Looks up a localized string similar to 049F. /// internal static string _44564 { get { return ResourceManager.GetString("44564", resourceCulture); } } /// /// Looks up a localized string similar to 0D4C. /// internal static string _4457 { get { return ResourceManager.GetString("4457", resourceCulture); } } /// /// Looks up a localized string similar to 04A0. /// internal static string _44592 { get { return ResourceManager.GetString("44592", resourceCulture); } } /// /// Looks up a localized string similar to 04A1. /// internal static string _44593 { get { return ResourceManager.GetString("44593", resourceCulture); } } /// /// Looks up a localized string similar to 04A2. /// internal static string _44596 { get { return ResourceManager.GetString("44596", resourceCulture); } } /// /// Looks up a localized string similar to 04A3. /// internal static string _44599 { get { return ResourceManager.GetString("44599", resourceCulture); } } /// /// Looks up a localized string similar to 04A4. /// internal static string _44600 { get { return ResourceManager.GetString("44600", resourceCulture); } } /// /// Looks up a localized string similar to 04A5. /// internal static string _44602 { get { return ResourceManager.GetString("44602", resourceCulture); } } /// /// Looks up a localized string similar to 04A6. /// internal static string _44608 { get { return ResourceManager.GetString("44608", resourceCulture); } } /// /// Looks up a localized string similar to 04A7. /// internal static string _44609 { get { return ResourceManager.GetString("44609", resourceCulture); } } /// /// Looks up a localized string similar to 0D4D. /// internal static string _4461 { get { return ResourceManager.GetString("4461", resourceCulture); } } /// /// Looks up a localized string similar to 04A8. /// internal static string _44611 { get { return ResourceManager.GetString("44611", resourceCulture); } } /// /// Looks up a localized string similar to 04A9. /// internal static string _44613 { get { return ResourceManager.GetString("44613", resourceCulture); } } /// /// Looks up a localized string similar to 04AA. /// internal static string _44614 { get { return ResourceManager.GetString("44614", resourceCulture); } } /// /// Looks up a localized string similar to 04AB. /// internal static string _44618 { get { return ResourceManager.GetString("44618", resourceCulture); } } /// /// Looks up a localized string similar to 0D4E. /// internal static string _4462 { get { return ResourceManager.GetString("4462", resourceCulture); } } /// /// Looks up a localized string similar to 04AC. /// internal static string _44620 { get { return ResourceManager.GetString("44620", resourceCulture); } } /// /// Looks up a localized string similar to 04AD. /// internal static string _44621 { get { return ResourceManager.GetString("44621", resourceCulture); } } /// /// Looks up a localized string similar to 04AE. /// internal static string _44622 { get { return ResourceManager.GetString("44622", resourceCulture); } } /// /// Looks up a localized string similar to 04AF. /// internal static string _44624 { get { return ResourceManager.GetString("44624", resourceCulture); } } /// /// Looks up a localized string similar to 04B0. /// internal static string _44628 { get { return ResourceManager.GetString("44628", resourceCulture); } } /// /// Looks up a localized string similar to 04B1. /// internal static string _44630 { get { return ResourceManager.GetString("44630", resourceCulture); } } /// /// Looks up a localized string similar to 04B2. /// internal static string _44636 { get { return ResourceManager.GetString("44636", resourceCulture); } } /// /// Looks up a localized string similar to 04B3. /// internal static string _44637 { get { return ResourceManager.GetString("44637", resourceCulture); } } /// /// Looks up a localized string similar to 04B4. /// internal static string _44639 { get { return ResourceManager.GetString("44639", resourceCulture); } } /// /// Looks up a localized string similar to 04B5. /// internal static string _44640 { get { return ResourceManager.GetString("44640", resourceCulture); } } /// /// Looks up a localized string similar to 04B6. /// internal static string _44641 { get { return ResourceManager.GetString("44641", resourceCulture); } } /// /// Looks up a localized string similar to 04B7. /// internal static string _44645 { get { return ResourceManager.GetString("44645", resourceCulture); } } /// /// Looks up a localized string similar to 04B8. /// internal static string _44648 { get { return ResourceManager.GetString("44648", resourceCulture); } } /// /// Looks up a localized string similar to 04B9. /// internal static string _44649 { get { return ResourceManager.GetString("44649", resourceCulture); } } /// /// Looks up a localized string similar to 04BA. /// internal static string _44652 { get { return ResourceManager.GetString("44652", resourceCulture); } } /// /// Looks up a localized string similar to 04BB. /// internal static string _44656 { get { return ResourceManager.GetString("44656", resourceCulture); } } /// /// Looks up a localized string similar to 0D4F. /// internal static string _4466 { get { return ResourceManager.GetString("4466", resourceCulture); } } /// /// Looks up a localized string similar to 04BC. /// internal static string _44664 { get { return ResourceManager.GetString("44664", resourceCulture); } } /// /// Looks up a localized string similar to 04BD. /// internal static string _44665 { get { return ResourceManager.GetString("44665", resourceCulture); } } /// /// Looks up a localized string similar to 04BE. /// internal static string _44667 { get { return ResourceManager.GetString("44667", resourceCulture); } } /// /// Looks up a localized string similar to 04BF. /// internal static string _44668 { get { return ResourceManager.GetString("44668", resourceCulture); } } /// /// Looks up a localized string similar to 04C0. /// internal static string _44669 { get { return ResourceManager.GetString("44669", resourceCulture); } } /// /// Looks up a localized string similar to 0D50. /// internal static string _4467 { get { return ResourceManager.GetString("4467", resourceCulture); } } /// /// Looks up a localized string similar to 04C1. /// internal static string _44676 { get { return ResourceManager.GetString("44676", resourceCulture); } } /// /// Looks up a localized string similar to 04C2. /// internal static string _44677 { get { return ResourceManager.GetString("44677", resourceCulture); } } /// /// Looks up a localized string similar to 04C3. /// internal static string _44684 { get { return ResourceManager.GetString("44684", resourceCulture); } } /// /// Looks up a localized string similar to 0D51. /// internal static string _4469 { get { return ResourceManager.GetString("4469", resourceCulture); } } /// /// Looks up a localized string similar to 04C4. /// internal static string _44732 { get { return ResourceManager.GetString("44732", resourceCulture); } } /// /// Looks up a localized string similar to 04C5. /// internal static string _44733 { get { return ResourceManager.GetString("44733", resourceCulture); } } /// /// Looks up a localized string similar to 04C6. /// internal static string _44734 { get { return ResourceManager.GetString("44734", resourceCulture); } } /// /// Looks up a localized string similar to 04C7. /// internal static string _44736 { get { return ResourceManager.GetString("44736", resourceCulture); } } /// /// Looks up a localized string similar to 04C8. /// internal static string _44740 { get { return ResourceManager.GetString("44740", resourceCulture); } } /// /// Looks up a localized string similar to 04C9. /// internal static string _44748 { get { return ResourceManager.GetString("44748", resourceCulture); } } /// /// Looks up a localized string similar to 04CA. /// internal static string _44749 { get { return ResourceManager.GetString("44749", resourceCulture); } } /// /// Looks up a localized string similar to 04CB. /// internal static string _44751 { get { return ResourceManager.GetString("44751", resourceCulture); } } /// /// Looks up a localized string similar to 04CC. /// internal static string _44752 { get { return ResourceManager.GetString("44752", resourceCulture); } } /// /// Looks up a localized string similar to 04CD. /// internal static string _44753 { get { return ResourceManager.GetString("44753", resourceCulture); } } /// /// Looks up a localized string similar to 04CE. /// internal static string _44760 { get { return ResourceManager.GetString("44760", resourceCulture); } } /// /// Looks up a localized string similar to 04CF. /// internal static string _44761 { get { return ResourceManager.GetString("44761", resourceCulture); } } /// /// Looks up a localized string similar to 04D0. /// internal static string _44764 { get { return ResourceManager.GetString("44764", resourceCulture); } } /// /// Looks up a localized string similar to 04D1. /// internal static string _44776 { get { return ResourceManager.GetString("44776", resourceCulture); } } /// /// Looks up a localized string similar to 04D2. /// internal static string _44779 { get { return ResourceManager.GetString("44779", resourceCulture); } } /// /// Looks up a localized string similar to 04D3. /// internal static string _44781 { get { return ResourceManager.GetString("44781", resourceCulture); } } /// /// Looks up a localized string similar to 04D4. /// internal static string _44788 { get { return ResourceManager.GetString("44788", resourceCulture); } } /// /// Looks up a localized string similar to 04D5. /// internal static string _44792 { get { return ResourceManager.GetString("44792", resourceCulture); } } /// /// Looks up a localized string similar to 04D6. /// internal static string _44796 { get { return ResourceManager.GetString("44796", resourceCulture); } } /// /// Looks up a localized string similar to 04D7. /// internal static string _44807 { get { return ResourceManager.GetString("44807", resourceCulture); } } /// /// Looks up a localized string similar to 04D8. /// internal static string _44808 { get { return ResourceManager.GetString("44808", resourceCulture); } } /// /// Looks up a localized string similar to 04D9. /// internal static string _44813 { get { return ResourceManager.GetString("44813", resourceCulture); } } /// /// Looks up a localized string similar to 04DA. /// internal static string _44816 { get { return ResourceManager.GetString("44816", resourceCulture); } } /// /// Looks up a localized string similar to 04DB. /// internal static string _44844 { get { return ResourceManager.GetString("44844", resourceCulture); } } /// /// Looks up a localized string similar to 04DC. /// internal static string _44845 { get { return ResourceManager.GetString("44845", resourceCulture); } } /// /// Looks up a localized string similar to 04DD. /// internal static string _44848 { get { return ResourceManager.GetString("44848", resourceCulture); } } /// /// Looks up a localized string similar to 04DE. /// internal static string _44850 { get { return ResourceManager.GetString("44850", resourceCulture); } } /// /// Looks up a localized string similar to 04DF. /// internal static string _44852 { get { return ResourceManager.GetString("44852", resourceCulture); } } /// /// Looks up a localized string similar to 04E0. /// internal static string _44860 { get { return ResourceManager.GetString("44860", resourceCulture); } } /// /// Looks up a localized string similar to 04E1. /// internal static string _44861 { get { return ResourceManager.GetString("44861", resourceCulture); } } /// /// Looks up a localized string similar to 04E2. /// internal static string _44863 { get { return ResourceManager.GetString("44863", resourceCulture); } } /// /// Looks up a localized string similar to 04E3. /// internal static string _44865 { get { return ResourceManager.GetString("44865", resourceCulture); } } /// /// Looks up a localized string similar to 04E4. /// internal static string _44866 { get { return ResourceManager.GetString("44866", resourceCulture); } } /// /// Looks up a localized string similar to 04E5. /// internal static string _44867 { get { return ResourceManager.GetString("44867", resourceCulture); } } /// /// Looks up a localized string similar to 04E6. /// internal static string _44872 { get { return ResourceManager.GetString("44872", resourceCulture); } } /// /// Looks up a localized string similar to 04E7. /// internal static string _44873 { get { return ResourceManager.GetString("44873", resourceCulture); } } /// /// Looks up a localized string similar to 04E8. /// internal static string _44880 { get { return ResourceManager.GetString("44880", resourceCulture); } } /// /// Looks up a localized string similar to 04E9. /// internal static string _44892 { get { return ResourceManager.GetString("44892", resourceCulture); } } /// /// Looks up a localized string similar to 04EA. /// internal static string _44893 { get { return ResourceManager.GetString("44893", resourceCulture); } } /// /// Looks up a localized string similar to 04EB. /// internal static string _44900 { get { return ResourceManager.GetString("44900", resourceCulture); } } /// /// Looks up a localized string similar to 04EC. /// internal static string _44901 { get { return ResourceManager.GetString("44901", resourceCulture); } } /// /// Looks up a localized string similar to 04ED. /// internal static string _44921 { get { return ResourceManager.GetString("44921", resourceCulture); } } /// /// Looks up a localized string similar to 04EE. /// internal static string _44928 { get { return ResourceManager.GetString("44928", resourceCulture); } } /// /// Looks up a localized string similar to 04EF. /// internal static string _44932 { get { return ResourceManager.GetString("44932", resourceCulture); } } /// /// Looks up a localized string similar to 04F0. /// internal static string _44936 { get { return ResourceManager.GetString("44936", resourceCulture); } } /// /// Looks up a localized string similar to 04F1. /// internal static string _44944 { get { return ResourceManager.GetString("44944", resourceCulture); } } /// /// Looks up a localized string similar to 04F2. /// internal static string _44945 { get { return ResourceManager.GetString("44945", resourceCulture); } } /// /// Looks up a localized string similar to 04F3. /// internal static string _44949 { get { return ResourceManager.GetString("44949", resourceCulture); } } /// /// Looks up a localized string similar to 04F4. /// internal static string _44956 { get { return ResourceManager.GetString("44956", resourceCulture); } } /// /// Looks up a localized string similar to 04F5. /// internal static string _44984 { get { return ResourceManager.GetString("44984", resourceCulture); } } /// /// Looks up a localized string similar to 04F6. /// internal static string _44985 { get { return ResourceManager.GetString("44985", resourceCulture); } } /// /// Looks up a localized string similar to 04F7. /// internal static string _44988 { get { return ResourceManager.GetString("44988", resourceCulture); } } /// /// Looks up a localized string similar to 04F8. /// internal static string _44992 { get { return ResourceManager.GetString("44992", resourceCulture); } } /// /// Looks up a localized string similar to 04F9. /// internal static string _44999 { get { return ResourceManager.GetString("44999", resourceCulture); } } /// /// Looks up a localized string similar to 01BE. /// internal static string _45 { get { return ResourceManager.GetString("45", resourceCulture); } } /// /// Looks up a localized string similar to 04FA. /// internal static string _45000 { get { return ResourceManager.GetString("45000", resourceCulture); } } /// /// Looks up a localized string similar to 04FB. /// internal static string _45001 { get { return ResourceManager.GetString("45001", resourceCulture); } } /// /// Looks up a localized string similar to 04FC. /// internal static string _45003 { get { return ResourceManager.GetString("45003", resourceCulture); } } /// /// Looks up a localized string similar to 04FD. /// internal static string _45005 { get { return ResourceManager.GetString("45005", resourceCulture); } } /// /// Looks up a localized string similar to 04FE. /// internal static string _45006 { get { return ResourceManager.GetString("45006", resourceCulture); } } /// /// Looks up a localized string similar to 04FF. /// internal static string _45012 { get { return ResourceManager.GetString("45012", resourceCulture); } } /// /// Looks up a localized string similar to 0500. /// internal static string _45020 { get { return ResourceManager.GetString("45020", resourceCulture); } } /// /// Looks up a localized string similar to 0501. /// internal static string _45032 { get { return ResourceManager.GetString("45032", resourceCulture); } } /// /// Looks up a localized string similar to 0502. /// internal static string _45033 { get { return ResourceManager.GetString("45033", resourceCulture); } } /// /// Looks up a localized string similar to 0503. /// internal static string _45040 { get { return ResourceManager.GetString("45040", resourceCulture); } } /// /// Looks up a localized string similar to 0504. /// internal static string _45041 { get { return ResourceManager.GetString("45041", resourceCulture); } } /// /// Looks up a localized string similar to 0505. /// internal static string _45044 { get { return ResourceManager.GetString("45044", resourceCulture); } } /// /// Looks up a localized string similar to 0506. /// internal static string _45048 { get { return ResourceManager.GetString("45048", resourceCulture); } } /// /// Looks up a localized string similar to 0507. /// internal static string _45056 { get { return ResourceManager.GetString("45056", resourceCulture); } } /// /// Looks up a localized string similar to 0508. /// internal static string _45057 { get { return ResourceManager.GetString("45057", resourceCulture); } } /// /// Looks up a localized string similar to 0509. /// internal static string _45060 { get { return ResourceManager.GetString("45060", resourceCulture); } } /// /// Looks up a localized string similar to 050A. /// internal static string _45068 { get { return ResourceManager.GetString("45068", resourceCulture); } } /// /// Looks up a localized string similar to 050B. /// internal static string _45072 { get { return ResourceManager.GetString("45072", resourceCulture); } } /// /// Looks up a localized string similar to 050C. /// internal static string _45076 { get { return ResourceManager.GetString("45076", resourceCulture); } } /// /// Looks up a localized string similar to 050D. /// internal static string _45084 { get { return ResourceManager.GetString("45084", resourceCulture); } } /// /// Looks up a localized string similar to 050E. /// internal static string _45085 { get { return ResourceManager.GetString("45085", resourceCulture); } } /// /// Looks up a localized string similar to 050F. /// internal static string _45096 { get { return ResourceManager.GetString("45096", resourceCulture); } } /// /// Looks up a localized string similar to 0510. /// internal static string _45124 { get { return ResourceManager.GetString("45124", resourceCulture); } } /// /// Looks up a localized string similar to 0511. /// internal static string _45125 { get { return ResourceManager.GetString("45125", resourceCulture); } } /// /// Looks up a localized string similar to 0512. /// internal static string _45128 { get { return ResourceManager.GetString("45128", resourceCulture); } } /// /// Looks up a localized string similar to 0513. /// internal static string _45130 { get { return ResourceManager.GetString("45130", resourceCulture); } } /// /// Looks up a localized string similar to 0514. /// internal static string _45132 { get { return ResourceManager.GetString("45132", resourceCulture); } } /// /// Looks up a localized string similar to 0515. /// internal static string _45134 { get { return ResourceManager.GetString("45134", resourceCulture); } } /// /// Looks up a localized string similar to 0516. /// internal static string _45139 { get { return ResourceManager.GetString("45139", resourceCulture); } } /// /// Looks up a localized string similar to 0517. /// internal static string _45140 { get { return ResourceManager.GetString("45140", resourceCulture); } } /// /// Looks up a localized string similar to 0518. /// internal static string _45141 { get { return ResourceManager.GetString("45141", resourceCulture); } } /// /// Looks up a localized string similar to 0519. /// internal static string _45143 { get { return ResourceManager.GetString("45143", resourceCulture); } } /// /// Looks up a localized string similar to 051A. /// internal static string _45145 { get { return ResourceManager.GetString("45145", resourceCulture); } } /// /// Looks up a localized string similar to 051B. /// internal static string _45149 { get { return ResourceManager.GetString("45149", resourceCulture); } } /// /// Looks up a localized string similar to 051C. /// internal static string _45180 { get { return ResourceManager.GetString("45180", resourceCulture); } } /// /// Looks up a localized string similar to 051D. /// internal static string _45181 { get { return ResourceManager.GetString("45181", resourceCulture); } } /// /// Looks up a localized string similar to 051E. /// internal static string _45184 { get { return ResourceManager.GetString("45184", resourceCulture); } } /// /// Looks up a localized string similar to 051F. /// internal static string _45188 { get { return ResourceManager.GetString("45188", resourceCulture); } } /// /// Looks up a localized string similar to 0520. /// internal static string _45196 { get { return ResourceManager.GetString("45196", resourceCulture); } } /// /// Looks up a localized string similar to 0521. /// internal static string _45197 { get { return ResourceManager.GetString("45197", resourceCulture); } } /// /// Looks up a localized string similar to 0522. /// internal static string _45199 { get { return ResourceManager.GetString("45199", resourceCulture); } } /// /// Looks up a localized string similar to 0523. /// internal static string _45201 { get { return ResourceManager.GetString("45201", resourceCulture); } } /// /// Looks up a localized string similar to 0524. /// internal static string _45208 { get { return ResourceManager.GetString("45208", resourceCulture); } } /// /// Looks up a localized string similar to 0525. /// internal static string _45209 { get { return ResourceManager.GetString("45209", resourceCulture); } } /// /// Looks up a localized string similar to 0526. /// internal static string _45210 { get { return ResourceManager.GetString("45210", resourceCulture); } } /// /// Looks up a localized string similar to 0527. /// internal static string _45212 { get { return ResourceManager.GetString("45212", resourceCulture); } } /// /// Looks up a localized string similar to 0528. /// internal static string _45215 { get { return ResourceManager.GetString("45215", resourceCulture); } } /// /// Looks up a localized string similar to 0529. /// internal static string _45216 { get { return ResourceManager.GetString("45216", resourceCulture); } } /// /// Looks up a localized string similar to 052A. /// internal static string _45217 { get { return ResourceManager.GetString("45217", resourceCulture); } } /// /// Looks up a localized string similar to 052B. /// internal static string _45218 { get { return ResourceManager.GetString("45218", resourceCulture); } } /// /// Looks up a localized string similar to 052C. /// internal static string _45224 { get { return ResourceManager.GetString("45224", resourceCulture); } } /// /// Looks up a localized string similar to 052D. /// internal static string _45225 { get { return ResourceManager.GetString("45225", resourceCulture); } } /// /// Looks up a localized string similar to 052E. /// internal static string _45227 { get { return ResourceManager.GetString("45227", resourceCulture); } } /// /// Looks up a localized string similar to 052F. /// internal static string _45228 { get { return ResourceManager.GetString("45228", resourceCulture); } } /// /// Looks up a localized string similar to 0530. /// internal static string _45229 { get { return ResourceManager.GetString("45229", resourceCulture); } } /// /// Looks up a localized string similar to 0531. /// internal static string _45230 { get { return ResourceManager.GetString("45230", resourceCulture); } } /// /// Looks up a localized string similar to 0532. /// internal static string _45231 { get { return ResourceManager.GetString("45231", resourceCulture); } } /// /// Looks up a localized string similar to 0533. /// internal static string _45233 { get { return ResourceManager.GetString("45233", resourceCulture); } } /// /// Looks up a localized string similar to 0534. /// internal static string _45235 { get { return ResourceManager.GetString("45235", resourceCulture); } } /// /// Looks up a localized string similar to 0535. /// internal static string _45236 { get { return ResourceManager.GetString("45236", resourceCulture); } } /// /// Looks up a localized string similar to 0536. /// internal static string _45237 { get { return ResourceManager.GetString("45237", resourceCulture); } } /// /// Looks up a localized string similar to 0537. /// internal static string _45240 { get { return ResourceManager.GetString("45240", resourceCulture); } } /// /// Looks up a localized string similar to 0538. /// internal static string _45244 { get { return ResourceManager.GetString("45244", resourceCulture); } } /// /// Looks up a localized string similar to 0539. /// internal static string _45252 { get { return ResourceManager.GetString("45252", resourceCulture); } } /// /// Looks up a localized string similar to 053A. /// internal static string _45253 { get { return ResourceManager.GetString("45253", resourceCulture); } } /// /// Looks up a localized string similar to 053B. /// internal static string _45255 { get { return ResourceManager.GetString("45255", resourceCulture); } } /// /// Looks up a localized string similar to 053C. /// internal static string _45256 { get { return ResourceManager.GetString("45256", resourceCulture); } } /// /// Looks up a localized string similar to 053D. /// internal static string _45257 { get { return ResourceManager.GetString("45257", resourceCulture); } } /// /// Looks up a localized string similar to 053E. /// internal static string _45264 { get { return ResourceManager.GetString("45264", resourceCulture); } } /// /// Looks up a localized string similar to 053F. /// internal static string _45265 { get { return ResourceManager.GetString("45265", resourceCulture); } } /// /// Looks up a localized string similar to 0540. /// internal static string _45268 { get { return ResourceManager.GetString("45268", resourceCulture); } } /// /// Looks up a localized string similar to 0541. /// internal static string _45272 { get { return ResourceManager.GetString("45272", resourceCulture); } } /// /// Looks up a localized string similar to 0542. /// internal static string _45280 { get { return ResourceManager.GetString("45280", resourceCulture); } } /// /// Looks up a localized string similar to 0543. /// internal static string _45285 { get { return ResourceManager.GetString("45285", resourceCulture); } } /// /// Looks up a localized string similar to 0544. /// internal static string _45320 { get { return ResourceManager.GetString("45320", resourceCulture); } } /// /// Looks up a localized string similar to 0545. /// internal static string _45321 { get { return ResourceManager.GetString("45321", resourceCulture); } } /// /// Looks up a localized string similar to 0546. /// internal static string _45323 { get { return ResourceManager.GetString("45323", resourceCulture); } } /// /// Looks up a localized string similar to 0547. /// internal static string _45324 { get { return ResourceManager.GetString("45324", resourceCulture); } } /// /// Looks up a localized string similar to 0548. /// internal static string _45328 { get { return ResourceManager.GetString("45328", resourceCulture); } } /// /// Looks up a localized string similar to 0549. /// internal static string _45330 { get { return ResourceManager.GetString("45330", resourceCulture); } } /// /// Looks up a localized string similar to 054A. /// internal static string _45331 { get { return ResourceManager.GetString("45331", resourceCulture); } } /// /// Looks up a localized string similar to 054B. /// internal static string _45336 { get { return ResourceManager.GetString("45336", resourceCulture); } } /// /// Looks up a localized string similar to 054C. /// internal static string _45337 { get { return ResourceManager.GetString("45337", resourceCulture); } } /// /// Looks up a localized string similar to 054D. /// internal static string _45339 { get { return ResourceManager.GetString("45339", resourceCulture); } } /// /// Looks up a localized string similar to 054E. /// internal static string _45340 { get { return ResourceManager.GetString("45340", resourceCulture); } } /// /// Looks up a localized string similar to 054F. /// internal static string _45341 { get { return ResourceManager.GetString("45341", resourceCulture); } } /// /// Looks up a localized string similar to 0550. /// internal static string _45347 { get { return ResourceManager.GetString("45347", resourceCulture); } } /// /// Looks up a localized string similar to 0551. /// internal static string _45348 { get { return ResourceManager.GetString("45348", resourceCulture); } } /// /// Looks up a localized string similar to 0552. /// internal static string _45349 { get { return ResourceManager.GetString("45349", resourceCulture); } } /// /// Looks up a localized string similar to 0553. /// internal static string _45352 { get { return ResourceManager.GetString("45352", resourceCulture); } } /// /// Looks up a localized string similar to 0554. /// internal static string _45356 { get { return ResourceManager.GetString("45356", resourceCulture); } } /// /// Looks up a localized string similar to 0555. /// internal static string _45364 { get { return ResourceManager.GetString("45364", resourceCulture); } } /// /// Looks up a localized string similar to 0556. /// internal static string _45365 { get { return ResourceManager.GetString("45365", resourceCulture); } } /// /// Looks up a localized string similar to 0557. /// internal static string _45367 { get { return ResourceManager.GetString("45367", resourceCulture); } } /// /// Looks up a localized string similar to 0558. /// internal static string _45368 { get { return ResourceManager.GetString("45368", resourceCulture); } } /// /// Looks up a localized string similar to 0559. /// internal static string _45369 { get { return ResourceManager.GetString("45369", resourceCulture); } } /// /// Looks up a localized string similar to 055A. /// internal static string _45376 { get { return ResourceManager.GetString("45376", resourceCulture); } } /// /// Looks up a localized string similar to 055B. /// internal static string _45377 { get { return ResourceManager.GetString("45377", resourceCulture); } } /// /// Looks up a localized string similar to 055C. /// internal static string _45380 { get { return ResourceManager.GetString("45380", resourceCulture); } } /// /// Looks up a localized string similar to 055D. /// internal static string _45384 { get { return ResourceManager.GetString("45384", resourceCulture); } } /// /// Looks up a localized string similar to 055E. /// internal static string _45392 { get { return ResourceManager.GetString("45392", resourceCulture); } } /// /// Looks up a localized string similar to 055F. /// internal static string _45393 { get { return ResourceManager.GetString("45393", resourceCulture); } } /// /// Looks up a localized string similar to 0560. /// internal static string _45396 { get { return ResourceManager.GetString("45396", resourceCulture); } } /// /// Looks up a localized string similar to 0561. /// internal static string _45397 { get { return ResourceManager.GetString("45397", resourceCulture); } } /// /// Looks up a localized string similar to 0562. /// internal static string _45400 { get { return ResourceManager.GetString("45400", resourceCulture); } } /// /// Looks up a localized string similar to 0563. /// internal static string _45404 { get { return ResourceManager.GetString("45404", resourceCulture); } } /// /// Looks up a localized string similar to 0564. /// internal static string _45408 { get { return ResourceManager.GetString("45408", resourceCulture); } } /// /// Looks up a localized string similar to 0565. /// internal static string _45432 { get { return ResourceManager.GetString("45432", resourceCulture); } } /// /// Looks up a localized string similar to 0566. /// internal static string _45433 { get { return ResourceManager.GetString("45433", resourceCulture); } } /// /// Looks up a localized string similar to 0567. /// internal static string _45436 { get { return ResourceManager.GetString("45436", resourceCulture); } } /// /// Looks up a localized string similar to 0568. /// internal static string _45440 { get { return ResourceManager.GetString("45440", resourceCulture); } } /// /// Looks up a localized string similar to 0569. /// internal static string _45442 { get { return ResourceManager.GetString("45442", resourceCulture); } } /// /// Looks up a localized string similar to 056A. /// internal static string _45448 { get { return ResourceManager.GetString("45448", resourceCulture); } } /// /// Looks up a localized string similar to 056B. /// internal static string _45449 { get { return ResourceManager.GetString("45449", resourceCulture); } } /// /// Looks up a localized string similar to 056C. /// internal static string _45451 { get { return ResourceManager.GetString("45451", resourceCulture); } } /// /// Looks up a localized string similar to 056D. /// internal static string _45453 { get { return ResourceManager.GetString("45453", resourceCulture); } } /// /// Looks up a localized string similar to 056E. /// internal static string _45458 { get { return ResourceManager.GetString("45458", resourceCulture); } } /// /// Looks up a localized string similar to 056F. /// internal static string _45459 { get { return ResourceManager.GetString("45459", resourceCulture); } } /// /// Looks up a localized string similar to 0570. /// internal static string _45460 { get { return ResourceManager.GetString("45460", resourceCulture); } } /// /// Looks up a localized string similar to 0571. /// internal static string _45464 { get { return ResourceManager.GetString("45464", resourceCulture); } } /// /// Looks up a localized string similar to 0572. /// internal static string _45468 { get { return ResourceManager.GetString("45468", resourceCulture); } } /// /// Looks up a localized string similar to 0573. /// internal static string _45480 { get { return ResourceManager.GetString("45480", resourceCulture); } } /// /// Looks up a localized string similar to 0574. /// internal static string _45516 { get { return ResourceManager.GetString("45516", resourceCulture); } } /// /// Looks up a localized string similar to 0575. /// internal static string _45520 { get { return ResourceManager.GetString("45520", resourceCulture); } } /// /// Looks up a localized string similar to 0576. /// internal static string _45524 { get { return ResourceManager.GetString("45524", resourceCulture); } } /// /// Looks up a localized string similar to 0577. /// internal static string _45532 { get { return ResourceManager.GetString("45532", resourceCulture); } } /// /// Looks up a localized string similar to 0578. /// internal static string _45533 { get { return ResourceManager.GetString("45533", resourceCulture); } } /// /// Looks up a localized string similar to 0579. /// internal static string _45535 { get { return ResourceManager.GetString("45535", resourceCulture); } } /// /// Looks up a localized string similar to 057A. /// internal static string _45544 { get { return ResourceManager.GetString("45544", resourceCulture); } } /// /// Looks up a localized string similar to 057B. /// internal static string _45545 { get { return ResourceManager.GetString("45545", resourceCulture); } } /// /// Looks up a localized string similar to 057C. /// internal static string _45548 { get { return ResourceManager.GetString("45548", resourceCulture); } } /// /// Looks up a localized string similar to 057D. /// internal static string _45552 { get { return ResourceManager.GetString("45552", resourceCulture); } } /// /// Looks up a localized string similar to 057E. /// internal static string _45561 { get { return ResourceManager.GetString("45561", resourceCulture); } } /// /// Looks up a localized string similar to 057F. /// internal static string _45563 { get { return ResourceManager.GetString("45563", resourceCulture); } } /// /// Looks up a localized string similar to 0580. /// internal static string _45565 { get { return ResourceManager.GetString("45565", resourceCulture); } } /// /// Looks up a localized string similar to 0581. /// internal static string _45572 { get { return ResourceManager.GetString("45572", resourceCulture); } } /// /// Looks up a localized string similar to 0582. /// internal static string _45573 { get { return ResourceManager.GetString("45573", resourceCulture); } } /// /// Looks up a localized string similar to 0583. /// internal static string _45576 { get { return ResourceManager.GetString("45576", resourceCulture); } } /// /// Looks up a localized string similar to 0584. /// internal static string _45579 { get { return ResourceManager.GetString("45579", resourceCulture); } } /// /// Looks up a localized string similar to 0585. /// internal static string _45580 { get { return ResourceManager.GetString("45580", resourceCulture); } } /// /// Looks up a localized string similar to 0586. /// internal static string _45588 { get { return ResourceManager.GetString("45588", resourceCulture); } } /// /// Looks up a localized string similar to 0587. /// internal static string _45589 { get { return ResourceManager.GetString("45589", resourceCulture); } } /// /// Looks up a localized string similar to 0588. /// internal static string _45591 { get { return ResourceManager.GetString("45591", resourceCulture); } } /// /// Looks up a localized string similar to 0589. /// internal static string _45593 { get { return ResourceManager.GetString("45593", resourceCulture); } } /// /// Looks up a localized string similar to 058A. /// internal static string _45600 { get { return ResourceManager.GetString("45600", resourceCulture); } } /// /// Looks up a localized string similar to 058B. /// internal static string _45620 { get { return ResourceManager.GetString("45620", resourceCulture); } } /// /// Looks up a localized string similar to 058C. /// internal static string _45628 { get { return ResourceManager.GetString("45628", resourceCulture); } } /// /// Looks up a localized string similar to 058D. /// internal static string _45656 { get { return ResourceManager.GetString("45656", resourceCulture); } } /// /// Looks up a localized string similar to 058E. /// internal static string _45660 { get { return ResourceManager.GetString("45660", resourceCulture); } } /// /// Looks up a localized string similar to 058F. /// internal static string _45664 { get { return ResourceManager.GetString("45664", resourceCulture); } } /// /// Looks up a localized string similar to 0590. /// internal static string _45672 { get { return ResourceManager.GetString("45672", resourceCulture); } } /// /// Looks up a localized string similar to 0591. /// internal static string _45673 { get { return ResourceManager.GetString("45673", resourceCulture); } } /// /// Looks up a localized string similar to 0592. /// internal static string _45684 { get { return ResourceManager.GetString("45684", resourceCulture); } } /// /// Looks up a localized string similar to 0593. /// internal static string _45685 { get { return ResourceManager.GetString("45685", resourceCulture); } } /// /// Looks up a localized string similar to 0594. /// internal static string _45692 { get { return ResourceManager.GetString("45692", resourceCulture); } } /// /// Looks up a localized string similar to 0595. /// internal static string _45700 { get { return ResourceManager.GetString("45700", resourceCulture); } } /// /// Looks up a localized string similar to 0596. /// internal static string _45701 { get { return ResourceManager.GetString("45701", resourceCulture); } } /// /// Looks up a localized string similar to 0597. /// internal static string _45705 { get { return ResourceManager.GetString("45705", resourceCulture); } } /// /// Looks up a localized string similar to 0598. /// internal static string _45712 { get { return ResourceManager.GetString("45712", resourceCulture); } } /// /// Looks up a localized string similar to 0599. /// internal static string _45713 { get { return ResourceManager.GetString("45713", resourceCulture); } } /// /// Looks up a localized string similar to 059A. /// internal static string _45716 { get { return ResourceManager.GetString("45716", resourceCulture); } } /// /// Looks up a localized string similar to 059B. /// internal static string _45720 { get { return ResourceManager.GetString("45720", resourceCulture); } } /// /// Looks up a localized string similar to 059C. /// internal static string _45721 { get { return ResourceManager.GetString("45721", resourceCulture); } } /// /// Looks up a localized string similar to 059D. /// internal static string _45722 { get { return ResourceManager.GetString("45722", resourceCulture); } } /// /// Looks up a localized string similar to 059E. /// internal static string _45728 { get { return ResourceManager.GetString("45728", resourceCulture); } } /// /// Looks up a localized string similar to 059F. /// internal static string _45729 { get { return ResourceManager.GetString("45729", resourceCulture); } } /// /// Looks up a localized string similar to 05A0. /// internal static string _45731 { get { return ResourceManager.GetString("45731", resourceCulture); } } /// /// Looks up a localized string similar to 05A1. /// internal static string _45733 { get { return ResourceManager.GetString("45733", resourceCulture); } } /// /// Looks up a localized string similar to 05A2. /// internal static string _45734 { get { return ResourceManager.GetString("45734", resourceCulture); } } /// /// Looks up a localized string similar to 05A3. /// internal static string _45738 { get { return ResourceManager.GetString("45738", resourceCulture); } } /// /// Looks up a localized string similar to 05A4. /// internal static string _45740 { get { return ResourceManager.GetString("45740", resourceCulture); } } /// /// Looks up a localized string similar to 05A5. /// internal static string _45744 { get { return ResourceManager.GetString("45744", resourceCulture); } } /// /// Looks up a localized string similar to 05A6. /// internal static string _45748 { get { return ResourceManager.GetString("45748", resourceCulture); } } /// /// Looks up a localized string similar to 05A7. /// internal static string _45768 { get { return ResourceManager.GetString("45768", resourceCulture); } } /// /// Looks up a localized string similar to 05A8. /// internal static string _45769 { get { return ResourceManager.GetString("45769", resourceCulture); } } /// /// Looks up a localized string similar to 05A9. /// internal static string _45772 { get { return ResourceManager.GetString("45772", resourceCulture); } } /// /// Looks up a localized string similar to 05AA. /// internal static string _45776 { get { return ResourceManager.GetString("45776", resourceCulture); } } /// /// Looks up a localized string similar to 05AB. /// internal static string _45778 { get { return ResourceManager.GetString("45778", resourceCulture); } } /// /// Looks up a localized string similar to 05AC. /// internal static string _45784 { get { return ResourceManager.GetString("45784", resourceCulture); } } /// /// Looks up a localized string similar to 05AD. /// internal static string _45785 { get { return ResourceManager.GetString("45785", resourceCulture); } } /// /// Looks up a localized string similar to 05AE. /// internal static string _45787 { get { return ResourceManager.GetString("45787", resourceCulture); } } /// /// Looks up a localized string similar to 05AF. /// internal static string _45789 { get { return ResourceManager.GetString("45789", resourceCulture); } } /// /// Looks up a localized string similar to 05B0. /// internal static string _45794 { get { return ResourceManager.GetString("45794", resourceCulture); } } /// /// Looks up a localized string similar to 05B1. /// internal static string _45796 { get { return ResourceManager.GetString("45796", resourceCulture); } } /// /// Looks up a localized string similar to 05B2. /// internal static string _45797 { get { return ResourceManager.GetString("45797", resourceCulture); } } /// /// Looks up a localized string similar to 05B3. /// internal static string _45798 { get { return ResourceManager.GetString("45798", resourceCulture); } } /// /// Looks up a localized string similar to 05B4. /// internal static string _45800 { get { return ResourceManager.GetString("45800", resourceCulture); } } /// /// Looks up a localized string similar to 05B5. /// internal static string _45803 { get { return ResourceManager.GetString("45803", resourceCulture); } } /// /// Looks up a localized string similar to 05B6. /// internal static string _45804 { get { return ResourceManager.GetString("45804", resourceCulture); } } /// /// Looks up a localized string similar to 05B7. /// internal static string _45805 { get { return ResourceManager.GetString("45805", resourceCulture); } } /// /// Looks up a localized string similar to 05B8. /// internal static string _45806 { get { return ResourceManager.GetString("45806", resourceCulture); } } /// /// Looks up a localized string similar to 05B9. /// internal static string _45807 { get { return ResourceManager.GetString("45807", resourceCulture); } } /// /// Looks up a localized string similar to 05BA. /// internal static string _45811 { get { return ResourceManager.GetString("45811", resourceCulture); } } /// /// Looks up a localized string similar to 05BB. /// internal static string _45812 { get { return ResourceManager.GetString("45812", resourceCulture); } } /// /// Looks up a localized string similar to 05BC. /// internal static string _45813 { get { return ResourceManager.GetString("45813", resourceCulture); } } /// /// Looks up a localized string similar to 05BD. /// internal static string _45815 { get { return ResourceManager.GetString("45815", resourceCulture); } } /// /// Looks up a localized string similar to 05BE. /// internal static string _45816 { get { return ResourceManager.GetString("45816", resourceCulture); } } /// /// Looks up a localized string similar to 05BF. /// internal static string _45817 { get { return ResourceManager.GetString("45817", resourceCulture); } } /// /// Looks up a localized string similar to 05C0. /// internal static string _45818 { get { return ResourceManager.GetString("45818", resourceCulture); } } /// /// Looks up a localized string similar to 05C1. /// internal static string _45819 { get { return ResourceManager.GetString("45819", resourceCulture); } } /// /// Looks up a localized string similar to 05C2. /// internal static string _45823 { get { return ResourceManager.GetString("45823", resourceCulture); } } /// /// Looks up a localized string similar to 05C3. /// internal static string _45824 { get { return ResourceManager.GetString("45824", resourceCulture); } } /// /// Looks up a localized string similar to 05C4. /// internal static string _45825 { get { return ResourceManager.GetString("45825", resourceCulture); } } /// /// Looks up a localized string similar to 05C5. /// internal static string _45828 { get { return ResourceManager.GetString("45828", resourceCulture); } } /// /// Looks up a localized string similar to 05C6. /// internal static string _45832 { get { return ResourceManager.GetString("45832", resourceCulture); } } /// /// Looks up a localized string similar to 05C7. /// internal static string _45840 { get { return ResourceManager.GetString("45840", resourceCulture); } } /// /// Looks up a localized string similar to 05C8. /// internal static string _45841 { get { return ResourceManager.GetString("45841", resourceCulture); } } /// /// Looks up a localized string similar to 05C9. /// internal static string _45843 { get { return ResourceManager.GetString("45843", resourceCulture); } } /// /// Looks up a localized string similar to 05CA. /// internal static string _45844 { get { return ResourceManager.GetString("45844", resourceCulture); } } /// /// Looks up a localized string similar to 05CB. /// internal static string _45845 { get { return ResourceManager.GetString("45845", resourceCulture); } } /// /// Looks up a localized string similar to 05CC. /// internal static string _45852 { get { return ResourceManager.GetString("45852", resourceCulture); } } /// /// Looks up a localized string similar to 05CD. /// internal static string _45908 { get { return ResourceManager.GetString("45908", resourceCulture); } } /// /// Looks up a localized string similar to 05CE. /// internal static string _45909 { get { return ResourceManager.GetString("45909", resourceCulture); } } /// /// Looks up a localized string similar to 05CF. /// internal static string _45910 { get { return ResourceManager.GetString("45910", resourceCulture); } } /// /// Looks up a localized string similar to 05D0. /// internal static string _45912 { get { return ResourceManager.GetString("45912", resourceCulture); } } /// /// Looks up a localized string similar to 05D1. /// internal static string _45915 { get { return ResourceManager.GetString("45915", resourceCulture); } } /// /// Looks up a localized string similar to 05D2. /// internal static string _45916 { get { return ResourceManager.GetString("45916", resourceCulture); } } /// /// Looks up a localized string similar to 05D3. /// internal static string _45918 { get { return ResourceManager.GetString("45918", resourceCulture); } } /// /// Looks up a localized string similar to 05D4. /// internal static string _45919 { get { return ResourceManager.GetString("45919", resourceCulture); } } /// /// Looks up a localized string similar to 05D5. /// internal static string _45924 { get { return ResourceManager.GetString("45924", resourceCulture); } } /// /// Looks up a localized string similar to 05D6. /// internal static string _45925 { get { return ResourceManager.GetString("45925", resourceCulture); } } /// /// Looks up a localized string similar to 05D7. /// internal static string _45927 { get { return ResourceManager.GetString("45927", resourceCulture); } } /// /// Looks up a localized string similar to 05D8. /// internal static string _45929 { get { return ResourceManager.GetString("45929", resourceCulture); } } /// /// Looks up a localized string similar to 05D9. /// internal static string _45931 { get { return ResourceManager.GetString("45931", resourceCulture); } } /// /// Looks up a localized string similar to 05DA. /// internal static string _45934 { get { return ResourceManager.GetString("45934", resourceCulture); } } /// /// Looks up a localized string similar to 05DB. /// internal static string _45936 { get { return ResourceManager.GetString("45936", resourceCulture); } } /// /// Looks up a localized string similar to 05DC. /// internal static string _45937 { get { return ResourceManager.GetString("45937", resourceCulture); } } /// /// Looks up a localized string similar to 05DD. /// internal static string _45940 { get { return ResourceManager.GetString("45940", resourceCulture); } } /// /// Looks up a localized string similar to 05DE. /// internal static string _45944 { get { return ResourceManager.GetString("45944", resourceCulture); } } /// /// Looks up a localized string similar to 05DF. /// internal static string _45952 { get { return ResourceManager.GetString("45952", resourceCulture); } } /// /// Looks up a localized string similar to 05E0. /// internal static string _45953 { get { return ResourceManager.GetString("45953", resourceCulture); } } /// /// Looks up a localized string similar to 05E1. /// internal static string _45955 { get { return ResourceManager.GetString("45955", resourceCulture); } } /// /// Looks up a localized string similar to 05E2. /// internal static string _45956 { get { return ResourceManager.GetString("45956", resourceCulture); } } /// /// Looks up a localized string similar to 05E3. /// internal static string _45957 { get { return ResourceManager.GetString("45957", resourceCulture); } } /// /// Looks up a localized string similar to 05E4. /// internal static string _45964 { get { return ResourceManager.GetString("45964", resourceCulture); } } /// /// Looks up a localized string similar to 05E5. /// internal static string _45968 { get { return ResourceManager.GetString("45968", resourceCulture); } } /// /// Looks up a localized string similar to 05E6. /// internal static string _45972 { get { return ResourceManager.GetString("45972", resourceCulture); } } /// /// Looks up a localized string similar to 05E7. /// internal static string _45984 { get { return ResourceManager.GetString("45984", resourceCulture); } } /// /// Looks up a localized string similar to 05E8. /// internal static string _45985 { get { return ResourceManager.GetString("45985", resourceCulture); } } /// /// Looks up a localized string similar to 05E9. /// internal static string _45992 { get { return ResourceManager.GetString("45992", resourceCulture); } } /// /// Looks up a localized string similar to 05EA. /// internal static string _45996 { get { return ResourceManager.GetString("45996", resourceCulture); } } /// /// Looks up a localized string similar to 01AE. /// internal static string _46 { get { return ResourceManager.GetString("46", resourceCulture); } } /// /// Looks up a localized string similar to 05EB. /// internal static string _46020 { get { return ResourceManager.GetString("46020", resourceCulture); } } /// /// Looks up a localized string similar to 05EC. /// internal static string _46021 { get { return ResourceManager.GetString("46021", resourceCulture); } } /// /// Looks up a localized string similar to 05ED. /// internal static string _46024 { get { return ResourceManager.GetString("46024", resourceCulture); } } /// /// Looks up a localized string similar to 05EE. /// internal static string _46027 { get { return ResourceManager.GetString("46027", resourceCulture); } } /// /// Looks up a localized string similar to 05EF. /// internal static string _46028 { get { return ResourceManager.GetString("46028", resourceCulture); } } /// /// Looks up a localized string similar to 05F0. /// internal static string _46030 { get { return ResourceManager.GetString("46030", resourceCulture); } } /// /// Looks up a localized string similar to 05F1. /// internal static string _46032 { get { return ResourceManager.GetString("46032", resourceCulture); } } /// /// Looks up a localized string similar to 05F2. /// internal static string _46036 { get { return ResourceManager.GetString("46036", resourceCulture); } } /// /// Looks up a localized string similar to 05F3. /// internal static string _46037 { get { return ResourceManager.GetString("46037", resourceCulture); } } /// /// Looks up a localized string similar to 05F4. /// internal static string _46039 { get { return ResourceManager.GetString("46039", resourceCulture); } } /// /// Looks up a localized string similar to 05F5. /// internal static string _46041 { get { return ResourceManager.GetString("46041", resourceCulture); } } /// /// Looks up a localized string similar to 05F6. /// internal static string _46043 { get { return ResourceManager.GetString("46043", resourceCulture); } } /// /// Looks up a localized string similar to 05F7. /// internal static string _46045 { get { return ResourceManager.GetString("46045", resourceCulture); } } /// /// Looks up a localized string similar to 05F8. /// internal static string _46048 { get { return ResourceManager.GetString("46048", resourceCulture); } } /// /// Looks up a localized string similar to 05F9. /// internal static string _46052 { get { return ResourceManager.GetString("46052", resourceCulture); } } /// /// Looks up a localized string similar to 05FA. /// internal static string _46056 { get { return ResourceManager.GetString("46056", resourceCulture); } } /// /// Looks up a localized string similar to 05FB. /// internal static string _46076 { get { return ResourceManager.GetString("46076", resourceCulture); } } /// /// Looks up a localized string similar to 05FC. /// internal static string _46096 { get { return ResourceManager.GetString("46096", resourceCulture); } } /// /// Looks up a localized string similar to 05FD. /// internal static string _46104 { get { return ResourceManager.GetString("46104", resourceCulture); } } /// /// Looks up a localized string similar to 05FE. /// internal static string _46108 { get { return ResourceManager.GetString("46108", resourceCulture); } } /// /// Looks up a localized string similar to 05FF. /// internal static string _46112 { get { return ResourceManager.GetString("46112", resourceCulture); } } /// /// Looks up a localized string similar to 0600. /// internal static string _46120 { get { return ResourceManager.GetString("46120", resourceCulture); } } /// /// Looks up a localized string similar to 0601. /// internal static string _46121 { get { return ResourceManager.GetString("46121", resourceCulture); } } /// /// Looks up a localized string similar to 0602. /// internal static string _46123 { get { return ResourceManager.GetString("46123", resourceCulture); } } /// /// Looks up a localized string similar to 0603. /// internal static string _46132 { get { return ResourceManager.GetString("46132", resourceCulture); } } /// /// Looks up a localized string similar to 0604. /// internal static string _46160 { get { return ResourceManager.GetString("46160", resourceCulture); } } /// /// Looks up a localized string similar to 0605. /// internal static string _46161 { get { return ResourceManager.GetString("46161", resourceCulture); } } /// /// Looks up a localized string similar to 0606. /// internal static string _46164 { get { return ResourceManager.GetString("46164", resourceCulture); } } /// /// Looks up a localized string similar to 0607. /// internal static string _46168 { get { return ResourceManager.GetString("46168", resourceCulture); } } /// /// Looks up a localized string similar to 0608. /// internal static string _46176 { get { return ResourceManager.GetString("46176", resourceCulture); } } /// /// Looks up a localized string similar to 0609. /// internal static string _46177 { get { return ResourceManager.GetString("46177", resourceCulture); } } /// /// Looks up a localized string similar to 060A. /// internal static string _46179 { get { return ResourceManager.GetString("46179", resourceCulture); } } /// /// Looks up a localized string similar to 060B. /// internal static string _46181 { get { return ResourceManager.GetString("46181", resourceCulture); } } /// /// Looks up a localized string similar to 060C. /// internal static string _46188 { get { return ResourceManager.GetString("46188", resourceCulture); } } /// /// Looks up a localized string similar to 060D. /// internal static string _46208 { get { return ResourceManager.GetString("46208", resourceCulture); } } /// /// Looks up a localized string similar to 060E. /// internal static string _46216 { get { return ResourceManager.GetString("46216", resourceCulture); } } /// /// Looks up a localized string similar to 060F. /// internal static string _46237 { get { return ResourceManager.GetString("46237", resourceCulture); } } /// /// Looks up a localized string similar to 0610. /// internal static string _46244 { get { return ResourceManager.GetString("46244", resourceCulture); } } /// /// Looks up a localized string similar to 0611. /// internal static string _46248 { get { return ResourceManager.GetString("46248", resourceCulture); } } /// /// Looks up a localized string similar to 0612. /// internal static string _46252 { get { return ResourceManager.GetString("46252", resourceCulture); } } /// /// Looks up a localized string similar to 0613. /// internal static string _46261 { get { return ResourceManager.GetString("46261", resourceCulture); } } /// /// Looks up a localized string similar to 0614. /// internal static string _46263 { get { return ResourceManager.GetString("46263", resourceCulture); } } /// /// Looks up a localized string similar to 0615. /// internal static string _46265 { get { return ResourceManager.GetString("46265", resourceCulture); } } /// /// Looks up a localized string similar to 0616. /// internal static string _46272 { get { return ResourceManager.GetString("46272", resourceCulture); } } /// /// Looks up a localized string similar to 0617. /// internal static string _46276 { get { return ResourceManager.GetString("46276", resourceCulture); } } /// /// Looks up a localized string similar to 0618. /// internal static string _46280 { get { return ResourceManager.GetString("46280", resourceCulture); } } /// /// Looks up a localized string similar to 0619. /// internal static string _46288 { get { return ResourceManager.GetString("46288", resourceCulture); } } /// /// Looks up a localized string similar to 061A. /// internal static string _46293 { get { return ResourceManager.GetString("46293", resourceCulture); } } /// /// Looks up a localized string similar to 061B. /// internal static string _46300 { get { return ResourceManager.GetString("46300", resourceCulture); } } /// /// Looks up a localized string similar to 061C. /// internal static string _46301 { get { return ResourceManager.GetString("46301", resourceCulture); } } /// /// Looks up a localized string similar to 061D. /// internal static string _46304 { get { return ResourceManager.GetString("46304", resourceCulture); } } /// /// Looks up a localized string similar to 061E. /// internal static string _46307 { get { return ResourceManager.GetString("46307", resourceCulture); } } /// /// Looks up a localized string similar to 061F. /// internal static string _46308 { get { return ResourceManager.GetString("46308", resourceCulture); } } /// /// Looks up a localized string similar to 0620. /// internal static string _46310 { get { return ResourceManager.GetString("46310", resourceCulture); } } /// /// Looks up a localized string similar to 0621. /// internal static string _46316 { get { return ResourceManager.GetString("46316", resourceCulture); } } /// /// Looks up a localized string similar to 0622. /// internal static string _46317 { get { return ResourceManager.GetString("46317", resourceCulture); } } /// /// Looks up a localized string similar to 0623. /// internal static string _46319 { get { return ResourceManager.GetString("46319", resourceCulture); } } /// /// Looks up a localized string similar to 0624. /// internal static string _46321 { get { return ResourceManager.GetString("46321", resourceCulture); } } /// /// Looks up a localized string similar to 0625. /// internal static string _46328 { get { return ResourceManager.GetString("46328", resourceCulture); } } /// /// Looks up a localized string similar to 0626. /// internal static string _46356 { get { return ResourceManager.GetString("46356", resourceCulture); } } /// /// Looks up a localized string similar to 0627. /// internal static string _46357 { get { return ResourceManager.GetString("46357", resourceCulture); } } /// /// Looks up a localized string similar to 0628. /// internal static string _46360 { get { return ResourceManager.GetString("46360", resourceCulture); } } /// /// Looks up a localized string similar to 0629. /// internal static string _46363 { get { return ResourceManager.GetString("46363", resourceCulture); } } /// /// Looks up a localized string similar to 062A. /// internal static string _46364 { get { return ResourceManager.GetString("46364", resourceCulture); } } /// /// Looks up a localized string similar to 062B. /// internal static string _46372 { get { return ResourceManager.GetString("46372", resourceCulture); } } /// /// Looks up a localized string similar to 062C. /// internal static string _46373 { get { return ResourceManager.GetString("46373", resourceCulture); } } /// /// Looks up a localized string similar to 062D. /// internal static string _46375 { get { return ResourceManager.GetString("46375", resourceCulture); } } /// /// Looks up a localized string similar to 062E. /// internal static string _46376 { get { return ResourceManager.GetString("46376", resourceCulture); } } /// /// Looks up a localized string similar to 062F. /// internal static string _46377 { get { return ResourceManager.GetString("46377", resourceCulture); } } /// /// Looks up a localized string similar to 0630. /// internal static string _46378 { get { return ResourceManager.GetString("46378", resourceCulture); } } /// /// Looks up a localized string similar to 0631. /// internal static string _46384 { get { return ResourceManager.GetString("46384", resourceCulture); } } /// /// Looks up a localized string similar to 0632. /// internal static string _46385 { get { return ResourceManager.GetString("46385", resourceCulture); } } /// /// Looks up a localized string similar to 0633. /// internal static string _46388 { get { return ResourceManager.GetString("46388", resourceCulture); } } /// /// Looks up a localized string similar to 0634. /// internal static string _46392 { get { return ResourceManager.GetString("46392", resourceCulture); } } /// /// Looks up a localized string similar to 0635. /// internal static string _46400 { get { return ResourceManager.GetString("46400", resourceCulture); } } /// /// Looks up a localized string similar to 0636. /// internal static string _46401 { get { return ResourceManager.GetString("46401", resourceCulture); } } /// /// Looks up a localized string similar to 0637. /// internal static string _46403 { get { return ResourceManager.GetString("46403", resourceCulture); } } /// /// Looks up a localized string similar to 0638. /// internal static string _46404 { get { return ResourceManager.GetString("46404", resourceCulture); } } /// /// Looks up a localized string similar to 0639. /// internal static string _46405 { get { return ResourceManager.GetString("46405", resourceCulture); } } /// /// Looks up a localized string similar to 063A. /// internal static string _46411 { get { return ResourceManager.GetString("46411", resourceCulture); } } /// /// Looks up a localized string similar to 063B. /// internal static string _46412 { get { return ResourceManager.GetString("46412", resourceCulture); } } /// /// Looks up a localized string similar to 063C. /// internal static string _46413 { get { return ResourceManager.GetString("46413", resourceCulture); } } /// /// Looks up a localized string similar to 063D. /// internal static string _46416 { get { return ResourceManager.GetString("46416", resourceCulture); } } /// /// Looks up a localized string similar to 063E. /// internal static string _46420 { get { return ResourceManager.GetString("46420", resourceCulture); } } /// /// Looks up a localized string similar to 063F. /// internal static string _46428 { get { return ResourceManager.GetString("46428", resourceCulture); } } /// /// Looks up a localized string similar to 0640. /// internal static string _46429 { get { return ResourceManager.GetString("46429", resourceCulture); } } /// /// Looks up a localized string similar to 0641. /// internal static string _46431 { get { return ResourceManager.GetString("46431", resourceCulture); } } /// /// Looks up a localized string similar to 0642. /// internal static string _46432 { get { return ResourceManager.GetString("46432", resourceCulture); } } /// /// Looks up a localized string similar to 0643. /// internal static string _46433 { get { return ResourceManager.GetString("46433", resourceCulture); } } /// /// Looks up a localized string similar to 0644. /// internal static string _46496 { get { return ResourceManager.GetString("46496", resourceCulture); } } /// /// Looks up a localized string similar to 0645. /// internal static string _46497 { get { return ResourceManager.GetString("46497", resourceCulture); } } /// /// Looks up a localized string similar to 0646. /// internal static string _46500 { get { return ResourceManager.GetString("46500", resourceCulture); } } /// /// Looks up a localized string similar to 0647. /// internal static string _46504 { get { return ResourceManager.GetString("46504", resourceCulture); } } /// /// Looks up a localized string similar to 0648. /// internal static string _46506 { get { return ResourceManager.GetString("46506", resourceCulture); } } /// /// Looks up a localized string similar to 0649. /// internal static string _46507 { get { return ResourceManager.GetString("46507", resourceCulture); } } /// /// Looks up a localized string similar to 064A. /// internal static string _46512 { get { return ResourceManager.GetString("46512", resourceCulture); } } /// /// Looks up a localized string similar to 064B. /// internal static string _46513 { get { return ResourceManager.GetString("46513", resourceCulture); } } /// /// Looks up a localized string similar to 064C. /// internal static string _46515 { get { return ResourceManager.GetString("46515", resourceCulture); } } /// /// Looks up a localized string similar to 064D. /// internal static string _46516 { get { return ResourceManager.GetString("46516", resourceCulture); } } /// /// Looks up a localized string similar to 064E. /// internal static string _46517 { get { return ResourceManager.GetString("46517", resourceCulture); } } /// /// Looks up a localized string similar to 064F. /// internal static string _46523 { get { return ResourceManager.GetString("46523", resourceCulture); } } /// /// Looks up a localized string similar to 0650. /// internal static string _46524 { get { return ResourceManager.GetString("46524", resourceCulture); } } /// /// Looks up a localized string similar to 0651. /// internal static string _46525 { get { return ResourceManager.GetString("46525", resourceCulture); } } /// /// Looks up a localized string similar to 0652. /// internal static string _46528 { get { return ResourceManager.GetString("46528", resourceCulture); } } /// /// Looks up a localized string similar to 0653. /// internal static string _46532 { get { return ResourceManager.GetString("46532", resourceCulture); } } /// /// Looks up a localized string similar to 0654. /// internal static string _46540 { get { return ResourceManager.GetString("46540", resourceCulture); } } /// /// Looks up a localized string similar to 0655. /// internal static string _46541 { get { return ResourceManager.GetString("46541", resourceCulture); } } /// /// Looks up a localized string similar to 0656. /// internal static string _46543 { get { return ResourceManager.GetString("46543", resourceCulture); } } /// /// Looks up a localized string similar to 0657. /// internal static string _46544 { get { return ResourceManager.GetString("46544", resourceCulture); } } /// /// Looks up a localized string similar to 0658. /// internal static string _46545 { get { return ResourceManager.GetString("46545", resourceCulture); } } /// /// Looks up a localized string similar to 0659. /// internal static string _46552 { get { return ResourceManager.GetString("46552", resourceCulture); } } /// /// Looks up a localized string similar to 065A. /// internal static string _46572 { get { return ResourceManager.GetString("46572", resourceCulture); } } /// /// Looks up a localized string similar to 065B. /// internal static string _46608 { get { return ResourceManager.GetString("46608", resourceCulture); } } /// /// Looks up a localized string similar to 065C. /// internal static string _46609 { get { return ResourceManager.GetString("46609", resourceCulture); } } /// /// Looks up a localized string similar to 065D. /// internal static string _46612 { get { return ResourceManager.GetString("46612", resourceCulture); } } /// /// Looks up a localized string similar to 065E. /// internal static string _46616 { get { return ResourceManager.GetString("46616", resourceCulture); } } /// /// Looks up a localized string similar to 065F. /// internal static string _46629 { get { return ResourceManager.GetString("46629", resourceCulture); } } /// /// Looks up a localized string similar to 0660. /// internal static string _46636 { get { return ResourceManager.GetString("46636", resourceCulture); } } /// /// Looks up a localized string similar to 0661. /// internal static string _46644 { get { return ResourceManager.GetString("46644", resourceCulture); } } /// /// Looks up a localized string similar to 0662. /// internal static string _46664 { get { return ResourceManager.GetString("46664", resourceCulture); } } /// /// Looks up a localized string similar to 0663. /// internal static string _46692 { get { return ResourceManager.GetString("46692", resourceCulture); } } /// /// Looks up a localized string similar to 0664. /// internal static string _46696 { get { return ResourceManager.GetString("46696", resourceCulture); } } /// /// Looks up a localized string similar to 0665. /// internal static string _46748 { get { return ResourceManager.GetString("46748", resourceCulture); } } /// /// Looks up a localized string similar to 0666. /// internal static string _46749 { get { return ResourceManager.GetString("46749", resourceCulture); } } /// /// Looks up a localized string similar to 0667. /// internal static string _46752 { get { return ResourceManager.GetString("46752", resourceCulture); } } /// /// Looks up a localized string similar to 0668. /// internal static string _46756 { get { return ResourceManager.GetString("46756", resourceCulture); } } /// /// Looks up a localized string similar to 0669. /// internal static string _46763 { get { return ResourceManager.GetString("46763", resourceCulture); } } /// /// Looks up a localized string similar to 066A. /// internal static string _46764 { get { return ResourceManager.GetString("46764", resourceCulture); } } /// /// Looks up a localized string similar to 066B. /// internal static string _46769 { get { return ResourceManager.GetString("46769", resourceCulture); } } /// /// Looks up a localized string similar to 066C. /// internal static string _46804 { get { return ResourceManager.GetString("46804", resourceCulture); } } /// /// Looks up a localized string similar to 066D. /// internal static string _46832 { get { return ResourceManager.GetString("46832", resourceCulture); } } /// /// Looks up a localized string similar to 066E. /// internal static string _46836 { get { return ResourceManager.GetString("46836", resourceCulture); } } /// /// Looks up a localized string similar to 066F. /// internal static string _46840 { get { return ResourceManager.GetString("46840", resourceCulture); } } /// /// Looks up a localized string similar to 0670. /// internal static string _46848 { get { return ResourceManager.GetString("46848", resourceCulture); } } /// /// Looks up a localized string similar to 0671. /// internal static string _46849 { get { return ResourceManager.GetString("46849", resourceCulture); } } /// /// Looks up a localized string similar to 0672. /// internal static string _46853 { get { return ResourceManager.GetString("46853", resourceCulture); } } /// /// Looks up a localized string similar to 0673. /// internal static string _46888 { get { return ResourceManager.GetString("46888", resourceCulture); } } /// /// Looks up a localized string similar to 0674. /// internal static string _46889 { get { return ResourceManager.GetString("46889", resourceCulture); } } /// /// Looks up a localized string similar to 0675. /// internal static string _46892 { get { return ResourceManager.GetString("46892", resourceCulture); } } /// /// Looks up a localized string similar to 0676. /// internal static string _46895 { get { return ResourceManager.GetString("46895", resourceCulture); } } /// /// Looks up a localized string similar to 0677. /// internal static string _46896 { get { return ResourceManager.GetString("46896", resourceCulture); } } /// /// Looks up a localized string similar to 0678. /// internal static string _46904 { get { return ResourceManager.GetString("46904", resourceCulture); } } /// /// Looks up a localized string similar to 0679. /// internal static string _46905 { get { return ResourceManager.GetString("46905", resourceCulture); } } /// /// Looks up a localized string similar to 067A. /// internal static string _46907 { get { return ResourceManager.GetString("46907", resourceCulture); } } /// /// Looks up a localized string similar to 067B. /// internal static string _46916 { get { return ResourceManager.GetString("46916", resourceCulture); } } /// /// Looks up a localized string similar to 067C. /// internal static string _46920 { get { return ResourceManager.GetString("46920", resourceCulture); } } /// /// Looks up a localized string similar to 067D. /// internal static string _46924 { get { return ResourceManager.GetString("46924", resourceCulture); } } /// /// Looks up a localized string similar to 067E. /// internal static string _46932 { get { return ResourceManager.GetString("46932", resourceCulture); } } /// /// Looks up a localized string similar to 067F. /// internal static string _46933 { get { return ResourceManager.GetString("46933", resourceCulture); } } /// /// Looks up a localized string similar to 0680. /// internal static string _46944 { get { return ResourceManager.GetString("46944", resourceCulture); } } /// /// Looks up a localized string similar to 0681. /// internal static string _46948 { get { return ResourceManager.GetString("46948", resourceCulture); } } /// /// Looks up a localized string similar to 0682. /// internal static string _46952 { get { return ResourceManager.GetString("46952", resourceCulture); } } /// /// Looks up a localized string similar to 0683. /// internal static string _46960 { get { return ResourceManager.GetString("46960", resourceCulture); } } /// /// Looks up a localized string similar to 0684. /// internal static string _46961 { get { return ResourceManager.GetString("46961", resourceCulture); } } /// /// Looks up a localized string similar to 0685. /// internal static string _46963 { get { return ResourceManager.GetString("46963", resourceCulture); } } /// /// Looks up a localized string similar to 0686. /// internal static string _46965 { get { return ResourceManager.GetString("46965", resourceCulture); } } /// /// Looks up a localized string similar to 0687. /// internal static string _46972 { get { return ResourceManager.GetString("46972", resourceCulture); } } /// /// Looks up a localized string similar to 0688. /// internal static string _46973 { get { return ResourceManager.GetString("46973", resourceCulture); } } /// /// Looks up a localized string similar to 0689. /// internal static string _46976 { get { return ResourceManager.GetString("46976", resourceCulture); } } /// /// Looks up a localized string similar to 068A. /// internal static string _46980 { get { return ResourceManager.GetString("46980", resourceCulture); } } /// /// Looks up a localized string similar to 068B. /// internal static string _46988 { get { return ResourceManager.GetString("46988", resourceCulture); } } /// /// Looks up a localized string similar to 068C. /// internal static string _46989 { get { return ResourceManager.GetString("46989", resourceCulture); } } /// /// Looks up a localized string similar to 068D. /// internal static string _46991 { get { return ResourceManager.GetString("46991", resourceCulture); } } /// /// Looks up a localized string similar to 068E. /// internal static string _46992 { get { return ResourceManager.GetString("46992", resourceCulture); } } /// /// Looks up a localized string similar to 068F. /// internal static string _46993 { get { return ResourceManager.GetString("46993", resourceCulture); } } /// /// Looks up a localized string similar to 0690. /// internal static string _46994 { get { return ResourceManager.GetString("46994", resourceCulture); } } /// /// Looks up a localized string similar to 0691. /// internal static string _46998 { get { return ResourceManager.GetString("46998", resourceCulture); } } /// /// Looks up a localized string similar to 0692. /// internal static string _46999 { get { return ResourceManager.GetString("46999", resourceCulture); } } /// /// Looks up a localized string similar to 01B1. /// internal static string _47 { get { return ResourceManager.GetString("47", resourceCulture); } } /// /// Looks up a localized string similar to 0693. /// internal static string _47000 { get { return ResourceManager.GetString("47000", resourceCulture); } } /// /// Looks up a localized string similar to 0694. /// internal static string _47001 { get { return ResourceManager.GetString("47001", resourceCulture); } } /// /// Looks up a localized string similar to 0695. /// internal static string _47004 { get { return ResourceManager.GetString("47004", resourceCulture); } } /// /// Looks up a localized string similar to 0696. /// internal static string _47008 { get { return ResourceManager.GetString("47008", resourceCulture); } } /// /// Looks up a localized string similar to 0697. /// internal static string _47016 { get { return ResourceManager.GetString("47016", resourceCulture); } } /// /// Looks up a localized string similar to 0698. /// internal static string _47017 { get { return ResourceManager.GetString("47017", resourceCulture); } } /// /// Looks up a localized string similar to 0699. /// internal static string _47019 { get { return ResourceManager.GetString("47019", resourceCulture); } } /// /// Looks up a localized string similar to 069A. /// internal static string _47020 { get { return ResourceManager.GetString("47020", resourceCulture); } } /// /// Looks up a localized string similar to 069B. /// internal static string _47021 { get { return ResourceManager.GetString("47021", resourceCulture); } } /// /// Looks up a localized string similar to 069C. /// internal static string _47028 { get { return ResourceManager.GetString("47028", resourceCulture); } } /// /// Looks up a localized string similar to 069D. /// internal static string _47029 { get { return ResourceManager.GetString("47029", resourceCulture); } } /// /// Looks up a localized string similar to 069E. /// internal static string _47032 { get { return ResourceManager.GetString("47032", resourceCulture); } } /// /// Looks up a localized string similar to 069F. /// internal static string _47047 { get { return ResourceManager.GetString("47047", resourceCulture); } } /// /// Looks up a localized string similar to 06A0. /// internal static string _47049 { get { return ResourceManager.GetString("47049", resourceCulture); } } /// /// Looks up a localized string similar to 06A1. /// internal static string _47084 { get { return ResourceManager.GetString("47084", resourceCulture); } } /// /// Looks up a localized string similar to 06A2. /// internal static string _47085 { get { return ResourceManager.GetString("47085", resourceCulture); } } /// /// Looks up a localized string similar to 06A3. /// internal static string _47088 { get { return ResourceManager.GetString("47088", resourceCulture); } } /// /// Looks up a localized string similar to 06A4. /// internal static string _47092 { get { return ResourceManager.GetString("47092", resourceCulture); } } /// /// Looks up a localized string similar to 06A5. /// internal static string _47100 { get { return ResourceManager.GetString("47100", resourceCulture); } } /// /// Looks up a localized string similar to 06A6. /// internal static string _47101 { get { return ResourceManager.GetString("47101", resourceCulture); } } /// /// Looks up a localized string similar to 06A7. /// internal static string _47103 { get { return ResourceManager.GetString("47103", resourceCulture); } } /// /// Looks up a localized string similar to 06A8. /// internal static string _47104 { get { return ResourceManager.GetString("47104", resourceCulture); } } /// /// Looks up a localized string similar to 06A9. /// internal static string _47105 { get { return ResourceManager.GetString("47105", resourceCulture); } } /// /// Looks up a localized string similar to 06AA. /// internal static string _47111 { get { return ResourceManager.GetString("47111", resourceCulture); } } /// /// Looks up a localized string similar to 06AB. /// internal static string _47112 { get { return ResourceManager.GetString("47112", resourceCulture); } } /// /// Looks up a localized string similar to 06AC. /// internal static string _47113 { get { return ResourceManager.GetString("47113", resourceCulture); } } /// /// Looks up a localized string similar to 06AD. /// internal static string _47116 { get { return ResourceManager.GetString("47116", resourceCulture); } } /// /// Looks up a localized string similar to 06AE. /// internal static string _47120 { get { return ResourceManager.GetString("47120", resourceCulture); } } /// /// Looks up a localized string similar to 06AF. /// internal static string _47128 { get { return ResourceManager.GetString("47128", resourceCulture); } } /// /// Looks up a localized string similar to 06B0. /// internal static string _47129 { get { return ResourceManager.GetString("47129", resourceCulture); } } /// /// Looks up a localized string similar to 06B1. /// internal static string _47131 { get { return ResourceManager.GetString("47131", resourceCulture); } } /// /// Looks up a localized string similar to 06B2. /// internal static string _47133 { get { return ResourceManager.GetString("47133", resourceCulture); } } /// /// Looks up a localized string similar to 06B3. /// internal static string _47140 { get { return ResourceManager.GetString("47140", resourceCulture); } } /// /// Looks up a localized string similar to 06B4. /// internal static string _47141 { get { return ResourceManager.GetString("47141", resourceCulture); } } /// /// Looks up a localized string similar to 06B5. /// internal static string _47144 { get { return ResourceManager.GetString("47144", resourceCulture); } } /// /// Looks up a localized string similar to 06B6. /// internal static string _47148 { get { return ResourceManager.GetString("47148", resourceCulture); } } /// /// Looks up a localized string similar to 06B7. /// internal static string _47156 { get { return ResourceManager.GetString("47156", resourceCulture); } } /// /// Looks up a localized string similar to 06B8. /// internal static string _47157 { get { return ResourceManager.GetString("47157", resourceCulture); } } /// /// Looks up a localized string similar to 06B9. /// internal static string _47159 { get { return ResourceManager.GetString("47159", resourceCulture); } } /// /// Looks up a localized string similar to 06BA. /// internal static string _47160 { get { return ResourceManager.GetString("47160", resourceCulture); } } /// /// Looks up a localized string similar to 06BB. /// internal static string _47161 { get { return ResourceManager.GetString("47161", resourceCulture); } } /// /// Looks up a localized string similar to 06BC. /// internal static string _47168 { get { return ResourceManager.GetString("47168", resourceCulture); } } /// /// Looks up a localized string similar to 06BD. /// internal static string _47172 { get { return ResourceManager.GetString("47172", resourceCulture); } } /// /// Looks up a localized string similar to 06BE. /// internal static string _47185 { get { return ResourceManager.GetString("47185", resourceCulture); } } /// /// Looks up a localized string similar to 06BF. /// internal static string _47187 { get { return ResourceManager.GetString("47187", resourceCulture); } } /// /// Looks up a localized string similar to 06C0. /// internal static string _47196 { get { return ResourceManager.GetString("47196", resourceCulture); } } /// /// Looks up a localized string similar to 06C1. /// internal static string _47197 { get { return ResourceManager.GetString("47197", resourceCulture); } } /// /// Looks up a localized string similar to 06C2. /// internal static string _47200 { get { return ResourceManager.GetString("47200", resourceCulture); } } /// /// Looks up a localized string similar to 06C3. /// internal static string _47204 { get { return ResourceManager.GetString("47204", resourceCulture); } } /// /// Looks up a localized string similar to 06C4. /// internal static string _47212 { get { return ResourceManager.GetString("47212", resourceCulture); } } /// /// Looks up a localized string similar to 06C5. /// internal static string _47213 { get { return ResourceManager.GetString("47213", resourceCulture); } } /// /// Looks up a localized string similar to 06C6. /// internal static string _47215 { get { return ResourceManager.GetString("47215", resourceCulture); } } /// /// Looks up a localized string similar to 06C7. /// internal static string _47217 { get { return ResourceManager.GetString("47217", resourceCulture); } } /// /// Looks up a localized string similar to 06C8. /// internal static string _47224 { get { return ResourceManager.GetString("47224", resourceCulture); } } /// /// Looks up a localized string similar to 06C9. /// internal static string _47228 { get { return ResourceManager.GetString("47228", resourceCulture); } } /// /// Looks up a localized string similar to 06CA. /// internal static string _47245 { get { return ResourceManager.GetString("47245", resourceCulture); } } /// /// Looks up a localized string similar to 0D61. /// internal static string _47252 { get { return ResourceManager.GetString("47252", resourceCulture); } } /// /// Looks up a localized string similar to 06CB. /// internal static string _47272 { get { return ResourceManager.GetString("47272", resourceCulture); } } /// /// Looks up a localized string similar to 06CC. /// internal static string _47280 { get { return ResourceManager.GetString("47280", resourceCulture); } } /// /// Looks up a localized string similar to 06CD. /// internal static string _47284 { get { return ResourceManager.GetString("47284", resourceCulture); } } /// /// Looks up a localized string similar to 06CE. /// internal static string _47288 { get { return ResourceManager.GetString("47288", resourceCulture); } } /// /// Looks up a localized string similar to 06CF. /// internal static string _47296 { get { return ResourceManager.GetString("47296", resourceCulture); } } /// /// Looks up a localized string similar to 06D0. /// internal static string _47297 { get { return ResourceManager.GetString("47297", resourceCulture); } } /// /// Looks up a localized string similar to 06D1. /// internal static string _47299 { get { return ResourceManager.GetString("47299", resourceCulture); } } /// /// Looks up a localized string similar to 06D2. /// internal static string _47301 { get { return ResourceManager.GetString("47301", resourceCulture); } } /// /// Looks up a localized string similar to 06D3. /// internal static string _47308 { get { return ResourceManager.GetString("47308", resourceCulture); } } /// /// Looks up a localized string similar to 06D4. /// internal static string _47312 { get { return ResourceManager.GetString("47312", resourceCulture); } } /// /// Looks up a localized string similar to 06D5. /// internal static string _47316 { get { return ResourceManager.GetString("47316", resourceCulture); } } /// /// Looks up a localized string similar to 06D6. /// internal static string _47325 { get { return ResourceManager.GetString("47325", resourceCulture); } } /// /// Looks up a localized string similar to 06D7. /// internal static string _47327 { get { return ResourceManager.GetString("47327", resourceCulture); } } /// /// Looks up a localized string similar to 06D8. /// internal static string _47329 { get { return ResourceManager.GetString("47329", resourceCulture); } } /// /// Looks up a localized string similar to 06D9. /// internal static string _47336 { get { return ResourceManager.GetString("47336", resourceCulture); } } /// /// Looks up a localized string similar to 06DA. /// internal static string _47337 { get { return ResourceManager.GetString("47337", resourceCulture); } } /// /// Looks up a localized string similar to 06DB. /// internal static string _47340 { get { return ResourceManager.GetString("47340", resourceCulture); } } /// /// Looks up a localized string similar to 06DC. /// internal static string _47344 { get { return ResourceManager.GetString("47344", resourceCulture); } } /// /// Looks up a localized string similar to 06DD. /// internal static string _47352 { get { return ResourceManager.GetString("47352", resourceCulture); } } /// /// Looks up a localized string similar to 06DE. /// internal static string _47353 { get { return ResourceManager.GetString("47353", resourceCulture); } } /// /// Looks up a localized string similar to 06DF. /// internal static string _47355 { get { return ResourceManager.GetString("47355", resourceCulture); } } /// /// Looks up a localized string similar to 06E0. /// internal static string _47357 { get { return ResourceManager.GetString("47357", resourceCulture); } } /// /// Looks up a localized string similar to 06E1. /// internal static string _47364 { get { return ResourceManager.GetString("47364", resourceCulture); } } /// /// Looks up a localized string similar to 06E2. /// internal static string _47384 { get { return ResourceManager.GetString("47384", resourceCulture); } } /// /// Looks up a localized string similar to 06E3. /// internal static string _47392 { get { return ResourceManager.GetString("47392", resourceCulture); } } /// /// Looks up a localized string similar to 06E4. /// internal static string _47420 { get { return ResourceManager.GetString("47420", resourceCulture); } } /// /// Looks up a localized string similar to 06E5. /// internal static string _47421 { get { return ResourceManager.GetString("47421", resourceCulture); } } /// /// Looks up a localized string similar to 06E6. /// internal static string _47424 { get { return ResourceManager.GetString("47424", resourceCulture); } } /// /// Looks up a localized string similar to 06E7. /// internal static string _47428 { get { return ResourceManager.GetString("47428", resourceCulture); } } /// /// Looks up a localized string similar to 06E8. /// internal static string _47436 { get { return ResourceManager.GetString("47436", resourceCulture); } } /// /// Looks up a localized string similar to 06E9. /// internal static string _47439 { get { return ResourceManager.GetString("47439", resourceCulture); } } /// /// Looks up a localized string similar to 06EA. /// internal static string _47441 { get { return ResourceManager.GetString("47441", resourceCulture); } } /// /// Looks up a localized string similar to 06EB. /// internal static string _47448 { get { return ResourceManager.GetString("47448", resourceCulture); } } /// /// Looks up a localized string similar to 06EC. /// internal static string _47449 { get { return ResourceManager.GetString("47449", resourceCulture); } } /// /// Looks up a localized string similar to 06ED. /// internal static string _47452 { get { return ResourceManager.GetString("47452", resourceCulture); } } /// /// Looks up a localized string similar to 06EE. /// internal static string _47456 { get { return ResourceManager.GetString("47456", resourceCulture); } } /// /// Looks up a localized string similar to 06EF. /// internal static string _47464 { get { return ResourceManager.GetString("47464", resourceCulture); } } /// /// Looks up a localized string similar to 06F0. /// internal static string _47465 { get { return ResourceManager.GetString("47465", resourceCulture); } } /// /// Looks up a localized string similar to 06F1. /// internal static string _47467 { get { return ResourceManager.GetString("47467", resourceCulture); } } /// /// Looks up a localized string similar to 06F2. /// internal static string _47469 { get { return ResourceManager.GetString("47469", resourceCulture); } } /// /// Looks up a localized string similar to 06F3. /// internal static string _47476 { get { return ResourceManager.GetString("47476", resourceCulture); } } /// /// Looks up a localized string similar to 06F4. /// internal static string _47477 { get { return ResourceManager.GetString("47477", resourceCulture); } } /// /// Looks up a localized string similar to 06F5. /// internal static string _47480 { get { return ResourceManager.GetString("47480", resourceCulture); } } /// /// Looks up a localized string similar to 06F6. /// internal static string _47484 { get { return ResourceManager.GetString("47484", resourceCulture); } } /// /// Looks up a localized string similar to 06F7. /// internal static string _47492 { get { return ResourceManager.GetString("47492", resourceCulture); } } /// /// Looks up a localized string similar to 06F8. /// internal static string _47493 { get { return ResourceManager.GetString("47493", resourceCulture); } } /// /// Looks up a localized string similar to 06F9. /// internal static string _47495 { get { return ResourceManager.GetString("47495", resourceCulture); } } /// /// Looks up a localized string similar to 06FA. /// internal static string _47497 { get { return ResourceManager.GetString("47497", resourceCulture); } } /// /// Looks up a localized string similar to 06FB. /// internal static string _47498 { get { return ResourceManager.GetString("47498", resourceCulture); } } /// /// Looks up a localized string similar to 06FC. /// internal static string _47501 { get { return ResourceManager.GetString("47501", resourceCulture); } } /// /// Looks up a localized string similar to 06FD. /// internal static string _47502 { get { return ResourceManager.GetString("47502", resourceCulture); } } /// /// Looks up a localized string similar to 06FE. /// internal static string _47532 { get { return ResourceManager.GetString("47532", resourceCulture); } } /// /// Looks up a localized string similar to 06FF. /// internal static string _47533 { get { return ResourceManager.GetString("47533", resourceCulture); } } /// /// Looks up a localized string similar to 0700. /// internal static string _47536 { get { return ResourceManager.GetString("47536", resourceCulture); } } /// /// Looks up a localized string similar to 0701. /// internal static string _47540 { get { return ResourceManager.GetString("47540", resourceCulture); } } /// /// Looks up a localized string similar to 0702. /// internal static string _47548 { get { return ResourceManager.GetString("47548", resourceCulture); } } /// /// Looks up a localized string similar to 0703. /// internal static string _47549 { get { return ResourceManager.GetString("47549", resourceCulture); } } /// /// Looks up a localized string similar to 0704. /// internal static string _47551 { get { return ResourceManager.GetString("47551", resourceCulture); } } /// /// Looks up a localized string similar to 0705. /// internal static string _47553 { get { return ResourceManager.GetString("47553", resourceCulture); } } /// /// Looks up a localized string similar to 0706. /// internal static string _47560 { get { return ResourceManager.GetString("47560", resourceCulture); } } /// /// Looks up a localized string similar to 0707. /// internal static string _47561 { get { return ResourceManager.GetString("47561", resourceCulture); } } /// /// Looks up a localized string similar to 0708. /// internal static string _47564 { get { return ResourceManager.GetString("47564", resourceCulture); } } /// /// Looks up a localized string similar to 0709. /// internal static string _47566 { get { return ResourceManager.GetString("47566", resourceCulture); } } /// /// Looks up a localized string similar to 070A. /// internal static string _47567 { get { return ResourceManager.GetString("47567", resourceCulture); } } /// /// Looks up a localized string similar to 070B. /// internal static string _47568 { get { return ResourceManager.GetString("47568", resourceCulture); } } /// /// Looks up a localized string similar to 070C. /// internal static string _47569 { get { return ResourceManager.GetString("47569", resourceCulture); } } /// /// Looks up a localized string similar to 070D. /// internal static string _47570 { get { return ResourceManager.GetString("47570", resourceCulture); } } /// /// Looks up a localized string similar to 070E. /// internal static string _47576 { get { return ResourceManager.GetString("47576", resourceCulture); } } /// /// Looks up a localized string similar to 070F. /// internal static string _47577 { get { return ResourceManager.GetString("47577", resourceCulture); } } /// /// Looks up a localized string similar to 0710. /// internal static string _47579 { get { return ResourceManager.GetString("47579", resourceCulture); } } /// /// Looks up a localized string similar to 0711. /// internal static string _47581 { get { return ResourceManager.GetString("47581", resourceCulture); } } /// /// Looks up a localized string similar to 0712. /// internal static string _47582 { get { return ResourceManager.GetString("47582", resourceCulture); } } /// /// Looks up a localized string similar to 0713. /// internal static string _47585 { get { return ResourceManager.GetString("47585", resourceCulture); } } /// /// Looks up a localized string similar to 0714. /// internal static string _47587 { get { return ResourceManager.GetString("47587", resourceCulture); } } /// /// Looks up a localized string similar to 0715. /// internal static string _47588 { get { return ResourceManager.GetString("47588", resourceCulture); } } /// /// Looks up a localized string similar to 0716. /// internal static string _47589 { get { return ResourceManager.GetString("47589", resourceCulture); } } /// /// Looks up a localized string similar to 0717. /// internal static string _47592 { get { return ResourceManager.GetString("47592", resourceCulture); } } /// /// Looks up a localized string similar to 0718. /// internal static string _47596 { get { return ResourceManager.GetString("47596", resourceCulture); } } /// /// Looks up a localized string similar to 0719. /// internal static string _47604 { get { return ResourceManager.GetString("47604", resourceCulture); } } /// /// Looks up a localized string similar to 071A. /// internal static string _47605 { get { return ResourceManager.GetString("47605", resourceCulture); } } /// /// Looks up a localized string similar to 071B. /// internal static string _47607 { get { return ResourceManager.GetString("47607", resourceCulture); } } /// /// Looks up a localized string similar to 071C. /// internal static string _47608 { get { return ResourceManager.GetString("47608", resourceCulture); } } /// /// Looks up a localized string similar to 071D. /// internal static string _47609 { get { return ResourceManager.GetString("47609", resourceCulture); } } /// /// Looks up a localized string similar to 071E. /// internal static string _47610 { get { return ResourceManager.GetString("47610", resourceCulture); } } /// /// Looks up a localized string similar to 071F. /// internal static string _47616 { get { return ResourceManager.GetString("47616", resourceCulture); } } /// /// Looks up a localized string similar to 0720. /// internal static string _47617 { get { return ResourceManager.GetString("47617", resourceCulture); } } /// /// Looks up a localized string similar to 0721. /// internal static string _47624 { get { return ResourceManager.GetString("47624", resourceCulture); } } /// /// Looks up a localized string similar to 0722. /// internal static string _47637 { get { return ResourceManager.GetString("47637", resourceCulture); } } /// /// Looks up a localized string similar to 0723. /// internal static string _47672 { get { return ResourceManager.GetString("47672", resourceCulture); } } /// /// Looks up a localized string similar to 0724. /// internal static string _47673 { get { return ResourceManager.GetString("47673", resourceCulture); } } /// /// Looks up a localized string similar to 0725. /// internal static string _47676 { get { return ResourceManager.GetString("47676", resourceCulture); } } /// /// Looks up a localized string similar to 0726. /// internal static string _47680 { get { return ResourceManager.GetString("47680", resourceCulture); } } /// /// Looks up a localized string similar to 0727. /// internal static string _47682 { get { return ResourceManager.GetString("47682", resourceCulture); } } /// /// Looks up a localized string similar to 0728. /// internal static string _47688 { get { return ResourceManager.GetString("47688", resourceCulture); } } /// /// Looks up a localized string similar to 0729. /// internal static string _47689 { get { return ResourceManager.GetString("47689", resourceCulture); } } /// /// Looks up a localized string similar to 072A. /// internal static string _47691 { get { return ResourceManager.GetString("47691", resourceCulture); } } /// /// Looks up a localized string similar to 072B. /// internal static string _47693 { get { return ResourceManager.GetString("47693", resourceCulture); } } /// /// Looks up a localized string similar to 072C. /// internal static string _47694 { get { return ResourceManager.GetString("47694", resourceCulture); } } /// /// Looks up a localized string similar to 072D. /// internal static string _47699 { get { return ResourceManager.GetString("47699", resourceCulture); } } /// /// Looks up a localized string similar to 072E. /// internal static string _47700 { get { return ResourceManager.GetString("47700", resourceCulture); } } /// /// Looks up a localized string similar to 072F. /// internal static string _47701 { get { return ResourceManager.GetString("47701", resourceCulture); } } /// /// Looks up a localized string similar to 0730. /// internal static string _47704 { get { return ResourceManager.GetString("47704", resourceCulture); } } /// /// Looks up a localized string similar to 0731. /// internal static string _47708 { get { return ResourceManager.GetString("47708", resourceCulture); } } /// /// Looks up a localized string similar to 0732. /// internal static string _47716 { get { return ResourceManager.GetString("47716", resourceCulture); } } /// /// Looks up a localized string similar to 0733. /// internal static string _47717 { get { return ResourceManager.GetString("47717", resourceCulture); } } /// /// Looks up a localized string similar to 0734. /// internal static string _47719 { get { return ResourceManager.GetString("47719", resourceCulture); } } /// /// Looks up a localized string similar to 0735. /// internal static string _47720 { get { return ResourceManager.GetString("47720", resourceCulture); } } /// /// Looks up a localized string similar to 0736. /// internal static string _47721 { get { return ResourceManager.GetString("47721", resourceCulture); } } /// /// Looks up a localized string similar to 0737. /// internal static string _47728 { get { return ResourceManager.GetString("47728", resourceCulture); } } /// /// Looks up a localized string similar to 0738. /// internal static string _47729 { get { return ResourceManager.GetString("47729", resourceCulture); } } /// /// Looks up a localized string similar to 0739. /// internal static string _47732 { get { return ResourceManager.GetString("47732", resourceCulture); } } /// /// Looks up a localized string similar to 073A. /// internal static string _47736 { get { return ResourceManager.GetString("47736", resourceCulture); } } /// /// Looks up a localized string similar to 073B. /// internal static string _47747 { get { return ResourceManager.GetString("47747", resourceCulture); } } /// /// Looks up a localized string similar to 073C. /// internal static string _47748 { get { return ResourceManager.GetString("47748", resourceCulture); } } /// /// Looks up a localized string similar to 073D. /// internal static string _47749 { get { return ResourceManager.GetString("47749", resourceCulture); } } /// /// Looks up a localized string similar to 073E. /// internal static string _47751 { get { return ResourceManager.GetString("47751", resourceCulture); } } /// /// Looks up a localized string similar to 073F. /// internal static string _47756 { get { return ResourceManager.GetString("47756", resourceCulture); } } /// /// Looks up a localized string similar to 0740. /// internal static string _47784 { get { return ResourceManager.GetString("47784", resourceCulture); } } /// /// Looks up a localized string similar to 0741. /// internal static string _47785 { get { return ResourceManager.GetString("47785", resourceCulture); } } /// /// Looks up a localized string similar to 0742. /// internal static string _47787 { get { return ResourceManager.GetString("47787", resourceCulture); } } /// /// Looks up a localized string similar to 0743. /// internal static string _47788 { get { return ResourceManager.GetString("47788", resourceCulture); } } /// /// Looks up a localized string similar to 0744. /// internal static string _47792 { get { return ResourceManager.GetString("47792", resourceCulture); } } /// /// Looks up a localized string similar to 0745. /// internal static string _47794 { get { return ResourceManager.GetString("47794", resourceCulture); } } /// /// Looks up a localized string similar to 0746. /// internal static string _47800 { get { return ResourceManager.GetString("47800", resourceCulture); } } /// /// Looks up a localized string similar to 0747. /// internal static string _47801 { get { return ResourceManager.GetString("47801", resourceCulture); } } /// /// Looks up a localized string similar to 0748. /// internal static string _47803 { get { return ResourceManager.GetString("47803", resourceCulture); } } /// /// Looks up a localized string similar to 0749. /// internal static string _47805 { get { return ResourceManager.GetString("47805", resourceCulture); } } /// /// Looks up a localized string similar to 074A. /// internal static string _47812 { get { return ResourceManager.GetString("47812", resourceCulture); } } /// /// Looks up a localized string similar to 074B. /// internal static string _47816 { get { return ResourceManager.GetString("47816", resourceCulture); } } /// /// Looks up a localized string similar to 074C. /// internal static string _47832 { get { return ResourceManager.GetString("47832", resourceCulture); } } /// /// Looks up a localized string similar to 074D. /// internal static string _47833 { get { return ResourceManager.GetString("47833", resourceCulture); } } /// /// Looks up a localized string similar to 074E. /// internal static string _47868 { get { return ResourceManager.GetString("47868", resourceCulture); } } /// /// Looks up a localized string similar to 074F. /// internal static string _47872 { get { return ResourceManager.GetString("47872", resourceCulture); } } /// /// Looks up a localized string similar to 0750. /// internal static string _47876 { get { return ResourceManager.GetString("47876", resourceCulture); } } /// /// Looks up a localized string similar to 0751. /// internal static string _47885 { get { return ResourceManager.GetString("47885", resourceCulture); } } /// /// Looks up a localized string similar to 0752. /// internal static string _47887 { get { return ResourceManager.GetString("47887", resourceCulture); } } /// /// Looks up a localized string similar to 0753. /// internal static string _47889 { get { return ResourceManager.GetString("47889", resourceCulture); } } /// /// Looks up a localized string similar to 0754. /// internal static string _47896 { get { return ResourceManager.GetString("47896", resourceCulture); } } /// /// Looks up a localized string similar to 0755. /// internal static string _47900 { get { return ResourceManager.GetString("47900", resourceCulture); } } /// /// Looks up a localized string similar to 0756. /// internal static string _47904 { get { return ResourceManager.GetString("47904", resourceCulture); } } /// /// Looks up a localized string similar to 0757. /// internal static string _47913 { get { return ResourceManager.GetString("47913", resourceCulture); } } /// /// Looks up a localized string similar to 0758. /// internal static string _47915 { get { return ResourceManager.GetString("47915", resourceCulture); } } /// /// Looks up a localized string similar to 0759. /// internal static string _47924 { get { return ResourceManager.GetString("47924", resourceCulture); } } /// /// Looks up a localized string similar to 075A. /// internal static string _47925 { get { return ResourceManager.GetString("47925", resourceCulture); } } /// /// Looks up a localized string similar to 075B. /// internal static string _47926 { get { return ResourceManager.GetString("47926", resourceCulture); } } /// /// Looks up a localized string similar to 075C. /// internal static string _47928 { get { return ResourceManager.GetString("47928", resourceCulture); } } /// /// Looks up a localized string similar to 075D. /// internal static string _47931 { get { return ResourceManager.GetString("47931", resourceCulture); } } /// /// Looks up a localized string similar to 075E. /// internal static string _47932 { get { return ResourceManager.GetString("47932", resourceCulture); } } /// /// Looks up a localized string similar to 075F. /// internal static string _47933 { get { return ResourceManager.GetString("47933", resourceCulture); } } /// /// Looks up a localized string similar to 0760. /// internal static string _47934 { get { return ResourceManager.GetString("47934", resourceCulture); } } /// /// Looks up a localized string similar to 0761. /// internal static string _47940 { get { return ResourceManager.GetString("47940", resourceCulture); } } /// /// Looks up a localized string similar to 0762. /// internal static string _47941 { get { return ResourceManager.GetString("47941", resourceCulture); } } /// /// Looks up a localized string similar to 0763. /// internal static string _47943 { get { return ResourceManager.GetString("47943", resourceCulture); } } /// /// Looks up a localized string similar to 0764. /// internal static string _47945 { get { return ResourceManager.GetString("47945", resourceCulture); } } /// /// Looks up a localized string similar to 0765. /// internal static string _47949 { get { return ResourceManager.GetString("47949", resourceCulture); } } /// /// Looks up a localized string similar to 0766. /// internal static string _47951 { get { return ResourceManager.GetString("47951", resourceCulture); } } /// /// Looks up a localized string similar to 0767. /// internal static string _47952 { get { return ResourceManager.GetString("47952", resourceCulture); } } /// /// Looks up a localized string similar to 0768. /// internal static string _47956 { get { return ResourceManager.GetString("47956", resourceCulture); } } /// /// Looks up a localized string similar to 0769. /// internal static string _47960 { get { return ResourceManager.GetString("47960", resourceCulture); } } /// /// Looks up a localized string similar to 076A. /// internal static string _47969 { get { return ResourceManager.GetString("47969", resourceCulture); } } /// /// Looks up a localized string similar to 076B. /// internal static string _47971 { get { return ResourceManager.GetString("47971", resourceCulture); } } /// /// Looks up a localized string similar to 076C. /// internal static string _47980 { get { return ResourceManager.GetString("47980", resourceCulture); } } /// /// Looks up a localized string similar to 0121. /// internal static string _48 { get { return ResourceManager.GetString("48", resourceCulture); } } /// /// Looks up a localized string similar to 076D. /// internal static string _48008 { get { return ResourceManager.GetString("48008", resourceCulture); } } /// /// Looks up a localized string similar to 076E. /// internal static string _48012 { get { return ResourceManager.GetString("48012", resourceCulture); } } /// /// Looks up a localized string similar to 076F. /// internal static string _48016 { get { return ResourceManager.GetString("48016", resourceCulture); } } /// /// Looks up a localized string similar to 0770. /// internal static string _48036 { get { return ResourceManager.GetString("48036", resourceCulture); } } /// /// Looks up a localized string similar to 0771. /// internal static string _48040 { get { return ResourceManager.GetString("48040", resourceCulture); } } /// /// Looks up a localized string similar to 0772. /// internal static string _48044 { get { return ResourceManager.GetString("48044", resourceCulture); } } /// /// Looks up a localized string similar to 0773. /// internal static string _48052 { get { return ResourceManager.GetString("48052", resourceCulture); } } /// /// Looks up a localized string similar to 0774. /// internal static string _48055 { get { return ResourceManager.GetString("48055", resourceCulture); } } /// /// Looks up a localized string similar to 0775. /// internal static string _48064 { get { return ResourceManager.GetString("48064", resourceCulture); } } /// /// Looks up a localized string similar to 0776. /// internal static string _48068 { get { return ResourceManager.GetString("48068", resourceCulture); } } /// /// Looks up a localized string similar to 0777. /// internal static string _48072 { get { return ResourceManager.GetString("48072", resourceCulture); } } /// /// Looks up a localized string similar to 0778. /// internal static string _48080 { get { return ResourceManager.GetString("48080", resourceCulture); } } /// /// Looks up a localized string similar to 0779. /// internal static string _48083 { get { return ResourceManager.GetString("48083", resourceCulture); } } /// /// Looks up a localized string similar to 077A. /// internal static string _48120 { get { return ResourceManager.GetString("48120", resourceCulture); } } /// /// Looks up a localized string similar to 077B. /// internal static string _48121 { get { return ResourceManager.GetString("48121", resourceCulture); } } /// /// Looks up a localized string similar to 077C. /// internal static string _48124 { get { return ResourceManager.GetString("48124", resourceCulture); } } /// /// Looks up a localized string similar to 077D. /// internal static string _48127 { get { return ResourceManager.GetString("48127", resourceCulture); } } /// /// Looks up a localized string similar to 077E. /// internal static string _48128 { get { return ResourceManager.GetString("48128", resourceCulture); } } /// /// Looks up a localized string similar to 077F. /// internal static string _48130 { get { return ResourceManager.GetString("48130", resourceCulture); } } /// /// Looks up a localized string similar to 0780. /// internal static string _48136 { get { return ResourceManager.GetString("48136", resourceCulture); } } /// /// Looks up a localized string similar to 0781. /// internal static string _48137 { get { return ResourceManager.GetString("48137", resourceCulture); } } /// /// Looks up a localized string similar to 0782. /// internal static string _48139 { get { return ResourceManager.GetString("48139", resourceCulture); } } /// /// Looks up a localized string similar to 0783. /// internal static string _48140 { get { return ResourceManager.GetString("48140", resourceCulture); } } /// /// Looks up a localized string similar to 0784. /// internal static string _48141 { get { return ResourceManager.GetString("48141", resourceCulture); } } /// /// Looks up a localized string similar to 0785. /// internal static string _48143 { get { return ResourceManager.GetString("48143", resourceCulture); } } /// /// Looks up a localized string similar to 0786. /// internal static string _48145 { get { return ResourceManager.GetString("48145", resourceCulture); } } /// /// Looks up a localized string similar to 0787. /// internal static string _48148 { get { return ResourceManager.GetString("48148", resourceCulture); } } /// /// Looks up a localized string similar to 0788. /// internal static string _48149 { get { return ResourceManager.GetString("48149", resourceCulture); } } /// /// Looks up a localized string similar to 0789. /// internal static string _48150 { get { return ResourceManager.GetString("48150", resourceCulture); } } /// /// Looks up a localized string similar to 078A. /// internal static string _48151 { get { return ResourceManager.GetString("48151", resourceCulture); } } /// /// Looks up a localized string similar to 078B. /// internal static string _48152 { get { return ResourceManager.GetString("48152", resourceCulture); } } /// /// Looks up a localized string similar to 078C. /// internal static string _48155 { get { return ResourceManager.GetString("48155", resourceCulture); } } /// /// Looks up a localized string similar to 078D. /// internal static string _48156 { get { return ResourceManager.GetString("48156", resourceCulture); } } /// /// Looks up a localized string similar to 078E. /// internal static string _48157 { get { return ResourceManager.GetString("48157", resourceCulture); } } /// /// Looks up a localized string similar to 078F. /// internal static string _48158 { get { return ResourceManager.GetString("48158", resourceCulture); } } /// /// Looks up a localized string similar to 0790. /// internal static string _48159 { get { return ResourceManager.GetString("48159", resourceCulture); } } /// /// Looks up a localized string similar to 0791. /// internal static string _48164 { get { return ResourceManager.GetString("48164", resourceCulture); } } /// /// Looks up a localized string similar to 0792. /// internal static string _48165 { get { return ResourceManager.GetString("48165", resourceCulture); } } /// /// Looks up a localized string similar to 0793. /// internal static string _48167 { get { return ResourceManager.GetString("48167", resourceCulture); } } /// /// Looks up a localized string similar to 0794. /// internal static string _48169 { get { return ResourceManager.GetString("48169", resourceCulture); } } /// /// Looks up a localized string similar to 0795. /// internal static string _48173 { get { return ResourceManager.GetString("48173", resourceCulture); } } /// /// Looks up a localized string similar to 0796. /// internal static string _48176 { get { return ResourceManager.GetString("48176", resourceCulture); } } /// /// Looks up a localized string similar to 0797. /// internal static string _48177 { get { return ResourceManager.GetString("48177", resourceCulture); } } /// /// Looks up a localized string similar to 0798. /// internal static string _48180 { get { return ResourceManager.GetString("48180", resourceCulture); } } /// /// Looks up a localized string similar to 0799. /// internal static string _48184 { get { return ResourceManager.GetString("48184", resourceCulture); } } /// /// Looks up a localized string similar to 079A. /// internal static string _48192 { get { return ResourceManager.GetString("48192", resourceCulture); } } /// /// Looks up a localized string similar to 079B. /// internal static string _48193 { get { return ResourceManager.GetString("48193", resourceCulture); } } /// /// Looks up a localized string similar to 079C. /// internal static string _48195 { get { return ResourceManager.GetString("48195", resourceCulture); } } /// /// Looks up a localized string similar to 079D. /// internal static string _48196 { get { return ResourceManager.GetString("48196", resourceCulture); } } /// /// Looks up a localized string similar to 079E. /// internal static string _48197 { get { return ResourceManager.GetString("48197", resourceCulture); } } /// /// Looks up a localized string similar to 079F. /// internal static string _48201 { get { return ResourceManager.GetString("48201", resourceCulture); } } /// /// Looks up a localized string similar to 07A0. /// internal static string _48204 { get { return ResourceManager.GetString("48204", resourceCulture); } } /// /// Looks up a localized string similar to 07A1. /// internal static string _48205 { get { return ResourceManager.GetString("48205", resourceCulture); } } /// /// Looks up a localized string similar to 07A2. /// internal static string _48208 { get { return ResourceManager.GetString("48208", resourceCulture); } } /// /// Looks up a localized string similar to 07A3. /// internal static string _48221 { get { return ResourceManager.GetString("48221", resourceCulture); } } /// /// Looks up a localized string similar to 07A4. /// internal static string _48260 { get { return ResourceManager.GetString("48260", resourceCulture); } } /// /// Looks up a localized string similar to 07A5. /// internal static string _48261 { get { return ResourceManager.GetString("48261", resourceCulture); } } /// /// Looks up a localized string similar to 07A6. /// internal static string _48264 { get { return ResourceManager.GetString("48264", resourceCulture); } } /// /// Looks up a localized string similar to 07A7. /// internal static string _48267 { get { return ResourceManager.GetString("48267", resourceCulture); } } /// /// Looks up a localized string similar to 07A8. /// internal static string _48268 { get { return ResourceManager.GetString("48268", resourceCulture); } } /// /// Looks up a localized string similar to 07A9. /// internal static string _48270 { get { return ResourceManager.GetString("48270", resourceCulture); } } /// /// Looks up a localized string similar to 07AA. /// internal static string _48276 { get { return ResourceManager.GetString("48276", resourceCulture); } } /// /// Looks up a localized string similar to 07AB. /// internal static string _48277 { get { return ResourceManager.GetString("48277", resourceCulture); } } /// /// Looks up a localized string similar to 07AC. /// internal static string _48279 { get { return ResourceManager.GetString("48279", resourceCulture); } } /// /// Looks up a localized string similar to 07AD. /// internal static string _48281 { get { return ResourceManager.GetString("48281", resourceCulture); } } /// /// Looks up a localized string similar to 07AE. /// internal static string _48282 { get { return ResourceManager.GetString("48282", resourceCulture); } } /// /// Looks up a localized string similar to 07AF. /// internal static string _48288 { get { return ResourceManager.GetString("48288", resourceCulture); } } /// /// Looks up a localized string similar to 07B0. /// internal static string _48289 { get { return ResourceManager.GetString("48289", resourceCulture); } } /// /// Looks up a localized string similar to 07B1. /// internal static string _48292 { get { return ResourceManager.GetString("48292", resourceCulture); } } /// /// Looks up a localized string similar to 07B2. /// internal static string _48295 { get { return ResourceManager.GetString("48295", resourceCulture); } } /// /// Looks up a localized string similar to 07B3. /// internal static string _48296 { get { return ResourceManager.GetString("48296", resourceCulture); } } /// /// Looks up a localized string similar to 07B4. /// internal static string _48304 { get { return ResourceManager.GetString("48304", resourceCulture); } } /// /// Looks up a localized string similar to 07B5. /// internal static string _48305 { get { return ResourceManager.GetString("48305", resourceCulture); } } /// /// Looks up a localized string similar to 07B6. /// internal static string _48307 { get { return ResourceManager.GetString("48307", resourceCulture); } } /// /// Looks up a localized string similar to 07B7. /// internal static string _48308 { get { return ResourceManager.GetString("48308", resourceCulture); } } /// /// Looks up a localized string similar to 07B8. /// internal static string _48309 { get { return ResourceManager.GetString("48309", resourceCulture); } } /// /// Looks up a localized string similar to 07B9. /// internal static string _48316 { get { return ResourceManager.GetString("48316", resourceCulture); } } /// /// Looks up a localized string similar to 07BA. /// internal static string _48317 { get { return ResourceManager.GetString("48317", resourceCulture); } } /// /// Looks up a localized string similar to 07BB. /// internal static string _48320 { get { return ResourceManager.GetString("48320", resourceCulture); } } /// /// Looks up a localized string similar to 07BC. /// internal static string _48324 { get { return ResourceManager.GetString("48324", resourceCulture); } } /// /// Looks up a localized string similar to 07BD. /// internal static string _48333 { get { return ResourceManager.GetString("48333", resourceCulture); } } /// /// Looks up a localized string similar to 07BE. /// internal static string _48335 { get { return ResourceManager.GetString("48335", resourceCulture); } } /// /// Looks up a localized string similar to 07BF. /// internal static string _48336 { get { return ResourceManager.GetString("48336", resourceCulture); } } /// /// Looks up a localized string similar to 07C0. /// internal static string _48337 { get { return ResourceManager.GetString("48337", resourceCulture); } } /// /// Looks up a localized string similar to 07C1. /// internal static string _48341 { get { return ResourceManager.GetString("48341", resourceCulture); } } /// /// Looks up a localized string similar to 07C2. /// internal static string _48344 { get { return ResourceManager.GetString("48344", resourceCulture); } } /// /// Looks up a localized string similar to 07C3. /// internal static string _48348 { get { return ResourceManager.GetString("48348", resourceCulture); } } /// /// Looks up a localized string similar to 07C4. /// internal static string _48372 { get { return ResourceManager.GetString("48372", resourceCulture); } } /// /// Looks up a localized string similar to 07C5. /// internal static string _48373 { get { return ResourceManager.GetString("48373", resourceCulture); } } /// /// Looks up a localized string similar to 07C6. /// internal static string _48374 { get { return ResourceManager.GetString("48374", resourceCulture); } } /// /// Looks up a localized string similar to 07C7. /// internal static string _48376 { get { return ResourceManager.GetString("48376", resourceCulture); } } /// /// Looks up a localized string similar to 07C8. /// internal static string _48380 { get { return ResourceManager.GetString("48380", resourceCulture); } } /// /// Looks up a localized string similar to 07C9. /// internal static string _48388 { get { return ResourceManager.GetString("48388", resourceCulture); } } /// /// Looks up a localized string similar to 07CA. /// internal static string _48389 { get { return ResourceManager.GetString("48389", resourceCulture); } } /// /// Looks up a localized string similar to 07CB. /// internal static string _48391 { get { return ResourceManager.GetString("48391", resourceCulture); } } /// /// Looks up a localized string similar to 07CC. /// internal static string _48393 { get { return ResourceManager.GetString("48393", resourceCulture); } } /// /// Looks up a localized string similar to 07CD. /// internal static string _48400 { get { return ResourceManager.GetString("48400", resourceCulture); } } /// /// Looks up a localized string similar to 07CE. /// internal static string _48404 { get { return ResourceManager.GetString("48404", resourceCulture); } } /// /// Looks up a localized string similar to 07CF. /// internal static string _48420 { get { return ResourceManager.GetString("48420", resourceCulture); } } /// /// Looks up a localized string similar to 07D0. /// internal static string _48428 { get { return ResourceManager.GetString("48428", resourceCulture); } } /// /// Looks up a localized string similar to 07D1. /// internal static string _48448 { get { return ResourceManager.GetString("48448", resourceCulture); } } /// /// Looks up a localized string similar to 07D2. /// internal static string _48456 { get { return ResourceManager.GetString("48456", resourceCulture); } } /// /// Looks up a localized string similar to 07D3. /// internal static string _48457 { get { return ResourceManager.GetString("48457", resourceCulture); } } /// /// Looks up a localized string similar to 07D4. /// internal static string _48460 { get { return ResourceManager.GetString("48460", resourceCulture); } } /// /// Looks up a localized string similar to 07D5. /// internal static string _48464 { get { return ResourceManager.GetString("48464", resourceCulture); } } /// /// Looks up a localized string similar to 07D6. /// internal static string _48472 { get { return ResourceManager.GetString("48472", resourceCulture); } } /// /// Looks up a localized string similar to 07D7. /// internal static string _48473 { get { return ResourceManager.GetString("48473", resourceCulture); } } /// /// Looks up a localized string similar to 07D8. /// internal static string _48484 { get { return ResourceManager.GetString("48484", resourceCulture); } } /// /// Looks up a localized string similar to 07D9. /// internal static string _48488 { get { return ResourceManager.GetString("48488", resourceCulture); } } /// /// Looks up a localized string similar to 07DA. /// internal static string _48512 { get { return ResourceManager.GetString("48512", resourceCulture); } } /// /// Looks up a localized string similar to 07DB. /// internal static string _48513 { get { return ResourceManager.GetString("48513", resourceCulture); } } /// /// Looks up a localized string similar to 07DC. /// internal static string _48516 { get { return ResourceManager.GetString("48516", resourceCulture); } } /// /// Looks up a localized string similar to 07DD. /// internal static string _48519 { get { return ResourceManager.GetString("48519", resourceCulture); } } /// /// Looks up a localized string similar to 07DE. /// internal static string _48520 { get { return ResourceManager.GetString("48520", resourceCulture); } } /// /// Looks up a localized string similar to 07DF. /// internal static string _48521 { get { return ResourceManager.GetString("48521", resourceCulture); } } /// /// Looks up a localized string similar to 07E0. /// internal static string _48522 { get { return ResourceManager.GetString("48522", resourceCulture); } } /// /// Looks up a localized string similar to 07E1. /// internal static string _48528 { get { return ResourceManager.GetString("48528", resourceCulture); } } /// /// Looks up a localized string similar to 07E2. /// internal static string _48529 { get { return ResourceManager.GetString("48529", resourceCulture); } } /// /// Looks up a localized string similar to 07E3. /// internal static string _48531 { get { return ResourceManager.GetString("48531", resourceCulture); } } /// /// Looks up a localized string similar to 07E4. /// internal static string _48533 { get { return ResourceManager.GetString("48533", resourceCulture); } } /// /// Looks up a localized string similar to 07E5. /// internal static string _48537 { get { return ResourceManager.GetString("48537", resourceCulture); } } /// /// Looks up a localized string similar to 07E6. /// internal static string _48538 { get { return ResourceManager.GetString("48538", resourceCulture); } } /// /// Looks up a localized string similar to 07E7. /// internal static string _48540 { get { return ResourceManager.GetString("48540", resourceCulture); } } /// /// Looks up a localized string similar to 07E8. /// internal static string _48548 { get { return ResourceManager.GetString("48548", resourceCulture); } } /// /// Looks up a localized string similar to 07E9. /// internal static string _48560 { get { return ResourceManager.GetString("48560", resourceCulture); } } /// /// Looks up a localized string similar to 07EA. /// internal static string _48568 { get { return ResourceManager.GetString("48568", resourceCulture); } } /// /// Looks up a localized string similar to 07EB. /// internal static string _48596 { get { return ResourceManager.GetString("48596", resourceCulture); } } /// /// Looks up a localized string similar to 07EC. /// internal static string _48597 { get { return ResourceManager.GetString("48597", resourceCulture); } } /// /// Looks up a localized string similar to 07ED. /// internal static string _48600 { get { return ResourceManager.GetString("48600", resourceCulture); } } /// /// Looks up a localized string similar to 07EE. /// internal static string _48604 { get { return ResourceManager.GetString("48604", resourceCulture); } } /// /// Looks up a localized string similar to 07EF. /// internal static string _48617 { get { return ResourceManager.GetString("48617", resourceCulture); } } /// /// Looks up a localized string similar to 07F0. /// internal static string _48624 { get { return ResourceManager.GetString("48624", resourceCulture); } } /// /// Looks up a localized string similar to 07F1. /// internal static string _48628 { get { return ResourceManager.GetString("48628", resourceCulture); } } /// /// Looks up a localized string similar to 07F2. /// internal static string _48632 { get { return ResourceManager.GetString("48632", resourceCulture); } } /// /// Looks up a localized string similar to 07F3. /// internal static string _48640 { get { return ResourceManager.GetString("48640", resourceCulture); } } /// /// Looks up a localized string similar to 07F4. /// internal static string _48643 { get { return ResourceManager.GetString("48643", resourceCulture); } } /// /// Looks up a localized string similar to 07F5. /// internal static string _48645 { get { return ResourceManager.GetString("48645", resourceCulture); } } /// /// Looks up a localized string similar to 07F6. /// internal static string _48652 { get { return ResourceManager.GetString("48652", resourceCulture); } } /// /// Looks up a localized string similar to 07F7. /// internal static string _48653 { get { return ResourceManager.GetString("48653", resourceCulture); } } /// /// Looks up a localized string similar to 07F8. /// internal static string _48656 { get { return ResourceManager.GetString("48656", resourceCulture); } } /// /// Looks up a localized string similar to 07F9. /// internal static string _48660 { get { return ResourceManager.GetString("48660", resourceCulture); } } /// /// Looks up a localized string similar to 07FA. /// internal static string _48668 { get { return ResourceManager.GetString("48668", resourceCulture); } } /// /// Looks up a localized string similar to 07FB. /// internal static string _48669 { get { return ResourceManager.GetString("48669", resourceCulture); } } /// /// Looks up a localized string similar to 07FC. /// internal static string _48671 { get { return ResourceManager.GetString("48671", resourceCulture); } } /// /// Looks up a localized string similar to 07FD. /// internal static string _48708 { get { return ResourceManager.GetString("48708", resourceCulture); } } /// /// Looks up a localized string similar to 07FE. /// internal static string _48709 { get { return ResourceManager.GetString("48709", resourceCulture); } } /// /// Looks up a localized string similar to 07FF. /// internal static string _48712 { get { return ResourceManager.GetString("48712", resourceCulture); } } /// /// Looks up a localized string similar to 0800. /// internal static string _48716 { get { return ResourceManager.GetString("48716", resourceCulture); } } /// /// Looks up a localized string similar to 0801. /// internal static string _48718 { get { return ResourceManager.GetString("48718", resourceCulture); } } /// /// Looks up a localized string similar to 0802. /// internal static string _48724 { get { return ResourceManager.GetString("48724", resourceCulture); } } /// /// Looks up a localized string similar to 0803. /// internal static string _48725 { get { return ResourceManager.GetString("48725", resourceCulture); } } /// /// Looks up a localized string similar to 0804. /// internal static string _48727 { get { return ResourceManager.GetString("48727", resourceCulture); } } /// /// Looks up a localized string similar to 0805. /// internal static string _48729 { get { return ResourceManager.GetString("48729", resourceCulture); } } /// /// Looks up a localized string similar to 0806. /// internal static string _48730 { get { return ResourceManager.GetString("48730", resourceCulture); } } /// /// Looks up a localized string similar to 0807. /// internal static string _48731 { get { return ResourceManager.GetString("48731", resourceCulture); } } /// /// Looks up a localized string similar to 0808. /// internal static string _48736 { get { return ResourceManager.GetString("48736", resourceCulture); } } /// /// Looks up a localized string similar to 0809. /// internal static string _48737 { get { return ResourceManager.GetString("48737", resourceCulture); } } /// /// Looks up a localized string similar to 080A. /// internal static string _48740 { get { return ResourceManager.GetString("48740", resourceCulture); } } /// /// Looks up a localized string similar to 080B. /// internal static string _48744 { get { return ResourceManager.GetString("48744", resourceCulture); } } /// /// Looks up a localized string similar to 080C. /// internal static string _48746 { get { return ResourceManager.GetString("48746", resourceCulture); } } /// /// Looks up a localized string similar to 080D. /// internal static string _48752 { get { return ResourceManager.GetString("48752", resourceCulture); } } /// /// Looks up a localized string similar to 080E. /// internal static string _48753 { get { return ResourceManager.GetString("48753", resourceCulture); } } /// /// Looks up a localized string similar to 080F. /// internal static string _48755 { get { return ResourceManager.GetString("48755", resourceCulture); } } /// /// Looks up a localized string similar to 0810. /// internal static string _48756 { get { return ResourceManager.GetString("48756", resourceCulture); } } /// /// Looks up a localized string similar to 0811. /// internal static string _48757 { get { return ResourceManager.GetString("48757", resourceCulture); } } /// /// Looks up a localized string similar to 0812. /// internal static string _48763 { get { return ResourceManager.GetString("48763", resourceCulture); } } /// /// Looks up a localized string similar to 0813. /// internal static string _48764 { get { return ResourceManager.GetString("48764", resourceCulture); } } /// /// Looks up a localized string similar to 0814. /// internal static string _48765 { get { return ResourceManager.GetString("48765", resourceCulture); } } /// /// Looks up a localized string similar to 0815. /// internal static string _48768 { get { return ResourceManager.GetString("48768", resourceCulture); } } /// /// Looks up a localized string similar to 0816. /// internal static string _48772 { get { return ResourceManager.GetString("48772", resourceCulture); } } /// /// Looks up a localized string similar to 0817. /// internal static string _48780 { get { return ResourceManager.GetString("48780", resourceCulture); } } /// /// Looks up a localized string similar to 0818. /// internal static string _48781 { get { return ResourceManager.GetString("48781", resourceCulture); } } /// /// Looks up a localized string similar to 0819. /// internal static string _48783 { get { return ResourceManager.GetString("48783", resourceCulture); } } /// /// Looks up a localized string similar to 081A. /// internal static string _48784 { get { return ResourceManager.GetString("48784", resourceCulture); } } /// /// Looks up a localized string similar to 081B. /// internal static string _48785 { get { return ResourceManager.GetString("48785", resourceCulture); } } /// /// Looks up a localized string similar to 081C. /// internal static string _48792 { get { return ResourceManager.GetString("48792", resourceCulture); } } /// /// Looks up a localized string similar to 081D. /// internal static string _48793 { get { return ResourceManager.GetString("48793", resourceCulture); } } /// /// Looks up a localized string similar to 081E. /// internal static string _48808 { get { return ResourceManager.GetString("48808", resourceCulture); } } /// /// Looks up a localized string similar to 081F. /// internal static string _48848 { get { return ResourceManager.GetString("48848", resourceCulture); } } /// /// Looks up a localized string similar to 0820. /// internal static string _48849 { get { return ResourceManager.GetString("48849", resourceCulture); } } /// /// Looks up a localized string similar to 0821. /// internal static string _48852 { get { return ResourceManager.GetString("48852", resourceCulture); } } /// /// Looks up a localized string similar to 0822. /// internal static string _48855 { get { return ResourceManager.GetString("48855", resourceCulture); } } /// /// Looks up a localized string similar to 0823. /// internal static string _48856 { get { return ResourceManager.GetString("48856", resourceCulture); } } /// /// Looks up a localized string similar to 0824. /// internal static string _48864 { get { return ResourceManager.GetString("48864", resourceCulture); } } /// /// Looks up a localized string similar to 0825. /// internal static string _48867 { get { return ResourceManager.GetString("48867", resourceCulture); } } /// /// Looks up a localized string similar to 0826. /// internal static string _48868 { get { return ResourceManager.GetString("48868", resourceCulture); } } /// /// Looks up a localized string similar to 0827. /// internal static string _48869 { get { return ResourceManager.GetString("48869", resourceCulture); } } /// /// Looks up a localized string similar to 0828. /// internal static string _48876 { get { return ResourceManager.GetString("48876", resourceCulture); } } /// /// Looks up a localized string similar to 0829. /// internal static string _48897 { get { return ResourceManager.GetString("48897", resourceCulture); } } /// /// Looks up a localized string similar to 082A. /// internal static string _48904 { get { return ResourceManager.GetString("48904", resourceCulture); } } /// /// Looks up a localized string similar to 082B. /// internal static string _48905 { get { return ResourceManager.GetString("48905", resourceCulture); } } /// /// Looks up a localized string similar to 082C. /// internal static string _48920 { get { return ResourceManager.GetString("48920", resourceCulture); } } /// /// Looks up a localized string similar to 082D. /// internal static string _48921 { get { return ResourceManager.GetString("48921", resourceCulture); } } /// /// Looks up a localized string similar to 082E. /// internal static string _48923 { get { return ResourceManager.GetString("48923", resourceCulture); } } /// /// Looks up a localized string similar to 082F. /// internal static string _48924 { get { return ResourceManager.GetString("48924", resourceCulture); } } /// /// Looks up a localized string similar to 0830. /// internal static string _48925 { get { return ResourceManager.GetString("48925", resourceCulture); } } /// /// Looks up a localized string similar to 0831. /// internal static string _48960 { get { return ResourceManager.GetString("48960", resourceCulture); } } /// /// Looks up a localized string similar to 0832. /// internal static string _48961 { get { return ResourceManager.GetString("48961", resourceCulture); } } /// /// Looks up a localized string similar to 0833. /// internal static string _48964 { get { return ResourceManager.GetString("48964", resourceCulture); } } /// /// Looks up a localized string similar to 0834. /// internal static string _48968 { get { return ResourceManager.GetString("48968", resourceCulture); } } /// /// Looks up a localized string similar to 0835. /// internal static string _48976 { get { return ResourceManager.GetString("48976", resourceCulture); } } /// /// Looks up a localized string similar to 0836. /// internal static string _48977 { get { return ResourceManager.GetString("48977", resourceCulture); } } /// /// Looks up a localized string similar to 0837. /// internal static string _48981 { get { return ResourceManager.GetString("48981", resourceCulture); } } /// /// Looks up a localized string similar to 0122. /// internal static string _49 { get { return ResourceManager.GetString("49", resourceCulture); } } /// /// Looks up a localized string similar to 0838. /// internal static string _49044 { get { return ResourceManager.GetString("49044", resourceCulture); } } /// /// Looks up a localized string similar to 0839. /// internal static string _49072 { get { return ResourceManager.GetString("49072", resourceCulture); } } /// /// Looks up a localized string similar to 083A. /// internal static string _49093 { get { return ResourceManager.GetString("49093", resourceCulture); } } /// /// Looks up a localized string similar to 083B. /// internal static string _49100 { get { return ResourceManager.GetString("49100", resourceCulture); } } /// /// Looks up a localized string similar to 083C. /// internal static string _49101 { get { return ResourceManager.GetString("49101", resourceCulture); } } /// /// Looks up a localized string similar to 083D. /// internal static string _49104 { get { return ResourceManager.GetString("49104", resourceCulture); } } /// /// Looks up a localized string similar to 083E. /// internal static string _49108 { get { return ResourceManager.GetString("49108", resourceCulture); } } /// /// Looks up a localized string similar to 083F. /// internal static string _49116 { get { return ResourceManager.GetString("49116", resourceCulture); } } /// /// Looks up a localized string similar to 0840. /// internal static string _49119 { get { return ResourceManager.GetString("49119", resourceCulture); } } /// /// Looks up a localized string similar to 0841. /// internal static string _49121 { get { return ResourceManager.GetString("49121", resourceCulture); } } /// /// Looks up a localized string similar to 0842. /// internal static string _49212 { get { return ResourceManager.GetString("49212", resourceCulture); } } /// /// Looks up a localized string similar to 0843. /// internal static string _49233 { get { return ResourceManager.GetString("49233", resourceCulture); } } /// /// Looks up a localized string similar to 0844. /// internal static string _49240 { get { return ResourceManager.GetString("49240", resourceCulture); } } /// /// Looks up a localized string similar to 0845. /// internal static string _49244 { get { return ResourceManager.GetString("49244", resourceCulture); } } /// /// Looks up a localized string similar to 0846. /// internal static string _49248 { get { return ResourceManager.GetString("49248", resourceCulture); } } /// /// Looks up a localized string similar to 0847. /// internal static string _49256 { get { return ResourceManager.GetString("49256", resourceCulture); } } /// /// Looks up a localized string similar to 0848. /// internal static string _49257 { get { return ResourceManager.GetString("49257", resourceCulture); } } /// /// Looks up a localized string similar to 0849. /// internal static string _49296 { get { return ResourceManager.GetString("49296", resourceCulture); } } /// /// Looks up a localized string similar to 084A. /// internal static string _49297 { get { return ResourceManager.GetString("49297", resourceCulture); } } /// /// Looks up a localized string similar to 084B. /// internal static string _49300 { get { return ResourceManager.GetString("49300", resourceCulture); } } /// /// Looks up a localized string similar to 084C. /// internal static string _49304 { get { return ResourceManager.GetString("49304", resourceCulture); } } /// /// Looks up a localized string similar to 084D. /// internal static string _49312 { get { return ResourceManager.GetString("49312", resourceCulture); } } /// /// Looks up a localized string similar to 084E. /// internal static string _49313 { get { return ResourceManager.GetString("49313", resourceCulture); } } /// /// Looks up a localized string similar to 084F. /// internal static string _49315 { get { return ResourceManager.GetString("49315", resourceCulture); } } /// /// Looks up a localized string similar to 0850. /// internal static string _49317 { get { return ResourceManager.GetString("49317", resourceCulture); } } /// /// Looks up a localized string similar to 0851. /// internal static string _49324 { get { return ResourceManager.GetString("49324", resourceCulture); } } /// /// Looks up a localized string similar to 0852. /// internal static string _49325 { get { return ResourceManager.GetString("49325", resourceCulture); } } /// /// Looks up a localized string similar to 0853. /// internal static string _49327 { get { return ResourceManager.GetString("49327", resourceCulture); } } /// /// Looks up a localized string similar to 0854. /// internal static string _49328 { get { return ResourceManager.GetString("49328", resourceCulture); } } /// /// Looks up a localized string similar to 0855. /// internal static string _49331 { get { return ResourceManager.GetString("49331", resourceCulture); } } /// /// Looks up a localized string similar to 0856. /// internal static string _49332 { get { return ResourceManager.GetString("49332", resourceCulture); } } /// /// Looks up a localized string similar to 0857. /// internal static string _49333 { get { return ResourceManager.GetString("49333", resourceCulture); } } /// /// Looks up a localized string similar to 0858. /// internal static string _49334 { get { return ResourceManager.GetString("49334", resourceCulture); } } /// /// Looks up a localized string similar to 0859. /// internal static string _49340 { get { return ResourceManager.GetString("49340", resourceCulture); } } /// /// Looks up a localized string similar to 085A. /// internal static string _49341 { get { return ResourceManager.GetString("49341", resourceCulture); } } /// /// Looks up a localized string similar to 085B. /// internal static string _49343 { get { return ResourceManager.GetString("49343", resourceCulture); } } /// /// Looks up a localized string similar to 085C. /// internal static string _49344 { get { return ResourceManager.GetString("49344", resourceCulture); } } /// /// Looks up a localized string similar to 085D. /// internal static string _49345 { get { return ResourceManager.GetString("49345", resourceCulture); } } /// /// Looks up a localized string similar to 085E. /// internal static string _49349 { get { return ResourceManager.GetString("49349", resourceCulture); } } /// /// Looks up a localized string similar to 085F. /// internal static string _49352 { get { return ResourceManager.GetString("49352", resourceCulture); } } /// /// Looks up a localized string similar to 0860. /// internal static string _49353 { get { return ResourceManager.GetString("49353", resourceCulture); } } /// /// Looks up a localized string similar to 0861. /// internal static string _49356 { get { return ResourceManager.GetString("49356", resourceCulture); } } /// /// Looks up a localized string similar to 0862. /// internal static string _49360 { get { return ResourceManager.GetString("49360", resourceCulture); } } /// /// Looks up a localized string similar to 0863. /// internal static string _49368 { get { return ResourceManager.GetString("49368", resourceCulture); } } /// /// Looks up a localized string similar to 0864. /// internal static string _49369 { get { return ResourceManager.GetString("49369", resourceCulture); } } /// /// Looks up a localized string similar to 0865. /// internal static string _49371 { get { return ResourceManager.GetString("49371", resourceCulture); } } /// /// Looks up a localized string similar to 0866. /// internal static string _49372 { get { return ResourceManager.GetString("49372", resourceCulture); } } /// /// Looks up a localized string similar to 0867. /// internal static string _49373 { get { return ResourceManager.GetString("49373", resourceCulture); } } /// /// Looks up a localized string similar to 0868. /// internal static string _49380 { get { return ResourceManager.GetString("49380", resourceCulture); } } /// /// Looks up a localized string similar to 0869. /// internal static string _49381 { get { return ResourceManager.GetString("49381", resourceCulture); } } /// /// Looks up a localized string similar to 086A. /// internal static string _49384 { get { return ResourceManager.GetString("49384", resourceCulture); } } /// /// Looks up a localized string similar to 086B. /// internal static string _49388 { get { return ResourceManager.GetString("49388", resourceCulture); } } /// /// Looks up a localized string similar to 086C. /// internal static string _49396 { get { return ResourceManager.GetString("49396", resourceCulture); } } /// /// Looks up a localized string similar to 086D. /// internal static string _49397 { get { return ResourceManager.GetString("49397", resourceCulture); } } /// /// Looks up a localized string similar to 086E. /// internal static string _49399 { get { return ResourceManager.GetString("49399", resourceCulture); } } /// /// Looks up a localized string similar to 086F. /// internal static string _49401 { get { return ResourceManager.GetString("49401", resourceCulture); } } /// /// Looks up a localized string similar to 0870. /// internal static string _49408 { get { return ResourceManager.GetString("49408", resourceCulture); } } /// /// Looks up a localized string similar to 0871. /// internal static string _49412 { get { return ResourceManager.GetString("49412", resourceCulture); } } /// /// Looks up a localized string similar to 0872. /// internal static string _49416 { get { return ResourceManager.GetString("49416", resourceCulture); } } /// /// Looks up a localized string similar to 0873. /// internal static string _49424 { get { return ResourceManager.GetString("49424", resourceCulture); } } /// /// Looks up a localized string similar to 0874. /// internal static string _49429 { get { return ResourceManager.GetString("49429", resourceCulture); } } /// /// Looks up a localized string similar to 0875. /// internal static string _49436 { get { return ResourceManager.GetString("49436", resourceCulture); } } /// /// Looks up a localized string similar to 0876. /// internal static string _49437 { get { return ResourceManager.GetString("49437", resourceCulture); } } /// /// Looks up a localized string similar to 0877. /// internal static string _49438 { get { return ResourceManager.GetString("49438", resourceCulture); } } /// /// Looks up a localized string similar to 0878. /// internal static string _49439 { get { return ResourceManager.GetString("49439", resourceCulture); } } /// /// Looks up a localized string similar to 0879. /// internal static string _49440 { get { return ResourceManager.GetString("49440", resourceCulture); } } /// /// Looks up a localized string similar to 087A. /// internal static string _49443 { get { return ResourceManager.GetString("49443", resourceCulture); } } /// /// Looks up a localized string similar to 087B. /// internal static string _49444 { get { return ResourceManager.GetString("49444", resourceCulture); } } /// /// Looks up a localized string similar to 087C. /// internal static string _49446 { get { return ResourceManager.GetString("49446", resourceCulture); } } /// /// Looks up a localized string similar to 087D. /// internal static string _49447 { get { return ResourceManager.GetString("49447", resourceCulture); } } /// /// Looks up a localized string similar to 087E. /// internal static string _49452 { get { return ResourceManager.GetString("49452", resourceCulture); } } /// /// Looks up a localized string similar to 087F. /// internal static string _49453 { get { return ResourceManager.GetString("49453", resourceCulture); } } /// /// Looks up a localized string similar to 0880. /// internal static string _49455 { get { return ResourceManager.GetString("49455", resourceCulture); } } /// /// Looks up a localized string similar to 0881. /// internal static string _49456 { get { return ResourceManager.GetString("49456", resourceCulture); } } /// /// Looks up a localized string similar to 0882. /// internal static string _49457 { get { return ResourceManager.GetString("49457", resourceCulture); } } /// /// Looks up a localized string similar to 0883. /// internal static string _49462 { get { return ResourceManager.GetString("49462", resourceCulture); } } /// /// Looks up a localized string similar to 0884. /// internal static string _49464 { get { return ResourceManager.GetString("49464", resourceCulture); } } /// /// Looks up a localized string similar to 0885. /// internal static string _49465 { get { return ResourceManager.GetString("49465", resourceCulture); } } /// /// Looks up a localized string similar to 0886. /// internal static string _49468 { get { return ResourceManager.GetString("49468", resourceCulture); } } /// /// Looks up a localized string similar to 0887. /// internal static string _49472 { get { return ResourceManager.GetString("49472", resourceCulture); } } /// /// Looks up a localized string similar to 0888. /// internal static string _49480 { get { return ResourceManager.GetString("49480", resourceCulture); } } /// /// Looks up a localized string similar to 0889. /// internal static string _49481 { get { return ResourceManager.GetString("49481", resourceCulture); } } /// /// Looks up a localized string similar to 088A. /// internal static string _49483 { get { return ResourceManager.GetString("49483", resourceCulture); } } /// /// Looks up a localized string similar to 088B. /// internal static string _49484 { get { return ResourceManager.GetString("49484", resourceCulture); } } /// /// Looks up a localized string similar to 088C. /// internal static string _49485 { get { return ResourceManager.GetString("49485", resourceCulture); } } /// /// Looks up a localized string similar to 088D. /// internal static string _49492 { get { return ResourceManager.GetString("49492", resourceCulture); } } /// /// Looks up a localized string similar to 088E. /// internal static string _49493 { get { return ResourceManager.GetString("49493", resourceCulture); } } /// /// Looks up a localized string similar to 088F. /// internal static string _49496 { get { return ResourceManager.GetString("49496", resourceCulture); } } /// /// Looks up a localized string similar to 0890. /// internal static string _49500 { get { return ResourceManager.GetString("49500", resourceCulture); } } /// /// Looks up a localized string similar to 0891. /// internal static string _49508 { get { return ResourceManager.GetString("49508", resourceCulture); } } /// /// Looks up a localized string similar to 0892. /// internal static string _49509 { get { return ResourceManager.GetString("49509", resourceCulture); } } /// /// Looks up a localized string similar to 0893. /// internal static string _49511 { get { return ResourceManager.GetString("49511", resourceCulture); } } /// /// Looks up a localized string similar to 0894. /// internal static string _49512 { get { return ResourceManager.GetString("49512", resourceCulture); } } /// /// Looks up a localized string similar to 0895. /// internal static string _49513 { get { return ResourceManager.GetString("49513", resourceCulture); } } /// /// Looks up a localized string similar to 0896. /// internal static string _49520 { get { return ResourceManager.GetString("49520", resourceCulture); } } /// /// Looks up a localized string similar to 0897. /// internal static string _49524 { get { return ResourceManager.GetString("49524", resourceCulture); } } /// /// Looks up a localized string similar to 0898. /// internal static string _49528 { get { return ResourceManager.GetString("49528", resourceCulture); } } /// /// Looks up a localized string similar to 0899. /// internal static string _49541 { get { return ResourceManager.GetString("49541", resourceCulture); } } /// /// Looks up a localized string similar to 089A. /// internal static string _49548 { get { return ResourceManager.GetString("49548", resourceCulture); } } /// /// Looks up a localized string similar to 089B. /// internal static string _49549 { get { return ResourceManager.GetString("49549", resourceCulture); } } /// /// Looks up a localized string similar to 089C. /// internal static string _49550 { get { return ResourceManager.GetString("49550", resourceCulture); } } /// /// Looks up a localized string similar to 089D. /// internal static string _49552 { get { return ResourceManager.GetString("49552", resourceCulture); } } /// /// Looks up a localized string similar to 089E. /// internal static string _49556 { get { return ResourceManager.GetString("49556", resourceCulture); } } /// /// Looks up a localized string similar to 089F. /// internal static string _49558 { get { return ResourceManager.GetString("49558", resourceCulture); } } /// /// Looks up a localized string similar to 08A0. /// internal static string _49564 { get { return ResourceManager.GetString("49564", resourceCulture); } } /// /// Looks up a localized string similar to 08A1. /// internal static string _49565 { get { return ResourceManager.GetString("49565", resourceCulture); } } /// /// Looks up a localized string similar to 08A2. /// internal static string _49567 { get { return ResourceManager.GetString("49567", resourceCulture); } } /// /// Looks up a localized string similar to 08A3. /// internal static string _49569 { get { return ResourceManager.GetString("49569", resourceCulture); } } /// /// Looks up a localized string similar to 08A4. /// internal static string _49573 { get { return ResourceManager.GetString("49573", resourceCulture); } } /// /// Looks up a localized string similar to 08A5. /// internal static string _49576 { get { return ResourceManager.GetString("49576", resourceCulture); } } /// /// Looks up a localized string similar to 08A6. /// internal static string _49577 { get { return ResourceManager.GetString("49577", resourceCulture); } } /// /// Looks up a localized string similar to 08A7. /// internal static string _49580 { get { return ResourceManager.GetString("49580", resourceCulture); } } /// /// Looks up a localized string similar to 08A8. /// internal static string _49584 { get { return ResourceManager.GetString("49584", resourceCulture); } } /// /// Looks up a localized string similar to 08A9. /// internal static string _49597 { get { return ResourceManager.GetString("49597", resourceCulture); } } /// /// Looks up a localized string similar to 08AA. /// internal static string _49604 { get { return ResourceManager.GetString("49604", resourceCulture); } } /// /// Looks up a localized string similar to 08AB. /// internal static string _49608 { get { return ResourceManager.GetString("49608", resourceCulture); } } /// /// Looks up a localized string similar to 08AC. /// internal static string _49612 { get { return ResourceManager.GetString("49612", resourceCulture); } } /// /// Looks up a localized string similar to 08AD. /// internal static string _49620 { get { return ResourceManager.GetString("49620", resourceCulture); } } /// /// Looks up a localized string similar to 08AE. /// internal static string _49623 { get { return ResourceManager.GetString("49623", resourceCulture); } } /// /// Looks up a localized string similar to 08AF. /// internal static string _49624 { get { return ResourceManager.GetString("49624", resourceCulture); } } /// /// Looks up a localized string similar to 08B0. /// internal static string _49632 { get { return ResourceManager.GetString("49632", resourceCulture); } } /// /// Looks up a localized string similar to 08B1. /// internal static string _49636 { get { return ResourceManager.GetString("49636", resourceCulture); } } /// /// Looks up a localized string similar to 08B2. /// internal static string _49640 { get { return ResourceManager.GetString("49640", resourceCulture); } } /// /// Looks up a localized string similar to 08B3. /// internal static string _49648 { get { return ResourceManager.GetString("49648", resourceCulture); } } /// /// Looks up a localized string similar to 08B4. /// internal static string _49649 { get { return ResourceManager.GetString("49649", resourceCulture); } } /// /// Looks up a localized string similar to 08B5. /// internal static string _49651 { get { return ResourceManager.GetString("49651", resourceCulture); } } /// /// Looks up a localized string similar to 08B6. /// internal static string _49660 { get { return ResourceManager.GetString("49660", resourceCulture); } } /// /// Looks up a localized string similar to 08B7. /// internal static string _49661 { get { return ResourceManager.GetString("49661", resourceCulture); } } /// /// Looks up a localized string similar to 08B8. /// internal static string _49664 { get { return ResourceManager.GetString("49664", resourceCulture); } } /// /// Looks up a localized string similar to 08B9. /// internal static string _49668 { get { return ResourceManager.GetString("49668", resourceCulture); } } /// /// Looks up a localized string similar to 08BA. /// internal static string _49676 { get { return ResourceManager.GetString("49676", resourceCulture); } } /// /// Looks up a localized string similar to 08BB. /// internal static string _49677 { get { return ResourceManager.GetString("49677", resourceCulture); } } /// /// Looks up a localized string similar to 08BC. /// internal static string _49679 { get { return ResourceManager.GetString("49679", resourceCulture); } } /// /// Looks up a localized string similar to 08BD. /// internal static string _49681 { get { return ResourceManager.GetString("49681", resourceCulture); } } /// /// Looks up a localized string similar to 08BE. /// internal static string _49688 { get { return ResourceManager.GetString("49688", resourceCulture); } } /// /// Looks up a localized string similar to 08BF. /// internal static string _49689 { get { return ResourceManager.GetString("49689", resourceCulture); } } /// /// Looks up a localized string similar to 08C0. /// internal static string _49692 { get { return ResourceManager.GetString("49692", resourceCulture); } } /// /// Looks up a localized string similar to 08C1. /// internal static string _49695 { get { return ResourceManager.GetString("49695", resourceCulture); } } /// /// Looks up a localized string similar to 08C2. /// internal static string _49696 { get { return ResourceManager.GetString("49696", resourceCulture); } } /// /// Looks up a localized string similar to 08C3. /// internal static string _49704 { get { return ResourceManager.GetString("49704", resourceCulture); } } /// /// Looks up a localized string similar to 08C4. /// internal static string _49705 { get { return ResourceManager.GetString("49705", resourceCulture); } } /// /// Looks up a localized string similar to 08C5. /// internal static string _49707 { get { return ResourceManager.GetString("49707", resourceCulture); } } /// /// Looks up a localized string similar to 08C6. /// internal static string _49709 { get { return ResourceManager.GetString("49709", resourceCulture); } } /// /// Looks up a localized string similar to 08C7. /// internal static string _49711 { get { return ResourceManager.GetString("49711", resourceCulture); } } /// /// Looks up a localized string similar to 08C8. /// internal static string _49713 { get { return ResourceManager.GetString("49713", resourceCulture); } } /// /// Looks up a localized string similar to 08C9. /// internal static string _49714 { get { return ResourceManager.GetString("49714", resourceCulture); } } /// /// Looks up a localized string similar to 08CA. /// internal static string _49716 { get { return ResourceManager.GetString("49716", resourceCulture); } } /// /// Looks up a localized string similar to 08CB. /// internal static string _49736 { get { return ResourceManager.GetString("49736", resourceCulture); } } /// /// Looks up a localized string similar to 08CC. /// internal static string _49744 { get { return ResourceManager.GetString("49744", resourceCulture); } } /// /// Looks up a localized string similar to 08CD. /// internal static string _49745 { get { return ResourceManager.GetString("49745", resourceCulture); } } /// /// Looks up a localized string similar to 08CE. /// internal static string _49748 { get { return ResourceManager.GetString("49748", resourceCulture); } } /// /// Looks up a localized string similar to 08CF. /// internal static string _49752 { get { return ResourceManager.GetString("49752", resourceCulture); } } /// /// Looks up a localized string similar to 08D0. /// internal static string _49760 { get { return ResourceManager.GetString("49760", resourceCulture); } } /// /// Looks up a localized string similar to 08D1. /// internal static string _49765 { get { return ResourceManager.GetString("49765", resourceCulture); } } /// /// Looks up a localized string similar to 08D2. /// internal static string _49772 { get { return ResourceManager.GetString("49772", resourceCulture); } } /// /// Looks up a localized string similar to 08D3. /// internal static string _49773 { get { return ResourceManager.GetString("49773", resourceCulture); } } /// /// Looks up a localized string similar to 08D4. /// internal static string _49776 { get { return ResourceManager.GetString("49776", resourceCulture); } } /// /// Looks up a localized string similar to 08D5. /// internal static string _49780 { get { return ResourceManager.GetString("49780", resourceCulture); } } /// /// Looks up a localized string similar to 08D6. /// internal static string _49788 { get { return ResourceManager.GetString("49788", resourceCulture); } } /// /// Looks up a localized string similar to 08D7. /// internal static string _49789 { get { return ResourceManager.GetString("49789", resourceCulture); } } /// /// Looks up a localized string similar to 08D8. /// internal static string _49791 { get { return ResourceManager.GetString("49791", resourceCulture); } } /// /// Looks up a localized string similar to 08D9. /// internal static string _49793 { get { return ResourceManager.GetString("49793", resourceCulture); } } /// /// Looks up a localized string similar to 08DA. /// internal static string _49800 { get { return ResourceManager.GetString("49800", resourceCulture); } } /// /// Looks up a localized string similar to 08DB. /// internal static string _49801 { get { return ResourceManager.GetString("49801", resourceCulture); } } /// /// Looks up a localized string similar to 08DC. /// internal static string _49808 { get { return ResourceManager.GetString("49808", resourceCulture); } } /// /// Looks up a localized string similar to 08DD. /// internal static string _49816 { get { return ResourceManager.GetString("49816", resourceCulture); } } /// /// Looks up a localized string similar to 08DE. /// internal static string _49819 { get { return ResourceManager.GetString("49819", resourceCulture); } } /// /// Looks up a localized string similar to 08DF. /// internal static string _49821 { get { return ResourceManager.GetString("49821", resourceCulture); } } /// /// Looks up a localized string similar to 08E0. /// internal static string _49828 { get { return ResourceManager.GetString("49828", resourceCulture); } } /// /// Looks up a localized string similar to 08E1. /// internal static string _49829 { get { return ResourceManager.GetString("49829", resourceCulture); } } /// /// Looks up a localized string similar to 08E2. /// internal static string _49832 { get { return ResourceManager.GetString("49832", resourceCulture); } } /// /// Looks up a localized string similar to 08E3. /// internal static string _49836 { get { return ResourceManager.GetString("49836", resourceCulture); } } /// /// Looks up a localized string similar to 08E4. /// internal static string _49837 { get { return ResourceManager.GetString("49837", resourceCulture); } } /// /// Looks up a localized string similar to 08E5. /// internal static string _49844 { get { return ResourceManager.GetString("49844", resourceCulture); } } /// /// Looks up a localized string similar to 08E6. /// internal static string _49845 { get { return ResourceManager.GetString("49845", resourceCulture); } } /// /// Looks up a localized string similar to 08E7. /// internal static string _49847 { get { return ResourceManager.GetString("49847", resourceCulture); } } /// /// Looks up a localized string similar to 08E8. /// internal static string _49849 { get { return ResourceManager.GetString("49849", resourceCulture); } } /// /// Looks up a localized string similar to 08E9. /// internal static string _49884 { get { return ResourceManager.GetString("49884", resourceCulture); } } /// /// Looks up a localized string similar to 08EA. /// internal static string _49885 { get { return ResourceManager.GetString("49885", resourceCulture); } } /// /// Looks up a localized string similar to 08EB. /// internal static string _49888 { get { return ResourceManager.GetString("49888", resourceCulture); } } /// /// Looks up a localized string similar to 08EC. /// internal static string _49891 { get { return ResourceManager.GetString("49891", resourceCulture); } } /// /// Looks up a localized string similar to 08ED. /// internal static string _49892 { get { return ResourceManager.GetString("49892", resourceCulture); } } /// /// Looks up a localized string similar to 08EE. /// internal static string _49899 { get { return ResourceManager.GetString("49899", resourceCulture); } } /// /// Looks up a localized string similar to 08EF. /// internal static string _49900 { get { return ResourceManager.GetString("49900", resourceCulture); } } /// /// Looks up a localized string similar to 08F0. /// internal static string _49901 { get { return ResourceManager.GetString("49901", resourceCulture); } } /// /// Looks up a localized string similar to 08F1. /// internal static string _49903 { get { return ResourceManager.GetString("49903", resourceCulture); } } /// /// Looks up a localized string similar to 08F2. /// internal static string _49905 { get { return ResourceManager.GetString("49905", resourceCulture); } } /// /// Looks up a localized string similar to 08F3. /// internal static string _49910 { get { return ResourceManager.GetString("49910", resourceCulture); } } /// /// Looks up a localized string similar to 08F4. /// internal static string _49912 { get { return ResourceManager.GetString("49912", resourceCulture); } } /// /// Looks up a localized string similar to 08F5. /// internal static string _49913 { get { return ResourceManager.GetString("49913", resourceCulture); } } /// /// Looks up a localized string similar to 08F6. /// internal static string _49915 { get { return ResourceManager.GetString("49915", resourceCulture); } } /// /// Looks up a localized string similar to 08F7. /// internal static string _49916 { get { return ResourceManager.GetString("49916", resourceCulture); } } /// /// Looks up a localized string similar to 08F8. /// internal static string _49920 { get { return ResourceManager.GetString("49920", resourceCulture); } } /// /// Looks up a localized string similar to 08F9. /// internal static string _49928 { get { return ResourceManager.GetString("49928", resourceCulture); } } /// /// Looks up a localized string similar to 08FA. /// internal static string _49929 { get { return ResourceManager.GetString("49929", resourceCulture); } } /// /// Looks up a localized string similar to 08FB. /// internal static string _49932 { get { return ResourceManager.GetString("49932", resourceCulture); } } /// /// Looks up a localized string similar to 08FC. /// internal static string _49933 { get { return ResourceManager.GetString("49933", resourceCulture); } } /// /// Looks up a localized string similar to 08FD. /// internal static string _49939 { get { return ResourceManager.GetString("49939", resourceCulture); } } /// /// Looks up a localized string similar to 08FE. /// internal static string _49940 { get { return ResourceManager.GetString("49940", resourceCulture); } } /// /// Looks up a localized string similar to 08FF. /// internal static string _49941 { get { return ResourceManager.GetString("49941", resourceCulture); } } /// /// Looks up a localized string similar to 0900. /// internal static string _49944 { get { return ResourceManager.GetString("49944", resourceCulture); } } /// /// Looks up a localized string similar to 0901. /// internal static string _49948 { get { return ResourceManager.GetString("49948", resourceCulture); } } /// /// Looks up a localized string similar to 0902. /// internal static string _49956 { get { return ResourceManager.GetString("49956", resourceCulture); } } /// /// Looks up a localized string similar to 0903. /// internal static string _49957 { get { return ResourceManager.GetString("49957", resourceCulture); } } /// /// Looks up a localized string similar to 0904. /// internal static string _49960 { get { return ResourceManager.GetString("49960", resourceCulture); } } /// /// Looks up a localized string similar to 0905. /// internal static string _49961 { get { return ResourceManager.GetString("49961", resourceCulture); } } /// /// Looks up a localized string similar to 0D62. /// internal static string _49968 { get { return ResourceManager.GetString("49968", resourceCulture); } } /// /// Looks up a localized string similar to 0906. /// internal static string _49989 { get { return ResourceManager.GetString("49989", resourceCulture); } } /// /// Looks up a localized string similar to 0123. /// internal static string _50 { get { return ResourceManager.GetString("50", resourceCulture); } } /// /// Looks up a localized string similar to 0907. /// internal static string _50024 { get { return ResourceManager.GetString("50024", resourceCulture); } } /// /// Looks up a localized string similar to 0908. /// internal static string _50025 { get { return ResourceManager.GetString("50025", resourceCulture); } } /// /// Looks up a localized string similar to 0909. /// internal static string _50028 { get { return ResourceManager.GetString("50028", resourceCulture); } } /// /// Looks up a localized string similar to 090A. /// internal static string _50032 { get { return ResourceManager.GetString("50032", resourceCulture); } } /// /// Looks up a localized string similar to 090B. /// internal static string _50034 { get { return ResourceManager.GetString("50034", resourceCulture); } } /// /// Looks up a localized string similar to 090C. /// internal static string _50040 { get { return ResourceManager.GetString("50040", resourceCulture); } } /// /// Looks up a localized string similar to 090D. /// internal static string _50041 { get { return ResourceManager.GetString("50041", resourceCulture); } } /// /// Looks up a localized string similar to 090E. /// internal static string _50044 { get { return ResourceManager.GetString("50044", resourceCulture); } } /// /// Looks up a localized string similar to 090F. /// internal static string _50045 { get { return ResourceManager.GetString("50045", resourceCulture); } } /// /// Looks up a localized string similar to 0910. /// internal static string _50052 { get { return ResourceManager.GetString("50052", resourceCulture); } } /// /// Looks up a localized string similar to 0911. /// internal static string _50056 { get { return ResourceManager.GetString("50056", resourceCulture); } } /// /// Looks up a localized string similar to 0912. /// internal static string _50060 { get { return ResourceManager.GetString("50060", resourceCulture); } } /// /// Looks up a localized string similar to 0D63. /// internal static string _50108 { get { return ResourceManager.GetString("50108", resourceCulture); } } /// /// Looks up a localized string similar to 0913. /// internal static string _50112 { get { return ResourceManager.GetString("50112", resourceCulture); } } /// /// Looks up a localized string similar to 0914. /// internal static string _50136 { get { return ResourceManager.GetString("50136", resourceCulture); } } /// /// Looks up a localized string similar to 0915. /// internal static string _50137 { get { return ResourceManager.GetString("50137", resourceCulture); } } /// /// Looks up a localized string similar to 0916. /// internal static string _50140 { get { return ResourceManager.GetString("50140", resourceCulture); } } /// /// Looks up a localized string similar to 0917. /// internal static string _50143 { get { return ResourceManager.GetString("50143", resourceCulture); } } /// /// Looks up a localized string similar to 0918. /// internal static string _50144 { get { return ResourceManager.GetString("50144", resourceCulture); } } /// /// Looks up a localized string similar to 0919. /// internal static string _50146 { get { return ResourceManager.GetString("50146", resourceCulture); } } /// /// Looks up a localized string similar to 091A. /// internal static string _50152 { get { return ResourceManager.GetString("50152", resourceCulture); } } /// /// Looks up a localized string similar to 091B. /// internal static string _50153 { get { return ResourceManager.GetString("50153", resourceCulture); } } /// /// Looks up a localized string similar to 091C. /// internal static string _50157 { get { return ResourceManager.GetString("50157", resourceCulture); } } /// /// Looks up a localized string similar to 091D. /// internal static string _50164 { get { return ResourceManager.GetString("50164", resourceCulture); } } /// /// Looks up a localized string similar to 091E. /// internal static string _50165 { get { return ResourceManager.GetString("50165", resourceCulture); } } /// /// Looks up a localized string similar to 091F. /// internal static string _50168 { get { return ResourceManager.GetString("50168", resourceCulture); } } /// /// Looks up a localized string similar to 0920. /// internal static string _50184 { get { return ResourceManager.GetString("50184", resourceCulture); } } /// /// Looks up a localized string similar to 0921. /// internal static string _50192 { get { return ResourceManager.GetString("50192", resourceCulture); } } /// /// Looks up a localized string similar to 0922. /// internal static string _50212 { get { return ResourceManager.GetString("50212", resourceCulture); } } /// /// Looks up a localized string similar to 0923. /// internal static string _50220 { get { return ResourceManager.GetString("50220", resourceCulture); } } /// /// Looks up a localized string similar to 0924. /// internal static string _50224 { get { return ResourceManager.GetString("50224", resourceCulture); } } /// /// Looks up a localized string similar to 0925. /// internal static string _50228 { get { return ResourceManager.GetString("50228", resourceCulture); } } /// /// Looks up a localized string similar to 0926. /// internal static string _50236 { get { return ResourceManager.GetString("50236", resourceCulture); } } /// /// Looks up a localized string similar to 0927. /// internal static string _50237 { get { return ResourceManager.GetString("50237", resourceCulture); } } /// /// Looks up a localized string similar to 0928. /// internal static string _50248 { get { return ResourceManager.GetString("50248", resourceCulture); } } /// /// Looks up a localized string similar to 0929. /// internal static string _50276 { get { return ResourceManager.GetString("50276", resourceCulture); } } /// /// Looks up a localized string similar to 092A. /// internal static string _50277 { get { return ResourceManager.GetString("50277", resourceCulture); } } /// /// Looks up a localized string similar to 092B. /// internal static string _50280 { get { return ResourceManager.GetString("50280", resourceCulture); } } /// /// Looks up a localized string similar to 092C. /// internal static string _50284 { get { return ResourceManager.GetString("50284", resourceCulture); } } /// /// Looks up a localized string similar to 092D. /// internal static string _50292 { get { return ResourceManager.GetString("50292", resourceCulture); } } /// /// Looks up a localized string similar to 092E. /// internal static string _50293 { get { return ResourceManager.GetString("50293", resourceCulture); } } /// /// Looks up a localized string similar to 092F. /// internal static string _50297 { get { return ResourceManager.GetString("50297", resourceCulture); } } /// /// Looks up a localized string similar to 0930. /// internal static string _50304 { get { return ResourceManager.GetString("50304", resourceCulture); } } /// /// Looks up a localized string similar to 0931. /// internal static string _50324 { get { return ResourceManager.GetString("50324", resourceCulture); } } /// /// Looks up a localized string similar to 0932. /// internal static string _50332 { get { return ResourceManager.GetString("50332", resourceCulture); } } /// /// Looks up a localized string similar to 0933. /// internal static string _50360 { get { return ResourceManager.GetString("50360", resourceCulture); } } /// /// Looks up a localized string similar to 0934. /// internal static string _50364 { get { return ResourceManager.GetString("50364", resourceCulture); } } /// /// Looks up a localized string similar to 0D64. /// internal static string _50388 { get { return ResourceManager.GetString("50388", resourceCulture); } } /// /// Looks up a localized string similar to 0935. /// internal static string _50409 { get { return ResourceManager.GetString("50409", resourceCulture); } } /// /// Looks up a localized string similar to 0936. /// internal static string _50416 { get { return ResourceManager.GetString("50416", resourceCulture); } } /// /// Looks up a localized string similar to 0937. /// internal static string _50417 { get { return ResourceManager.GetString("50417", resourceCulture); } } /// /// Looks up a localized string similar to 0938. /// internal static string _50420 { get { return ResourceManager.GetString("50420", resourceCulture); } } /// /// Looks up a localized string similar to 0939. /// internal static string _50424 { get { return ResourceManager.GetString("50424", resourceCulture); } } /// /// Looks up a localized string similar to 093A. /// internal static string _50426 { get { return ResourceManager.GetString("50426", resourceCulture); } } /// /// Looks up a localized string similar to 093B. /// internal static string _50431 { get { return ResourceManager.GetString("50431", resourceCulture); } } /// /// Looks up a localized string similar to 093C. /// internal static string _50432 { get { return ResourceManager.GetString("50432", resourceCulture); } } /// /// Looks up a localized string similar to 093D. /// internal static string _50433 { get { return ResourceManager.GetString("50433", resourceCulture); } } /// /// Looks up a localized string similar to 093E. /// internal static string _50444 { get { return ResourceManager.GetString("50444", resourceCulture); } } /// /// Looks up a localized string similar to 093F. /// internal static string _50448 { get { return ResourceManager.GetString("50448", resourceCulture); } } /// /// Looks up a localized string similar to 0940. /// internal static string _50452 { get { return ResourceManager.GetString("50452", resourceCulture); } } /// /// Looks up a localized string similar to 0941. /// internal static string _50460 { get { return ResourceManager.GetString("50460", resourceCulture); } } /// /// Looks up a localized string similar to 0942. /// internal static string _50472 { get { return ResourceManager.GetString("50472", resourceCulture); } } /// /// Looks up a localized string similar to 0943. /// internal static string _50473 { get { return ResourceManager.GetString("50473", resourceCulture); } } /// /// Looks up a localized string similar to 0944. /// internal static string _50476 { get { return ResourceManager.GetString("50476", resourceCulture); } } /// /// Looks up a localized string similar to 0945. /// internal static string _50480 { get { return ResourceManager.GetString("50480", resourceCulture); } } /// /// Looks up a localized string similar to 0946. /// internal static string _50488 { get { return ResourceManager.GetString("50488", resourceCulture); } } /// /// Looks up a localized string similar to 0947. /// internal static string _50489 { get { return ResourceManager.GetString("50489", resourceCulture); } } /// /// Looks up a localized string similar to 0948. /// internal static string _50491 { get { return ResourceManager.GetString("50491", resourceCulture); } } /// /// Looks up a localized string similar to 0949. /// internal static string _50493 { get { return ResourceManager.GetString("50493", resourceCulture); } } /// /// Looks up a localized string similar to 094A. /// internal static string _50500 { get { return ResourceManager.GetString("50500", resourceCulture); } } /// /// Looks up a localized string similar to 094B. /// internal static string _50501 { get { return ResourceManager.GetString("50501", resourceCulture); } } /// /// Looks up a localized string similar to 094C. /// internal static string _50504 { get { return ResourceManager.GetString("50504", resourceCulture); } } /// /// Looks up a localized string similar to 094D. /// internal static string _50505 { get { return ResourceManager.GetString("50505", resourceCulture); } } /// /// Looks up a localized string similar to 094E. /// internal static string _50506 { get { return ResourceManager.GetString("50506", resourceCulture); } } /// /// Looks up a localized string similar to 094F. /// internal static string _50508 { get { return ResourceManager.GetString("50508", resourceCulture); } } /// /// Looks up a localized string similar to 0950. /// internal static string _50509 { get { return ResourceManager.GetString("50509", resourceCulture); } } /// /// Looks up a localized string similar to 0951. /// internal static string _50510 { get { return ResourceManager.GetString("50510", resourceCulture); } } /// /// Looks up a localized string similar to 0952. /// internal static string _50515 { get { return ResourceManager.GetString("50515", resourceCulture); } } /// /// Looks up a localized string similar to 0953. /// internal static string _50516 { get { return ResourceManager.GetString("50516", resourceCulture); } } /// /// Looks up a localized string similar to 0954. /// internal static string _50517 { get { return ResourceManager.GetString("50517", resourceCulture); } } /// /// Looks up a localized string similar to 0955. /// internal static string _50519 { get { return ResourceManager.GetString("50519", resourceCulture); } } /// /// Looks up a localized string similar to 0956. /// internal static string _50520 { get { return ResourceManager.GetString("50520", resourceCulture); } } /// /// Looks up a localized string similar to 0957. /// internal static string _50521 { get { return ResourceManager.GetString("50521", resourceCulture); } } /// /// Looks up a localized string similar to 0958. /// internal static string _50525 { get { return ResourceManager.GetString("50525", resourceCulture); } } /// /// Looks up a localized string similar to 0959. /// internal static string _50526 { get { return ResourceManager.GetString("50526", resourceCulture); } } /// /// Looks up a localized string similar to 095A. /// internal static string _50528 { get { return ResourceManager.GetString("50528", resourceCulture); } } /// /// Looks up a localized string similar to 095B. /// internal static string _50529 { get { return ResourceManager.GetString("50529", resourceCulture); } } /// /// Looks up a localized string similar to 095C. /// internal static string _50532 { get { return ResourceManager.GetString("50532", resourceCulture); } } /// /// Looks up a localized string similar to 095D. /// internal static string _50536 { get { return ResourceManager.GetString("50536", resourceCulture); } } /// /// Looks up a localized string similar to 095E. /// internal static string _50544 { get { return ResourceManager.GetString("50544", resourceCulture); } } /// /// Looks up a localized string similar to 095F. /// internal static string _50545 { get { return ResourceManager.GetString("50545", resourceCulture); } } /// /// Looks up a localized string similar to 0960. /// internal static string _50547 { get { return ResourceManager.GetString("50547", resourceCulture); } } /// /// Looks up a localized string similar to 0961. /// internal static string _50548 { get { return ResourceManager.GetString("50548", resourceCulture); } } /// /// Looks up a localized string similar to 0962. /// internal static string _50549 { get { return ResourceManager.GetString("50549", resourceCulture); } } /// /// Looks up a localized string similar to 0963. /// internal static string _50556 { get { return ResourceManager.GetString("50556", resourceCulture); } } /// /// Looks up a localized string similar to 0964. /// internal static string _50557 { get { return ResourceManager.GetString("50557", resourceCulture); } } /// /// Looks up a localized string similar to 0965. /// internal static string _50560 { get { return ResourceManager.GetString("50560", resourceCulture); } } /// /// Looks up a localized string similar to 0966. /// internal static string _50564 { get { return ResourceManager.GetString("50564", resourceCulture); } } /// /// Looks up a localized string similar to 0967. /// internal static string _50567 { get { return ResourceManager.GetString("50567", resourceCulture); } } /// /// Looks up a localized string similar to 0968. /// internal static string _50572 { get { return ResourceManager.GetString("50572", resourceCulture); } } /// /// Looks up a localized string similar to 0969. /// internal static string _50573 { get { return ResourceManager.GetString("50573", resourceCulture); } } /// /// Looks up a localized string similar to 096A. /// internal static string _50575 { get { return ResourceManager.GetString("50575", resourceCulture); } } /// /// Looks up a localized string similar to 096B. /// internal static string _50577 { get { return ResourceManager.GetString("50577", resourceCulture); } } /// /// Looks up a localized string similar to 096C. /// internal static string _50581 { get { return ResourceManager.GetString("50581", resourceCulture); } } /// /// Looks up a localized string similar to 096D. /// internal static string _50583 { get { return ResourceManager.GetString("50583", resourceCulture); } } /// /// Looks up a localized string similar to 096E. /// internal static string _50584 { get { return ResourceManager.GetString("50584", resourceCulture); } } /// /// Looks up a localized string similar to 096F. /// internal static string _50588 { get { return ResourceManager.GetString("50588", resourceCulture); } } /// /// Looks up a localized string similar to 0970. /// internal static string _50592 { get { return ResourceManager.GetString("50592", resourceCulture); } } /// /// Looks up a localized string similar to 0971. /// internal static string _50601 { get { return ResourceManager.GetString("50601", resourceCulture); } } /// /// Looks up a localized string similar to 0972. /// internal static string _50612 { get { return ResourceManager.GetString("50612", resourceCulture); } } /// /// Looks up a localized string similar to 0973. /// internal static string _50613 { get { return ResourceManager.GetString("50613", resourceCulture); } } /// /// Looks up a localized string similar to 0974. /// internal static string _50616 { get { return ResourceManager.GetString("50616", resourceCulture); } } /// /// Looks up a localized string similar to 0975. /// internal static string _50617 { get { return ResourceManager.GetString("50617", resourceCulture); } } /// /// Looks up a localized string similar to 0976. /// internal static string _50619 { get { return ResourceManager.GetString("50619", resourceCulture); } } /// /// Looks up a localized string similar to 0977. /// internal static string _50620 { get { return ResourceManager.GetString("50620", resourceCulture); } } /// /// Looks up a localized string similar to 0978. /// internal static string _50621 { get { return ResourceManager.GetString("50621", resourceCulture); } } /// /// Looks up a localized string similar to 0979. /// internal static string _50622 { get { return ResourceManager.GetString("50622", resourceCulture); } } /// /// Looks up a localized string similar to 097A. /// internal static string _50628 { get { return ResourceManager.GetString("50628", resourceCulture); } } /// /// Looks up a localized string similar to 097B. /// internal static string _50629 { get { return ResourceManager.GetString("50629", resourceCulture); } } /// /// Looks up a localized string similar to 097C. /// internal static string _50630 { get { return ResourceManager.GetString("50630", resourceCulture); } } /// /// Looks up a localized string similar to 097D. /// internal static string _50631 { get { return ResourceManager.GetString("50631", resourceCulture); } } /// /// Looks up a localized string similar to 097E. /// internal static string _50632 { get { return ResourceManager.GetString("50632", resourceCulture); } } /// /// Looks up a localized string similar to 097F. /// internal static string _50633 { get { return ResourceManager.GetString("50633", resourceCulture); } } /// /// Looks up a localized string similar to 0980. /// internal static string _50634 { get { return ResourceManager.GetString("50634", resourceCulture); } } /// /// Looks up a localized string similar to 0981. /// internal static string _50636 { get { return ResourceManager.GetString("50636", resourceCulture); } } /// /// Looks up a localized string similar to 0982. /// internal static string _50638 { get { return ResourceManager.GetString("50638", resourceCulture); } } /// /// Looks up a localized string similar to 0983. /// internal static string _50640 { get { return ResourceManager.GetString("50640", resourceCulture); } } /// /// Looks up a localized string similar to 0984. /// internal static string _50641 { get { return ResourceManager.GetString("50641", resourceCulture); } } /// /// Looks up a localized string similar to 0985. /// internal static string _50644 { get { return ResourceManager.GetString("50644", resourceCulture); } } /// /// Looks up a localized string similar to 0986. /// internal static string _50648 { get { return ResourceManager.GetString("50648", resourceCulture); } } /// /// Looks up a localized string similar to 0987. /// internal static string _50656 { get { return ResourceManager.GetString("50656", resourceCulture); } } /// /// Looks up a localized string similar to 0988. /// internal static string _50657 { get { return ResourceManager.GetString("50657", resourceCulture); } } /// /// Looks up a localized string similar to 0989. /// internal static string _50659 { get { return ResourceManager.GetString("50659", resourceCulture); } } /// /// Looks up a localized string similar to 098A. /// internal static string _50661 { get { return ResourceManager.GetString("50661", resourceCulture); } } /// /// Looks up a localized string similar to 098B. /// internal static string _50668 { get { return ResourceManager.GetString("50668", resourceCulture); } } /// /// Looks up a localized string similar to 098C. /// internal static string _50669 { get { return ResourceManager.GetString("50669", resourceCulture); } } /// /// Looks up a localized string similar to 098D. /// internal static string _50670 { get { return ResourceManager.GetString("50670", resourceCulture); } } /// /// Looks up a localized string similar to 098E. /// internal static string _50672 { get { return ResourceManager.GetString("50672", resourceCulture); } } /// /// Looks up a localized string similar to 098F. /// internal static string _50676 { get { return ResourceManager.GetString("50676", resourceCulture); } } /// /// Looks up a localized string similar to 0990. /// internal static string _50678 { get { return ResourceManager.GetString("50678", resourceCulture); } } /// /// Looks up a localized string similar to 0991. /// internal static string _50679 { get { return ResourceManager.GetString("50679", resourceCulture); } } /// /// Looks up a localized string similar to 0992. /// internal static string _50684 { get { return ResourceManager.GetString("50684", resourceCulture); } } /// /// Looks up a localized string similar to 0993. /// internal static string _50685 { get { return ResourceManager.GetString("50685", resourceCulture); } } /// /// Looks up a localized string similar to 0994. /// internal static string _50686 { get { return ResourceManager.GetString("50686", resourceCulture); } } /// /// Looks up a localized string similar to 0995. /// internal static string _50687 { get { return ResourceManager.GetString("50687", resourceCulture); } } /// /// Looks up a localized string similar to 0996. /// internal static string _50688 { get { return ResourceManager.GetString("50688", resourceCulture); } } /// /// Looks up a localized string similar to 0997. /// internal static string _50689 { get { return ResourceManager.GetString("50689", resourceCulture); } } /// /// Looks up a localized string similar to 0998. /// internal static string _50693 { get { return ResourceManager.GetString("50693", resourceCulture); } } /// /// Looks up a localized string similar to 0999. /// internal static string _50694 { get { return ResourceManager.GetString("50694", resourceCulture); } } /// /// Looks up a localized string similar to 099A. /// internal static string _50695 { get { return ResourceManager.GetString("50695", resourceCulture); } } /// /// Looks up a localized string similar to 099B. /// internal static string _50696 { get { return ResourceManager.GetString("50696", resourceCulture); } } /// /// Looks up a localized string similar to 099C. /// internal static string _50700 { get { return ResourceManager.GetString("50700", resourceCulture); } } /// /// Looks up a localized string similar to 099D. /// internal static string _50704 { get { return ResourceManager.GetString("50704", resourceCulture); } } /// /// Looks up a localized string similar to 099E. /// internal static string _50712 { get { return ResourceManager.GetString("50712", resourceCulture); } } /// /// Looks up a localized string similar to 099F. /// internal static string _50713 { get { return ResourceManager.GetString("50713", resourceCulture); } } /// /// Looks up a localized string similar to 09A0. /// internal static string _50715 { get { return ResourceManager.GetString("50715", resourceCulture); } } /// /// Looks up a localized string similar to 09A1. /// internal static string _50716 { get { return ResourceManager.GetString("50716", resourceCulture); } } /// /// Looks up a localized string similar to 09A2. /// internal static string _50724 { get { return ResourceManager.GetString("50724", resourceCulture); } } /// /// Looks up a localized string similar to 09A3. /// internal static string _50725 { get { return ResourceManager.GetString("50725", resourceCulture); } } /// /// Looks up a localized string similar to 09A4. /// internal static string _50728 { get { return ResourceManager.GetString("50728", resourceCulture); } } /// /// Looks up a localized string similar to 09A5. /// internal static string _50732 { get { return ResourceManager.GetString("50732", resourceCulture); } } /// /// Looks up a localized string similar to 09A6. /// internal static string _50733 { get { return ResourceManager.GetString("50733", resourceCulture); } } /// /// Looks up a localized string similar to 09A7. /// internal static string _50734 { get { return ResourceManager.GetString("50734", resourceCulture); } } /// /// Looks up a localized string similar to 09A8. /// internal static string _50736 { get { return ResourceManager.GetString("50736", resourceCulture); } } /// /// Looks up a localized string similar to 09A9. /// internal static string _50739 { get { return ResourceManager.GetString("50739", resourceCulture); } } /// /// Looks up a localized string similar to 09AA. /// internal static string _50740 { get { return ResourceManager.GetString("50740", resourceCulture); } } /// /// Looks up a localized string similar to 09AB. /// internal static string _50741 { get { return ResourceManager.GetString("50741", resourceCulture); } } /// /// Looks up a localized string similar to 09AC. /// internal static string _50743 { get { return ResourceManager.GetString("50743", resourceCulture); } } /// /// Looks up a localized string similar to 09AD. /// internal static string _50745 { get { return ResourceManager.GetString("50745", resourceCulture); } } /// /// Looks up a localized string similar to 09AE. /// internal static string _50747 { get { return ResourceManager.GetString("50747", resourceCulture); } } /// /// Looks up a localized string similar to 09AF. /// internal static string _50752 { get { return ResourceManager.GetString("50752", resourceCulture); } } /// /// Looks up a localized string similar to 09B0. /// internal static string _50753 { get { return ResourceManager.GetString("50753", resourceCulture); } } /// /// Looks up a localized string similar to 09B1. /// internal static string _50756 { get { return ResourceManager.GetString("50756", resourceCulture); } } /// /// Looks up a localized string similar to 09B2. /// internal static string _50760 { get { return ResourceManager.GetString("50760", resourceCulture); } } /// /// Looks up a localized string similar to 09B3. /// internal static string _50768 { get { return ResourceManager.GetString("50768", resourceCulture); } } /// /// Looks up a localized string similar to 09B4. /// internal static string _50769 { get { return ResourceManager.GetString("50769", resourceCulture); } } /// /// Looks up a localized string similar to 09B5. /// internal static string _50771 { get { return ResourceManager.GetString("50771", resourceCulture); } } /// /// Looks up a localized string similar to 09B6. /// internal static string _50772 { get { return ResourceManager.GetString("50772", resourceCulture); } } /// /// Looks up a localized string similar to 09B7. /// internal static string _50773 { get { return ResourceManager.GetString("50773", resourceCulture); } } /// /// Looks up a localized string similar to 09B8. /// internal static string _50780 { get { return ResourceManager.GetString("50780", resourceCulture); } } /// /// Looks up a localized string similar to 09B9. /// internal static string _50781 { get { return ResourceManager.GetString("50781", resourceCulture); } } /// /// Looks up a localized string similar to 09BA. /// internal static string _50784 { get { return ResourceManager.GetString("50784", resourceCulture); } } /// /// Looks up a localized string similar to 09BB. /// internal static string _50796 { get { return ResourceManager.GetString("50796", resourceCulture); } } /// /// Looks up a localized string similar to 09BC. /// internal static string _50799 { get { return ResourceManager.GetString("50799", resourceCulture); } } /// /// Looks up a localized string similar to 09BD. /// internal static string _50801 { get { return ResourceManager.GetString("50801", resourceCulture); } } /// /// Looks up a localized string similar to 09BE. /// internal static string _50808 { get { return ResourceManager.GetString("50808", resourceCulture); } } /// /// Looks up a localized string similar to 09BF. /// internal static string _50809 { get { return ResourceManager.GetString("50809", resourceCulture); } } /// /// Looks up a localized string similar to 09C0. /// internal static string _50812 { get { return ResourceManager.GetString("50812", resourceCulture); } } /// /// Looks up a localized string similar to 09C1. /// internal static string _50816 { get { return ResourceManager.GetString("50816", resourceCulture); } } /// /// Looks up a localized string similar to 09C2. /// internal static string _50824 { get { return ResourceManager.GetString("50824", resourceCulture); } } /// /// Looks up a localized string similar to 09C3. /// internal static string _50825 { get { return ResourceManager.GetString("50825", resourceCulture); } } /// /// Looks up a localized string similar to 09C4. /// internal static string _50827 { get { return ResourceManager.GetString("50827", resourceCulture); } } /// /// Looks up a localized string similar to 09C5. /// internal static string _50829 { get { return ResourceManager.GetString("50829", resourceCulture); } } /// /// Looks up a localized string similar to 09C6. /// internal static string _50836 { get { return ResourceManager.GetString("50836", resourceCulture); } } /// /// Looks up a localized string similar to 09C7. /// internal static string _50837 { get { return ResourceManager.GetString("50837", resourceCulture); } } /// /// Looks up a localized string similar to 09C8. /// internal static string _50840 { get { return ResourceManager.GetString("50840", resourceCulture); } } /// /// Looks up a localized string similar to 09C9. /// internal static string _50844 { get { return ResourceManager.GetString("50844", resourceCulture); } } /// /// Looks up a localized string similar to 09CA. /// internal static string _50852 { get { return ResourceManager.GetString("50852", resourceCulture); } } /// /// Looks up a localized string similar to 09CB. /// internal static string _50853 { get { return ResourceManager.GetString("50853", resourceCulture); } } /// /// Looks up a localized string similar to 09CC. /// internal static string _50855 { get { return ResourceManager.GetString("50855", resourceCulture); } } /// /// Looks up a localized string similar to 09CD. /// internal static string _50857 { get { return ResourceManager.GetString("50857", resourceCulture); } } /// /// Looks up a localized string similar to 09CE. /// internal static string _50864 { get { return ResourceManager.GetString("50864", resourceCulture); } } /// /// Looks up a localized string similar to 09CF. /// internal static string _50865 { get { return ResourceManager.GetString("50865", resourceCulture); } } /// /// Looks up a localized string similar to 09D0. /// internal static string _50868 { get { return ResourceManager.GetString("50868", resourceCulture); } } /// /// Looks up a localized string similar to 09D1. /// internal static string _50872 { get { return ResourceManager.GetString("50872", resourceCulture); } } /// /// Looks up a localized string similar to 09D2. /// internal static string _50873 { get { return ResourceManager.GetString("50873", resourceCulture); } } /// /// Looks up a localized string similar to 09D3. /// internal static string _50874 { get { return ResourceManager.GetString("50874", resourceCulture); } } /// /// Looks up a localized string similar to 09D4. /// internal static string _50880 { get { return ResourceManager.GetString("50880", resourceCulture); } } /// /// Looks up a localized string similar to 09D5. /// internal static string _50881 { get { return ResourceManager.GetString("50881", resourceCulture); } } /// /// Looks up a localized string similar to 09D6. /// internal static string _50883 { get { return ResourceManager.GetString("50883", resourceCulture); } } /// /// Looks up a localized string similar to 09D7. /// internal static string _50885 { get { return ResourceManager.GetString("50885", resourceCulture); } } /// /// Looks up a localized string similar to 09D8. /// internal static string _50892 { get { return ResourceManager.GetString("50892", resourceCulture); } } /// /// Looks up a localized string similar to 09D9. /// internal static string _50893 { get { return ResourceManager.GetString("50893", resourceCulture); } } /// /// Looks up a localized string similar to 09DA. /// internal static string _50896 { get { return ResourceManager.GetString("50896", resourceCulture); } } /// /// Looks up a localized string similar to 09DB. /// internal static string _50900 { get { return ResourceManager.GetString("50900", resourceCulture); } } /// /// Looks up a localized string similar to 09DC. /// internal static string _50908 { get { return ResourceManager.GetString("50908", resourceCulture); } } /// /// Looks up a localized string similar to 09DD. /// internal static string _50909 { get { return ResourceManager.GetString("50909", resourceCulture); } } /// /// Looks up a localized string similar to 09DE. /// internal static string _50912 { get { return ResourceManager.GetString("50912", resourceCulture); } } /// /// Looks up a localized string similar to 09DF. /// internal static string _50913 { get { return ResourceManager.GetString("50913", resourceCulture); } } /// /// Looks up a localized string similar to 09E0. /// internal static string _50920 { get { return ResourceManager.GetString("50920", resourceCulture); } } /// /// Looks up a localized string similar to 09E1. /// internal static string _50921 { get { return ResourceManager.GetString("50921", resourceCulture); } } /// /// Looks up a localized string similar to 09E2. /// internal static string _50924 { get { return ResourceManager.GetString("50924", resourceCulture); } } /// /// Looks up a localized string similar to 09E3. /// internal static string _50928 { get { return ResourceManager.GetString("50928", resourceCulture); } } /// /// Looks up a localized string similar to 09E4. /// internal static string _50936 { get { return ResourceManager.GetString("50936", resourceCulture); } } /// /// Looks up a localized string similar to 09E5. /// internal static string _50937 { get { return ResourceManager.GetString("50937", resourceCulture); } } /// /// Looks up a localized string similar to 09E6. /// internal static string _50941 { get { return ResourceManager.GetString("50941", resourceCulture); } } /// /// Looks up a localized string similar to 09E7. /// internal static string _50948 { get { return ResourceManager.GetString("50948", resourceCulture); } } /// /// Looks up a localized string similar to 09E8. /// internal static string _50949 { get { return ResourceManager.GetString("50949", resourceCulture); } } /// /// Looks up a localized string similar to 09E9. /// internal static string _50952 { get { return ResourceManager.GetString("50952", resourceCulture); } } /// /// Looks up a localized string similar to 09EA. /// internal static string _50956 { get { return ResourceManager.GetString("50956", resourceCulture); } } /// /// Looks up a localized string similar to 09EB. /// internal static string _50964 { get { return ResourceManager.GetString("50964", resourceCulture); } } /// /// Looks up a localized string similar to 09EC. /// internal static string _50965 { get { return ResourceManager.GetString("50965", resourceCulture); } } /// /// Looks up a localized string similar to 09ED. /// internal static string _50967 { get { return ResourceManager.GetString("50967", resourceCulture); } } /// /// Looks up a localized string similar to 09EE. /// internal static string _50969 { get { return ResourceManager.GetString("50969", resourceCulture); } } /// /// Looks up a localized string similar to 09EF. /// internal static string _50976 { get { return ResourceManager.GetString("50976", resourceCulture); } } /// /// Looks up a localized string similar to 09F0. /// internal static string _50977 { get { return ResourceManager.GetString("50977", resourceCulture); } } /// /// Looks up a localized string similar to 09F1. /// internal static string _50980 { get { return ResourceManager.GetString("50980", resourceCulture); } } /// /// Looks up a localized string similar to 09F2. /// internal static string _50984 { get { return ResourceManager.GetString("50984", resourceCulture); } } /// /// Looks up a localized string similar to 09F3. /// internal static string _50992 { get { return ResourceManager.GetString("50992", resourceCulture); } } /// /// Looks up a localized string similar to 09F4. /// internal static string _50993 { get { return ResourceManager.GetString("50993", resourceCulture); } } /// /// Looks up a localized string similar to 09F5. /// internal static string _50995 { get { return ResourceManager.GetString("50995", resourceCulture); } } /// /// Looks up a localized string similar to 09F6. /// internal static string _50997 { get { return ResourceManager.GetString("50997", resourceCulture); } } /// /// Looks up a localized string similar to 09F7. /// internal static string _50999 { get { return ResourceManager.GetString("50999", resourceCulture); } } /// /// Looks up a localized string similar to 0124. /// internal static string _51 { get { return ResourceManager.GetString("51", resourceCulture); } } /// /// Looks up a localized string similar to 09F8. /// internal static string _51004 { get { return ResourceManager.GetString("51004", resourceCulture); } } /// /// Looks up a localized string similar to 09F9. /// internal static string _51005 { get { return ResourceManager.GetString("51005", resourceCulture); } } /// /// Looks up a localized string similar to 09FA. /// internal static string _51008 { get { return ResourceManager.GetString("51008", resourceCulture); } } /// /// Looks up a localized string similar to 09FB. /// internal static string _51012 { get { return ResourceManager.GetString("51012", resourceCulture); } } /// /// Looks up a localized string similar to 09FC. /// internal static string _51018 { get { return ResourceManager.GetString("51018", resourceCulture); } } /// /// Looks up a localized string similar to 09FD. /// internal static string _51020 { get { return ResourceManager.GetString("51020", resourceCulture); } } /// /// Looks up a localized string similar to 09FE. /// internal static string _51021 { get { return ResourceManager.GetString("51021", resourceCulture); } } /// /// Looks up a localized string similar to 09FF. /// internal static string _51023 { get { return ResourceManager.GetString("51023", resourceCulture); } } /// /// Looks up a localized string similar to 0A00. /// internal static string _51025 { get { return ResourceManager.GetString("51025", resourceCulture); } } /// /// Looks up a localized string similar to 0A01. /// internal static string _51026 { get { return ResourceManager.GetString("51026", resourceCulture); } } /// /// Looks up a localized string similar to 0A02. /// internal static string _51027 { get { return ResourceManager.GetString("51027", resourceCulture); } } /// /// Looks up a localized string similar to 0A03. /// internal static string _51028 { get { return ResourceManager.GetString("51028", resourceCulture); } } /// /// Looks up a localized string similar to 0A04. /// internal static string _51029 { get { return ResourceManager.GetString("51029", resourceCulture); } } /// /// Looks up a localized string similar to 0A05. /// internal static string _51030 { get { return ResourceManager.GetString("51030", resourceCulture); } } /// /// Looks up a localized string similar to 0A06. /// internal static string _51031 { get { return ResourceManager.GetString("51031", resourceCulture); } } /// /// Looks up a localized string similar to 0A07. /// internal static string _51032 { get { return ResourceManager.GetString("51032", resourceCulture); } } /// /// Looks up a localized string similar to 0A08. /// internal static string _51036 { get { return ResourceManager.GetString("51036", resourceCulture); } } /// /// Looks up a localized string similar to 0A09. /// internal static string _51040 { get { return ResourceManager.GetString("51040", resourceCulture); } } /// /// Looks up a localized string similar to 0A0A. /// internal static string _51048 { get { return ResourceManager.GetString("51048", resourceCulture); } } /// /// Looks up a localized string similar to 0A0B. /// internal static string _51051 { get { return ResourceManager.GetString("51051", resourceCulture); } } /// /// Looks up a localized string similar to 0A0C. /// internal static string _51060 { get { return ResourceManager.GetString("51060", resourceCulture); } } /// /// Looks up a localized string similar to 0A0D. /// internal static string _51061 { get { return ResourceManager.GetString("51061", resourceCulture); } } /// /// Looks up a localized string similar to 0A0E. /// internal static string _51064 { get { return ResourceManager.GetString("51064", resourceCulture); } } /// /// Looks up a localized string similar to 0A0F. /// internal static string _51068 { get { return ResourceManager.GetString("51068", resourceCulture); } } /// /// Looks up a localized string similar to 0A10. /// internal static string _51069 { get { return ResourceManager.GetString("51069", resourceCulture); } } /// /// Looks up a localized string similar to 0A11. /// internal static string _51070 { get { return ResourceManager.GetString("51070", resourceCulture); } } /// /// Looks up a localized string similar to 0A12. /// internal static string _51075 { get { return ResourceManager.GetString("51075", resourceCulture); } } /// /// Looks up a localized string similar to 0A13. /// internal static string _51076 { get { return ResourceManager.GetString("51076", resourceCulture); } } /// /// Looks up a localized string similar to 0A14. /// internal static string _51077 { get { return ResourceManager.GetString("51077", resourceCulture); } } /// /// Looks up a localized string similar to 0A15. /// internal static string _51079 { get { return ResourceManager.GetString("51079", resourceCulture); } } /// /// Looks up a localized string similar to 0A16. /// internal static string _51080 { get { return ResourceManager.GetString("51080", resourceCulture); } } /// /// Looks up a localized string similar to 0A17. /// internal static string _51081 { get { return ResourceManager.GetString("51081", resourceCulture); } } /// /// Looks up a localized string similar to 0A18. /// internal static string _51082 { get { return ResourceManager.GetString("51082", resourceCulture); } } /// /// Looks up a localized string similar to 0A19. /// internal static string _51086 { get { return ResourceManager.GetString("51086", resourceCulture); } } /// /// Looks up a localized string similar to 0A1A. /// internal static string _51088 { get { return ResourceManager.GetString("51088", resourceCulture); } } /// /// Looks up a localized string similar to 0A1B. /// internal static string _51089 { get { return ResourceManager.GetString("51089", resourceCulture); } } /// /// Looks up a localized string similar to 0A1C. /// internal static string _51092 { get { return ResourceManager.GetString("51092", resourceCulture); } } /// /// Looks up a localized string similar to 0A1D. /// internal static string _51094 { get { return ResourceManager.GetString("51094", resourceCulture); } } /// /// Looks up a localized string similar to 0A1E. /// internal static string _51095 { get { return ResourceManager.GetString("51095", resourceCulture); } } /// /// Looks up a localized string similar to 0A1F. /// internal static string _51096 { get { return ResourceManager.GetString("51096", resourceCulture); } } /// /// Looks up a localized string similar to 0A20. /// internal static string _51098 { get { return ResourceManager.GetString("51098", resourceCulture); } } /// /// Looks up a localized string similar to 0A21. /// internal static string _51104 { get { return ResourceManager.GetString("51104", resourceCulture); } } /// /// Looks up a localized string similar to 0A22. /// internal static string _51105 { get { return ResourceManager.GetString("51105", resourceCulture); } } /// /// Looks up a localized string similar to 0A23. /// internal static string _51107 { get { return ResourceManager.GetString("51107", resourceCulture); } } /// /// Looks up a localized string similar to 0A24. /// internal static string _51108 { get { return ResourceManager.GetString("51108", resourceCulture); } } /// /// Looks up a localized string similar to 0A25. /// internal static string _51109 { get { return ResourceManager.GetString("51109", resourceCulture); } } /// /// Looks up a localized string similar to 0A26. /// internal static string _51110 { get { return ResourceManager.GetString("51110", resourceCulture); } } /// /// Looks up a localized string similar to 0A27. /// internal static string _51116 { get { return ResourceManager.GetString("51116", resourceCulture); } } /// /// Looks up a localized string similar to 0A28. /// internal static string _51117 { get { return ResourceManager.GetString("51117", resourceCulture); } } /// /// Looks up a localized string similar to 0A29. /// internal static string _51120 { get { return ResourceManager.GetString("51120", resourceCulture); } } /// /// Looks up a localized string similar to 0A2A. /// internal static string _51124 { get { return ResourceManager.GetString("51124", resourceCulture); } } /// /// Looks up a localized string similar to 0A2B. /// internal static string _51132 { get { return ResourceManager.GetString("51132", resourceCulture); } } /// /// Looks up a localized string similar to 0A2C. /// internal static string _51133 { get { return ResourceManager.GetString("51133", resourceCulture); } } /// /// Looks up a localized string similar to 0A2D. /// internal static string _51135 { get { return ResourceManager.GetString("51135", resourceCulture); } } /// /// Looks up a localized string similar to 0A2E. /// internal static string _51136 { get { return ResourceManager.GetString("51136", resourceCulture); } } /// /// Looks up a localized string similar to 0A2F. /// internal static string _51137 { get { return ResourceManager.GetString("51137", resourceCulture); } } /// /// Looks up a localized string similar to 0A30. /// internal static string _51144 { get { return ResourceManager.GetString("51144", resourceCulture); } } /// /// Looks up a localized string similar to 0A31. /// internal static string _51145 { get { return ResourceManager.GetString("51145", resourceCulture); } } /// /// Looks up a localized string similar to 0A32. /// internal static string _51148 { get { return ResourceManager.GetString("51148", resourceCulture); } } /// /// Looks up a localized string similar to 0A33. /// internal static string _51150 { get { return ResourceManager.GetString("51150", resourceCulture); } } /// /// Looks up a localized string similar to 0A34. /// internal static string _51152 { get { return ResourceManager.GetString("51152", resourceCulture); } } /// /// Looks up a localized string similar to 0A35. /// internal static string _51160 { get { return ResourceManager.GetString("51160", resourceCulture); } } /// /// Looks up a localized string similar to 0A36. /// internal static string _51165 { get { return ResourceManager.GetString("51165", resourceCulture); } } /// /// Looks up a localized string similar to 0A37. /// internal static string _51172 { get { return ResourceManager.GetString("51172", resourceCulture); } } /// /// Looks up a localized string similar to 0A38. /// internal static string _51176 { get { return ResourceManager.GetString("51176", resourceCulture); } } /// /// Looks up a localized string similar to 0A39. /// internal static string _51180 { get { return ResourceManager.GetString("51180", resourceCulture); } } /// /// Looks up a localized string similar to 0A3A. /// internal static string _51200 { get { return ResourceManager.GetString("51200", resourceCulture); } } /// /// Looks up a localized string similar to 0A3B. /// internal static string _51201 { get { return ResourceManager.GetString("51201", resourceCulture); } } /// /// Looks up a localized string similar to 0A3C. /// internal static string _51204 { get { return ResourceManager.GetString("51204", resourceCulture); } } /// /// Looks up a localized string similar to 0A3D. /// internal static string _51208 { get { return ResourceManager.GetString("51208", resourceCulture); } } /// /// Looks up a localized string similar to 0A3E. /// internal static string _51210 { get { return ResourceManager.GetString("51210", resourceCulture); } } /// /// Looks up a localized string similar to 0A3F. /// internal static string _51216 { get { return ResourceManager.GetString("51216", resourceCulture); } } /// /// Looks up a localized string similar to 0A40. /// internal static string _51217 { get { return ResourceManager.GetString("51217", resourceCulture); } } /// /// Looks up a localized string similar to 0A41. /// internal static string _51219 { get { return ResourceManager.GetString("51219", resourceCulture); } } /// /// Looks up a localized string similar to 0A42. /// internal static string _51221 { get { return ResourceManager.GetString("51221", resourceCulture); } } /// /// Looks up a localized string similar to 0A43. /// internal static string _51222 { get { return ResourceManager.GetString("51222", resourceCulture); } } /// /// Looks up a localized string similar to 0A44. /// internal static string _51228 { get { return ResourceManager.GetString("51228", resourceCulture); } } /// /// Looks up a localized string similar to 0A45. /// internal static string _51229 { get { return ResourceManager.GetString("51229", resourceCulture); } } /// /// Looks up a localized string similar to 0A46. /// internal static string _51232 { get { return ResourceManager.GetString("51232", resourceCulture); } } /// /// Looks up a localized string similar to 0A47. /// internal static string _51236 { get { return ResourceManager.GetString("51236", resourceCulture); } } /// /// Looks up a localized string similar to 0A48. /// internal static string _51244 { get { return ResourceManager.GetString("51244", resourceCulture); } } /// /// Looks up a localized string similar to 0A49. /// internal static string _51245 { get { return ResourceManager.GetString("51245", resourceCulture); } } /// /// Looks up a localized string similar to 0A4A. /// internal static string _51247 { get { return ResourceManager.GetString("51247", resourceCulture); } } /// /// Looks up a localized string similar to 0A4B. /// internal static string _51249 { get { return ResourceManager.GetString("51249", resourceCulture); } } /// /// Looks up a localized string similar to 0A4C. /// internal static string _51256 { get { return ResourceManager.GetString("51256", resourceCulture); } } /// /// Looks up a localized string similar to 0A4D. /// internal static string _51260 { get { return ResourceManager.GetString("51260", resourceCulture); } } /// /// Looks up a localized string similar to 0A4E. /// internal static string _51264 { get { return ResourceManager.GetString("51264", resourceCulture); } } /// /// Looks up a localized string similar to 0A4F. /// internal static string _51272 { get { return ResourceManager.GetString("51272", resourceCulture); } } /// /// Looks up a localized string similar to 0A50. /// internal static string _51273 { get { return ResourceManager.GetString("51273", resourceCulture); } } /// /// Looks up a localized string similar to 0A51. /// internal static string _51276 { get { return ResourceManager.GetString("51276", resourceCulture); } } /// /// Looks up a localized string similar to 0A52. /// internal static string _51277 { get { return ResourceManager.GetString("51277", resourceCulture); } } /// /// Looks up a localized string similar to 0A53. /// internal static string _51284 { get { return ResourceManager.GetString("51284", resourceCulture); } } /// /// Looks up a localized string similar to 0A54. /// internal static string _51312 { get { return ResourceManager.GetString("51312", resourceCulture); } } /// /// Looks up a localized string similar to 0A55. /// internal static string _51313 { get { return ResourceManager.GetString("51313", resourceCulture); } } /// /// Looks up a localized string similar to 0A56. /// internal static string _51316 { get { return ResourceManager.GetString("51316", resourceCulture); } } /// /// Looks up a localized string similar to 0A57. /// internal static string _51320 { get { return ResourceManager.GetString("51320", resourceCulture); } } /// /// Looks up a localized string similar to 0A58. /// internal static string _51322 { get { return ResourceManager.GetString("51322", resourceCulture); } } /// /// Looks up a localized string similar to 0A59. /// internal static string _51328 { get { return ResourceManager.GetString("51328", resourceCulture); } } /// /// Looks up a localized string similar to 0A5A. /// internal static string _51329 { get { return ResourceManager.GetString("51329", resourceCulture); } } /// /// Looks up a localized string similar to 0A5B. /// internal static string _51331 { get { return ResourceManager.GetString("51331", resourceCulture); } } /// /// Looks up a localized string similar to 0A5C. /// internal static string _51333 { get { return ResourceManager.GetString("51333", resourceCulture); } } /// /// Looks up a localized string similar to 0A5D. /// internal static string _51334 { get { return ResourceManager.GetString("51334", resourceCulture); } } /// /// Looks up a localized string similar to 0A5E. /// internal static string _51335 { get { return ResourceManager.GetString("51335", resourceCulture); } } /// /// Looks up a localized string similar to 0A5F. /// internal static string _51339 { get { return ResourceManager.GetString("51339", resourceCulture); } } /// /// Looks up a localized string similar to 0A60. /// internal static string _51340 { get { return ResourceManager.GetString("51340", resourceCulture); } } /// /// Looks up a localized string similar to 0A61. /// internal static string _51341 { get { return ResourceManager.GetString("51341", resourceCulture); } } /// /// Looks up a localized string similar to 0A62. /// internal static string _51348 { get { return ResourceManager.GetString("51348", resourceCulture); } } /// /// Looks up a localized string similar to 0A63. /// internal static string _51357 { get { return ResourceManager.GetString("51357", resourceCulture); } } /// /// Looks up a localized string similar to 0A64. /// internal static string _51359 { get { return ResourceManager.GetString("51359", resourceCulture); } } /// /// Looks up a localized string similar to 0A65. /// internal static string _51361 { get { return ResourceManager.GetString("51361", resourceCulture); } } /// /// Looks up a localized string similar to 0A66. /// internal static string _51368 { get { return ResourceManager.GetString("51368", resourceCulture); } } /// /// Looks up a localized string similar to 0A67. /// internal static string _51388 { get { return ResourceManager.GetString("51388", resourceCulture); } } /// /// Looks up a localized string similar to 0A68. /// internal static string _51389 { get { return ResourceManager.GetString("51389", resourceCulture); } } /// /// Looks up a localized string similar to 0A69. /// internal static string _51396 { get { return ResourceManager.GetString("51396", resourceCulture); } } /// /// Looks up a localized string similar to 0A6A. /// internal static string _51400 { get { return ResourceManager.GetString("51400", resourceCulture); } } /// /// Looks up a localized string similar to 0A6B. /// internal static string _51404 { get { return ResourceManager.GetString("51404", resourceCulture); } } /// /// Looks up a localized string similar to 0A6C. /// internal static string _51412 { get { return ResourceManager.GetString("51412", resourceCulture); } } /// /// Looks up a localized string similar to 0A6D. /// internal static string _51413 { get { return ResourceManager.GetString("51413", resourceCulture); } } /// /// Looks up a localized string similar to 0A6E. /// internal static string _51415 { get { return ResourceManager.GetString("51415", resourceCulture); } } /// /// Looks up a localized string similar to 0A6F. /// internal static string _51417 { get { return ResourceManager.GetString("51417", resourceCulture); } } /// /// Looks up a localized string similar to 0A70. /// internal static string _51424 { get { return ResourceManager.GetString("51424", resourceCulture); } } /// /// Looks up a localized string similar to 0A71. /// internal static string _51425 { get { return ResourceManager.GetString("51425", resourceCulture); } } /// /// Looks up a localized string similar to 0A72. /// internal static string _51428 { get { return ResourceManager.GetString("51428", resourceCulture); } } /// /// Looks up a localized string similar to 0A73. /// internal static string _51445 { get { return ResourceManager.GetString("51445", resourceCulture); } } /// /// Looks up a localized string similar to 0A74. /// internal static string _51452 { get { return ResourceManager.GetString("51452", resourceCulture); } } /// /// Looks up a localized string similar to 0A75. /// internal static string _51453 { get { return ResourceManager.GetString("51453", resourceCulture); } } /// /// Looks up a localized string similar to 0A76. /// internal static string _51456 { get { return ResourceManager.GetString("51456", resourceCulture); } } /// /// Looks up a localized string similar to 0A77. /// internal static string _51460 { get { return ResourceManager.GetString("51460", resourceCulture); } } /// /// Looks up a localized string similar to 0A78. /// internal static string _51461 { get { return ResourceManager.GetString("51461", resourceCulture); } } /// /// Looks up a localized string similar to 0A79. /// internal static string _51462 { get { return ResourceManager.GetString("51462", resourceCulture); } } /// /// Looks up a localized string similar to 0A7A. /// internal static string _51468 { get { return ResourceManager.GetString("51468", resourceCulture); } } /// /// Looks up a localized string similar to 0A7B. /// internal static string _51469 { get { return ResourceManager.GetString("51469", resourceCulture); } } /// /// Looks up a localized string similar to 0A7C. /// internal static string _51471 { get { return ResourceManager.GetString("51471", resourceCulture); } } /// /// Looks up a localized string similar to 0A7D. /// internal static string _51473 { get { return ResourceManager.GetString("51473", resourceCulture); } } /// /// Looks up a localized string similar to 0A7E. /// internal static string _51480 { get { return ResourceManager.GetString("51480", resourceCulture); } } /// /// Looks up a localized string similar to 0A7F. /// internal static string _51500 { get { return ResourceManager.GetString("51500", resourceCulture); } } /// /// Looks up a localized string similar to 0A80. /// internal static string _51508 { get { return ResourceManager.GetString("51508", resourceCulture); } } /// /// Looks up a localized string similar to 0A81. /// internal static string _51536 { get { return ResourceManager.GetString("51536", resourceCulture); } } /// /// Looks up a localized string similar to 0A82. /// internal static string _51537 { get { return ResourceManager.GetString("51537", resourceCulture); } } /// /// Looks up a localized string similar to 0A83. /// internal static string _51540 { get { return ResourceManager.GetString("51540", resourceCulture); } } /// /// Looks up a localized string similar to 0A84. /// internal static string _51544 { get { return ResourceManager.GetString("51544", resourceCulture); } } /// /// Looks up a localized string similar to 0A85. /// internal static string _51552 { get { return ResourceManager.GetString("51552", resourceCulture); } } /// /// Looks up a localized string similar to 0A86. /// internal static string _51553 { get { return ResourceManager.GetString("51553", resourceCulture); } } /// /// Looks up a localized string similar to 0A87. /// internal static string _51555 { get { return ResourceManager.GetString("51555", resourceCulture); } } /// /// Looks up a localized string similar to 0A88. /// internal static string _51564 { get { return ResourceManager.GetString("51564", resourceCulture); } } /// /// Looks up a localized string similar to 0A89. /// internal static string _51568 { get { return ResourceManager.GetString("51568", resourceCulture); } } /// /// Looks up a localized string similar to 0A8A. /// internal static string _51572 { get { return ResourceManager.GetString("51572", resourceCulture); } } /// /// Looks up a localized string similar to 0A8B. /// internal static string _51580 { get { return ResourceManager.GetString("51580", resourceCulture); } } /// /// Looks up a localized string similar to 0A8C. /// internal static string _51592 { get { return ResourceManager.GetString("51592", resourceCulture); } } /// /// Looks up a localized string similar to 0A8D. /// internal static string _51593 { get { return ResourceManager.GetString("51593", resourceCulture); } } /// /// Looks up a localized string similar to 0A8E. /// internal static string _51596 { get { return ResourceManager.GetString("51596", resourceCulture); } } /// /// Looks up a localized string similar to 0A8F. /// internal static string _51600 { get { return ResourceManager.GetString("51600", resourceCulture); } } /// /// Looks up a localized string similar to 0A90. /// internal static string _51608 { get { return ResourceManager.GetString("51608", resourceCulture); } } /// /// Looks up a localized string similar to 0A91. /// internal static string _51609 { get { return ResourceManager.GetString("51609", resourceCulture); } } /// /// Looks up a localized string similar to 0A92. /// internal static string _51611 { get { return ResourceManager.GetString("51611", resourceCulture); } } /// /// Looks up a localized string similar to 0A93. /// internal static string _51613 { get { return ResourceManager.GetString("51613", resourceCulture); } } /// /// Looks up a localized string similar to 0A94. /// internal static string _51648 { get { return ResourceManager.GetString("51648", resourceCulture); } } /// /// Looks up a localized string similar to 0A95. /// internal static string _51649 { get { return ResourceManager.GetString("51649", resourceCulture); } } /// /// Looks up a localized string similar to 0A96. /// internal static string _51652 { get { return ResourceManager.GetString("51652", resourceCulture); } } /// /// Looks up a localized string similar to 0A97. /// internal static string _51655 { get { return ResourceManager.GetString("51655", resourceCulture); } } /// /// Looks up a localized string similar to 0A98. /// internal static string _51656 { get { return ResourceManager.GetString("51656", resourceCulture); } } /// /// Looks up a localized string similar to 0A99. /// internal static string _51658 { get { return ResourceManager.GetString("51658", resourceCulture); } } /// /// Looks up a localized string similar to 0A9A. /// internal static string _51664 { get { return ResourceManager.GetString("51664", resourceCulture); } } /// /// Looks up a localized string similar to 0A9B. /// internal static string _51665 { get { return ResourceManager.GetString("51665", resourceCulture); } } /// /// Looks up a localized string similar to 0A9C. /// internal static string _51667 { get { return ResourceManager.GetString("51667", resourceCulture); } } /// /// Looks up a localized string similar to 0A9D. /// internal static string _51669 { get { return ResourceManager.GetString("51669", resourceCulture); } } /// /// Looks up a localized string similar to 0A9E. /// internal static string _51670 { get { return ResourceManager.GetString("51670", resourceCulture); } } /// /// Looks up a localized string similar to 0A9F. /// internal static string _51673 { get { return ResourceManager.GetString("51673", resourceCulture); } } /// /// Looks up a localized string similar to 0AA0. /// internal static string _51674 { get { return ResourceManager.GetString("51674", resourceCulture); } } /// /// Looks up a localized string similar to 0AA1. /// internal static string _51676 { get { return ResourceManager.GetString("51676", resourceCulture); } } /// /// Looks up a localized string similar to 0AA2. /// internal static string _51677 { get { return ResourceManager.GetString("51677", resourceCulture); } } /// /// Looks up a localized string similar to 0AA3. /// internal static string _51680 { get { return ResourceManager.GetString("51680", resourceCulture); } } /// /// Looks up a localized string similar to 0AA4. /// internal static string _51682 { get { return ResourceManager.GetString("51682", resourceCulture); } } /// /// Looks up a localized string similar to 0AA5. /// internal static string _51684 { get { return ResourceManager.GetString("51684", resourceCulture); } } /// /// Looks up a localized string similar to 0AA6. /// internal static string _51687 { get { return ResourceManager.GetString("51687", resourceCulture); } } /// /// Looks up a localized string similar to 0AA7. /// internal static string _51692 { get { return ResourceManager.GetString("51692", resourceCulture); } } /// /// Looks up a localized string similar to 0AA8. /// internal static string _51693 { get { return ResourceManager.GetString("51693", resourceCulture); } } /// /// Looks up a localized string similar to 0AA9. /// internal static string _51695 { get { return ResourceManager.GetString("51695", resourceCulture); } } /// /// Looks up a localized string similar to 0AAA. /// internal static string _51696 { get { return ResourceManager.GetString("51696", resourceCulture); } } /// /// Looks up a localized string similar to 0AAB. /// internal static string _51697 { get { return ResourceManager.GetString("51697", resourceCulture); } } /// /// Looks up a localized string similar to 0AAC. /// internal static string _51704 { get { return ResourceManager.GetString("51704", resourceCulture); } } /// /// Looks up a localized string similar to 0AAD. /// internal static string _51705 { get { return ResourceManager.GetString("51705", resourceCulture); } } /// /// Looks up a localized string similar to 0AAE. /// internal static string _51708 { get { return ResourceManager.GetString("51708", resourceCulture); } } /// /// Looks up a localized string similar to 0AAF. /// internal static string _51712 { get { return ResourceManager.GetString("51712", resourceCulture); } } /// /// Looks up a localized string similar to 0AB0. /// internal static string _51720 { get { return ResourceManager.GetString("51720", resourceCulture); } } /// /// Looks up a localized string similar to 0AB1. /// internal static string _51721 { get { return ResourceManager.GetString("51721", resourceCulture); } } /// /// Looks up a localized string similar to 0AB2. /// internal static string _51723 { get { return ResourceManager.GetString("51723", resourceCulture); } } /// /// Looks up a localized string similar to 0AB3. /// internal static string _51724 { get { return ResourceManager.GetString("51724", resourceCulture); } } /// /// Looks up a localized string similar to 0AB4. /// internal static string _51725 { get { return ResourceManager.GetString("51725", resourceCulture); } } /// /// Looks up a localized string similar to 0AB5. /// internal static string _51732 { get { return ResourceManager.GetString("51732", resourceCulture); } } /// /// Looks up a localized string similar to 0AB6. /// internal static string _51736 { get { return ResourceManager.GetString("51736", resourceCulture); } } /// /// Looks up a localized string similar to 0AB7. /// internal static string _51753 { get { return ResourceManager.GetString("51753", resourceCulture); } } /// /// Looks up a localized string similar to 0AB8. /// internal static string _51788 { get { return ResourceManager.GetString("51788", resourceCulture); } } /// /// Looks up a localized string similar to 0AB9. /// internal static string _51789 { get { return ResourceManager.GetString("51789", resourceCulture); } } /// /// Looks up a localized string similar to 0ABA. /// internal static string _51792 { get { return ResourceManager.GetString("51792", resourceCulture); } } /// /// Looks up a localized string similar to 0ABB. /// internal static string _51796 { get { return ResourceManager.GetString("51796", resourceCulture); } } /// /// Looks up a localized string similar to 0ABC. /// internal static string _51804 { get { return ResourceManager.GetString("51804", resourceCulture); } } /// /// Looks up a localized string similar to 0ABD. /// internal static string _51805 { get { return ResourceManager.GetString("51805", resourceCulture); } } /// /// Looks up a localized string similar to 0ABE. /// internal static string _51807 { get { return ResourceManager.GetString("51807", resourceCulture); } } /// /// Looks up a localized string similar to 0ABF. /// internal static string _51808 { get { return ResourceManager.GetString("51808", resourceCulture); } } /// /// Looks up a localized string similar to 0AC0. /// internal static string _51809 { get { return ResourceManager.GetString("51809", resourceCulture); } } /// /// Looks up a localized string similar to 0AC1. /// internal static string _51816 { get { return ResourceManager.GetString("51816", resourceCulture); } } /// /// Looks up a localized string similar to 0AC2. /// internal static string _51837 { get { return ResourceManager.GetString("51837", resourceCulture); } } /// /// Looks up a localized string similar to 0AC3. /// internal static string _51844 { get { return ResourceManager.GetString("51844", resourceCulture); } } /// /// Looks up a localized string similar to 0AC4. /// internal static string _51864 { get { return ResourceManager.GetString("51864", resourceCulture); } } /// /// Looks up a localized string similar to 0AC5. /// internal static string _51900 { get { return ResourceManager.GetString("51900", resourceCulture); } } /// /// Looks up a localized string similar to 0AC6. /// internal static string _51901 { get { return ResourceManager.GetString("51901", resourceCulture); } } /// /// Looks up a localized string similar to 0AC7. /// internal static string _51904 { get { return ResourceManager.GetString("51904", resourceCulture); } } /// /// Looks up a localized string similar to 0AC8. /// internal static string _51908 { get { return ResourceManager.GetString("51908", resourceCulture); } } /// /// Looks up a localized string similar to 0AC9. /// internal static string _51916 { get { return ResourceManager.GetString("51916", resourceCulture); } } /// /// Looks up a localized string similar to 0ACA. /// internal static string _51917 { get { return ResourceManager.GetString("51917", resourceCulture); } } /// /// Looks up a localized string similar to 0ACB. /// internal static string _51919 { get { return ResourceManager.GetString("51919", resourceCulture); } } /// /// Looks up a localized string similar to 0ACC. /// internal static string _51921 { get { return ResourceManager.GetString("51921", resourceCulture); } } /// /// Looks up a localized string similar to 0ACD. /// internal static string _51923 { get { return ResourceManager.GetString("51923", resourceCulture); } } /// /// Looks up a localized string similar to 0ACE. /// internal static string _51928 { get { return ResourceManager.GetString("51928", resourceCulture); } } /// /// Looks up a localized string similar to 0ACF. /// internal static string _51929 { get { return ResourceManager.GetString("51929", resourceCulture); } } /// /// Looks up a localized string similar to 0AD0. /// internal static string _51936 { get { return ResourceManager.GetString("51936", resourceCulture); } } /// /// Looks up a localized string similar to 0AD1. /// internal static string _51948 { get { return ResourceManager.GetString("51948", resourceCulture); } } /// /// Looks up a localized string similar to 0AD2. /// internal static string _51956 { get { return ResourceManager.GetString("51956", resourceCulture); } } /// /// Looks up a localized string similar to 0AD3. /// internal static string _51976 { get { return ResourceManager.GetString("51976", resourceCulture); } } /// /// Looks up a localized string similar to 0AD4. /// internal static string _51984 { get { return ResourceManager.GetString("51984", resourceCulture); } } /// /// Looks up a localized string similar to 0AD5. /// internal static string _51988 { get { return ResourceManager.GetString("51988", resourceCulture); } } /// /// Looks up a localized string similar to 0AD6. /// internal static string _51992 { get { return ResourceManager.GetString("51992", resourceCulture); } } /// /// Looks up a localized string similar to 0125. /// internal static string _52 { get { return ResourceManager.GetString("52", resourceCulture); } } /// /// Looks up a localized string similar to 0AD7. /// internal static string _52000 { get { return ResourceManager.GetString("52000", resourceCulture); } } /// /// Looks up a localized string similar to 0AD8. /// internal static string _52001 { get { return ResourceManager.GetString("52001", resourceCulture); } } /// /// Looks up a localized string similar to 0D65. /// internal static string _52012 { get { return ResourceManager.GetString("52012", resourceCulture); } } /// /// Looks up a localized string similar to 0AD9. /// internal static string _52033 { get { return ResourceManager.GetString("52033", resourceCulture); } } /// /// Looks up a localized string similar to 0ADA. /// internal static string _52040 { get { return ResourceManager.GetString("52040", resourceCulture); } } /// /// Looks up a localized string similar to 0ADB. /// internal static string _52041 { get { return ResourceManager.GetString("52041", resourceCulture); } } /// /// Looks up a localized string similar to 0ADC. /// internal static string _52044 { get { return ResourceManager.GetString("52044", resourceCulture); } } /// /// Looks up a localized string similar to 0ADD. /// internal static string _52048 { get { return ResourceManager.GetString("52048", resourceCulture); } } /// /// Looks up a localized string similar to 0ADE. /// internal static string _52056 { get { return ResourceManager.GetString("52056", resourceCulture); } } /// /// Looks up a localized string similar to 0ADF. /// internal static string _52057 { get { return ResourceManager.GetString("52057", resourceCulture); } } /// /// Looks up a localized string similar to 0AE0. /// internal static string _52061 { get { return ResourceManager.GetString("52061", resourceCulture); } } /// /// Looks up a localized string similar to 0AE1. /// internal static string _52068 { get { return ResourceManager.GetString("52068", resourceCulture); } } /// /// Looks up a localized string similar to 0AE2. /// internal static string _52088 { get { return ResourceManager.GetString("52088", resourceCulture); } } /// /// Looks up a localized string similar to 0AE3. /// internal static string _52089 { get { return ResourceManager.GetString("52089", resourceCulture); } } /// /// Looks up a localized string similar to 0AE4. /// internal static string _52124 { get { return ResourceManager.GetString("52124", resourceCulture); } } /// /// Looks up a localized string similar to 0AE5. /// internal static string _52152 { get { return ResourceManager.GetString("52152", resourceCulture); } } /// /// Looks up a localized string similar to 0AE6. /// internal static string _52180 { get { return ResourceManager.GetString("52180", resourceCulture); } } /// /// Looks up a localized string similar to 0AE7. /// internal static string _52196 { get { return ResourceManager.GetString("52196", resourceCulture); } } /// /// Looks up a localized string similar to 0AE8. /// internal static string _52199 { get { return ResourceManager.GetString("52199", resourceCulture); } } /// /// Looks up a localized string similar to 0AE9. /// internal static string _52201 { get { return ResourceManager.GetString("52201", resourceCulture); } } /// /// Looks up a localized string similar to 0AEA. /// internal static string _52236 { get { return ResourceManager.GetString("52236", resourceCulture); } } /// /// Looks up a localized string similar to 0AEB. /// internal static string _52237 { get { return ResourceManager.GetString("52237", resourceCulture); } } /// /// Looks up a localized string similar to 0AEC. /// internal static string _52240 { get { return ResourceManager.GetString("52240", resourceCulture); } } /// /// Looks up a localized string similar to 0AED. /// internal static string _52244 { get { return ResourceManager.GetString("52244", resourceCulture); } } /// /// Looks up a localized string similar to 0AEE. /// internal static string _52252 { get { return ResourceManager.GetString("52252", resourceCulture); } } /// /// Looks up a localized string similar to 0AEF. /// internal static string _52253 { get { return ResourceManager.GetString("52253", resourceCulture); } } /// /// Looks up a localized string similar to 0AF0. /// internal static string _52257 { get { return ResourceManager.GetString("52257", resourceCulture); } } /// /// Looks up a localized string similar to 0AF1. /// internal static string _52258 { get { return ResourceManager.GetString("52258", resourceCulture); } } /// /// Looks up a localized string similar to 0AF2. /// internal static string _52263 { get { return ResourceManager.GetString("52263", resourceCulture); } } /// /// Looks up a localized string similar to 0AF3. /// internal static string _52264 { get { return ResourceManager.GetString("52264", resourceCulture); } } /// /// Looks up a localized string similar to 0AF4. /// internal static string _52265 { get { return ResourceManager.GetString("52265", resourceCulture); } } /// /// Looks up a localized string similar to 0AF5. /// internal static string _52268 { get { return ResourceManager.GetString("52268", resourceCulture); } } /// /// Looks up a localized string similar to 0AF6. /// internal static string _52270 { get { return ResourceManager.GetString("52270", resourceCulture); } } /// /// Looks up a localized string similar to 0AF7. /// internal static string _52272 { get { return ResourceManager.GetString("52272", resourceCulture); } } /// /// Looks up a localized string similar to 0AF8. /// internal static string _52280 { get { return ResourceManager.GetString("52280", resourceCulture); } } /// /// Looks up a localized string similar to 0AF9. /// internal static string _52281 { get { return ResourceManager.GetString("52281", resourceCulture); } } /// /// Looks up a localized string similar to 0AFA. /// internal static string _52283 { get { return ResourceManager.GetString("52283", resourceCulture); } } /// /// Looks up a localized string similar to 0AFB. /// internal static string _52284 { get { return ResourceManager.GetString("52284", resourceCulture); } } /// /// Looks up a localized string similar to 0AFC. /// internal static string _52285 { get { return ResourceManager.GetString("52285", resourceCulture); } } /// /// Looks up a localized string similar to 0AFD. /// internal static string _52286 { get { return ResourceManager.GetString("52286", resourceCulture); } } /// /// Looks up a localized string similar to 0AFE. /// internal static string _52292 { get { return ResourceManager.GetString("52292", resourceCulture); } } /// /// Looks up a localized string similar to 0AFF. /// internal static string _52293 { get { return ResourceManager.GetString("52293", resourceCulture); } } /// /// Looks up a localized string similar to 0B00. /// internal static string _52296 { get { return ResourceManager.GetString("52296", resourceCulture); } } /// /// Looks up a localized string similar to 0B01. /// internal static string _52300 { get { return ResourceManager.GetString("52300", resourceCulture); } } /// /// Looks up a localized string similar to 0B02. /// internal static string _52308 { get { return ResourceManager.GetString("52308", resourceCulture); } } /// /// Looks up a localized string similar to 0B03. /// internal static string _52309 { get { return ResourceManager.GetString("52309", resourceCulture); } } /// /// Looks up a localized string similar to 0B04. /// internal static string _52311 { get { return ResourceManager.GetString("52311", resourceCulture); } } /// /// Looks up a localized string similar to 0B05. /// internal static string _52312 { get { return ResourceManager.GetString("52312", resourceCulture); } } /// /// Looks up a localized string similar to 0B06. /// internal static string _52313 { get { return ResourceManager.GetString("52313", resourceCulture); } } /// /// Looks up a localized string similar to 0B07. /// internal static string _52320 { get { return ResourceManager.GetString("52320", resourceCulture); } } /// /// Looks up a localized string similar to 0B08. /// internal static string _52324 { get { return ResourceManager.GetString("52324", resourceCulture); } } /// /// Looks up a localized string similar to 0B09. /// internal static string _52326 { get { return ResourceManager.GetString("52326", resourceCulture); } } /// /// Looks up a localized string similar to 0B0A. /// internal static string _52328 { get { return ResourceManager.GetString("52328", resourceCulture); } } /// /// Looks up a localized string similar to 0B0B. /// internal static string _52336 { get { return ResourceManager.GetString("52336", resourceCulture); } } /// /// Looks up a localized string similar to 0B0C. /// internal static string _52341 { get { return ResourceManager.GetString("52341", resourceCulture); } } /// /// Looks up a localized string similar to 0B0D. /// internal static string _52376 { get { return ResourceManager.GetString("52376", resourceCulture); } } /// /// Looks up a localized string similar to 0B0E. /// internal static string _52377 { get { return ResourceManager.GetString("52377", resourceCulture); } } /// /// Looks up a localized string similar to 0B0F. /// internal static string _52380 { get { return ResourceManager.GetString("52380", resourceCulture); } } /// /// Looks up a localized string similar to 0B10. /// internal static string _52384 { get { return ResourceManager.GetString("52384", resourceCulture); } } /// /// Looks up a localized string similar to 0B11. /// internal static string _52392 { get { return ResourceManager.GetString("52392", resourceCulture); } } /// /// Looks up a localized string similar to 0B12. /// internal static string _52393 { get { return ResourceManager.GetString("52393", resourceCulture); } } /// /// Looks up a localized string similar to 0B13. /// internal static string _52395 { get { return ResourceManager.GetString("52395", resourceCulture); } } /// /// Looks up a localized string similar to 0B14. /// internal static string _52396 { get { return ResourceManager.GetString("52396", resourceCulture); } } /// /// Looks up a localized string similar to 0B15. /// internal static string _52397 { get { return ResourceManager.GetString("52397", resourceCulture); } } /// /// Looks up a localized string similar to 0B16. /// internal static string _52404 { get { return ResourceManager.GetString("52404", resourceCulture); } } /// /// Looks up a localized string similar to 0B17. /// internal static string _52405 { get { return ResourceManager.GetString("52405", resourceCulture); } } /// /// Looks up a localized string similar to 0B18. /// internal static string _52408 { get { return ResourceManager.GetString("52408", resourceCulture); } } /// /// Looks up a localized string similar to 0B19. /// internal static string _52412 { get { return ResourceManager.GetString("52412", resourceCulture); } } /// /// Looks up a localized string similar to 0B1A. /// internal static string _52420 { get { return ResourceManager.GetString("52420", resourceCulture); } } /// /// Looks up a localized string similar to 0B1B. /// internal static string _52421 { get { return ResourceManager.GetString("52421", resourceCulture); } } /// /// Looks up a localized string similar to 0B1C. /// internal static string _52423 { get { return ResourceManager.GetString("52423", resourceCulture); } } /// /// Looks up a localized string similar to 0B1D. /// internal static string _52425 { get { return ResourceManager.GetString("52425", resourceCulture); } } /// /// Looks up a localized string similar to 0B1E. /// internal static string _52432 { get { return ResourceManager.GetString("52432", resourceCulture); } } /// /// Looks up a localized string similar to 0B1F. /// internal static string _52436 { get { return ResourceManager.GetString("52436", resourceCulture); } } /// /// Looks up a localized string similar to 0B20. /// internal static string _52452 { get { return ResourceManager.GetString("52452", resourceCulture); } } /// /// Looks up a localized string similar to 0B21. /// internal static string _52460 { get { return ResourceManager.GetString("52460", resourceCulture); } } /// /// Looks up a localized string similar to 0B22. /// internal static string _52464 { get { return ResourceManager.GetString("52464", resourceCulture); } } /// /// Looks up a localized string similar to 0B23. /// internal static string _52481 { get { return ResourceManager.GetString("52481", resourceCulture); } } /// /// Looks up a localized string similar to 0B24. /// internal static string _52488 { get { return ResourceManager.GetString("52488", resourceCulture); } } /// /// Looks up a localized string similar to 0B25. /// internal static string _52489 { get { return ResourceManager.GetString("52489", resourceCulture); } } /// /// Looks up a localized string similar to 0B26. /// internal static string _52492 { get { return ResourceManager.GetString("52492", resourceCulture); } } /// /// Looks up a localized string similar to 0B27. /// internal static string _52496 { get { return ResourceManager.GetString("52496", resourceCulture); } } /// /// Looks up a localized string similar to 0B28. /// internal static string _52504 { get { return ResourceManager.GetString("52504", resourceCulture); } } /// /// Looks up a localized string similar to 0B29. /// internal static string _52505 { get { return ResourceManager.GetString("52505", resourceCulture); } } /// /// Looks up a localized string similar to 0B2A. /// internal static string _52507 { get { return ResourceManager.GetString("52507", resourceCulture); } } /// /// Looks up a localized string similar to 0B2B. /// internal static string _52509 { get { return ResourceManager.GetString("52509", resourceCulture); } } /// /// Looks up a localized string similar to 0B2C. /// internal static string _52516 { get { return ResourceManager.GetString("52516", resourceCulture); } } /// /// Looks up a localized string similar to 0B2D. /// internal static string _52520 { get { return ResourceManager.GetString("52520", resourceCulture); } } /// /// Looks up a localized string similar to 0B2E. /// internal static string _52524 { get { return ResourceManager.GetString("52524", resourceCulture); } } /// /// Looks up a localized string similar to 0B2F. /// internal static string _52537 { get { return ResourceManager.GetString("52537", resourceCulture); } } /// /// Looks up a localized string similar to 0B30. /// internal static string _52572 { get { return ResourceManager.GetString("52572", resourceCulture); } } /// /// Looks up a localized string similar to 0B31. /// internal static string _52576 { get { return ResourceManager.GetString("52576", resourceCulture); } } /// /// Looks up a localized string similar to 0B32. /// internal static string _52580 { get { return ResourceManager.GetString("52580", resourceCulture); } } /// /// Looks up a localized string similar to 0B33. /// internal static string _52588 { get { return ResourceManager.GetString("52588", resourceCulture); } } /// /// Looks up a localized string similar to 0B34. /// internal static string _52589 { get { return ResourceManager.GetString("52589", resourceCulture); } } /// /// Looks up a localized string similar to 0B35. /// internal static string _52591 { get { return ResourceManager.GetString("52591", resourceCulture); } } /// /// Looks up a localized string similar to 0B36. /// internal static string _52593 { get { return ResourceManager.GetString("52593", resourceCulture); } } /// /// Looks up a localized string similar to 0B37. /// internal static string _52600 { get { return ResourceManager.GetString("52600", resourceCulture); } } /// /// Looks up a localized string similar to 0B38. /// internal static string _52616 { get { return ResourceManager.GetString("52616", resourceCulture); } } /// /// Looks up a localized string similar to 0B39. /// internal static string _52628 { get { return ResourceManager.GetString("52628", resourceCulture); } } /// /// Looks up a localized string similar to 0B3A. /// internal static string _52629 { get { return ResourceManager.GetString("52629", resourceCulture); } } /// /// Looks up a localized string similar to 0B3B. /// internal static string _52632 { get { return ResourceManager.GetString("52632", resourceCulture); } } /// /// Looks up a localized string similar to 0B3C. /// internal static string _52636 { get { return ResourceManager.GetString("52636", resourceCulture); } } /// /// Looks up a localized string similar to 0B3D. /// internal static string _52644 { get { return ResourceManager.GetString("52644", resourceCulture); } } /// /// Looks up a localized string similar to 0B3E. /// internal static string _52645 { get { return ResourceManager.GetString("52645", resourceCulture); } } /// /// Looks up a localized string similar to 0B3F. /// internal static string _52647 { get { return ResourceManager.GetString("52647", resourceCulture); } } /// /// Looks up a localized string similar to 0B40. /// internal static string _52649 { get { return ResourceManager.GetString("52649", resourceCulture); } } /// /// Looks up a localized string similar to 0B41. /// internal static string _52656 { get { return ResourceManager.GetString("52656", resourceCulture); } } /// /// Looks up a localized string similar to 0B42. /// internal static string _52676 { get { return ResourceManager.GetString("52676", resourceCulture); } } /// /// Looks up a localized string similar to 0B43. /// internal static string _52684 { get { return ResourceManager.GetString("52684", resourceCulture); } } /// /// Looks up a localized string similar to 0B44. /// internal static string _52688 { get { return ResourceManager.GetString("52688", resourceCulture); } } /// /// Looks up a localized string similar to 0B45. /// internal static string _52712 { get { return ResourceManager.GetString("52712", resourceCulture); } } /// /// Looks up a localized string similar to 0B46. /// internal static string _52716 { get { return ResourceManager.GetString("52716", resourceCulture); } } /// /// Looks up a localized string similar to 0B47. /// internal static string _52720 { get { return ResourceManager.GetString("52720", resourceCulture); } } /// /// Looks up a localized string similar to 0B48. /// internal static string _52728 { get { return ResourceManager.GetString("52728", resourceCulture); } } /// /// Looks up a localized string similar to 0B49. /// internal static string _52729 { get { return ResourceManager.GetString("52729", resourceCulture); } } /// /// Looks up a localized string similar to 0B4A. /// internal static string _52731 { get { return ResourceManager.GetString("52731", resourceCulture); } } /// /// Looks up a localized string similar to 0B4B. /// internal static string _52733 { get { return ResourceManager.GetString("52733", resourceCulture); } } /// /// Looks up a localized string similar to 0B4C. /// internal static string _52740 { get { return ResourceManager.GetString("52740", resourceCulture); } } /// /// Looks up a localized string similar to 0B4D. /// internal static string _52744 { get { return ResourceManager.GetString("52744", resourceCulture); } } /// /// Looks up a localized string similar to 0B4E. /// internal static string _52748 { get { return ResourceManager.GetString("52748", resourceCulture); } } /// /// Looks up a localized string similar to 0B4F. /// internal static string _52756 { get { return ResourceManager.GetString("52756", resourceCulture); } } /// /// Looks up a localized string similar to 0B50. /// internal static string _52761 { get { return ResourceManager.GetString("52761", resourceCulture); } } /// /// Looks up a localized string similar to 0B51. /// internal static string _52768 { get { return ResourceManager.GetString("52768", resourceCulture); } } /// /// Looks up a localized string similar to 0B52. /// internal static string _52769 { get { return ResourceManager.GetString("52769", resourceCulture); } } /// /// Looks up a localized string similar to 0B53. /// internal static string _52772 { get { return ResourceManager.GetString("52772", resourceCulture); } } /// /// Looks up a localized string similar to 0B54. /// internal static string _52776 { get { return ResourceManager.GetString("52776", resourceCulture); } } /// /// Looks up a localized string similar to 0B55. /// internal static string _52784 { get { return ResourceManager.GetString("52784", resourceCulture); } } /// /// Looks up a localized string similar to 0B56. /// internal static string _52785 { get { return ResourceManager.GetString("52785", resourceCulture); } } /// /// Looks up a localized string similar to 0B57. /// internal static string _52787 { get { return ResourceManager.GetString("52787", resourceCulture); } } /// /// Looks up a localized string similar to 0B58. /// internal static string _52789 { get { return ResourceManager.GetString("52789", resourceCulture); } } /// /// Looks up a localized string similar to 0B59. /// internal static string _52824 { get { return ResourceManager.GetString("52824", resourceCulture); } } /// /// Looks up a localized string similar to 0B5A. /// internal static string _52825 { get { return ResourceManager.GetString("52825", resourceCulture); } } /// /// Looks up a localized string similar to 0B5B. /// internal static string _52828 { get { return ResourceManager.GetString("52828", resourceCulture); } } /// /// Looks up a localized string similar to 0B5C. /// internal static string _52831 { get { return ResourceManager.GetString("52831", resourceCulture); } } /// /// Looks up a localized string similar to 0B5D. /// internal static string _52832 { get { return ResourceManager.GetString("52832", resourceCulture); } } /// /// Looks up a localized string similar to 0B5E. /// internal static string _52833 { get { return ResourceManager.GetString("52833", resourceCulture); } } /// /// Looks up a localized string similar to 0B5F. /// internal static string _52840 { get { return ResourceManager.GetString("52840", resourceCulture); } } /// /// Looks up a localized string similar to 0B60. /// internal static string _52841 { get { return ResourceManager.GetString("52841", resourceCulture); } } /// /// Looks up a localized string similar to 0B61. /// internal static string _52843 { get { return ResourceManager.GetString("52843", resourceCulture); } } /// /// Looks up a localized string similar to 0B62. /// internal static string _52845 { get { return ResourceManager.GetString("52845", resourceCulture); } } /// /// Looks up a localized string similar to 0B63. /// internal static string _52852 { get { return ResourceManager.GetString("52852", resourceCulture); } } /// /// Looks up a localized string similar to 0B64. /// internal static string _52853 { get { return ResourceManager.GetString("52853", resourceCulture); } } /// /// Looks up a localized string similar to 0B65. /// internal static string _52856 { get { return ResourceManager.GetString("52856", resourceCulture); } } /// /// Looks up a localized string similar to 0B66. /// internal static string _52860 { get { return ResourceManager.GetString("52860", resourceCulture); } } /// /// Looks up a localized string similar to 0B67. /// internal static string _52868 { get { return ResourceManager.GetString("52868", resourceCulture); } } /// /// Looks up a localized string similar to 0B68. /// internal static string _52869 { get { return ResourceManager.GetString("52869", resourceCulture); } } /// /// Looks up a localized string similar to 0B69. /// internal static string _52871 { get { return ResourceManager.GetString("52871", resourceCulture); } } /// /// Looks up a localized string similar to 0B6A. /// internal static string _52873 { get { return ResourceManager.GetString("52873", resourceCulture); } } /// /// Looks up a localized string similar to 0B6B. /// internal static string _52880 { get { return ResourceManager.GetString("52880", resourceCulture); } } /// /// Looks up a localized string similar to 0B6C. /// internal static string _52881 { get { return ResourceManager.GetString("52881", resourceCulture); } } /// /// Looks up a localized string similar to 0B6D. /// internal static string _52884 { get { return ResourceManager.GetString("52884", resourceCulture); } } /// /// Looks up a localized string similar to 0B6E. /// internal static string _52888 { get { return ResourceManager.GetString("52888", resourceCulture); } } /// /// Looks up a localized string similar to 0B6F. /// internal static string _52896 { get { return ResourceManager.GetString("52896", resourceCulture); } } /// /// Looks up a localized string similar to 0B70. /// internal static string _52897 { get { return ResourceManager.GetString("52897", resourceCulture); } } /// /// Looks up a localized string similar to 0B71. /// internal static string _52899 { get { return ResourceManager.GetString("52899", resourceCulture); } } /// /// Looks up a localized string similar to 0B72. /// internal static string _52900 { get { return ResourceManager.GetString("52900", resourceCulture); } } /// /// Looks up a localized string similar to 0B73. /// internal static string _52901 { get { return ResourceManager.GetString("52901", resourceCulture); } } /// /// Looks up a localized string similar to 0B74. /// internal static string _52908 { get { return ResourceManager.GetString("52908", resourceCulture); } } /// /// Looks up a localized string similar to 0B75. /// internal static string _52909 { get { return ResourceManager.GetString("52909", resourceCulture); } } /// /// Looks up a localized string similar to 0B76. /// internal static string _52929 { get { return ResourceManager.GetString("52929", resourceCulture); } } /// /// Looks up a localized string similar to 0B77. /// internal static string _52964 { get { return ResourceManager.GetString("52964", resourceCulture); } } /// /// Looks up a localized string similar to 0B78. /// internal static string _52965 { get { return ResourceManager.GetString("52965", resourceCulture); } } /// /// Looks up a localized string similar to 0B79. /// internal static string _52968 { get { return ResourceManager.GetString("52968", resourceCulture); } } /// /// Looks up a localized string similar to 0B7A. /// internal static string _52971 { get { return ResourceManager.GetString("52971", resourceCulture); } } /// /// Looks up a localized string similar to 0B7B. /// internal static string _52972 { get { return ResourceManager.GetString("52972", resourceCulture); } } /// /// Looks up a localized string similar to 0B7C. /// internal static string _52980 { get { return ResourceManager.GetString("52980", resourceCulture); } } /// /// Looks up a localized string similar to 0B7D. /// internal static string _52981 { get { return ResourceManager.GetString("52981", resourceCulture); } } /// /// Looks up a localized string similar to 0B7E. /// internal static string _52983 { get { return ResourceManager.GetString("52983", resourceCulture); } } /// /// Looks up a localized string similar to 0B7F. /// internal static string _52984 { get { return ResourceManager.GetString("52984", resourceCulture); } } /// /// Looks up a localized string similar to 0B80. /// internal static string _52985 { get { return ResourceManager.GetString("52985", resourceCulture); } } /// /// Looks up a localized string similar to 0B81. /// internal static string _52992 { get { return ResourceManager.GetString("52992", resourceCulture); } } /// /// Looks up a localized string similar to 0B82. /// internal static string _52993 { get { return ResourceManager.GetString("52993", resourceCulture); } } /// /// Looks up a localized string similar to 0B83. /// internal static string _52996 { get { return ResourceManager.GetString("52996", resourceCulture); } } /// /// Looks up a localized string similar to 0126. /// internal static string _53 { get { return ResourceManager.GetString("53", resourceCulture); } } /// /// Looks up a localized string similar to 0B84. /// internal static string _53000 { get { return ResourceManager.GetString("53000", resourceCulture); } } /// /// Looks up a localized string similar to 0B85. /// internal static string _53008 { get { return ResourceManager.GetString("53008", resourceCulture); } } /// /// Looks up a localized string similar to 0B86. /// internal static string _53009 { get { return ResourceManager.GetString("53009", resourceCulture); } } /// /// Looks up a localized string similar to 0B87. /// internal static string _53011 { get { return ResourceManager.GetString("53011", resourceCulture); } } /// /// Looks up a localized string similar to 0B88. /// internal static string _53013 { get { return ResourceManager.GetString("53013", resourceCulture); } } /// /// Looks up a localized string similar to 0B89. /// internal static string _53020 { get { return ResourceManager.GetString("53020", resourceCulture); } } /// /// Looks up a localized string similar to 0B8A. /// internal static string _53024 { get { return ResourceManager.GetString("53024", resourceCulture); } } /// /// Looks up a localized string similar to 0B8B. /// internal static string _53028 { get { return ResourceManager.GetString("53028", resourceCulture); } } /// /// Looks up a localized string similar to 0B8C. /// internal static string _53036 { get { return ResourceManager.GetString("53036", resourceCulture); } } /// /// Looks up a localized string similar to 0B8D. /// internal static string _53037 { get { return ResourceManager.GetString("53037", resourceCulture); } } /// /// Looks up a localized string similar to 0B8E. /// internal static string _53039 { get { return ResourceManager.GetString("53039", resourceCulture); } } /// /// Looks up a localized string similar to 0B8F. /// internal static string _53040 { get { return ResourceManager.GetString("53040", resourceCulture); } } /// /// Looks up a localized string similar to 0B90. /// internal static string _53041 { get { return ResourceManager.GetString("53041", resourceCulture); } } /// /// Looks up a localized string similar to 0B91. /// internal static string _53048 { get { return ResourceManager.GetString("53048", resourceCulture); } } /// /// Looks up a localized string similar to 0B92. /// internal static string _53076 { get { return ResourceManager.GetString("53076", resourceCulture); } } /// /// Looks up a localized string similar to 0B93. /// internal static string _53077 { get { return ResourceManager.GetString("53077", resourceCulture); } } /// /// Looks up a localized string similar to 0B94. /// internal static string _53080 { get { return ResourceManager.GetString("53080", resourceCulture); } } /// /// Looks up a localized string similar to 0B95. /// internal static string _53084 { get { return ResourceManager.GetString("53084", resourceCulture); } } /// /// Looks up a localized string similar to 0B96. /// internal static string _53092 { get { return ResourceManager.GetString("53092", resourceCulture); } } /// /// Looks up a localized string similar to 0B97. /// internal static string _53093 { get { return ResourceManager.GetString("53093", resourceCulture); } } /// /// Looks up a localized string similar to 0B98. /// internal static string _53095 { get { return ResourceManager.GetString("53095", resourceCulture); } } /// /// Looks up a localized string similar to 0B99. /// internal static string _53097 { get { return ResourceManager.GetString("53097", resourceCulture); } } /// /// Looks up a localized string similar to 0B9A. /// internal static string _53104 { get { return ResourceManager.GetString("53104", resourceCulture); } } /// /// Looks up a localized string similar to 0B9B. /// internal static string _53105 { get { return ResourceManager.GetString("53105", resourceCulture); } } /// /// Looks up a localized string similar to 0B9C. /// internal static string _53108 { get { return ResourceManager.GetString("53108", resourceCulture); } } /// /// Looks up a localized string similar to 0B9D. /// internal static string _53112 { get { return ResourceManager.GetString("53112", resourceCulture); } } /// /// Looks up a localized string similar to 0B9E. /// internal static string _53120 { get { return ResourceManager.GetString("53120", resourceCulture); } } /// /// Looks up a localized string similar to 0B9F. /// internal static string _53125 { get { return ResourceManager.GetString("53125", resourceCulture); } } /// /// Looks up a localized string similar to 0BA0. /// internal static string _53132 { get { return ResourceManager.GetString("53132", resourceCulture); } } /// /// Looks up a localized string similar to 0BA1. /// internal static string _53153 { get { return ResourceManager.GetString("53153", resourceCulture); } } /// /// Looks up a localized string similar to 0BA2. /// internal static string _53160 { get { return ResourceManager.GetString("53160", resourceCulture); } } /// /// Looks up a localized string similar to 0BA3. /// internal static string _53168 { get { return ResourceManager.GetString("53168", resourceCulture); } } /// /// Looks up a localized string similar to 0BA4. /// internal static string _53188 { get { return ResourceManager.GetString("53188", resourceCulture); } } /// /// Looks up a localized string similar to 0BA5. /// internal static string _53216 { get { return ResourceManager.GetString("53216", resourceCulture); } } /// /// Looks up a localized string similar to 0BA6. /// internal static string _53217 { get { return ResourceManager.GetString("53217", resourceCulture); } } /// /// Looks up a localized string similar to 0BA7. /// internal static string _53220 { get { return ResourceManager.GetString("53220", resourceCulture); } } /// /// Looks up a localized string similar to 0BA8. /// internal static string _53224 { get { return ResourceManager.GetString("53224", resourceCulture); } } /// /// Looks up a localized string similar to 0BA9. /// internal static string _53232 { get { return ResourceManager.GetString("53232", resourceCulture); } } /// /// Looks up a localized string similar to 0BAA. /// internal static string _53233 { get { return ResourceManager.GetString("53233", resourceCulture); } } /// /// Looks up a localized string similar to 0BAB. /// internal static string _53235 { get { return ResourceManager.GetString("53235", resourceCulture); } } /// /// Looks up a localized string similar to 0BAC. /// internal static string _53237 { get { return ResourceManager.GetString("53237", resourceCulture); } } /// /// Looks up a localized string similar to 0BAD. /// internal static string _53244 { get { return ResourceManager.GetString("53244", resourceCulture); } } /// /// Looks up a localized string similar to 0BAE. /// internal static string _53248 { get { return ResourceManager.GetString("53248", resourceCulture); } } /// /// Looks up a localized string similar to 0BAF. /// internal static string _53252 { get { return ResourceManager.GetString("53252", resourceCulture); } } /// /// Looks up a localized string similar to 0BB0. /// internal static string _53265 { get { return ResourceManager.GetString("53265", resourceCulture); } } /// /// Looks up a localized string similar to 0BB1. /// internal static string _53272 { get { return ResourceManager.GetString("53272", resourceCulture); } } /// /// Looks up a localized string similar to 0BB2. /// internal static string _53293 { get { return ResourceManager.GetString("53293", resourceCulture); } } /// /// Looks up a localized string similar to 0BB3. /// internal static string _53300 { get { return ResourceManager.GetString("53300", resourceCulture); } } /// /// Looks up a localized string similar to 0BB4. /// internal static string _53301 { get { return ResourceManager.GetString("53301", resourceCulture); } } /// /// Looks up a localized string similar to 0BB5. /// internal static string _53304 { get { return ResourceManager.GetString("53304", resourceCulture); } } /// /// Looks up a localized string similar to 0BB6. /// internal static string _53308 { get { return ResourceManager.GetString("53308", resourceCulture); } } /// /// Looks up a localized string similar to 0BB7. /// internal static string _53316 { get { return ResourceManager.GetString("53316", resourceCulture); } } /// /// Looks up a localized string similar to 0BB8. /// internal static string _53317 { get { return ResourceManager.GetString("53317", resourceCulture); } } /// /// Looks up a localized string similar to 0BB9. /// internal static string _53319 { get { return ResourceManager.GetString("53319", resourceCulture); } } /// /// Looks up a localized string similar to 0BBA. /// internal static string _53321 { get { return ResourceManager.GetString("53321", resourceCulture); } } /// /// Looks up a localized string similar to 0BBB. /// internal static string _53328 { get { return ResourceManager.GetString("53328", resourceCulture); } } /// /// Looks up a localized string similar to 0BBC. /// internal static string _53332 { get { return ResourceManager.GetString("53332", resourceCulture); } } /// /// Looks up a localized string similar to 0BBD. /// internal static string _53336 { get { return ResourceManager.GetString("53336", resourceCulture); } } /// /// Looks up a localized string similar to 0BBE. /// internal static string _53344 { get { return ResourceManager.GetString("53344", resourceCulture); } } /// /// Looks up a localized string similar to 0BBF. /// internal static string _53356 { get { return ResourceManager.GetString("53356", resourceCulture); } } /// /// Looks up a localized string similar to 0BC0. /// internal static string _53357 { get { return ResourceManager.GetString("53357", resourceCulture); } } /// /// Looks up a localized string similar to 0BC1. /// internal static string _53360 { get { return ResourceManager.GetString("53360", resourceCulture); } } /// /// Looks up a localized string similar to 0BC2. /// internal static string _53364 { get { return ResourceManager.GetString("53364", resourceCulture); } } /// /// Looks up a localized string similar to 0BC3. /// internal static string _53372 { get { return ResourceManager.GetString("53372", resourceCulture); } } /// /// Looks up a localized string similar to 0BC4. /// internal static string _53373 { get { return ResourceManager.GetString("53373", resourceCulture); } } /// /// Looks up a localized string similar to 0BC5. /// internal static string _53377 { get { return ResourceManager.GetString("53377", resourceCulture); } } /// /// Looks up a localized string similar to 0BC6. /// internal static string _53412 { get { return ResourceManager.GetString("53412", resourceCulture); } } /// /// Looks up a localized string similar to 0BC7. /// internal static string _53413 { get { return ResourceManager.GetString("53413", resourceCulture); } } /// /// Looks up a localized string similar to 0BC8. /// internal static string _53416 { get { return ResourceManager.GetString("53416", resourceCulture); } } /// /// Looks up a localized string similar to 0BC9. /// internal static string _53420 { get { return ResourceManager.GetString("53420", resourceCulture); } } /// /// Looks up a localized string similar to 0BCA. /// internal static string _53428 { get { return ResourceManager.GetString("53428", resourceCulture); } } /// /// Looks up a localized string similar to 0BCB. /// internal static string _53429 { get { return ResourceManager.GetString("53429", resourceCulture); } } /// /// Looks up a localized string similar to 0BCC. /// internal static string _53431 { get { return ResourceManager.GetString("53431", resourceCulture); } } /// /// Looks up a localized string similar to 0BCD. /// internal static string _53433 { get { return ResourceManager.GetString("53433", resourceCulture); } } /// /// Looks up a localized string similar to 0BCE. /// internal static string _53440 { get { return ResourceManager.GetString("53440", resourceCulture); } } /// /// Looks up a localized string similar to 0BCF. /// internal static string _53441 { get { return ResourceManager.GetString("53441", resourceCulture); } } /// /// Looks up a localized string similar to 0BD0. /// internal static string _53444 { get { return ResourceManager.GetString("53444", resourceCulture); } } /// /// Looks up a localized string similar to 0BD1. /// internal static string _53448 { get { return ResourceManager.GetString("53448", resourceCulture); } } /// /// Looks up a localized string similar to 0BD2. /// internal static string _53449 { get { return ResourceManager.GetString("53449", resourceCulture); } } /// /// Looks up a localized string similar to 0BD3. /// internal static string _53456 { get { return ResourceManager.GetString("53456", resourceCulture); } } /// /// Looks up a localized string similar to 0BD4. /// internal static string _53457 { get { return ResourceManager.GetString("53457", resourceCulture); } } /// /// Looks up a localized string similar to 0BD5. /// internal static string _53459 { get { return ResourceManager.GetString("53459", resourceCulture); } } /// /// Looks up a localized string similar to 0BD6. /// internal static string _53460 { get { return ResourceManager.GetString("53460", resourceCulture); } } /// /// Looks up a localized string similar to 0BD7. /// internal static string _53461 { get { return ResourceManager.GetString("53461", resourceCulture); } } /// /// Looks up a localized string similar to 0BD8. /// internal static string _53468 { get { return ResourceManager.GetString("53468", resourceCulture); } } /// /// Looks up a localized string similar to 0BD9. /// internal static string _53469 { get { return ResourceManager.GetString("53469", resourceCulture); } } /// /// Looks up a localized string similar to 0BDA. /// internal static string _53472 { get { return ResourceManager.GetString("53472", resourceCulture); } } /// /// Looks up a localized string similar to 0BDB. /// internal static string _53476 { get { return ResourceManager.GetString("53476", resourceCulture); } } /// /// Looks up a localized string similar to 0BDC. /// internal static string _53484 { get { return ResourceManager.GetString("53484", resourceCulture); } } /// /// Looks up a localized string similar to 0BDD. /// internal static string _53485 { get { return ResourceManager.GetString("53485", resourceCulture); } } /// /// Looks up a localized string similar to 0BDE. /// internal static string _53487 { get { return ResourceManager.GetString("53487", resourceCulture); } } /// /// Looks up a localized string similar to 0BDF. /// internal static string _53488 { get { return ResourceManager.GetString("53488", resourceCulture); } } /// /// Looks up a localized string similar to 0BE0. /// internal static string _53489 { get { return ResourceManager.GetString("53489", resourceCulture); } } /// /// Looks up a localized string similar to 0BE1. /// internal static string _53496 { get { return ResourceManager.GetString("53496", resourceCulture); } } /// /// Looks up a localized string similar to 0BE2. /// internal static string _53517 { get { return ResourceManager.GetString("53517", resourceCulture); } } /// /// Looks up a localized string similar to 0BE3. /// internal static string _53552 { get { return ResourceManager.GetString("53552", resourceCulture); } } /// /// Looks up a localized string similar to 0BE4. /// internal static string _53553 { get { return ResourceManager.GetString("53553", resourceCulture); } } /// /// Looks up a localized string similar to 0BE5. /// internal static string _53556 { get { return ResourceManager.GetString("53556", resourceCulture); } } /// /// Looks up a localized string similar to 0BE6. /// internal static string _53560 { get { return ResourceManager.GetString("53560", resourceCulture); } } /// /// Looks up a localized string similar to 0BE7. /// internal static string _53562 { get { return ResourceManager.GetString("53562", resourceCulture); } } /// /// Looks up a localized string similar to 0BE8. /// internal static string _53568 { get { return ResourceManager.GetString("53568", resourceCulture); } } /// /// Looks up a localized string similar to 0BE9. /// internal static string _53569 { get { return ResourceManager.GetString("53569", resourceCulture); } } /// /// Looks up a localized string similar to 0BEA. /// internal static string _53571 { get { return ResourceManager.GetString("53571", resourceCulture); } } /// /// Looks up a localized string similar to 0BEB. /// internal static string _53572 { get { return ResourceManager.GetString("53572", resourceCulture); } } /// /// Looks up a localized string similar to 0BEC. /// internal static string _53573 { get { return ResourceManager.GetString("53573", resourceCulture); } } /// /// Looks up a localized string similar to 0BED. /// internal static string _53580 { get { return ResourceManager.GetString("53580", resourceCulture); } } /// /// Looks up a localized string similar to 0BEE. /// internal static string _53581 { get { return ResourceManager.GetString("53581", resourceCulture); } } /// /// Looks up a localized string similar to 0BEF. /// internal static string _53584 { get { return ResourceManager.GetString("53584", resourceCulture); } } /// /// Looks up a localized string similar to 0BF0. /// internal static string _53588 { get { return ResourceManager.GetString("53588", resourceCulture); } } /// /// Looks up a localized string similar to 0BF1. /// internal static string _53596 { get { return ResourceManager.GetString("53596", resourceCulture); } } /// /// Looks up a localized string similar to 0BF2. /// internal static string _53597 { get { return ResourceManager.GetString("53597", resourceCulture); } } /// /// Looks up a localized string similar to 0BF3. /// internal static string _53599 { get { return ResourceManager.GetString("53599", resourceCulture); } } /// /// Looks up a localized string similar to 0BF4. /// internal static string _53601 { get { return ResourceManager.GetString("53601", resourceCulture); } } /// /// Looks up a localized string similar to 0BF5. /// internal static string _53608 { get { return ResourceManager.GetString("53608", resourceCulture); } } /// /// Looks up a localized string similar to 0BF6. /// internal static string _53612 { get { return ResourceManager.GetString("53612", resourceCulture); } } /// /// Looks up a localized string similar to 0BF7. /// internal static string _53628 { get { return ResourceManager.GetString("53628", resourceCulture); } } /// /// Looks up a localized string similar to 0BF8. /// internal static string _53636 { get { return ResourceManager.GetString("53636", resourceCulture); } } /// /// Looks up a localized string similar to 0BF9. /// internal static string _53640 { get { return ResourceManager.GetString("53640", resourceCulture); } } /// /// Looks up a localized string similar to 0BFA. /// internal static string _53664 { get { return ResourceManager.GetString("53664", resourceCulture); } } /// /// Looks up a localized string similar to 0BFB. /// internal static string _53665 { get { return ResourceManager.GetString("53665", resourceCulture); } } /// /// Looks up a localized string similar to 0BFC. /// internal static string _53668 { get { return ResourceManager.GetString("53668", resourceCulture); } } /// /// Looks up a localized string similar to 0BFD. /// internal static string _53672 { get { return ResourceManager.GetString("53672", resourceCulture); } } /// /// Looks up a localized string similar to 0BFE. /// internal static string _53680 { get { return ResourceManager.GetString("53680", resourceCulture); } } /// /// Looks up a localized string similar to 0BFF. /// internal static string _53681 { get { return ResourceManager.GetString("53681", resourceCulture); } } /// /// Looks up a localized string similar to 0C00. /// internal static string _53683 { get { return ResourceManager.GetString("53683", resourceCulture); } } /// /// Looks up a localized string similar to 0C01. /// internal static string _53685 { get { return ResourceManager.GetString("53685", resourceCulture); } } /// /// Looks up a localized string similar to 0C02. /// internal static string _53690 { get { return ResourceManager.GetString("53690", resourceCulture); } } /// /// Looks up a localized string similar to 0C03. /// internal static string _53692 { get { return ResourceManager.GetString("53692", resourceCulture); } } /// /// Looks up a localized string similar to 0C04. /// internal static string _53696 { get { return ResourceManager.GetString("53696", resourceCulture); } } /// /// Looks up a localized string similar to 0C05. /// internal static string _53720 { get { return ResourceManager.GetString("53720", resourceCulture); } } /// /// Looks up a localized string similar to 0C06. /// internal static string _53748 { get { return ResourceManager.GetString("53748", resourceCulture); } } /// /// Looks up a localized string similar to 0C07. /// internal static string _53752 { get { return ResourceManager.GetString("53752", resourceCulture); } } /// /// Looks up a localized string similar to 0C08. /// internal static string _53767 { get { return ResourceManager.GetString("53767", resourceCulture); } } /// /// Looks up a localized string similar to 0C09. /// internal static string _53769 { get { return ResourceManager.GetString("53769", resourceCulture); } } /// /// Looks up a localized string similar to 0C0A. /// internal static string _53776 { get { return ResourceManager.GetString("53776", resourceCulture); } } /// /// Looks up a localized string similar to 0C0B. /// internal static string _53804 { get { return ResourceManager.GetString("53804", resourceCulture); } } /// /// Looks up a localized string similar to 0C0C. /// internal static string _53805 { get { return ResourceManager.GetString("53805", resourceCulture); } } /// /// Looks up a localized string similar to 0C0D. /// internal static string _53808 { get { return ResourceManager.GetString("53808", resourceCulture); } } /// /// Looks up a localized string similar to 0C0E. /// internal static string _53812 { get { return ResourceManager.GetString("53812", resourceCulture); } } /// /// Looks up a localized string similar to 0C0F. /// internal static string _53820 { get { return ResourceManager.GetString("53820", resourceCulture); } } /// /// Looks up a localized string similar to 0C10. /// internal static string _53821 { get { return ResourceManager.GetString("53821", resourceCulture); } } /// /// Looks up a localized string similar to 0C11. /// internal static string _53823 { get { return ResourceManager.GetString("53823", resourceCulture); } } /// /// Looks up a localized string similar to 0C12. /// internal static string _53825 { get { return ResourceManager.GetString("53825", resourceCulture); } } /// /// Looks up a localized string similar to 0C13. /// internal static string _53832 { get { return ResourceManager.GetString("53832", resourceCulture); } } /// /// Looks up a localized string similar to 0C14. /// internal static string _53852 { get { return ResourceManager.GetString("53852", resourceCulture); } } /// /// Looks up a localized string similar to 0C15. /// internal static string _53860 { get { return ResourceManager.GetString("53860", resourceCulture); } } /// /// Looks up a localized string similar to 0C16. /// internal static string _53888 { get { return ResourceManager.GetString("53888", resourceCulture); } } /// /// Looks up a localized string similar to 0C17. /// internal static string _53889 { get { return ResourceManager.GetString("53889", resourceCulture); } } /// /// Looks up a localized string similar to 0C18. /// internal static string _53892 { get { return ResourceManager.GetString("53892", resourceCulture); } } /// /// Looks up a localized string similar to 0C19. /// internal static string _53896 { get { return ResourceManager.GetString("53896", resourceCulture); } } /// /// Looks up a localized string similar to 0C1A. /// internal static string _53904 { get { return ResourceManager.GetString("53904", resourceCulture); } } /// /// Looks up a localized string similar to 0C1B. /// internal static string _53905 { get { return ResourceManager.GetString("53905", resourceCulture); } } /// /// Looks up a localized string similar to 0C1C. /// internal static string _53909 { get { return ResourceManager.GetString("53909", resourceCulture); } } /// /// Looks up a localized string similar to 0C1D. /// internal static string _53916 { get { return ResourceManager.GetString("53916", resourceCulture); } } /// /// Looks up a localized string similar to 0C1E. /// internal static string _53920 { get { return ResourceManager.GetString("53920", resourceCulture); } } /// /// Looks up a localized string similar to 0C1F. /// internal static string _53924 { get { return ResourceManager.GetString("53924", resourceCulture); } } /// /// Looks up a localized string similar to 0C20. /// internal static string _53932 { get { return ResourceManager.GetString("53932", resourceCulture); } } /// /// Looks up a localized string similar to 0C21. /// internal static string _53937 { get { return ResourceManager.GetString("53937", resourceCulture); } } /// /// Looks up a localized string similar to 0C22. /// internal static string _53944 { get { return ResourceManager.GetString("53944", resourceCulture); } } /// /// Looks up a localized string similar to 0C23. /// internal static string _53945 { get { return ResourceManager.GetString("53945", resourceCulture); } } /// /// Looks up a localized string similar to 0C24. /// internal static string _53948 { get { return ResourceManager.GetString("53948", resourceCulture); } } /// /// Looks up a localized string similar to 0C25. /// internal static string _53951 { get { return ResourceManager.GetString("53951", resourceCulture); } } /// /// Looks up a localized string similar to 0C26. /// internal static string _53952 { get { return ResourceManager.GetString("53952", resourceCulture); } } /// /// Looks up a localized string similar to 0C27. /// internal static string _53954 { get { return ResourceManager.GetString("53954", resourceCulture); } } /// /// Looks up a localized string similar to 0C28. /// internal static string _53960 { get { return ResourceManager.GetString("53960", resourceCulture); } } /// /// Looks up a localized string similar to 0C29. /// internal static string _53961 { get { return ResourceManager.GetString("53961", resourceCulture); } } /// /// Looks up a localized string similar to 0C2A. /// internal static string _53963 { get { return ResourceManager.GetString("53963", resourceCulture); } } /// /// Looks up a localized string similar to 0C2B. /// internal static string _53972 { get { return ResourceManager.GetString("53972", resourceCulture); } } /// /// Looks up a localized string similar to 0C2C. /// internal static string _53976 { get { return ResourceManager.GetString("53976", resourceCulture); } } /// /// Looks up a localized string similar to 0C2D. /// internal static string _53980 { get { return ResourceManager.GetString("53980", resourceCulture); } } /// /// Looks up a localized string similar to 0C2E. /// internal static string _53988 { get { return ResourceManager.GetString("53988", resourceCulture); } } /// /// Looks up a localized string similar to 0C2F. /// internal static string _53989 { get { return ResourceManager.GetString("53989", resourceCulture); } } /// /// Looks up a localized string similar to 0127. /// internal static string _54 { get { return ResourceManager.GetString("54", resourceCulture); } } /// /// Looks up a localized string similar to 0C30. /// internal static string _54000 { get { return ResourceManager.GetString("54000", resourceCulture); } } /// /// Looks up a localized string similar to 0C31. /// internal static string _54001 { get { return ResourceManager.GetString("54001", resourceCulture); } } /// /// Looks up a localized string similar to 0C32. /// internal static string _54004 { get { return ResourceManager.GetString("54004", resourceCulture); } } /// /// Looks up a localized string similar to 0C33. /// internal static string _54008 { get { return ResourceManager.GetString("54008", resourceCulture); } } /// /// Looks up a localized string similar to 0C34. /// internal static string _54016 { get { return ResourceManager.GetString("54016", resourceCulture); } } /// /// Looks up a localized string similar to 0C35. /// internal static string _54017 { get { return ResourceManager.GetString("54017", resourceCulture); } } /// /// Looks up a localized string similar to 0C36. /// internal static string _54019 { get { return ResourceManager.GetString("54019", resourceCulture); } } /// /// Looks up a localized string similar to 0C37. /// internal static string _54021 { get { return ResourceManager.GetString("54021", resourceCulture); } } /// /// Looks up a localized string similar to 0C38. /// internal static string _54028 { get { return ResourceManager.GetString("54028", resourceCulture); } } /// /// Looks up a localized string similar to 0C39. /// internal static string _54029 { get { return ResourceManager.GetString("54029", resourceCulture); } } /// /// Looks up a localized string similar to 0C3A. /// internal static string _54030 { get { return ResourceManager.GetString("54030", resourceCulture); } } /// /// Looks up a localized string similar to 0C3B. /// internal static string _54032 { get { return ResourceManager.GetString("54032", resourceCulture); } } /// /// Looks up a localized string similar to 0C3C. /// internal static string _54036 { get { return ResourceManager.GetString("54036", resourceCulture); } } /// /// Looks up a localized string similar to 0C3D. /// internal static string _54038 { get { return ResourceManager.GetString("54038", resourceCulture); } } /// /// Looks up a localized string similar to 0C3E. /// internal static string _54044 { get { return ResourceManager.GetString("54044", resourceCulture); } } /// /// Looks up a localized string similar to 0C3F. /// internal static string _54045 { get { return ResourceManager.GetString("54045", resourceCulture); } } /// /// Looks up a localized string similar to 0C40. /// internal static string _54047 { get { return ResourceManager.GetString("54047", resourceCulture); } } /// /// Looks up a localized string similar to 0C41. /// internal static string _54048 { get { return ResourceManager.GetString("54048", resourceCulture); } } /// /// Looks up a localized string similar to 0C42. /// internal static string _54049 { get { return ResourceManager.GetString("54049", resourceCulture); } } /// /// Looks up a localized string similar to 0C43. /// internal static string _54053 { get { return ResourceManager.GetString("54053", resourceCulture); } } /// /// Looks up a localized string similar to 0C44. /// internal static string _54056 { get { return ResourceManager.GetString("54056", resourceCulture); } } /// /// Looks up a localized string similar to 0C45. /// internal static string _54057 { get { return ResourceManager.GetString("54057", resourceCulture); } } /// /// Looks up a localized string similar to 0C46. /// internal static string _54060 { get { return ResourceManager.GetString("54060", resourceCulture); } } /// /// Looks up a localized string similar to 0C47. /// internal static string _54064 { get { return ResourceManager.GetString("54064", resourceCulture); } } /// /// Looks up a localized string similar to 0C48. /// internal static string _54072 { get { return ResourceManager.GetString("54072", resourceCulture); } } /// /// Looks up a localized string similar to 0C49. /// internal static string _54073 { get { return ResourceManager.GetString("54073", resourceCulture); } } /// /// Looks up a localized string similar to 0C4A. /// internal static string _54075 { get { return ResourceManager.GetString("54075", resourceCulture); } } /// /// Looks up a localized string similar to 0C4B. /// internal static string _54076 { get { return ResourceManager.GetString("54076", resourceCulture); } } /// /// Looks up a localized string similar to 0C4C. /// internal static string _54077 { get { return ResourceManager.GetString("54077", resourceCulture); } } /// /// Looks up a localized string similar to 0C4D. /// internal static string _54084 { get { return ResourceManager.GetString("54084", resourceCulture); } } /// /// Looks up a localized string similar to 0C4E. /// internal static string _54085 { get { return ResourceManager.GetString("54085", resourceCulture); } } /// /// Looks up a localized string similar to 0C4F. /// internal static string _54140 { get { return ResourceManager.GetString("54140", resourceCulture); } } /// /// Looks up a localized string similar to 0C50. /// internal static string _54141 { get { return ResourceManager.GetString("54141", resourceCulture); } } /// /// Looks up a localized string similar to 0C51. /// internal static string _54144 { get { return ResourceManager.GetString("54144", resourceCulture); } } /// /// Looks up a localized string similar to 0C52. /// internal static string _54148 { get { return ResourceManager.GetString("54148", resourceCulture); } } /// /// Looks up a localized string similar to 0C53. /// internal static string _54156 { get { return ResourceManager.GetString("54156", resourceCulture); } } /// /// Looks up a localized string similar to 0C54. /// internal static string _54157 { get { return ResourceManager.GetString("54157", resourceCulture); } } /// /// Looks up a localized string similar to 0C55. /// internal static string _54159 { get { return ResourceManager.GetString("54159", resourceCulture); } } /// /// Looks up a localized string similar to 0C56. /// internal static string _54160 { get { return ResourceManager.GetString("54160", resourceCulture); } } /// /// Looks up a localized string similar to 0C57. /// internal static string _54161 { get { return ResourceManager.GetString("54161", resourceCulture); } } /// /// Looks up a localized string similar to 0C58. /// internal static string _54168 { get { return ResourceManager.GetString("54168", resourceCulture); } } /// /// Looks up a localized string similar to 0C59. /// internal static string _54169 { get { return ResourceManager.GetString("54169", resourceCulture); } } /// /// Looks up a localized string similar to 0C5A. /// internal static string _54172 { get { return ResourceManager.GetString("54172", resourceCulture); } } /// /// Looks up a localized string similar to 0C5B. /// internal static string _54176 { get { return ResourceManager.GetString("54176", resourceCulture); } } /// /// Looks up a localized string similar to 0C5C. /// internal static string _54184 { get { return ResourceManager.GetString("54184", resourceCulture); } } /// /// Looks up a localized string similar to 0C5D. /// internal static string _54185 { get { return ResourceManager.GetString("54185", resourceCulture); } } /// /// Looks up a localized string similar to 0C5E. /// internal static string _54187 { get { return ResourceManager.GetString("54187", resourceCulture); } } /// /// Looks up a localized string similar to 0C5F. /// internal static string _54189 { get { return ResourceManager.GetString("54189", resourceCulture); } } /// /// Looks up a localized string similar to 0C60. /// internal static string _54196 { get { return ResourceManager.GetString("54196", resourceCulture); } } /// /// Looks up a localized string similar to 0C61. /// internal static string _54200 { get { return ResourceManager.GetString("54200", resourceCulture); } } /// /// Looks up a localized string similar to 0C62. /// internal static string _54204 { get { return ResourceManager.GetString("54204", resourceCulture); } } /// /// Looks up a localized string similar to 0C63. /// internal static string _54212 { get { return ResourceManager.GetString("54212", resourceCulture); } } /// /// Looks up a localized string similar to 0C64. /// internal static string _54213 { get { return ResourceManager.GetString("54213", resourceCulture); } } /// /// Looks up a localized string similar to 0C65. /// internal static string _54216 { get { return ResourceManager.GetString("54216", resourceCulture); } } /// /// Looks up a localized string similar to 0C66. /// internal static string _54217 { get { return ResourceManager.GetString("54217", resourceCulture); } } /// /// Looks up a localized string similar to 0C67. /// internal static string _54224 { get { return ResourceManager.GetString("54224", resourceCulture); } } /// /// Looks up a localized string similar to 0C68. /// internal static string _54232 { get { return ResourceManager.GetString("54232", resourceCulture); } } /// /// Looks up a localized string similar to 0C69. /// internal static string _54241 { get { return ResourceManager.GetString("54241", resourceCulture); } } /// /// Looks up a localized string similar to 0C6A. /// internal static string _54243 { get { return ResourceManager.GetString("54243", resourceCulture); } } /// /// Looks up a localized string similar to 0C6B. /// internal static string _54252 { get { return ResourceManager.GetString("54252", resourceCulture); } } /// /// Looks up a localized string similar to 0C6C. /// internal static string _54253 { get { return ResourceManager.GetString("54253", resourceCulture); } } /// /// Looks up a localized string similar to 0C6D. /// internal static string _54256 { get { return ResourceManager.GetString("54256", resourceCulture); } } /// /// Looks up a localized string similar to 0C6E. /// internal static string _54260 { get { return ResourceManager.GetString("54260", resourceCulture); } } /// /// Looks up a localized string similar to 0C6F. /// internal static string _54268 { get { return ResourceManager.GetString("54268", resourceCulture); } } /// /// Looks up a localized string similar to 0C70. /// internal static string _54269 { get { return ResourceManager.GetString("54269", resourceCulture); } } /// /// Looks up a localized string similar to 0C71. /// internal static string _54271 { get { return ResourceManager.GetString("54271", resourceCulture); } } /// /// Looks up a localized string similar to 0C72. /// internal static string _54273 { get { return ResourceManager.GetString("54273", resourceCulture); } } /// /// Looks up a localized string similar to 0C73. /// internal static string _54280 { get { return ResourceManager.GetString("54280", resourceCulture); } } /// /// Looks up a localized string similar to 0C74. /// internal static string _54301 { get { return ResourceManager.GetString("54301", resourceCulture); } } /// /// Looks up a localized string similar to 0C75. /// internal static string _54336 { get { return ResourceManager.GetString("54336", resourceCulture); } } /// /// Looks up a localized string similar to 0C76. /// internal static string _54340 { get { return ResourceManager.GetString("54340", resourceCulture); } } /// /// Looks up a localized string similar to 0C77. /// internal static string _54364 { get { return ResourceManager.GetString("54364", resourceCulture); } } /// /// Looks up a localized string similar to 0C78. /// internal static string _54368 { get { return ResourceManager.GetString("54368", resourceCulture); } } /// /// Looks up a localized string similar to 0C79. /// internal static string _54372 { get { return ResourceManager.GetString("54372", resourceCulture); } } /// /// Looks up a localized string similar to 0C7A. /// internal static string _54381 { get { return ResourceManager.GetString("54381", resourceCulture); } } /// /// Looks up a localized string similar to 0C7B. /// internal static string _54383 { get { return ResourceManager.GetString("54383", resourceCulture); } } /// /// Looks up a localized string similar to 0C7C. /// internal static string _54392 { get { return ResourceManager.GetString("54392", resourceCulture); } } /// /// Looks up a localized string similar to 0C7D. /// internal static string _54393 { get { return ResourceManager.GetString("54393", resourceCulture); } } /// /// Looks up a localized string similar to 0C7E. /// internal static string _54396 { get { return ResourceManager.GetString("54396", resourceCulture); } } /// /// Looks up a localized string similar to 0C7F. /// internal static string _54399 { get { return ResourceManager.GetString("54399", resourceCulture); } } /// /// Looks up a localized string similar to 0C80. /// internal static string _54400 { get { return ResourceManager.GetString("54400", resourceCulture); } } /// /// Looks up a localized string similar to 0C81. /// internal static string _54402 { get { return ResourceManager.GetString("54402", resourceCulture); } } /// /// Looks up a localized string similar to 0C82. /// internal static string _54408 { get { return ResourceManager.GetString("54408", resourceCulture); } } /// /// Looks up a localized string similar to 0C83. /// internal static string _54409 { get { return ResourceManager.GetString("54409", resourceCulture); } } /// /// Looks up a localized string similar to 0C84. /// internal static string _54411 { get { return ResourceManager.GetString("54411", resourceCulture); } } /// /// Looks up a localized string similar to 0C85. /// internal static string _54413 { get { return ResourceManager.GetString("54413", resourceCulture); } } /// /// Looks up a localized string similar to 0C86. /// internal static string _54420 { get { return ResourceManager.GetString("54420", resourceCulture); } } /// /// Looks up a localized string similar to 0C87. /// internal static string _54441 { get { return ResourceManager.GetString("54441", resourceCulture); } } /// /// Looks up a localized string similar to 0C88. /// internal static string _54476 { get { return ResourceManager.GetString("54476", resourceCulture); } } /// /// Looks up a localized string similar to 0C89. /// internal static string _54480 { get { return ResourceManager.GetString("54480", resourceCulture); } } /// /// Looks up a localized string similar to 0C8A. /// internal static string _54484 { get { return ResourceManager.GetString("54484", resourceCulture); } } /// /// Looks up a localized string similar to 0C8B. /// internal static string _54492 { get { return ResourceManager.GetString("54492", resourceCulture); } } /// /// Looks up a localized string similar to 0C8C. /// internal static string _54495 { get { return ResourceManager.GetString("54495", resourceCulture); } } /// /// Looks up a localized string similar to 0C8D. /// internal static string _54504 { get { return ResourceManager.GetString("54504", resourceCulture); } } /// /// Looks up a localized string similar to 0C8E. /// internal static string _54508 { get { return ResourceManager.GetString("54508", resourceCulture); } } /// /// Looks up a localized string similar to 0C8F. /// internal static string _54512 { get { return ResourceManager.GetString("54512", resourceCulture); } } /// /// Looks up a localized string similar to 0C90. /// internal static string _54520 { get { return ResourceManager.GetString("54520", resourceCulture); } } /// /// Looks up a localized string similar to 0C91. /// internal static string _54523 { get { return ResourceManager.GetString("54523", resourceCulture); } } /// /// Looks up a localized string similar to 0C92. /// internal static string _54525 { get { return ResourceManager.GetString("54525", resourceCulture); } } /// /// Looks up a localized string similar to 0C93. /// internal static string _54532 { get { return ResourceManager.GetString("54532", resourceCulture); } } /// /// Looks up a localized string similar to 0C94. /// internal static string _54536 { get { return ResourceManager.GetString("54536", resourceCulture); } } /// /// Looks up a localized string similar to 0C95. /// internal static string _54540 { get { return ResourceManager.GetString("54540", resourceCulture); } } /// /// Looks up a localized string similar to 0C96. /// internal static string _54548 { get { return ResourceManager.GetString("54548", resourceCulture); } } /// /// Looks up a localized string similar to 0C97. /// internal static string _54549 { get { return ResourceManager.GetString("54549", resourceCulture); } } /// /// Looks up a localized string similar to 0C98. /// internal static string _54551 { get { return ResourceManager.GetString("54551", resourceCulture); } } /// /// Looks up a localized string similar to 0C99. /// internal static string _54588 { get { return ResourceManager.GetString("54588", resourceCulture); } } /// /// Looks up a localized string similar to 0C9A. /// internal static string _54589 { get { return ResourceManager.GetString("54589", resourceCulture); } } /// /// Looks up a localized string similar to 0C9B. /// internal static string _54592 { get { return ResourceManager.GetString("54592", resourceCulture); } } /// /// Looks up a localized string similar to 0C9C. /// internal static string _54596 { get { return ResourceManager.GetString("54596", resourceCulture); } } /// /// Looks up a localized string similar to 0C9D. /// internal static string _54604 { get { return ResourceManager.GetString("54604", resourceCulture); } } /// /// Looks up a localized string similar to 0C9E. /// internal static string _54605 { get { return ResourceManager.GetString("54605", resourceCulture); } } /// /// Looks up a localized string similar to 0C9F. /// internal static string _54607 { get { return ResourceManager.GetString("54607", resourceCulture); } } /// /// Looks up a localized string similar to 0CA0. /// internal static string _54609 { get { return ResourceManager.GetString("54609", resourceCulture); } } /// /// Looks up a localized string similar to 0CA1. /// internal static string _54616 { get { return ResourceManager.GetString("54616", resourceCulture); } } /// /// Looks up a localized string similar to 0CA2. /// internal static string _54617 { get { return ResourceManager.GetString("54617", resourceCulture); } } /// /// Looks up a localized string similar to 0CA3. /// internal static string _54620 { get { return ResourceManager.GetString("54620", resourceCulture); } } /// /// Looks up a localized string similar to 0CA4. /// internal static string _54624 { get { return ResourceManager.GetString("54624", resourceCulture); } } /// /// Looks up a localized string similar to 0CA5. /// internal static string _54629 { get { return ResourceManager.GetString("54629", resourceCulture); } } /// /// Looks up a localized string similar to 0CA6. /// internal static string _54632 { get { return ResourceManager.GetString("54632", resourceCulture); } } /// /// Looks up a localized string similar to 0CA7. /// internal static string _54633 { get { return ResourceManager.GetString("54633", resourceCulture); } } /// /// Looks up a localized string similar to 0CA8. /// internal static string _54635 { get { return ResourceManager.GetString("54635", resourceCulture); } } /// /// Looks up a localized string similar to 0CA9. /// internal static string _54637 { get { return ResourceManager.GetString("54637", resourceCulture); } } /// /// Looks up a localized string similar to 0CAA. /// internal static string _54644 { get { return ResourceManager.GetString("54644", resourceCulture); } } /// /// Looks up a localized string similar to 0CAB. /// internal static string _54645 { get { return ResourceManager.GetString("54645", resourceCulture); } } /// /// Looks up a localized string similar to 0CAC. /// internal static string _54648 { get { return ResourceManager.GetString("54648", resourceCulture); } } /// /// Looks up a localized string similar to 0CAD. /// internal static string _54652 { get { return ResourceManager.GetString("54652", resourceCulture); } } /// /// Looks up a localized string similar to 0CAE. /// internal static string _54660 { get { return ResourceManager.GetString("54660", resourceCulture); } } /// /// Looks up a localized string similar to 0CAF. /// internal static string _54661 { get { return ResourceManager.GetString("54661", resourceCulture); } } /// /// Looks up a localized string similar to 0CB0. /// internal static string _54663 { get { return ResourceManager.GetString("54663", resourceCulture); } } /// /// Looks up a localized string similar to 0CB1. /// internal static string _54664 { get { return ResourceManager.GetString("54664", resourceCulture); } } /// /// Looks up a localized string similar to 0CB2. /// internal static string _54665 { get { return ResourceManager.GetString("54665", resourceCulture); } } /// /// Looks up a localized string similar to 0CB3. /// internal static string _54672 { get { return ResourceManager.GetString("54672", resourceCulture); } } /// /// Looks up a localized string similar to 0CB4. /// internal static string _54693 { get { return ResourceManager.GetString("54693", resourceCulture); } } /// /// Looks up a localized string similar to 0CB5. /// internal static string _54728 { get { return ResourceManager.GetString("54728", resourceCulture); } } /// /// Looks up a localized string similar to 0CB6. /// internal static string _54729 { get { return ResourceManager.GetString("54729", resourceCulture); } } /// /// Looks up a localized string similar to 0CB7. /// internal static string _54732 { get { return ResourceManager.GetString("54732", resourceCulture); } } /// /// Looks up a localized string similar to 0CB8. /// internal static string _54736 { get { return ResourceManager.GetString("54736", resourceCulture); } } /// /// Looks up a localized string similar to 0CB9. /// internal static string _54738 { get { return ResourceManager.GetString("54738", resourceCulture); } } /// /// Looks up a localized string similar to 0CBA. /// internal static string _54744 { get { return ResourceManager.GetString("54744", resourceCulture); } } /// /// Looks up a localized string similar to 0CBB. /// internal static string _54745 { get { return ResourceManager.GetString("54745", resourceCulture); } } /// /// Looks up a localized string similar to 0CBC. /// internal static string _54747 { get { return ResourceManager.GetString("54747", resourceCulture); } } /// /// Looks up a localized string similar to 0CBD. /// internal static string _54749 { get { return ResourceManager.GetString("54749", resourceCulture); } } /// /// Looks up a localized string similar to 0CBE. /// internal static string _54756 { get { return ResourceManager.GetString("54756", resourceCulture); } } /// /// Looks up a localized string similar to 0CBF. /// internal static string _54757 { get { return ResourceManager.GetString("54757", resourceCulture); } } /// /// Looks up a localized string similar to 0CC0. /// internal static string _54760 { get { return ResourceManager.GetString("54760", resourceCulture); } } /// /// Looks up a localized string similar to 0CC1. /// internal static string _54764 { get { return ResourceManager.GetString("54764", resourceCulture); } } /// /// Looks up a localized string similar to 0CC2. /// internal static string _54772 { get { return ResourceManager.GetString("54772", resourceCulture); } } /// /// Looks up a localized string similar to 0CC3. /// internal static string _54773 { get { return ResourceManager.GetString("54773", resourceCulture); } } /// /// Looks up a localized string similar to 0CC4. /// internal static string _54775 { get { return ResourceManager.GetString("54775", resourceCulture); } } /// /// Looks up a localized string similar to 0CC5. /// internal static string _54777 { get { return ResourceManager.GetString("54777", resourceCulture); } } /// /// Looks up a localized string similar to 0CC6. /// internal static string _54784 { get { return ResourceManager.GetString("54784", resourceCulture); } } /// /// Looks up a localized string similar to 0CC7. /// internal static string _54785 { get { return ResourceManager.GetString("54785", resourceCulture); } } /// /// Looks up a localized string similar to 0CC8. /// internal static string _54788 { get { return ResourceManager.GetString("54788", resourceCulture); } } /// /// Looks up a localized string similar to 0CC9. /// internal static string _54792 { get { return ResourceManager.GetString("54792", resourceCulture); } } /// /// Looks up a localized string similar to 0CCA. /// internal static string _54800 { get { return ResourceManager.GetString("54800", resourceCulture); } } /// /// Looks up a localized string similar to 0CCB. /// internal static string _54801 { get { return ResourceManager.GetString("54801", resourceCulture); } } /// /// Looks up a localized string similar to 0CCC. /// internal static string _54803 { get { return ResourceManager.GetString("54803", resourceCulture); } } /// /// Looks up a localized string similar to 0CCD. /// internal static string _54804 { get { return ResourceManager.GetString("54804", resourceCulture); } } /// /// Looks up a localized string similar to 0CCE. /// internal static string _54805 { get { return ResourceManager.GetString("54805", resourceCulture); } } /// /// Looks up a localized string similar to 0CCF. /// internal static string _54812 { get { return ResourceManager.GetString("54812", resourceCulture); } } /// /// Looks up a localized string similar to 0CD0. /// internal static string _54816 { get { return ResourceManager.GetString("54816", resourceCulture); } } /// /// Looks up a localized string similar to 0CD1. /// internal static string _54820 { get { return ResourceManager.GetString("54820", resourceCulture); } } /// /// Looks up a localized string similar to 0CD2. /// internal static string _54829 { get { return ResourceManager.GetString("54829", resourceCulture); } } /// /// Looks up a localized string similar to 0CD3. /// internal static string _54840 { get { return ResourceManager.GetString("54840", resourceCulture); } } /// /// Looks up a localized string similar to 0CD4. /// internal static string _54841 { get { return ResourceManager.GetString("54841", resourceCulture); } } /// /// Looks up a localized string similar to 0CD5. /// internal static string _54844 { get { return ResourceManager.GetString("54844", resourceCulture); } } /// /// Looks up a localized string similar to 0CD6. /// internal static string _54848 { get { return ResourceManager.GetString("54848", resourceCulture); } } /// /// Looks up a localized string similar to 0CD7. /// internal static string _54853 { get { return ResourceManager.GetString("54853", resourceCulture); } } /// /// Looks up a localized string similar to 0CD8. /// internal static string _54856 { get { return ResourceManager.GetString("54856", resourceCulture); } } /// /// Looks up a localized string similar to 0CD9. /// internal static string _54857 { get { return ResourceManager.GetString("54857", resourceCulture); } } /// /// Looks up a localized string similar to 0CDA. /// internal static string _54859 { get { return ResourceManager.GetString("54859", resourceCulture); } } /// /// Looks up a localized string similar to 0CDB. /// internal static string _54861 { get { return ResourceManager.GetString("54861", resourceCulture); } } /// /// Looks up a localized string similar to 0CDC. /// internal static string _54865 { get { return ResourceManager.GetString("54865", resourceCulture); } } /// /// Looks up a localized string similar to 0CDD. /// internal static string _54868 { get { return ResourceManager.GetString("54868", resourceCulture); } } /// /// Looks up a localized string similar to 0CDE. /// internal static string _54869 { get { return ResourceManager.GetString("54869", resourceCulture); } } /// /// Looks up a localized string similar to 0CDF. /// internal static string _54872 { get { return ResourceManager.GetString("54872", resourceCulture); } } /// /// Looks up a localized string similar to 0CE0. /// internal static string _54876 { get { return ResourceManager.GetString("54876", resourceCulture); } } /// /// Looks up a localized string similar to 0CE1. /// internal static string _54887 { get { return ResourceManager.GetString("54887", resourceCulture); } } /// /// Looks up a localized string similar to 0CE2. /// internal static string _54889 { get { return ResourceManager.GetString("54889", resourceCulture); } } /// /// Looks up a localized string similar to 0CE3. /// internal static string _54896 { get { return ResourceManager.GetString("54896", resourceCulture); } } /// /// Looks up a localized string similar to 0CE4. /// internal static string _54897 { get { return ResourceManager.GetString("54897", resourceCulture); } } /// /// Looks up a localized string similar to 0CE5. /// internal static string _54900 { get { return ResourceManager.GetString("54900", resourceCulture); } } /// /// Looks up a localized string similar to 0CE6. /// internal static string _54915 { get { return ResourceManager.GetString("54915", resourceCulture); } } /// /// Looks up a localized string similar to 0CE7. /// internal static string _54917 { get { return ResourceManager.GetString("54917", resourceCulture); } } /// /// Looks up a localized string similar to 0CE8. /// internal static string _54924 { get { return ResourceManager.GetString("54924", resourceCulture); } } /// /// Looks up a localized string similar to 0CE9. /// internal static string _54925 { get { return ResourceManager.GetString("54925", resourceCulture); } } /// /// Looks up a localized string similar to 0CEA. /// internal static string _54928 { get { return ResourceManager.GetString("54928", resourceCulture); } } /// /// Looks up a localized string similar to 0CEB. /// internal static string _54932 { get { return ResourceManager.GetString("54932", resourceCulture); } } /// /// Looks up a localized string similar to 0CEC. /// internal static string _54941 { get { return ResourceManager.GetString("54941", resourceCulture); } } /// /// Looks up a localized string similar to 0CED. /// internal static string _54943 { get { return ResourceManager.GetString("54943", resourceCulture); } } /// /// Looks up a localized string similar to 0CEE. /// internal static string _54945 { get { return ResourceManager.GetString("54945", resourceCulture); } } /// /// Looks up a localized string similar to 0CEF. /// internal static string _54952 { get { return ResourceManager.GetString("54952", resourceCulture); } } /// /// Looks up a localized string similar to 0CF0. /// internal static string _54956 { get { return ResourceManager.GetString("54956", resourceCulture); } } /// /// Looks up a localized string similar to 0CF1. /// internal static string _54960 { get { return ResourceManager.GetString("54960", resourceCulture); } } /// /// Looks up a localized string similar to 0CF2. /// internal static string _54969 { get { return ResourceManager.GetString("54969", resourceCulture); } } /// /// Looks up a localized string similar to 0CF3. /// internal static string _54971 { get { return ResourceManager.GetString("54971", resourceCulture); } } /// /// Looks up a localized string similar to 0CF4. /// internal static string _54980 { get { return ResourceManager.GetString("54980", resourceCulture); } } /// /// Looks up a localized string similar to 0CF5. /// internal static string _54981 { get { return ResourceManager.GetString("54981", resourceCulture); } } /// /// Looks up a localized string similar to 0CF6. /// internal static string _54984 { get { return ResourceManager.GetString("54984", resourceCulture); } } /// /// Looks up a localized string similar to 0CF7. /// internal static string _54988 { get { return ResourceManager.GetString("54988", resourceCulture); } } /// /// Looks up a localized string similar to 0CF8. /// internal static string _54993 { get { return ResourceManager.GetString("54993", resourceCulture); } } /// /// Looks up a localized string similar to 0CF9. /// internal static string _54996 { get { return ResourceManager.GetString("54996", resourceCulture); } } /// /// Looks up a localized string similar to 0CFA. /// internal static string _54999 { get { return ResourceManager.GetString("54999", resourceCulture); } } /// /// Looks up a localized string similar to 0128. /// internal static string _55 { get { return ResourceManager.GetString("55", resourceCulture); } } /// /// Looks up a localized string similar to 0CFB. /// internal static string _55001 { get { return ResourceManager.GetString("55001", resourceCulture); } } /// /// Looks up a localized string similar to 0CFC. /// internal static string _55008 { get { return ResourceManager.GetString("55008", resourceCulture); } } /// /// Looks up a localized string similar to 0CFD. /// internal static string _55012 { get { return ResourceManager.GetString("55012", resourceCulture); } } /// /// Looks up a localized string similar to 0CFE. /// internal static string _55016 { get { return ResourceManager.GetString("55016", resourceCulture); } } /// /// Looks up a localized string similar to 0CFF. /// internal static string _55024 { get { return ResourceManager.GetString("55024", resourceCulture); } } /// /// Looks up a localized string similar to 0D00. /// internal static string _55029 { get { return ResourceManager.GetString("55029", resourceCulture); } } /// /// Looks up a localized string similar to 0D01. /// internal static string _55036 { get { return ResourceManager.GetString("55036", resourceCulture); } } /// /// Looks up a localized string similar to 0D02. /// internal static string _55037 { get { return ResourceManager.GetString("55037", resourceCulture); } } /// /// Looks up a localized string similar to 0D03. /// internal static string _55040 { get { return ResourceManager.GetString("55040", resourceCulture); } } /// /// Looks up a localized string similar to 0D04. /// internal static string _55044 { get { return ResourceManager.GetString("55044", resourceCulture); } } /// /// Looks up a localized string similar to 0D05. /// internal static string _55057 { get { return ResourceManager.GetString("55057", resourceCulture); } } /// /// Looks up a localized string similar to 0D06. /// internal static string _55064 { get { return ResourceManager.GetString("55064", resourceCulture); } } /// /// Looks up a localized string similar to 0D07. /// internal static string _55065 { get { return ResourceManager.GetString("55065", resourceCulture); } } /// /// Looks up a localized string similar to 0D08. /// internal static string _55068 { get { return ResourceManager.GetString("55068", resourceCulture); } } /// /// Looks up a localized string similar to 0D09. /// internal static string _55072 { get { return ResourceManager.GetString("55072", resourceCulture); } } /// /// Looks up a localized string similar to 0D0A. /// internal static string _55080 { get { return ResourceManager.GetString("55080", resourceCulture); } } /// /// Looks up a localized string similar to 0D0B. /// internal static string _55081 { get { return ResourceManager.GetString("55081", resourceCulture); } } /// /// Looks up a localized string similar to 0D0C. /// internal static string _55083 { get { return ResourceManager.GetString("55083", resourceCulture); } } /// /// Looks up a localized string similar to 0D0D. /// internal static string _55085 { get { return ResourceManager.GetString("55085", resourceCulture); } } /// /// Looks up a localized string similar to 0D0E. /// internal static string _55092 { get { return ResourceManager.GetString("55092", resourceCulture); } } /// /// Looks up a localized string similar to 0D0F. /// internal static string _55093 { get { return ResourceManager.GetString("55093", resourceCulture); } } /// /// Looks up a localized string similar to 0D10. /// internal static string _55096 { get { return ResourceManager.GetString("55096", resourceCulture); } } /// /// Looks up a localized string similar to 0D11. /// internal static string _55100 { get { return ResourceManager.GetString("55100", resourceCulture); } } /// /// Looks up a localized string similar to 0D12. /// internal static string _55108 { get { return ResourceManager.GetString("55108", resourceCulture); } } /// /// Looks up a localized string similar to 0D13. /// internal static string _55111 { get { return ResourceManager.GetString("55111", resourceCulture); } } /// /// Looks up a localized string similar to 0D14. /// internal static string _55113 { get { return ResourceManager.GetString("55113", resourceCulture); } } /// /// Looks up a localized string similar to 0D15. /// internal static string _55120 { get { return ResourceManager.GetString("55120", resourceCulture); } } /// /// Looks up a localized string similar to 0D16. /// internal static string _55121 { get { return ResourceManager.GetString("55121", resourceCulture); } } /// /// Looks up a localized string similar to 0D17. /// internal static string _55124 { get { return ResourceManager.GetString("55124", resourceCulture); } } /// /// Looks up a localized string similar to 0D18. /// internal static string _55126 { get { return ResourceManager.GetString("55126", resourceCulture); } } /// /// Looks up a localized string similar to 0D19. /// internal static string _55127 { get { return ResourceManager.GetString("55127", resourceCulture); } } /// /// Looks up a localized string similar to 0D1A. /// internal static string _55128 { get { return ResourceManager.GetString("55128", resourceCulture); } } /// /// Looks up a localized string similar to 0D1B. /// internal static string _55129 { get { return ResourceManager.GetString("55129", resourceCulture); } } /// /// Looks up a localized string similar to 0D1C. /// internal static string _55136 { get { return ResourceManager.GetString("55136", resourceCulture); } } /// /// Looks up a localized string similar to 0D1D. /// internal static string _55137 { get { return ResourceManager.GetString("55137", resourceCulture); } } /// /// Looks up a localized string similar to 0D1E. /// internal static string _55139 { get { return ResourceManager.GetString("55139", resourceCulture); } } /// /// Looks up a localized string similar to 0D1F. /// internal static string _55141 { get { return ResourceManager.GetString("55141", resourceCulture); } } /// /// Looks up a localized string similar to 0D20. /// internal static string _55145 { get { return ResourceManager.GetString("55145", resourceCulture); } } /// /// Looks up a localized string similar to 0D21. /// internal static string _55148 { get { return ResourceManager.GetString("55148", resourceCulture); } } /// /// Looks up a localized string similar to 0D22. /// internal static string _55152 { get { return ResourceManager.GetString("55152", resourceCulture); } } /// /// Looks up a localized string similar to 0D23. /// internal static string _55156 { get { return ResourceManager.GetString("55156", resourceCulture); } } /// /// Looks up a localized string similar to 0D24. /// internal static string _55164 { get { return ResourceManager.GetString("55164", resourceCulture); } } /// /// Looks up a localized string similar to 0D25. /// internal static string _55165 { get { return ResourceManager.GetString("55165", resourceCulture); } } /// /// Looks up a localized string similar to 0D26. /// internal static string _55169 { get { return ResourceManager.GetString("55169", resourceCulture); } } /// /// Looks up a localized string similar to 0D27. /// internal static string _55176 { get { return ResourceManager.GetString("55176", resourceCulture); } } /// /// Looks up a localized string similar to 0D28. /// internal static string _55177 { get { return ResourceManager.GetString("55177", resourceCulture); } } /// /// Looks up a localized string similar to 0D29. /// internal static string _55180 { get { return ResourceManager.GetString("55180", resourceCulture); } } /// /// Looks up a localized string similar to 0D2A. /// internal static string _55184 { get { return ResourceManager.GetString("55184", resourceCulture); } } /// /// Looks up a localized string similar to 0D2B. /// internal static string _55192 { get { return ResourceManager.GetString("55192", resourceCulture); } } /// /// Looks up a localized string similar to 0D2C. /// internal static string _55193 { get { return ResourceManager.GetString("55193", resourceCulture); } } /// /// Looks up a localized string similar to 0D2D. /// internal static string _55195 { get { return ResourceManager.GetString("55195", resourceCulture); } } /// /// Looks up a localized string similar to 0D2E. /// internal static string _55197 { get { return ResourceManager.GetString("55197", resourceCulture); } } /// /// Looks up a localized string similar to 0129. /// internal static string _56 { get { return ResourceManager.GetString("56", resourceCulture); } } /// /// Looks up a localized string similar to 012A. /// internal static string _57 { get { return ResourceManager.GetString("57", resourceCulture); } } /// /// Looks up a localized string similar to 01C4. /// internal static string _58 { get { return ResourceManager.GetString("58", resourceCulture); } } /// /// Looks up a localized string similar to 01C5. /// internal static string _59 { get { return ResourceManager.GetString("59", resourceCulture); } } /// /// Looks up a localized string similar to 01C1. /// internal static string _61 { get { return ResourceManager.GetString("61", resourceCulture); } } /// /// Looks up a localized string similar to 01AC. /// internal static string _63 { get { return ResourceManager.GetString("63", resourceCulture); } } /// /// Looks up a localized string similar to 01D0. /// internal static string _64 { get { return ResourceManager.GetString("64", resourceCulture); } } /// /// Looks up a localized string similar to 012B. /// internal static string _65 { get { return ResourceManager.GetString("65", resourceCulture); } } /// /// Looks up a localized string similar to 00E1. /// internal static string _65281 { get { return ResourceManager.GetString("65281", resourceCulture); } } /// /// Looks up a localized string similar to 0106. /// internal static string _65285 { get { return ResourceManager.GetString("65285", resourceCulture); } } /// /// Looks up a localized string similar to 0120. /// internal static string _65286 { get { return ResourceManager.GetString("65286", resourceCulture); } } /// /// Looks up a localized string similar to 00EC. /// internal static string _65288 { get { return ResourceManager.GetString("65288", resourceCulture); } } /// /// Looks up a localized string similar to 00ED. /// internal static string _65289 { get { return ResourceManager.GetString("65289", resourceCulture); } } /// /// Looks up a localized string similar to 00F0. /// internal static string _65291 { get { return ResourceManager.GetString("65291", resourceCulture); } } /// /// Looks up a localized string similar to 00F9. /// internal static string _65292 { get { return ResourceManager.GetString("65292", resourceCulture); } } /// /// Looks up a localized string similar to 00F1. /// internal static string _65293 { get { return ResourceManager.GetString("65293", resourceCulture); } } /// /// Looks up a localized string similar to 00F8. /// internal static string _65294 { get { return ResourceManager.GetString("65294", resourceCulture); } } /// /// Looks up a localized string similar to 00E7. /// internal static string _65295 { get { return ResourceManager.GetString("65295", resourceCulture); } } /// /// Looks up a localized string similar to 00A2. /// internal static string _65296 { get { return ResourceManager.GetString("65296", resourceCulture); } } /// /// Looks up a localized string similar to 00A3. /// internal static string _65297 { get { return ResourceManager.GetString("65297", resourceCulture); } } /// /// Looks up a localized string similar to 00A4. /// internal static string _65298 { get { return ResourceManager.GetString("65298", resourceCulture); } } /// /// Looks up a localized string similar to 00A5. /// internal static string _65299 { get { return ResourceManager.GetString("65299", resourceCulture); } } /// /// Looks up a localized string similar to 00A6. /// internal static string _65300 { get { return ResourceManager.GetString("65300", resourceCulture); } } /// /// Looks up a localized string similar to 00A7. /// internal static string _65301 { get { return ResourceManager.GetString("65301", resourceCulture); } } /// /// Looks up a localized string similar to 00A8. /// internal static string _65302 { get { return ResourceManager.GetString("65302", resourceCulture); } } /// /// Looks up a localized string similar to 00A9. /// internal static string _65303 { get { return ResourceManager.GetString("65303", resourceCulture); } } /// /// Looks up a localized string similar to 00AA. /// internal static string _65304 { get { return ResourceManager.GetString("65304", resourceCulture); } } /// /// Looks up a localized string similar to 00AB. /// internal static string _65305 { get { return ResourceManager.GetString("65305", resourceCulture); } } /// /// Looks up a localized string similar to 00F6. /// internal static string _65306 { get { return ResourceManager.GetString("65306", resourceCulture); } } /// /// Looks up a localized string similar to 00F7. /// internal static string _65307 { get { return ResourceManager.GetString("65307", resourceCulture); } } /// /// Looks up a localized string similar to 00F4. /// internal static string _65309 { get { return ResourceManager.GetString("65309", resourceCulture); } } /// /// Looks up a localized string similar to 00E2. /// internal static string _65311 { get { return ResourceManager.GetString("65311", resourceCulture); } } /// /// Looks up a localized string similar to 0104. /// internal static string _65312 { get { return ResourceManager.GetString("65312", resourceCulture); } } /// /// Looks up a localized string similar to 00AC. /// internal static string _65313 { get { return ResourceManager.GetString("65313", resourceCulture); } } /// /// Looks up a localized string similar to 00AD. /// internal static string _65314 { get { return ResourceManager.GetString("65314", resourceCulture); } } /// /// Looks up a localized string similar to 00AE. /// internal static string _65315 { get { return ResourceManager.GetString("65315", resourceCulture); } } /// /// Looks up a localized string similar to 00AF. /// internal static string _65316 { get { return ResourceManager.GetString("65316", resourceCulture); } } /// /// Looks up a localized string similar to 00B0. /// internal static string _65317 { get { return ResourceManager.GetString("65317", resourceCulture); } } /// /// Looks up a localized string similar to 00B1. /// internal static string _65318 { get { return ResourceManager.GetString("65318", resourceCulture); } } /// /// Looks up a localized string similar to 00B2. /// internal static string _65319 { get { return ResourceManager.GetString("65319", resourceCulture); } } /// /// Looks up a localized string similar to 00B3. /// internal static string _65320 { get { return ResourceManager.GetString("65320", resourceCulture); } } /// /// Looks up a localized string similar to 00B4. /// internal static string _65321 { get { return ResourceManager.GetString("65321", resourceCulture); } } /// /// Looks up a localized string similar to 00B5. /// internal static string _65322 { get { return ResourceManager.GetString("65322", resourceCulture); } } /// /// Looks up a localized string similar to 00B6. /// internal static string _65323 { get { return ResourceManager.GetString("65323", resourceCulture); } } /// /// Looks up a localized string similar to 00B7. /// internal static string _65324 { get { return ResourceManager.GetString("65324", resourceCulture); } } /// /// Looks up a localized string similar to 00B8. /// internal static string _65325 { get { return ResourceManager.GetString("65325", resourceCulture); } } /// /// Looks up a localized string similar to 00B9. /// internal static string _65326 { get { return ResourceManager.GetString("65326", resourceCulture); } } /// /// Looks up a localized string similar to 00BA. /// internal static string _65327 { get { return ResourceManager.GetString("65327", resourceCulture); } } /// /// Looks up a localized string similar to 00BB. /// internal static string _65328 { get { return ResourceManager.GetString("65328", resourceCulture); } } /// /// Looks up a localized string similar to 00BC. /// internal static string _65329 { get { return ResourceManager.GetString("65329", resourceCulture); } } /// /// Looks up a localized string similar to 00BD. /// internal static string _65330 { get { return ResourceManager.GetString("65330", resourceCulture); } } /// /// Looks up a localized string similar to 00BE. /// internal static string _65331 { get { return ResourceManager.GetString("65331", resourceCulture); } } /// /// Looks up a localized string similar to 00BF. /// internal static string _65332 { get { return ResourceManager.GetString("65332", resourceCulture); } } /// /// Looks up a localized string similar to 00C0. /// internal static string _65333 { get { return ResourceManager.GetString("65333", resourceCulture); } } /// /// Looks up a localized string similar to 00C1. /// internal static string _65334 { get { return ResourceManager.GetString("65334", resourceCulture); } } /// /// Looks up a localized string similar to 00C2. /// internal static string _65335 { get { return ResourceManager.GetString("65335", resourceCulture); } } /// /// Looks up a localized string similar to 00C3. /// internal static string _65336 { get { return ResourceManager.GetString("65336", resourceCulture); } } /// /// Looks up a localized string similar to 00C4. /// internal static string _65337 { get { return ResourceManager.GetString("65337", resourceCulture); } } /// /// Looks up a localized string similar to 00C5. /// internal static string _65338 { get { return ResourceManager.GetString("65338", resourceCulture); } } /// /// Looks up a localized string similar to 01EA. /// internal static string _65343 { get { return ResourceManager.GetString("65343", resourceCulture); } } /// /// Looks up a localized string similar to 00C6. /// internal static string _65345 { get { return ResourceManager.GetString("65345", resourceCulture); } } /// /// Looks up a localized string similar to 00C7. /// internal static string _65346 { get { return ResourceManager.GetString("65346", resourceCulture); } } /// /// Looks up a localized string similar to 00C8. /// internal static string _65347 { get { return ResourceManager.GetString("65347", resourceCulture); } } /// /// Looks up a localized string similar to 00C9. /// internal static string _65348 { get { return ResourceManager.GetString("65348", resourceCulture); } } /// /// Looks up a localized string similar to 00CA. /// internal static string _65349 { get { return ResourceManager.GetString("65349", resourceCulture); } } /// /// Looks up a localized string similar to 00CB. /// internal static string _65350 { get { return ResourceManager.GetString("65350", resourceCulture); } } /// /// Looks up a localized string similar to 00CC. /// internal static string _65351 { get { return ResourceManager.GetString("65351", resourceCulture); } } /// /// Looks up a localized string similar to 00CD. /// internal static string _65352 { get { return ResourceManager.GetString("65352", resourceCulture); } } /// /// Looks up a localized string similar to 00CE. /// internal static string _65353 { get { return ResourceManager.GetString("65353", resourceCulture); } } /// /// Looks up a localized string similar to 00CF. /// internal static string _65354 { get { return ResourceManager.GetString("65354", resourceCulture); } } /// /// Looks up a localized string similar to 00D0. /// internal static string _65355 { get { return ResourceManager.GetString("65355", resourceCulture); } } /// /// Looks up a localized string similar to 00D1. /// internal static string _65356 { get { return ResourceManager.GetString("65356", resourceCulture); } } /// /// Looks up a localized string similar to 00D2. /// internal static string _65357 { get { return ResourceManager.GetString("65357", resourceCulture); } } /// /// Looks up a localized string similar to 00D3. /// internal static string _65358 { get { return ResourceManager.GetString("65358", resourceCulture); } } /// /// Looks up a localized string similar to 00D4. /// internal static string _65359 { get { return ResourceManager.GetString("65359", resourceCulture); } } /// /// Looks up a localized string similar to 00D5. /// internal static string _65360 { get { return ResourceManager.GetString("65360", resourceCulture); } } /// /// Looks up a localized string similar to 00D6. /// internal static string _65361 { get { return ResourceManager.GetString("65361", resourceCulture); } } /// /// Looks up a localized string similar to 00D7. /// internal static string _65362 { get { return ResourceManager.GetString("65362", resourceCulture); } } /// /// Looks up a localized string similar to 00D8. /// internal static string _65363 { get { return ResourceManager.GetString("65363", resourceCulture); } } /// /// Looks up a localized string similar to 00D9. /// internal static string _65364 { get { return ResourceManager.GetString("65364", resourceCulture); } } /// /// Looks up a localized string similar to 00DA. /// internal static string _65365 { get { return ResourceManager.GetString("65365", resourceCulture); } } /// /// Looks up a localized string similar to 00DB. /// internal static string _65366 { get { return ResourceManager.GetString("65366", resourceCulture); } } /// /// Looks up a localized string similar to 00DC. /// internal static string _65367 { get { return ResourceManager.GetString("65367", resourceCulture); } } /// /// Looks up a localized string similar to 00DD. /// internal static string _65368 { get { return ResourceManager.GetString("65368", resourceCulture); } } /// /// Looks up a localized string similar to 00DE. /// internal static string _65369 { get { return ResourceManager.GetString("65369", resourceCulture); } } /// /// Looks up a localized string similar to 00F5. /// internal static string _65370 { get { return ResourceManager.GetString("65370", resourceCulture); } } /// /// Looks up a localized string similar to 012C. /// internal static string _66 { get { return ResourceManager.GetString("66", resourceCulture); } } /// /// Looks up a localized string similar to 012D. /// internal static string _67 { get { return ResourceManager.GetString("67", resourceCulture); } } /// /// Looks up a localized string similar to 012E. /// internal static string _68 { get { return ResourceManager.GetString("68", resourceCulture); } } /// /// Looks up a localized string similar to 012F. /// internal static string _69 { get { return ResourceManager.GetString("69", resourceCulture); } } /// /// Looks up a localized string similar to 0130. /// internal static string _70 { get { return ResourceManager.GetString("70", resourceCulture); } } /// /// Looks up a localized string similar to 0131. /// internal static string _71 { get { return ResourceManager.GetString("71", resourceCulture); } } /// /// Looks up a localized string similar to 0132. /// internal static string _72 { get { return ResourceManager.GetString("72", resourceCulture); } } /// /// Looks up a localized string similar to 0133. /// internal static string _73 { get { return ResourceManager.GetString("73", resourceCulture); } } /// /// Looks up a localized string similar to 0134. /// internal static string _74 { get { return ResourceManager.GetString("74", resourceCulture); } } /// /// Looks up a localized string similar to 0135. /// internal static string _75 { get { return ResourceManager.GetString("75", resourceCulture); } } /// /// Looks up a localized string similar to 0136. /// internal static string _76 { get { return ResourceManager.GetString("76", resourceCulture); } } /// /// Looks up a localized string similar to 0137. /// internal static string _77 { get { return ResourceManager.GetString("77", resourceCulture); } } /// /// Looks up a localized string similar to 0138. /// internal static string _78 { get { return ResourceManager.GetString("78", resourceCulture); } } /// /// Looks up a localized string similar to 0139. /// internal static string _79 { get { return ResourceManager.GetString("79", resourceCulture); } } /// /// Looks up a localized string similar to 013A. /// internal static string _80 { get { return ResourceManager.GetString("80", resourceCulture); } } /// /// Looks up a localized string similar to 013B. /// internal static string _81 { get { return ResourceManager.GetString("81", resourceCulture); } } /// /// Looks up a localized string similar to 013C. /// internal static string _82 { get { return ResourceManager.GetString("82", resourceCulture); } } /// /// Looks up a localized string similar to 01B2. /// internal static string _8216 { get { return ResourceManager.GetString("8216", resourceCulture); } } /// /// Looks up a localized string similar to 01B3. /// internal static string _8217 { get { return ResourceManager.GetString("8217", resourceCulture); } } /// /// Looks up a localized string similar to 01B4. /// internal static string _8220 { get { return ResourceManager.GetString("8220", resourceCulture); } } /// /// Looks up a localized string similar to 01B5. /// internal static string _8221 { get { return ResourceManager.GetString("8221", resourceCulture); } } /// /// Looks up a localized string similar to 01B6. /// internal static string _8222 { get { return ResourceManager.GetString("8222", resourceCulture); } } /// /// Looks up a localized string similar to 011F. /// internal static string _8227 { get { return ResourceManager.GetString("8227", resourceCulture); } } /// /// Looks up a localized string similar to 01AF. /// internal static string _8230 { get { return ResourceManager.GetString("8230", resourceCulture); } } /// /// Looks up a localized string similar to 013D. /// internal static string _83 { get { return ResourceManager.GetString("83", resourceCulture); } } /// /// Looks up a localized string similar to 01DF. /// internal static string _8308 { get { return ResourceManager.GetString("8308", resourceCulture); } } /// /// Looks up a localized string similar to 013E. /// internal static string _84 { get { return ResourceManager.GetString("84", resourceCulture); } } /// /// Looks up a localized string similar to 013F. /// internal static string _85 { get { return ResourceManager.GetString("85", resourceCulture); } } /// /// Looks up a localized string similar to 011B. /// internal static string _8592 { get { return ResourceManager.GetString("8592", resourceCulture); } } /// /// Looks up a localized string similar to 011C. /// internal static string _8593 { get { return ResourceManager.GetString("8593", resourceCulture); } } /// /// Looks up a localized string similar to 011E. /// internal static string _8594 { get { return ResourceManager.GetString("8594", resourceCulture); } } /// /// Looks up a localized string similar to 011D. /// internal static string _8595 { get { return ResourceManager.GetString("8595", resourceCulture); } } /// /// Looks up a localized string similar to 01DB. /// internal static string _8599 { get { return ResourceManager.GetString("8599", resourceCulture); } } /// /// Looks up a localized string similar to 0140. /// internal static string _86 { get { return ResourceManager.GetString("86", resourceCulture); } } /// /// Looks up a localized string similar to 01DC. /// internal static string _8600 { get { return ResourceManager.GetString("8600", resourceCulture); } } /// /// Looks up a localized string similar to 010F. /// internal static string _8663 { get { return ResourceManager.GetString("8663", resourceCulture); } } /// /// Looks up a localized string similar to 0110. /// internal static string _8664 { get { return ResourceManager.GetString("8664", resourceCulture); } } /// /// Looks up a localized string similar to 0141. /// internal static string _87 { get { return ResourceManager.GetString("87", resourceCulture); } } /// /// Looks up a localized string similar to 0142. /// internal static string _88 { get { return ResourceManager.GetString("88", resourceCulture); } } /// /// Looks up a localized string similar to 00F2. /// internal static string _8855 { get { return ResourceManager.GetString("8855", resourceCulture); } } /// /// Looks up a localized string similar to 00F3. /// internal static string _8856 { get { return ResourceManager.GetString("8856", resourceCulture); } } /// /// Looks up a localized string similar to 0143. /// internal static string _89 { get { return ResourceManager.GetString("89", resourceCulture); } } /// /// Looks up a localized string similar to 00E5. /// internal static string _8943 { get { return ResourceManager.GetString("8943", resourceCulture); } } /// /// Looks up a localized string similar to 0144. /// internal static string _90 { get { return ResourceManager.GetString("90", resourceCulture); } } /// /// Looks up a localized string similar to 01E1. /// internal static string _91 { get { return ResourceManager.GetString("91", resourceCulture); } } /// /// Looks up a localized string similar to 01E9. /// internal static string _95 { get { return ResourceManager.GetString("95", resourceCulture); } } /// /// Looks up a localized string similar to 01CD. /// internal static string _9632 { get { return ResourceManager.GetString("9632", resourceCulture); } } /// /// Looks up a localized string similar to 0101. /// internal static string _9633 { get { return ResourceManager.GetString("9633", resourceCulture); } } /// /// Looks up a localized string similar to 01CE. /// internal static string _9650 { get { return ResourceManager.GetString("9650", resourceCulture); } } /// /// Looks up a localized string similar to 0102. /// internal static string _9651 { get { return ResourceManager.GetString("9651", resourceCulture); } } /// /// Looks up a localized string similar to 01CF. /// internal static string _9670 { get { return ResourceManager.GetString("9670", resourceCulture); } } /// /// Looks up a localized string similar to 0103. /// internal static string _9671 { get { return ResourceManager.GetString("9671", resourceCulture); } } /// /// Looks up a localized string similar to 01CB. /// internal static string _9673 { get { return ResourceManager.GetString("9673", resourceCulture); } } /// /// Looks up a localized string similar to 0100. /// internal static string _9675 { get { return ResourceManager.GetString("9675", resourceCulture); } } /// /// Looks up a localized string similar to 00FF. /// internal static string _9678 { get { return ResourceManager.GetString("9678", resourceCulture); } } /// /// Looks up a localized string similar to 01CC. /// internal static string _9679 { get { return ResourceManager.GetString("9679", resourceCulture); } } /// /// Looks up a localized string similar to 0145. /// internal static string _97 { get { return ResourceManager.GetString("97", resourceCulture); } } /// /// Looks up a localized string similar to 01D3. /// internal static string _9728 { get { return ResourceManager.GetString("9728", resourceCulture); } } /// /// Looks up a localized string similar to 01D4. /// internal static string _9729 { get { return ResourceManager.GetString("9729", resourceCulture); } } /// /// Looks up a localized string similar to 01D5. /// internal static string _9730 { get { return ResourceManager.GetString("9730", resourceCulture); } } /// /// Looks up a localized string similar to 01D6. /// internal static string _9731 { get { return ResourceManager.GetString("9731", resourceCulture); } } /// /// Looks up a localized string similar to 01CA. /// internal static string _9733 { get { return ResourceManager.GetString("9733", resourceCulture); } } /// /// Looks up a localized string similar to 00FE. /// internal static string _9734 { get { return ResourceManager.GetString("9734", resourceCulture); } } /// /// Looks up a localized string similar to 010E. /// internal static string _9738 { get { return ResourceManager.GetString("9738", resourceCulture); } } /// /// Looks up a localized string similar to 010B. /// internal static string _9739 { get { return ResourceManager.GetString("9739", resourceCulture); } } /// /// Looks up a localized string similar to 0108. /// internal static string _9748 { get { return ResourceManager.GetString("9748", resourceCulture); } } /// /// Looks up a localized string similar to 0109. /// internal static string _9776 { get { return ResourceManager.GetString("9776", resourceCulture); } } /// /// Looks up a localized string similar to 01DA. /// internal static string _9785 { get { return ResourceManager.GetString("9785", resourceCulture); } } /// /// Looks up a localized string similar to 01D7. /// internal static string _9786 { get { return ResourceManager.GetString("9786", resourceCulture); } } /// /// Looks up a localized string similar to 0107. /// internal static string _9788 { get { return ResourceManager.GetString("9788", resourceCulture); } } /// /// Looks up a localized string similar to 01DD. /// internal static string _9789 { get { return ResourceManager.GetString("9789", resourceCulture); } } /// /// Looks up a localized string similar to 0111. /// internal static string _9790 { get { return ResourceManager.GetString("9790", resourceCulture); } } /// /// Looks up a localized string similar to 01BC. /// internal static string _9792 { get { return ResourceManager.GetString("9792", resourceCulture); } } /// /// Looks up a localized string similar to 01BB. /// internal static string _9794 { get { return ResourceManager.GetString("9794", resourceCulture); } } /// /// Looks up a localized string similar to 0146. /// internal static string _98 { get { return ResourceManager.GetString("98", resourceCulture); } } /// /// Looks up a localized string similar to 0113. /// internal static string _9800 { get { return ResourceManager.GetString("9800", resourceCulture); } } /// /// Looks up a localized string similar to 0114. /// internal static string _9801 { get { return ResourceManager.GetString("9801", resourceCulture); } } /// /// Looks up a localized string similar to 0115. /// internal static string _9802 { get { return ResourceManager.GetString("9802", resourceCulture); } } /// /// Looks up a localized string similar to 0116. /// internal static string _9803 { get { return ResourceManager.GetString("9803", resourceCulture); } } /// /// Looks up a localized string similar to 0117. /// internal static string _9804 { get { return ResourceManager.GetString("9804", resourceCulture); } } /// /// Looks up a localized string similar to 0118. /// internal static string _9805 { get { return ResourceManager.GetString("9805", resourceCulture); } } /// /// Looks up a localized string similar to 0119. /// internal static string _9806 { get { return ResourceManager.GetString("9806", resourceCulture); } } /// /// Looks up a localized string similar to 011A. /// internal static string _9807 { get { return ResourceManager.GetString("9807", resourceCulture); } } /// /// Looks up a localized string similar to 010C. /// internal static string _9812 { get { return ResourceManager.GetString("9812", resourceCulture); } } /// /// Looks up a localized string similar to 010D. /// internal static string _9813 { get { return ResourceManager.GetString("9813", resourceCulture); } } /// /// Looks up a localized string similar to 01D8. /// internal static string _9818 { get { return ResourceManager.GetString("9818", resourceCulture); } } /// /// Looks up a localized string similar to 01D9. /// internal static string _9819 { get { return ResourceManager.GetString("9819", resourceCulture); } } /// /// Looks up a localized string similar to 01C6. /// internal static string _9824 { get { return ResourceManager.GetString("9824", resourceCulture); } } /// /// Looks up a localized string similar to 00FC. /// internal static string _9825 { get { return ResourceManager.GetString("9825", resourceCulture); } } /// /// Looks up a localized string similar to 00FD. /// internal static string _9826 { get { return ResourceManager.GetString("9826", resourceCulture); } } /// /// Looks up a localized string similar to 01C7. /// internal static string _9827 { get { return ResourceManager.GetString("9827", resourceCulture); } } /// /// Looks up a localized string similar to 00FA. /// internal static string _9828 { get { return ResourceManager.GetString("9828", resourceCulture); } } /// /// Looks up a localized string similar to 01C8. /// internal static string _9829 { get { return ResourceManager.GetString("9829", resourceCulture); } } /// /// Looks up a localized string similar to 01C9. /// internal static string _9830 { get { return ResourceManager.GetString("9830", resourceCulture); } } /// /// Looks up a localized string similar to 00FB. /// internal static string _9831 { get { return ResourceManager.GetString("9831", resourceCulture); } } /// /// Looks up a localized string similar to 01D1. /// internal static string _9834 { get { return ResourceManager.GetString("9834", resourceCulture); } } /// /// Looks up a localized string similar to 0105. /// internal static string _9835 { get { return ResourceManager.GetString("9835", resourceCulture); } } /// /// Looks up a localized string similar to 0147. /// internal static string _99 { get { return ResourceManager.GetString("99", resourceCulture); } } } } ================================================ FILE: DS_Map/Resources/writeText.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 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F 00A0 00A1 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00AA 00AB 00AC 00AD 00AE 00AF 00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00BA 00BB 00BC 00BD 00BE 00BF 00C0 00C1 00C2 00C3 00C4 00C5 00C6 00C7 00C8 00C9 00CA 00CB 00CC 00CD 00CE 00CF 00D0 00D1 00D2 00D3 00D4 00D5 00D6 00D7 00D8 00D9 00DA 00DB 00DC 00DD 00DE 00F5 00E1 00E2 00E3 00E4 00E5 00E6 00E7 00E8 00E9 00EA 00EB 00EC 00ED 00EE 00EF 00F0 00F1 00F2 00F3 00F4 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD 00FE 00FF 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109 010A 010B 010C 010D 010E 010F 0110 0111 0112 0113 0114 0115 0116 0117 0118 0119 011A 011B 011C 011D 011E 011F 0120 0121 0122 0123 0124 0125 0126 0127 0128 0129 012A 012B 012C 012D 012E 012F 0130 0131 0132 0133 0134 0135 0136 0137 0138 0139 013A 013B 013C 013D 013E 013F 0140 0141 0142 0143 0144 0145 0146 0147 0148 0149 014A 014B 014C 014D 014E 014F 0150 0151 0152 0153 0154 0155 0156 0157 0158 0159 015A 015B 015C 015D 015E 015F 0160 0161 0162 0163 0164 0165 0166 0167 0168 0169 016A 016B 016C 016D 016E 016F 0170 0171 0172 0173 0174 0175 0176 0177 0178 0179 017A 017B 017C 017D 017E 017F 0180 0181 0182 0183 0184 0185 0186 0187 0188 0189 018A 018B 018C 018D 018E 018F 0190 0191 0192 0193 0194 0195 0196 0197 0198 0199 019A 019B 019C 019D 019E 019F 01A0 01A1 01A2 01A3 01A4 01A5 01A6 01A7 01A8 01A9 01AA 01AB 01AC 01AD 01AE 01AF 01B0 01B1 01B2 01B3 01B4 01B5 01B6 01B7 01B8 01B9 01BA 01BB 01BC 01BD 01BE 01BF 01C0 01C1 01C2 01C3 01C4 01C5 01C6 01C7 01C8 01C9 01CA 01CB 01CC 01CD 01CE 01CF 01D0 01D1 01D2 01D3 01D4 01D5 01D6 01D7 01D8 01D9 01DA 01DB 01DC 01DD 01DE 01DF 01E1 01E8 01E9 01EA 0400 0401 0402 0403 0404 0405 0406 0407 0408 0409 040A 040B 040C 040D 040E 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043A 043B 043C 043D 043E 043F 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F 0450 0451 0452 0453 0454 0455 0456 0457 0458 0459 045A 045B 045C 045D 045E 045F 0460 0461 0462 0463 0464 0465 0466 0467 0468 0469 046A 046B 046C 046D 046E 046F 0470 0471 0472 0473 0474 0475 0476 0477 0478 0479 047A 047B 047C 047D 047E 047F 0480 0481 0482 0483 0484 0485 0486 0487 0488 0489 048A 048B 048C 048D 048E 048F 0490 0491 0492 0493 0494 0495 0496 0497 0498 0499 049A 049B 049C 049D 049E 049F 04A0 04A1 04A2 04A3 04A4 04A5 04A6 04A7 04A8 04A9 04AA 04AB 04AC 04AD 04AE 04AF 04B0 04B1 04B2 04B3 04B4 04B5 04B6 04B7 04B8 04B9 04BA 04BB 04BC 04BD 04BE 04BF 04C0 04C1 04C2 04C3 04C4 04C5 04C6 04C7 04C8 04C9 04CA 04CB 04CC 04CD 04CE 04CF 04D0 04D1 04D2 04D3 04D4 04D5 04D6 04D7 04D8 04D9 04DA 04DB 04DC 04DD 04DE 04DF 04E0 04E1 04E2 04E3 04E4 04E5 04E6 04E7 04E8 04E9 04EA 04EB 04EC 04ED 04EE 04EF 04F0 04F1 04F2 04F3 04F4 04F5 04F6 04F7 04F8 04F9 04FA 04FB 04FC 04FD 04FE 04FF 0500 0501 0502 0503 0504 0505 0506 0507 0508 0509 050A 050B 050C 050D 050E 050F 0510 0511 0512 0513 0514 0515 0516 0517 0518 0519 051A 051B 051C 051D 051E 051F 0520 0521 0522 0523 0524 0525 0526 0527 0528 0529 052A 052B 052C 052D 052E 052F 0530 0531 0532 0533 0534 0535 0536 0537 0538 0539 053A 053B 053C 053D 053E 053F 0540 0541 0542 0543 0544 0545 0546 0547 0548 0549 054A 054B 054C 054D 054E 054F 0550 0551 0552 0553 0554 0555 0556 0557 0558 0559 055A 055B 055C 055D 055E 055F 0560 0561 0562 0563 0564 0565 0566 0567 0568 0569 056A 056B 056C 056D 056E 056F 0570 0571 0572 0573 0574 0575 0576 0577 0578 0579 057A 057B 057C 057D 057E 057F 0580 0581 0582 0583 0584 0585 0586 0587 0588 0589 058A 058B 058C 058D 058E 058F 0590 0591 0592 0593 0594 0595 0596 0597 0598 0599 059A 059B 059C 059D 059E 059F 05A0 05A1 05A2 05A3 05A4 05A5 05A6 05A7 05A8 05A9 05AA 05AB 05AC 05AD 05AE 05AF 05B0 05B1 05B2 05B3 05B4 05B5 05B6 05B7 05B8 05B9 05BA 05BB 05BC 05BD 05BE 05BF 05C0 05C1 05C2 05C3 05C4 05C5 05C6 05C7 05C8 05C9 05CA 05CB 05CC 05CD 05CE 05CF 05D0 05D1 05D2 05D3 05D4 05D5 05D6 05D7 05D8 05D9 05DA 05DB 05DC 05DD 05DE 05DF 05E0 05E1 05E2 05E3 05E4 05E5 05E6 05E7 05E8 05E9 05EA 05EB 05EC 05ED 05EE 05EF 05F0 05F1 05F2 05F3 05F4 05F5 05F6 05F7 05F8 05F9 05FA 05FB 05FC 05FD 05FE 05FF 0600 0601 0602 0603 0604 0605 0606 0607 0608 0609 060A 060B 060C 060D 060E 060F 0610 0611 0612 0613 0614 0615 0616 0617 0618 0619 061A 061B 061C 061D 061E 061F 0620 0621 0622 0623 0624 0625 0626 0627 0628 0629 062A 062B 062C 062D 062E 062F 0630 0631 0632 0633 0634 0635 0636 0637 0638 0639 063A 063B 063C 063D 063E 063F 0640 0641 0642 0643 0644 0645 0646 0647 0648 0649 064A 064B 064C 064D 064E 064F 0650 0651 0652 0653 0654 0655 0656 0657 0658 0659 065A 065B 065C 065D 065E 065F 0660 0661 0662 0663 0664 0665 0666 0667 0668 0669 066A 066B 066C 066D 066E 066F 0670 0671 0672 0673 0674 0675 0676 0677 0678 0679 067A 067B 067C 067D 067E 067F 0680 0681 0682 0683 0684 0685 0686 0687 0688 0689 068A 068B 068C 068D 068E 068F 0690 0691 0692 0693 0694 0695 0696 0697 0698 0699 069A 069B 069C 069D 069E 069F 06A0 06A1 06A2 06A3 06A4 06A5 06A6 06A7 06A8 06A9 06AA 06AB 06AC 06AD 06AE 06AF 06B0 06B1 06B2 06B3 06B4 06B5 06B6 06B7 06B8 06B9 06BA 06BB 06BC 06BD 06BE 06BF 06C0 06C1 06C2 06C3 06C4 06C5 06C6 06C7 06C8 06C9 06CA 06CB 06CC 06CD 06CE 06CF 06D0 06D1 06D2 06D3 06D4 06D5 06D6 06D7 06D8 06D9 06DA 06DB 06DC 06DD 06DE 06DF 06E0 06E1 06E2 06E3 06E4 06E5 06E6 06E7 06E8 06E9 06EA 06EB 06EC 06ED 06EE 06EF 06F0 06F1 06F2 06F3 06F4 06F5 06F6 06F7 06F8 06F9 06FA 06FB 06FC 06FD 06FE 06FF 0700 0701 0702 0703 0704 0705 0706 0707 0708 0709 070A 070B 070C 070D 070E 070F 0710 0711 0712 0713 0714 0715 0716 0717 0718 0719 071A 071B 071C 071D 071E 071F 0720 0721 0722 0723 0724 0725 0726 0727 0728 0729 072A 072B 072C 072D 072E 072F 0730 0731 0732 0733 0734 0735 0736 0737 0738 0739 073A 073B 073C 073D 073E 073F 0740 0741 0742 0743 0744 0745 0746 0747 0748 0749 074A 074B 074C 074D 074E 074F 0750 0751 0752 0753 0754 0755 0756 0757 0758 0759 075A 075B 075C 075D 075E 075F 0760 0761 0762 0763 0764 0765 0766 0767 0768 0769 076A 076B 076C 076D 076E 076F 0770 0771 0772 0773 0774 0775 0776 0777 0778 0779 077A 077B 077C 077D 077E 077F 0780 0781 0782 0783 0784 0785 0786 0787 0788 0789 078A 078B 078C 078D 078E 078F 0790 0791 0792 0793 0794 0795 0796 0797 0798 0799 079A 079B 079C 079D 079E 079F 07A0 07A1 07A2 07A3 07A4 07A5 07A6 07A7 07A8 07A9 07AA 07AB 07AC 07AD 07AE 07AF 07B0 07B1 07B2 07B3 07B4 07B5 07B6 07B7 07B8 07B9 07BA 07BB 07BC 07BD 07BE 07BF 07C0 07C1 07C2 07C3 07C4 07C5 07C6 07C7 07C8 07C9 07CA 07CB 07CC 07CD 07CE 07CF 07D0 07D1 07D2 07D3 07D4 07D5 07D6 07D7 07D8 07D9 07DA 07DB 07DC 07DD 07DE 07DF 07E0 07E1 07E2 07E3 07E4 07E5 07E6 07E7 07E8 07E9 07EA 07EB 07EC 07ED 07EE 07EF 07F0 07F1 07F2 07F3 07F4 07F5 07F6 07F7 07F8 07F9 07FA 07FB 07FC 07FD 07FE 07FF 0800 0801 0802 0803 0804 0805 0806 0807 0808 0809 080A 080B 080C 080D 080E 080F 0810 0811 0812 0813 0814 0815 0816 0817 0818 0819 081A 081B 081C 081D 081E 081F 0820 0821 0822 0823 0824 0825 0826 0827 0828 0829 082A 082B 082C 082D 082E 082F 0830 0831 0832 0833 0834 0835 0836 0837 0838 0839 083A 083B 083C 083D 083E 083F 0840 0841 0842 0843 0844 0845 0846 0847 0848 0849 084A 084B 084C 084D 084E 084F 0850 0851 0852 0853 0854 0855 0856 0857 0858 0859 085A 085B 085C 085D 085E 085F 0860 0861 0862 0863 0864 0865 0866 0867 0868 0869 086A 086B 086C 086D 086E 086F 0870 0871 0872 0873 0874 0875 0876 0877 0878 0879 087A 087B 087C 087D 087E 087F 0880 0881 0882 0883 0884 0885 0886 0887 0888 0889 088A 088B 088C 088D 088E 088F 0890 0891 0892 0893 0894 0895 0896 0897 0898 0899 089A 089B 089C 089D 089E 089F 08A0 08A1 08A2 08A3 08A4 08A5 08A6 08A7 08A8 08A9 08AA 08AB 08AC 08AD 08AE 08AF 08B0 08B1 08B2 08B3 08B4 08B5 08B6 08B7 08B8 08B9 08BA 08BB 08BC 08BD 08BE 08BF 08C0 08C1 08C2 08C3 08C4 08C5 08C6 08C7 08C8 08C9 08CA 08CB 08CC 08CD 08CE 08CF 08D0 08D1 08D2 08D3 08D4 08D5 08D6 08D7 08D8 08D9 08DA 08DB 08DC 08DD 08DE 08DF 08E0 08E1 08E2 08E3 08E4 08E5 08E6 08E7 08E8 08E9 08EA 08EB 08EC 08ED 08EE 08EF 08F0 08F1 08F2 08F3 08F4 08F5 08F6 08F7 08F8 08F9 08FA 08FB 08FC 08FD 08FE 08FF 0900 0901 0902 0903 0904 0905 0906 0907 0908 0909 090A 090B 090C 090D 090E 090F 0910 0911 0912 0913 0914 0915 0916 0917 0918 0919 091A 091B 091C 091D 091E 091F 0920 0921 0922 0923 0924 0925 0926 0927 0928 0929 092A 092B 092C 092D 092E 092F 0930 0931 0932 0933 0934 0935 0936 0937 0938 0939 093A 093B 093C 093D 093E 093F 0940 0941 0942 0943 0944 0945 0946 0947 0948 0949 094A 094B 094C 094D 094E 094F 0950 0951 0952 0953 0954 0955 0956 0957 0958 0959 095A 095B 095C 095D 095E 095F 0960 0961 0962 0963 0964 0965 0966 0967 0968 0969 096A 096B 096C 096D 096E 096F 0970 0971 0972 0973 0974 0975 0976 0977 0978 0979 097A 097B 097C 097D 097E 097F 0980 0981 0982 0983 0984 0985 0986 0987 0988 0989 098A 098B 098C 098D 098E 098F 0990 0991 0992 0993 0994 0995 0996 0997 0998 0999 099A 099B 099C 099D 099E 099F 09A0 09A1 09A2 09A3 09A4 09A5 09A6 09A7 09A8 09A9 09AA 09AB 09AC 09AD 09AE 09AF 09B0 09B1 09B2 09B3 09B4 09B5 09B6 09B7 09B8 09B9 09BA 09BB 09BC 09BD 09BE 09BF 09C0 09C1 09C2 09C3 09C4 09C5 09C6 09C7 09C8 09C9 09CA 09CB 09CC 09CD 09CE 09CF 09D0 09D1 09D2 09D3 09D4 09D5 09D6 09D7 09D8 09D9 09DA 09DB 09DC 09DD 09DE 09DF 09E0 09E1 09E2 09E3 09E4 09E5 09E6 09E7 09E8 09E9 09EA 09EB 09EC 09ED 09EE 09EF 09F0 09F1 09F2 09F3 09F4 09F5 09F6 09F7 09F8 09F9 09FA 09FB 09FC 09FD 09FE 09FF 0A00 0A01 0A02 0A03 0A04 0A05 0A06 0A07 0A08 0A09 0A0A 0A0B 0A0C 0A0D 0A0E 0A0F 0A10 0A11 0A12 0A13 0A14 0A15 0A16 0A17 0A18 0A19 0A1A 0A1B 0A1C 0A1D 0A1E 0A1F 0A20 0A21 0A22 0A23 0A24 0A25 0A26 0A27 0A28 0A29 0A2A 0A2B 0A2C 0A2D 0A2E 0A2F 0A30 0A31 0A32 0A33 0A34 0A35 0A36 0A37 0A38 0A39 0A3A 0A3B 0A3C 0A3D 0A3E 0A3F 0A40 0A41 0A42 0A43 0A44 0A45 0A46 0A47 0A48 0A49 0A4A 0A4B 0A4C 0A4D 0A4E 0A4F 0A50 0A51 0A52 0A53 0A54 0A55 0A56 0A57 0A58 0A59 0A5A 0A5B 0A5C 0A5D 0A5E 0A5F 0A60 0A61 0A62 0A63 0A64 0A65 0A66 0A67 0A68 0A69 0A6A 0A6B 0A6C 0A6D 0A6E 0A6F 0A70 0A71 0A72 0A73 0A74 0A75 0A76 0A77 0A78 0A79 0A7A 0A7B 0A7C 0A7D 0A7E 0A7F 0A80 0A81 0A82 0A83 0A84 0A85 0A86 0A87 0A88 0A89 0A8A 0A8B 0A8C 0A8D 0A8E 0A8F 0A90 0A91 0A92 0A93 0A94 0A95 0A96 0A97 0A98 0A99 0A9A 0A9B 0A9C 0A9D 0A9E 0A9F 0AA0 0AA1 0AA2 0AA3 0AA4 0AA5 0AA6 0AA7 0AA8 0AA9 0AAA 0AAB 0AAC 0AAD 0AAE 0AAF 0AB0 0AB1 0AB2 0AB3 0AB4 0AB5 0AB6 0AB7 0AB8 0AB9 0ABA 0ABB 0ABC 0ABD 0ABE 0ABF 0AC0 0AC1 0AC2 0AC3 0AC4 0AC5 0AC6 0AC7 0AC8 0AC9 0ACA 0ACB 0ACC 0ACD 0ACE 0ACF 0AD0 0AD1 0AD2 0AD3 0AD4 0AD5 0AD6 0AD7 0AD8 0AD9 0ADA 0ADB 0ADC 0ADD 0ADE 0ADF 0AE0 0AE1 0AE2 0AE3 0AE4 0AE5 0AE6 0AE7 0AE8 0AE9 0AEA 0AEB 0AEC 0AED 0AEE 0AEF 0AF0 0AF1 0AF2 0AF3 0AF4 0AF5 0AF6 0AF7 0AF8 0AF9 0AFA 0AFB 0AFC 0AFD 0AFE 0AFF 0B00 0B01 0B02 0B03 0B04 0B05 0B06 0B07 0B08 0B09 0B0A 0B0B 0B0C 0B0D 0B0E 0B0F 0B10 0B11 0B12 0B13 0B14 0B15 0B16 0B17 0B18 0B19 0B1A 0B1B 0B1C 0B1D 0B1E 0B1F 0B20 0B21 0B22 0B23 0B24 0B25 0B26 0B27 0B28 0B29 0B2A 0B2B 0B2C 0B2D 0B2E 0B2F 0B30 0B31 0B32 0B33 0B34 0B35 0B36 0B37 0B38 0B39 0B3A 0B3B 0B3C 0B3D 0B3E 0B3F 0B40 0B41 0B42 0B43 0B44 0B45 0B46 0B47 0B48 0B49 0B4A 0B4B 0B4C 0B4D 0B4E 0B4F 0B50 0B51 0B52 0B53 0B54 0B55 0B56 0B57 0B58 0B59 0B5A 0B5B 0B5C 0B5D 0B5E 0B5F 0B60 0B61 0B62 0B63 0B64 0B65 0B66 0B67 0B68 0B69 0B6A 0B6B 0B6C 0B6D 0B6E 0B6F 0B70 0B71 0B72 0B73 0B74 0B75 0B76 0B77 0B78 0B79 0B7A 0B7B 0B7C 0B7D 0B7E 0B7F 0B80 0B81 0B82 0B83 0B84 0B85 0B86 0B87 0B88 0B89 0B8A 0B8B 0B8C 0B8D 0B8E 0B8F 0B90 0B91 0B92 0B93 0B94 0B95 0B96 0B97 0B98 0B99 0B9A 0B9B 0B9C 0B9D 0B9E 0B9F 0BA0 0BA1 0BA2 0BA3 0BA4 0BA5 0BA6 0BA7 0BA8 0BA9 0BAA 0BAB 0BAC 0BAD 0BAE 0BAF 0BB0 0BB1 0BB2 0BB3 0BB4 0BB5 0BB6 0BB7 0BB8 0BB9 0BBA 0BBB 0BBC 0BBD 0BBE 0BBF 0BC0 0BC1 0BC2 0BC3 0BC4 0BC5 0BC6 0BC7 0BC8 0BC9 0BCA 0BCB 0BCC 0BCD 0BCE 0BCF 0BD0 0BD1 0BD2 0BD3 0BD4 0BD5 0BD6 0BD7 0BD8 0BD9 0BDA 0BDB 0BDC 0BDD 0BDE 0BDF 0BE0 0BE1 0BE2 0BE3 0BE4 0BE5 0BE6 0BE7 0BE8 0BE9 0BEA 0BEB 0BEC 0BED 0BEE 0BEF 0BF0 0BF1 0BF2 0BF3 0BF4 0BF5 0BF6 0BF7 0BF8 0BF9 0BFA 0BFB 0BFC 0BFD 0BFE 0BFF 0C00 0C01 0C02 0C03 0C04 0C05 0C06 0C07 0C08 0C09 0C0A 0C0B 0C0C 0C0D 0C0E 0C0F 0C10 0C11 0C12 0C13 0C14 0C15 0C16 0C17 0C18 0C19 0C1A 0C1B 0C1C 0C1D 0C1E 0C1F 0C20 0C21 0C22 0C23 0C24 0C25 0C26 0C27 0C28 0C29 0C2A 0C2B 0C2C 0C2D 0C2E 0C2F 0C30 0C31 0C32 0C33 0C34 0C35 0C36 0C37 0C38 0C39 0C3A 0C3B 0C3C 0C3D 0C3E 0C3F 0C40 0C41 0C42 0C43 0C44 0C45 0C46 0C47 0C48 0C49 0C4A 0C4B 0C4C 0C4D 0C4E 0C4F 0C50 0C51 0C52 0C53 0C54 0C55 0C56 0C57 0C58 0C59 0C5A 0C5B 0C5C 0C5D 0C5E 0C5F 0C60 0C61 0C62 0C63 0C64 0C65 0C66 0C67 0C68 0C69 0C6A 0C6B 0C6C 0C6D 0C6E 0C6F 0C70 0C71 0C72 0C73 0C74 0C75 0C76 0C77 0C78 0C79 0C7A 0C7B 0C7C 0C7D 0C7E 0C7F 0C80 0C81 0C82 0C83 0C84 0C85 0C86 0C87 0C88 0C89 0C8A 0C8B 0C8C 0C8D 0C8E 0C8F 0C90 0C91 0C92 0C93 0C94 0C95 0C96 0C97 0C98 0C99 0C9A 0C9B 0C9C 0C9D 0C9E 0C9F 0CA0 0CA1 0CA2 0CA3 0CA4 0CA5 0CA6 0CA7 0CA8 0CA9 0CAA 0CAB 0CAC 0CAD 0CAE 0CAF 0CB0 0CB1 0CB2 0CB3 0CB4 0CB5 0CB6 0CB7 0CB8 0CB9 0CBA 0CBB 0CBC 0CBD 0CBE 0CBF 0CC0 0CC1 0CC2 0CC3 0CC4 0CC5 0CC6 0CC7 0CC8 0CC9 0CCA 0CCB 0CCC 0CCD 0CCE 0CCF 0CD0 0CD1 0CD2 0CD3 0CD4 0CD5 0CD6 0CD7 0CD8 0CD9 0CDA 0CDB 0CDC 0CDD 0CDE 0CDF 0CE0 0CE1 0CE2 0CE3 0CE4 0CE5 0CE6 0CE7 0CE8 0CE9 0CEA 0CEB 0CEC 0CED 0CEE 0CEF 0CF0 0CF1 0CF2 0CF3 0CF4 0CF5 0CF6 0CF7 0CF8 0CF9 0CFA 0CFB 0CFC 0CFD 0CFE 0CFF 0D00 0D01 0D02 0D03 0D04 0D05 0D06 0D07 0D08 0D09 0D0A 0D0B 0D0C 0D0D 0D0E 0D0F 0D10 0D11 0D12 0D13 0D14 0D15 0D16 0D17 0D18 0D19 0D1A 0D1B 0D1C 0D1D 0D1E 0D1F 0D20 0D21 0D22 0D23 0D24 0D25 0D26 0D27 0D28 0D29 0D2A 0D2B 0D2C 0D2D 0D2E 0D31 0D32 0D33 0D34 0D35 0D36 0D37 0D38 0D39 0D3A 0D3B 0D3C 0D3D 0D3E 0D3F 0D40 0D41 0D42 0D43 0D44 0D45 0D46 0D47 0D48 0D49 0D4A 0D4B 0D4C 0D4D 0D4E 0D4F 0D50 0D51 0D61 0D62 0D63 0D64 0D65 01B3 ================================================ FILE: DS_Map/RomInfo.cs ================================================ using System.IO; using System.Collections.Generic; using System.Windows.Forms; using System.Drawing; using System.Linq; using DSPRE.Resources; using System; using DSPRE.ROMFiles; using static DSPRE.RomInfo; using System.Windows.Shapes; using Path = System.IO.Path; namespace DSPRE { /// /// Class to store ROM data from GEN IV Pokmon games /// public class RomInfo { public static string folderSuffix = "_DSPRE_contents"; private const string dataFolderName = @"data"; public static string romID { get; private set; } public static string fileName { get; private set; } public static string workDir { get; private set; } public static string arm9Path { get; private set; } public static string arm7Path { get; private set; } public static string overlayTablePath { get; set; } public static string y7Path { get; set; } public static string dataPath { get; set; } public static string overlayPath { get; set; } public static string unpackedPath { get; set; } public static string bannerPath { get; set; } public static string headerPath { get; set; } public static GameLanguages gameLanguage { get; private set; } public static GameVersions gameVersion { get; private set; } public static GameFamilies gameFamily { get; private set; } public static uint synthOverlayLoadAddress = 0x023C8000; public static uint arm9spawnOffset { get; private set; } public static int initialMoneyOverlayNumber { get; private set; } public static uint initialMoneyOverlayOffset { get; private set; } public static int cameraTblOverlayNumber { get; private set; } public static uint[] cameraTblOffsetsToRAMaddress { get; private set; } public static uint headerTableOffset { get; private set; } public static uint conditionalMusicTableOffsetToRAMAddress { get; internal set; } public static uint encounterMusicTableOffsetToRAMAddress { get; internal set; } public static uint vsTrainerEntryTableOffsetToRAMAddress { get; internal set; } public static uint vsPokemonEntryTableOffsetToRAMAddress { get; internal set; } public static uint effectsComboTableOffsetToRAMAddress { get; internal set; } public static uint vsTrainerEntryTableOffsetToSizeLimiter { get; internal set; } public static uint vsPokemonEntryTableOffsetToSizeLimiter { get; internal set; } public static uint effectsComboTableOffsetToSizeLimiter { get; internal set; } public static uint OWTableOffset { get; internal set; } public static string OWtablePath { get; private set; } public static uint monIconPalTableAddress { get; private set; } public static int nullEncounterID { get; private set; } public static int abilityNamesTextNumber { get; private set; } public static int attackNamesTextNumber { get; private set; } public static int[] pokemonNamesTextNumbers { get; private set; } public static int itemNamesTextNumber { get; private set; } public static int itemScriptFileNumber { get; internal set; } public static int trainerClassMessageNumber { get; private set; } public static int trainerNamesMessageNumber { get; private set; } public static int moveDescriptionsTextNumbers { get; private set; } public static int moveNamesTextNumbers { get; private set; } public static int locationNamesTextNumber { get; private set; } public static int trainerNameLenOffset { get; private set; } public static int trainerNameMaxLen => SetTrainerNameMaxLen(); public static int trainerFunnyScriptNumber { get; private set; } public static string internalNamesLocation { get; private set; } public static readonly byte internalNameLength = 16; public static string internalNamesPath { get; private set; } public static int cameraSize { get; private set; } public Dictionary, (Color background, Color foreground)> MapCellsColorDictionary; public static SortedDictionary OverworldTable { get; private set; } public static uint[] overworldTableKeys { get; private set; } public static Dictionary ow3DSpriteDict { get; private set; } public static Dictionary ScriptCommandNamesDict { get; private set; } public static Dictionary ScriptCommandNamesReverseDict { get; private set; } public static Dictionary ScriptActionNamesDict { get; private set; } public static Dictionary ScriptActionNamesReverseDict { get; private set; } public static Dictionary ScriptCommandParametersDict { get; private set; } public static Dictionary ScriptComparisonOperatorsDict { get; private set; } public static Dictionary ScriptComparisonOperatorsReverseDict { get; private set; } public enum GameVersions : byte { Diamond, Pearl, Platinum, HeartGold, SoulSilver, Black, White, Black2, White2 } public enum GameFamilies : byte { NULL, DP, Plat, HGSS, BW, BW2 } public enum GameLanguages : byte { English, Japanese, Italian, Spanish, French, German } public enum DirNames : byte { personalPokeData, synthOverlay, dynamicHeaders, textArchives, matrices, maps, exteriorBuildingModels, buildingConfigFiles, buildingTextures, mapTextures, areaData, eventFiles, OWSprites, scripts, encounters, headbutt, safariZone, trainerProperties, trainerParty, trainerGraphics, moveData, monIcons, interiorBuildingModels, learnsets, evolutions }; public static Dictionary gameDirs { get; private set; } #region Constructors (1) public RomInfo(string id, string romName, bool useSuffix = true) { if (!useSuffix) { folderSuffix = ""; } string path = System.IO.Path.GetDirectoryName(romName) + "\\" + Path.GetFileNameWithoutExtension(romName) + folderSuffix + "\\"; workDir = path; arm9Path = Path.Combine(workDir, @"arm9.bin"); arm7Path = Path.Combine(workDir, @"arm7.bin"); overlayTablePath = Path.Combine(workDir, @"y9.bin"); y7Path = Path.Combine(workDir, @"y7.bin"); dataPath = Path.Combine(workDir, dataFolderName); overlayPath = Path.Combine(workDir, @"overlay"); bannerPath = Path.Combine(workDir, @"banner.bin"); headerPath = Path.Combine(workDir, @"header.bin"); unpackedPath = Path.Combine(workDir, @"unpacked"); internalNamesPath = Path.Combine(workDir, $@"{dataFolderName}\fielddata\maptable\mapname.bin"); try { gameVersion = PokeDatabase.System.versionsDict[id]; } catch (KeyNotFoundException) { MessageBox.Show("The ROM you attempted to load is not supported.\nYou can only load Gen IV Pokmon ROMS, for now.", "Unsupported ROM", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } romID = id; fileName = romName; LoadGameFamily(); LoadGameLanguage(); SetNarcDirs(); SetHeaderTableOffset(); SetNullEncounterID(); SetAbilityNamesTextNumber(); SetAttackNamesTextNumber(); SetPokemonNamesTextNumber(); SetItemNamesTextNumber(); SetItemScriptFileNumber(); SetLocationNamesTextNumber(); SetTrainerNamesMessageNumber(); SetTrainerClassMessageNumber(); SetTrainerFunnyScriptNumber(); SetTrainerNameLenOffset(); SetMoveTextNumbers(); /* System */ ScriptCommandParametersDict = BuildCommandParametersDatabase(gameFamily); ScriptCommandNamesDict = BuildCommandNamesDatabase(gameFamily); ScriptActionNamesDict = BuildActionNamesDatabase(gameFamily); ScriptComparisonOperatorsDict = BuildComparisonOperatorsDatabase(gameFamily); ScriptCommandNamesReverseDict = ScriptCommandNamesDict.Reverse(); ScriptActionNamesReverseDict = ScriptActionNamesDict.Reverse(); ScriptComparisonOperatorsReverseDict = ScriptComparisonOperatorsDict.Reverse(); } #endregion Constructors (1) #region Methods (22) public static Dictionary BuildCommandNamesDatabase(GameFamilies gameFam) { Dictionary commonDictionaryNames; Dictionary specificDictionaryNames; switch (gameFam) { case GameFamilies.DP: commonDictionaryNames = ScriptDatabase.DPPtScrCmdNames; specificDictionaryNames = ScriptDatabase.DPScrCmdNames; break; case GameFamilies.Plat: commonDictionaryNames = ScriptDatabase.DPPtScrCmdNames; specificDictionaryNames = ScriptDatabase.PlatScrCmdNames; break; default: commonDictionaryNames = ScriptDatabase.HGSSScrCmdNames; #if true specificDictionaryNames = new Dictionary(); #else specificDictionaryNames = ScriptDatabase.CustomScrCmdNames; #endif break; } return commonDictionaryNames.Concat(specificDictionaryNames).ToLookup(x => x.Key, x => x.Value).ToDictionary(x => x.Key, g => g.First()); } public static Dictionary BuildCommandParametersDatabase(GameFamilies gameFam) { Dictionary commonDictionaryParams; Dictionary specificDictionaryParams; switch (gameFam) { case GameFamilies.DP: commonDictionaryParams = ScriptDatabase.DPPtScrCmdParameters; specificDictionaryParams = ScriptDatabase.DPScrCmdParameters; break; case GameFamilies.Plat: commonDictionaryParams = ScriptDatabase.DPPtScrCmdParameters; specificDictionaryParams = ScriptDatabase.PlatScrCmdParameters; break; default: commonDictionaryParams = ScriptDatabase.HGSSScrCmdParameters; #if true specificDictionaryParams = new Dictionary(); #else specificDictionaryParams = ScriptDatabase.CustomScrCmdParameters; #endif break; } return commonDictionaryParams.Concat(specificDictionaryParams).ToLookup(x => x.Key, x => x.Value).ToDictionary(x => x.Key, g => g.First()); } public static Dictionary BuildActionNamesDatabase(GameFamilies gameFam) { switch (gameFam) { case GameFamilies.DP: case GameFamilies.Plat: return ScriptDatabase.movementsDictIDName; default: #if false var commonDictionaryParams = ScriptDatabase.movementsDictIDName; var customDictionaryParams = ScriptDatabase.customMovementsDictIDName; return commonDictionaryParams.Concat(customDictionaryParams).ToLookup(x => x.Key, x => x.Value).ToDictionary(x => x.Key, g => g.First()); #else return ScriptDatabase.movementsDictIDName; #endif } } public static Dictionary BuildComparisonOperatorsDatabase(GameFamilies gameFam) { switch (gameFam) { case GameFamilies.DP: case GameFamilies.Plat: case GameFamilies.HGSS: return ScriptDatabase.comparisonOperatorsDict; default: var commonDict = ScriptDatabase.comparisonOperatorsDict; var appendixDict = ScriptDatabase.comparisonOperatorsGenVappendix; return commonDict.Concat(appendixDict).ToLookup(x => x.Key, x => x.Value).ToDictionary(x => x.Key, g => g.First()); } } public static void Set3DOverworldsDict() { ow3DSpriteDict = new Dictionary() { [91] = "brown_sign", [92] = "red_sign", [93] = "gray_sign", [94] = "route_sign", [95] = "blue_sign", //to fix this one (gym_sign) [96] = "blue_sign", [101] = "dawn_platinum", //[174] = "dppt_suitcase", }; } public static void SetHeaderTableOffset() { switch (gameFamily) { case GameFamilies.DP: switch (gameLanguage) { case GameLanguages.English: headerTableOffset = 0xEEDBC; break; case GameLanguages.Spanish: headerTableOffset = 0xEEE08; break; case GameLanguages.Italian: headerTableOffset = 0xEED70; break; case GameLanguages.French: headerTableOffset = 0xEEDFC; break; case GameLanguages.German: headerTableOffset = 0xEEDCC; break; case GameLanguages.Japanese: headerTableOffset = gameVersion == GameVersions.Diamond ? (uint)0xF0D68 : 0xF0D6C; break; } break; case GameFamilies.Plat: switch (gameLanguage) { case GameLanguages.English: headerTableOffset = 0xE601C; break; case GameLanguages.Spanish: headerTableOffset = 0xE60B0; break; case GameLanguages.Italian: headerTableOffset = 0xE6038; break; case GameLanguages.French: headerTableOffset = 0xE60A4; break; case GameLanguages.German: headerTableOffset = 0xE6074; break; case GameLanguages.Japanese: headerTableOffset = 0xE56F0; break; } break; case GameFamilies.HGSS: switch (gameLanguage) { case GameLanguages.English: headerTableOffset = 0xF6BE0; break; case GameLanguages.Spanish: headerTableOffset = gameVersion == GameVersions.HeartGold ? 0xF6BC8 : (uint)0xF6BD0; break; case GameLanguages.Italian: headerTableOffset = 0xF6B58; break; case GameLanguages.French: headerTableOffset = 0xF6BC4; break; case GameLanguages.German: headerTableOffset = 0xF6B94; break; case GameLanguages.Japanese: headerTableOffset = 0xF6390; break; } break; } } public static void SetupSpawnSettings() { switch (gameFamily) { case GameFamilies.DP: initialMoneyOverlayNumber = 52; initialMoneyOverlayOffset = 0x1E4; switch (gameLanguage) { case GameLanguages.English: arm9spawnOffset = 0xF2B9C; break; case GameLanguages.Spanish: arm9spawnOffset = 0xF2BE8; break; case GameLanguages.Italian: arm9spawnOffset = 0xF2B50; break; case GameLanguages.French: arm9spawnOffset = 0xF2BDC; break; case GameLanguages.German: arm9spawnOffset = 0xF2BAC; break; case GameLanguages.Japanese: arm9spawnOffset = 0xF4B48; break; } break; case GameFamilies.Plat: initialMoneyOverlayNumber = 57; initialMoneyOverlayOffset = 0x1EC; switch (gameLanguage) { case GameLanguages.English: arm9spawnOffset = 0xEA12C; break; case GameLanguages.Spanish: arm9spawnOffset = 0xEA1C0; break; case GameLanguages.Italian: arm9spawnOffset = 0xEA148; break; case GameLanguages.French: arm9spawnOffset = 0xEA1B4; break; case GameLanguages.German: arm9spawnOffset = 0xEA184; break; case GameLanguages.Japanese: arm9spawnOffset = 0xE9800; break; } break; case GameFamilies.HGSS: initialMoneyOverlayNumber = 36; initialMoneyOverlayOffset = 0x2FC; switch (gameLanguage) { case GameLanguages.English: arm9spawnOffset = 0xFA17C; break; case GameLanguages.Spanish: arm9spawnOffset = gameVersion == GameVersions.HeartGold ? 0xFA164 : (uint)0xFA16C; break; case GameLanguages.Italian: arm9spawnOffset = 0xFA0F4; break; case GameLanguages.French: arm9spawnOffset = 0xFA160; break; case GameLanguages.German: arm9spawnOffset = 0xFA130; break; case GameLanguages.Japanese: arm9spawnOffset = 0xF992C; break; } break; } } public static void PrepareCameraData() { switch (gameFamily) { case GameFamilies.DP: cameraTblOverlayNumber = 5; cameraTblOffsetsToRAMaddress = gameLanguage.Equals(GameLanguages.Japanese) ? (new uint[] { 0x4C50 }) : (new uint[] { 0x4908 }); cameraSize = 24; break; case GameFamilies.Plat: cameraTblOverlayNumber = 5; cameraTblOffsetsToRAMaddress = new uint[] { 0x4E24 }; cameraSize = 24; break; case GameFamilies.HGSS: cameraTblOverlayNumber = 1; cameraSize = 36; switch (gameLanguage) { case GameLanguages.English: case GameLanguages.Spanish: case GameLanguages.French: case GameLanguages.German: case GameLanguages.Italian: cameraTblOffsetsToRAMaddress = new uint[] { 0x532C, 0x547C }; break; case GameLanguages.Japanese: cameraTblOffsetsToRAMaddress = new uint[] { 0x5324, 0x5474 }; break; } break; } } public static void SetOWtable() { switch (gameFamily) { case GameFamilies.DP: OWtablePath = OverlayUtils.GetPath(5); switch (gameLanguage) { // Go to the beginning of the overworld table case GameLanguages.English: OWTableOffset = 0x22BCC; break; case GameLanguages.Japanese: OWTableOffset = 0x23BB8; break; default: OWTableOffset = 0x22B84; break; } break; case GameFamilies.Plat: OWtablePath = OverlayUtils.GetPath(5); switch (gameLanguage) { // Go to the beginning of the overworld table case GameLanguages.Italian: OWTableOffset = 0x2BC44; break; case GameLanguages.French: case GameLanguages.Spanish: OWTableOffset = 0x2BC3C; break; case GameLanguages.German: OWTableOffset = 0x2BC50; break; case GameLanguages.Japanese: OWTableOffset = 0x2BA24; break; default: OWTableOffset = 0x2BC34; break; } break; case GameFamilies.HGSS: if (OverlayUtils.OverlayTable.IsDefaultCompressed(1)) { if (OverlayUtils.IsCompressed(1)) { if (OverlayUtils.Decompress(1) < 0) { MessageBox.Show("Overlay 1 couldn't be decompressed.\nOverworld sprites in the Event Editor will be " + "displayed incorrectly or not displayed at all.", "Decompression error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } string ov1Path = OverlayUtils.GetPath(1); uint ov1Address = OverlayUtils.OverlayTable.GetRAMAddress(1); int ramAddrOfPointer; switch (gameLanguage) { case GameLanguages.Italian: ramAddrOfPointer = 0x021F929C; break; case GameLanguages.French: case GameLanguages.Spanish: ramAddrOfPointer = 0x021F931C; break; case GameLanguages.German: ramAddrOfPointer = 0x021F92DC; break; case GameLanguages.Japanese: ramAddrOfPointer = 0x021F86C4; break; default: ramAddrOfPointer = 0x021F92FC; break; } using (DSUtils.EasyReader bReader = new DSUtils.EasyReader(ov1Path, ramAddrOfPointer - ov1Address)) { // read the pointer at the specified ram address and adjust accordingly below uint ramAddressOfTable = bReader.ReadUInt32(); if ((ramAddressOfTable >> 0x18) != 0x02) { MessageBox.Show("Something went wrong reading the Overworld configuration table.\nOverworld sprites in the Event Editor will be " + "displayed incorrectly or not displayed at all.", "Decompression error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string ov131path = OverlayUtils.GetPath(131); if (File.Exists(ov131path)) { // if HGE field extension overlay exists OWTableOffset = ramAddressOfTable - OverlayUtils.OverlayTable.GetRAMAddress(131); OWtablePath = ov131path; } else if (ramAddressOfTable >= RomInfo.synthOverlayLoadAddress) { // if the pointer shows the table was moved to the synthetic overlay OWTableOffset = ramAddressOfTable - RomInfo.synthOverlayLoadAddress; OWtablePath = gameDirs[DirNames.synthOverlay].unpackedDir + "\\" + PatchToolboxDialog.expandedARMfileID.ToString("D4"); } else { OWTableOffset = ramAddressOfTable - ov1Address; OWtablePath = ov1Path; } } break; } } public static void SetConditionalMusicTableOffsetToRAMAddress() { switch (gameFamily) { case GameFamilies.HGSS: switch (gameLanguage) { case GameLanguages.Spanish: conditionalMusicTableOffsetToRAMAddress = gameVersion == GameVersions.HeartGold ? (uint)0x667D0 : 0x667D8; break; case GameLanguages.English: case GameLanguages.Italian: case GameLanguages.French: case GameLanguages.German: conditionalMusicTableOffsetToRAMAddress = 0x667D8; break; case GameLanguages.Japanese: conditionalMusicTableOffsetToRAMAddress = 0x66238; break; } break; } } public static void SetBattleEffectsData() { switch (gameFamily) { case GameFamilies.HGSS: switch (gameLanguage) { case GameLanguages.Spanish: vsPokemonEntryTableOffsetToRAMAddress = gameVersion == GameVersions.HeartGold ? (uint)0x518CC : 0x518D4; vsTrainerEntryTableOffsetToRAMAddress = gameVersion == GameVersions.HeartGold ? (uint)0x51888 : 0x51890; effectsComboTableOffsetToRAMAddress = gameVersion == GameVersions.HeartGold ? (uint)0x517C0 : 0x517C8; break; case GameLanguages.English: case GameLanguages.Italian: case GameLanguages.French: case GameLanguages.German: vsPokemonEntryTableOffsetToRAMAddress = 0x518D4; vsTrainerEntryTableOffsetToRAMAddress = 0x51890; effectsComboTableOffsetToRAMAddress = 0x517C8; break; case GameLanguages.Japanese: vsPokemonEntryTableOffsetToRAMAddress = 0x5136C; vsTrainerEntryTableOffsetToRAMAddress = 0x51328; effectsComboTableOffsetToRAMAddress = 0x51260; break; } vsPokemonEntryTableOffsetToSizeLimiter = vsPokemonEntryTableOffsetToRAMAddress - 0xA; vsTrainerEntryTableOffsetToSizeLimiter = vsTrainerEntryTableOffsetToRAMAddress - 0xA; effectsComboTableOffsetToSizeLimiter = effectsComboTableOffsetToRAMAddress - 0x1E; break; case GameFamilies.Plat: switch (gameLanguage) { case GameLanguages.English: effectsComboTableOffsetToRAMAddress = 0x51BE0; break; case GameLanguages.Italian: case GameLanguages.French: case GameLanguages.Spanish: case GameLanguages.German: effectsComboTableOffsetToRAMAddress = 0x51C84; break; case GameLanguages.Japanese: effectsComboTableOffsetToRAMAddress = 0x514C0; break; } break; } } public static void SetEncounterMusicTableOffsetToRAMAddress() { switch (gameFamily) { case GameFamilies.HGSS: switch (gameLanguage) { case GameLanguages.Spanish: encounterMusicTableOffsetToRAMAddress = gameVersion == GameVersions.HeartGold ? (uint)0x550D8 : 0x550E0; break; case GameLanguages.English: case GameLanguages.Italian: case GameLanguages.French: case GameLanguages.German: encounterMusicTableOffsetToRAMAddress = 0x550E0; break; case GameLanguages.Japanese: encounterMusicTableOffsetToRAMAddress = 0x54B44; break; } break; case GameFamilies.Plat: switch (gameLanguage) { case GameLanguages.English: encounterMusicTableOffsetToRAMAddress = 0x5563C; break; case GameLanguages.Italian: case GameLanguages.French: case GameLanguages.Spanish: case GameLanguages.German: encounterMusicTableOffsetToRAMAddress = 0x556E0; break; case GameLanguages.Japanese: encounterMusicTableOffsetToRAMAddress = 0x54F04; break; } break; case GameFamilies.DP: switch (gameLanguage) { case GameLanguages.English: encounterMusicTableOffsetToRAMAddress = 0x4AD3C; break; case GameLanguages.Italian: case GameLanguages.French: case GameLanguages.Spanish: case GameLanguages.German: encounterMusicTableOffsetToRAMAddress = 0x4ADAC; break; case GameLanguages.Japanese: encounterMusicTableOffsetToRAMAddress = 0x4D9AC; break; } break; } } public static void SetMonIconsPalTableAddress() { switch (RomInfo.gameFamily) { case GameFamilies.DP: switch (gameLanguage) { case GameLanguages.English: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x6B838, 4), 0); break; case GameLanguages.Italian: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x6B874, 4), 0); break; case GameLanguages.German: case GameLanguages.French: case GameLanguages.Spanish: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x6B894, 4), 0); break; case GameLanguages.Japanese: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x6FDEC, 4), 0); break; } break; case GameFamilies.Plat: switch (gameLanguage) { case GameLanguages.English: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x79F80, 4), 0); break; case GameLanguages.Italian: case GameLanguages.German: case GameLanguages.French: case GameLanguages.Spanish: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x7A020, 4), 0); break; case GameLanguages.Japanese: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x79858, 4), 0); break; } break; case GameFamilies.HGSS: default: switch (gameLanguage) { case GameLanguages.English: case GameLanguages.Italian: case GameLanguages.French: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x74408, 4), 0); break; case GameLanguages.German: if (gameVersion == GameVersions.HeartGold) { monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x74408, 4), 0); } else { monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x74400, 4), 0); } break; case GameLanguages.Spanish: if (gameVersion == GameVersions.HeartGold) { monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x74400, 4), 0); } else { monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x74408, 4), 0); } break; case GameLanguages.Japanese: monIconPalTableAddress = BitConverter.ToUInt32(ARM9.ReadBytes(0x73EA0, 4), 0); break; } break; } } private static void SetItemScriptFileNumber() { switch (gameFamily) { case GameFamilies.DP: itemScriptFileNumber = 370; break; case GameFamilies.Plat: itemScriptFileNumber = 404; break; default: itemScriptFileNumber = 141; break; } } private static void SetNullEncounterID() { switch (gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: nullEncounterID = ushort.MaxValue; break; case GameFamilies.HGSS: nullEncounterID = Byte.MaxValue; break; } } private static void SetAbilityNamesTextNumber() { switch (gameFamily) { case GameFamilies.DP: abilityNamesTextNumber = 552; break; case GameFamilies.Plat: abilityNamesTextNumber = 610; break; case GameFamilies.HGSS: abilityNamesTextNumber = 720; break; default: break; } } private static void SetAttackNamesTextNumber() { switch (gameFamily) { case GameFamilies.DP: attackNamesTextNumber = 588; break; case GameFamilies.Plat: attackNamesTextNumber = 647; break; default: attackNamesTextNumber = gameLanguage == GameLanguages.Japanese ? 739 : 750; break; } } private static void SetItemNamesTextNumber() { switch (gameFamily) { case GameFamilies.DP: itemNamesTextNumber = 344; break; case GameFamilies.Plat: itemNamesTextNumber = 392; break; default: itemNamesTextNumber = gameLanguage == GameLanguages.Japanese ? 219 : 222; break; } } private static void SetLocationNamesTextNumber() { switch (gameFamily) { case GameFamilies.DP: locationNamesTextNumber = 382; break; case GameFamilies.Plat: locationNamesTextNumber = 433; break; default: locationNamesTextNumber = gameLanguage == GameLanguages.Japanese ? 272 : 279; break; } } private static void SetPokemonNamesTextNumber() { switch (gameFamily) { case GameFamilies.DP: pokemonNamesTextNumbers = new int[2] { 362, 363 }; break; case GameFamilies.Plat: pokemonNamesTextNumbers = new int[7] { 412, 413, 712, 713, 714, 715, 716 }; //413? break; case GameFamilies.HGSS: pokemonNamesTextNumbers = gameLanguage.Equals(GameLanguages.Japanese) ? new int[1] { 232 } : new int[7] { 237, 238, 817, 818, 819, 820, 821 }; //238? break; } } private static void SetTrainerNamesMessageNumber() { switch (gameFamily) { case GameFamilies.DP: trainerNamesMessageNumber = 559; if (gameLanguage.Equals(GameLanguages.Japanese)) { trainerNamesMessageNumber -= 9; } break; case GameFamilies.Plat: trainerNamesMessageNumber = 618; break; default: trainerNamesMessageNumber = 729; if (gameLanguage == GameLanguages.Japanese) { trainerNamesMessageNumber -= 10; } break; } } private static void SetTrainerClassMessageNumber() { switch (gameFamily) { case GameFamilies.DP: trainerClassMessageNumber = 560; if (gameLanguage.Equals(GameLanguages.Japanese)) { trainerClassMessageNumber -= 9; } break; case GameFamilies.Plat: trainerClassMessageNumber = 619; break; default: trainerClassMessageNumber = 730; if (gameLanguage.Equals(GameLanguages.Japanese)) { trainerClassMessageNumber -= 10; } break; } } private static void SetMoveTextNumbers() { switch (gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: moveDescriptionsTextNumbers = 646; moveNamesTextNumbers = 647; break; case GameFamilies.HGSS: moveDescriptionsTextNumbers = 749; moveNamesTextNumbers = 750; break; } } private static void SetTrainerFunnyScriptNumber() { switch (gameFamily) { case GameFamilies.DP: trainerFunnyScriptNumber = 851; break; case GameFamilies.Plat: trainerFunnyScriptNumber = 929; break; default: // HGSS trainerFunnyScriptNumber = 740; break; } } private static void SetTrainerNameLenOffset() { switch (RomInfo.gameFamily) { case GameFamilies.DP: switch (RomInfo.gameLanguage) { case GameLanguages.English: trainerNameLenOffset = 0x6AC32; break; case GameLanguages.Italian: trainerNameLenOffset = 0x6AC6E; break; case GameLanguages.Spanish: case GameLanguages.German: case GameLanguages.French: trainerNameLenOffset = 0x6AC8E; break; case GameLanguages.Japanese: //? default: trainerNameLenOffset = -1; break; } break; case GameFamilies.Plat: switch (RomInfo.gameLanguage) { case GameLanguages.English: trainerNameLenOffset = 0x791DE; break; case GameLanguages.Spanish: case GameLanguages.Italian: case GameLanguages.German: case GameLanguages.French: trainerNameLenOffset = 0x7927E; break; case GameLanguages.Japanese: trainerNameLenOffset = 0x78AB6; break; default: trainerNameLenOffset = -1; break; } break; case GameFamilies.HGSS: if (RomInfo.gameLanguage.Equals(GameLanguages.Japanese)) { //Jap HGSS trainerNameLenOffset = 0x7342E; } else if (gameVersion.Equals(GameVersions.SoulSilver)) { //All SS languages except Jap trainerNameLenOffset = 0x72EC2; } else { //All HG languages except Jap switch (RomInfo.gameLanguage) { case GameLanguages.English: case GameLanguages.Italian: case GameLanguages.German: case GameLanguages.French: trainerNameLenOffset = 0x7342E; break; case GameLanguages.Spanish: trainerNameLenOffset = 0x73426; break; } } break; } } public static int SetTrainerNameMaxLen() { int maxLength = TrainerFile.defaultNameLen; if (trainerNameLenOffset > 0) { using (ARM9.Reader ar = new ARM9.Reader(trainerNameLenOffset)) { maxLength = ar.ReadByte(); } maxLength += ((maxLength - 4) / 2); } return maxLength; } public string GetBuildingModelsDirPath(bool interior) => interior ? gameDirs[DirNames.interiorBuildingModels].unpackedDir : gameDirs[DirNames.exteriorBuildingModels].unpackedDir; public string GetRomNameFromWorkdir() => workDir.Substring(0, workDir.Length - folderSuffix.Length - 1); public static int GetHeaderCount() => (int)new FileInfo(internalNamesPath).Length / internalNameLength; public static List GetLocationNames() => new TextArchive(locationNamesTextNumber).messages; public static string[] GetSimpleTrainerNames() => new TextArchive(trainerNamesMessageNumber).messages.ToArray(); public static string[] GetTrainerClassNames() => new TextArchive(trainerClassMessageNumber).messages.ToArray(); public static string[] GetItemNames() => new TextArchive(itemNamesTextNumber).messages.ToArray(); public static string[] GetItemNames(int startIndex = 0, int? count = null) { TextArchive itemNames = new TextArchive(itemNamesTextNumber); return itemNames.messages.GetRange(startIndex, count == null ? itemNames.messages.Count - 1 : (int)count).ToArray(); } public static string[] GetPokemonNames() => new TextArchive(pokemonNamesTextNumbers[0]).messages.ToArray(); public static string[] GetAbilityNames() => new TextArchive(abilityNamesTextNumber).messages.ToArray(); public static string[] GetAttackNames() => new TextArchive(attackNamesTextNumber).messages.ToArray(); public static int GetLearnsetFilesCount() => Directory.GetFiles(gameDirs[DirNames.learnsets].unpackedDir).Length; public static int GetPersonalFilesCount() => Directory.GetFiles(gameDirs[DirNames.personalPokeData].unpackedDir).Length; public static string[] GetEvolutionFilesList() => Directory.GetFiles(gameDirs[DirNames.evolutions].unpackedDir); public static int GetEvolutionFilesCount() => GetEvolutionFilesList().Length; public static string[] GetBattleEffectSequenceFiles() => Directory.GetFiles(gameDirs[DirNames.moveData].unpackedDir); public static int GetBattleEffectSequenceFilesCount() => GetBattleEffectSequenceFiles().Length; public int GetAreaDataCount() => Directory.GetFiles(gameDirs[DirNames.areaData].unpackedDir).Length; public int GetMapTexturesCount() => Directory.GetFiles(gameDirs[DirNames.mapTextures].unpackedDir).Length; public int GetBuildingTexturesCount() => Directory.GetFiles(gameDirs[DirNames.buildingTextures].unpackedDir).Length; public int GetMatrixCount() => Directory.GetFiles(gameDirs[DirNames.matrices].unpackedDir).Length; public int GetTextArchivesCount() => Directory.GetFiles(gameDirs[DirNames.textArchives].unpackedDir).Length; public int GetMapCount() => Directory.GetFiles(gameDirs[DirNames.maps].unpackedDir).Length; public int GetEventCount() => Directory.GetFiles(gameDirs[DirNames.eventFiles].unpackedDir).Length; public int GetScriptCount() => Directory.GetFiles(gameDirs[DirNames.scripts].unpackedDir).Length; public int GetBuildingCount(bool interior) => Directory.GetFiles(GetBuildingModelsDirPath(interior)).Length; public static int GetEventFileCount() => Directory.GetFiles(RomInfo.gameDirs[DirNames.eventFiles].unpackedDir).Length; #endregion Methods (22) #region System Methods private void LoadGameLanguage() { switch (romID) { case "ADAE": case "APAE": case "CPUE": case "IPKE": case "IPGE": gameLanguage = GameLanguages.English; break; case "ADAS": case "APAS": case "CPUS": case "IPKS": case "IPGS": case "LATA": gameLanguage = GameLanguages.Spanish; break; case "ADAI": case "APAI": case "CPUI": case "IPKI": case "IPGI": gameLanguage = GameLanguages.Italian; break; case "ADAF": case "APAF": case "CPUF": case "IPKF": case "IPGF": gameLanguage = GameLanguages.French; break; case "ADAD": case "APAD": case "CPUD": case "IPKD": case "IPGD": gameLanguage = GameLanguages.German; break; default: gameLanguage = GameLanguages.Japanese; break; } } private void LoadGameFamily() { switch (gameVersion) { case GameVersions.Diamond: case GameVersions.Pearl: gameFamily = GameFamilies.DP; break; case GameVersions.Platinum: gameFamily = GameFamilies.Plat; break; case GameVersions.HeartGold: case GameVersions.SoulSilver: gameFamily = GameFamilies.HGSS; break; } } private void SetNarcDirs() { Dictionary packedDirsDict = null; switch (gameFamily) { case GameFamilies.DP: string suffix = ""; if (!gameLanguage.Equals(GameLanguages.Japanese)) { suffix = "_release"; } packedDirsDict = new Dictionary() { [DirNames.synthOverlay] = @"data\data\weather_sys.narc", [DirNames.textArchives] = @"data\msgdata\msg.narc", [DirNames.matrices] = @"data\fielddata\mapmatrix\map_matrix.narc", [DirNames.maps] = @"data\fielddata\land_data\land_data" + suffix + ".narc", [DirNames.exteriorBuildingModels] = @"data\fielddata\build_model\build_model.narc", [DirNames.buildingConfigFiles] = @"data\fielddata\areadata\area_build_model\area_build.narc", [DirNames.buildingTextures] = @"data\fielddata\areadata\area_build_model\areabm_texset.narc", [DirNames.mapTextures] = @"data\fielddata\areadata\area_map_tex\map_tex_set.narc", [DirNames.areaData] = @"data\fielddata\areadata\area_data.narc", [DirNames.eventFiles] = @"data\fielddata\eventdata\zone_event" + suffix + ".narc", [DirNames.OWSprites] = @"data\data\mmodel\mmodel.narc", [DirNames.scripts] = @"data\fielddata\script\scr_seq" + suffix + ".narc", [DirNames.trainerProperties] = @"data\poketool\trainer\trdata.narc", [DirNames.trainerParty] = @"data\poketool\trainer\trpoke.narc", [DirNames.trainerGraphics] = @"data\poketool\trgra\trfgra.narc", [DirNames.monIcons] = @"data\poketool\icongra\poke_icon.narc", [DirNames.encounters] = @"data\fielddata\encountdata\" + char.ToLower(gameVersion.ToString()[0]) + '_' + "enc_data.narc", [DirNames.learnsets] = @"data\poketool\personal\wotbl.narc", [DirNames.evolutions] = @"data\poketool\personal\evo.narc", }; //Personal Data archive is different for Pearl string personal = @"data\poketool\personal"; if (gameVersion == GameVersions.Pearl) { personal += ("_" + gameVersion.ToString().ToLower()); } personal += @"\personal.narc"; packedDirsDict[DirNames.personalPokeData] = personal; break; case GameFamilies.Plat: suffix = gameVersion.ToString().Substring(0, 2).ToLower(); packedDirsDict = new Dictionary() { [DirNames.personalPokeData] = @"data\poketool\personal\pl_personal.narc", [DirNames.synthOverlay] = @"data\data\weather_sys.narc", [DirNames.dynamicHeaders] = @"data\debug\cb_edit\d_test.narc", [DirNames.textArchives] = @"data\msgdata\" + suffix + '_' + "msg.narc", [DirNames.matrices] = @"data\fielddata\mapmatrix\map_matrix.narc", [DirNames.maps] = @"data\fielddata\land_data\land_data.narc", [DirNames.exteriorBuildingModels] = @"data\fielddata\build_model\build_model.narc", [DirNames.buildingConfigFiles] = @"data\fielddata\areadata\area_build_model\area_build.narc", [DirNames.buildingTextures] = @"data\fielddata\areadata\area_build_model\areabm_texset.narc", [DirNames.mapTextures] = @"data\fielddata\areadata\area_map_tex\map_tex_set.narc", [DirNames.areaData] = @"data\fielddata\areadata\area_data.narc", [DirNames.eventFiles] = @"data\fielddata\eventdata\zone_event.narc", [DirNames.OWSprites] = @"data\data\mmodel\mmodel.narc", [DirNames.scripts] = @"data\fielddata\script\scr_seq.narc", [DirNames.trainerProperties] = @"data\poketool\trainer\trdata.narc", [DirNames.trainerParty] = @"data\poketool\trainer\trpoke.narc", [DirNames.trainerGraphics] = @"data\poketool\trgra\trfgra.narc", [DirNames.moveData] = @"data\poketool\waza\pl_waza_tbl.narc", [DirNames.monIcons] = @"data\poketool\icongra\pl_poke_icon.narc", [DirNames.encounters] = @"data\fielddata\encountdata\" + suffix + '_' + "enc_data.narc", [DirNames.learnsets] = @"data\poketool\personal\wotbl.narc", [DirNames.evolutions] = @"data\poketool\personal\evo.narc", }; break; case GameFamilies.HGSS: packedDirsDict = new Dictionary() { [DirNames.personalPokeData] = @"data\a\0\0\2", [DirNames.synthOverlay] = @"data\a\0\2\8", [DirNames.dynamicHeaders] = @"data\a\0\5\0", [DirNames.textArchives] = @"data\a\0\2\7", [DirNames.matrices] = @"data\a\0\4\1", [DirNames.maps] = @"data\a\0\6\5", [DirNames.exteriorBuildingModels] = @"data\a\0\4\0", [DirNames.buildingConfigFiles] = @"data\a\0\4\3", [DirNames.buildingTextures] = @"data\a\0\7\0", [DirNames.mapTextures] = @"data\a\0\4\4", [DirNames.areaData] = @"data\a\0\4\2", [DirNames.eventFiles] = @"data\a\0\3\2", [DirNames.OWSprites] = @"data\a\0\8\1", [DirNames.scripts] = @"data\a\0\1\2", //ENCOUNTERS FOLDER DEPENDS ON VERSION [DirNames.trainerProperties] = @"data\a\0\5\5", [DirNames.trainerParty] = @"data\a\0\5\6", [DirNames.trainerGraphics] = @"data\a\0\5\8", [DirNames.moveData] = @"data\a\0\1\1", [DirNames.monIcons] = @"data\a\0\2\0", [DirNames.interiorBuildingModels] = @"data\a\1\4\8", [DirNames.learnsets] = @"data\a\0\3\3", [DirNames.evolutions] = @"data\a\0\3\4", [DirNames.safariZone] = @"data\a\2\3\0", [DirNames.headbutt] = @"data\a\2\5\2", //both versions use the same folder with different data }; //Encounter archive is different for SS packedDirsDict[DirNames.encounters] = gameVersion == GameVersions.HeartGold ? @"data\a\0\3\7" : @"data\a\1\3\6"; break; } gameDirs = new Dictionary(); foreach (KeyValuePair kvp in packedDirsDict) { gameDirs.Add(kvp.Key, (workDir + kvp.Value, workDir + @"unpacked" + '\\' + kvp.Key.ToString())); } } public void ResetMapCellsColorDictionary() { switch (gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: MapCellsColorDictionary = PokeDatabase.System.MatrixCellColors.DPPtmatrixColorsDict; break; case GameFamilies.HGSS: MapCellsColorDictionary = PokeDatabase.System.MatrixCellColors.HGSSmatrixColorsDict; break; } } public static void ReadOWTable() { OverworldTable = new SortedDictionary(); switch (gameFamily) { case GameFamilies.DP: case GameFamilies.Plat: using (BinaryReader idReader = new BinaryReader(new FileStream(OWtablePath, FileMode.Open))) { idReader.BaseStream.Position = OWTableOffset; uint entryID = idReader.ReadUInt32(); idReader.BaseStream.Position -= 4; while ((entryID = idReader.ReadUInt32()) != 0xFFFF) { uint spriteID = idReader.ReadUInt32(); (uint spriteID, ushort properties) tup = (spriteID, 0x0000); OverworldTable.Add(entryID, tup); } } break; case GameFamilies.HGSS: using (BinaryReader idReader = new BinaryReader(new FileStream(OWtablePath, FileMode.Open))) { idReader.BaseStream.Position = OWTableOffset; ushort entryID = idReader.ReadUInt16(); idReader.BaseStream.Position -= 2; while ((entryID = idReader.ReadUInt16()) != 0xFFFF) { uint spriteID = idReader.ReadUInt16(); ushort properties = idReader.ReadUInt16(); (uint spriteID, ushort properties) tup = (spriteID, properties); OverworldTable.Add(entryID, tup); } } break; } foreach (uint k in ow3DSpriteDict.Keys) { OverworldTable.Add(k, (0x3D3D, 0x3D3D)); //ADD 3D overworld data (spriteID and properties are dummy values) } overworldTableKeys = OverworldTable.Keys.ToArray(); } #endregion System Methods } } ================================================ FILE: DS_Map/ScintillaUtils/HotKeyManager.cs ================================================ using DSPRE; using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; namespace ScintillaNET.Utils { internal class HotKeyManager { public static bool Enable = true; public static void AddHotKey(Scintilla control, Action function, Keys key, bool ctrl = false, bool shift = false, bool alt = false) { control.KeyDown += delegate(object sender, KeyEventArgs e) { if (IsHotkey(e, key, ctrl, shift, alt)) { function(); } }; } public static bool IsHotkey(KeyEventArgs eventData, Keys key, bool ctrl = false, bool shift = false, bool alt = false) { return eventData.KeyCode == key && eventData.Control == ctrl && eventData.Shift == shift && eventData.Alt == alt; } } } ================================================ FILE: DS_Map/ScintillaUtils/ScriptTooltip.Designer.cs ================================================  namespace DSPRE.ScintillaUtils { partial class ScriptTooltip { /// /// 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.panel1 = new System.Windows.Forms.Panel(); this.ctrl = new ScintillaNET.Scintilla(); this.panel1.SuspendLayout(); this.SuspendLayout(); // // panel1 // this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(47)))), ((int)(((byte)(47)))), ((int)(((byte)(47))))); this.panel1.Controls.Add(this.ctrl); this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; this.panel1.Padding = new System.Windows.Forms.Padding(15); this.panel1.Size = new System.Drawing.Size(326, 126); this.panel1.TabIndex = 1; // // ctrl // this.ctrl.BorderStyle = System.Windows.Forms.BorderStyle.None; this.ctrl.CaretPeriod = 500; this.ctrl.Dock = System.Windows.Forms.DockStyle.Fill; this.ctrl.EdgeColor = System.Drawing.Color.White; this.ctrl.EdgeMode = ScintillaNET.EdgeMode.MultiLine; this.ctrl.HScrollBar = false; this.ctrl.Lexer = ScintillaNET.Lexer.Cpp; this.ctrl.Location = new System.Drawing.Point(15, 15); this.ctrl.Margin = new System.Windows.Forms.Padding(0); this.ctrl.Margins.Capacity = 0; this.ctrl.Margins.Left = 0; this.ctrl.Margins.Right = 0; this.ctrl.MouseDwellTime = 350; this.ctrl.Name = "ctrl"; this.ctrl.PhasesDraw = ScintillaNET.Phases.Multiple; this.ctrl.Size = new System.Drawing.Size(296, 96); this.ctrl.TabDrawMode = ScintillaNET.TabDrawMode.Strikeout; this.ctrl.TabIndex = 0; this.ctrl.Text = "Empty"; this.ctrl.Visible = false; this.ctrl.VScrollBar = false; this.ctrl.WrapIndentMode = ScintillaNET.WrapIndentMode.Same; this.ctrl.WrapMode = ScintillaNET.WrapMode.Word; // // ScriptTooltip // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(47)))), ((int)(((byte)(47)))), ((int)(((byte)(47))))); this.ClientSize = new System.Drawing.Size(326, 126); this.ControlBox = false; this.Controls.Add(this.panel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ScriptTooltip"; this.Opacity = 0D; this.ShowIcon = false; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; this.Text = "ScriptTooltip"; this.TopMost = true; this.panel1.ResumeLayout(false); this.ResumeLayout(false); } #endregion private System.Windows.Forms.Panel panel1; public ScintillaNET.Scintilla ctrl; } } ================================================ FILE: DS_Map/ScintillaUtils/ScriptTooltip.cs ================================================ using ScintillaNET; using System; using System.Drawing; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace DSPRE.ScintillaUtils { public partial class ScriptTooltip : Form { [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")] private static extern IntPtr CreateRoundRectangleRegion ( int nLeftRect, // x-coordinate of upper-left corner int nTopRect, // y-coordinate of upper-left corner int nRightRect, // x-coordinate of lower-right corner int nBottomRect, // y-coordinate of lower-right corner int nWidthEllipse, // height of ellipse int nHeightEllipse // width of ellipse ); public string textBuffer { get; set; } = ""; public ScriptTooltip(string mainKeywords, string textBuffer) { InitializeComponent(); this.textBuffer = textBuffer; this.FormBorderStyle = FormBorderStyle.None; ctrl.ReadOnly = false; ctrl.StyleResetDefault(); ctrl.Styles[Style.Default].Font = "Consolas"; ctrl.Styles[Style.Default].Size = 10; ctrl.Styles[Style.Default].BackColor = Color.FromArgb(0x2F2F2F); ctrl.Styles[Style.Default].ForeColor = Color.FromArgb(0xFFFFFF); ctrl.StyleClearAll(); // Configure the lexer styles ctrl.Styles[Style.Cpp.Identifier].ForeColor = Color.FromArgb(0xD0DAE2); ctrl.Styles[Style.Cpp.CommentLine].ForeColor = Color.FromArgb(0x40BF57); ctrl.Styles[Style.Cpp.Number].ForeColor = Color.FromArgb(0xFFFF00); ctrl.Styles[Style.Cpp.String].ForeColor = Color.FromArgb(0xFF00FF); ctrl.Styles[Style.Cpp.Character].ForeColor = Color.FromArgb(0xE95454); ctrl.Styles[Style.Cpp.Operator].ForeColor = Color.FromArgb(0xFFFF00); ctrl.Styles[Style.Cpp.Word].ForeColor = Color.FromArgb(0x48A8EE); ctrl.Styles[Style.Cpp.Word2].ForeColor = Color.FromArgb(0xF98906); ctrl.SetKeywords(0, mainKeywords); Size newSize = TextRenderer.MeasureText(textBuffer, new Font(ctrl.Styles[Style.Default].Font, ctrl.Styles[Style.Default].Size), ctrl.ClientSize, TextFormatFlags.WordBreak | TextFormatFlags.TextBoxControl); this.ClientSize = new Size(this.ClientSize.Width, newSize.Height + this.panel1.Padding.All); Region = Region.FromHrgn(CreateRoundRectangleRegion(0, 0, Width, Height, 10, 10)); } public void WriteText(int delay = 15) { ctrl.Text = ""; ctrl.BufferedDraw = true; foreach (char c in this.textBuffer) { Thread.Sleep(delay); ctrl.Text += c; ctrl.Update(); } ctrl.ReadOnly = true; } public override string ToString() { return this.textBuffer; } } } ================================================ FILE: DS_Map/ScintillaUtils/ScriptTooltip.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: DS_Map/ScintillaUtils/SearchManager.cs ================================================ using System; using System.Windows.Forms; namespace ScintillaNET.Utils { internal class SearchManager { public Form MainProgram { get; private set; } public Scintilla textAreaScintilla { get; private set; } public Panel searchPanel { get; private set; } public TextBox searchBox { get; private set; } public string lastSearched = ""; public int LastSearchIndex { get; private set; } public bool SearchIsOpen = false; public SearchManager(Form mainprogram, Scintilla TextArea, TextBox SearchBox, Panel SearchPanel) { this.MainProgram = mainprogram; this.textAreaScintilla = TextArea; this.searchBox = SearchBox; this.searchPanel = SearchPanel; } public void Find(bool next, bool incremental, string searchThis = null) { bool firstTimeResearchingThis = lastSearched != searchThis; lastSearched = searchThis == null ? searchBox.Text : searchThis; if (lastSearched.Length > 0) { if (next) { // SEARCH FOR THE NEXT OCCURRENCE // Search the document at the last search index textAreaScintilla.TargetStart = LastSearchIndex - 1; textAreaScintilla.TargetEnd = LastSearchIndex + (lastSearched.Length + 1); textAreaScintilla.SearchFlags = SearchFlags.None; // Search, and if not found.. if (!incremental || textAreaScintilla.SearchInTarget(lastSearched) == -1) { // Search the document from the caret onwards textAreaScintilla.TargetStart = textAreaScintilla.CurrentPosition; textAreaScintilla.TargetEnd = textAreaScintilla.TextLength; textAreaScintilla.SearchFlags = SearchFlags.None; // Search, and if not found.. if (textAreaScintilla.SearchInTarget(lastSearched) == -1) { // Search again from top textAreaScintilla.TargetStart = 0; textAreaScintilla.TargetEnd = textAreaScintilla.TextLength; // Search, and if not found.. if (textAreaScintilla.SearchInTarget(lastSearched) == -1) { // clear selection and exit textAreaScintilla.ClearSelections(); return; } } } } else { // SEARCH FOR THE PREVIOUS OCCURRENCE // Search the document from the beginning to the caret textAreaScintilla.TargetStart = textAreaScintilla.CurrentPosition-1; textAreaScintilla.TargetEnd = 0; textAreaScintilla.SearchFlags = SearchFlags.None; // Search, and if not found.. if (textAreaScintilla.SearchInTarget(lastSearched) == -1) { // Search again from the caret onwards textAreaScintilla.TargetStart = textAreaScintilla.CurrentPosition; textAreaScintilla.TargetEnd = textAreaScintilla.TextLength; // Search, and if not found.. if (textAreaScintilla.SearchInTarget(lastSearched) == -1) { // clear selection and exit textAreaScintilla.ClearSelections(); return; } } } // Select the occurance this.LastSearchIndex = textAreaScintilla.TargetStart; textAreaScintilla.SetSelection(textAreaScintilla.TargetEnd, textAreaScintilla.TargetStart); textAreaScintilla.ScrollCaret(); } searchBox.Focus(); } public void OpenSearch() { if (!SearchIsOpen) { SearchIsOpen = true; InvokeIfNeeded(MainProgram, delegate () { searchPanel.Visible = true; searchBox.Text = lastSearched; searchBox.Focus(); searchBox.SelectAll(); }); } else { InvokeIfNeeded(MainProgram, delegate() { searchBox.Focus(); searchBox.SelectAll(); }); } } public void CloseSearch() { if (SearchIsOpen) { SearchIsOpen = false; InvokeIfNeeded(MainProgram, delegate() { searchPanel.Visible = false; //CurBrowser.GetBrowser().StopFinding(true); }); } } public void InvokeIfNeeded(Form MainProgram, Action action) { if (MainProgram.InvokeRequired) { MainProgram.BeginInvoke(action); } else { action.Invoke(); } } } } ================================================ FILE: DS_Map/SpawnEditor.Designer.cs ================================================  namespace DSPRE { partial class SpawnEditor { /// /// 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(SpawnEditor)); this.spawnHeaderComboBox = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.matrixxUpDown = new System.Windows.Forms.NumericUpDown(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.matrixyUpDown = new System.Windows.Forms.NumericUpDown(); this.label4 = new System.Windows.Forms.Label(); this.localmapyUpDown = new System.Windows.Forms.NumericUpDown(); this.label5 = new System.Windows.Forms.Label(); this.localmapxUpDown = new System.Windows.Forms.NumericUpDown(); this.playerDirCombobox = new System.Windows.Forms.ComboBox(); this.label6 = new System.Windows.Forms.Label(); this.saveAndCloseSpawnEditorButton = new System.Windows.Forms.Button(); this.readDefaultSpawnPosButton = new System.Windows.Forms.Button(); this.locationNameLBL = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.initialMoneyUpDown = new System.Windows.Forms.NumericUpDown(); this.resetFilterButton = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.matrixxUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.matrixyUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.localmapyUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.localmapxUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.initialMoneyUpDown)).BeginInit(); this.SuspendLayout(); // // spawnHeaderComboBox // this.spawnHeaderComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.spawnHeaderComboBox.FormattingEnabled = true; this.spawnHeaderComboBox.Location = new System.Drawing.Point(12, 28); this.spawnHeaderComboBox.Name = "spawnHeaderComboBox"; this.spawnHeaderComboBox.Size = new System.Drawing.Size(167, 21); this.spawnHeaderComboBox.TabIndex = 0; this.spawnHeaderComboBox.SelectedIndexChanged += new System.EventHandler(this.spawnHeaderComboBox_IndexChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(9, 11); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(81, 13); this.label1.TabIndex = 1; this.label1.Text = "Spawn Header:"; // // matrixxUpDown // this.matrixxUpDown.Location = new System.Drawing.Point(12, 95); this.matrixxUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.matrixxUpDown.Name = "matrixxUpDown"; this.matrixxUpDown.Size = new System.Drawing.Size(59, 20); this.matrixxUpDown.TabIndex = 2; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(9, 79); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(45, 13); this.label2.TabIndex = 3; this.label2.Text = "Matrix X"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(79, 79); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(45, 13); this.label3.TabIndex = 5; this.label3.Text = "Matrix Y"; // // matrixyUpDown // this.matrixyUpDown.Location = new System.Drawing.Point(82, 95); this.matrixyUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.matrixyUpDown.Name = "matrixyUpDown"; this.matrixyUpDown.Size = new System.Drawing.Size(59, 20); this.matrixyUpDown.TabIndex = 4; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(292, 79); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(67, 13); this.label4.TabIndex = 9; this.label4.Text = "Local Map Y"; // // localmapyUpDown // this.localmapyUpDown.Location = new System.Drawing.Point(295, 95); this.localmapyUpDown.Maximum = new decimal(new int[] { 31, 0, 0, 0}); this.localmapyUpDown.Name = "localmapyUpDown"; this.localmapyUpDown.Size = new System.Drawing.Size(64, 20); this.localmapyUpDown.TabIndex = 8; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(216, 79); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(67, 13); this.label5.TabIndex = 7; this.label5.Text = "Local Map X"; // // localmapxUpDown // this.localmapxUpDown.Location = new System.Drawing.Point(219, 95); this.localmapxUpDown.Maximum = new decimal(new int[] { 31, 0, 0, 0}); this.localmapxUpDown.Name = "localmapxUpDown"; this.localmapxUpDown.Size = new System.Drawing.Size(64, 20); this.localmapxUpDown.TabIndex = 6; // // playerDirCombobox // this.playerDirCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.playerDirCombobox.FormattingEnabled = true; this.playerDirCombobox.Location = new System.Drawing.Point(192, 28); this.playerDirCombobox.Name = "playerDirCombobox"; this.playerDirCombobox.Size = new System.Drawing.Size(167, 21); this.playerDirCombobox.TabIndex = 10; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(189, 12); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(84, 13); this.label6.TabIndex = 11; this.label6.Text = "Player Direction:"; // // saveAndCloseSpawnEditorButton // this.saveAndCloseSpawnEditorButton.Image = ((System.Drawing.Image)(resources.GetObject("saveAndCloseSpawnEditorButton.Image"))); this.saveAndCloseSpawnEditorButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveAndCloseSpawnEditorButton.Location = new System.Drawing.Point(241, 168); this.saveAndCloseSpawnEditorButton.Name = "saveAndCloseSpawnEditorButton"; this.saveAndCloseSpawnEditorButton.Size = new System.Drawing.Size(110, 42); this.saveAndCloseSpawnEditorButton.TabIndex = 12; this.saveAndCloseSpawnEditorButton.Text = "Save Current\r\nSettings"; this.saveAndCloseSpawnEditorButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveAndCloseSpawnEditorButton.UseVisualStyleBackColor = true; this.saveAndCloseSpawnEditorButton.Click += new System.EventHandler(this.saveSpawnEditorButton_Click); // // readDefaultSpawnPosButton // this.readDefaultSpawnPosButton.Image = global::DSPRE.Properties.Resources.resetIcon; this.readDefaultSpawnPosButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.readDefaultSpawnPosButton.Location = new System.Drawing.Point(123, 168); this.readDefaultSpawnPosButton.Name = "readDefaultSpawnPosButton"; this.readDefaultSpawnPosButton.Size = new System.Drawing.Size(107, 42); this.readDefaultSpawnPosButton.TabIndex = 13; this.readDefaultSpawnPosButton.Text = "Load Saved\r\nSettings"; this.readDefaultSpawnPosButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.readDefaultSpawnPosButton.UseVisualStyleBackColor = true; this.readDefaultSpawnPosButton.Click += new System.EventHandler(this.readDefaultSpawnPosButton_Click); // // locationNameLBL // this.locationNameLBL.AutoSize = true; this.locationNameLBL.Location = new System.Drawing.Point(9, 53); this.locationNameLBL.Name = "locationNameLBL"; this.locationNameLBL.Size = new System.Drawing.Size(70, 13); this.locationNameLBL.TabIndex = 14; this.locationNameLBL.Text = "Location LBL"; // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(147, 122); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(69, 13); this.label7.TabIndex = 15; this.label7.Text = "Initial Money:"; // // initialMoneyUpDown // this.initialMoneyUpDown.Location = new System.Drawing.Point(148, 138); this.initialMoneyUpDown.Maximum = new decimal(new int[] { 999999, 0, 0, 0}); this.initialMoneyUpDown.Name = "initialMoneyUpDown"; this.initialMoneyUpDown.Size = new System.Drawing.Size(68, 20); this.initialMoneyUpDown.TabIndex = 16; // // resetFilterButton // this.resetFilterButton.Image = global::DSPRE.Properties.Resources.resetListIcon; this.resetFilterButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.resetFilterButton.Location = new System.Drawing.Point(19, 168); this.resetFilterButton.Name = "resetFilterButton"; this.resetFilterButton.Size = new System.Drawing.Size(71, 42); this.resetFilterButton.TabIndex = 17; this.resetFilterButton.Text = "Reset\r\nFilter"; this.resetFilterButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.resetFilterButton.UseVisualStyleBackColor = true; this.resetFilterButton.Click += new System.EventHandler(this.resetFilterButton_Click); // // SpawnEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 214); this.Controls.Add(this.resetFilterButton); this.Controls.Add(this.initialMoneyUpDown); this.Controls.Add(this.label7); this.Controls.Add(this.locationNameLBL); this.Controls.Add(this.readDefaultSpawnPosButton); this.Controls.Add(this.saveAndCloseSpawnEditorButton); this.Controls.Add(this.label6); this.Controls.Add(this.playerDirCombobox); this.Controls.Add(this.label4); this.Controls.Add(this.localmapyUpDown); this.Controls.Add(this.label5); this.Controls.Add(this.localmapxUpDown); this.Controls.Add(this.label3); this.Controls.Add(this.matrixyUpDown); this.Controls.Add(this.label2); this.Controls.Add(this.matrixxUpDown); this.Controls.Add(this.label1); this.Controls.Add(this.spawnHeaderComboBox); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SpawnEditor"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Spawn Settings Editor"; ((System.ComponentModel.ISupportInitialize)(this.matrixxUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.matrixyUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.localmapyUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.localmapxUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.initialMoneyUpDown)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.ComboBox spawnHeaderComboBox; private System.Windows.Forms.Label label1; private System.Windows.Forms.NumericUpDown matrixxUpDown; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.NumericUpDown matrixyUpDown; private System.Windows.Forms.Label label4; private System.Windows.Forms.NumericUpDown localmapyUpDown; private System.Windows.Forms.Label label5; private System.Windows.Forms.NumericUpDown localmapxUpDown; private System.Windows.Forms.ComboBox playerDirCombobox; private System.Windows.Forms.Label label6; private System.Windows.Forms.Button saveAndCloseSpawnEditorButton; private System.Windows.Forms.Button readDefaultSpawnPosButton; private System.Windows.Forms.Label locationNameLBL; private System.Windows.Forms.Label label7; private System.Windows.Forms.NumericUpDown initialMoneyUpDown; private System.Windows.Forms.Button resetFilterButton; } } ================================================ FILE: DS_Map/SpawnEditor.cs ================================================ using DSPRE.ROMFiles; using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE { public partial class SpawnEditor : Form { private List locations = RomInfo.GetLocationNames(); private List names; public SpawnEditor(HashSet results, List allNames, ushort headerNumber = 0, int matrixX = 0, int matrixY = 0) { InitializeComponent(); this.names = allNames; if (results is null || results.Count <= 1) { SetupFields(allNames); spawnHeaderComboBox.SelectedIndex = headerNumber; } else { SetupFields(results); spawnHeaderComboBox.SelectedIndex = 0; } playerDirCombobox.SelectedIndex = 0; matrixxUpDown.Value = matrixX; matrixyUpDown.Value = matrixY; } public SpawnEditor(List allNames) { InitializeComponent(); this.names = allNames; SetupFields(allNames); readDefaultSpawnPosButton_Click(null, null); } private void SetupFields(IEnumerable headersList) { SetupDirections(); SetupHeadersList(headersList); ReadDefaultMoney(); } private void SetupHeadersList(IEnumerable headersList) { spawnHeaderComboBox.Items.Clear(); spawnHeaderComboBox.Items.AddRange(headersList.ToArray()); } private void SetupDirections () { playerDirCombobox.Items.Clear(); playerDirCombobox.Items.AddRange(new string[4] { "Up", "Down", "Left", "Right" }); } private void saveSpawnEditorButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("This operation will overwrite: " + Environment.NewLine + "- 10 bytes of data at ARM9 offset 0x" + RomInfo.arm9spawnOffset.ToString("X") + Environment.NewLine + "- 4 bytes of data at Overlay" + RomInfo.initialMoneyOverlayNumber + " offset 0x" + RomInfo.initialMoneyOverlayOffset.ToString("X") + Environment.NewLine + "\nProceed?", "Confirmation required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { string moneyOverlayPath = OverlayUtils.GetPath(RomInfo.initialMoneyOverlayNumber); ushort headerNumber = ushort.Parse(spawnHeaderComboBox.SelectedItem.ToString().Split()[0]); ARM9.WriteBytes(BitConverter.GetBytes(headerNumber), RomInfo.arm9spawnOffset); ARM9.WriteBytes(BitConverter.GetBytes((short)(matrixxUpDown.Value * 32 + localmapxUpDown.Value)), RomInfo.arm9spawnOffset + 8); ARM9.WriteBytes(BitConverter.GetBytes((short)(matrixyUpDown.Value * 32 + localmapyUpDown.Value)), RomInfo.arm9spawnOffset + 12); ARM9.WriteBytes(BitConverter.GetBytes((short)playerDirCombobox.SelectedIndex), RomInfo.arm9spawnOffset + 16); DSUtils.WriteToFile(moneyOverlayPath, BitConverter.GetBytes((int)initialMoneyUpDown.Value), RomInfo.initialMoneyOverlayOffset); MessageBox.Show("Your spawn settings have been changed.", "Operation successful", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No changes have been made.", "Operation canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void readDefaultSpawnPosButton_Click(object sender, EventArgs e) {; SetupFields(names); ushort headerNumber = BitConverter.ToUInt16(ARM9.ReadBytes(RomInfo.arm9spawnOffset, 2), 0); ushort globalX = BitConverter.ToUInt16(ARM9.ReadBytes(RomInfo.arm9spawnOffset + 8, 2), 0); ushort globalY = BitConverter.ToUInt16(ARM9.ReadBytes(RomInfo.arm9spawnOffset + 12, 2), 0); spawnHeaderComboBox.SelectedIndex = headerNumber; localmapxUpDown.Value = (short)(globalX % 32); localmapyUpDown.Value = (short)(globalY % 32); try { matrixxUpDown.Value = (ushort)Math.Min(globalX / 32, matrixxUpDown.Maximum); } catch (ArgumentOutOfRangeException) { matrixxUpDown.Value = matrixxUpDown.Maximum; } try { matrixyUpDown.Value = (ushort)Math.Min(globalY / 32, matrixyUpDown.Maximum); } catch (ArgumentOutOfRangeException) { matrixyUpDown.Value = matrixyUpDown.Maximum; } ReadDefaultMoney(); playerDirCombobox.SelectedIndex = BitConverter.ToUInt16(ARM9.ReadBytes(RomInfo.arm9spawnOffset + 16, 2), 0); } private void ReadDefaultMoney() { if (OverlayUtils.OverlayTable.IsDefaultCompressed(RomInfo.initialMoneyOverlayNumber)) { if (OverlayUtils.IsCompressed(RomInfo.initialMoneyOverlayNumber)) { OverlayUtils.Decompress(RomInfo.initialMoneyOverlayNumber); } } string pathToMoneyOverlay = OverlayUtils.GetPath(RomInfo.initialMoneyOverlayNumber); initialMoneyUpDown.Value = BitConverter.ToUInt32(DSUtils.ReadFromFile(pathToMoneyOverlay, RomInfo.initialMoneyOverlayOffset, 4), 0); } private void spawnHeaderComboBox_IndexChanged(object sender, EventArgs e) { ushort headerNumber = ushort.Parse(spawnHeaderComboBox.SelectedItem.ToString().Split()[0]); MapHeader currentHeader; if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { currentHeader = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + headerNumber.ToString("D4"), headerNumber, 0); } else { currentHeader = MapHeader.LoadFromARM9(headerNumber); } GameMatrix headerMatrix = new GameMatrix(currentHeader.matrixID); matrixxUpDown.Maximum = headerMatrix.maps.GetLength(1) - 1; matrixyUpDown.Maximum = headerMatrix.maps.GetLength(0) - 1; switch (RomInfo.gameFamily) { case GameFamilies.DP: locationNameLBL.Text = locations[((HeaderDP)currentHeader).locationName]; break; case GameFamilies.Plat: locationNameLBL.Text = locations[((HeaderPt)currentHeader).locationName]; break; case GameFamilies.HGSS: locationNameLBL.Text = locations[((HeaderHGSS)currentHeader).locationName]; break; } } private void resetFilterButton_Click(object sender, EventArgs e) { if (spawnHeaderComboBox.Items.Count < names.Count) { SetupHeadersList(names); spawnHeaderComboBox.SelectedIndex = 0; } } } } ================================================ FILE: DS_Map/SpawnEditor.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 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAacSURBVFhHxZd5bFRVGMX5Aw24VmtbI4lGoyHGYPSP mqgoEQg0SqELbVEiGiWAqIS1lha6sdTK0oWyiAYQTBVQBEqrgEaIghAKDaC1te1M91k7nZnXmS4z0+N3 7rQDtTMmNia85Mx777v3/s5533uzjQJwS+V/8W+3ReVUmMOzK3B/VjnCMstx19py3LGmHGNHKK4lgywy yY7MKjsqXqP9lrINBKC5Jfu8A1VWH65YfDhv9MrQ/7ORRSbZ9Ihce7RMPP0hZJy7MKarsfkwOr8WYzfX YdTGGlitHdC1W1DfNjJxLRlkkUk2PeglnnfTeDBAJFt01epFWKEOY+IyMHarDna7DY0mCWEUmWz+vahB yRo4D1bjeaPJqhhkkUk2PeglnhE0vilABSpNHkSVNOKe2Zm4t6gRmtOBVqsDbZ1utDu60Wp3o8XmQnNH l0hDa6dLFKzGcw0tFjucDodikUk2PehFTxrfCCBtOdfWi3Hb9Xhw+UGEF+uhaU4Y7C6kzE7E6ynJ2Lm9 BNu3FWNbUQEMjh4kJcZjR8m2ILViFBcWoM2myUU4FYtMsulBL3rSOBCA9+VMcy8e2dGAJz7VI6q4Hq6u LhXA1NUHs9ur9gatVxmxI0Y5NmpSc/prBqmZ5Jx1jrfbuhSDLDLJpsfAMzA8wOnGHjy+swFP7tZhXIkE cLlhFJDZ5YW1G7L3SQgvjF2eG3L6A3COxd0fmKNCye0hgywyyaZH0AAPSPFEQ4+aOOFznUrb090Nq6sP ydLWOclJ/nYXF6EkoEIUF2yVcP0yJyEwh/Wigi0waz3oFgZZZJJND3rRk8ZDAhyrd8tEPZ7Zo8dju3To 6emFRdre0QPY+qD2NGM3/OqHRa6YV//POayZpQtkkEUm2fQIGeBwrRvP7tUjep8e43c3oK/Pgw65950C pgjvEGO7HDvkc2qwRkMes869rXcgoMujGGSRSTY9ggfIqUBptQvPfdGE5/c34ilpmcfjhV1giXEzA211 eICkhHikJCXK01+kanapJcbPGrg9heodUbhlM2zdPsUgi0yy6UEvetI4ECBCivv/cOHFA8146csm1TKv V65s4OoGr8wmV8wQTukAjVljF1QH5DwwV2o2eSg9nn7FIpNsetCLnjQeEmDv7xomlbZgsiha0nKT24hO GlDSVpsocB6qNlB3yp4bWWSSTY+QAT67qmHqVy2Y/rVMlsSndG4F8PWPTNzIIItMsukRMsAuGYw52IrX DrXi1YMtmFLajJdl8cQDIxPXkkEWmWTTI2SA7VUaYg+3Ie7bNsSLZn3ThplyPuNw64jEtWSQRSbZ9AgZ oPiKhoQj7Zj9XTuSRDyOFUDMoTZMk/T/RVzDtWSQRSaP6RE0QKQUCyo1JB81YM4xv+KPGFBaaQC88lj3 iTzymHvl8ad4zFooyRquJWOQRzY96EVPGg8JsPWShrnHDXizzKD2cZIYXg+u1ptwVdeB6hYNfxm7lapb nKpWVW8WmYaqTubLHj6PYtzMpEfIAJsuOTGv3Ii3RPNOGJEgbePVXtfZYJKPvozsPEybOhnTpryC9Mx1 qnZd34lrMn5df0M8vybhuJYMshRTRI+QAT655MC735swX/ROhQnJ0jZCqpsd4Fs6ZnoMlqXlinKwcEka 5INOjVU324erqVOtJYMsMsmmR8gAH1/UsPCkBYtOmrHgBzPeKDNKG72oadUgdxyxM2Kxam0eVq7ZgPeX r0WvvNc5VtPqHK4Wh6z1KQZZZJJNj5ABNl504IPTZqXFp8yqZej3oU7uOX8jx8XFIy07Hx9l5mPJqmzI o6bG6gyuoOJaMsga5NIjZIANMrj0J6vIgiU/WlTLhAKduVde5QsncTYy1m1Ges4mLF+dq0JxTGfqHi4J xrVkkEUm2fT4lwAaUs/akHqmAyt+tmLRKYsMQ350elSApOQUrFm/BWskxMqM9ZBHAM0y1tTRN1TWPjRb 5UtENjLIIpNsegQNEJVV1pl/2Y11FzTk/uaUPxBOrDhrVxCTpnZISExEWmYeVmflITU9V9WMTshvweEy ibiRQRaZZNMjYuWBs+I55Gd5mCg6KvO4nemo8Oxy3J5ehmvXanHu8p/45XIN3p6/4L2lq1IXf7hs2eK5 G/fsuFBVi18rZSyIzom4lgyyBrkRy/edE6+nRUP+mNwmekgULZosmhJEL4jGix4WPSqaIJooCjY3lCaJ aM6rH/LXjBtDsBO8N8F0n2iMiAs5905RuCjY3FCiMa982J/TW7SNGvU3iJOEw8UaLRYAAAAASUVORK5C YII= ================================================ FILE: DS_Map/Themes/.gitkeep ================================================ ================================================ FILE: DS_Map/UniqueList.cs ================================================ using System; using System.Collections.Generic; namespace DSPRE.ROMFiles { public class UniqueList { private readonly List list = new List(); private readonly HashSet set = new HashSet(); public UniqueList(int capacity) { list = new List(capacity); set = new HashSet(capacity); } public UniqueList() { } public void Add(T item) { if (!set.Contains(item)) { list.Add(item); set.Add(item); } } public bool Contains(T item) { return set.Contains(item); } public void Clear() { list.Clear(); set.Clear(); } public bool Remove(T item) { if (set.Contains(item)) { list.Remove(item); set.Remove(item); return true; } return false; } public bool RemoveAt(int index) { if (index >= 0 && index < list.Count) { T itemToRemove = list[index]; list.RemoveAt(index); set.Remove(itemToRemove); return true; } return false; } // Expose some methods from the internal List public T Find(Predicate match) { return list.Find(match); } public int FindIndex(Predicate match) { return list.FindIndex(match); } public void Sort() { list.Sort(); } public IEnumerator GetEnumerator() { return list.GetEnumerator(); } public T this[int index] { get { return list[index]; } set { if (set.Contains(value)) { //Then the list also contains the value int oldIndex = list.FindIndex(x => x.Equals(value)); //this is where it is if (index == oldIndex) { //No operation, same index and same existing value. return; } //Otherwise, move the existing element in the list to the new index. list.Move(oldIndex, index); } else { //New element list[index] = value; set.Add(value); } } } public int Count => list.Count; } } ================================================ FILE: DS_Map/WildEditorDPPt.Designer.cs ================================================ namespace DSPRE { partial class WildEditorDPPt { /// /// 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(WildEditorDPPt)); this.encounterFileLabel = new System.Windows.Forms.Label(); this.removeEventFileButton = new System.Windows.Forms.Button(); this.addEventFileButton = new System.Windows.Forms.Button(); this.selectEncounterComboBox = new System.Windows.Forms.ComboBox(); this.exportEncounterFileButton = new System.Windows.Forms.Button(); this.importEncounterFileButton = new System.Windows.Forms.Button(); this.saveEventsButton = new System.Windows.Forms.Button(); this.mainTabControl = new System.Windows.Forms.TabControl(); this.grassGroundTabPage = new System.Windows.Forms.TabPage(); this.pictureBox3 = new System.Windows.Forms.PictureBox(); this.pictureBox2 = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.radarGroupBox = new System.Windows.Forms.GroupBox(); this.label42 = new System.Windows.Forms.Label(); this.radarFourthComboBox = new DSPRE.InputComboBox(); this.label41 = new System.Windows.Forms.Label(); this.radarThirdComboBox = new DSPRE.InputComboBox(); this.label40 = new System.Windows.Forms.Label(); this.radarSecondComboBox = new DSPRE.InputComboBox(); this.label34 = new System.Windows.Forms.Label(); this.radarFirstComboBox = new DSPRE.InputComboBox(); this.dualSlotGroupBox = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); this.label33 = new System.Windows.Forms.Label(); this.leafGreenFirstComboBox = new DSPRE.InputComboBox(); this.fireRedSecondComboBox = new DSPRE.InputComboBox(); this.label29 = new System.Windows.Forms.Label(); this.label37 = new System.Windows.Forms.Label(); this.label26 = new System.Windows.Forms.Label(); this.leafGreenSecondComboBox = new DSPRE.InputComboBox(); this.label24 = new System.Windows.Forms.Label(); this.label35 = new System.Windows.Forms.Label(); this.rubyFirstComboBox = new DSPRE.InputComboBox(); this.label39 = new System.Windows.Forms.Label(); this.fireRedFirstComboBox = new DSPRE.InputComboBox(); this.rubySecondComboBox = new DSPRE.InputComboBox(); this.label36 = new System.Windows.Forms.Label(); this.label38 = new System.Windows.Forms.Label(); this.label27 = new System.Windows.Forms.Label(); this.label30 = new System.Windows.Forms.Label(); this.label28 = new System.Windows.Forms.Label(); this.sapphireFirstComboBox = new DSPRE.InputComboBox(); this.sapphireSecondComboBox = new DSPRE.InputComboBox(); this.label32 = new System.Windows.Forms.Label(); this.emeraldSecondComboBox = new DSPRE.InputComboBox(); this.label31 = new System.Windows.Forms.Label(); this.emeraldFirstComboBox = new DSPRE.InputComboBox(); this.label25 = new System.Windows.Forms.Label(); this.timeGroupBox = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.label16 = new System.Windows.Forms.Label(); this.nightFirstComboBox = new DSPRE.InputComboBox(); this.label15 = new System.Windows.Forms.Label(); this.morningSecondComboBox = new DSPRE.InputComboBox(); this.label21 = new System.Windows.Forms.Label(); this.label22 = new System.Windows.Forms.Label(); this.morningFirstComboBox = new DSPRE.InputComboBox(); this.label23 = new System.Windows.Forms.Label(); this.label18 = new System.Windows.Forms.Label(); this.swarmFirstComboBox = new DSPRE.InputComboBox(); this.label17 = new System.Windows.Forms.Label(); this.nightSecondComboBox = new DSPRE.InputComboBox(); this.swarmSecondComboBox = new DSPRE.InputComboBox(); this.label19 = new System.Windows.Forms.Label(); this.label20 = new System.Windows.Forms.Label(); this.walkingGroupBox = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.label2 = new System.Windows.Forms.Label(); this.walkingOneSecondUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingOneFirstComboBox = new DSPRE.InputComboBox(); this.walkingOneFirstUpDown = new System.Windows.Forms.NumericUpDown(); this.label8 = new System.Windows.Forms.Label(); this.walkingOneSecondComboBox = new DSPRE.InputComboBox(); this.label11 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label(); this.walkingTwentyFirstComboBox = new DSPRE.InputComboBox(); this.walkingTenFourthComboBox = new DSPRE.InputComboBox(); this.walkingFiveFirstComboBox = new DSPRE.InputComboBox(); this.walkingTenThirdComboBox = new DSPRE.InputComboBox(); this.label9 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.walkingTenThirdUpDown = new System.Windows.Forms.NumericUpDown(); this.label6 = new System.Windows.Forms.Label(); this.label13 = new System.Windows.Forms.Label(); this.walkingFourFirstComboBox = new DSPRE.InputComboBox(); this.label12 = new System.Windows.Forms.Label(); this.walkingFourSecondComboBox = new DSPRE.InputComboBox(); this.walkingTwentySecondComboBox = new DSPRE.InputComboBox(); this.walkingFourSecondUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingTenSecondComboBox = new DSPRE.InputComboBox(); this.walkingFiveSecondComboBox = new DSPRE.InputComboBox(); this.walkingFourFirstUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingTwentyFirstUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingTenSecondUpDown = new System.Windows.Forms.NumericUpDown(); this.label5 = new System.Windows.Forms.Label(); this.walkingTenFirstUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingTenFirstComboBox = new DSPRE.InputComboBox(); this.walkingTwentySecondUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingFiveFirstUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingFiveSecondUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingTenFourthUpDown = new System.Windows.Forms.NumericUpDown(); this.walkingRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label14 = new System.Windows.Forms.Label(); this.waterTabPage = new System.Windows.Forms.TabPage(); this.surfPicture = new System.Windows.Forms.PictureBox(); this.pictureBox7 = new System.Windows.Forms.PictureBox(); this.pictureBox6 = new System.Windows.Forms.PictureBox(); this.pictureBox5 = new System.Windows.Forms.PictureBox(); this.superRodGroupBox = new System.Windows.Forms.GroupBox(); this.label59 = new System.Windows.Forms.Label(); this.label60 = new System.Windows.Forms.Label(); this.superRodRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label69 = new System.Windows.Forms.Label(); this.superRodOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label70 = new System.Windows.Forms.Label(); this.superRodOneComboBox = new DSPRE.InputComboBox(); this.superRodFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label71 = new System.Windows.Forms.Label(); this.superRodFourComboBox = new DSPRE.InputComboBox(); this.superRodFifteenMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodFifteenMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label72 = new System.Windows.Forms.Label(); this.superRodFifteenComboBox = new DSPRE.InputComboBox(); this.superRodSecondFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodSecondFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label73 = new System.Windows.Forms.Label(); this.superRodSecondFortyComboBox = new DSPRE.InputComboBox(); this.superRodFirstFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodFirstFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label74 = new System.Windows.Forms.Label(); this.superRodFirstFortyComboBox = new DSPRE.InputComboBox(); this.goodRodGroupBox = new System.Windows.Forms.GroupBox(); this.label51 = new System.Windows.Forms.Label(); this.label52 = new System.Windows.Forms.Label(); this.goodRodRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label53 = new System.Windows.Forms.Label(); this.goodRodOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label54 = new System.Windows.Forms.Label(); this.goodRodOneComboBox = new DSPRE.InputComboBox(); this.goodRodFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label55 = new System.Windows.Forms.Label(); this.goodRodFourComboBox = new DSPRE.InputComboBox(); this.goodRodFifteenMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodFifteenMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label56 = new System.Windows.Forms.Label(); this.goodRodFifteenComboBox = new DSPRE.InputComboBox(); this.goodRodSecondFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodSecondFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label57 = new System.Windows.Forms.Label(); this.goodRodSecondFortyComboBox = new DSPRE.InputComboBox(); this.goodRodFirstFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodFirstFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label58 = new System.Windows.Forms.Label(); this.goodRodFirstFortyComboBox = new DSPRE.InputComboBox(); this.oldRodGroupBox = new System.Windows.Forms.GroupBox(); this.label43 = new System.Windows.Forms.Label(); this.label44 = new System.Windows.Forms.Label(); this.oldRodRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label45 = new System.Windows.Forms.Label(); this.oldRodOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label46 = new System.Windows.Forms.Label(); this.oldRodOneComboBox = new DSPRE.InputComboBox(); this.oldRodFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label47 = new System.Windows.Forms.Label(); this.oldRodFourComboBox = new DSPRE.InputComboBox(); this.oldRodFiveMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodFiveMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label48 = new System.Windows.Forms.Label(); this.oldRodFiveComboBox = new DSPRE.InputComboBox(); this.oldRodThirtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodThirtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label49 = new System.Windows.Forms.Label(); this.oldRodThirtyComboBox = new DSPRE.InputComboBox(); this.oldRodSixtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodSixtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label50 = new System.Windows.Forms.Label(); this.oldRodSixtyComboBox = new DSPRE.InputComboBox(); this.surfGroupBox = new System.Windows.Forms.GroupBox(); this.label68 = new System.Windows.Forms.Label(); this.label67 = new System.Windows.Forms.Label(); this.surfRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label61 = new System.Windows.Forms.Label(); this.surfOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label62 = new System.Windows.Forms.Label(); this.surfOneComboBox = new DSPRE.InputComboBox(); this.surfFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label63 = new System.Windows.Forms.Label(); this.surfFourComboBox = new DSPRE.InputComboBox(); this.surfFiveMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfFiveMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label64 = new System.Windows.Forms.Label(); this.surfFiveComboBox = new DSPRE.InputComboBox(); this.surfThirtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfThirtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label65 = new System.Windows.Forms.Label(); this.surfThirtyComboBox = new DSPRE.InputComboBox(); this.surfSixtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfSixtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label66 = new System.Windows.Forms.Label(); this.surfSixtyComboBox = new DSPRE.InputComboBox(); this.repairAllButton = new System.Windows.Forms.Button(); this.mainTabControl.SuspendLayout(); this.grassGroundTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.radarGroupBox.SuspendLayout(); this.dualSlotGroupBox.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout(); this.timeGroupBox.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); this.walkingGroupBox.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.walkingOneSecondUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingOneFirstUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenThirdUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFourSecondUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFourFirstUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTwentyFirstUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenSecondUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenFirstUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTwentySecondUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFiveFirstUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFiveSecondUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenFourthUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingRateUpDown)).BeginInit(); this.waterTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.surfPicture)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); this.superRodGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.superRodRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMinLevelUpDown)).BeginInit(); this.goodRodGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.goodRodRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMinLevelUpDown)).BeginInit(); this.oldRodGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.oldRodRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMinLevelUpDown)).BeginInit(); this.surfGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.surfRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMinLevelUpDown)).BeginInit(); this.SuspendLayout(); // // encounterFileLabel // this.encounterFileLabel.AutoSize = true; this.encounterFileLabel.Location = new System.Drawing.Point(12, 10); this.encounterFileLabel.Name = "encounterFileLabel"; this.encounterFileLabel.Size = new System.Drawing.Size(117, 13); this.encounterFileLabel.TabIndex = 1; this.encounterFileLabel.Text = "Current Encounters File"; // // removeEventFileButton // this.removeEventFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeEventFileButton.Location = new System.Drawing.Point(101, 667); this.removeEventFileButton.Name = "removeEventFileButton"; this.removeEventFileButton.Size = new System.Drawing.Size(95, 35); this.removeEventFileButton.TabIndex = 60; this.removeEventFileButton.Text = "Remove Last"; this.removeEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeEventFileButton.UseVisualStyleBackColor = true; this.removeEventFileButton.Click += new System.EventHandler(this.removeLastEncounterFileButton_Click); // // addEventFileButton // this.addEventFileButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addEventFileButton.Location = new System.Drawing.Point(19, 667); this.addEventFileButton.Name = "addEventFileButton"; this.addEventFileButton.Size = new System.Drawing.Size(72, 35); this.addEventFileButton.TabIndex = 59; this.addEventFileButton.Text = "Add File"; this.addEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addEventFileButton.UseVisualStyleBackColor = true; this.addEventFileButton.Click += new System.EventHandler(this.addEncounterFileButton_Click); // // selectEncounterComboBox // this.selectEncounterComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectEncounterComboBox.FormattingEnabled = true; this.selectEncounterComboBox.Location = new System.Drawing.Point(14, 26); this.selectEncounterComboBox.Name = "selectEncounterComboBox"; this.selectEncounterComboBox.Size = new System.Drawing.Size(438, 21); this.selectEncounterComboBox.TabIndex = 58; this.selectEncounterComboBox.SelectedIndexChanged += new System.EventHandler(this.selectEncounterComboBox_SelectedIndexChanged); // // exportEncounterFileButton // this.exportEncounterFileButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportEncounterFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportEncounterFileButton.Location = new System.Drawing.Point(623, 13); this.exportEncounterFileButton.Name = "exportEncounterFileButton"; this.exportEncounterFileButton.Size = new System.Drawing.Size(90, 35); this.exportEncounterFileButton.TabIndex = 57; this.exportEncounterFileButton.Text = "Export\r\nCurrent"; this.exportEncounterFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportEncounterFileButton.UseVisualStyleBackColor = true; this.exportEncounterFileButton.Click += new System.EventHandler(this.exportEncounterFileButton_Click); // // importEncounterFileButton // this.importEncounterFileButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importEncounterFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importEncounterFileButton.Location = new System.Drawing.Point(520, 13); this.importEncounterFileButton.Name = "importEncounterFileButton"; this.importEncounterFileButton.Size = new System.Drawing.Size(90, 35); this.importEncounterFileButton.TabIndex = 56; this.importEncounterFileButton.Text = "Replace Current"; this.importEncounterFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importEncounterFileButton.UseVisualStyleBackColor = true; this.importEncounterFileButton.Click += new System.EventHandler(this.importEncounterFileButton_Click); // // saveEventsButton // this.saveEventsButton.Image = global::DSPRE.Properties.Resources.saveButton; this.saveEventsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveEventsButton.Location = new System.Drawing.Point(655, 667); this.saveEventsButton.Name = "saveEventsButton"; this.saveEventsButton.Size = new System.Drawing.Size(117, 35); this.saveEventsButton.TabIndex = 55; this.saveEventsButton.Text = "&Save Encounters"; this.saveEventsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveEventsButton.UseVisualStyleBackColor = true; this.saveEventsButton.Click += new System.EventHandler(this.saveEncountersButton_Click); // // mainTabControl // this.mainTabControl.Controls.Add(this.grassGroundTabPage); this.mainTabControl.Controls.Add(this.waterTabPage); this.mainTabControl.Location = new System.Drawing.Point(15, 59); this.mainTabControl.Name = "mainTabControl"; this.mainTabControl.SelectedIndex = 0; this.mainTabControl.Size = new System.Drawing.Size(761, 602); this.mainTabControl.TabIndex = 0; // // grassGroundTabPage // this.grassGroundTabPage.Controls.Add(this.pictureBox3); this.grassGroundTabPage.Controls.Add(this.pictureBox2); this.grassGroundTabPage.Controls.Add(this.pictureBox1); this.grassGroundTabPage.Controls.Add(this.radarGroupBox); this.grassGroundTabPage.Controls.Add(this.dualSlotGroupBox); this.grassGroundTabPage.Controls.Add(this.timeGroupBox); this.grassGroundTabPage.Controls.Add(this.walkingGroupBox); this.grassGroundTabPage.Controls.Add(this.walkingRateUpDown); this.grassGroundTabPage.Controls.Add(this.label14); this.grassGroundTabPage.Location = new System.Drawing.Point(4, 22); this.grassGroundTabPage.Name = "grassGroundTabPage"; this.grassGroundTabPage.Padding = new System.Windows.Forms.Padding(3); this.grassGroundTabPage.Size = new System.Drawing.Size(753, 576); this.grassGroundTabPage.TabIndex = 0; this.grassGroundTabPage.Text = "Grass/Ground"; this.grassGroundTabPage.UseVisualStyleBackColor = true; // // pictureBox3 // this.pictureBox3.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox3.Image"))); this.pictureBox3.Location = new System.Drawing.Point(70, 297); this.pictureBox3.Name = "pictureBox3"; this.pictureBox3.Size = new System.Drawing.Size(32, 30); this.pictureBox3.TabIndex = 194; this.pictureBox3.TabStop = false; // // pictureBox2 // this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image"))); this.pictureBox2.Location = new System.Drawing.Point(67, 28); this.pictureBox2.Name = "pictureBox2"; this.pictureBox2.Size = new System.Drawing.Size(25, 24); this.pictureBox2.TabIndex = 193; this.pictureBox2.TabStop = false; // // pictureBox1 // this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(82, 490); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(25, 26); this.pictureBox1.TabIndex = 192; this.pictureBox1.TabStop = false; // // radarGroupBox // this.radarGroupBox.Controls.Add(this.label42); this.radarGroupBox.Controls.Add(this.radarFourthComboBox); this.radarGroupBox.Controls.Add(this.label41); this.radarGroupBox.Controls.Add(this.radarThirdComboBox); this.radarGroupBox.Controls.Add(this.label40); this.radarGroupBox.Controls.Add(this.radarSecondComboBox); this.radarGroupBox.Controls.Add(this.label34); this.radarGroupBox.Controls.Add(this.radarFirstComboBox); this.radarGroupBox.Location = new System.Drawing.Point(15, 495); this.radarGroupBox.Name = "radarGroupBox"; this.radarGroupBox.Size = new System.Drawing.Size(720, 63); this.radarGroupBox.TabIndex = 191; this.radarGroupBox.TabStop = false; this.radarGroupBox.Text = "PokéRadar"; // // label42 // this.label42.AutoSize = true; this.label42.Location = new System.Drawing.Point(543, 32); this.label42.Name = "label42"; this.label42.Size = new System.Drawing.Size(21, 13); this.label42.TabIndex = 174; this.label42.Text = "1%"; // // radarFourthComboBox // this.radarFourthComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.radarFourthComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.radarFourthComboBox.FormattingEnabled = true; this.radarFourthComboBox.Location = new System.Drawing.Point(567, 28); this.radarFourthComboBox.Name = "radarFourthComboBox"; this.radarFourthComboBox.Size = new System.Drawing.Size(133, 21); this.radarFourthComboBox.TabIndex = 173; this.radarFourthComboBox.SelectedIndexChanged += new System.EventHandler(this.radarFourthComboBox_SelectedIndexChanged); // // label41 // this.label41.AutoSize = true; this.label41.Location = new System.Drawing.Point(370, 32); this.label41.Name = "label41"; this.label41.Size = new System.Drawing.Size(21, 13); this.label41.TabIndex = 172; this.label41.Text = "1%"; // // radarThirdComboBox // this.radarThirdComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.radarThirdComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.radarThirdComboBox.FormattingEnabled = true; this.radarThirdComboBox.Location = new System.Drawing.Point(394, 28); this.radarThirdComboBox.Name = "radarThirdComboBox"; this.radarThirdComboBox.Size = new System.Drawing.Size(133, 21); this.radarThirdComboBox.TabIndex = 171; this.radarThirdComboBox.SelectedIndexChanged += new System.EventHandler(this.radarThirdComboBox_SelectedIndexChanged); // // label40 // this.label40.AutoSize = true; this.label40.Location = new System.Drawing.Point(192, 32); this.label40.Name = "label40"; this.label40.Size = new System.Drawing.Size(27, 13); this.label40.TabIndex = 170; this.label40.Text = "10%"; // // radarSecondComboBox // this.radarSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.radarSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.radarSecondComboBox.FormattingEnabled = true; this.radarSecondComboBox.Location = new System.Drawing.Point(220, 28); this.radarSecondComboBox.Name = "radarSecondComboBox"; this.radarSecondComboBox.Size = new System.Drawing.Size(133, 21); this.radarSecondComboBox.TabIndex = 169; this.radarSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.radarSecondComboBox_SelectedIndexChanged); // // label34 // this.label34.AutoSize = true; this.label34.Location = new System.Drawing.Point(15, 32); this.label34.Name = "label34"; this.label34.Size = new System.Drawing.Size(27, 13); this.label34.TabIndex = 168; this.label34.Text = "10%"; // // radarFirstComboBox // this.radarFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.radarFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.radarFirstComboBox.FormattingEnabled = true; this.radarFirstComboBox.Location = new System.Drawing.Point(43, 28); this.radarFirstComboBox.Name = "radarFirstComboBox"; this.radarFirstComboBox.Size = new System.Drawing.Size(133, 21); this.radarFirstComboBox.TabIndex = 167; this.radarFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.radarFirstComboBox_SelectedIndexChanged); // // dualSlotGroupBox // this.dualSlotGroupBox.Controls.Add(this.tableLayoutPanel3); this.dualSlotGroupBox.Location = new System.Drawing.Point(15, 307); this.dualSlotGroupBox.Name = "dualSlotGroupBox"; this.dualSlotGroupBox.Size = new System.Drawing.Size(721, 182); this.dualSlotGroupBox.TabIndex = 190; this.dualSlotGroupBox.TabStop = false; this.dualSlotGroupBox.Text = "Dual Slot"; // // tableLayoutPanel3 // this.tableLayoutPanel3.ColumnCount = 8; this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15.91356F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 84.08644F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 27F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 193F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 12F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 39F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 198F)); this.tableLayoutPanel3.Controls.Add(this.label33, 0, 6); this.tableLayoutPanel3.Controls.Add(this.leafGreenFirstComboBox, 4, 5); this.tableLayoutPanel3.Controls.Add(this.fireRedSecondComboBox, 1, 6); this.tableLayoutPanel3.Controls.Add(this.label29, 1, 0); this.tableLayoutPanel3.Controls.Add(this.label37, 3, 6); this.tableLayoutPanel3.Controls.Add(this.label26, 0, 1); this.tableLayoutPanel3.Controls.Add(this.leafGreenSecondComboBox, 4, 6); this.tableLayoutPanel3.Controls.Add(this.label24, 0, 2); this.tableLayoutPanel3.Controls.Add(this.label35, 0, 5); this.tableLayoutPanel3.Controls.Add(this.rubyFirstComboBox, 1, 1); this.tableLayoutPanel3.Controls.Add(this.label39, 3, 5); this.tableLayoutPanel3.Controls.Add(this.fireRedFirstComboBox, 1, 5); this.tableLayoutPanel3.Controls.Add(this.rubySecondComboBox, 1, 2); this.tableLayoutPanel3.Controls.Add(this.label36, 4, 4); this.tableLayoutPanel3.Controls.Add(this.label38, 1, 4); this.tableLayoutPanel3.Controls.Add(this.label27, 4, 0); this.tableLayoutPanel3.Controls.Add(this.label30, 3, 1); this.tableLayoutPanel3.Controls.Add(this.label28, 3, 2); this.tableLayoutPanel3.Controls.Add(this.sapphireFirstComboBox, 4, 1); this.tableLayoutPanel3.Controls.Add(this.sapphireSecondComboBox, 4, 2); this.tableLayoutPanel3.Controls.Add(this.label32, 6, 2); this.tableLayoutPanel3.Controls.Add(this.emeraldSecondComboBox, 7, 2); this.tableLayoutPanel3.Controls.Add(this.label31, 6, 1); this.tableLayoutPanel3.Controls.Add(this.emeraldFirstComboBox, 7, 1); this.tableLayoutPanel3.Controls.Add(this.label25, 7, 0); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 7; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 80F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 19F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F)); this.tableLayoutPanel3.Size = new System.Drawing.Size(715, 163); this.tableLayoutPanel3.TabIndex = 217; // // label33 // this.label33.AutoSize = true; this.label33.Location = new System.Drawing.Point(3, 131); this.label33.Name = "label33"; this.label33.Size = new System.Drawing.Size(21, 13); this.label33.TabIndex = 206; this.label33.Text = "4%"; // // leafGreenFirstComboBox // this.leafGreenFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.leafGreenFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.leafGreenFirstComboBox.FormattingEnabled = true; this.leafGreenFirstComboBox.Location = new System.Drawing.Point(275, 104); this.leafGreenFirstComboBox.Name = "leafGreenFirstComboBox"; this.leafGreenFirstComboBox.Size = new System.Drawing.Size(184, 21); this.leafGreenFirstComboBox.TabIndex = 207; this.leafGreenFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.leafGreenFirstComboBox_SelectedIndexChanged); // // fireRedSecondComboBox // this.fireRedSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.fireRedSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.fireRedSecondComboBox.FormattingEnabled = true; this.fireRedSecondComboBox.Location = new System.Drawing.Point(39, 134); this.fireRedSecondComboBox.Name = "fireRedSecondComboBox"; this.fireRedSecondComboBox.Size = new System.Drawing.Size(182, 21); this.fireRedSecondComboBox.TabIndex = 205; this.fireRedSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.fireRedSecondComboBox_SelectedIndexChanged); // // label29 // this.label29.AutoSize = true; this.label29.Location = new System.Drawing.Point(39, 0); this.label29.Name = "label29"; this.label29.Size = new System.Drawing.Size(32, 9); this.label29.TabIndex = 200; this.label29.Text = "Ruby"; // // label37 // this.label37.AutoSize = true; this.label37.Location = new System.Drawing.Point(248, 131); this.label37.Name = "label37"; this.label37.Size = new System.Drawing.Size(21, 13); this.label37.TabIndex = 210; this.label37.Text = "4%"; // // label26 // this.label26.AutoSize = true; this.label26.Location = new System.Drawing.Point(3, 9); this.label26.Name = "label26"; this.label26.Size = new System.Drawing.Size(21, 13); this.label26.TabIndex = 189; this.label26.Text = "4%"; // // leafGreenSecondComboBox // this.leafGreenSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.leafGreenSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.leafGreenSecondComboBox.FormattingEnabled = true; this.leafGreenSecondComboBox.Location = new System.Drawing.Point(275, 134); this.leafGreenSecondComboBox.Name = "leafGreenSecondComboBox"; this.leafGreenSecondComboBox.Size = new System.Drawing.Size(183, 21); this.leafGreenSecondComboBox.TabIndex = 209; this.leafGreenSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.leafGreenSecondComboBox_SelectedIndexChanged); // // label24 // this.label24.AutoSize = true; this.label24.Location = new System.Drawing.Point(3, 45); this.label24.Name = "label24"; this.label24.Size = new System.Drawing.Size(21, 13); this.label24.TabIndex = 191; this.label24.Text = "4%"; // // label35 // this.label35.AutoSize = true; this.label35.Location = new System.Drawing.Point(3, 101); this.label35.Name = "label35"; this.label35.Size = new System.Drawing.Size(21, 13); this.label35.TabIndex = 204; this.label35.Text = "4%"; // // rubyFirstComboBox // this.rubyFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.rubyFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.rubyFirstComboBox.FormattingEnabled = true; this.rubyFirstComboBox.Location = new System.Drawing.Point(39, 12); this.rubyFirstComboBox.Name = "rubyFirstComboBox"; this.rubyFirstComboBox.Size = new System.Drawing.Size(182, 21); this.rubyFirstComboBox.TabIndex = 188; this.rubyFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.rubyFirstComboBox_SelectedIndexChanged); // // label39 // this.label39.AutoSize = true; this.label39.Location = new System.Drawing.Point(248, 101); this.label39.Name = "label39"; this.label39.Size = new System.Drawing.Size(21, 13); this.label39.TabIndex = 208; this.label39.Text = "4%"; // // fireRedFirstComboBox // this.fireRedFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.fireRedFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.fireRedFirstComboBox.FormattingEnabled = true; this.fireRedFirstComboBox.Location = new System.Drawing.Point(39, 104); this.fireRedFirstComboBox.Name = "fireRedFirstComboBox"; this.fireRedFirstComboBox.Size = new System.Drawing.Size(182, 21); this.fireRedFirstComboBox.TabIndex = 203; this.fireRedFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.fireRedFirstComboBox_SelectedIndexChanged); // // rubySecondComboBox // this.rubySecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.rubySecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.rubySecondComboBox.FormattingEnabled = true; this.rubySecondComboBox.Location = new System.Drawing.Point(39, 48); this.rubySecondComboBox.Name = "rubySecondComboBox"; this.rubySecondComboBox.Size = new System.Drawing.Size(182, 21); this.rubySecondComboBox.TabIndex = 190; this.rubySecondComboBox.SelectedIndexChanged += new System.EventHandler(this.rubySecondComboBox_SelectedIndexChanged); // // label36 // this.label36.AutoSize = true; this.label36.Location = new System.Drawing.Point(275, 84); this.label36.Name = "label36"; this.label36.Size = new System.Drawing.Size(60, 13); this.label36.TabIndex = 216; this.label36.Text = "Leaf Green"; // // label38 // this.label38.AutoSize = true; this.label38.Location = new System.Drawing.Point(39, 84); this.label38.Name = "label38"; this.label38.Size = new System.Drawing.Size(47, 13); this.label38.TabIndex = 215; this.label38.Text = "Fire Red"; // // label27 // this.label27.AutoSize = true; this.label27.Location = new System.Drawing.Point(275, 0); this.label27.Name = "label27"; this.label27.Size = new System.Drawing.Size(49, 9); this.label27.TabIndex = 201; this.label27.Text = "Sapphire"; // // label30 // this.label30.AutoSize = true; this.label30.Location = new System.Drawing.Point(248, 9); this.label30.Name = "label30"; this.label30.Size = new System.Drawing.Size(21, 13); this.label30.TabIndex = 193; this.label30.Text = "4%"; // // label28 // this.label28.AutoSize = true; this.label28.Location = new System.Drawing.Point(248, 45); this.label28.Name = "label28"; this.label28.Size = new System.Drawing.Size(21, 13); this.label28.TabIndex = 195; this.label28.Text = "4%"; // // sapphireFirstComboBox // this.sapphireFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.sapphireFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.sapphireFirstComboBox.FormattingEnabled = true; this.sapphireFirstComboBox.Location = new System.Drawing.Point(275, 12); this.sapphireFirstComboBox.Name = "sapphireFirstComboBox"; this.sapphireFirstComboBox.Size = new System.Drawing.Size(184, 21); this.sapphireFirstComboBox.TabIndex = 192; this.sapphireFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.sapphireFirstComboBox_SelectedIndexChanged); // // sapphireSecondComboBox // this.sapphireSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.sapphireSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.sapphireSecondComboBox.FormattingEnabled = true; this.sapphireSecondComboBox.Location = new System.Drawing.Point(275, 48); this.sapphireSecondComboBox.Name = "sapphireSecondComboBox"; this.sapphireSecondComboBox.Size = new System.Drawing.Size(183, 21); this.sapphireSecondComboBox.TabIndex = 194; this.sapphireSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.sapphireSecondComboBox_SelectedIndexChanged); // // label32 // this.label32.AutoSize = true; this.label32.Location = new System.Drawing.Point(480, 45); this.label32.Name = "label32"; this.label32.Size = new System.Drawing.Size(21, 13); this.label32.TabIndex = 199; this.label32.Text = "4%"; // // emeraldSecondComboBox // this.emeraldSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.emeraldSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.emeraldSecondComboBox.FormattingEnabled = true; this.emeraldSecondComboBox.Location = new System.Drawing.Point(519, 48); this.emeraldSecondComboBox.Name = "emeraldSecondComboBox"; this.emeraldSecondComboBox.Size = new System.Drawing.Size(184, 21); this.emeraldSecondComboBox.TabIndex = 198; this.emeraldSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.emeraldSecondComboBox_SelectedIndexChanged); // // label31 // this.label31.AutoSize = true; this.label31.Location = new System.Drawing.Point(480, 9); this.label31.Name = "label31"; this.label31.Size = new System.Drawing.Size(21, 13); this.label31.TabIndex = 197; this.label31.Text = "4%"; // // emeraldFirstComboBox // this.emeraldFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.emeraldFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.emeraldFirstComboBox.FormattingEnabled = true; this.emeraldFirstComboBox.Location = new System.Drawing.Point(519, 12); this.emeraldFirstComboBox.Name = "emeraldFirstComboBox"; this.emeraldFirstComboBox.Size = new System.Drawing.Size(184, 21); this.emeraldFirstComboBox.TabIndex = 196; this.emeraldFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.emeraldFirstComboBox_SelectedIndexChanged); // // label25 // this.label25.AutoSize = true; this.label25.Location = new System.Drawing.Point(519, 0); this.label25.Name = "label25"; this.label25.Size = new System.Drawing.Size(45, 9); this.label25.TabIndex = 202; this.label25.Text = "Emerald"; // // timeGroupBox // this.timeGroupBox.Controls.Add(this.tableLayoutPanel2); this.timeGroupBox.Location = new System.Drawing.Point(15, 186); this.timeGroupBox.Name = "timeGroupBox"; this.timeGroupBox.Size = new System.Drawing.Size(721, 110); this.timeGroupBox.TabIndex = 189; this.timeGroupBox.TabStop = false; this.timeGroupBox.Text = "Time-dependent"; // // tableLayoutPanel2 // this.tableLayoutPanel2.ColumnCount = 8; this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); this.tableLayoutPanel2.Controls.Add(this.label16, 0, 2); this.tableLayoutPanel2.Controls.Add(this.nightFirstComboBox, 4, 1); this.tableLayoutPanel2.Controls.Add(this.label15, 0, 1); this.tableLayoutPanel2.Controls.Add(this.morningSecondComboBox, 1, 2); this.tableLayoutPanel2.Controls.Add(this.label21, 1, 0); this.tableLayoutPanel2.Controls.Add(this.label22, 4, 0); this.tableLayoutPanel2.Controls.Add(this.morningFirstComboBox, 1, 1); this.tableLayoutPanel2.Controls.Add(this.label23, 7, 0); this.tableLayoutPanel2.Controls.Add(this.label18, 3, 2); this.tableLayoutPanel2.Controls.Add(this.swarmFirstComboBox, 7, 1); this.tableLayoutPanel2.Controls.Add(this.label17, 3, 1); this.tableLayoutPanel2.Controls.Add(this.nightSecondComboBox, 4, 2); this.tableLayoutPanel2.Controls.Add(this.swarmSecondComboBox, 7, 2); this.tableLayoutPanel2.Controls.Add(this.label19, 6, 1); this.tableLayoutPanel2.Controls.Add(this.label20, 6, 2); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 16); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 3; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.Size = new System.Drawing.Size(715, 91); this.tableLayoutPanel2.TabIndex = 195; // // label16 // this.label16.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label16.AutoSize = true; this.label16.Location = new System.Drawing.Point(3, 66); this.label16.Name = "label16"; this.label16.Size = new System.Drawing.Size(30, 13); this.label16.TabIndex = 170; this.label16.Text = "10%"; this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // nightFirstComboBox // this.nightFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.nightFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightFirstComboBox.FormattingEnabled = true; this.nightFirstComboBox.Location = new System.Drawing.Point(284, 27); this.nightFirstComboBox.Name = "nightFirstComboBox"; this.nightFirstComboBox.Size = new System.Drawing.Size(183, 21); this.nightFirstComboBox.TabIndex = 173; this.nightFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.nightFirstComboBox_SelectedIndexChanged); // // label15 // this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label15.AutoSize = true; this.label15.Location = new System.Drawing.Point(3, 31); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(30, 13); this.label15.TabIndex = 168; this.label15.Text = "10%"; this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // morningSecondComboBox // this.morningSecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.morningSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningSecondComboBox.FormattingEnabled = true; this.morningSecondComboBox.Location = new System.Drawing.Point(39, 62); this.morningSecondComboBox.Name = "morningSecondComboBox"; this.morningSecondComboBox.Size = new System.Drawing.Size(183, 21); this.morningSecondComboBox.TabIndex = 169; this.morningSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.morningSecondComboBox_SelectedIndexChanged); // // label21 // this.label21.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label21.AutoSize = true; this.label21.Location = new System.Drawing.Point(39, 3); this.label21.Name = "label21"; this.label21.Size = new System.Drawing.Size(183, 13); this.label21.TabIndex = 185; this.label21.Text = "Day only"; // // label22 // this.label22.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label22.AutoSize = true; this.label22.Location = new System.Drawing.Point(284, 3); this.label22.Name = "label22"; this.label22.Size = new System.Drawing.Size(183, 13); this.label22.TabIndex = 186; this.label22.Text = "Night only"; // // morningFirstComboBox // this.morningFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.morningFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningFirstComboBox.FormattingEnabled = true; this.morningFirstComboBox.Location = new System.Drawing.Point(39, 27); this.morningFirstComboBox.Name = "morningFirstComboBox"; this.morningFirstComboBox.Size = new System.Drawing.Size(183, 21); this.morningFirstComboBox.TabIndex = 167; this.morningFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.morningFirstComboBox_SelectedIndexChanged); // // label23 // this.label23.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label23.AutoSize = true; this.label23.Location = new System.Drawing.Point(529, 3); this.label23.Name = "label23"; this.label23.Size = new System.Drawing.Size(183, 13); this.label23.TabIndex = 187; this.label23.Text = "Swarms"; // // label18 // this.label18.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label18.AutoSize = true; this.label18.Location = new System.Drawing.Point(248, 66); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(30, 13); this.label18.TabIndex = 176; this.label18.Text = "10%"; this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // swarmFirstComboBox // this.swarmFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.swarmFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.swarmFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.swarmFirstComboBox.FormattingEnabled = true; this.swarmFirstComboBox.Location = new System.Drawing.Point(529, 27); this.swarmFirstComboBox.Name = "swarmFirstComboBox"; this.swarmFirstComboBox.Size = new System.Drawing.Size(183, 21); this.swarmFirstComboBox.TabIndex = 179; this.swarmFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.swarmFirstComboBox_SelectedIndexChanged); // // label17 // this.label17.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label17.AutoSize = true; this.label17.Location = new System.Drawing.Point(248, 31); this.label17.Name = "label17"; this.label17.Size = new System.Drawing.Size(30, 13); this.label17.TabIndex = 174; this.label17.Text = "10%"; this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // nightSecondComboBox // this.nightSecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.nightSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightSecondComboBox.FormattingEnabled = true; this.nightSecondComboBox.Location = new System.Drawing.Point(284, 62); this.nightSecondComboBox.Name = "nightSecondComboBox"; this.nightSecondComboBox.Size = new System.Drawing.Size(183, 21); this.nightSecondComboBox.TabIndex = 175; this.nightSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.nightSecondComboBox_SelectedIndexChanged); // // swarmSecondComboBox // this.swarmSecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.swarmSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.swarmSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.swarmSecondComboBox.FormattingEnabled = true; this.swarmSecondComboBox.Location = new System.Drawing.Point(529, 62); this.swarmSecondComboBox.Name = "swarmSecondComboBox"; this.swarmSecondComboBox.Size = new System.Drawing.Size(183, 21); this.swarmSecondComboBox.TabIndex = 181; this.swarmSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.swarmSecondComboBox_SelectedIndexChanged); // // label19 // this.label19.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label19.AutoSize = true; this.label19.Location = new System.Drawing.Point(493, 31); this.label19.Name = "label19"; this.label19.Size = new System.Drawing.Size(30, 13); this.label19.TabIndex = 180; this.label19.Text = "20%"; this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // label20 // this.label20.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label20.AutoSize = true; this.label20.Location = new System.Drawing.Point(493, 66); this.label20.Name = "label20"; this.label20.Size = new System.Drawing.Size(30, 13); this.label20.TabIndex = 182; this.label20.Text = "20%"; this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingGroupBox // this.walkingGroupBox.Controls.Add(this.tableLayoutPanel1); this.walkingGroupBox.Location = new System.Drawing.Point(15, 35); this.walkingGroupBox.Name = "walkingGroupBox"; this.walkingGroupBox.Padding = new System.Windows.Forms.Padding(5); this.walkingGroupBox.Size = new System.Drawing.Size(721, 147); this.walkingGroupBox.TabIndex = 188; this.walkingGroupBox.TabStop = false; this.walkingGroupBox.Text = "Walking"; // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 11; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.24242F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.090909F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 14F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.24242F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.090909F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 14F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.24242F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.090909F)); this.tableLayoutPanel1.Controls.Add(this.label2, 0, 0); this.tableLayoutPanel1.Controls.Add(this.walkingOneSecondUpDown, 10, 4); this.tableLayoutPanel1.Controls.Add(this.walkingOneFirstComboBox, 9, 3); this.tableLayoutPanel1.Controls.Add(this.walkingOneFirstUpDown, 10, 3); this.tableLayoutPanel1.Controls.Add(this.label8, 8, 1); this.tableLayoutPanel1.Controls.Add(this.walkingOneSecondComboBox, 9, 4); this.tableLayoutPanel1.Controls.Add(this.label11, 8, 3); this.tableLayoutPanel1.Controls.Add(this.label10, 8, 4); this.tableLayoutPanel1.Controls.Add(this.walkingTwentyFirstComboBox, 1, 0); this.tableLayoutPanel1.Controls.Add(this.walkingTenFourthComboBox, 9, 1); this.tableLayoutPanel1.Controls.Add(this.walkingFiveFirstComboBox, 1, 3); this.tableLayoutPanel1.Controls.Add(this.walkingTenThirdComboBox, 9, 0); this.tableLayoutPanel1.Controls.Add(this.label9, 8, 0); this.tableLayoutPanel1.Controls.Add(this.label3, 0, 1); this.tableLayoutPanel1.Controls.Add(this.label7, 0, 3); this.tableLayoutPanel1.Controls.Add(this.label4, 4, 1); this.tableLayoutPanel1.Controls.Add(this.walkingTenThirdUpDown, 10, 0); this.tableLayoutPanel1.Controls.Add(this.label6, 0, 4); this.tableLayoutPanel1.Controls.Add(this.label13, 4, 3); this.tableLayoutPanel1.Controls.Add(this.walkingFourFirstComboBox, 5, 3); this.tableLayoutPanel1.Controls.Add(this.label12, 4, 4); this.tableLayoutPanel1.Controls.Add(this.walkingFourSecondComboBox, 5, 4); this.tableLayoutPanel1.Controls.Add(this.walkingTwentySecondComboBox, 1, 1); this.tableLayoutPanel1.Controls.Add(this.walkingFourSecondUpDown, 6, 4); this.tableLayoutPanel1.Controls.Add(this.walkingTenSecondComboBox, 5, 1); this.tableLayoutPanel1.Controls.Add(this.walkingFiveSecondComboBox, 1, 4); this.tableLayoutPanel1.Controls.Add(this.walkingFourFirstUpDown, 6, 3); this.tableLayoutPanel1.Controls.Add(this.walkingTwentyFirstUpDown, 2, 0); this.tableLayoutPanel1.Controls.Add(this.walkingTenSecondUpDown, 6, 1); this.tableLayoutPanel1.Controls.Add(this.label5, 4, 0); this.tableLayoutPanel1.Controls.Add(this.walkingTenFirstUpDown, 6, 0); this.tableLayoutPanel1.Controls.Add(this.walkingTenFirstComboBox, 5, 0); this.tableLayoutPanel1.Controls.Add(this.walkingTwentySecondUpDown, 2, 1); this.tableLayoutPanel1.Controls.Add(this.walkingFiveFirstUpDown, 2, 3); this.tableLayoutPanel1.Controls.Add(this.walkingFiveSecondUpDown, 2, 4); this.tableLayoutPanel1.Controls.Add(this.walkingTenFourthUpDown, 10, 1); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 18); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 5; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(711, 124); this.tableLayoutPanel1.TabIndex = 195; // // label2 // this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(3, 7); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(30, 13); this.label2.TabIndex = 132; this.label2.Text = "20%"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingOneSecondUpDown // this.walkingOneSecondUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingOneSecondUpDown.Location = new System.Drawing.Point(660, 100); this.walkingOneSecondUpDown.Name = "walkingOneSecondUpDown"; this.walkingOneSecondUpDown.Size = new System.Drawing.Size(48, 20); this.walkingOneSecondUpDown.TabIndex = 166; this.walkingOneSecondUpDown.ValueChanged += new System.EventHandler(this.walkingOneSecondUpDown_ValueChanged); // // walkingOneFirstComboBox // this.walkingOneFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingOneFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingOneFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingOneFirstComboBox.FormattingEnabled = true; this.walkingOneFirstComboBox.Location = new System.Drawing.Point(521, 72); this.walkingOneFirstComboBox.Name = "walkingOneFirstComboBox"; this.walkingOneFirstComboBox.Size = new System.Drawing.Size(133, 21); this.walkingOneFirstComboBox.TabIndex = 151; this.walkingOneFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingOneFirstComboBox_SelectedIndexChanged); // // walkingOneFirstUpDown // this.walkingOneFirstUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingOneFirstUpDown.Location = new System.Drawing.Point(660, 72); this.walkingOneFirstUpDown.Name = "walkingOneFirstUpDown"; this.walkingOneFirstUpDown.Size = new System.Drawing.Size(48, 20); this.walkingOneFirstUpDown.TabIndex = 165; this.walkingOneFirstUpDown.ValueChanged += new System.EventHandler(this.walkingOneFirstUpDown_ValueChanged); // // label8 // this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(485, 34); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(30, 13); this.label8.TabIndex = 142; this.label8.Text = "10%"; this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingOneSecondComboBox // this.walkingOneSecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingOneSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingOneSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingOneSecondComboBox.FormattingEnabled = true; this.walkingOneSecondComboBox.Location = new System.Drawing.Point(521, 99); this.walkingOneSecondComboBox.Name = "walkingOneSecondComboBox"; this.walkingOneSecondComboBox.Size = new System.Drawing.Size(133, 21); this.walkingOneSecondComboBox.TabIndex = 153; this.walkingOneSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingOneSecondComboBox_SelectedIndexChanged); // // label11 // this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label11.AutoSize = true; this.label11.Location = new System.Drawing.Point(485, 76); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(30, 13); this.label11.TabIndex = 152; this.label11.Text = "1%"; this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // label10 // this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(485, 103); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(30, 13); this.label10.TabIndex = 154; this.label10.Text = "1%"; this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingTwentyFirstComboBox // this.walkingTwentyFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTwentyFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingTwentyFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingTwentyFirstComboBox.FormattingEnabled = true; this.walkingTwentyFirstComboBox.Location = new System.Drawing.Point(39, 3); this.walkingTwentyFirstComboBox.Name = "walkingTwentyFirstComboBox"; this.walkingTwentyFirstComboBox.Size = new System.Drawing.Size(133, 21); this.walkingTwentyFirstComboBox.TabIndex = 131; this.walkingTwentyFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingTwentyFirstComboBox_SelectedIndexChanged); // // walkingTenFourthComboBox // this.walkingTenFourthComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenFourthComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingTenFourthComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingTenFourthComboBox.FormattingEnabled = true; this.walkingTenFourthComboBox.Location = new System.Drawing.Point(521, 30); this.walkingTenFourthComboBox.Name = "walkingTenFourthComboBox"; this.walkingTenFourthComboBox.Size = new System.Drawing.Size(133, 21); this.walkingTenFourthComboBox.TabIndex = 141; this.walkingTenFourthComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingTenFourthComboBox_SelectedIndexChanged); // // walkingFiveFirstComboBox // this.walkingFiveFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFiveFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingFiveFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingFiveFirstComboBox.FormattingEnabled = true; this.walkingFiveFirstComboBox.Location = new System.Drawing.Point(39, 72); this.walkingFiveFirstComboBox.Name = "walkingFiveFirstComboBox"; this.walkingFiveFirstComboBox.Size = new System.Drawing.Size(133, 21); this.walkingFiveFirstComboBox.TabIndex = 143; this.walkingFiveFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingFiveFirstComboBox_SelectedIndexChanged); // // walkingTenThirdComboBox // this.walkingTenThirdComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenThirdComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingTenThirdComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingTenThirdComboBox.FormattingEnabled = true; this.walkingTenThirdComboBox.Location = new System.Drawing.Point(521, 3); this.walkingTenThirdComboBox.Name = "walkingTenThirdComboBox"; this.walkingTenThirdComboBox.Size = new System.Drawing.Size(133, 21); this.walkingTenThirdComboBox.TabIndex = 139; this.walkingTenThirdComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingTenThirdComboBox_SelectedIndexChanged); // // label9 // this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(485, 7); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(30, 13); this.label9.TabIndex = 140; this.label9.Text = "10%"; this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // label3 // this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(3, 34); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(30, 13); this.label3.TabIndex = 134; this.label3.Text = "20%"; this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // label7 // this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(3, 76); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(30, 13); this.label7.TabIndex = 144; this.label7.Text = "5%"; this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // label4 // this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(244, 34); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(30, 13); this.label4.TabIndex = 138; this.label4.Text = "10%"; this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingTenThirdUpDown // this.walkingTenThirdUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenThirdUpDown.Location = new System.Drawing.Point(660, 3); this.walkingTenThirdUpDown.Name = "walkingTenThirdUpDown"; this.walkingTenThirdUpDown.Size = new System.Drawing.Size(48, 20); this.walkingTenThirdUpDown.TabIndex = 163; this.walkingTenThirdUpDown.ValueChanged += new System.EventHandler(this.walkingTenThirdUpDown_ValueChanged); // // label6 // this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(3, 103); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(30, 13); this.label6.TabIndex = 146; this.label6.Text = "5%"; this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // label13 // this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label13.AutoSize = true; this.label13.Location = new System.Drawing.Point(244, 76); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(30, 13); this.label13.TabIndex = 148; this.label13.Text = "4%"; this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingFourFirstComboBox // this.walkingFourFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFourFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingFourFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingFourFirstComboBox.FormattingEnabled = true; this.walkingFourFirstComboBox.Location = new System.Drawing.Point(280, 72); this.walkingFourFirstComboBox.Name = "walkingFourFirstComboBox"; this.walkingFourFirstComboBox.Size = new System.Drawing.Size(133, 21); this.walkingFourFirstComboBox.TabIndex = 147; this.walkingFourFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingFourFirstComboBox_SelectedIndexChanged); // // label12 // this.label12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label12.AutoSize = true; this.label12.Location = new System.Drawing.Point(244, 103); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(30, 13); this.label12.TabIndex = 150; this.label12.Text = "4%"; this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingFourSecondComboBox // this.walkingFourSecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFourSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingFourSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingFourSecondComboBox.FormattingEnabled = true; this.walkingFourSecondComboBox.Location = new System.Drawing.Point(280, 99); this.walkingFourSecondComboBox.Name = "walkingFourSecondComboBox"; this.walkingFourSecondComboBox.Size = new System.Drawing.Size(133, 21); this.walkingFourSecondComboBox.TabIndex = 149; this.walkingFourSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingFourSecondComboBox_SelectedIndexChanged); // // walkingTwentySecondComboBox // this.walkingTwentySecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTwentySecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingTwentySecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingTwentySecondComboBox.FormattingEnabled = true; this.walkingTwentySecondComboBox.Location = new System.Drawing.Point(39, 30); this.walkingTwentySecondComboBox.Name = "walkingTwentySecondComboBox"; this.walkingTwentySecondComboBox.Size = new System.Drawing.Size(133, 21); this.walkingTwentySecondComboBox.TabIndex = 133; this.walkingTwentySecondComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingTwentySecondComboBox_SelectedIndexChanged); // // walkingFourSecondUpDown // this.walkingFourSecondUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFourSecondUpDown.Location = new System.Drawing.Point(419, 100); this.walkingFourSecondUpDown.Name = "walkingFourSecondUpDown"; this.walkingFourSecondUpDown.Size = new System.Drawing.Size(46, 20); this.walkingFourSecondUpDown.TabIndex = 162; this.walkingFourSecondUpDown.ValueChanged += new System.EventHandler(this.walkingFourSecondUpDown_ValueChanged); // // walkingTenSecondComboBox // this.walkingTenSecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingTenSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingTenSecondComboBox.FormattingEnabled = true; this.walkingTenSecondComboBox.Location = new System.Drawing.Point(280, 30); this.walkingTenSecondComboBox.Name = "walkingTenSecondComboBox"; this.walkingTenSecondComboBox.Size = new System.Drawing.Size(133, 21); this.walkingTenSecondComboBox.TabIndex = 137; this.walkingTenSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingTenSecondComboBox_SelectedIndexChanged); // // walkingFiveSecondComboBox // this.walkingFiveSecondComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFiveSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingFiveSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingFiveSecondComboBox.FormattingEnabled = true; this.walkingFiveSecondComboBox.Location = new System.Drawing.Point(39, 99); this.walkingFiveSecondComboBox.Name = "walkingFiveSecondComboBox"; this.walkingFiveSecondComboBox.Size = new System.Drawing.Size(133, 21); this.walkingFiveSecondComboBox.TabIndex = 145; this.walkingFiveSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingFiveSecondComboBox_SelectedIndexChanged); // // walkingFourFirstUpDown // this.walkingFourFirstUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFourFirstUpDown.Location = new System.Drawing.Point(419, 72); this.walkingFourFirstUpDown.Name = "walkingFourFirstUpDown"; this.walkingFourFirstUpDown.Size = new System.Drawing.Size(46, 20); this.walkingFourFirstUpDown.TabIndex = 161; this.walkingFourFirstUpDown.ValueChanged += new System.EventHandler(this.walkingFourFirstUpDown_ValueChanged); // // walkingTwentyFirstUpDown // this.walkingTwentyFirstUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTwentyFirstUpDown.Location = new System.Drawing.Point(178, 3); this.walkingTwentyFirstUpDown.Name = "walkingTwentyFirstUpDown"; this.walkingTwentyFirstUpDown.Size = new System.Drawing.Size(46, 20); this.walkingTwentyFirstUpDown.TabIndex = 155; this.walkingTwentyFirstUpDown.ValueChanged += new System.EventHandler(this.walkingTwentyFirstUpDown_ValueChanged); // // walkingTenSecondUpDown // this.walkingTenSecondUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenSecondUpDown.Location = new System.Drawing.Point(419, 30); this.walkingTenSecondUpDown.Name = "walkingTenSecondUpDown"; this.walkingTenSecondUpDown.Size = new System.Drawing.Size(46, 20); this.walkingTenSecondUpDown.TabIndex = 160; this.walkingTenSecondUpDown.ValueChanged += new System.EventHandler(this.walkingTenSecondUpDown_ValueChanged); // // label5 // this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(244, 7); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(30, 13); this.label5.TabIndex = 136; this.label5.Text = "10%"; this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // walkingTenFirstUpDown // this.walkingTenFirstUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenFirstUpDown.Location = new System.Drawing.Point(419, 3); this.walkingTenFirstUpDown.Name = "walkingTenFirstUpDown"; this.walkingTenFirstUpDown.Size = new System.Drawing.Size(46, 20); this.walkingTenFirstUpDown.TabIndex = 159; this.walkingTenFirstUpDown.ValueChanged += new System.EventHandler(this.walkingTenFirstUpDown_ValueChanged); // // walkingTenFirstComboBox // this.walkingTenFirstComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.walkingTenFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.walkingTenFirstComboBox.FormattingEnabled = true; this.walkingTenFirstComboBox.Location = new System.Drawing.Point(280, 3); this.walkingTenFirstComboBox.Name = "walkingTenFirstComboBox"; this.walkingTenFirstComboBox.Size = new System.Drawing.Size(133, 21); this.walkingTenFirstComboBox.TabIndex = 135; this.walkingTenFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.walkingTenFirstComboBox_SelectedIndexChanged); // // walkingTwentySecondUpDown // this.walkingTwentySecondUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTwentySecondUpDown.Location = new System.Drawing.Point(178, 30); this.walkingTwentySecondUpDown.Name = "walkingTwentySecondUpDown"; this.walkingTwentySecondUpDown.Size = new System.Drawing.Size(46, 20); this.walkingTwentySecondUpDown.TabIndex = 156; this.walkingTwentySecondUpDown.ValueChanged += new System.EventHandler(this.walkingTwentySecondUpDown_ValueChanged); // // walkingFiveFirstUpDown // this.walkingFiveFirstUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFiveFirstUpDown.Location = new System.Drawing.Point(178, 72); this.walkingFiveFirstUpDown.Name = "walkingFiveFirstUpDown"; this.walkingFiveFirstUpDown.Size = new System.Drawing.Size(46, 20); this.walkingFiveFirstUpDown.TabIndex = 157; this.walkingFiveFirstUpDown.ValueChanged += new System.EventHandler(this.walkingFiveFirstUpDown_ValueChanged); // // walkingFiveSecondUpDown // this.walkingFiveSecondUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingFiveSecondUpDown.Location = new System.Drawing.Point(178, 100); this.walkingFiveSecondUpDown.Name = "walkingFiveSecondUpDown"; this.walkingFiveSecondUpDown.Size = new System.Drawing.Size(46, 20); this.walkingFiveSecondUpDown.TabIndex = 158; this.walkingFiveSecondUpDown.ValueChanged += new System.EventHandler(this.walkingFiveSecondUpDown_ValueChanged); // // walkingTenFourthUpDown // this.walkingTenFourthUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.walkingTenFourthUpDown.Location = new System.Drawing.Point(660, 30); this.walkingTenFourthUpDown.Name = "walkingTenFourthUpDown"; this.walkingTenFourthUpDown.Size = new System.Drawing.Size(48, 20); this.walkingTenFourthUpDown.TabIndex = 164; this.walkingTenFourthUpDown.ValueChanged += new System.EventHandler(this.walkingTenFourthUpDown_ValueChanged); // // walkingRateUpDown // this.walkingRateUpDown.Location = new System.Drawing.Point(655, 14); this.walkingRateUpDown.Name = "walkingRateUpDown"; this.walkingRateUpDown.Size = new System.Drawing.Size(75, 20); this.walkingRateUpDown.TabIndex = 101; this.walkingRateUpDown.ValueChanged += new System.EventHandler(this.walkingRateUpDown_ValueChanged); // // label14 // this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(566, 17); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(82, 13); this.label14.TabIndex = 100; this.label14.Text = "Encounter Rate"; // // waterTabPage // this.waterTabPage.Controls.Add(this.surfPicture); this.waterTabPage.Controls.Add(this.pictureBox7); this.waterTabPage.Controls.Add(this.pictureBox6); this.waterTabPage.Controls.Add(this.pictureBox5); this.waterTabPage.Controls.Add(this.superRodGroupBox); this.waterTabPage.Controls.Add(this.goodRodGroupBox); this.waterTabPage.Controls.Add(this.oldRodGroupBox); this.waterTabPage.Controls.Add(this.surfGroupBox); this.waterTabPage.Location = new System.Drawing.Point(4, 22); this.waterTabPage.Name = "waterTabPage"; this.waterTabPage.Padding = new System.Windows.Forms.Padding(3); this.waterTabPage.Size = new System.Drawing.Size(753, 576); this.waterTabPage.TabIndex = 1; this.waterTabPage.Text = "Water"; this.waterTabPage.UseVisualStyleBackColor = true; // // surfPicture // this.surfPicture.Image = global::DSPRE.Properties.Resources.SurfIcon; this.surfPicture.Location = new System.Drawing.Point(66, 11); this.surfPicture.Name = "surfPicture"; this.surfPicture.Size = new System.Drawing.Size(42, 42); this.surfPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.surfPicture.TabIndex = 198; this.surfPicture.TabStop = false; // // pictureBox7 // this.pictureBox7.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox7.Image"))); this.pictureBox7.Location = new System.Drawing.Point(478, 304); this.pictureBox7.Name = "pictureBox7"; this.pictureBox7.Size = new System.Drawing.Size(25, 26); this.pictureBox7.TabIndex = 196; this.pictureBox7.TabStop = false; // // pictureBox6 // this.pictureBox6.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox6.Image"))); this.pictureBox6.Location = new System.Drawing.Point(78, 304); this.pictureBox6.Name = "pictureBox6"; this.pictureBox6.Size = new System.Drawing.Size(25, 26); this.pictureBox6.TabIndex = 195; this.pictureBox6.TabStop = false; // // pictureBox5 // this.pictureBox5.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox5.Image"))); this.pictureBox5.Location = new System.Drawing.Point(466, 19); this.pictureBox5.Name = "pictureBox5"; this.pictureBox5.Size = new System.Drawing.Size(25, 26); this.pictureBox5.TabIndex = 194; this.pictureBox5.TabStop = false; // // superRodGroupBox // this.superRodGroupBox.Controls.Add(this.label59); this.superRodGroupBox.Controls.Add(this.label60); this.superRodGroupBox.Controls.Add(this.superRodRateUpDown); this.superRodGroupBox.Controls.Add(this.label69); this.superRodGroupBox.Controls.Add(this.superRodOneMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodOneMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label70); this.superRodGroupBox.Controls.Add(this.superRodOneComboBox); this.superRodGroupBox.Controls.Add(this.superRodFourMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodFourMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label71); this.superRodGroupBox.Controls.Add(this.superRodFourComboBox); this.superRodGroupBox.Controls.Add(this.superRodFifteenMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodFifteenMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label72); this.superRodGroupBox.Controls.Add(this.superRodFifteenComboBox); this.superRodGroupBox.Controls.Add(this.superRodSecondFortyMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodSecondFortyMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label73); this.superRodGroupBox.Controls.Add(this.superRodSecondFortyComboBox); this.superRodGroupBox.Controls.Add(this.superRodFirstFortyMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodFirstFortyMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label74); this.superRodGroupBox.Controls.Add(this.superRodFirstFortyComboBox); this.superRodGroupBox.Location = new System.Drawing.Point(408, 312); this.superRodGroupBox.Name = "superRodGroupBox"; this.superRodGroupBox.Size = new System.Drawing.Size(325, 220); this.superRodGroupBox.TabIndex = 44; this.superRodGroupBox.TabStop = false; this.superRodGroupBox.Text = "Super Rod"; // // label59 // this.label59.AutoSize = true; this.label59.Location = new System.Drawing.Point(264, 57); this.label59.Name = "label59"; this.label59.Size = new System.Drawing.Size(47, 13); this.label59.TabIndex = 41; this.label59.Text = "Max Lvl."; // // label60 // this.label60.AutoSize = true; this.label60.Location = new System.Drawing.Point(214, 57); this.label60.Name = "label60"; this.label60.Size = new System.Drawing.Size(44, 13); this.label60.TabIndex = 40; this.label60.Text = "Min Lvl."; // // superRodRateUpDown // this.superRodRateUpDown.Location = new System.Drawing.Point(265, 16); this.superRodRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.superRodRateUpDown.Name = "superRodRateUpDown"; this.superRodRateUpDown.Size = new System.Drawing.Size(42, 20); this.superRodRateUpDown.TabIndex = 39; this.superRodRateUpDown.ValueChanged += new System.EventHandler(this.superRodRateUpDown_ValueChanged); // // label69 // this.label69.AutoSize = true; this.label69.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label69.Location = new System.Drawing.Point(229, 18); this.label69.Name = "label69"; this.label69.Size = new System.Drawing.Size(30, 13); this.label69.TabIndex = 38; this.label69.Text = "Rate"; // // superRodOneMaxLevelUpDown // this.superRodOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 186); this.superRodOneMaxLevelUpDown.Name = "superRodOneMaxLevelUpDown"; this.superRodOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodOneMaxLevelUpDown.TabIndex = 22; this.superRodOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodOneMaxLevelUpDown_ValueChanged); // // superRodOneMinLevelUpDown // this.superRodOneMinLevelUpDown.Location = new System.Drawing.Point(217, 186); this.superRodOneMinLevelUpDown.Name = "superRodOneMinLevelUpDown"; this.superRodOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodOneMinLevelUpDown.TabIndex = 21; this.superRodOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodOneMinLevelUpDown_ValueChanged); // // label70 // this.label70.AutoSize = true; this.label70.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label70.Location = new System.Drawing.Point(18, 188); this.label70.Name = "label70"; this.label70.Size = new System.Drawing.Size(21, 13); this.label70.TabIndex = 20; this.label70.Text = "5%"; // // superRodOneComboBox // this.superRodOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodOneComboBox.FormattingEnabled = true; this.superRodOneComboBox.Location = new System.Drawing.Point(45, 185); this.superRodOneComboBox.Name = "superRodOneComboBox"; this.superRodOneComboBox.Size = new System.Drawing.Size(154, 21); this.superRodOneComboBox.TabIndex = 19; this.superRodOneComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodOneComboBox_SelectedIndexChanged); // // superRodFourMaxLevelUpDown // this.superRodFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 159); this.superRodFourMaxLevelUpDown.Name = "superRodFourMaxLevelUpDown"; this.superRodFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFourMaxLevelUpDown.TabIndex = 18; this.superRodFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFourMaxLevelUpDown_ValueChanged); // // superRodFourMinLevelUpDown // this.superRodFourMinLevelUpDown.Location = new System.Drawing.Point(217, 159); this.superRodFourMinLevelUpDown.Name = "superRodFourMinLevelUpDown"; this.superRodFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFourMinLevelUpDown.TabIndex = 17; this.superRodFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFourMinLevelUpDown_ValueChanged); // // label71 // this.label71.AutoSize = true; this.label71.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label71.Location = new System.Drawing.Point(12, 161); this.label71.Name = "label71"; this.label71.Size = new System.Drawing.Size(27, 13); this.label71.TabIndex = 16; this.label71.Text = "10%"; // // superRodFourComboBox // this.superRodFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodFourComboBox.FormattingEnabled = true; this.superRodFourComboBox.Location = new System.Drawing.Point(45, 158); this.superRodFourComboBox.Name = "superRodFourComboBox"; this.superRodFourComboBox.Size = new System.Drawing.Size(154, 21); this.superRodFourComboBox.TabIndex = 15; this.superRodFourComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodFourComboBox_SelectedIndexChanged); // // superRodFifteenMaxLevelUpDown // this.superRodFifteenMaxLevelUpDown.Location = new System.Drawing.Point(265, 132); this.superRodFifteenMaxLevelUpDown.Name = "superRodFifteenMaxLevelUpDown"; this.superRodFifteenMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFifteenMaxLevelUpDown.TabIndex = 14; this.superRodFifteenMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFifteenMaxLevelUpDown_ValueChanged); // // superRodFifteenMinLevelUpDown // this.superRodFifteenMinLevelUpDown.Location = new System.Drawing.Point(217, 132); this.superRodFifteenMinLevelUpDown.Name = "superRodFifteenMinLevelUpDown"; this.superRodFifteenMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFifteenMinLevelUpDown.TabIndex = 13; this.superRodFifteenMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFifteenMinLevelUpDown_ValueChanged); // // label72 // this.label72.AutoSize = true; this.label72.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label72.Location = new System.Drawing.Point(11, 134); this.label72.Name = "label72"; this.label72.Size = new System.Drawing.Size(27, 13); this.label72.TabIndex = 12; this.label72.Text = "15%"; // // superRodFifteenComboBox // this.superRodFifteenComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodFifteenComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodFifteenComboBox.FormattingEnabled = true; this.superRodFifteenComboBox.Location = new System.Drawing.Point(45, 131); this.superRodFifteenComboBox.Name = "superRodFifteenComboBox"; this.superRodFifteenComboBox.Size = new System.Drawing.Size(154, 21); this.superRodFifteenComboBox.TabIndex = 11; this.superRodFifteenComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodFifteenComboBox_SelectedIndexChanged); // // superRodSecondFortyMaxLevelUpDown // this.superRodSecondFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 105); this.superRodSecondFortyMaxLevelUpDown.Name = "superRodSecondFortyMaxLevelUpDown"; this.superRodSecondFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodSecondFortyMaxLevelUpDown.TabIndex = 10; this.superRodSecondFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodSecondFortyMaxLevelUpDown_ValueChanged); // // superRodSecondFortyMinLevelUpDown // this.superRodSecondFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 105); this.superRodSecondFortyMinLevelUpDown.Name = "superRodSecondFortyMinLevelUpDown"; this.superRodSecondFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodSecondFortyMinLevelUpDown.TabIndex = 9; this.superRodSecondFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodSecondFortyMinLevelUpDown_ValueChanged); // // label73 // this.label73.AutoSize = true; this.label73.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label73.Location = new System.Drawing.Point(12, 107); this.label73.Name = "label73"; this.label73.Size = new System.Drawing.Size(27, 13); this.label73.TabIndex = 8; this.label73.Text = "30%"; // // superRodSecondFortyComboBox // this.superRodSecondFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodSecondFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodSecondFortyComboBox.FormattingEnabled = true; this.superRodSecondFortyComboBox.Location = new System.Drawing.Point(45, 104); this.superRodSecondFortyComboBox.Name = "superRodSecondFortyComboBox"; this.superRodSecondFortyComboBox.Size = new System.Drawing.Size(154, 21); this.superRodSecondFortyComboBox.TabIndex = 7; this.superRodSecondFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodSecondFortyComboBox_SelectedIndexChanged); // // superRodFirstFortyMaxLevelUpDown // this.superRodFirstFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 78); this.superRodFirstFortyMaxLevelUpDown.Name = "superRodFirstFortyMaxLevelUpDown"; this.superRodFirstFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFirstFortyMaxLevelUpDown.TabIndex = 6; this.superRodFirstFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFirstFortyMaxLevelUpDown_ValueChanged); // // superRodFirstFortyMinLevelUpDown // this.superRodFirstFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 78); this.superRodFirstFortyMinLevelUpDown.Name = "superRodFirstFortyMinLevelUpDown"; this.superRodFirstFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFirstFortyMinLevelUpDown.TabIndex = 5; this.superRodFirstFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFirstFortyMinLevelUpDown_ValueChanged); // // label74 // this.label74.AutoSize = true; this.label74.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label74.Location = new System.Drawing.Point(12, 80); this.label74.Name = "label74"; this.label74.Size = new System.Drawing.Size(27, 13); this.label74.TabIndex = 4; this.label74.Text = "40%"; // // superRodFirstFortyComboBox // this.superRodFirstFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodFirstFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodFirstFortyComboBox.FormattingEnabled = true; this.superRodFirstFortyComboBox.Location = new System.Drawing.Point(45, 77); this.superRodFirstFortyComboBox.Name = "superRodFirstFortyComboBox"; this.superRodFirstFortyComboBox.Size = new System.Drawing.Size(154, 21); this.superRodFirstFortyComboBox.TabIndex = 3; this.superRodFirstFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodFirstFortyComboBox_SelectedIndexChanged); // // goodRodGroupBox // this.goodRodGroupBox.Controls.Add(this.label51); this.goodRodGroupBox.Controls.Add(this.label52); this.goodRodGroupBox.Controls.Add(this.goodRodRateUpDown); this.goodRodGroupBox.Controls.Add(this.label53); this.goodRodGroupBox.Controls.Add(this.goodRodOneMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodOneMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label54); this.goodRodGroupBox.Controls.Add(this.goodRodOneComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodFourMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodFourMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label55); this.goodRodGroupBox.Controls.Add(this.goodRodFourComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodFifteenMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodFifteenMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label56); this.goodRodGroupBox.Controls.Add(this.goodRodFifteenComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodSecondFortyMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodSecondFortyMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label57); this.goodRodGroupBox.Controls.Add(this.goodRodSecondFortyComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodFirstFortyMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodFirstFortyMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label58); this.goodRodGroupBox.Controls.Add(this.goodRodFirstFortyComboBox); this.goodRodGroupBox.Location = new System.Drawing.Point(16, 312); this.goodRodGroupBox.Name = "goodRodGroupBox"; this.goodRodGroupBox.Size = new System.Drawing.Size(325, 220); this.goodRodGroupBox.TabIndex = 43; this.goodRodGroupBox.TabStop = false; this.goodRodGroupBox.Text = "Good Rod"; // // label51 // this.label51.AutoSize = true; this.label51.Location = new System.Drawing.Point(264, 57); this.label51.Name = "label51"; this.label51.Size = new System.Drawing.Size(47, 13); this.label51.TabIndex = 41; this.label51.Text = "Max Lvl."; // // label52 // this.label52.AutoSize = true; this.label52.Location = new System.Drawing.Point(214, 57); this.label52.Name = "label52"; this.label52.Size = new System.Drawing.Size(44, 13); this.label52.TabIndex = 40; this.label52.Text = "Min Lvl."; // // goodRodRateUpDown // this.goodRodRateUpDown.Location = new System.Drawing.Point(265, 16); this.goodRodRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.goodRodRateUpDown.Name = "goodRodRateUpDown"; this.goodRodRateUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodRateUpDown.TabIndex = 39; this.goodRodRateUpDown.ValueChanged += new System.EventHandler(this.goodRodRateUpDown_ValueChanged); // // label53 // this.label53.AutoSize = true; this.label53.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label53.Location = new System.Drawing.Point(229, 18); this.label53.Name = "label53"; this.label53.Size = new System.Drawing.Size(30, 13); this.label53.TabIndex = 38; this.label53.Text = "Rate"; // // goodRodOneMaxLevelUpDown // this.goodRodOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 186); this.goodRodOneMaxLevelUpDown.Name = "goodRodOneMaxLevelUpDown"; this.goodRodOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodOneMaxLevelUpDown.TabIndex = 22; this.goodRodOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodOneMaxLevelUpDown_ValueChanged); // // goodRodOneMinLevelUpDown // this.goodRodOneMinLevelUpDown.Location = new System.Drawing.Point(217, 186); this.goodRodOneMinLevelUpDown.Name = "goodRodOneMinLevelUpDown"; this.goodRodOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodOneMinLevelUpDown.TabIndex = 21; this.goodRodOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodOneMinLevelUpDown_ValueChanged); // // label54 // this.label54.AutoSize = true; this.label54.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label54.Location = new System.Drawing.Point(18, 188); this.label54.Name = "label54"; this.label54.Size = new System.Drawing.Size(21, 13); this.label54.TabIndex = 20; this.label54.Text = "5%"; // // goodRodOneComboBox // this.goodRodOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodOneComboBox.FormattingEnabled = true; this.goodRodOneComboBox.Location = new System.Drawing.Point(45, 185); this.goodRodOneComboBox.Name = "goodRodOneComboBox"; this.goodRodOneComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodOneComboBox.TabIndex = 19; this.goodRodOneComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodOneComboBox_SelectedIndexChanged); // // goodRodFourMaxLevelUpDown // this.goodRodFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 159); this.goodRodFourMaxLevelUpDown.Name = "goodRodFourMaxLevelUpDown"; this.goodRodFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFourMaxLevelUpDown.TabIndex = 18; this.goodRodFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFourMaxLevelUpDown_ValueChanged); // // goodRodFourMinLevelUpDown // this.goodRodFourMinLevelUpDown.Location = new System.Drawing.Point(217, 159); this.goodRodFourMinLevelUpDown.Name = "goodRodFourMinLevelUpDown"; this.goodRodFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFourMinLevelUpDown.TabIndex = 17; this.goodRodFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFourMinLevelUpDown_ValueChanged); // // label55 // this.label55.AutoSize = true; this.label55.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label55.Location = new System.Drawing.Point(12, 161); this.label55.Name = "label55"; this.label55.Size = new System.Drawing.Size(27, 13); this.label55.TabIndex = 16; this.label55.Text = "10%"; // // goodRodFourComboBox // this.goodRodFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodFourComboBox.FormattingEnabled = true; this.goodRodFourComboBox.Location = new System.Drawing.Point(45, 158); this.goodRodFourComboBox.Name = "goodRodFourComboBox"; this.goodRodFourComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodFourComboBox.TabIndex = 15; this.goodRodFourComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodFourComboBox_SelectedIndexChanged); // // goodRodFifteenMaxLevelUpDown // this.goodRodFifteenMaxLevelUpDown.Location = new System.Drawing.Point(265, 132); this.goodRodFifteenMaxLevelUpDown.Name = "goodRodFifteenMaxLevelUpDown"; this.goodRodFifteenMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFifteenMaxLevelUpDown.TabIndex = 14; this.goodRodFifteenMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFifteenMaxLevelUpDown_ValueChanged); // // goodRodFifteenMinLevelUpDown // this.goodRodFifteenMinLevelUpDown.Location = new System.Drawing.Point(217, 132); this.goodRodFifteenMinLevelUpDown.Name = "goodRodFifteenMinLevelUpDown"; this.goodRodFifteenMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFifteenMinLevelUpDown.TabIndex = 13; this.goodRodFifteenMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFifteenMinLevelUpDown_ValueChanged); // // label56 // this.label56.AutoSize = true; this.label56.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label56.Location = new System.Drawing.Point(11, 134); this.label56.Name = "label56"; this.label56.Size = new System.Drawing.Size(27, 13); this.label56.TabIndex = 12; this.label56.Text = "15%"; // // goodRodFifteenComboBox // this.goodRodFifteenComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodFifteenComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodFifteenComboBox.FormattingEnabled = true; this.goodRodFifteenComboBox.Location = new System.Drawing.Point(45, 131); this.goodRodFifteenComboBox.Name = "goodRodFifteenComboBox"; this.goodRodFifteenComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodFifteenComboBox.TabIndex = 11; this.goodRodFifteenComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodFifteenComboBox_SelectedIndexChanged); // // goodRodSecondFortyMaxLevelUpDown // this.goodRodSecondFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 105); this.goodRodSecondFortyMaxLevelUpDown.Name = "goodRodSecondFortyMaxLevelUpDown"; this.goodRodSecondFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodSecondFortyMaxLevelUpDown.TabIndex = 10; this.goodRodSecondFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodSecondFortyMaxLevelUpDown_ValueChanged); // // goodRodSecondFortyMinLevelUpDown // this.goodRodSecondFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 105); this.goodRodSecondFortyMinLevelUpDown.Name = "goodRodSecondFortyMinLevelUpDown"; this.goodRodSecondFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodSecondFortyMinLevelUpDown.TabIndex = 9; this.goodRodSecondFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodSecondFortyMinLevelUpDown_ValueChanged); // // label57 // this.label57.AutoSize = true; this.label57.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label57.Location = new System.Drawing.Point(12, 107); this.label57.Name = "label57"; this.label57.Size = new System.Drawing.Size(27, 13); this.label57.TabIndex = 8; this.label57.Text = "30%"; // // goodRodSecondFortyComboBox // this.goodRodSecondFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodSecondFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodSecondFortyComboBox.FormattingEnabled = true; this.goodRodSecondFortyComboBox.Location = new System.Drawing.Point(45, 104); this.goodRodSecondFortyComboBox.Name = "goodRodSecondFortyComboBox"; this.goodRodSecondFortyComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodSecondFortyComboBox.TabIndex = 7; this.goodRodSecondFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodSecondFortyComboBox_SelectedIndexChanged); // // goodRodFirstFortyMaxLevelUpDown // this.goodRodFirstFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 78); this.goodRodFirstFortyMaxLevelUpDown.Name = "goodRodFirstFortyMaxLevelUpDown"; this.goodRodFirstFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFirstFortyMaxLevelUpDown.TabIndex = 6; this.goodRodFirstFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFirstFortyMaxLevelUpDown_ValueChanged); // // goodRodFirstFortyMinLevelUpDown // this.goodRodFirstFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 78); this.goodRodFirstFortyMinLevelUpDown.Name = "goodRodFirstFortyMinLevelUpDown"; this.goodRodFirstFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFirstFortyMinLevelUpDown.TabIndex = 5; this.goodRodFirstFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFirstFortyMinLevelUpDown_ValueChanged); // // label58 // this.label58.AutoSize = true; this.label58.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label58.Location = new System.Drawing.Point(12, 80); this.label58.Name = "label58"; this.label58.Size = new System.Drawing.Size(27, 13); this.label58.TabIndex = 4; this.label58.Text = "40%"; // // goodRodFirstFortyComboBox // this.goodRodFirstFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodFirstFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodFirstFortyComboBox.FormattingEnabled = true; this.goodRodFirstFortyComboBox.Location = new System.Drawing.Point(45, 77); this.goodRodFirstFortyComboBox.Name = "goodRodFirstFortyComboBox"; this.goodRodFirstFortyComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodFirstFortyComboBox.TabIndex = 3; this.goodRodFirstFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodFirstFortyComboBox_SelectedIndexChanged); // // oldRodGroupBox // this.oldRodGroupBox.Controls.Add(this.label43); this.oldRodGroupBox.Controls.Add(this.label44); this.oldRodGroupBox.Controls.Add(this.oldRodRateUpDown); this.oldRodGroupBox.Controls.Add(this.label45); this.oldRodGroupBox.Controls.Add(this.oldRodOneMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodOneMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label46); this.oldRodGroupBox.Controls.Add(this.oldRodOneComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodFourMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodFourMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label47); this.oldRodGroupBox.Controls.Add(this.oldRodFourComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodFiveMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodFiveMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label48); this.oldRodGroupBox.Controls.Add(this.oldRodFiveComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodThirtyMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodThirtyMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label49); this.oldRodGroupBox.Controls.Add(this.oldRodThirtyComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodSixtyMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodSixtyMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label50); this.oldRodGroupBox.Controls.Add(this.oldRodSixtyComboBox); this.oldRodGroupBox.Location = new System.Drawing.Point(408, 25); this.oldRodGroupBox.Name = "oldRodGroupBox"; this.oldRodGroupBox.Size = new System.Drawing.Size(325, 220); this.oldRodGroupBox.TabIndex = 42; this.oldRodGroupBox.TabStop = false; this.oldRodGroupBox.Text = "Old Rod"; // // label43 // this.label43.AutoSize = true; this.label43.Location = new System.Drawing.Point(264, 57); this.label43.Name = "label43"; this.label43.Size = new System.Drawing.Size(47, 13); this.label43.TabIndex = 41; this.label43.Text = "Max Lvl."; // // label44 // this.label44.AutoSize = true; this.label44.Location = new System.Drawing.Point(214, 57); this.label44.Name = "label44"; this.label44.Size = new System.Drawing.Size(44, 13); this.label44.TabIndex = 40; this.label44.Text = "Min Lvl."; // // oldRodRateUpDown // this.oldRodRateUpDown.Location = new System.Drawing.Point(265, 16); this.oldRodRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.oldRodRateUpDown.Name = "oldRodRateUpDown"; this.oldRodRateUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodRateUpDown.TabIndex = 39; this.oldRodRateUpDown.ValueChanged += new System.EventHandler(this.oldRodRateUpDown_ValueChanged); // // label45 // this.label45.AutoSize = true; this.label45.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label45.Location = new System.Drawing.Point(229, 18); this.label45.Name = "label45"; this.label45.Size = new System.Drawing.Size(30, 13); this.label45.TabIndex = 38; this.label45.Text = "Rate"; // // oldRodOneMaxLevelUpDown // this.oldRodOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 186); this.oldRodOneMaxLevelUpDown.Name = "oldRodOneMaxLevelUpDown"; this.oldRodOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodOneMaxLevelUpDown.TabIndex = 22; this.oldRodOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodOneMaxLevelUpDown_ValueChanged); // // oldRodOneMinLevelUpDown // this.oldRodOneMinLevelUpDown.Location = new System.Drawing.Point(217, 186); this.oldRodOneMinLevelUpDown.Name = "oldRodOneMinLevelUpDown"; this.oldRodOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodOneMinLevelUpDown.TabIndex = 21; this.oldRodOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodOneMinLevelUpDown_ValueChanged); // // label46 // this.label46.AutoSize = true; this.label46.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label46.Location = new System.Drawing.Point(18, 188); this.label46.Name = "label46"; this.label46.Size = new System.Drawing.Size(21, 13); this.label46.TabIndex = 20; this.label46.Text = "5%"; // // oldRodOneComboBox // this.oldRodOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodOneComboBox.FormattingEnabled = true; this.oldRodOneComboBox.Location = new System.Drawing.Point(45, 185); this.oldRodOneComboBox.Name = "oldRodOneComboBox"; this.oldRodOneComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodOneComboBox.TabIndex = 19; this.oldRodOneComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodOneComboBox_SelectedIndexChanged); // // oldRodFourMaxLevelUpDown // this.oldRodFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 159); this.oldRodFourMaxLevelUpDown.Name = "oldRodFourMaxLevelUpDown"; this.oldRodFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFourMaxLevelUpDown.TabIndex = 18; this.oldRodFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFourMaxLevelUpDown_ValueChanged); // // oldRodFourMinLevelUpDown // this.oldRodFourMinLevelUpDown.Location = new System.Drawing.Point(217, 159); this.oldRodFourMinLevelUpDown.Name = "oldRodFourMinLevelUpDown"; this.oldRodFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFourMinLevelUpDown.TabIndex = 17; this.oldRodFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFourMinLevelUpDown_ValueChanged); // // label47 // this.label47.AutoSize = true; this.label47.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label47.Location = new System.Drawing.Point(11, 161); this.label47.Name = "label47"; this.label47.Size = new System.Drawing.Size(27, 13); this.label47.TabIndex = 16; this.label47.Text = "10%"; // // oldRodFourComboBox // this.oldRodFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodFourComboBox.FormattingEnabled = true; this.oldRodFourComboBox.Location = new System.Drawing.Point(45, 158); this.oldRodFourComboBox.Name = "oldRodFourComboBox"; this.oldRodFourComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodFourComboBox.TabIndex = 15; this.oldRodFourComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodFourComboBox_SelectedIndexChanged); // // oldRodFiveMaxLevelUpDown // this.oldRodFiveMaxLevelUpDown.Location = new System.Drawing.Point(265, 132); this.oldRodFiveMaxLevelUpDown.Name = "oldRodFiveMaxLevelUpDown"; this.oldRodFiveMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFiveMaxLevelUpDown.TabIndex = 14; this.oldRodFiveMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFiveMaxLevelUpDown_ValueChanged); // // oldRodFiveMinLevelUpDown // this.oldRodFiveMinLevelUpDown.Location = new System.Drawing.Point(217, 132); this.oldRodFiveMinLevelUpDown.Name = "oldRodFiveMinLevelUpDown"; this.oldRodFiveMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFiveMinLevelUpDown.TabIndex = 13; this.oldRodFiveMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFiveMinLevelUpDown_ValueChanged); // // label48 // this.label48.AutoSize = true; this.label48.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label48.Location = new System.Drawing.Point(11, 134); this.label48.Name = "label48"; this.label48.Size = new System.Drawing.Size(27, 13); this.label48.TabIndex = 12; this.label48.Text = "15%"; // // oldRodFiveComboBox // this.oldRodFiveComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodFiveComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodFiveComboBox.FormattingEnabled = true; this.oldRodFiveComboBox.Location = new System.Drawing.Point(45, 131); this.oldRodFiveComboBox.Name = "oldRodFiveComboBox"; this.oldRodFiveComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodFiveComboBox.TabIndex = 11; this.oldRodFiveComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodFiveComboBox_SelectedIndexChanged); // // oldRodThirtyMaxLevelUpDown // this.oldRodThirtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 105); this.oldRodThirtyMaxLevelUpDown.Name = "oldRodThirtyMaxLevelUpDown"; this.oldRodThirtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodThirtyMaxLevelUpDown.TabIndex = 10; this.oldRodThirtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodThirtyMaxLevelUpDown_ValueChanged); // // oldRodThirtyMinLevelUpDown // this.oldRodThirtyMinLevelUpDown.Location = new System.Drawing.Point(217, 105); this.oldRodThirtyMinLevelUpDown.Name = "oldRodThirtyMinLevelUpDown"; this.oldRodThirtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodThirtyMinLevelUpDown.TabIndex = 9; this.oldRodThirtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodThirtyMinLevelUpDown_ValueChanged); // // label49 // this.label49.AutoSize = true; this.label49.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label49.Location = new System.Drawing.Point(12, 107); this.label49.Name = "label49"; this.label49.Size = new System.Drawing.Size(27, 13); this.label49.TabIndex = 8; this.label49.Text = "30%"; // // oldRodThirtyComboBox // this.oldRodThirtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodThirtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodThirtyComboBox.FormattingEnabled = true; this.oldRodThirtyComboBox.Location = new System.Drawing.Point(45, 104); this.oldRodThirtyComboBox.Name = "oldRodThirtyComboBox"; this.oldRodThirtyComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodThirtyComboBox.TabIndex = 7; this.oldRodThirtyComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodThirtyComboBox_SelectedIndexChanged); // // oldRodSixtyMaxLevelUpDown // this.oldRodSixtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 78); this.oldRodSixtyMaxLevelUpDown.Name = "oldRodSixtyMaxLevelUpDown"; this.oldRodSixtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodSixtyMaxLevelUpDown.TabIndex = 6; this.oldRodSixtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodSixtyMaxLevelUpDown_ValueChanged); // // oldRodSixtyMinLevelUpDown // this.oldRodSixtyMinLevelUpDown.Location = new System.Drawing.Point(217, 78); this.oldRodSixtyMinLevelUpDown.Name = "oldRodSixtyMinLevelUpDown"; this.oldRodSixtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodSixtyMinLevelUpDown.TabIndex = 5; this.oldRodSixtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodSixtyMinLevelUpDown_ValueChanged); // // label50 // this.label50.AutoSize = true; this.label50.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label50.Location = new System.Drawing.Point(12, 80); this.label50.Name = "label50"; this.label50.Size = new System.Drawing.Size(27, 13); this.label50.TabIndex = 4; this.label50.Text = "40%"; // // oldRodSixtyComboBox // this.oldRodSixtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodSixtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodSixtyComboBox.FormattingEnabled = true; this.oldRodSixtyComboBox.Location = new System.Drawing.Point(45, 77); this.oldRodSixtyComboBox.Name = "oldRodSixtyComboBox"; this.oldRodSixtyComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodSixtyComboBox.TabIndex = 3; this.oldRodSixtyComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodSixtyComboBox_SelectedIndexChanged); // // surfGroupBox // this.surfGroupBox.Controls.Add(this.label68); this.surfGroupBox.Controls.Add(this.label67); this.surfGroupBox.Controls.Add(this.surfRateUpDown); this.surfGroupBox.Controls.Add(this.label61); this.surfGroupBox.Controls.Add(this.surfOneMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfOneMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label62); this.surfGroupBox.Controls.Add(this.surfOneComboBox); this.surfGroupBox.Controls.Add(this.surfFourMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfFourMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label63); this.surfGroupBox.Controls.Add(this.surfFourComboBox); this.surfGroupBox.Controls.Add(this.surfFiveMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfFiveMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label64); this.surfGroupBox.Controls.Add(this.surfFiveComboBox); this.surfGroupBox.Controls.Add(this.surfThirtyMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfThirtyMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label65); this.surfGroupBox.Controls.Add(this.surfThirtyComboBox); this.surfGroupBox.Controls.Add(this.surfSixtyMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfSixtyMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label66); this.surfGroupBox.Controls.Add(this.surfSixtyComboBox); this.surfGroupBox.Location = new System.Drawing.Point(16, 25); this.surfGroupBox.Name = "surfGroupBox"; this.surfGroupBox.Size = new System.Drawing.Size(325, 220); this.surfGroupBox.TabIndex = 4; this.surfGroupBox.TabStop = false; this.surfGroupBox.Text = "Surfing"; // // label68 // this.label68.AutoSize = true; this.label68.Location = new System.Drawing.Point(264, 57); this.label68.Name = "label68"; this.label68.Size = new System.Drawing.Size(47, 13); this.label68.TabIndex = 41; this.label68.Text = "Max Lvl."; // // label67 // this.label67.AutoSize = true; this.label67.Location = new System.Drawing.Point(214, 57); this.label67.Name = "label67"; this.label67.Size = new System.Drawing.Size(44, 13); this.label67.TabIndex = 40; this.label67.Text = "Min Lvl."; // // surfRateUpDown // this.surfRateUpDown.Location = new System.Drawing.Point(265, 16); this.surfRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.surfRateUpDown.Name = "surfRateUpDown"; this.surfRateUpDown.Size = new System.Drawing.Size(42, 20); this.surfRateUpDown.TabIndex = 39; this.surfRateUpDown.ValueChanged += new System.EventHandler(this.surfRateUpDown_ValueChanged); // // label61 // this.label61.AutoSize = true; this.label61.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label61.Location = new System.Drawing.Point(229, 18); this.label61.Name = "label61"; this.label61.Size = new System.Drawing.Size(30, 13); this.label61.TabIndex = 38; this.label61.Text = "Rate"; // // surfOneMaxLevelUpDown // this.surfOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 186); this.surfOneMaxLevelUpDown.Name = "surfOneMaxLevelUpDown"; this.surfOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfOneMaxLevelUpDown.TabIndex = 22; this.surfOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfOneMaxLevelUpDown_ValueChanged); // // surfOneMinLevelUpDown // this.surfOneMinLevelUpDown.Location = new System.Drawing.Point(217, 186); this.surfOneMinLevelUpDown.Name = "surfOneMinLevelUpDown"; this.surfOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfOneMinLevelUpDown.TabIndex = 21; this.surfOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfOneMinLevelUpDown_ValueChanged); // // label62 // this.label62.AutoSize = true; this.label62.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label62.Location = new System.Drawing.Point(18, 188); this.label62.Name = "label62"; this.label62.Size = new System.Drawing.Size(21, 13); this.label62.TabIndex = 20; this.label62.Text = "1%"; // // surfOneComboBox // this.surfOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfOneComboBox.FormattingEnabled = true; this.surfOneComboBox.Location = new System.Drawing.Point(45, 185); this.surfOneComboBox.Name = "surfOneComboBox"; this.surfOneComboBox.Size = new System.Drawing.Size(154, 21); this.surfOneComboBox.TabIndex = 19; this.surfOneComboBox.SelectedIndexChanged += new System.EventHandler(this.surfOneComboBox_SelectedIndexChanged); // // surfFourMaxLevelUpDown // this.surfFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 159); this.surfFourMaxLevelUpDown.Name = "surfFourMaxLevelUpDown"; this.surfFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFourMaxLevelUpDown.TabIndex = 18; this.surfFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfFourMaxLevelUpDown_ValueChanged); // // surfFourMinLevelUpDown // this.surfFourMinLevelUpDown.Location = new System.Drawing.Point(217, 159); this.surfFourMinLevelUpDown.Name = "surfFourMinLevelUpDown"; this.surfFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFourMinLevelUpDown.TabIndex = 17; this.surfFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfFourMinLevelUpDown_ValueChanged); // // label63 // this.label63.AutoSize = true; this.label63.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label63.Location = new System.Drawing.Point(18, 161); this.label63.Name = "label63"; this.label63.Size = new System.Drawing.Size(21, 13); this.label63.TabIndex = 16; this.label63.Text = "4%"; // // surfFourComboBox // this.surfFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfFourComboBox.FormattingEnabled = true; this.surfFourComboBox.Location = new System.Drawing.Point(45, 158); this.surfFourComboBox.Name = "surfFourComboBox"; this.surfFourComboBox.Size = new System.Drawing.Size(154, 21); this.surfFourComboBox.TabIndex = 15; this.surfFourComboBox.SelectedIndexChanged += new System.EventHandler(this.surfFourComboBox_SelectedIndexChanged); // // surfFiveMaxLevelUpDown // this.surfFiveMaxLevelUpDown.Location = new System.Drawing.Point(265, 132); this.surfFiveMaxLevelUpDown.Name = "surfFiveMaxLevelUpDown"; this.surfFiveMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFiveMaxLevelUpDown.TabIndex = 14; this.surfFiveMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfFiveMaxLevelUpDown_ValueChanged); // // surfFiveMinLevelUpDown // this.surfFiveMinLevelUpDown.Location = new System.Drawing.Point(217, 132); this.surfFiveMinLevelUpDown.Name = "surfFiveMinLevelUpDown"; this.surfFiveMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFiveMinLevelUpDown.TabIndex = 13; this.surfFiveMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfFiveMinLevelUpDown_ValueChanged); // // label64 // this.label64.AutoSize = true; this.label64.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label64.Location = new System.Drawing.Point(18, 134); this.label64.Name = "label64"; this.label64.Size = new System.Drawing.Size(21, 13); this.label64.TabIndex = 12; this.label64.Text = "5%"; // // surfFiveComboBox // this.surfFiveComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfFiveComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfFiveComboBox.FormattingEnabled = true; this.surfFiveComboBox.Location = new System.Drawing.Point(45, 131); this.surfFiveComboBox.Name = "surfFiveComboBox"; this.surfFiveComboBox.Size = new System.Drawing.Size(154, 21); this.surfFiveComboBox.TabIndex = 11; this.surfFiveComboBox.SelectedIndexChanged += new System.EventHandler(this.surfFiveComboBox_SelectedIndexChanged); // // surfThirtyMaxLevelUpDown // this.surfThirtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 105); this.surfThirtyMaxLevelUpDown.Name = "surfThirtyMaxLevelUpDown"; this.surfThirtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfThirtyMaxLevelUpDown.TabIndex = 10; this.surfThirtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfThirtyMaxLevelUpDown_ValueChanged); // // surfThirtyMinLevelUpDown // this.surfThirtyMinLevelUpDown.Location = new System.Drawing.Point(217, 105); this.surfThirtyMinLevelUpDown.Name = "surfThirtyMinLevelUpDown"; this.surfThirtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfThirtyMinLevelUpDown.TabIndex = 9; this.surfThirtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfThirtyMinLevelUpDown_ValueChanged); // // label65 // this.label65.AutoSize = true; this.label65.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label65.Location = new System.Drawing.Point(12, 107); this.label65.Name = "label65"; this.label65.Size = new System.Drawing.Size(27, 13); this.label65.TabIndex = 8; this.label65.Text = "30%"; // // surfThirtyComboBox // this.surfThirtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfThirtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfThirtyComboBox.FormattingEnabled = true; this.surfThirtyComboBox.Location = new System.Drawing.Point(45, 104); this.surfThirtyComboBox.Name = "surfThirtyComboBox"; this.surfThirtyComboBox.Size = new System.Drawing.Size(154, 21); this.surfThirtyComboBox.TabIndex = 7; this.surfThirtyComboBox.SelectedIndexChanged += new System.EventHandler(this.surfThirtyComboBox_SelectedIndexChanged); // // surfSixtyMaxLevelUpDown // this.surfSixtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 78); this.surfSixtyMaxLevelUpDown.Name = "surfSixtyMaxLevelUpDown"; this.surfSixtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfSixtyMaxLevelUpDown.TabIndex = 6; this.surfSixtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfSixtyMaxLevelUpDown_ValueChanged); // // surfSixtyMinLevelUpDown // this.surfSixtyMinLevelUpDown.Location = new System.Drawing.Point(217, 78); this.surfSixtyMinLevelUpDown.Name = "surfSixtyMinLevelUpDown"; this.surfSixtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfSixtyMinLevelUpDown.TabIndex = 5; this.surfSixtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfSixtyMinLevelUpDown_ValueChanged); // // label66 // this.label66.AutoSize = true; this.label66.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label66.Location = new System.Drawing.Point(12, 80); this.label66.Name = "label66"; this.label66.Size = new System.Drawing.Size(27, 13); this.label66.TabIndex = 4; this.label66.Text = "60%"; // // surfSixtyComboBox // this.surfSixtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfSixtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfSixtyComboBox.FormattingEnabled = true; this.surfSixtyComboBox.Location = new System.Drawing.Point(45, 77); this.surfSixtyComboBox.Name = "surfSixtyComboBox"; this.surfSixtyComboBox.Size = new System.Drawing.Size(154, 21); this.surfSixtyComboBox.TabIndex = 3; this.surfSixtyComboBox.SelectedIndexChanged += new System.EventHandler(this.surfSixtyComboBox_SelectedIndexChanged); // // repairAllButton // this.repairAllButton.Image = global::DSPRE.Properties.Resources.wrenchIcon; this.repairAllButton.Location = new System.Drawing.Point(734, 13); this.repairAllButton.Name = "repairAllButton"; this.repairAllButton.Size = new System.Drawing.Size(38, 40); this.repairAllButton.TabIndex = 61; this.repairAllButton.UseVisualStyleBackColor = true; this.repairAllButton.Click += new System.EventHandler(this.repairAllButton_Click); // // WildEditorDPPt // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(777, 711); this.Controls.Add(this.repairAllButton); this.Controls.Add(this.mainTabControl); this.Controls.Add(this.removeEventFileButton); this.Controls.Add(this.addEventFileButton); this.Controls.Add(this.selectEncounterComboBox); this.Controls.Add(this.exportEncounterFileButton); this.Controls.Add(this.importEncounterFileButton); this.Controls.Add(this.saveEventsButton); this.Controls.Add(this.encounterFileLabel); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "WildEditorDPPt"; this.Text = "DSPRE Reloaded 1.9.3 - DPPt Encounters Editor"; this.mainTabControl.ResumeLayout(false); this.grassGroundTabPage.ResumeLayout(false); this.grassGroundTabPage.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.radarGroupBox.ResumeLayout(false); this.radarGroupBox.PerformLayout(); this.dualSlotGroupBox.ResumeLayout(false); this.tableLayoutPanel3.ResumeLayout(false); this.tableLayoutPanel3.PerformLayout(); this.timeGroupBox.ResumeLayout(false); this.tableLayoutPanel2.ResumeLayout(false); this.tableLayoutPanel2.PerformLayout(); this.walkingGroupBox.ResumeLayout(false); this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.walkingOneSecondUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingOneFirstUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenThirdUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFourSecondUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFourFirstUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTwentyFirstUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenSecondUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenFirstUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTwentySecondUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFiveFirstUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingFiveSecondUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingTenFourthUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.walkingRateUpDown)).EndInit(); this.waterTabPage.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.surfPicture)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); this.superRodGroupBox.ResumeLayout(false); this.superRodGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.superRodRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMinLevelUpDown)).EndInit(); this.goodRodGroupBox.ResumeLayout(false); this.goodRodGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.goodRodRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMinLevelUpDown)).EndInit(); this.oldRodGroupBox.ResumeLayout(false); this.oldRodGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.oldRodRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMinLevelUpDown)).EndInit(); this.surfGroupBox.ResumeLayout(false); this.surfGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.surfRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMinLevelUpDown)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label encounterFileLabel; private System.Windows.Forms.Button removeEventFileButton; private System.Windows.Forms.Button addEventFileButton; private System.Windows.Forms.ComboBox selectEncounterComboBox; private System.Windows.Forms.Button exportEncounterFileButton; private System.Windows.Forms.Button importEncounterFileButton; private System.Windows.Forms.Button saveEventsButton; private System.Windows.Forms.TabControl mainTabControl; private System.Windows.Forms.TabPage grassGroundTabPage; private System.Windows.Forms.Label label23; private System.Windows.Forms.Label label22; private System.Windows.Forms.Label label21; private DSPRE.InputComboBox swarmFirstComboBox; private System.Windows.Forms.Label label19; private DSPRE.InputComboBox swarmSecondComboBox; private System.Windows.Forms.Label label20; private DSPRE.InputComboBox nightFirstComboBox; private System.Windows.Forms.Label label17; private DSPRE.InputComboBox nightSecondComboBox; private System.Windows.Forms.Label label18; private DSPRE.InputComboBox morningFirstComboBox; private System.Windows.Forms.Label label15; private DSPRE.InputComboBox morningSecondComboBox; private System.Windows.Forms.Label label16; private System.Windows.Forms.NumericUpDown walkingOneSecondUpDown; private System.Windows.Forms.NumericUpDown walkingOneFirstUpDown; private System.Windows.Forms.NumericUpDown walkingTenFourthUpDown; private System.Windows.Forms.NumericUpDown walkingTenThirdUpDown; private System.Windows.Forms.NumericUpDown walkingFourSecondUpDown; private System.Windows.Forms.NumericUpDown walkingFourFirstUpDown; private System.Windows.Forms.NumericUpDown walkingTenSecondUpDown; private System.Windows.Forms.NumericUpDown walkingTenFirstUpDown; private System.Windows.Forms.NumericUpDown walkingFiveSecondUpDown; private System.Windows.Forms.NumericUpDown walkingFiveFirstUpDown; private System.Windows.Forms.NumericUpDown walkingTwentySecondUpDown; private System.Windows.Forms.NumericUpDown walkingTwentyFirstUpDown; private DSPRE.InputComboBox walkingFiveSecondComboBox; private System.Windows.Forms.Label label10; private DSPRE.InputComboBox walkingTwentyFirstComboBox; private DSPRE.InputComboBox walkingOneSecondComboBox; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label11; private DSPRE.InputComboBox walkingTwentySecondComboBox; private DSPRE.InputComboBox walkingOneFirstComboBox; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label12; private DSPRE.InputComboBox walkingTenFirstComboBox; private DSPRE.InputComboBox walkingFourSecondComboBox; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label13; private DSPRE.InputComboBox walkingTenSecondComboBox; private DSPRE.InputComboBox walkingFourFirstComboBox; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label6; private DSPRE.InputComboBox walkingTenThirdComboBox; private System.Windows.Forms.Label label9; private System.Windows.Forms.Label label7; private DSPRE.InputComboBox walkingTenFourthComboBox; private DSPRE.InputComboBox walkingFiveFirstComboBox; private System.Windows.Forms.Label label8; private System.Windows.Forms.NumericUpDown walkingRateUpDown; private System.Windows.Forms.Label label14; private System.Windows.Forms.GroupBox walkingGroupBox; private System.Windows.Forms.GroupBox timeGroupBox; private System.Windows.Forms.GroupBox dualSlotGroupBox; private DSPRE.InputComboBox leafGreenFirstComboBox; private System.Windows.Forms.Label label33; private DSPRE.InputComboBox fireRedSecondComboBox; private System.Windows.Forms.Label label35; private DSPRE.InputComboBox fireRedFirstComboBox; private System.Windows.Forms.Label label36; private System.Windows.Forms.Label label37; private System.Windows.Forms.Label label38; private DSPRE.InputComboBox leafGreenSecondComboBox; private System.Windows.Forms.Label label39; private DSPRE.InputComboBox sapphireFirstComboBox; private DSPRE.InputComboBox rubyFirstComboBox; private System.Windows.Forms.Label label24; private DSPRE.InputComboBox emeraldSecondComboBox; private System.Windows.Forms.Label label25; private System.Windows.Forms.Label label32; private DSPRE.InputComboBox rubySecondComboBox; private System.Windows.Forms.Label label31; private System.Windows.Forms.Label label26; private System.Windows.Forms.Label label30; private DSPRE.InputComboBox emeraldFirstComboBox; private System.Windows.Forms.Label label27; private DSPRE.InputComboBox sapphireSecondComboBox; private System.Windows.Forms.Label label28; private System.Windows.Forms.Label label29; private System.Windows.Forms.GroupBox radarGroupBox; private System.Windows.Forms.Label label42; private DSPRE.InputComboBox radarFourthComboBox; private System.Windows.Forms.Label label41; private DSPRE.InputComboBox radarThirdComboBox; private System.Windows.Forms.Label label40; private DSPRE.InputComboBox radarSecondComboBox; private System.Windows.Forms.Label label34; private DSPRE.InputComboBox radarFirstComboBox; private System.Windows.Forms.TabPage waterTabPage; private System.Windows.Forms.GroupBox surfGroupBox; private System.Windows.Forms.NumericUpDown surfRateUpDown; private System.Windows.Forms.Label label61; private System.Windows.Forms.NumericUpDown surfOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfOneMinLevelUpDown; private System.Windows.Forms.Label label62; private DSPRE.InputComboBox surfOneComboBox; private System.Windows.Forms.NumericUpDown surfFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfFourMinLevelUpDown; private System.Windows.Forms.Label label63; private DSPRE.InputComboBox surfFourComboBox; private System.Windows.Forms.NumericUpDown surfFiveMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfFiveMinLevelUpDown; private System.Windows.Forms.Label label64; private DSPRE.InputComboBox surfFiveComboBox; private System.Windows.Forms.NumericUpDown surfThirtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfThirtyMinLevelUpDown; private System.Windows.Forms.Label label65; private DSPRE.InputComboBox surfThirtyComboBox; private System.Windows.Forms.NumericUpDown surfSixtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfSixtyMinLevelUpDown; private System.Windows.Forms.Label label66; private DSPRE.InputComboBox surfSixtyComboBox; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Label label68; private System.Windows.Forms.Label label67; private System.Windows.Forms.GroupBox superRodGroupBox; private System.Windows.Forms.Label label59; private System.Windows.Forms.Label label60; private System.Windows.Forms.NumericUpDown superRodRateUpDown; private System.Windows.Forms.Label label69; private System.Windows.Forms.NumericUpDown superRodOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodOneMinLevelUpDown; private System.Windows.Forms.Label label70; private DSPRE.InputComboBox superRodOneComboBox; private System.Windows.Forms.NumericUpDown superRodFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodFourMinLevelUpDown; private System.Windows.Forms.Label label71; private DSPRE.InputComboBox superRodFourComboBox; private System.Windows.Forms.NumericUpDown superRodFifteenMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodFifteenMinLevelUpDown; private System.Windows.Forms.Label label72; private DSPRE.InputComboBox superRodFifteenComboBox; private System.Windows.Forms.NumericUpDown superRodSecondFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodSecondFortyMinLevelUpDown; private System.Windows.Forms.Label label73; private DSPRE.InputComboBox superRodSecondFortyComboBox; private System.Windows.Forms.NumericUpDown superRodFirstFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodFirstFortyMinLevelUpDown; private System.Windows.Forms.Label label74; private DSPRE.InputComboBox superRodFirstFortyComboBox; private System.Windows.Forms.GroupBox goodRodGroupBox; private System.Windows.Forms.Label label51; private System.Windows.Forms.Label label52; private System.Windows.Forms.NumericUpDown goodRodRateUpDown; private System.Windows.Forms.Label label53; private System.Windows.Forms.NumericUpDown goodRodOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodOneMinLevelUpDown; private System.Windows.Forms.Label label54; private DSPRE.InputComboBox goodRodOneComboBox; private System.Windows.Forms.NumericUpDown goodRodFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodFourMinLevelUpDown; private System.Windows.Forms.Label label55; private DSPRE.InputComboBox goodRodFourComboBox; private System.Windows.Forms.NumericUpDown goodRodFifteenMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodFifteenMinLevelUpDown; private System.Windows.Forms.Label label56; private DSPRE.InputComboBox goodRodFifteenComboBox; private System.Windows.Forms.NumericUpDown goodRodSecondFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodSecondFortyMinLevelUpDown; private System.Windows.Forms.Label label57; private DSPRE.InputComboBox goodRodSecondFortyComboBox; private System.Windows.Forms.NumericUpDown goodRodFirstFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodFirstFortyMinLevelUpDown; private System.Windows.Forms.Label label58; private DSPRE.InputComboBox goodRodFirstFortyComboBox; private System.Windows.Forms.GroupBox oldRodGroupBox; private System.Windows.Forms.Label label43; private System.Windows.Forms.Label label44; private System.Windows.Forms.NumericUpDown oldRodRateUpDown; private System.Windows.Forms.Label label45; private System.Windows.Forms.NumericUpDown oldRodOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodOneMinLevelUpDown; private System.Windows.Forms.Label label46; private DSPRE.InputComboBox oldRodOneComboBox; private System.Windows.Forms.NumericUpDown oldRodFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodFourMinLevelUpDown; private System.Windows.Forms.Label label47; private DSPRE.InputComboBox oldRodFourComboBox; private System.Windows.Forms.NumericUpDown oldRodFiveMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodFiveMinLevelUpDown; private System.Windows.Forms.Label label48; private DSPRE.InputComboBox oldRodFiveComboBox; private System.Windows.Forms.NumericUpDown oldRodThirtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodThirtyMinLevelUpDown; private System.Windows.Forms.Label label49; private DSPRE.InputComboBox oldRodThirtyComboBox; private System.Windows.Forms.NumericUpDown oldRodSixtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodSixtyMinLevelUpDown; private System.Windows.Forms.Label label50; private DSPRE.InputComboBox oldRodSixtyComboBox; private System.Windows.Forms.PictureBox pictureBox2; private System.Windows.Forms.PictureBox pictureBox3; private System.Windows.Forms.PictureBox pictureBox7; private System.Windows.Forms.PictureBox pictureBox6; private System.Windows.Forms.PictureBox pictureBox5; private System.Windows.Forms.PictureBox surfPicture; private System.Windows.Forms.Button repairAllButton; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; } } ================================================ FILE: DS_Map/WildEditorDPPt.cs ================================================ using DSPRE.ROMFiles; using System; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE { public partial class WildEditorDPPt : Form { public string encounterFileFolder { get; private set; } EncounterFileDPPt currentFile; public WildEditorDPPt(string dirPath, string[] names, int encToOpen, int totalNumHeaderFiles) { InitializeComponent(); encounterFileFolder = dirPath; Text = "DSPRE Reloaded " + GetDSPREVersion() + " - DPPt Encounters Editor"; Helpers.DisableHandlers(); MapHeader tempMapHeader; List locationNames = RomInfo.GetLocationNames(); Dictionary> EncounterFileLocationNames = new Dictionary>(); for (ushort i = 0; i < totalNumHeaderFiles; i++) { if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { tempMapHeader = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + i.ToString("D4"), i, 0); } else { tempMapHeader = MapHeader.LoadFromARM9(i); } if (tempMapHeader.wildPokemon != MapHeader.DPPT_NULL_ENCOUNTER_FILE_ID) { if (!EncounterFileLocationNames.ContainsKey(tempMapHeader.wildPokemon)) { EncounterFileLocationNames[tempMapHeader.wildPokemon] = new List(); } EncounterFileLocationNames[tempMapHeader.wildPokemon].Add((gameFamily == GameFamilies.DP) ? locationNames[((HeaderDP)tempMapHeader).locationName] : locationNames[((HeaderPt)tempMapHeader).locationName]); } } for (int i = 0; i < Directory.GetFiles(encounterFileFolder).Length; i++) { if (EncounterFileLocationNames.ContainsKey(i)) { selectEncounterComboBox.Items.Add("[" + i + "] " + String.Join(" + ", EncounterFileLocationNames[i])); } else { selectEncounterComboBox.Items.Add("[" + i + "] " + " Unused"); } } if (encToOpen > selectEncounterComboBox.Items.Count) { MessageBox.Show("This encounter file doesn't exist.\n" + "Enc #0 will be loaded, instead.", "WildPoké Data not found", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); selectEncounterComboBox.SelectedIndex = 0; } else { selectEncounterComboBox.SelectedIndex = encToOpen; } currentFile = new EncounterFileDPPt(selectEncounterComboBox.SelectedIndex); /* Once the GUI overhaul is complete - i.e.: once everything is a TableLayoutPanel, * this can be simplified a lot. */ foreach (TabPage page in mainTabControl.TabPages) { foreach (Control g in page.Controls) { if (g != null && g is GroupBox) { foreach (Control c in g.Controls) { if (c != null) { if (c is InputComboBox) { (c as InputComboBox).DataSource = new BindingSource(names, string.Empty); } else if (c is TableLayoutPanel) { TableLayoutPanel tbl = (c as TableLayoutPanel); foreach (Control tblC in tbl.Controls) { if (c != null) { if (tblC is InputComboBox) { (tblC as InputComboBox).DataSource = new BindingSource(names, string.Empty); } } } } } } } } } Helpers.EnableHandlers(); SetupControls(); } private void SetupControls() { Helpers.DisableHandlers(); /* Setup encounter rates controls */ walkingRateUpDown.Value = currentFile.walkingRate; surfRateUpDown.Value = currentFile.surfRate; oldRodRateUpDown.Value = currentFile.oldRodRate; goodRodRateUpDown.Value = currentFile.goodRodRate; superRodRateUpDown.Value = currentFile.superRodRate; /* Walking encounters controls setup */ walkingTwentyFirstComboBox.SelectedIndex = (int)currentFile.walkingPokemon[0]; walkingTwentyFirstUpDown.Value = currentFile.walkingLevels[0]; walkingTwentySecondComboBox.SelectedIndex = (int)currentFile.walkingPokemon[1]; walkingTwentySecondUpDown.Value = currentFile.walkingLevels[1]; walkingTenFirstComboBox.SelectedIndex = (int)currentFile.walkingPokemon[2]; walkingTenFirstUpDown.Value = currentFile.walkingLevels[2]; walkingTenSecondComboBox.SelectedIndex = (int)currentFile.walkingPokemon[3]; walkingTenSecondUpDown.Value = currentFile.walkingLevels[3]; walkingTenThirdComboBox.SelectedIndex = (int)currentFile.walkingPokemon[4]; walkingTenThirdUpDown.Value = currentFile.walkingLevels[4]; walkingTenFourthComboBox.SelectedIndex = (int)currentFile.walkingPokemon[5]; walkingTenFourthUpDown.Value = currentFile.walkingLevels[5]; walkingFiveFirstComboBox.SelectedIndex = (int)currentFile.walkingPokemon[6]; walkingFiveFirstUpDown.Value = currentFile.walkingLevels[6]; walkingFiveSecondComboBox.SelectedIndex = (int)currentFile.walkingPokemon[7]; walkingFiveSecondUpDown.Value = currentFile.walkingLevels[7]; walkingFourFirstComboBox.SelectedIndex = (int)currentFile.walkingPokemon[8]; walkingFourFirstUpDown.Value = currentFile.walkingLevels[8]; walkingFourSecondComboBox.SelectedIndex = (int)currentFile.walkingPokemon[9]; walkingFourSecondUpDown.Value = currentFile.walkingLevels[9]; walkingOneFirstComboBox.SelectedIndex = (int)currentFile.walkingPokemon[10]; walkingOneFirstUpDown.Value = currentFile.walkingLevels[10]; walkingOneSecondComboBox.SelectedIndex = (int)currentFile.walkingPokemon[11]; walkingOneSecondUpDown.Value = currentFile.walkingLevels[11]; /* Time dependent encounters controls setup */ morningFirstComboBox.SelectedIndex = (int)currentFile.morningPokemon[0]; morningSecondComboBox.SelectedIndex = (int)currentFile.morningPokemon[1]; nightFirstComboBox.SelectedIndex = (int)currentFile.nightPokemon[0]; nightSecondComboBox.SelectedIndex = (int)currentFile.nightPokemon[1]; swarmFirstComboBox.SelectedIndex = currentFile.swarmPokemon[0]; swarmSecondComboBox.SelectedIndex = currentFile.swarmPokemon[1]; /* Dual Slot encounters controls setup */ rubyFirstComboBox.SelectedIndex = (int)currentFile.rubyPokemon[0]; rubySecondComboBox.SelectedIndex = (int)currentFile.rubyPokemon[1]; sapphireFirstComboBox.SelectedIndex = (int)currentFile.sapphirePokemon[0]; sapphireSecondComboBox.SelectedIndex = (int)currentFile.sapphirePokemon[1]; emeraldFirstComboBox.SelectedIndex = (int)currentFile.emeraldPokemon[0]; emeraldSecondComboBox.SelectedIndex = (int)currentFile.emeraldPokemon[1]; fireRedFirstComboBox.SelectedIndex = (int)currentFile.fireRedPokemon[0]; fireRedSecondComboBox.SelectedIndex = (int)currentFile.fireRedPokemon[1]; leafGreenFirstComboBox.SelectedIndex = (int)currentFile.leafGreenPokemon[0]; leafGreenSecondComboBox.SelectedIndex = (int)currentFile.leafGreenPokemon[1]; /* PokéRadar encounters controls setup */ radarFirstComboBox.SelectedIndex = (int)currentFile.radarPokemon[0]; radarSecondComboBox.SelectedIndex = (int)currentFile.radarPokemon[1]; radarThirdComboBox.SelectedIndex = (int)currentFile.radarPokemon[2]; radarFourthComboBox.SelectedIndex = (int)currentFile.radarPokemon[3]; /* Water encounters controls setup */ surfSixtyComboBox.SelectedIndex = currentFile.surfPokemon[0]; surfSixtyMinLevelUpDown.Value = currentFile.surfMinLevels[0]; surfSixtyMaxLevelUpDown.Value = currentFile.surfMaxLevels[0]; surfThirtyComboBox.SelectedIndex = currentFile.surfPokemon[1]; surfThirtyMinLevelUpDown.Value = currentFile.surfMinLevels[1]; surfThirtyMaxLevelUpDown.Value = currentFile.surfMaxLevels[1]; surfFiveComboBox.SelectedIndex = currentFile.surfPokemon[2]; surfFiveMinLevelUpDown.Value = currentFile.surfMinLevels[2]; surfFiveMaxLevelUpDown.Value = currentFile.surfMaxLevels[2]; surfFourComboBox.SelectedIndex = currentFile.surfPokemon[3]; surfFourMinLevelUpDown.Value = currentFile.surfMinLevels[3]; surfFourMaxLevelUpDown.Value = currentFile.surfMaxLevels[3]; surfOneComboBox.SelectedIndex = currentFile.surfPokemon[4]; surfOneMinLevelUpDown.Value = currentFile.surfMinLevels[4]; surfOneMaxLevelUpDown.Value = currentFile.surfMaxLevels[4]; /* Old rod encounters controls setup */ oldRodSixtyComboBox.SelectedIndex = currentFile.oldRodPokemon[0]; oldRodSixtyMinLevelUpDown.Value = currentFile.oldRodMinLevels[0]; oldRodSixtyMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[0]; oldRodThirtyComboBox.SelectedIndex = currentFile.oldRodPokemon[1]; oldRodThirtyMinLevelUpDown.Value = currentFile.oldRodMinLevels[1]; oldRodThirtyMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[1]; oldRodFiveComboBox.SelectedIndex = currentFile.oldRodPokemon[2]; oldRodFiveMinLevelUpDown.Value = currentFile.oldRodMinLevels[2]; oldRodFiveMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[2]; oldRodFourComboBox.SelectedIndex = currentFile.oldRodPokemon[3]; oldRodFourMinLevelUpDown.Value = currentFile.oldRodMinLevels[3]; oldRodFourMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[3]; oldRodOneComboBox.SelectedIndex = currentFile.oldRodPokemon[4]; oldRodOneMinLevelUpDown.Value = currentFile.oldRodMinLevels[4]; oldRodOneMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[4]; /* Good rod encounters controls setup */ goodRodFirstFortyComboBox.SelectedIndex = currentFile.goodRodPokemon[0]; goodRodFirstFortyMinLevelUpDown.Value = currentFile.goodRodMinLevels[0]; goodRodFirstFortyMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[0]; goodRodSecondFortyComboBox.SelectedIndex = currentFile.goodRodPokemon[1]; goodRodSecondFortyMinLevelUpDown.Value = currentFile.goodRodMinLevels[1]; goodRodSecondFortyMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[1]; goodRodFifteenComboBox.SelectedIndex = currentFile.goodRodPokemon[2]; goodRodFifteenMinLevelUpDown.Value = currentFile.goodRodMinLevels[2]; goodRodFifteenMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[2]; goodRodFourComboBox.SelectedIndex = currentFile.goodRodPokemon[3]; goodRodFourMinLevelUpDown.Value = currentFile.goodRodMinLevels[3]; goodRodFourMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[3]; goodRodOneComboBox.SelectedIndex = currentFile.goodRodPokemon[4]; goodRodOneMinLevelUpDown.Value = currentFile.goodRodMinLevels[4]; goodRodOneMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[4]; /* Super rod encounters controls setup */ superRodFirstFortyComboBox.SelectedIndex = currentFile.superRodPokemon[0]; superRodFirstFortyMinLevelUpDown.Value = currentFile.superRodMinLevels[0]; superRodFirstFortyMaxLevelUpDown.Value = currentFile.superRodMaxLevels[0]; superRodSecondFortyComboBox.SelectedIndex = currentFile.superRodPokemon[1]; superRodSecondFortyMinLevelUpDown.Value = currentFile.superRodMinLevels[1]; superRodSecondFortyMaxLevelUpDown.Value = currentFile.superRodMaxLevels[1]; superRodFifteenComboBox.SelectedIndex = currentFile.superRodPokemon[2]; superRodFifteenMinLevelUpDown.Value = currentFile.superRodMinLevels[2]; superRodFifteenMaxLevelUpDown.Value = currentFile.superRodMaxLevels[2]; superRodFourComboBox.SelectedIndex = currentFile.superRodPokemon[3]; superRodFourMinLevelUpDown.Value = currentFile.superRodMinLevels[3]; superRodFourMaxLevelUpDown.Value = currentFile.superRodMaxLevels[3]; superRodOneComboBox.SelectedIndex = currentFile.superRodPokemon[4]; superRodOneMinLevelUpDown.Value = currentFile.superRodMinLevels[4]; superRodOneMaxLevelUpDown.Value = currentFile.superRodMaxLevels[4]; Helpers.EnableHandlers(); } public string GetDSPREVersion() { return "" + Assembly.GetExecutingAssembly().GetName().Version.Major + "." + Assembly.GetExecutingAssembly().GetName().Version.Minor + "." + Assembly.GetExecutingAssembly().GetName().Version.Build; } private void exportEncounterFileButton_Click(object sender, EventArgs e) { currentFile.SaveToFileExplorePath("Encounter File " + selectEncounterComboBox.SelectedIndex); } private void importEncounterFileButton_Click(object sender, EventArgs e) { /* Prompt user to select .wld file */ OpenFileDialog of = new OpenFileDialog { Filter = "Wild Encounters File (" + "*." + EncounterFile.extension + ")" + "|" + "*." + EncounterFile.extension }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update encounter file object in memory */ currentFile = new EncounterFileDPPt(new FileStream(of.FileName, FileMode.Open)); /* Update controls */ SetupControls(); } private void selectEncounterComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile = new EncounterFileDPPt(selectEncounterComboBox.SelectedIndex); SetupControls(); } private void saveEncountersButton_Click(object sender, EventArgs e) { currentFile.SaveToFileDefaultDir(selectEncounterComboBox.SelectedIndex); } private void walkingTwentyFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[0] = (uint)walkingTwentyFirstComboBox.SelectedIndex; } private void walkingTwentySecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[1] = (uint)walkingTwentySecondComboBox.SelectedIndex; } private void walkingTenFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[2] = (uint)walkingTenFirstComboBox.SelectedIndex; } private void walkingTenSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[3] = (uint)walkingTenSecondComboBox.SelectedIndex; } private void walkingTenThirdComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[4] = (uint)walkingTenThirdComboBox.SelectedIndex; } private void walkingTenFourthComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[5] = (uint)walkingTenFourthComboBox.SelectedIndex; } private void walkingFiveFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[6] = (uint)walkingFiveFirstComboBox.SelectedIndex; } private void walkingFiveSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[7] = (uint)walkingFiveSecondComboBox.SelectedIndex; } private void walkingFourFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[8] = (uint)walkingFourFirstComboBox.SelectedIndex; } private void walkingFourSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[9] = (uint)walkingFourSecondComboBox.SelectedIndex; } private void walkingOneFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[10] = (uint)walkingOneFirstComboBox.SelectedIndex; } private void walkingOneSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingPokemon[11] = (uint)walkingOneSecondComboBox.SelectedIndex; } private void morningFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[0] = (uint)morningFirstComboBox.SelectedIndex; } private void morningSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[1] = (uint)morningSecondComboBox.SelectedIndex; } private void nightFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[0] = (uint)nightFirstComboBox.SelectedIndex; } private void nightSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[1] = (uint)nightSecondComboBox.SelectedIndex; } private void swarmFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.swarmPokemon[0] = (ushort)swarmFirstComboBox.SelectedIndex; } private void swarmSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.swarmPokemon[1] = (ushort)swarmSecondComboBox.SelectedIndex; } private void rubyFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rubyPokemon[0] = (uint)rubyFirstComboBox.SelectedIndex; } private void rubySecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rubyPokemon[1] = (uint)rubySecondComboBox.SelectedIndex; } private void sapphireFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.sapphirePokemon[0] = (uint)sapphireFirstComboBox.SelectedIndex; } private void sapphireSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.sapphirePokemon[1] = (uint)sapphireSecondComboBox.SelectedIndex; } private void emeraldFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.emeraldPokemon[0] = (uint)emeraldFirstComboBox.SelectedIndex; } private void emeraldSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.emeraldPokemon[1] = (uint)emeraldSecondComboBox.SelectedIndex; } private void fireRedFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.fireRedPokemon[0] = (uint)fireRedFirstComboBox.SelectedIndex; } private void fireRedSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.fireRedPokemon[1] = (uint)fireRedSecondComboBox.SelectedIndex; } private void leafGreenFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.leafGreenPokemon[0] = (uint)leafGreenFirstComboBox.SelectedIndex; } private void leafGreenSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.leafGreenPokemon[1] = (uint)leafGreenSecondComboBox.SelectedIndex; } private void radarFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.radarPokemon[0] = (uint)radarFirstComboBox.SelectedIndex; } private void radarSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.radarPokemon[1] = (uint)radarSecondComboBox.SelectedIndex; } private void radarThirdComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.radarPokemon[2] = (uint)radarThirdComboBox.SelectedIndex; } private void radarFourthComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.radarPokemon[3] = (uint)radarFourthComboBox.SelectedIndex; } private void surfSixtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[0] = (ushort)surfSixtyComboBox.SelectedIndex; } private void surfThirtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[1] = (ushort)surfThirtyComboBox.SelectedIndex; } private void surfFiveComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[2] = (ushort)surfFiveComboBox.SelectedIndex; } private void surfFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[3] = (ushort)surfFourComboBox.SelectedIndex; } private void surfOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[4] = (ushort)surfOneComboBox.SelectedIndex; } private void oldRodSixtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[0] = (ushort)oldRodSixtyComboBox.SelectedIndex; } private void oldRodThirtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[1] = (ushort)oldRodThirtyComboBox.SelectedIndex; } private void oldRodFiveComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[2] = (ushort)oldRodFiveComboBox.SelectedIndex; } private void oldRodFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[3] = (ushort)oldRodFourComboBox.SelectedIndex; } private void oldRodOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[4] = (ushort)oldRodOneComboBox.SelectedIndex; } private void goodRodFirstFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[0] = (ushort)goodRodFirstFortyComboBox.SelectedIndex; } private void goodRodSecondFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[1] = (ushort)goodRodSecondFortyComboBox.SelectedIndex; } private void goodRodFifteenComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[2] = (ushort)goodRodFifteenComboBox.SelectedIndex; } private void goodRodFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[3] = (ushort)goodRodFourComboBox.SelectedIndex; } private void goodRodOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[4] = (ushort)goodRodOneComboBox.SelectedIndex; } private void superRodFirstFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[0] = (ushort)superRodFirstFortyComboBox.SelectedIndex; } private void superRodSecondFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[1] = (ushort)superRodSecondFortyComboBox.SelectedIndex; } private void superRodFifteenComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[2] = (ushort)superRodFifteenComboBox.SelectedIndex; } private void superRodFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[3] = (ushort)superRodFourComboBox.SelectedIndex; } private void superRodOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[4] = (ushort)superRodOneComboBox.SelectedIndex; } /* Walking levels controls */ private void walkingTwentyFirstUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[0] = (byte)walkingTwentyFirstUpDown.Value; } private void walkingTwentySecondUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[1] = (byte)walkingTwentySecondUpDown.Value; } private void walkingTenFirstUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[2] = (byte)walkingTenFirstUpDown.Value; } private void walkingTenSecondUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[3] = (byte)walkingTenSecondUpDown.Value; } private void walkingTenThirdUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[4] = (byte)walkingTenThirdUpDown.Value; } private void walkingTenFourthUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[5] = (byte)walkingTenFourthUpDown.Value; } private void walkingFiveFirstUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[6] = (byte)walkingFiveFirstUpDown.Value; } private void walkingFiveSecondUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[7] = (byte)walkingFiveSecondUpDown.Value; } private void walkingFourFirstUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[8] = (byte)walkingFourFirstUpDown.Value; } private void walkingFourSecondUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[9] = (byte)walkingFourSecondUpDown.Value; } private void walkingOneFirstUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[10] = (byte)walkingOneFirstUpDown.Value; } private void walkingOneSecondUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[11] = (byte)walkingOneSecondUpDown.Value; } /* Water levels controls */ private void surfSixtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[0] = (byte)surfSixtyMinLevelUpDown.Value; } private void surfThirtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[1] = (byte)surfThirtyMinLevelUpDown.Value; } private void surfFiveMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[2] = (byte)surfFiveMinLevelUpDown.Value; } private void surfFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[3] = (byte)surfFourMinLevelUpDown.Value; } private void surfOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[4] = (byte)surfOneMinLevelUpDown.Value; } private void surfSixtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[0] = (byte)surfSixtyMaxLevelUpDown.Value; } private void surfThirtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[1] = (byte)surfThirtyMaxLevelUpDown.Value; } private void surfFiveMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[2] = (byte)surfFiveMaxLevelUpDown.Value; } private void surfFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[3] = (byte)surfFourMaxLevelUpDown.Value; } private void surfOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[4] = (byte)surfOneMaxLevelUpDown.Value; } private void oldRodSixtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[0] = (byte)oldRodSixtyMinLevelUpDown.Value; } private void oldRodThirtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[1] = (byte)oldRodThirtyMinLevelUpDown.Value; } private void oldRodFiveMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[2] = (byte)oldRodFiveMinLevelUpDown.Value; } private void oldRodFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[3] = (byte)oldRodFourMinLevelUpDown.Value; } private void oldRodOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[4] = (byte)oldRodOneMinLevelUpDown.Value; } private void oldRodSixtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[0] = (byte)oldRodSixtyMaxLevelUpDown.Value; } private void oldRodThirtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[1] = (byte)oldRodThirtyMaxLevelUpDown.Value; } private void oldRodFiveMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[2] = (byte)oldRodFiveMaxLevelUpDown.Value; } private void oldRodFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[3] = (byte)oldRodFourMaxLevelUpDown.Value; } private void oldRodOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[4] = (byte)oldRodOneMaxLevelUpDown.Value; } private void goodRodFirstFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[0] = (byte)goodRodFirstFortyMinLevelUpDown.Value; } private void goodRodSecondFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[1] = (byte)goodRodSecondFortyMinLevelUpDown.Value; } private void goodRodFifteenMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[2] = (byte)goodRodFifteenMinLevelUpDown.Value; } private void goodRodFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[3] = (byte)goodRodFourMinLevelUpDown.Value; } private void goodRodOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[4] = (byte)goodRodOneMinLevelUpDown.Value; } private void goodRodFirstFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[0] = (byte)goodRodFirstFortyMaxLevelUpDown.Value; } private void goodRodSecondFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[1] = (byte)goodRodSecondFortyMaxLevelUpDown.Value; } private void goodRodFifteenMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[2] = (byte)goodRodFifteenMaxLevelUpDown.Value; } private void goodRodFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[3] = (byte)goodRodFourMaxLevelUpDown.Value; } private void goodRodOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[4] = (byte)goodRodOneMaxLevelUpDown.Value; } private void superRodFirstFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[0] = (byte)superRodFirstFortyMinLevelUpDown.Value; } private void superRodSecondFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[1] = (byte)superRodSecondFortyMinLevelUpDown.Value; } private void superRodFifteenMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[2] = (byte)superRodFifteenMinLevelUpDown.Value; } private void superRodFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[3] = (byte)superRodFourMinLevelUpDown.Value; } private void superRodOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[4] = (byte)superRodOneMinLevelUpDown.Value; } private void superRodFirstFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[0] = (byte)superRodFirstFortyMaxLevelUpDown.Value; } private void superRodSecondFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[1] = (byte)superRodSecondFortyMaxLevelUpDown.Value; } private void superRodFifteenMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[2] = (byte)superRodFifteenMaxLevelUpDown.Value; } private void superRodFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[3] = (byte)superRodFourMaxLevelUpDown.Value; } private void superRodOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[4] = (byte)superRodOneMaxLevelUpDown.Value; } /* Encounter rate controls */ private void walkingRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingRate = (byte)walkingRateUpDown.Value; } private void surfRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfRate = (byte)surfRateUpDown.Value; } private void oldRodRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodRate = (byte)oldRodRateUpDown.Value; } private void goodRodRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodRate = (byte)goodRodRateUpDown.Value; } private void superRodRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodRate = (byte)superRodRateUpDown.Value; } private void addEncounterFileButton_Click(object sender, EventArgs e) { int encounterCount = selectEncounterComboBox.Items.Count; /* Add new encounter file to encounter folder */ string encounterFilePath = encounterFileFolder + "\\" + encounterCount.ToString("D4"); using (BinaryWriter writer = new BinaryWriter(new FileStream(encounterFilePath, FileMode.Create))) { writer.Write(new EncounterFileDPPt().ToByteArray()); } /* Update ComboBox*/ selectEncounterComboBox.Items.Add("[New] Encounters File " + encounterCount.ToString()); selectEncounterComboBox.SelectedIndex = encounterCount; } private void removeLastEncounterFileButton_Click(object sender, EventArgs e) { int encounterCount = selectEncounterComboBox.Items.Count; if (encounterCount > 1) { /* Delete encounter file file */ int encounterToDelete = encounterCount - 1; string encounterFilePath = encounterFileFolder + "\\" + encounterToDelete.ToString("D4"); File.Delete(encounterFilePath); /* Change selected index if the encounter file to be deleted is currently selected */ if (selectEncounterComboBox.SelectedIndex == encounterToDelete) selectEncounterComboBox.SelectedIndex--; /* Remove entry from ComboBox, and decrease encounter file count */ selectEncounterComboBox.Items.RemoveAt(encounterToDelete); } else { MessageBox.Show("At least one encounter file must be kept.", "Can't delete encounter file", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } private void repairAllButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("DSPRE is about to open every Encounter File and attempt to reset every corrupted field to its default value.\n" + "Do you wish to proceed?", "Repair all Encounter Files?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { for (int i = 0; i < Directory.GetFiles(encounterFileFolder).Length; i++) { currentFile.SaveToFileDefaultDir(i, showSuccessMessage: false); } MessageBox.Show("All repairable fields have been fixed.", "Operation completed", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } ================================================ FILE: DS_Map/WildEditorDPPt.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 iVBORw0KGgoAAAANSUhEUgAAACAAAAAdCAYAAADLnm6HAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAPBJREFUSEvtkkEK wjAURHOEHkFw1WWv5dalV/Eqnq0y+qeM32iaNgkUMvAIbfIzr2Lo6TlMzsMwE3vVLih9TNNCUxEtv4/j i6YiKGAxuZ3eVBfBpfrlnqoivny+XhZUAhQX+VeuqAQoIrK23ONFsGaLbC0nnAOUACpiVd9h+R4Bwnkl KYGNmASIlaxB7wBJAfxsJUV0FvBuq/wMN/lP5rOXALEyj57Xu7FaZTx6eKuInvF3WU06LM4V0fec56xd nRcOexEtisEZrHbVvrB4jQjPYbXxcmHxLxHuYbWROmGxF2lSromJ2FbbUMQee46SEJ5ZnKbRL7JVWgAA AABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABgAAAAXCAYAAAARIY8tAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAA95JREFUSEutlN1P U3cYx3+ZjBcdirhCi1Rooe2v7Tmnp7RnVkUSTRR8i9FoBibuhmxTb4wXxt0srXOsM6DUFwxJFSFGeVES fEGLL6QGozDdINuy7M7/wItlN7vZ43menv56KiSS6C/5htPn+3w/z++c8zuwxS4+xEZ0AcozxPYb5Y+z dGB/U2r5662PPweUNlaSxpphf/jCXbc8sUDrdC0pcncZ3Ylhv3/xQTas63+zDIvWYga8m897jPyybYQn bbBpYqWQ3hD39NbGPd2BuDRWANvSlWLAhlQpYA09T/+KOPaas8jyXLaaBiTUEV0CgMId8l79r15XU8Ww Y8oqvI1PyqiGHu8vo968rF73JNT5A4KpEgH68kUNyL0usMY4wYKkEhL+RqG3ecxJvZhpmiwjf94Ad0Jt 93SrF+VBGzRNVELz0woSv+QUAxYSemtvVYt+bcwKyECW95wSNPC5hZPlmxYBqL1gf+8Afn2V+O2/Uke7 N3C5ZTvCBtxX2T+2kxzquiTg5xXgwwzk20UQGF8KtlNu4DfKBcjRU0019PyjBdSLmTVxHyADWaUa20Nw i3vlTuf3hVP4ouwdPqjv0uH6Lnyjn4Byr5CA9q5qcPVZwDtYTnL02KiGnnS7gHox4zgtEQNZ1XuW/Yxs 1hKLQCi5KnNq9KassrtF0fAzq+mRoOqSpVTL6zFl0dt4xgXIZtujmtWbkO7w8xIE7n0mlBfWPWmoAhT9 A0P5rjioZu4xZ9GTu+Wvkc2K7UtD9cccjxqSMmyYLId1j5dD5FFpJnS/CJTxQvD1clBGcy9TumbP1HQv 8KCIaphZr38fyEBWRbPlBLLp5LSMu+gcH/o7Agd/5XSNIf/oknmPwiz05Luf0jVm2v9QiYHXkWt+elys 6gcv7HoYhG/+0vIGeC/5oKbTBVU/OWHvc/uCQq8+wanXPABZoT4ZkM1Wd4ah+b4GB199Qdo3xWH3pAOk s0Go6fDTS8Vw24wTDvxSR2qbcVANPfdphXox0zYdEJzgQBiQzdS5GNQmt4gTkhWeAB6T6dq8O/NdoheJ hajXnEXx8XZANg2QU2Hw31oBTTFNCENqjxVc/cXg6nbD3nSDGNA4KFENvcbOzGbMWWQpzw4YA2ajb9R0 6D/1YRlsPRXO6UcNGvoqwXuzBKo6FNg+EYb239eSGq4GqYZe4zk39ZqzyFJftP6LbPqa1bnoCE7DU5EV nZTpVtoFyvwYs7dPSmc+yrws1mdP5v6bBmajanAu2uIeZkLqzFeg/nZcgPxPj4J34luSMv1dbsDLw4C9 5iyytD+jVgO/8BKARcqIvbMYewvh+HTWsnu37AAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAASNJREFUSEu1 kSuyg0AURLOcSJbAEpCRWcKTkZHILAPJkpCRSBxJT6WpZtLzKSpPnGLmAufwOY3j+K/YoaNpmhW4czns MAbiv+ctoJGaqB3GQNL3/dp13SbEcVmWQC5ihzEQDMMQIlhTPk1TIBf5GiiUAQ2ovBTZbRSKeCMC+ESU IwZKkZ2U6FPiCHEcwB5grbE4UiUHbdsGeE6lGssGnBzS+Xpd5/s97CHlNaTqDbLyN4/PGjMXITZQIz/3 z2KE92YDKTm4DHMyQnlVQOWQaiD1Jk6eDVAeB4L8/cM1kJLbAJ/GvYHKsdaAk4Mt4L4nRU6Oe5RYTLZF KRLLVZJjt8lFjsjB1yAVOSIHdqgRckQO7BAwgqcHPw8ASBV3TQk7/B3j6QXmQ06b07b3wAAAAABJRU5E rkJggg== iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK 6QAACukB/XXO0wAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAABOElE QVRIS7WToRLCMBBE+aRKPiOyks9AViKRfAYSWcknIJFIZF1gM7OZzeUKDVPEm1w2e7dNC5sY419xxTWp hK7rYh9CxMr6OAzvo9K3lGKDgawxmMNZ86yFXOhwRUPmPJ/IxadmnCHkOo7NIbn41qghLd+k2CwNaXld lYBGxZ7zmyx9Xa6o2CHYt4S4osUL8VAPqQQPbUZ97bfxOewS4+2eOJ0vbkixsXhPhj2HA+w53PPnQvGM BDqeGCsCcBvU4REStq9qtgYPeBDC4fv9Oa1eb9HEWplrpA5COCQ8XzarSKBP05Sf1J5pjQDehDqozAQa Biv0YdUe1HO3yAYVqeE940+F4XM/Q8IQe4t8SEFhyLfhgAH2FoWBte6x2jMPeBigt6hMSwda2Gdv4Zp/ gQGEemVcl7h5AeNIEGdOlDEPAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAe vAAAHrwB7kRN9wAAAAd0SU1FB9UDGhMWCY0H+k0AAAEJSURBVEhLtZKxEcIwDEUZhzIlJSOkpGQEyoyQ ERgjJSVlRkjJCJTpzH3fSafYki3nQvGOb1nRi4BTCOGvqMUjUYtd14XHeA74pAzSPg9ZAQMp0+Bpvkbk nZfNwRpAkuV7b5ZsDqWHcbdHwsHz0B4JB+8DrRIOXoH80UHt38XBKwAtW3BoEQCvhMNeQe1r4mAJUC/d 1bbgoDWgtq5rmG8XdQAJSltwSAfgjMESSzIMU0S73zRSpvN7+cQ3w/Dn9DIFfT9GigJgSazhBEm0LbJG eaYa1bV7gLq1xaYRWEOImiTdQm1Ma5KaIN0iawQliUcgt8gaCW1QSQykpCoAaJKk9ylab9Z0LOH0AzFS L3NUGae+AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK 6QAACukB/XXO0wAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAABFElE QVRIS7WUvQ3CMBSEKSkZJSVlxmCElIxAyQgZgzJlSkagzBjpjC7SWc+PI/4RFJ+cd7bvU4LEIYTwV2RI uq4LxO+VIkOA0mUaNq79qVkiQ0DBPPabYLjdmyQyJChk+fxamiQytKBwfExRUvu5ZEhYhBWCcTjGT1Yq kSHwBZhRTgnWEokMv12kBG+AFeQkH0HuAvbtW+QkyZArJzWSZCgVgFJJcoHPpeAOfw+sEPme5DCfa7AS vo3tiocYeLDHfT7785gpqRIgX9c1PC9nWepnSIDdk4eZodiiSv3sM3mQGf97UI7/I1VoZ0V82JOocu77 zJMMuOAvqYxUC8heqaVZQChSRSXlQIYKKystBzL8HeHwBp8XImlIZls2AAAAAElFTkSuQmCC AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map/WildEditorHGSS.Designer.cs ================================================ namespace DSPRE { partial class WildEditorHGSS { /// /// 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(WildEditorHGSS)); this.removeEncounterFileButton = new System.Windows.Forms.Button(); this.addEncounterFileButton = new System.Windows.Forms.Button(); this.selectEncounterComboBox = new System.Windows.Forms.ComboBox(); this.exportEncounterFileButton = new System.Windows.Forms.Button(); this.importEncounterFileButton = new System.Windows.Forms.Button(); this.saveEncountersButton = new System.Windows.Forms.Button(); this.encounterFileLabel = new System.Windows.Forms.Label(); this.mainTabControl = new System.Windows.Forms.TabControl(); this.grassGroundTabPage = new System.Windows.Forms.TabPage(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.goodRodSwarmComboBox = new DSPRE.InputComboBox(); this.pictureBox3 = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBox2 = new System.Windows.Forms.PictureBox(); this.rockSmashGroupBox = new System.Windows.Forms.GroupBox(); this.label15 = new System.Windows.Forms.Label(); this.label16 = new System.Windows.Forms.Label(); this.label11 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); this.rockSmashTenMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.rockSmashTenMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.rockSmashNinetyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.rockSmashNinetyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.rockSmashRateUpDown = new System.Windows.Forms.NumericUpDown(); this.rockSmashNinetyComboBox = new DSPRE.InputComboBox(); this.label13 = new System.Windows.Forms.Label(); this.rockSmashTenComboBox = new DSPRE.InputComboBox(); this.radioMusicComboBox = new System.Windows.Forms.GroupBox(); this.sinnohSecondComboBox = new DSPRE.InputComboBox(); this.label10 = new System.Windows.Forms.Label(); this.sinnohFirstComboBox = new DSPRE.InputComboBox(); this.hoennSecondComboBox = new DSPRE.InputComboBox(); this.label9 = new System.Windows.Forms.Label(); this.hoennFirstComboBox = new DSPRE.InputComboBox(); this.swarmsGroupBox = new System.Windows.Forms.GroupBox(); this.superRodSwarmComboBox = new DSPRE.InputComboBox(); this.label5 = new System.Windows.Forms.Label(); this.surfSwarmComboBox = new DSPRE.InputComboBox(); this.label6 = new System.Windows.Forms.Label(); this.grassSwarmComboBox = new DSPRE.InputComboBox(); this.label8 = new System.Windows.Forms.Label(); this.walkingGroupBox = new System.Windows.Forms.GroupBox(); this.label4 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.walkingRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label14 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.nightOneSecondComboBox = new DSPRE.InputComboBox(); this.nightOneFirstComboBox = new DSPRE.InputComboBox(); this.nightFourSecondComboBox = new DSPRE.InputComboBox(); this.nightFourFirstComboBox = new DSPRE.InputComboBox(); this.nightFiveSecondComboBox = new DSPRE.InputComboBox(); this.nightFiveFirstComboBox = new DSPRE.InputComboBox(); this.nightTenFourthComboBox = new DSPRE.InputComboBox(); this.nightTenThirdComboBox = new DSPRE.InputComboBox(); this.nightTenSecondComboBox = new DSPRE.InputComboBox(); this.nightTenFirstComboBox = new DSPRE.InputComboBox(); this.nightTwentySecondComboBox = new DSPRE.InputComboBox(); this.nightTwentyFirstComboBox = new DSPRE.InputComboBox(); this.dayOneSecondComboBox = new DSPRE.InputComboBox(); this.dayOneFirstComboBox = new DSPRE.InputComboBox(); this.dayFourSecondComboBox = new DSPRE.InputComboBox(); this.dayFourFirstComboBox = new DSPRE.InputComboBox(); this.dayFiveSecondComboBox = new DSPRE.InputComboBox(); this.dayFiveFirstComboBox = new DSPRE.InputComboBox(); this.dayTenFourthComboBox = new DSPRE.InputComboBox(); this.dayTenThirdComboBox = new DSPRE.InputComboBox(); this.dayTenSecondComboBox = new DSPRE.InputComboBox(); this.dayTenFirstComboBox = new DSPRE.InputComboBox(); this.dayTwentySecondComboBox = new DSPRE.InputComboBox(); this.dayTwentyFirstComboBox = new DSPRE.InputComboBox(); this.oneSecondLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label79 = new System.Windows.Forms.Label(); this.morningOneSecondComboBox = new DSPRE.InputComboBox(); this.oneFirstLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label80 = new System.Windows.Forms.Label(); this.morningOneFirstComboBox = new DSPRE.InputComboBox(); this.fourSecondLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label81 = new System.Windows.Forms.Label(); this.morningFourSecondComboBox = new DSPRE.InputComboBox(); this.fourFirstLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label82 = new System.Windows.Forms.Label(); this.morningFourFirstComboBox = new DSPRE.InputComboBox(); this.fiveSecondLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label83 = new System.Windows.Forms.Label(); this.morningFiveSecondComboBox = new DSPRE.InputComboBox(); this.fiveFirstLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label84 = new System.Windows.Forms.Label(); this.morningFiveFirstComboBox = new DSPRE.InputComboBox(); this.tenFourthLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label85 = new System.Windows.Forms.Label(); this.morningTenFourthComboBox = new DSPRE.InputComboBox(); this.tenThirdLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label86 = new System.Windows.Forms.Label(); this.morningTenThirdComboBox = new DSPRE.InputComboBox(); this.tenSecondLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label87 = new System.Windows.Forms.Label(); this.morningTenSecondComboBox = new DSPRE.InputComboBox(); this.tenFirstLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label88 = new System.Windows.Forms.Label(); this.morningTenFirstComboBox = new DSPRE.InputComboBox(); this.twentySecondLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label89 = new System.Windows.Forms.Label(); this.morningTwentySecondComboBox = new DSPRE.InputComboBox(); this.twentyFirstLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label90 = new System.Windows.Forms.Label(); this.morningTwentyFirstComboBox = new DSPRE.InputComboBox(); this.waterTabPage = new System.Windows.Forms.TabPage(); this.surfPicture = new System.Windows.Forms.PictureBox(); this.pictureBox7 = new System.Windows.Forms.PictureBox(); this.pictureBox6 = new System.Windows.Forms.PictureBox(); this.pictureBox5 = new System.Windows.Forms.PictureBox(); this.superRodGroupBox = new System.Windows.Forms.GroupBox(); this.label59 = new System.Windows.Forms.Label(); this.label60 = new System.Windows.Forms.Label(); this.superRodRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label69 = new System.Windows.Forms.Label(); this.superRodOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label70 = new System.Windows.Forms.Label(); this.superRodOneComboBox = new DSPRE.InputComboBox(); this.superRodFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label71 = new System.Windows.Forms.Label(); this.superRodFourComboBox = new DSPRE.InputComboBox(); this.superRodFifteenMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodFifteenMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label72 = new System.Windows.Forms.Label(); this.superRodFifteenComboBox = new DSPRE.InputComboBox(); this.superRodSecondFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodSecondFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label73 = new System.Windows.Forms.Label(); this.superRodSecondFortyComboBox = new DSPRE.InputComboBox(); this.superRodFirstFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.superRodFirstFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label74 = new System.Windows.Forms.Label(); this.superRodFirstFortyComboBox = new DSPRE.InputComboBox(); this.goodRodGroupBox = new System.Windows.Forms.GroupBox(); this.label51 = new System.Windows.Forms.Label(); this.label52 = new System.Windows.Forms.Label(); this.goodRodRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label53 = new System.Windows.Forms.Label(); this.goodRodOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label54 = new System.Windows.Forms.Label(); this.goodRodOneComboBox = new DSPRE.InputComboBox(); this.goodRodFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label55 = new System.Windows.Forms.Label(); this.goodRodFourComboBox = new DSPRE.InputComboBox(); this.goodRodFifteenMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodFifteenMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label56 = new System.Windows.Forms.Label(); this.goodRodFifteenComboBox = new DSPRE.InputComboBox(); this.goodRodSecondFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodSecondFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label57 = new System.Windows.Forms.Label(); this.goodRodSecondFortyComboBox = new DSPRE.InputComboBox(); this.goodRodFirstFortyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.goodRodFirstFortyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label58 = new System.Windows.Forms.Label(); this.goodRodFirstFortyComboBox = new DSPRE.InputComboBox(); this.oldRodGroupBox = new System.Windows.Forms.GroupBox(); this.label43 = new System.Windows.Forms.Label(); this.label44 = new System.Windows.Forms.Label(); this.oldRodRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label45 = new System.Windows.Forms.Label(); this.oldRodOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label46 = new System.Windows.Forms.Label(); this.oldRodOneComboBox = new DSPRE.InputComboBox(); this.oldRodFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label47 = new System.Windows.Forms.Label(); this.oldRodFourComboBox = new DSPRE.InputComboBox(); this.oldRodFiveMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodFiveMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label48 = new System.Windows.Forms.Label(); this.oldRodFiveComboBox = new DSPRE.InputComboBox(); this.oldRodThirtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodThirtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label49 = new System.Windows.Forms.Label(); this.oldRodThirtyComboBox = new DSPRE.InputComboBox(); this.oldRodSixtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.oldRodSixtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label50 = new System.Windows.Forms.Label(); this.oldRodSixtyComboBox = new DSPRE.InputComboBox(); this.surfGroupBox = new System.Windows.Forms.GroupBox(); this.label68 = new System.Windows.Forms.Label(); this.label67 = new System.Windows.Forms.Label(); this.surfRateUpDown = new System.Windows.Forms.NumericUpDown(); this.label61 = new System.Windows.Forms.Label(); this.surfOneMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfOneMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label62 = new System.Windows.Forms.Label(); this.surfOneComboBox = new DSPRE.InputComboBox(); this.surfFourMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfFourMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label63 = new System.Windows.Forms.Label(); this.surfFourComboBox = new DSPRE.InputComboBox(); this.surfFiveMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfFiveMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label64 = new System.Windows.Forms.Label(); this.surfFiveComboBox = new DSPRE.InputComboBox(); this.surfThirtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfThirtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label65 = new System.Windows.Forms.Label(); this.surfThirtyComboBox = new DSPRE.InputComboBox(); this.surfSixtyMaxLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.surfSixtyMinLevelUpDown = new System.Windows.Forms.NumericUpDown(); this.label66 = new System.Windows.Forms.Label(); this.surfSixtyComboBox = new DSPRE.InputComboBox(); this.repairAllButton = new System.Windows.Forms.Button(); this.mainTabControl.SuspendLayout(); this.grassGroundTabPage.SuspendLayout(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); this.rockSmashGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashTenMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashTenMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashNinetyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashNinetyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashRateUpDown)).BeginInit(); this.radioMusicComboBox.SuspendLayout(); this.swarmsGroupBox.SuspendLayout(); this.walkingGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.walkingRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oneSecondLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oneFirstLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.fourSecondLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.fourFirstLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.fiveSecondLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.fiveFirstLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tenFourthLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tenThirdLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tenSecondLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tenFirstLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.twentySecondLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.twentyFirstLevelUpDown)).BeginInit(); this.waterTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.surfPicture)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); this.superRodGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.superRodRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMinLevelUpDown)).BeginInit(); this.goodRodGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.goodRodRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMinLevelUpDown)).BeginInit(); this.oldRodGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.oldRodRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMinLevelUpDown)).BeginInit(); this.surfGroupBox.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.surfRateUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMinLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMaxLevelUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMinLevelUpDown)).BeginInit(); this.SuspendLayout(); // // removeEncounterFileButton // this.removeEncounterFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon; this.removeEncounterFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.removeEncounterFileButton.Location = new System.Drawing.Point(98, 593); this.removeEncounterFileButton.Name = "removeEncounterFileButton"; this.removeEncounterFileButton.Size = new System.Drawing.Size(97, 35); this.removeEncounterFileButton.TabIndex = 67; this.removeEncounterFileButton.Text = "Remove Last"; this.removeEncounterFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.removeEncounterFileButton.UseVisualStyleBackColor = true; this.removeEncounterFileButton.Click += new System.EventHandler(this.removeLastEncounterFileButton_Click); // // addEncounterFileButton // this.addEncounterFileButton.Image = global::DSPRE.Properties.Resources.addIcon; this.addEncounterFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.addEncounterFileButton.Location = new System.Drawing.Point(13, 593); this.addEncounterFileButton.Name = "addEncounterFileButton"; this.addEncounterFileButton.Size = new System.Drawing.Size(79, 35); this.addEncounterFileButton.TabIndex = 66; this.addEncounterFileButton.Text = "Add File"; this.addEncounterFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.addEncounterFileButton.UseVisualStyleBackColor = true; this.addEncounterFileButton.Click += new System.EventHandler(this.addEncounterFileButton_Click); // // selectEncounterComboBox // this.selectEncounterComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.selectEncounterComboBox.FormattingEnabled = true; this.selectEncounterComboBox.Location = new System.Drawing.Point(12, 25); this.selectEncounterComboBox.Name = "selectEncounterComboBox"; this.selectEncounterComboBox.Size = new System.Drawing.Size(425, 21); this.selectEncounterComboBox.TabIndex = 65; this.selectEncounterComboBox.SelectedIndexChanged += new System.EventHandler(this.selectEncounterComboBox_SelectedIndexChanged); // // exportEncounterFileButton // this.exportEncounterFileButton.Image = global::DSPRE.Properties.Resources.exportArrow; this.exportEncounterFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.exportEncounterFileButton.Location = new System.Drawing.Point(668, 17); this.exportEncounterFileButton.Name = "exportEncounterFileButton"; this.exportEncounterFileButton.Size = new System.Drawing.Size(91, 35); this.exportEncounterFileButton.TabIndex = 64; this.exportEncounterFileButton.Text = "Export\r\nCurrent"; this.exportEncounterFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.exportEncounterFileButton.UseVisualStyleBackColor = true; this.exportEncounterFileButton.Click += new System.EventHandler(this.exportEncounterFileButton_Click); // // importEncounterFileButton // this.importEncounterFileButton.Image = global::DSPRE.Properties.Resources.importArrow; this.importEncounterFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.importEncounterFileButton.Location = new System.Drawing.Point(566, 17); this.importEncounterFileButton.Name = "importEncounterFileButton"; this.importEncounterFileButton.Size = new System.Drawing.Size(91, 35); this.importEncounterFileButton.TabIndex = 63; this.importEncounterFileButton.Text = "Replace Current"; this.importEncounterFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.importEncounterFileButton.UseVisualStyleBackColor = true; this.importEncounterFileButton.Click += new System.EventHandler(this.importEncounterFileButton_Click); // // saveEncountersButton // this.saveEncountersButton.Image = global::DSPRE.Properties.Resources.saveButton; this.saveEncountersButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.saveEncountersButton.Location = new System.Drawing.Point(690, 593); this.saveEncountersButton.Name = "saveEncountersButton"; this.saveEncountersButton.Size = new System.Drawing.Size(117, 35); this.saveEncountersButton.TabIndex = 62; this.saveEncountersButton.Text = "Save Encounters"; this.saveEncountersButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.saveEncountersButton.UseVisualStyleBackColor = true; this.saveEncountersButton.Click += new System.EventHandler(this.saveEncountersButton_Click); // // encounterFileLabel // this.encounterFileLabel.AutoSize = true; this.encounterFileLabel.Location = new System.Drawing.Point(10, 9); this.encounterFileLabel.Name = "encounterFileLabel"; this.encounterFileLabel.Size = new System.Drawing.Size(117, 13); this.encounterFileLabel.TabIndex = 61; this.encounterFileLabel.Text = "Current Encounters File"; // // mainTabControl // this.mainTabControl.Controls.Add(this.grassGroundTabPage); this.mainTabControl.Controls.Add(this.waterTabPage); this.mainTabControl.Location = new System.Drawing.Point(9, 53); this.mainTabControl.Name = "mainTabControl"; this.mainTabControl.SelectedIndex = 0; this.mainTabControl.Size = new System.Drawing.Size(803, 534); this.mainTabControl.TabIndex = 68; // // grassGroundTabPage // this.grassGroundTabPage.Controls.Add(this.groupBox1); this.grassGroundTabPage.Controls.Add(this.pictureBox3); this.grassGroundTabPage.Controls.Add(this.pictureBox1); this.grassGroundTabPage.Controls.Add(this.pictureBox2); this.grassGroundTabPage.Controls.Add(this.rockSmashGroupBox); this.grassGroundTabPage.Controls.Add(this.radioMusicComboBox); this.grassGroundTabPage.Controls.Add(this.swarmsGroupBox); this.grassGroundTabPage.Controls.Add(this.walkingGroupBox); this.grassGroundTabPage.Location = new System.Drawing.Point(4, 22); this.grassGroundTabPage.Name = "grassGroundTabPage"; this.grassGroundTabPage.Padding = new System.Windows.Forms.Padding(3); this.grassGroundTabPage.Size = new System.Drawing.Size(795, 508); this.grassGroundTabPage.TabIndex = 0; this.grassGroundTabPage.Text = "Grass/Ground"; this.grassGroundTabPage.UseVisualStyleBackColor = true; // // groupBox1 // this.groupBox1.Controls.Add(this.goodRodSwarmComboBox); this.groupBox1.Location = new System.Drawing.Point(563, 445); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(223, 51); this.groupBox1.TabIndex = 234; this.groupBox1.TabStop = false; this.groupBox1.Text = "Night Fishing"; // // goodRodSwarmComboBox // this.goodRodSwarmComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodSwarmComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodSwarmComboBox.FormattingEnabled = true; this.goodRodSwarmComboBox.Location = new System.Drawing.Point(49, 19); this.goodRodSwarmComboBox.Name = "goodRodSwarmComboBox"; this.goodRodSwarmComboBox.Size = new System.Drawing.Size(121, 21); this.goodRodSwarmComboBox.TabIndex = 48; this.goodRodSwarmComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodSwarmComboBox_SelectedIndexChanged); // // pictureBox3 // this.pictureBox3.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox3.Image"))); this.pictureBox3.Location = new System.Drawing.Point(677, 9); this.pictureBox3.Name = "pictureBox3"; this.pictureBox3.Size = new System.Drawing.Size(16, 21); this.pictureBox3.TabIndex = 233; this.pictureBox3.TabStop = false; // // pictureBox1 // this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(628, 225); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(16, 21); this.pictureBox1.TabIndex = 232; this.pictureBox1.TabStop = false; // // pictureBox2 // this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image"))); this.pictureBox2.Location = new System.Drawing.Point(63, 4); this.pictureBox2.Name = "pictureBox2"; this.pictureBox2.Size = new System.Drawing.Size(25, 24); this.pictureBox2.TabIndex = 226; this.pictureBox2.TabStop = false; // // rockSmashGroupBox // this.rockSmashGroupBox.Controls.Add(this.label15); this.rockSmashGroupBox.Controls.Add(this.label16); this.rockSmashGroupBox.Controls.Add(this.label11); this.rockSmashGroupBox.Controls.Add(this.label12); this.rockSmashGroupBox.Controls.Add(this.rockSmashTenMaxLevelUpDown); this.rockSmashGroupBox.Controls.Add(this.rockSmashTenMinLevelUpDown); this.rockSmashGroupBox.Controls.Add(this.rockSmashNinetyMaxLevelUpDown); this.rockSmashGroupBox.Controls.Add(this.rockSmashNinetyMinLevelUpDown); this.rockSmashGroupBox.Controls.Add(this.rockSmashRateUpDown); this.rockSmashGroupBox.Controls.Add(this.rockSmashNinetyComboBox); this.rockSmashGroupBox.Controls.Add(this.label13); this.rockSmashGroupBox.Controls.Add(this.rockSmashTenComboBox); this.rockSmashGroupBox.Location = new System.Drawing.Point(554, 227); this.rockSmashGroupBox.Name = "rockSmashGroupBox"; this.rockSmashGroupBox.Size = new System.Drawing.Size(232, 212); this.rockSmashGroupBox.TabIndex = 165; this.rockSmashGroupBox.TabStop = false; this.rockSmashGroupBox.Text = "Rock Smash"; // // label15 // this.label15.AutoSize = true; this.label15.Location = new System.Drawing.Point(177, 60); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(47, 13); this.label15.TabIndex = 77; this.label15.Text = "Max Lvl."; // // label16 // this.label16.AutoSize = true; this.label16.Location = new System.Drawing.Point(130, 60); this.label16.Name = "label16"; this.label16.Size = new System.Drawing.Size(44, 13); this.label16.TabIndex = 76; this.label16.Text = "Min Lvl."; // // label11 // this.label11.AutoSize = true; this.label11.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label11.Location = new System.Drawing.Point(6, 111); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(27, 13); this.label11.TabIndex = 75; this.label11.Text = "10%"; // // label12 // this.label12.AutoSize = true; this.label12.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label12.Location = new System.Drawing.Point(6, 60); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(27, 13); this.label12.TabIndex = 74; this.label12.Text = "90%"; // // rockSmashTenMaxLevelUpDown // this.rockSmashTenMaxLevelUpDown.Location = new System.Drawing.Point(181, 129); this.rockSmashTenMaxLevelUpDown.Name = "rockSmashTenMaxLevelUpDown"; this.rockSmashTenMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.rockSmashTenMaxLevelUpDown.TabIndex = 73; this.rockSmashTenMaxLevelUpDown.ValueChanged += new System.EventHandler(this.rockSmashTenMaxLevelUpDown_ValueChanged_1); // // rockSmashTenMinLevelUpDown // this.rockSmashTenMinLevelUpDown.Location = new System.Drawing.Point(133, 129); this.rockSmashTenMinLevelUpDown.Name = "rockSmashTenMinLevelUpDown"; this.rockSmashTenMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.rockSmashTenMinLevelUpDown.TabIndex = 72; this.rockSmashTenMinLevelUpDown.ValueChanged += new System.EventHandler(this.rockSmashTenMinLevelUpDown_ValueChanged); // // rockSmashNinetyMaxLevelUpDown // this.rockSmashNinetyMaxLevelUpDown.Location = new System.Drawing.Point(181, 80); this.rockSmashNinetyMaxLevelUpDown.Name = "rockSmashNinetyMaxLevelUpDown"; this.rockSmashNinetyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.rockSmashNinetyMaxLevelUpDown.TabIndex = 71; this.rockSmashNinetyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.rockSmashNinetyMaxLevelUpDown_ValueChanged_1); // // rockSmashNinetyMinLevelUpDown // this.rockSmashNinetyMinLevelUpDown.Location = new System.Drawing.Point(133, 80); this.rockSmashNinetyMinLevelUpDown.Name = "rockSmashNinetyMinLevelUpDown"; this.rockSmashNinetyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.rockSmashNinetyMinLevelUpDown.TabIndex = 70; this.rockSmashNinetyMinLevelUpDown.ValueChanged += new System.EventHandler(this.rockSmashNinetyMinLevelUpDown_ValueChanged); // // rockSmashRateUpDown // this.rockSmashRateUpDown.Location = new System.Drawing.Point(181, 19); this.rockSmashRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.rockSmashRateUpDown.Name = "rockSmashRateUpDown"; this.rockSmashRateUpDown.Size = new System.Drawing.Size(42, 20); this.rockSmashRateUpDown.TabIndex = 69; this.rockSmashRateUpDown.ValueChanged += new System.EventHandler(this.rockSmashRateUpDown_ValueChanged); // // rockSmashNinetyComboBox // this.rockSmashNinetyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.rockSmashNinetyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.rockSmashNinetyComboBox.FormattingEnabled = true; this.rockSmashNinetyComboBox.Location = new System.Drawing.Point(7, 79); this.rockSmashNinetyComboBox.Name = "rockSmashNinetyComboBox"; this.rockSmashNinetyComboBox.Size = new System.Drawing.Size(121, 21); this.rockSmashNinetyComboBox.TabIndex = 39; this.rockSmashNinetyComboBox.SelectedIndexChanged += new System.EventHandler(this.rockSmashNinetyComboBox_SelectedIndexChanged); // // label13 // this.label13.AutoSize = true; this.label13.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label13.Location = new System.Drawing.Point(97, 22); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(82, 13); this.label13.TabIndex = 68; this.label13.Text = "Encounter Rate"; // // rockSmashTenComboBox // this.rockSmashTenComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.rockSmashTenComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.rockSmashTenComboBox.FormattingEnabled = true; this.rockSmashTenComboBox.Location = new System.Drawing.Point(7, 128); this.rockSmashTenComboBox.Name = "rockSmashTenComboBox"; this.rockSmashTenComboBox.Size = new System.Drawing.Size(121, 21); this.rockSmashTenComboBox.TabIndex = 42; this.rockSmashTenComboBox.SelectedIndexChanged += new System.EventHandler(this.rockSmashTenComboBox_SelectedIndexChanged); // // radioMusicComboBox // this.radioMusicComboBox.Controls.Add(this.sinnohSecondComboBox); this.radioMusicComboBox.Controls.Add(this.label10); this.radioMusicComboBox.Controls.Add(this.sinnohFirstComboBox); this.radioMusicComboBox.Controls.Add(this.hoennSecondComboBox); this.radioMusicComboBox.Controls.Add(this.label9); this.radioMusicComboBox.Controls.Add(this.hoennFirstComboBox); this.radioMusicComboBox.Location = new System.Drawing.Point(554, 12); this.radioMusicComboBox.Name = "radioMusicComboBox"; this.radioMusicComboBox.Size = new System.Drawing.Size(232, 209); this.radioMusicComboBox.TabIndex = 164; this.radioMusicComboBox.TabStop = false; this.radioMusicComboBox.Text = "Radio Sound Pokémon"; // // sinnohSecondComboBox // this.sinnohSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.sinnohSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.sinnohSecondComboBox.FormattingEnabled = true; this.sinnohSecondComboBox.Location = new System.Drawing.Point(42, 151); this.sinnohSecondComboBox.Name = "sinnohSecondComboBox"; this.sinnohSecondComboBox.Size = new System.Drawing.Size(150, 21); this.sinnohSecondComboBox.TabIndex = 231; this.sinnohSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.sinnohSecondComboBox_SelectedIndexChanged); // // label10 // this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(39, 108); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(71, 13); this.label10.TabIndex = 230; this.label10.Text = "Sinnoh Music"; // // sinnohFirstComboBox // this.sinnohFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.sinnohFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.sinnohFirstComboBox.FormattingEnabled = true; this.sinnohFirstComboBox.Location = new System.Drawing.Point(42, 124); this.sinnohFirstComboBox.Name = "sinnohFirstComboBox"; this.sinnohFirstComboBox.Size = new System.Drawing.Size(150, 21); this.sinnohFirstComboBox.TabIndex = 229; this.sinnohFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.sinnohFirstComboBox_SelectedIndexChanged); // // hoennSecondComboBox // this.hoennSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.hoennSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.hoennSecondComboBox.FormattingEnabled = true; this.hoennSecondComboBox.Location = new System.Drawing.Point(42, 72); this.hoennSecondComboBox.Name = "hoennSecondComboBox"; this.hoennSecondComboBox.Size = new System.Drawing.Size(150, 21); this.hoennSecondComboBox.TabIndex = 228; this.hoennSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.hoennSecondComboBox_SelectedIndexChanged); // // label9 // this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(39, 29); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(70, 13); this.label9.TabIndex = 227; this.label9.Text = "Hoenn Music"; // // hoennFirstComboBox // this.hoennFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.hoennFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.hoennFirstComboBox.FormattingEnabled = true; this.hoennFirstComboBox.Location = new System.Drawing.Point(42, 45); this.hoennFirstComboBox.Name = "hoennFirstComboBox"; this.hoennFirstComboBox.Size = new System.Drawing.Size(150, 21); this.hoennFirstComboBox.TabIndex = 226; this.hoennFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.hoennFirstComboBox_SelectedIndexChanged); // // swarmsGroupBox // this.swarmsGroupBox.Controls.Add(this.superRodSwarmComboBox); this.swarmsGroupBox.Controls.Add(this.label5); this.swarmsGroupBox.Controls.Add(this.surfSwarmComboBox); this.swarmsGroupBox.Controls.Add(this.label6); this.swarmsGroupBox.Controls.Add(this.grassSwarmComboBox); this.swarmsGroupBox.Controls.Add(this.label8); this.swarmsGroupBox.Location = new System.Drawing.Point(12, 445); this.swarmsGroupBox.Name = "swarmsGroupBox"; this.swarmsGroupBox.Size = new System.Drawing.Size(536, 51); this.swarmsGroupBox.TabIndex = 163; this.swarmsGroupBox.TabStop = false; this.swarmsGroupBox.Text = "Swarm"; // // superRodSwarmComboBox // this.superRodSwarmComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodSwarmComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodSwarmComboBox.FormattingEnabled = true; this.superRodSwarmComboBox.Location = new System.Drawing.Point(388, 19); this.superRodSwarmComboBox.Name = "superRodSwarmComboBox"; this.superRodSwarmComboBox.Size = new System.Drawing.Size(121, 21); this.superRodSwarmComboBox.TabIndex = 50; this.superRodSwarmComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodSwarmComboBox_SelectedIndexChanged); // // label5 // this.label5.AutoSize = true; this.label5.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label5.Location = new System.Drawing.Point(175, 22); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(26, 13); this.label5.TabIndex = 47; this.label5.Text = "Surf"; // // surfSwarmComboBox // this.surfSwarmComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfSwarmComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfSwarmComboBox.FormattingEnabled = true; this.surfSwarmComboBox.Location = new System.Drawing.Point(207, 19); this.surfSwarmComboBox.Name = "surfSwarmComboBox"; this.surfSwarmComboBox.Size = new System.Drawing.Size(121, 21); this.surfSwarmComboBox.TabIndex = 46; this.surfSwarmComboBox.SelectedIndexChanged += new System.EventHandler(this.surfSwarmComboBox_SelectedIndexChanged); // // label6 // this.label6.AutoSize = true; this.label6.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label6.Location = new System.Drawing.Point(8, 22); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(34, 13); this.label6.TabIndex = 45; this.label6.Text = "Grass"; // // grassSwarmComboBox // this.grassSwarmComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.grassSwarmComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.grassSwarmComboBox.FormattingEnabled = true; this.grassSwarmComboBox.Location = new System.Drawing.Point(48, 19); this.grassSwarmComboBox.Name = "grassSwarmComboBox"; this.grassSwarmComboBox.Size = new System.Drawing.Size(121, 21); this.grassSwarmComboBox.TabIndex = 44; this.grassSwarmComboBox.SelectedIndexChanged += new System.EventHandler(this.grassSwarmComboBox_SelectedIndexChanged); // // label8 // this.label8.AutoSize = true; this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label8.Location = new System.Drawing.Point(334, 22); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(48, 13); this.label8.TabIndex = 51; this.label8.Text = "Any Rod"; // // walkingGroupBox // this.walkingGroupBox.Controls.Add(this.label4); this.walkingGroupBox.Controls.Add(this.label3); this.walkingGroupBox.Controls.Add(this.walkingRateUpDown); this.walkingGroupBox.Controls.Add(this.label14); this.walkingGroupBox.Controls.Add(this.label2); this.walkingGroupBox.Controls.Add(this.label1); this.walkingGroupBox.Controls.Add(this.nightOneSecondComboBox); this.walkingGroupBox.Controls.Add(this.nightOneFirstComboBox); this.walkingGroupBox.Controls.Add(this.nightFourSecondComboBox); this.walkingGroupBox.Controls.Add(this.nightFourFirstComboBox); this.walkingGroupBox.Controls.Add(this.nightFiveSecondComboBox); this.walkingGroupBox.Controls.Add(this.nightFiveFirstComboBox); this.walkingGroupBox.Controls.Add(this.nightTenFourthComboBox); this.walkingGroupBox.Controls.Add(this.nightTenThirdComboBox); this.walkingGroupBox.Controls.Add(this.nightTenSecondComboBox); this.walkingGroupBox.Controls.Add(this.nightTenFirstComboBox); this.walkingGroupBox.Controls.Add(this.nightTwentySecondComboBox); this.walkingGroupBox.Controls.Add(this.nightTwentyFirstComboBox); this.walkingGroupBox.Controls.Add(this.dayOneSecondComboBox); this.walkingGroupBox.Controls.Add(this.dayOneFirstComboBox); this.walkingGroupBox.Controls.Add(this.dayFourSecondComboBox); this.walkingGroupBox.Controls.Add(this.dayFourFirstComboBox); this.walkingGroupBox.Controls.Add(this.dayFiveSecondComboBox); this.walkingGroupBox.Controls.Add(this.dayFiveFirstComboBox); this.walkingGroupBox.Controls.Add(this.dayTenFourthComboBox); this.walkingGroupBox.Controls.Add(this.dayTenThirdComboBox); this.walkingGroupBox.Controls.Add(this.dayTenSecondComboBox); this.walkingGroupBox.Controls.Add(this.dayTenFirstComboBox); this.walkingGroupBox.Controls.Add(this.dayTwentySecondComboBox); this.walkingGroupBox.Controls.Add(this.dayTwentyFirstComboBox); this.walkingGroupBox.Controls.Add(this.oneSecondLevelUpDown); this.walkingGroupBox.Controls.Add(this.label79); this.walkingGroupBox.Controls.Add(this.morningOneSecondComboBox); this.walkingGroupBox.Controls.Add(this.oneFirstLevelUpDown); this.walkingGroupBox.Controls.Add(this.label80); this.walkingGroupBox.Controls.Add(this.morningOneFirstComboBox); this.walkingGroupBox.Controls.Add(this.fourSecondLevelUpDown); this.walkingGroupBox.Controls.Add(this.label81); this.walkingGroupBox.Controls.Add(this.morningFourSecondComboBox); this.walkingGroupBox.Controls.Add(this.fourFirstLevelUpDown); this.walkingGroupBox.Controls.Add(this.label82); this.walkingGroupBox.Controls.Add(this.morningFourFirstComboBox); this.walkingGroupBox.Controls.Add(this.fiveSecondLevelUpDown); this.walkingGroupBox.Controls.Add(this.label83); this.walkingGroupBox.Controls.Add(this.morningFiveSecondComboBox); this.walkingGroupBox.Controls.Add(this.fiveFirstLevelUpDown); this.walkingGroupBox.Controls.Add(this.label84); this.walkingGroupBox.Controls.Add(this.morningFiveFirstComboBox); this.walkingGroupBox.Controls.Add(this.tenFourthLevelUpDown); this.walkingGroupBox.Controls.Add(this.label85); this.walkingGroupBox.Controls.Add(this.morningTenFourthComboBox); this.walkingGroupBox.Controls.Add(this.tenThirdLevelUpDown); this.walkingGroupBox.Controls.Add(this.label86); this.walkingGroupBox.Controls.Add(this.morningTenThirdComboBox); this.walkingGroupBox.Controls.Add(this.tenSecondLevelUpDown); this.walkingGroupBox.Controls.Add(this.label87); this.walkingGroupBox.Controls.Add(this.morningTenSecondComboBox); this.walkingGroupBox.Controls.Add(this.tenFirstLevelUpDown); this.walkingGroupBox.Controls.Add(this.label88); this.walkingGroupBox.Controls.Add(this.morningTenFirstComboBox); this.walkingGroupBox.Controls.Add(this.twentySecondLevelUpDown); this.walkingGroupBox.Controls.Add(this.label89); this.walkingGroupBox.Controls.Add(this.morningTwentySecondComboBox); this.walkingGroupBox.Controls.Add(this.twentyFirstLevelUpDown); this.walkingGroupBox.Controls.Add(this.label90); this.walkingGroupBox.Controls.Add(this.morningTwentyFirstComboBox); this.walkingGroupBox.Location = new System.Drawing.Point(12, 7); this.walkingGroupBox.Name = "walkingGroupBox"; this.walkingGroupBox.Size = new System.Drawing.Size(536, 432); this.walkingGroupBox.TabIndex = 162; this.walkingGroupBox.TabStop = false; this.walkingGroupBox.Text = "Walking"; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(415, 51); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(33, 13); this.label4.TabIndex = 225; this.label4.Text = "Level"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(288, 51); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(32, 13); this.label3.TabIndex = 224; this.label3.Text = "Night"; // // walkingRateUpDown // this.walkingRateUpDown.Location = new System.Drawing.Point(386, 14); this.walkingRateUpDown.Name = "walkingRateUpDown"; this.walkingRateUpDown.Size = new System.Drawing.Size(75, 20); this.walkingRateUpDown.TabIndex = 101; this.walkingRateUpDown.ValueChanged += new System.EventHandler(this.walkingRateUpDown_ValueChanged); // // label14 // this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(297, 17); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(82, 13); this.label14.TabIndex = 100; this.label14.Text = "Encounter Rate"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(161, 51); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(26, 13); this.label2.TabIndex = 223; this.label2.Text = "Day"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(34, 51); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(45, 13); this.label1.TabIndex = 222; this.label1.Text = "Morning"; // // nightOneSecondComboBox // this.nightOneSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightOneSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightOneSecondComboBox.FormattingEnabled = true; this.nightOneSecondComboBox.Location = new System.Drawing.Point(291, 364); this.nightOneSecondComboBox.Name = "nightOneSecondComboBox"; this.nightOneSecondComboBox.Size = new System.Drawing.Size(121, 21); this.nightOneSecondComboBox.TabIndex = 221; this.nightOneSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.nightOneSecondComboBox_SelectedIndexChanged); // // nightOneFirstComboBox // this.nightOneFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightOneFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightOneFirstComboBox.FormattingEnabled = true; this.nightOneFirstComboBox.Location = new System.Drawing.Point(291, 337); this.nightOneFirstComboBox.Name = "nightOneFirstComboBox"; this.nightOneFirstComboBox.Size = new System.Drawing.Size(121, 21); this.nightOneFirstComboBox.TabIndex = 220; this.nightOneFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.nightOneFirstComboBox_SelectedIndexChanged); // // nightFourSecondComboBox // this.nightFourSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightFourSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightFourSecondComboBox.FormattingEnabled = true; this.nightFourSecondComboBox.Location = new System.Drawing.Point(291, 310); this.nightFourSecondComboBox.Name = "nightFourSecondComboBox"; this.nightFourSecondComboBox.Size = new System.Drawing.Size(121, 21); this.nightFourSecondComboBox.TabIndex = 219; this.nightFourSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.nightFourSecondComboBox_SelectedIndexChanged); // // nightFourFirstComboBox // this.nightFourFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightFourFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightFourFirstComboBox.FormattingEnabled = true; this.nightFourFirstComboBox.Location = new System.Drawing.Point(291, 283); this.nightFourFirstComboBox.Name = "nightFourFirstComboBox"; this.nightFourFirstComboBox.Size = new System.Drawing.Size(121, 21); this.nightFourFirstComboBox.TabIndex = 218; this.nightFourFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.nightFourFirstComboBox_SelectedIndexChanged); // // nightFiveSecondComboBox // this.nightFiveSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightFiveSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightFiveSecondComboBox.FormattingEnabled = true; this.nightFiveSecondComboBox.Location = new System.Drawing.Point(291, 256); this.nightFiveSecondComboBox.Name = "nightFiveSecondComboBox"; this.nightFiveSecondComboBox.Size = new System.Drawing.Size(121, 21); this.nightFiveSecondComboBox.TabIndex = 217; this.nightFiveSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.nightFiveSecondComboBox_SelectedIndexChanged); // // nightFiveFirstComboBox // this.nightFiveFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightFiveFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightFiveFirstComboBox.FormattingEnabled = true; this.nightFiveFirstComboBox.Location = new System.Drawing.Point(291, 229); this.nightFiveFirstComboBox.Name = "nightFiveFirstComboBox"; this.nightFiveFirstComboBox.Size = new System.Drawing.Size(121, 21); this.nightFiveFirstComboBox.TabIndex = 216; this.nightFiveFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.nightFiveFirstComboBox_SelectedIndexChanged); // // nightTenFourthComboBox // this.nightTenFourthComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightTenFourthComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightTenFourthComboBox.FormattingEnabled = true; this.nightTenFourthComboBox.Location = new System.Drawing.Point(291, 202); this.nightTenFourthComboBox.Name = "nightTenFourthComboBox"; this.nightTenFourthComboBox.Size = new System.Drawing.Size(121, 21); this.nightTenFourthComboBox.TabIndex = 215; this.nightTenFourthComboBox.SelectedIndexChanged += new System.EventHandler(this.nightTenFourthComboBox_SelectedIndexChanged); // // nightTenThirdComboBox // this.nightTenThirdComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightTenThirdComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightTenThirdComboBox.FormattingEnabled = true; this.nightTenThirdComboBox.Location = new System.Drawing.Point(291, 175); this.nightTenThirdComboBox.Name = "nightTenThirdComboBox"; this.nightTenThirdComboBox.Size = new System.Drawing.Size(121, 21); this.nightTenThirdComboBox.TabIndex = 214; this.nightTenThirdComboBox.SelectedIndexChanged += new System.EventHandler(this.nightTenThirdComboBox_SelectedIndexChanged); // // nightTenSecondComboBox // this.nightTenSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightTenSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightTenSecondComboBox.FormattingEnabled = true; this.nightTenSecondComboBox.Location = new System.Drawing.Point(291, 148); this.nightTenSecondComboBox.Name = "nightTenSecondComboBox"; this.nightTenSecondComboBox.Size = new System.Drawing.Size(121, 21); this.nightTenSecondComboBox.TabIndex = 213; this.nightTenSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.nightTenSecondComboBox_SelectedIndexChanged); // // nightTenFirstComboBox // this.nightTenFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightTenFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightTenFirstComboBox.FormattingEnabled = true; this.nightTenFirstComboBox.Location = new System.Drawing.Point(291, 121); this.nightTenFirstComboBox.Name = "nightTenFirstComboBox"; this.nightTenFirstComboBox.Size = new System.Drawing.Size(121, 21); this.nightTenFirstComboBox.TabIndex = 212; this.nightTenFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.nightTenFirstComboBox_SelectedIndexChanged); // // nightTwentySecondComboBox // this.nightTwentySecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightTwentySecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightTwentySecondComboBox.FormattingEnabled = true; this.nightTwentySecondComboBox.Location = new System.Drawing.Point(291, 94); this.nightTwentySecondComboBox.Name = "nightTwentySecondComboBox"; this.nightTwentySecondComboBox.Size = new System.Drawing.Size(121, 21); this.nightTwentySecondComboBox.TabIndex = 211; this.nightTwentySecondComboBox.SelectedIndexChanged += new System.EventHandler(this.nightTwentySecondComboBox_SelectedIndexChanged); // // nightTwentyFirstComboBox // this.nightTwentyFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.nightTwentyFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.nightTwentyFirstComboBox.FormattingEnabled = true; this.nightTwentyFirstComboBox.Location = new System.Drawing.Point(291, 67); this.nightTwentyFirstComboBox.Name = "nightTwentyFirstComboBox"; this.nightTwentyFirstComboBox.Size = new System.Drawing.Size(121, 21); this.nightTwentyFirstComboBox.TabIndex = 210; this.nightTwentyFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.nightTwentyFirstComboBox_SelectedIndexChanged); // // dayOneSecondComboBox // this.dayOneSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayOneSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayOneSecondComboBox.FormattingEnabled = true; this.dayOneSecondComboBox.Location = new System.Drawing.Point(164, 364); this.dayOneSecondComboBox.Name = "dayOneSecondComboBox"; this.dayOneSecondComboBox.Size = new System.Drawing.Size(121, 21); this.dayOneSecondComboBox.TabIndex = 209; this.dayOneSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.dayOneSecondComboBox_SelectedIndexChanged); // // dayOneFirstComboBox // this.dayOneFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayOneFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayOneFirstComboBox.FormattingEnabled = true; this.dayOneFirstComboBox.Location = new System.Drawing.Point(164, 337); this.dayOneFirstComboBox.Name = "dayOneFirstComboBox"; this.dayOneFirstComboBox.Size = new System.Drawing.Size(121, 21); this.dayOneFirstComboBox.TabIndex = 208; this.dayOneFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.dayOneFirstComboBox_SelectedIndexChanged); // // dayFourSecondComboBox // this.dayFourSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayFourSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayFourSecondComboBox.FormattingEnabled = true; this.dayFourSecondComboBox.Location = new System.Drawing.Point(164, 310); this.dayFourSecondComboBox.Name = "dayFourSecondComboBox"; this.dayFourSecondComboBox.Size = new System.Drawing.Size(121, 21); this.dayFourSecondComboBox.TabIndex = 207; this.dayFourSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.dayFourSecondComboBox_SelectedIndexChanged); // // dayFourFirstComboBox // this.dayFourFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayFourFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayFourFirstComboBox.FormattingEnabled = true; this.dayFourFirstComboBox.Location = new System.Drawing.Point(164, 283); this.dayFourFirstComboBox.Name = "dayFourFirstComboBox"; this.dayFourFirstComboBox.Size = new System.Drawing.Size(121, 21); this.dayFourFirstComboBox.TabIndex = 206; this.dayFourFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.dayFourFirstComboBox_SelectedIndexChanged); // // dayFiveSecondComboBox // this.dayFiveSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayFiveSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayFiveSecondComboBox.FormattingEnabled = true; this.dayFiveSecondComboBox.Location = new System.Drawing.Point(164, 256); this.dayFiveSecondComboBox.Name = "dayFiveSecondComboBox"; this.dayFiveSecondComboBox.Size = new System.Drawing.Size(121, 21); this.dayFiveSecondComboBox.TabIndex = 205; this.dayFiveSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.dayFiveSecondComboBox_SelectedIndexChanged); // // dayFiveFirstComboBox // this.dayFiveFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayFiveFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayFiveFirstComboBox.FormattingEnabled = true; this.dayFiveFirstComboBox.Location = new System.Drawing.Point(164, 229); this.dayFiveFirstComboBox.Name = "dayFiveFirstComboBox"; this.dayFiveFirstComboBox.Size = new System.Drawing.Size(121, 21); this.dayFiveFirstComboBox.TabIndex = 204; this.dayFiveFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.dayFiveFirstComboBox_SelectedIndexChanged); // // dayTenFourthComboBox // this.dayTenFourthComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayTenFourthComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayTenFourthComboBox.FormattingEnabled = true; this.dayTenFourthComboBox.Location = new System.Drawing.Point(164, 202); this.dayTenFourthComboBox.Name = "dayTenFourthComboBox"; this.dayTenFourthComboBox.Size = new System.Drawing.Size(121, 21); this.dayTenFourthComboBox.TabIndex = 203; this.dayTenFourthComboBox.SelectedIndexChanged += new System.EventHandler(this.dayTenFourthComboBox_SelectedIndexChanged); // // dayTenThirdComboBox // this.dayTenThirdComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayTenThirdComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayTenThirdComboBox.FormattingEnabled = true; this.dayTenThirdComboBox.Location = new System.Drawing.Point(164, 175); this.dayTenThirdComboBox.Name = "dayTenThirdComboBox"; this.dayTenThirdComboBox.Size = new System.Drawing.Size(121, 21); this.dayTenThirdComboBox.TabIndex = 202; this.dayTenThirdComboBox.SelectedIndexChanged += new System.EventHandler(this.dayTenThirdComboBox_SelectedIndexChanged); // // dayTenSecondComboBox // this.dayTenSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayTenSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayTenSecondComboBox.FormattingEnabled = true; this.dayTenSecondComboBox.Location = new System.Drawing.Point(164, 148); this.dayTenSecondComboBox.Name = "dayTenSecondComboBox"; this.dayTenSecondComboBox.Size = new System.Drawing.Size(121, 21); this.dayTenSecondComboBox.TabIndex = 201; this.dayTenSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.dayTenSecondComboBox_SelectedIndexChanged); // // dayTenFirstComboBox // this.dayTenFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayTenFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayTenFirstComboBox.FormattingEnabled = true; this.dayTenFirstComboBox.Location = new System.Drawing.Point(164, 121); this.dayTenFirstComboBox.Name = "dayTenFirstComboBox"; this.dayTenFirstComboBox.Size = new System.Drawing.Size(121, 21); this.dayTenFirstComboBox.TabIndex = 200; this.dayTenFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.dayTenFirstComboBox_SelectedIndexChanged); // // dayTwentySecondComboBox // this.dayTwentySecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayTwentySecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayTwentySecondComboBox.FormattingEnabled = true; this.dayTwentySecondComboBox.Location = new System.Drawing.Point(164, 94); this.dayTwentySecondComboBox.Name = "dayTwentySecondComboBox"; this.dayTwentySecondComboBox.Size = new System.Drawing.Size(121, 21); this.dayTwentySecondComboBox.TabIndex = 199; this.dayTwentySecondComboBox.SelectedIndexChanged += new System.EventHandler(this.dayTwentySecondComboBox_SelectedIndexChanged); // // dayTwentyFirstComboBox // this.dayTwentyFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.dayTwentyFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.dayTwentyFirstComboBox.FormattingEnabled = true; this.dayTwentyFirstComboBox.Location = new System.Drawing.Point(164, 67); this.dayTwentyFirstComboBox.Name = "dayTwentyFirstComboBox"; this.dayTwentyFirstComboBox.Size = new System.Drawing.Size(121, 21); this.dayTwentyFirstComboBox.TabIndex = 198; this.dayTwentyFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.dayTwentyFirstComboBox_SelectedIndexChanged); // // oneSecondLevelUpDown // this.oneSecondLevelUpDown.Location = new System.Drawing.Point(418, 365); this.oneSecondLevelUpDown.Name = "oneSecondLevelUpDown"; this.oneSecondLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oneSecondLevelUpDown.TabIndex = 197; this.oneSecondLevelUpDown.ValueChanged += new System.EventHandler(this.oneSecondLevelUpDown_ValueChanged); // // label79 // this.label79.AutoSize = true; this.label79.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label79.Location = new System.Drawing.Point(10, 367); this.label79.Name = "label79"; this.label79.Size = new System.Drawing.Size(21, 13); this.label79.TabIndex = 196; this.label79.Text = "1%"; // // morningOneSecondComboBox // this.morningOneSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningOneSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningOneSecondComboBox.FormattingEnabled = true; this.morningOneSecondComboBox.Location = new System.Drawing.Point(37, 364); this.morningOneSecondComboBox.Name = "morningOneSecondComboBox"; this.morningOneSecondComboBox.Size = new System.Drawing.Size(121, 21); this.morningOneSecondComboBox.TabIndex = 195; this.morningOneSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.morningOneSecondComboBox_SelectedIndexChanged); // // oneFirstLevelUpDown // this.oneFirstLevelUpDown.Location = new System.Drawing.Point(418, 338); this.oneFirstLevelUpDown.Name = "oneFirstLevelUpDown"; this.oneFirstLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oneFirstLevelUpDown.TabIndex = 194; this.oneFirstLevelUpDown.ValueChanged += new System.EventHandler(this.oneFirstLevelUpDown_ValueChanged); // // label80 // this.label80.AutoSize = true; this.label80.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label80.Location = new System.Drawing.Point(10, 340); this.label80.Name = "label80"; this.label80.Size = new System.Drawing.Size(21, 13); this.label80.TabIndex = 193; this.label80.Text = "1%"; // // morningOneFirstComboBox // this.morningOneFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningOneFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningOneFirstComboBox.FormattingEnabled = true; this.morningOneFirstComboBox.Location = new System.Drawing.Point(37, 337); this.morningOneFirstComboBox.Name = "morningOneFirstComboBox"; this.morningOneFirstComboBox.Size = new System.Drawing.Size(121, 21); this.morningOneFirstComboBox.TabIndex = 192; this.morningOneFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.morningOneFirstComboBox_SelectedIndexChanged); // // fourSecondLevelUpDown // this.fourSecondLevelUpDown.Location = new System.Drawing.Point(418, 311); this.fourSecondLevelUpDown.Name = "fourSecondLevelUpDown"; this.fourSecondLevelUpDown.Size = new System.Drawing.Size(42, 20); this.fourSecondLevelUpDown.TabIndex = 191; this.fourSecondLevelUpDown.ValueChanged += new System.EventHandler(this.fourSecondLevelUpDown_ValueChanged); // // label81 // this.label81.AutoSize = true; this.label81.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label81.Location = new System.Drawing.Point(10, 313); this.label81.Name = "label81"; this.label81.Size = new System.Drawing.Size(21, 13); this.label81.TabIndex = 190; this.label81.Text = "4%"; // // morningFourSecondComboBox // this.morningFourSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningFourSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningFourSecondComboBox.FormattingEnabled = true; this.morningFourSecondComboBox.Location = new System.Drawing.Point(37, 310); this.morningFourSecondComboBox.Name = "morningFourSecondComboBox"; this.morningFourSecondComboBox.Size = new System.Drawing.Size(121, 21); this.morningFourSecondComboBox.TabIndex = 189; this.morningFourSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.morningFourSecondComboBox_SelectedIndexChanged); // // fourFirstLevelUpDown // this.fourFirstLevelUpDown.Location = new System.Drawing.Point(418, 284); this.fourFirstLevelUpDown.Name = "fourFirstLevelUpDown"; this.fourFirstLevelUpDown.Size = new System.Drawing.Size(42, 20); this.fourFirstLevelUpDown.TabIndex = 188; this.fourFirstLevelUpDown.ValueChanged += new System.EventHandler(this.fourFirstLevelUpDown_ValueChanged); // // label82 // this.label82.AutoSize = true; this.label82.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label82.Location = new System.Drawing.Point(10, 286); this.label82.Name = "label82"; this.label82.Size = new System.Drawing.Size(21, 13); this.label82.TabIndex = 187; this.label82.Text = "4%"; // // morningFourFirstComboBox // this.morningFourFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningFourFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningFourFirstComboBox.FormattingEnabled = true; this.morningFourFirstComboBox.Location = new System.Drawing.Point(37, 283); this.morningFourFirstComboBox.Name = "morningFourFirstComboBox"; this.morningFourFirstComboBox.Size = new System.Drawing.Size(121, 21); this.morningFourFirstComboBox.TabIndex = 186; this.morningFourFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.morningFourFirstComboBox_SelectedIndexChanged); // // fiveSecondLevelUpDown // this.fiveSecondLevelUpDown.Location = new System.Drawing.Point(418, 257); this.fiveSecondLevelUpDown.Name = "fiveSecondLevelUpDown"; this.fiveSecondLevelUpDown.Size = new System.Drawing.Size(42, 20); this.fiveSecondLevelUpDown.TabIndex = 185; this.fiveSecondLevelUpDown.ValueChanged += new System.EventHandler(this.fiveSecondLevelUpDown_ValueChanged); // // label83 // this.label83.AutoSize = true; this.label83.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label83.Location = new System.Drawing.Point(10, 259); this.label83.Name = "label83"; this.label83.Size = new System.Drawing.Size(21, 13); this.label83.TabIndex = 184; this.label83.Text = "5%"; // // morningFiveSecondComboBox // this.morningFiveSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningFiveSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningFiveSecondComboBox.FormattingEnabled = true; this.morningFiveSecondComboBox.Location = new System.Drawing.Point(37, 256); this.morningFiveSecondComboBox.Name = "morningFiveSecondComboBox"; this.morningFiveSecondComboBox.Size = new System.Drawing.Size(121, 21); this.morningFiveSecondComboBox.TabIndex = 183; this.morningFiveSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.morningFiveSecondComboBox_SelectedIndexChanged); // // fiveFirstLevelUpDown // this.fiveFirstLevelUpDown.Location = new System.Drawing.Point(418, 230); this.fiveFirstLevelUpDown.Name = "fiveFirstLevelUpDown"; this.fiveFirstLevelUpDown.Size = new System.Drawing.Size(42, 20); this.fiveFirstLevelUpDown.TabIndex = 182; this.fiveFirstLevelUpDown.ValueChanged += new System.EventHandler(this.fiveFirstLevelUpDown_ValueChanged); // // label84 // this.label84.AutoSize = true; this.label84.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label84.Location = new System.Drawing.Point(10, 232); this.label84.Name = "label84"; this.label84.Size = new System.Drawing.Size(21, 13); this.label84.TabIndex = 181; this.label84.Text = "5%"; // // morningFiveFirstComboBox // this.morningFiveFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningFiveFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningFiveFirstComboBox.FormattingEnabled = true; this.morningFiveFirstComboBox.Location = new System.Drawing.Point(37, 229); this.morningFiveFirstComboBox.Name = "morningFiveFirstComboBox"; this.morningFiveFirstComboBox.Size = new System.Drawing.Size(121, 21); this.morningFiveFirstComboBox.TabIndex = 180; this.morningFiveFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.morningFiveFirstComboBox_SelectedIndexChanged); // // tenFourthLevelUpDown // this.tenFourthLevelUpDown.Location = new System.Drawing.Point(418, 203); this.tenFourthLevelUpDown.Name = "tenFourthLevelUpDown"; this.tenFourthLevelUpDown.Size = new System.Drawing.Size(42, 20); this.tenFourthLevelUpDown.TabIndex = 179; this.tenFourthLevelUpDown.ValueChanged += new System.EventHandler(this.tenFourthLevelUpDown_ValueChanged); // // label85 // this.label85.AutoSize = true; this.label85.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label85.Location = new System.Drawing.Point(4, 205); this.label85.Name = "label85"; this.label85.Size = new System.Drawing.Size(27, 13); this.label85.TabIndex = 178; this.label85.Text = "10%"; // // morningTenFourthComboBox // this.morningTenFourthComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningTenFourthComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningTenFourthComboBox.FormattingEnabled = true; this.morningTenFourthComboBox.Location = new System.Drawing.Point(37, 202); this.morningTenFourthComboBox.Name = "morningTenFourthComboBox"; this.morningTenFourthComboBox.Size = new System.Drawing.Size(121, 21); this.morningTenFourthComboBox.TabIndex = 177; this.morningTenFourthComboBox.SelectedIndexChanged += new System.EventHandler(this.morningTenFourthComboBox_SelectedIndexChanged); // // tenThirdLevelUpDown // this.tenThirdLevelUpDown.Location = new System.Drawing.Point(418, 176); this.tenThirdLevelUpDown.Name = "tenThirdLevelUpDown"; this.tenThirdLevelUpDown.Size = new System.Drawing.Size(42, 20); this.tenThirdLevelUpDown.TabIndex = 176; this.tenThirdLevelUpDown.ValueChanged += new System.EventHandler(this.tenThirdLevelUpDown_ValueChanged); // // label86 // this.label86.AutoSize = true; this.label86.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label86.Location = new System.Drawing.Point(4, 178); this.label86.Name = "label86"; this.label86.Size = new System.Drawing.Size(27, 13); this.label86.TabIndex = 175; this.label86.Text = "10%"; // // morningTenThirdComboBox // this.morningTenThirdComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningTenThirdComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningTenThirdComboBox.FormattingEnabled = true; this.morningTenThirdComboBox.Location = new System.Drawing.Point(37, 175); this.morningTenThirdComboBox.Name = "morningTenThirdComboBox"; this.morningTenThirdComboBox.Size = new System.Drawing.Size(121, 21); this.morningTenThirdComboBox.TabIndex = 174; this.morningTenThirdComboBox.SelectedIndexChanged += new System.EventHandler(this.morningTenThirdComboBox_SelectedIndexChanged); // // tenSecondLevelUpDown // this.tenSecondLevelUpDown.Location = new System.Drawing.Point(418, 149); this.tenSecondLevelUpDown.Name = "tenSecondLevelUpDown"; this.tenSecondLevelUpDown.Size = new System.Drawing.Size(42, 20); this.tenSecondLevelUpDown.TabIndex = 173; this.tenSecondLevelUpDown.ValueChanged += new System.EventHandler(this.tenSecondLevelUpDown_ValueChanged); // // label87 // this.label87.AutoSize = true; this.label87.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label87.Location = new System.Drawing.Point(4, 151); this.label87.Name = "label87"; this.label87.Size = new System.Drawing.Size(27, 13); this.label87.TabIndex = 172; this.label87.Text = "10%"; // // morningTenSecondComboBox // this.morningTenSecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningTenSecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningTenSecondComboBox.FormattingEnabled = true; this.morningTenSecondComboBox.Location = new System.Drawing.Point(37, 148); this.morningTenSecondComboBox.Name = "morningTenSecondComboBox"; this.morningTenSecondComboBox.Size = new System.Drawing.Size(121, 21); this.morningTenSecondComboBox.TabIndex = 171; this.morningTenSecondComboBox.SelectedIndexChanged += new System.EventHandler(this.morningTenSecondComboBox_SelectedIndexChanged); // // tenFirstLevelUpDown // this.tenFirstLevelUpDown.Location = new System.Drawing.Point(418, 122); this.tenFirstLevelUpDown.Name = "tenFirstLevelUpDown"; this.tenFirstLevelUpDown.Size = new System.Drawing.Size(42, 20); this.tenFirstLevelUpDown.TabIndex = 170; this.tenFirstLevelUpDown.ValueChanged += new System.EventHandler(this.tenFirstLevelUpDown_ValueChanged); // // label88 // this.label88.AutoSize = true; this.label88.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label88.Location = new System.Drawing.Point(4, 124); this.label88.Name = "label88"; this.label88.Size = new System.Drawing.Size(27, 13); this.label88.TabIndex = 169; this.label88.Text = "10%"; // // morningTenFirstComboBox // this.morningTenFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningTenFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningTenFirstComboBox.FormattingEnabled = true; this.morningTenFirstComboBox.Location = new System.Drawing.Point(37, 121); this.morningTenFirstComboBox.Name = "morningTenFirstComboBox"; this.morningTenFirstComboBox.Size = new System.Drawing.Size(121, 21); this.morningTenFirstComboBox.TabIndex = 168; this.morningTenFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.morningTenFirstComboBox_SelectedIndexChanged); // // twentySecondLevelUpDown // this.twentySecondLevelUpDown.Location = new System.Drawing.Point(418, 95); this.twentySecondLevelUpDown.Name = "twentySecondLevelUpDown"; this.twentySecondLevelUpDown.Size = new System.Drawing.Size(42, 20); this.twentySecondLevelUpDown.TabIndex = 167; this.twentySecondLevelUpDown.ValueChanged += new System.EventHandler(this.twentySecondLevelUpDown_ValueChanged); // // label89 // this.label89.AutoSize = true; this.label89.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label89.Location = new System.Drawing.Point(4, 97); this.label89.Name = "label89"; this.label89.Size = new System.Drawing.Size(27, 13); this.label89.TabIndex = 166; this.label89.Text = "20%"; // // morningTwentySecondComboBox // this.morningTwentySecondComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningTwentySecondComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningTwentySecondComboBox.FormattingEnabled = true; this.morningTwentySecondComboBox.Location = new System.Drawing.Point(37, 94); this.morningTwentySecondComboBox.Name = "morningTwentySecondComboBox"; this.morningTwentySecondComboBox.Size = new System.Drawing.Size(121, 21); this.morningTwentySecondComboBox.TabIndex = 165; this.morningTwentySecondComboBox.SelectedIndexChanged += new System.EventHandler(this.morningTwentySecondComboBox_SelectedIndexChanged); // // twentyFirstLevelUpDown // this.twentyFirstLevelUpDown.Location = new System.Drawing.Point(418, 68); this.twentyFirstLevelUpDown.Name = "twentyFirstLevelUpDown"; this.twentyFirstLevelUpDown.Size = new System.Drawing.Size(42, 20); this.twentyFirstLevelUpDown.TabIndex = 164; this.twentyFirstLevelUpDown.ValueChanged += new System.EventHandler(this.twentyFirstLevelUpDown_ValueChanged); // // label90 // this.label90.AutoSize = true; this.label90.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label90.Location = new System.Drawing.Point(4, 70); this.label90.Name = "label90"; this.label90.Size = new System.Drawing.Size(27, 13); this.label90.TabIndex = 163; this.label90.Text = "20%"; // // morningTwentyFirstComboBox // this.morningTwentyFirstComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.morningTwentyFirstComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.morningTwentyFirstComboBox.FormattingEnabled = true; this.morningTwentyFirstComboBox.Location = new System.Drawing.Point(37, 67); this.morningTwentyFirstComboBox.Name = "morningTwentyFirstComboBox"; this.morningTwentyFirstComboBox.Size = new System.Drawing.Size(121, 21); this.morningTwentyFirstComboBox.TabIndex = 162; this.morningTwentyFirstComboBox.SelectedIndexChanged += new System.EventHandler(this.morningTwentyFirstComboBox_SelectedIndexChanged); // // waterTabPage // this.waterTabPage.Controls.Add(this.surfPicture); this.waterTabPage.Controls.Add(this.pictureBox7); this.waterTabPage.Controls.Add(this.pictureBox6); this.waterTabPage.Controls.Add(this.pictureBox5); this.waterTabPage.Controls.Add(this.superRodGroupBox); this.waterTabPage.Controls.Add(this.goodRodGroupBox); this.waterTabPage.Controls.Add(this.oldRodGroupBox); this.waterTabPage.Controls.Add(this.surfGroupBox); this.waterTabPage.Location = new System.Drawing.Point(4, 22); this.waterTabPage.Name = "waterTabPage"; this.waterTabPage.Padding = new System.Windows.Forms.Padding(3); this.waterTabPage.Size = new System.Drawing.Size(795, 508); this.waterTabPage.TabIndex = 1; this.waterTabPage.Text = "Water"; this.waterTabPage.UseVisualStyleBackColor = true; // // surfPicture // this.surfPicture.Image = global::DSPRE.Properties.Resources.SurfIcon; this.surfPicture.Location = new System.Drawing.Point(67, -1); this.surfPicture.Name = "surfPicture"; this.surfPicture.Size = new System.Drawing.Size(42, 42); this.surfPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.surfPicture.TabIndex = 200; this.surfPicture.TabStop = false; // // pictureBox7 // this.pictureBox7.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox7.Image"))); this.pictureBox7.Location = new System.Drawing.Point(452, 232); this.pictureBox7.Name = "pictureBox7"; this.pictureBox7.Size = new System.Drawing.Size(25, 26); this.pictureBox7.TabIndex = 196; this.pictureBox7.TabStop = false; // // pictureBox6 // this.pictureBox6.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox6.Image"))); this.pictureBox6.Location = new System.Drawing.Point(79, 230); this.pictureBox6.Name = "pictureBox6"; this.pictureBox6.Size = new System.Drawing.Size(25, 26); this.pictureBox6.TabIndex = 195; this.pictureBox6.TabStop = false; // // pictureBox5 // this.pictureBox5.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox5.Image"))); this.pictureBox5.Location = new System.Drawing.Point(442, 8); this.pictureBox5.Name = "pictureBox5"; this.pictureBox5.Size = new System.Drawing.Size(25, 26); this.pictureBox5.TabIndex = 194; this.pictureBox5.TabStop = false; // // superRodGroupBox // this.superRodGroupBox.Controls.Add(this.label59); this.superRodGroupBox.Controls.Add(this.label60); this.superRodGroupBox.Controls.Add(this.superRodRateUpDown); this.superRodGroupBox.Controls.Add(this.label69); this.superRodGroupBox.Controls.Add(this.superRodOneMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodOneMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label70); this.superRodGroupBox.Controls.Add(this.superRodOneComboBox); this.superRodGroupBox.Controls.Add(this.superRodFourMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodFourMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label71); this.superRodGroupBox.Controls.Add(this.superRodFourComboBox); this.superRodGroupBox.Controls.Add(this.superRodFifteenMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodFifteenMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label72); this.superRodGroupBox.Controls.Add(this.superRodFifteenComboBox); this.superRodGroupBox.Controls.Add(this.superRodSecondFortyMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodSecondFortyMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label73); this.superRodGroupBox.Controls.Add(this.superRodSecondFortyComboBox); this.superRodGroupBox.Controls.Add(this.superRodFirstFortyMaxLevelUpDown); this.superRodGroupBox.Controls.Add(this.superRodFirstFortyMinLevelUpDown); this.superRodGroupBox.Controls.Add(this.label74); this.superRodGroupBox.Controls.Add(this.superRodFirstFortyComboBox); this.superRodGroupBox.Location = new System.Drawing.Point(384, 234); this.superRodGroupBox.Name = "superRodGroupBox"; this.superRodGroupBox.Size = new System.Drawing.Size(325, 210); this.superRodGroupBox.TabIndex = 44; this.superRodGroupBox.TabStop = false; this.superRodGroupBox.Text = "Super Rod"; // // label59 // this.label59.AutoSize = true; this.label59.Location = new System.Drawing.Point(264, 50); this.label59.Name = "label59"; this.label59.Size = new System.Drawing.Size(47, 13); this.label59.TabIndex = 41; this.label59.Text = "Max Lvl."; // // label60 // this.label60.AutoSize = true; this.label60.Location = new System.Drawing.Point(214, 50); this.label60.Name = "label60"; this.label60.Size = new System.Drawing.Size(44, 13); this.label60.TabIndex = 40; this.label60.Text = "Min Lvl."; // // superRodRateUpDown // this.superRodRateUpDown.Location = new System.Drawing.Point(265, 17); this.superRodRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.superRodRateUpDown.Name = "superRodRateUpDown"; this.superRodRateUpDown.Size = new System.Drawing.Size(42, 20); this.superRodRateUpDown.TabIndex = 39; this.superRodRateUpDown.ValueChanged += new System.EventHandler(this.superRodRateUpDown_ValueChanged); // // label69 // this.label69.AutoSize = true; this.label69.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label69.Location = new System.Drawing.Point(229, 19); this.label69.Name = "label69"; this.label69.Size = new System.Drawing.Size(30, 13); this.label69.TabIndex = 38; this.label69.Text = "Rate"; // // superRodOneMaxLevelUpDown // this.superRodOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 179); this.superRodOneMaxLevelUpDown.Name = "superRodOneMaxLevelUpDown"; this.superRodOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodOneMaxLevelUpDown.TabIndex = 22; this.superRodOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodOneMaxLevelUpDown_ValueChanged); // // superRodOneMinLevelUpDown // this.superRodOneMinLevelUpDown.Location = new System.Drawing.Point(217, 179); this.superRodOneMinLevelUpDown.Name = "superRodOneMinLevelUpDown"; this.superRodOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodOneMinLevelUpDown.TabIndex = 21; this.superRodOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodOneMinLevelUpDown_ValueChanged); // // label70 // this.label70.AutoSize = true; this.label70.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label70.Location = new System.Drawing.Point(18, 181); this.label70.Name = "label70"; this.label70.Size = new System.Drawing.Size(21, 13); this.label70.TabIndex = 20; this.label70.Text = "5%"; // // superRodOneComboBox // this.superRodOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodOneComboBox.FormattingEnabled = true; this.superRodOneComboBox.Location = new System.Drawing.Point(45, 178); this.superRodOneComboBox.Name = "superRodOneComboBox"; this.superRodOneComboBox.Size = new System.Drawing.Size(154, 21); this.superRodOneComboBox.TabIndex = 19; this.superRodOneComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodOneComboBox_SelectedIndexChanged); // // superRodFourMaxLevelUpDown // this.superRodFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 152); this.superRodFourMaxLevelUpDown.Name = "superRodFourMaxLevelUpDown"; this.superRodFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFourMaxLevelUpDown.TabIndex = 18; this.superRodFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFourMaxLevelUpDown_ValueChanged); // // superRodFourMinLevelUpDown // this.superRodFourMinLevelUpDown.Location = new System.Drawing.Point(217, 152); this.superRodFourMinLevelUpDown.Name = "superRodFourMinLevelUpDown"; this.superRodFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFourMinLevelUpDown.TabIndex = 17; this.superRodFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFourMinLevelUpDown_ValueChanged); // // label71 // this.label71.AutoSize = true; this.label71.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label71.Location = new System.Drawing.Point(12, 154); this.label71.Name = "label71"; this.label71.Size = new System.Drawing.Size(27, 13); this.label71.TabIndex = 16; this.label71.Text = "10%"; // // superRodFourComboBox // this.superRodFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodFourComboBox.FormattingEnabled = true; this.superRodFourComboBox.Location = new System.Drawing.Point(45, 151); this.superRodFourComboBox.Name = "superRodFourComboBox"; this.superRodFourComboBox.Size = new System.Drawing.Size(154, 21); this.superRodFourComboBox.TabIndex = 15; this.superRodFourComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodFourComboBox_SelectedIndexChanged); // // superRodFifteenMaxLevelUpDown // this.superRodFifteenMaxLevelUpDown.Location = new System.Drawing.Point(265, 125); this.superRodFifteenMaxLevelUpDown.Name = "superRodFifteenMaxLevelUpDown"; this.superRodFifteenMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFifteenMaxLevelUpDown.TabIndex = 14; this.superRodFifteenMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFifteenMaxLevelUpDown_ValueChanged); // // superRodFifteenMinLevelUpDown // this.superRodFifteenMinLevelUpDown.Location = new System.Drawing.Point(217, 125); this.superRodFifteenMinLevelUpDown.Name = "superRodFifteenMinLevelUpDown"; this.superRodFifteenMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFifteenMinLevelUpDown.TabIndex = 13; this.superRodFifteenMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFifteenMinLevelUpDown_ValueChanged); // // label72 // this.label72.AutoSize = true; this.label72.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label72.Location = new System.Drawing.Point(12, 127); this.label72.Name = "label72"; this.label72.Size = new System.Drawing.Size(27, 13); this.label72.TabIndex = 12; this.label72.Text = "15%"; // // superRodFifteenComboBox // this.superRodFifteenComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodFifteenComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodFifteenComboBox.FormattingEnabled = true; this.superRodFifteenComboBox.Location = new System.Drawing.Point(45, 124); this.superRodFifteenComboBox.Name = "superRodFifteenComboBox"; this.superRodFifteenComboBox.Size = new System.Drawing.Size(154, 21); this.superRodFifteenComboBox.TabIndex = 11; this.superRodFifteenComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodFifteenComboBox_SelectedIndexChanged); // // superRodSecondFortyMaxLevelUpDown // this.superRodSecondFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 98); this.superRodSecondFortyMaxLevelUpDown.Name = "superRodSecondFortyMaxLevelUpDown"; this.superRodSecondFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodSecondFortyMaxLevelUpDown.TabIndex = 10; this.superRodSecondFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodSecondFortyMaxLevelUpDown_ValueChanged); // // superRodSecondFortyMinLevelUpDown // this.superRodSecondFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 98); this.superRodSecondFortyMinLevelUpDown.Name = "superRodSecondFortyMinLevelUpDown"; this.superRodSecondFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodSecondFortyMinLevelUpDown.TabIndex = 9; this.superRodSecondFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodSecondFortyMinLevelUpDown_ValueChanged); // // label73 // this.label73.AutoSize = true; this.label73.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label73.Location = new System.Drawing.Point(12, 100); this.label73.Name = "label73"; this.label73.Size = new System.Drawing.Size(27, 13); this.label73.TabIndex = 8; this.label73.Text = "30%"; // // superRodSecondFortyComboBox // this.superRodSecondFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodSecondFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodSecondFortyComboBox.FormattingEnabled = true; this.superRodSecondFortyComboBox.Location = new System.Drawing.Point(45, 97); this.superRodSecondFortyComboBox.Name = "superRodSecondFortyComboBox"; this.superRodSecondFortyComboBox.Size = new System.Drawing.Size(154, 21); this.superRodSecondFortyComboBox.TabIndex = 7; this.superRodSecondFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodSecondFortyComboBox_SelectedIndexChanged); // // superRodFirstFortyMaxLevelUpDown // this.superRodFirstFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 71); this.superRodFirstFortyMaxLevelUpDown.Name = "superRodFirstFortyMaxLevelUpDown"; this.superRodFirstFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFirstFortyMaxLevelUpDown.TabIndex = 6; this.superRodFirstFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFirstFortyMaxLevelUpDown_ValueChanged); // // superRodFirstFortyMinLevelUpDown // this.superRodFirstFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 71); this.superRodFirstFortyMinLevelUpDown.Name = "superRodFirstFortyMinLevelUpDown"; this.superRodFirstFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.superRodFirstFortyMinLevelUpDown.TabIndex = 5; this.superRodFirstFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.superRodFirstFortyMinLevelUpDown_ValueChanged); // // label74 // this.label74.AutoSize = true; this.label74.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label74.Location = new System.Drawing.Point(12, 73); this.label74.Name = "label74"; this.label74.Size = new System.Drawing.Size(27, 13); this.label74.TabIndex = 4; this.label74.Text = "40%"; // // superRodFirstFortyComboBox // this.superRodFirstFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.superRodFirstFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.superRodFirstFortyComboBox.FormattingEnabled = true; this.superRodFirstFortyComboBox.Location = new System.Drawing.Point(45, 70); this.superRodFirstFortyComboBox.Name = "superRodFirstFortyComboBox"; this.superRodFirstFortyComboBox.Size = new System.Drawing.Size(154, 21); this.superRodFirstFortyComboBox.TabIndex = 3; this.superRodFirstFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.superRodFirstFortyComboBox_SelectedIndexChanged); // // goodRodGroupBox // this.goodRodGroupBox.Controls.Add(this.label51); this.goodRodGroupBox.Controls.Add(this.label52); this.goodRodGroupBox.Controls.Add(this.goodRodRateUpDown); this.goodRodGroupBox.Controls.Add(this.label53); this.goodRodGroupBox.Controls.Add(this.goodRodOneMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodOneMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label54); this.goodRodGroupBox.Controls.Add(this.goodRodOneComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodFourMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodFourMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label55); this.goodRodGroupBox.Controls.Add(this.goodRodFourComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodFifteenMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodFifteenMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label56); this.goodRodGroupBox.Controls.Add(this.goodRodFifteenComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodSecondFortyMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodSecondFortyMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label57); this.goodRodGroupBox.Controls.Add(this.goodRodSecondFortyComboBox); this.goodRodGroupBox.Controls.Add(this.goodRodFirstFortyMaxLevelUpDown); this.goodRodGroupBox.Controls.Add(this.goodRodFirstFortyMinLevelUpDown); this.goodRodGroupBox.Controls.Add(this.label58); this.goodRodGroupBox.Controls.Add(this.goodRodFirstFortyComboBox); this.goodRodGroupBox.Location = new System.Drawing.Point(17, 234); this.goodRodGroupBox.Name = "goodRodGroupBox"; this.goodRodGroupBox.Size = new System.Drawing.Size(325, 210); this.goodRodGroupBox.TabIndex = 43; this.goodRodGroupBox.TabStop = false; this.goodRodGroupBox.Text = "Good Rod"; // // label51 // this.label51.AutoSize = true; this.label51.Location = new System.Drawing.Point(264, 50); this.label51.Name = "label51"; this.label51.Size = new System.Drawing.Size(47, 13); this.label51.TabIndex = 41; this.label51.Text = "Max Lvl."; // // label52 // this.label52.AutoSize = true; this.label52.Location = new System.Drawing.Point(214, 50); this.label52.Name = "label52"; this.label52.Size = new System.Drawing.Size(44, 13); this.label52.TabIndex = 40; this.label52.Text = "Min Lvl."; // // goodRodRateUpDown // this.goodRodRateUpDown.Location = new System.Drawing.Point(265, 17); this.goodRodRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.goodRodRateUpDown.Name = "goodRodRateUpDown"; this.goodRodRateUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodRateUpDown.TabIndex = 39; this.goodRodRateUpDown.ValueChanged += new System.EventHandler(this.goodRodRateUpDown_ValueChanged); // // label53 // this.label53.AutoSize = true; this.label53.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label53.Location = new System.Drawing.Point(229, 19); this.label53.Name = "label53"; this.label53.Size = new System.Drawing.Size(30, 13); this.label53.TabIndex = 38; this.label53.Text = "Rate"; // // goodRodOneMaxLevelUpDown // this.goodRodOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 179); this.goodRodOneMaxLevelUpDown.Name = "goodRodOneMaxLevelUpDown"; this.goodRodOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodOneMaxLevelUpDown.TabIndex = 22; this.goodRodOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodOneMaxLevelUpDown_ValueChanged); // // goodRodOneMinLevelUpDown // this.goodRodOneMinLevelUpDown.Location = new System.Drawing.Point(217, 179); this.goodRodOneMinLevelUpDown.Name = "goodRodOneMinLevelUpDown"; this.goodRodOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodOneMinLevelUpDown.TabIndex = 21; this.goodRodOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodOneMinLevelUpDown_ValueChanged); // // label54 // this.label54.AutoSize = true; this.label54.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label54.Location = new System.Drawing.Point(18, 181); this.label54.Name = "label54"; this.label54.Size = new System.Drawing.Size(21, 13); this.label54.TabIndex = 20; this.label54.Text = "5%"; // // goodRodOneComboBox // this.goodRodOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodOneComboBox.FormattingEnabled = true; this.goodRodOneComboBox.Location = new System.Drawing.Point(45, 178); this.goodRodOneComboBox.Name = "goodRodOneComboBox"; this.goodRodOneComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodOneComboBox.TabIndex = 19; this.goodRodOneComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodOneComboBox_SelectedIndexChanged); // // goodRodFourMaxLevelUpDown // this.goodRodFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 152); this.goodRodFourMaxLevelUpDown.Name = "goodRodFourMaxLevelUpDown"; this.goodRodFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFourMaxLevelUpDown.TabIndex = 18; this.goodRodFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFourMaxLevelUpDown_ValueChanged); // // goodRodFourMinLevelUpDown // this.goodRodFourMinLevelUpDown.Location = new System.Drawing.Point(217, 152); this.goodRodFourMinLevelUpDown.Name = "goodRodFourMinLevelUpDown"; this.goodRodFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFourMinLevelUpDown.TabIndex = 17; this.goodRodFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFourMinLevelUpDown_ValueChanged); // // label55 // this.label55.AutoSize = true; this.label55.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label55.Location = new System.Drawing.Point(12, 154); this.label55.Name = "label55"; this.label55.Size = new System.Drawing.Size(27, 13); this.label55.TabIndex = 16; this.label55.Text = "10%"; // // goodRodFourComboBox // this.goodRodFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodFourComboBox.FormattingEnabled = true; this.goodRodFourComboBox.Location = new System.Drawing.Point(45, 151); this.goodRodFourComboBox.Name = "goodRodFourComboBox"; this.goodRodFourComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodFourComboBox.TabIndex = 15; this.goodRodFourComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodFourComboBox_SelectedIndexChanged); // // goodRodFifteenMaxLevelUpDown // this.goodRodFifteenMaxLevelUpDown.Location = new System.Drawing.Point(265, 125); this.goodRodFifteenMaxLevelUpDown.Name = "goodRodFifteenMaxLevelUpDown"; this.goodRodFifteenMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFifteenMaxLevelUpDown.TabIndex = 14; this.goodRodFifteenMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFifteenMaxLevelUpDown_ValueChanged); // // goodRodFifteenMinLevelUpDown // this.goodRodFifteenMinLevelUpDown.Location = new System.Drawing.Point(217, 125); this.goodRodFifteenMinLevelUpDown.Name = "goodRodFifteenMinLevelUpDown"; this.goodRodFifteenMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFifteenMinLevelUpDown.TabIndex = 13; this.goodRodFifteenMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFifteenMinLevelUpDown_ValueChanged); // // label56 // this.label56.AutoSize = true; this.label56.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label56.Location = new System.Drawing.Point(12, 127); this.label56.Name = "label56"; this.label56.Size = new System.Drawing.Size(27, 13); this.label56.TabIndex = 12; this.label56.Text = "15%"; // // goodRodFifteenComboBox // this.goodRodFifteenComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodFifteenComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodFifteenComboBox.FormattingEnabled = true; this.goodRodFifteenComboBox.Location = new System.Drawing.Point(45, 124); this.goodRodFifteenComboBox.Name = "goodRodFifteenComboBox"; this.goodRodFifteenComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodFifteenComboBox.TabIndex = 11; this.goodRodFifteenComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodFifteenComboBox_SelectedIndexChanged); // // goodRodSecondFortyMaxLevelUpDown // this.goodRodSecondFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 98); this.goodRodSecondFortyMaxLevelUpDown.Name = "goodRodSecondFortyMaxLevelUpDown"; this.goodRodSecondFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodSecondFortyMaxLevelUpDown.TabIndex = 10; this.goodRodSecondFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodSecondFortyMaxLevelUpDown_ValueChanged); // // goodRodSecondFortyMinLevelUpDown // this.goodRodSecondFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 98); this.goodRodSecondFortyMinLevelUpDown.Name = "goodRodSecondFortyMinLevelUpDown"; this.goodRodSecondFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodSecondFortyMinLevelUpDown.TabIndex = 9; this.goodRodSecondFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodSecondFortyMinLevelUpDown_ValueChanged); // // label57 // this.label57.AutoSize = true; this.label57.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label57.Location = new System.Drawing.Point(12, 100); this.label57.Name = "label57"; this.label57.Size = new System.Drawing.Size(27, 13); this.label57.TabIndex = 8; this.label57.Text = "30%"; // // goodRodSecondFortyComboBox // this.goodRodSecondFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodSecondFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodSecondFortyComboBox.FormattingEnabled = true; this.goodRodSecondFortyComboBox.Location = new System.Drawing.Point(45, 97); this.goodRodSecondFortyComboBox.Name = "goodRodSecondFortyComboBox"; this.goodRodSecondFortyComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodSecondFortyComboBox.TabIndex = 7; this.goodRodSecondFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodSecondFortyComboBox_SelectedIndexChanged); // // goodRodFirstFortyMaxLevelUpDown // this.goodRodFirstFortyMaxLevelUpDown.Location = new System.Drawing.Point(265, 71); this.goodRodFirstFortyMaxLevelUpDown.Name = "goodRodFirstFortyMaxLevelUpDown"; this.goodRodFirstFortyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFirstFortyMaxLevelUpDown.TabIndex = 6; this.goodRodFirstFortyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFirstFortyMaxLevelUpDown_ValueChanged); // // goodRodFirstFortyMinLevelUpDown // this.goodRodFirstFortyMinLevelUpDown.Location = new System.Drawing.Point(217, 71); this.goodRodFirstFortyMinLevelUpDown.Name = "goodRodFirstFortyMinLevelUpDown"; this.goodRodFirstFortyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.goodRodFirstFortyMinLevelUpDown.TabIndex = 5; this.goodRodFirstFortyMinLevelUpDown.ValueChanged += new System.EventHandler(this.goodRodFirstFortyMinLevelUpDown_ValueChanged); // // label58 // this.label58.AutoSize = true; this.label58.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label58.Location = new System.Drawing.Point(12, 73); this.label58.Name = "label58"; this.label58.Size = new System.Drawing.Size(27, 13); this.label58.TabIndex = 4; this.label58.Text = "40%"; // // goodRodFirstFortyComboBox // this.goodRodFirstFortyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.goodRodFirstFortyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.goodRodFirstFortyComboBox.FormattingEnabled = true; this.goodRodFirstFortyComboBox.Location = new System.Drawing.Point(45, 70); this.goodRodFirstFortyComboBox.Name = "goodRodFirstFortyComboBox"; this.goodRodFirstFortyComboBox.Size = new System.Drawing.Size(154, 21); this.goodRodFirstFortyComboBox.TabIndex = 3; this.goodRodFirstFortyComboBox.SelectedIndexChanged += new System.EventHandler(this.goodRodFirstFortyComboBox_SelectedIndexChanged); // // oldRodGroupBox // this.oldRodGroupBox.Controls.Add(this.label43); this.oldRodGroupBox.Controls.Add(this.label44); this.oldRodGroupBox.Controls.Add(this.oldRodRateUpDown); this.oldRodGroupBox.Controls.Add(this.label45); this.oldRodGroupBox.Controls.Add(this.oldRodOneMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodOneMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label46); this.oldRodGroupBox.Controls.Add(this.oldRodOneComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodFourMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodFourMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label47); this.oldRodGroupBox.Controls.Add(this.oldRodFourComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodFiveMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodFiveMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label48); this.oldRodGroupBox.Controls.Add(this.oldRodFiveComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodThirtyMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodThirtyMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label49); this.oldRodGroupBox.Controls.Add(this.oldRodThirtyComboBox); this.oldRodGroupBox.Controls.Add(this.oldRodSixtyMaxLevelUpDown); this.oldRodGroupBox.Controls.Add(this.oldRodSixtyMinLevelUpDown); this.oldRodGroupBox.Controls.Add(this.label50); this.oldRodGroupBox.Controls.Add(this.oldRodSixtyComboBox); this.oldRodGroupBox.Location = new System.Drawing.Point(384, 10); this.oldRodGroupBox.Name = "oldRodGroupBox"; this.oldRodGroupBox.Size = new System.Drawing.Size(325, 210); this.oldRodGroupBox.TabIndex = 42; this.oldRodGroupBox.TabStop = false; this.oldRodGroupBox.Text = "Old Rod"; // // label43 // this.label43.AutoSize = true; this.label43.Location = new System.Drawing.Point(264, 50); this.label43.Name = "label43"; this.label43.Size = new System.Drawing.Size(47, 13); this.label43.TabIndex = 41; this.label43.Text = "Max Lvl."; // // label44 // this.label44.AutoSize = true; this.label44.Location = new System.Drawing.Point(214, 50); this.label44.Name = "label44"; this.label44.Size = new System.Drawing.Size(44, 13); this.label44.TabIndex = 40; this.label44.Text = "Min Lvl."; // // oldRodRateUpDown // this.oldRodRateUpDown.Location = new System.Drawing.Point(265, 17); this.oldRodRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.oldRodRateUpDown.Name = "oldRodRateUpDown"; this.oldRodRateUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodRateUpDown.TabIndex = 39; this.oldRodRateUpDown.ValueChanged += new System.EventHandler(this.oldRodRateUpDown_ValueChanged); // // label45 // this.label45.AutoSize = true; this.label45.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label45.Location = new System.Drawing.Point(229, 19); this.label45.Name = "label45"; this.label45.Size = new System.Drawing.Size(30, 13); this.label45.TabIndex = 38; this.label45.Text = "Rate"; // // oldRodOneMaxLevelUpDown // this.oldRodOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 179); this.oldRodOneMaxLevelUpDown.Name = "oldRodOneMaxLevelUpDown"; this.oldRodOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodOneMaxLevelUpDown.TabIndex = 22; this.oldRodOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodOneMaxLevelUpDown_ValueChanged); // // oldRodOneMinLevelUpDown // this.oldRodOneMinLevelUpDown.Location = new System.Drawing.Point(217, 179); this.oldRodOneMinLevelUpDown.Name = "oldRodOneMinLevelUpDown"; this.oldRodOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodOneMinLevelUpDown.TabIndex = 21; this.oldRodOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodOneMinLevelUpDown_ValueChanged); // // label46 // this.label46.AutoSize = true; this.label46.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label46.Location = new System.Drawing.Point(18, 181); this.label46.Name = "label46"; this.label46.Size = new System.Drawing.Size(21, 13); this.label46.TabIndex = 20; this.label46.Text = "5%"; // // oldRodOneComboBox // this.oldRodOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodOneComboBox.FormattingEnabled = true; this.oldRodOneComboBox.Location = new System.Drawing.Point(45, 178); this.oldRodOneComboBox.Name = "oldRodOneComboBox"; this.oldRodOneComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodOneComboBox.TabIndex = 19; this.oldRodOneComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodOneComboBox_SelectedIndexChanged); // // oldRodFourMaxLevelUpDown // this.oldRodFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 152); this.oldRodFourMaxLevelUpDown.Name = "oldRodFourMaxLevelUpDown"; this.oldRodFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFourMaxLevelUpDown.TabIndex = 18; this.oldRodFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFourMaxLevelUpDown_ValueChanged); // // oldRodFourMinLevelUpDown // this.oldRodFourMinLevelUpDown.Location = new System.Drawing.Point(217, 152); this.oldRodFourMinLevelUpDown.Name = "oldRodFourMinLevelUpDown"; this.oldRodFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFourMinLevelUpDown.TabIndex = 17; this.oldRodFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFourMinLevelUpDown_ValueChanged); // // label47 // this.label47.AutoSize = true; this.label47.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label47.Location = new System.Drawing.Point(12, 154); this.label47.Name = "label47"; this.label47.Size = new System.Drawing.Size(27, 13); this.label47.TabIndex = 16; this.label47.Text = "10%"; // // oldRodFourComboBox // this.oldRodFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodFourComboBox.FormattingEnabled = true; this.oldRodFourComboBox.Location = new System.Drawing.Point(45, 151); this.oldRodFourComboBox.Name = "oldRodFourComboBox"; this.oldRodFourComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodFourComboBox.TabIndex = 15; this.oldRodFourComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodFourComboBox_SelectedIndexChanged); // // oldRodFiveMaxLevelUpDown // this.oldRodFiveMaxLevelUpDown.Location = new System.Drawing.Point(265, 125); this.oldRodFiveMaxLevelUpDown.Name = "oldRodFiveMaxLevelUpDown"; this.oldRodFiveMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFiveMaxLevelUpDown.TabIndex = 14; this.oldRodFiveMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFiveMaxLevelUpDown_ValueChanged); // // oldRodFiveMinLevelUpDown // this.oldRodFiveMinLevelUpDown.Location = new System.Drawing.Point(217, 125); this.oldRodFiveMinLevelUpDown.Name = "oldRodFiveMinLevelUpDown"; this.oldRodFiveMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodFiveMinLevelUpDown.TabIndex = 13; this.oldRodFiveMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodFiveMinLevelUpDown_ValueChanged); // // label48 // this.label48.AutoSize = true; this.label48.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label48.Location = new System.Drawing.Point(12, 127); this.label48.Name = "label48"; this.label48.Size = new System.Drawing.Size(27, 13); this.label48.TabIndex = 12; this.label48.Text = "15%"; // // oldRodFiveComboBox // this.oldRodFiveComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodFiveComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodFiveComboBox.FormattingEnabled = true; this.oldRodFiveComboBox.Location = new System.Drawing.Point(45, 124); this.oldRodFiveComboBox.Name = "oldRodFiveComboBox"; this.oldRodFiveComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodFiveComboBox.TabIndex = 11; this.oldRodFiveComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodFiveComboBox_SelectedIndexChanged); // // oldRodThirtyMaxLevelUpDown // this.oldRodThirtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 98); this.oldRodThirtyMaxLevelUpDown.Name = "oldRodThirtyMaxLevelUpDown"; this.oldRodThirtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodThirtyMaxLevelUpDown.TabIndex = 10; this.oldRodThirtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodThirtyMaxLevelUpDown_ValueChanged); // // oldRodThirtyMinLevelUpDown // this.oldRodThirtyMinLevelUpDown.Location = new System.Drawing.Point(217, 98); this.oldRodThirtyMinLevelUpDown.Name = "oldRodThirtyMinLevelUpDown"; this.oldRodThirtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodThirtyMinLevelUpDown.TabIndex = 9; this.oldRodThirtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodThirtyMinLevelUpDown_ValueChanged); // // label49 // this.label49.AutoSize = true; this.label49.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label49.Location = new System.Drawing.Point(12, 100); this.label49.Name = "label49"; this.label49.Size = new System.Drawing.Size(27, 13); this.label49.TabIndex = 8; this.label49.Text = "30%"; // // oldRodThirtyComboBox // this.oldRodThirtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodThirtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodThirtyComboBox.FormattingEnabled = true; this.oldRodThirtyComboBox.Location = new System.Drawing.Point(45, 97); this.oldRodThirtyComboBox.Name = "oldRodThirtyComboBox"; this.oldRodThirtyComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodThirtyComboBox.TabIndex = 7; this.oldRodThirtyComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodThirtyComboBox_SelectedIndexChanged); // // oldRodSixtyMaxLevelUpDown // this.oldRodSixtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 71); this.oldRodSixtyMaxLevelUpDown.Name = "oldRodSixtyMaxLevelUpDown"; this.oldRodSixtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodSixtyMaxLevelUpDown.TabIndex = 6; this.oldRodSixtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodSixtyMaxLevelUpDown_ValueChanged); // // oldRodSixtyMinLevelUpDown // this.oldRodSixtyMinLevelUpDown.Location = new System.Drawing.Point(217, 71); this.oldRodSixtyMinLevelUpDown.Name = "oldRodSixtyMinLevelUpDown"; this.oldRodSixtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.oldRodSixtyMinLevelUpDown.TabIndex = 5; this.oldRodSixtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.oldRodSixtyMinLevelUpDown_ValueChanged); // // label50 // this.label50.AutoSize = true; this.label50.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label50.Location = new System.Drawing.Point(12, 73); this.label50.Name = "label50"; this.label50.Size = new System.Drawing.Size(27, 13); this.label50.TabIndex = 4; this.label50.Text = "40%"; // // oldRodSixtyComboBox // this.oldRodSixtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.oldRodSixtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.oldRodSixtyComboBox.FormattingEnabled = true; this.oldRodSixtyComboBox.Location = new System.Drawing.Point(45, 70); this.oldRodSixtyComboBox.Name = "oldRodSixtyComboBox"; this.oldRodSixtyComboBox.Size = new System.Drawing.Size(154, 21); this.oldRodSixtyComboBox.TabIndex = 3; this.oldRodSixtyComboBox.SelectedIndexChanged += new System.EventHandler(this.oldRodSixtyComboBox_SelectedIndexChanged); // // surfGroupBox // this.surfGroupBox.Controls.Add(this.label68); this.surfGroupBox.Controls.Add(this.label67); this.surfGroupBox.Controls.Add(this.surfRateUpDown); this.surfGroupBox.Controls.Add(this.label61); this.surfGroupBox.Controls.Add(this.surfOneMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfOneMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label62); this.surfGroupBox.Controls.Add(this.surfOneComboBox); this.surfGroupBox.Controls.Add(this.surfFourMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfFourMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label63); this.surfGroupBox.Controls.Add(this.surfFourComboBox); this.surfGroupBox.Controls.Add(this.surfFiveMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfFiveMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label64); this.surfGroupBox.Controls.Add(this.surfFiveComboBox); this.surfGroupBox.Controls.Add(this.surfThirtyMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfThirtyMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label65); this.surfGroupBox.Controls.Add(this.surfThirtyComboBox); this.surfGroupBox.Controls.Add(this.surfSixtyMaxLevelUpDown); this.surfGroupBox.Controls.Add(this.surfSixtyMinLevelUpDown); this.surfGroupBox.Controls.Add(this.label66); this.surfGroupBox.Controls.Add(this.surfSixtyComboBox); this.surfGroupBox.Location = new System.Drawing.Point(17, 10); this.surfGroupBox.Name = "surfGroupBox"; this.surfGroupBox.Size = new System.Drawing.Size(325, 210); this.surfGroupBox.TabIndex = 4; this.surfGroupBox.TabStop = false; this.surfGroupBox.Text = "Surfing"; // // label68 // this.label68.AutoSize = true; this.label68.Location = new System.Drawing.Point(264, 50); this.label68.Name = "label68"; this.label68.Size = new System.Drawing.Size(47, 13); this.label68.TabIndex = 41; this.label68.Text = "Max Lvl."; // // label67 // this.label67.AutoSize = true; this.label67.Location = new System.Drawing.Point(214, 50); this.label67.Name = "label67"; this.label67.Size = new System.Drawing.Size(44, 13); this.label67.TabIndex = 40; this.label67.Text = "Min Lvl."; // // surfRateUpDown // this.surfRateUpDown.Location = new System.Drawing.Point(265, 17); this.surfRateUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.surfRateUpDown.Name = "surfRateUpDown"; this.surfRateUpDown.Size = new System.Drawing.Size(42, 20); this.surfRateUpDown.TabIndex = 39; this.surfRateUpDown.ValueChanged += new System.EventHandler(this.surfRateUpDown_ValueChanged); // // label61 // this.label61.AutoSize = true; this.label61.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label61.Location = new System.Drawing.Point(229, 19); this.label61.Name = "label61"; this.label61.Size = new System.Drawing.Size(30, 13); this.label61.TabIndex = 38; this.label61.Text = "Rate"; // // surfOneMaxLevelUpDown // this.surfOneMaxLevelUpDown.Location = new System.Drawing.Point(265, 179); this.surfOneMaxLevelUpDown.Name = "surfOneMaxLevelUpDown"; this.surfOneMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfOneMaxLevelUpDown.TabIndex = 22; this.surfOneMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfOneMaxLevelUpDown_ValueChanged); // // surfOneMinLevelUpDown // this.surfOneMinLevelUpDown.Location = new System.Drawing.Point(217, 179); this.surfOneMinLevelUpDown.Name = "surfOneMinLevelUpDown"; this.surfOneMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfOneMinLevelUpDown.TabIndex = 21; this.surfOneMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfOneMinLevelUpDown_ValueChanged); // // label62 // this.label62.AutoSize = true; this.label62.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label62.Location = new System.Drawing.Point(18, 181); this.label62.Name = "label62"; this.label62.Size = new System.Drawing.Size(21, 13); this.label62.TabIndex = 20; this.label62.Text = "1%"; // // surfOneComboBox // this.surfOneComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfOneComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfOneComboBox.FormattingEnabled = true; this.surfOneComboBox.Location = new System.Drawing.Point(45, 178); this.surfOneComboBox.Name = "surfOneComboBox"; this.surfOneComboBox.Size = new System.Drawing.Size(154, 21); this.surfOneComboBox.TabIndex = 19; this.surfOneComboBox.SelectedIndexChanged += new System.EventHandler(this.surfOneComboBox_SelectedIndexChanged); // // surfFourMaxLevelUpDown // this.surfFourMaxLevelUpDown.Location = new System.Drawing.Point(265, 152); this.surfFourMaxLevelUpDown.Name = "surfFourMaxLevelUpDown"; this.surfFourMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFourMaxLevelUpDown.TabIndex = 18; this.surfFourMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfFourMaxLevelUpDown_ValueChanged); // // surfFourMinLevelUpDown // this.surfFourMinLevelUpDown.Location = new System.Drawing.Point(217, 152); this.surfFourMinLevelUpDown.Name = "surfFourMinLevelUpDown"; this.surfFourMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFourMinLevelUpDown.TabIndex = 17; this.surfFourMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfFourMinLevelUpDown_ValueChanged); // // label63 // this.label63.AutoSize = true; this.label63.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label63.Location = new System.Drawing.Point(18, 154); this.label63.Name = "label63"; this.label63.Size = new System.Drawing.Size(21, 13); this.label63.TabIndex = 16; this.label63.Text = "4%"; // // surfFourComboBox // this.surfFourComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfFourComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfFourComboBox.FormattingEnabled = true; this.surfFourComboBox.Location = new System.Drawing.Point(45, 151); this.surfFourComboBox.Name = "surfFourComboBox"; this.surfFourComboBox.Size = new System.Drawing.Size(154, 21); this.surfFourComboBox.TabIndex = 15; this.surfFourComboBox.SelectedIndexChanged += new System.EventHandler(this.surfFourComboBox_SelectedIndexChanged); // // surfFiveMaxLevelUpDown // this.surfFiveMaxLevelUpDown.Location = new System.Drawing.Point(265, 125); this.surfFiveMaxLevelUpDown.Name = "surfFiveMaxLevelUpDown"; this.surfFiveMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFiveMaxLevelUpDown.TabIndex = 14; this.surfFiveMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfFiveMaxLevelUpDown_ValueChanged); // // surfFiveMinLevelUpDown // this.surfFiveMinLevelUpDown.Location = new System.Drawing.Point(217, 125); this.surfFiveMinLevelUpDown.Name = "surfFiveMinLevelUpDown"; this.surfFiveMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfFiveMinLevelUpDown.TabIndex = 13; this.surfFiveMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfFiveMinLevelUpDown_ValueChanged); // // label64 // this.label64.AutoSize = true; this.label64.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label64.Location = new System.Drawing.Point(18, 127); this.label64.Name = "label64"; this.label64.Size = new System.Drawing.Size(21, 13); this.label64.TabIndex = 12; this.label64.Text = "5%"; // // surfFiveComboBox // this.surfFiveComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfFiveComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfFiveComboBox.FormattingEnabled = true; this.surfFiveComboBox.Location = new System.Drawing.Point(45, 124); this.surfFiveComboBox.Name = "surfFiveComboBox"; this.surfFiveComboBox.Size = new System.Drawing.Size(154, 21); this.surfFiveComboBox.TabIndex = 11; this.surfFiveComboBox.SelectedIndexChanged += new System.EventHandler(this.surfFiveComboBox_SelectedIndexChanged); // // surfThirtyMaxLevelUpDown // this.surfThirtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 98); this.surfThirtyMaxLevelUpDown.Name = "surfThirtyMaxLevelUpDown"; this.surfThirtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfThirtyMaxLevelUpDown.TabIndex = 10; this.surfThirtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfThirtyMaxLevelUpDown_ValueChanged); // // surfThirtyMinLevelUpDown // this.surfThirtyMinLevelUpDown.Location = new System.Drawing.Point(217, 98); this.surfThirtyMinLevelUpDown.Name = "surfThirtyMinLevelUpDown"; this.surfThirtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfThirtyMinLevelUpDown.TabIndex = 9; this.surfThirtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfThirtyMinLevelUpDown_ValueChanged); // // label65 // this.label65.AutoSize = true; this.label65.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label65.Location = new System.Drawing.Point(12, 100); this.label65.Name = "label65"; this.label65.Size = new System.Drawing.Size(27, 13); this.label65.TabIndex = 8; this.label65.Text = "30%"; // // surfThirtyComboBox // this.surfThirtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfThirtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfThirtyComboBox.FormattingEnabled = true; this.surfThirtyComboBox.Location = new System.Drawing.Point(45, 97); this.surfThirtyComboBox.Name = "surfThirtyComboBox"; this.surfThirtyComboBox.Size = new System.Drawing.Size(154, 21); this.surfThirtyComboBox.TabIndex = 7; this.surfThirtyComboBox.SelectedIndexChanged += new System.EventHandler(this.surfThirtyComboBox_SelectedIndexChanged); // // surfSixtyMaxLevelUpDown // this.surfSixtyMaxLevelUpDown.Location = new System.Drawing.Point(265, 71); this.surfSixtyMaxLevelUpDown.Name = "surfSixtyMaxLevelUpDown"; this.surfSixtyMaxLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfSixtyMaxLevelUpDown.TabIndex = 6; this.surfSixtyMaxLevelUpDown.ValueChanged += new System.EventHandler(this.surfSixtyMaxLevelUpDown_ValueChanged); // // surfSixtyMinLevelUpDown // this.surfSixtyMinLevelUpDown.Location = new System.Drawing.Point(217, 71); this.surfSixtyMinLevelUpDown.Name = "surfSixtyMinLevelUpDown"; this.surfSixtyMinLevelUpDown.Size = new System.Drawing.Size(42, 20); this.surfSixtyMinLevelUpDown.TabIndex = 5; this.surfSixtyMinLevelUpDown.ValueChanged += new System.EventHandler(this.surfSixtyMinLevelUpDown_ValueChanged); // // label66 // this.label66.AutoSize = true; this.label66.ImeMode = System.Windows.Forms.ImeMode.NoControl; this.label66.Location = new System.Drawing.Point(12, 73); this.label66.Name = "label66"; this.label66.Size = new System.Drawing.Size(27, 13); this.label66.TabIndex = 4; this.label66.Text = "60%"; // // surfSixtyComboBox // this.surfSixtyComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.surfSixtyComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.surfSixtyComboBox.FormattingEnabled = true; this.surfSixtyComboBox.Location = new System.Drawing.Point(45, 70); this.surfSixtyComboBox.Name = "surfSixtyComboBox"; this.surfSixtyComboBox.Size = new System.Drawing.Size(154, 21); this.surfSixtyComboBox.TabIndex = 3; this.surfSixtyComboBox.SelectedIndexChanged += new System.EventHandler(this.surfSixtyComboBox_SelectedIndexChanged); // // repairAllButton // this.repairAllButton.Image = global::DSPRE.Properties.Resources.wrenchIcon; this.repairAllButton.Location = new System.Drawing.Point(769, 12); this.repairAllButton.Name = "repairAllButton"; this.repairAllButton.Size = new System.Drawing.Size(38, 40); this.repairAllButton.TabIndex = 69; this.repairAllButton.UseVisualStyleBackColor = true; this.repairAllButton.Click += new System.EventHandler(this.repairAllButton_Click); // // WildEditorHGSS // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(813, 631); this.Controls.Add(this.repairAllButton); this.Controls.Add(this.mainTabControl); this.Controls.Add(this.removeEncounterFileButton); this.Controls.Add(this.addEncounterFileButton); this.Controls.Add(this.selectEncounterComboBox); this.Controls.Add(this.exportEncounterFileButton); this.Controls.Add(this.importEncounterFileButton); this.Controls.Add(this.saveEncountersButton); this.Controls.Add(this.encounterFileLabel); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "WildEditorHGSS"; this.Text = "DSPRE Reloaded 1.9.3 - HGSS Encounters Editor"; this.mainTabControl.ResumeLayout(false); this.grassGroundTabPage.ResumeLayout(false); this.groupBox1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); this.rockSmashGroupBox.ResumeLayout(false); this.rockSmashGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashTenMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashTenMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashNinetyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashNinetyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rockSmashRateUpDown)).EndInit(); this.radioMusicComboBox.ResumeLayout(false); this.radioMusicComboBox.PerformLayout(); this.swarmsGroupBox.ResumeLayout(false); this.swarmsGroupBox.PerformLayout(); this.walkingGroupBox.ResumeLayout(false); this.walkingGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.walkingRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oneSecondLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oneFirstLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.fourSecondLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.fourFirstLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.fiveSecondLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.fiveFirstLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.tenFourthLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.tenThirdLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.tenSecondLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.tenFirstLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.twentySecondLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.twentyFirstLevelUpDown)).EndInit(); this.waterTabPage.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.surfPicture)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); this.superRodGroupBox.ResumeLayout(false); this.superRodGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.superRodRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFifteenMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodSecondFortyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.superRodFirstFortyMinLevelUpDown)).EndInit(); this.goodRodGroupBox.ResumeLayout(false); this.goodRodGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.goodRodRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFifteenMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodSecondFortyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.goodRodFirstFortyMinLevelUpDown)).EndInit(); this.oldRodGroupBox.ResumeLayout(false); this.oldRodGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.oldRodRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodFiveMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodThirtyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.oldRodSixtyMinLevelUpDown)).EndInit(); this.surfGroupBox.ResumeLayout(false); this.surfGroupBox.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.surfRateUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfOneMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFourMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfFiveMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfThirtyMinLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMaxLevelUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.surfSixtyMinLevelUpDown)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button removeEncounterFileButton; private System.Windows.Forms.Button addEncounterFileButton; private System.Windows.Forms.ComboBox selectEncounterComboBox; private System.Windows.Forms.Button exportEncounterFileButton; private System.Windows.Forms.Button importEncounterFileButton; private System.Windows.Forms.Button saveEncountersButton; private System.Windows.Forms.Label encounterFileLabel; private System.Windows.Forms.TabControl mainTabControl; private System.Windows.Forms.TabPage grassGroundTabPage; private System.Windows.Forms.NumericUpDown walkingRateUpDown; private System.Windows.Forms.Label label14; private System.Windows.Forms.TabPage waterTabPage; private System.Windows.Forms.PictureBox pictureBox7; private System.Windows.Forms.PictureBox pictureBox6; private System.Windows.Forms.PictureBox pictureBox5; private System.Windows.Forms.GroupBox superRodGroupBox; private System.Windows.Forms.Label label59; private System.Windows.Forms.Label label60; private System.Windows.Forms.NumericUpDown superRodRateUpDown; private System.Windows.Forms.Label label69; private System.Windows.Forms.NumericUpDown superRodOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodOneMinLevelUpDown; private System.Windows.Forms.Label label70; private DSPRE.InputComboBox superRodOneComboBox; private System.Windows.Forms.NumericUpDown superRodFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodFourMinLevelUpDown; private System.Windows.Forms.Label label71; private DSPRE.InputComboBox superRodFourComboBox; private System.Windows.Forms.NumericUpDown superRodFifteenMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodFifteenMinLevelUpDown; private System.Windows.Forms.Label label72; private DSPRE.InputComboBox superRodFifteenComboBox; private System.Windows.Forms.NumericUpDown superRodSecondFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodSecondFortyMinLevelUpDown; private System.Windows.Forms.Label label73; private DSPRE.InputComboBox superRodSecondFortyComboBox; private System.Windows.Forms.NumericUpDown superRodFirstFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown superRodFirstFortyMinLevelUpDown; private System.Windows.Forms.Label label74; private DSPRE.InputComboBox superRodFirstFortyComboBox; private System.Windows.Forms.GroupBox goodRodGroupBox; private System.Windows.Forms.Label label51; private System.Windows.Forms.Label label52; private System.Windows.Forms.NumericUpDown goodRodRateUpDown; private System.Windows.Forms.Label label53; private System.Windows.Forms.NumericUpDown goodRodOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodOneMinLevelUpDown; private System.Windows.Forms.Label label54; private DSPRE.InputComboBox goodRodOneComboBox; private System.Windows.Forms.NumericUpDown goodRodFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodFourMinLevelUpDown; private System.Windows.Forms.Label label55; private DSPRE.InputComboBox goodRodFourComboBox; private System.Windows.Forms.NumericUpDown goodRodFifteenMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodFifteenMinLevelUpDown; private System.Windows.Forms.Label label56; private DSPRE.InputComboBox goodRodFifteenComboBox; private System.Windows.Forms.NumericUpDown goodRodSecondFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodSecondFortyMinLevelUpDown; private System.Windows.Forms.Label label57; private DSPRE.InputComboBox goodRodSecondFortyComboBox; private System.Windows.Forms.NumericUpDown goodRodFirstFortyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown goodRodFirstFortyMinLevelUpDown; private System.Windows.Forms.Label label58; private DSPRE.InputComboBox goodRodFirstFortyComboBox; private System.Windows.Forms.GroupBox oldRodGroupBox; private System.Windows.Forms.Label label43; private System.Windows.Forms.Label label44; private System.Windows.Forms.NumericUpDown oldRodRateUpDown; private System.Windows.Forms.Label label45; private System.Windows.Forms.NumericUpDown oldRodOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodOneMinLevelUpDown; private System.Windows.Forms.Label label46; private DSPRE.InputComboBox oldRodOneComboBox; private System.Windows.Forms.NumericUpDown oldRodFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodFourMinLevelUpDown; private System.Windows.Forms.Label label47; private DSPRE.InputComboBox oldRodFourComboBox; private System.Windows.Forms.NumericUpDown oldRodFiveMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodFiveMinLevelUpDown; private System.Windows.Forms.Label label48; private DSPRE.InputComboBox oldRodFiveComboBox; private System.Windows.Forms.NumericUpDown oldRodThirtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodThirtyMinLevelUpDown; private System.Windows.Forms.Label label49; private DSPRE.InputComboBox oldRodThirtyComboBox; private System.Windows.Forms.NumericUpDown oldRodSixtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown oldRodSixtyMinLevelUpDown; private System.Windows.Forms.Label label50; private DSPRE.InputComboBox oldRodSixtyComboBox; private System.Windows.Forms.GroupBox surfGroupBox; private System.Windows.Forms.Label label68; private System.Windows.Forms.Label label67; private System.Windows.Forms.NumericUpDown surfRateUpDown; private System.Windows.Forms.Label label61; private System.Windows.Forms.NumericUpDown surfOneMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfOneMinLevelUpDown; private System.Windows.Forms.Label label62; private DSPRE.InputComboBox surfOneComboBox; private System.Windows.Forms.NumericUpDown surfFourMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfFourMinLevelUpDown; private System.Windows.Forms.Label label63; private DSPRE.InputComboBox surfFourComboBox; private System.Windows.Forms.NumericUpDown surfFiveMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfFiveMinLevelUpDown; private System.Windows.Forms.Label label64; private DSPRE.InputComboBox surfFiveComboBox; private System.Windows.Forms.NumericUpDown surfThirtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfThirtyMinLevelUpDown; private System.Windows.Forms.Label label65; private DSPRE.InputComboBox surfThirtyComboBox; private System.Windows.Forms.NumericUpDown surfSixtyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown surfSixtyMinLevelUpDown; private System.Windows.Forms.Label label66; private DSPRE.InputComboBox surfSixtyComboBox; private System.Windows.Forms.GroupBox walkingGroupBox; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; private DSPRE.InputComboBox nightOneSecondComboBox; private DSPRE.InputComboBox nightOneFirstComboBox; private DSPRE.InputComboBox nightFourSecondComboBox; private DSPRE.InputComboBox nightFourFirstComboBox; private DSPRE.InputComboBox nightFiveSecondComboBox; private DSPRE.InputComboBox nightFiveFirstComboBox; private DSPRE.InputComboBox nightTenFourthComboBox; private DSPRE.InputComboBox nightTenThirdComboBox; private DSPRE.InputComboBox nightTenSecondComboBox; private DSPRE.InputComboBox nightTenFirstComboBox; private DSPRE.InputComboBox nightTwentySecondComboBox; private DSPRE.InputComboBox nightTwentyFirstComboBox; private DSPRE.InputComboBox dayOneSecondComboBox; private DSPRE.InputComboBox dayOneFirstComboBox; private DSPRE.InputComboBox dayFourSecondComboBox; private DSPRE.InputComboBox dayFourFirstComboBox; private DSPRE.InputComboBox dayFiveSecondComboBox; private DSPRE.InputComboBox dayFiveFirstComboBox; private DSPRE.InputComboBox dayTenFourthComboBox; private DSPRE.InputComboBox dayTenThirdComboBox; private DSPRE.InputComboBox dayTenSecondComboBox; private DSPRE.InputComboBox dayTenFirstComboBox; private DSPRE.InputComboBox dayTwentySecondComboBox; private DSPRE.InputComboBox dayTwentyFirstComboBox; private System.Windows.Forms.NumericUpDown oneSecondLevelUpDown; private System.Windows.Forms.Label label79; private DSPRE.InputComboBox morningOneSecondComboBox; private System.Windows.Forms.NumericUpDown oneFirstLevelUpDown; private System.Windows.Forms.Label label80; private DSPRE.InputComboBox morningOneFirstComboBox; private System.Windows.Forms.NumericUpDown fourSecondLevelUpDown; private System.Windows.Forms.Label label81; private DSPRE.InputComboBox morningFourSecondComboBox; private System.Windows.Forms.NumericUpDown fourFirstLevelUpDown; private System.Windows.Forms.Label label82; private DSPRE.InputComboBox morningFourFirstComboBox; private System.Windows.Forms.NumericUpDown fiveSecondLevelUpDown; private System.Windows.Forms.Label label83; private DSPRE.InputComboBox morningFiveSecondComboBox; private System.Windows.Forms.NumericUpDown fiveFirstLevelUpDown; private System.Windows.Forms.Label label84; private DSPRE.InputComboBox morningFiveFirstComboBox; private System.Windows.Forms.NumericUpDown tenFourthLevelUpDown; private System.Windows.Forms.Label label85; private DSPRE.InputComboBox morningTenFourthComboBox; private System.Windows.Forms.NumericUpDown tenThirdLevelUpDown; private System.Windows.Forms.Label label86; private DSPRE.InputComboBox morningTenThirdComboBox; private System.Windows.Forms.NumericUpDown tenSecondLevelUpDown; private System.Windows.Forms.Label label87; private DSPRE.InputComboBox morningTenSecondComboBox; private System.Windows.Forms.NumericUpDown tenFirstLevelUpDown; private System.Windows.Forms.Label label88; private DSPRE.InputComboBox morningTenFirstComboBox; private System.Windows.Forms.NumericUpDown twentySecondLevelUpDown; private System.Windows.Forms.Label label89; private DSPRE.InputComboBox morningTwentySecondComboBox; private System.Windows.Forms.NumericUpDown twentyFirstLevelUpDown; private System.Windows.Forms.Label label90; private DSPRE.InputComboBox morningTwentyFirstComboBox; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.GroupBox swarmsGroupBox; private DSPRE.InputComboBox superRodSwarmComboBox; private DSPRE.InputComboBox goodRodSwarmComboBox; private System.Windows.Forms.Label label5; private DSPRE.InputComboBox surfSwarmComboBox; private System.Windows.Forms.Label label6; private DSPRE.InputComboBox grassSwarmComboBox; private System.Windows.Forms.Label label8; private System.Windows.Forms.GroupBox radioMusicComboBox; private DSPRE.InputComboBox sinnohSecondComboBox; private System.Windows.Forms.Label label10; private DSPRE.InputComboBox sinnohFirstComboBox; private DSPRE.InputComboBox hoennSecondComboBox; private System.Windows.Forms.Label label9; private DSPRE.InputComboBox hoennFirstComboBox; private System.Windows.Forms.GroupBox rockSmashGroupBox; private System.Windows.Forms.Label label11; private System.Windows.Forms.Label label12; private System.Windows.Forms.NumericUpDown rockSmashTenMaxLevelUpDown; private System.Windows.Forms.NumericUpDown rockSmashTenMinLevelUpDown; private System.Windows.Forms.NumericUpDown rockSmashNinetyMaxLevelUpDown; private System.Windows.Forms.NumericUpDown rockSmashNinetyMinLevelUpDown; private System.Windows.Forms.NumericUpDown rockSmashRateUpDown; private DSPRE.InputComboBox rockSmashNinetyComboBox; private System.Windows.Forms.Label label13; private DSPRE.InputComboBox rockSmashTenComboBox; private System.Windows.Forms.PictureBox pictureBox2; private System.Windows.Forms.PictureBox pictureBox3; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.PictureBox surfPicture; private System.Windows.Forms.Button repairAllButton; private System.Windows.Forms.Label label15; private System.Windows.Forms.Label label16; private System.Windows.Forms.GroupBox groupBox1; } } ================================================ FILE: DS_Map/WildEditorHGSS.cs ================================================ using DSPRE.ROMFiles; using System; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Windows.Forms; using static DSPRE.RomInfo; namespace DSPRE { public partial class WildEditorHGSS : Form { public string encounterFileFolder { get; private set; } EncounterFileHGSS currentFile; public WildEditorHGSS(string dirPath, string[] names, int encToOpen, int totalNumHeaderFiles) { InitializeComponent(); encounterFileFolder = dirPath; Helpers.DisableHandlers(); Text = "DSPRE Reloaded " + GetDSPREVersion() + " - HGSS Encounters Editor"; MapHeader tempMapHeader; List locationNames = RomInfo.GetLocationNames(); Dictionary> EncounterFileLocationNames = new Dictionary>(); for (ushort i = 0; i < totalNumHeaderFiles; i++) { if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) { tempMapHeader = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + i.ToString("D4"), i, 0); } else { tempMapHeader = MapHeader.LoadFromARM9(i); } if (tempMapHeader.wildPokemon != MapHeader.HGSS_NULL_ENCOUNTER_FILE_ID) { if (!EncounterFileLocationNames.ContainsKey(tempMapHeader.wildPokemon)) { EncounterFileLocationNames[tempMapHeader.wildPokemon] = new List(); } EncounterFileLocationNames[tempMapHeader.wildPokemon].Add(locationNames[((HeaderHGSS)tempMapHeader).locationName] ); } } for (int i = 0; i < Directory.GetFiles(encounterFileFolder).Length; i++) { if (EncounterFileLocationNames.ContainsKey(i)) selectEncounterComboBox.Items.Add( "[" + i + "] " + String.Join(" + ", EncounterFileLocationNames[i])); else selectEncounterComboBox.Items.Add("[" + i + "] " + " Unused"); } if (encToOpen > selectEncounterComboBox.Items.Count) { MessageBox.Show("This encounter file doesn't exist.\n" + "Enc #0 will be loaded, instead.", "WildPoké Data not found", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); selectEncounterComboBox.SelectedIndex = 0; } else { selectEncounterComboBox.SelectedIndex = encToOpen; } currentFile = new EncounterFileHGSS(selectEncounterComboBox.SelectedIndex); /* Once the GUI overhaul is complete - i.e.: once everything is a TableLayoutPanel, * this can be simplified a lot. */ foreach (TabPage page in mainTabControl.TabPages) { foreach (Control g in page.Controls) { if (g != null && g is GroupBox) { foreach (Control c in g.Controls) { if (c != null) { if (c is InputComboBox) { (c as InputComboBox).DataSource = new BindingSource(names, string.Empty); } else if (c is TableLayoutPanel) { TableLayoutPanel tbl = (c as TableLayoutPanel); foreach (Control tblC in tbl.Controls) { if (c != null) { if (tblC is InputComboBox) { (tblC as InputComboBox).DataSource = new BindingSource(names, string.Empty); } } } } } } } } } Helpers.EnableHandlers(); SetupControls(); } public string GetDSPREVersion() { return "" + Assembly.GetExecutingAssembly().GetName().Version.Major + "." + Assembly.GetExecutingAssembly().GetName().Version.Minor + "." + Assembly.GetExecutingAssembly().GetName().Version.Build; } public void SetupControls() { Helpers.DisableHandlers(); /* Setup encounter rates controls */ walkingRateUpDown.Value = currentFile.walkingRate; surfRateUpDown.Value = currentFile.surfRate; rockSmashRateUpDown.Value = currentFile.rockSmashRate; oldRodRateUpDown.Value = currentFile.oldRodRate; goodRodRateUpDown.Value = currentFile.goodRodRate; superRodRateUpDown.Value = currentFile.superRodRate; /* Setup walking level controls */ twentyFirstLevelUpDown.Value = currentFile.walkingLevels[0]; twentySecondLevelUpDown.Value = currentFile.walkingLevels[1]; tenFirstLevelUpDown.Value = currentFile.walkingLevels[2]; tenSecondLevelUpDown.Value = currentFile.walkingLevels[3]; tenThirdLevelUpDown.Value = currentFile.walkingLevels[4]; tenFourthLevelUpDown.Value = currentFile.walkingLevels[5]; fiveFirstLevelUpDown.Value = currentFile.walkingLevels[6]; fiveSecondLevelUpDown.Value = currentFile.walkingLevels[7]; fourFirstLevelUpDown.Value = currentFile.walkingLevels[8]; fourSecondLevelUpDown.Value = currentFile.walkingLevels[9]; oneFirstLevelUpDown.Value = currentFile.walkingLevels[10]; oneSecondLevelUpDown.Value = currentFile.walkingLevels[11]; /* Setup walking encounters controls */ morningTwentyFirstComboBox.SelectedIndex = currentFile.morningPokemon[0]; morningTwentySecondComboBox.SelectedIndex = currentFile.morningPokemon[1]; morningTenFirstComboBox.SelectedIndex = currentFile.morningPokemon[2]; morningTenSecondComboBox.SelectedIndex = currentFile.morningPokemon[3]; morningTenThirdComboBox.SelectedIndex = currentFile.morningPokemon[4]; morningTenFourthComboBox.SelectedIndex = currentFile.morningPokemon[5]; morningFiveFirstComboBox.SelectedIndex = currentFile.morningPokemon[6]; morningFiveSecondComboBox.SelectedIndex = currentFile.morningPokemon[7]; morningFourFirstComboBox.SelectedIndex = currentFile.morningPokemon[8]; morningFourSecondComboBox.SelectedIndex = currentFile.morningPokemon[9]; morningOneFirstComboBox.SelectedIndex = currentFile.morningPokemon[10]; morningOneSecondComboBox.SelectedIndex = currentFile.morningPokemon[11]; dayTwentyFirstComboBox.SelectedIndex = currentFile.dayPokemon[0]; dayTwentySecondComboBox.SelectedIndex = currentFile.dayPokemon[1]; dayTenFirstComboBox.SelectedIndex = currentFile.dayPokemon[2]; dayTenSecondComboBox.SelectedIndex = currentFile.dayPokemon[3]; dayTenThirdComboBox.SelectedIndex = currentFile.dayPokemon[4]; dayTenFourthComboBox.SelectedIndex = currentFile.dayPokemon[5]; dayFiveFirstComboBox.SelectedIndex = currentFile.dayPokemon[6]; dayFiveSecondComboBox.SelectedIndex = currentFile.dayPokemon[7]; dayFourFirstComboBox.SelectedIndex = currentFile.dayPokemon[8]; dayFourSecondComboBox.SelectedIndex = currentFile.dayPokemon[9]; dayOneFirstComboBox.SelectedIndex = currentFile.dayPokemon[10]; dayOneSecondComboBox.SelectedIndex = currentFile.dayPokemon[11]; nightTwentyFirstComboBox.SelectedIndex = currentFile.nightPokemon[0]; nightTwentySecondComboBox.SelectedIndex = currentFile.nightPokemon[1]; nightTenFirstComboBox.SelectedIndex = currentFile.nightPokemon[2]; nightTenSecondComboBox.SelectedIndex = currentFile.nightPokemon[3]; nightTenThirdComboBox.SelectedIndex = currentFile.nightPokemon[4]; nightTenFourthComboBox.SelectedIndex = currentFile.nightPokemon[5]; nightFiveFirstComboBox.SelectedIndex = currentFile.nightPokemon[6]; nightFiveSecondComboBox.SelectedIndex = currentFile.nightPokemon[7]; nightFourFirstComboBox.SelectedIndex = currentFile.nightPokemon[8]; nightFourSecondComboBox.SelectedIndex = currentFile.nightPokemon[9]; nightOneFirstComboBox.SelectedIndex = currentFile.nightPokemon[10]; nightOneSecondComboBox.SelectedIndex = currentFile.nightPokemon[11]; /* Setup radio sound encounters controls */ hoennFirstComboBox.SelectedIndex = currentFile.hoennMusicPokemon[0]; hoennSecondComboBox.SelectedIndex = currentFile.hoennMusicPokemon[1]; sinnohFirstComboBox.SelectedIndex = currentFile.sinnohMusicPokemon[0]; sinnohSecondComboBox.SelectedIndex = currentFile.sinnohMusicPokemon[1]; /* Setup rock smash controls */ rockSmashNinetyComboBox.SelectedIndex = currentFile.rockSmashPokemon[0]; rockSmashTenComboBox.SelectedIndex = currentFile.rockSmashPokemon[1]; rockSmashNinetyMinLevelUpDown.Value = currentFile.rockSmashMinLevels[0]; rockSmashTenMinLevelUpDown.Value = currentFile.rockSmashMinLevels[1]; rockSmashNinetyMaxLevelUpDown.Value = currentFile.rockSmashMaxLevels[0]; rockSmashTenMaxLevelUpDown.Value = currentFile.rockSmashMaxLevels[1]; /* Setup swarm encounters controls */ grassSwarmComboBox.SelectedIndex = currentFile.swarmPokemon[0]; surfSwarmComboBox.SelectedIndex = currentFile.swarmPokemon[1]; goodRodSwarmComboBox.SelectedIndex = currentFile.swarmPokemon[2]; superRodSwarmComboBox.SelectedIndex = currentFile.swarmPokemon[3]; /* Water encounters controls setup */ surfSixtyComboBox.SelectedIndex = currentFile.surfPokemon[0]; surfSixtyMinLevelUpDown.Value = currentFile.surfMinLevels[0]; surfSixtyMaxLevelUpDown.Value = currentFile.surfMaxLevels[0]; surfThirtyComboBox.SelectedIndex = currentFile.surfPokemon[1]; surfThirtyMinLevelUpDown.Value = currentFile.surfMinLevels[1]; surfThirtyMaxLevelUpDown.Value = currentFile.surfMaxLevels[1]; surfFiveComboBox.SelectedIndex = currentFile.surfPokemon[2]; surfFiveMinLevelUpDown.Value = currentFile.surfMinLevels[2]; surfFiveMaxLevelUpDown.Value = currentFile.surfMaxLevels[2]; surfFourComboBox.SelectedIndex = currentFile.surfPokemon[3]; surfFourMinLevelUpDown.Value = currentFile.surfMinLevels[3]; surfFourMaxLevelUpDown.Value = currentFile.surfMaxLevels[3]; surfOneComboBox.SelectedIndex = currentFile.surfPokemon[4]; surfOneMinLevelUpDown.Value = currentFile.surfMinLevels[4]; surfOneMaxLevelUpDown.Value = currentFile.surfMaxLevels[4]; /* Old rod encounters controls setup */ oldRodSixtyComboBox.SelectedIndex = currentFile.oldRodPokemon[0]; oldRodSixtyMinLevelUpDown.Value = currentFile.oldRodMinLevels[0]; oldRodSixtyMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[0]; oldRodThirtyComboBox.SelectedIndex = currentFile.oldRodPokemon[1]; oldRodThirtyMinLevelUpDown.Value = currentFile.oldRodMinLevels[1]; oldRodThirtyMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[1]; oldRodFiveComboBox.SelectedIndex = currentFile.oldRodPokemon[2]; oldRodFiveMinLevelUpDown.Value = currentFile.oldRodMinLevels[2]; oldRodFiveMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[2]; oldRodFourComboBox.SelectedIndex = currentFile.oldRodPokemon[3]; oldRodFourMinLevelUpDown.Value = currentFile.oldRodMinLevels[3]; oldRodFourMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[3]; oldRodOneComboBox.SelectedIndex = currentFile.oldRodPokemon[4]; oldRodOneMinLevelUpDown.Value = currentFile.oldRodMinLevels[4]; oldRodOneMaxLevelUpDown.Value = currentFile.oldRodMaxLevels[4]; /* Good rod encounters controls setup */ goodRodFirstFortyComboBox.SelectedIndex = currentFile.goodRodPokemon[0]; goodRodFirstFortyMinLevelUpDown.Value = currentFile.goodRodMinLevels[0]; goodRodFirstFortyMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[0]; goodRodSecondFortyComboBox.SelectedIndex = currentFile.goodRodPokemon[1]; goodRodSecondFortyMinLevelUpDown.Value = currentFile.goodRodMinLevels[1]; goodRodSecondFortyMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[1]; goodRodFifteenComboBox.SelectedIndex = currentFile.goodRodPokemon[2]; goodRodFifteenMinLevelUpDown.Value = currentFile.goodRodMinLevels[2]; goodRodFifteenMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[2]; goodRodFourComboBox.SelectedIndex = currentFile.goodRodPokemon[3]; goodRodFourMinLevelUpDown.Value = currentFile.goodRodMinLevels[3]; goodRodFourMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[3]; goodRodOneComboBox.SelectedIndex = currentFile.goodRodPokemon[4]; goodRodOneMinLevelUpDown.Value = currentFile.goodRodMinLevels[4]; goodRodOneMaxLevelUpDown.Value = currentFile.goodRodMaxLevels[4]; /* Super rod encounters controls setup */ superRodFirstFortyComboBox.SelectedIndex = currentFile.superRodPokemon[0]; superRodFirstFortyMinLevelUpDown.Value = currentFile.superRodMinLevels[0]; superRodFirstFortyMaxLevelUpDown.Value = currentFile.superRodMaxLevels[0]; superRodSecondFortyComboBox.SelectedIndex = currentFile.superRodPokemon[1]; superRodSecondFortyMinLevelUpDown.Value = currentFile.superRodMinLevels[1]; superRodSecondFortyMaxLevelUpDown.Value = currentFile.superRodMaxLevels[1]; superRodFifteenComboBox.SelectedIndex = currentFile.superRodPokemon[2]; superRodFifteenMinLevelUpDown.Value = currentFile.superRodMinLevels[2]; superRodFifteenMaxLevelUpDown.Value = currentFile.superRodMaxLevels[2]; superRodFourComboBox.SelectedIndex = currentFile.superRodPokemon[3]; superRodFourMinLevelUpDown.Value = currentFile.superRodMinLevels[3]; superRodFourMaxLevelUpDown.Value = currentFile.superRodMaxLevels[3]; superRodOneComboBox.SelectedIndex = currentFile.superRodPokemon[4]; superRodOneMinLevelUpDown.Value = currentFile.superRodMinLevels[4]; superRodOneMaxLevelUpDown.Value = currentFile.superRodMaxLevels[4]; Helpers.EnableHandlers(); } private void exportEncounterFileButton_Click(object sender, EventArgs e) { currentFile.SaveToFileExplorePath("Encounter File " + selectEncounterComboBox.SelectedIndex); } private void importEncounterFileButton_Click(object sender, EventArgs e) { /* Prompt user to select .wld file */ OpenFileDialog of = new OpenFileDialog { Filter = "Wild Encounters File (" + "*." + EncounterFile.extension + ")" + "|" + "*." + EncounterFile.extension }; if (of.ShowDialog(this) != DialogResult.OK) { return; } /* Update encounter file object in memory */ currentFile = new EncounterFileHGSS(new FileStream(of.FileName, FileMode.Open)); /* Update controls */ SetupControls(); } private void selectEncounterComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile = new EncounterFileHGSS(selectEncounterComboBox.SelectedIndex); SetupControls(); } private void saveEncountersButton_Click(object sender, EventArgs e) { currentFile.SaveToFileDefaultDir(selectEncounterComboBox.SelectedIndex); } private void walkingRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingRate = (byte)walkingRateUpDown.Value; } private void rockSmashRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashRate = (byte)rockSmashRateUpDown.Value; } private void surfRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfRate = (byte)surfRateUpDown.Value; } private void oldRodRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodRate = (byte)oldRodRateUpDown.Value; } private void goodRodRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodRate = (byte)goodRodRateUpDown.Value; } private void superRodRateUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodRate = (byte)superRodRateUpDown.Value; } private void morningTwentyFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[0] = (ushort)morningTwentyFirstComboBox.SelectedIndex; } private void morningTwentySecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[1] = (ushort)morningTwentySecondComboBox.SelectedIndex; } private void morningTenFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[2] = (ushort)morningTenFirstComboBox.SelectedIndex; } private void morningTenSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[3] = (ushort)morningTenSecondComboBox.SelectedIndex; } private void morningTenThirdComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[4] = (ushort)morningTenThirdComboBox.SelectedIndex; } private void morningTenFourthComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[5] = (ushort)morningTenFourthComboBox.SelectedIndex; } private void morningFiveFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[6] = (ushort)morningFiveFirstComboBox.SelectedIndex; } private void morningFiveSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[7] = (ushort)morningFiveSecondComboBox.SelectedIndex; } private void morningFourFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[8] = (ushort)morningFourFirstComboBox.SelectedIndex; } private void morningFourSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[9] = (ushort)morningFourSecondComboBox.SelectedIndex; } private void morningOneFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[10] = (ushort)morningOneFirstComboBox.SelectedIndex; } private void morningOneSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.morningPokemon[11] = (ushort)morningOneSecondComboBox.SelectedIndex; } private void dayTwentyFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[0] = (ushort)dayTwentyFirstComboBox.SelectedIndex; } private void dayTwentySecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[1] = (ushort)dayTwentySecondComboBox.SelectedIndex; } private void dayTenFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[2] = (ushort)dayTenFirstComboBox.SelectedIndex; } private void dayTenSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[3] = (ushort)dayTenSecondComboBox.SelectedIndex; } private void dayTenThirdComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[4] = (ushort)dayTenThirdComboBox.SelectedIndex; } private void dayTenFourthComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[5] = (ushort)dayTenFourthComboBox.SelectedIndex; } private void dayFiveFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[6] = (ushort)dayFiveFirstComboBox.SelectedIndex; } private void dayFiveSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[7] = (ushort)dayFiveSecondComboBox.SelectedIndex; } private void dayFourFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[8] = (ushort)dayFourFirstComboBox.SelectedIndex; } private void dayFourSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[9] = (ushort)dayFourSecondComboBox.SelectedIndex; } private void dayOneFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[10] = (ushort)dayOneFirstComboBox.SelectedIndex; } private void dayOneSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.dayPokemon[11] = (ushort)dayOneSecondComboBox.SelectedIndex; } private void nightTwentyFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[0] = (ushort)nightTwentyFirstComboBox.SelectedIndex; } private void nightTwentySecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[1] = (ushort)nightTwentySecondComboBox.SelectedIndex; } private void nightTenFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[2] = (ushort)nightTenFirstComboBox.SelectedIndex; } private void nightTenSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[3] = (ushort)nightTenSecondComboBox.SelectedIndex; } private void nightTenThirdComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[4] = (ushort)nightTenThirdComboBox.SelectedIndex; } private void nightTenFourthComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[5] = (ushort)nightTenFourthComboBox.SelectedIndex; } private void nightFiveFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[6] = (ushort)nightFiveFirstComboBox.SelectedIndex; } private void nightFiveSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[7] = (ushort)nightFiveSecondComboBox.SelectedIndex; } private void nightFourFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[8] = (ushort)nightFourFirstComboBox.SelectedIndex; } private void nightFourSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[9] = (ushort)nightFourSecondComboBox.SelectedIndex; } private void nightOneFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[10] = (ushort)nightOneFirstComboBox.SelectedIndex; } private void nightOneSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.nightPokemon[11] = (ushort)nightOneSecondComboBox.SelectedIndex; } private void twentyFirstLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[0] = (byte)twentyFirstLevelUpDown.Value; } private void twentySecondLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[1] = (byte)twentySecondLevelUpDown.Value; } private void tenFirstLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[2] = (byte)tenFirstLevelUpDown.Value; } private void tenSecondLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[3] = (byte)tenSecondLevelUpDown.Value; } private void tenThirdLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[4] = (byte)tenThirdLevelUpDown.Value; } private void tenFourthLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[5] = (byte)tenFourthLevelUpDown.Value; } private void fiveFirstLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[6] = (byte)fiveFirstLevelUpDown.Value; } private void fiveSecondLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[7] = (byte)fiveSecondLevelUpDown.Value; } private void fourFirstLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[8] = (byte)fourFirstLevelUpDown.Value; } private void fourSecondLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[9] = (byte)fourSecondLevelUpDown.Value; } private void oneFirstLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[10] = (byte)oneFirstLevelUpDown.Value; } private void oneSecondLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.walkingLevels[11] = (byte)oneSecondLevelUpDown.Value; } private void hoennFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.hoennMusicPokemon[0] = (ushort)hoennFirstComboBox.SelectedIndex; } private void hoennSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.hoennMusicPokemon[1] = (ushort)hoennSecondComboBox.SelectedIndex; } private void sinnohFirstComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.sinnohMusicPokemon[0] = (ushort)sinnohFirstComboBox.SelectedIndex; } private void sinnohSecondComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.sinnohMusicPokemon[1] = (ushort)sinnohSecondComboBox.SelectedIndex; } private void rockSmashNinetyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashPokemon[0] = (ushort)rockSmashNinetyComboBox.SelectedIndex; } private void rockSmashTenComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashPokemon[1] = (ushort)rockSmashTenComboBox.SelectedIndex; } private void rockSmashNinetyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashMinLevels[0] = (byte)rockSmashNinetyMinLevelUpDown.Value; } private void rockSmashTenMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashMinLevels[1] = (byte)rockSmashTenMinLevelUpDown.Value; } private void rockSmashNinetyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashMaxLevels[0] = (byte)rockSmashNinetyMaxLevelUpDown.Value; } private void rockSmashTenMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashMaxLevels[1] = (byte)rockSmashNinetyMaxLevelUpDown.Value; } private void rockSmashNinetyMaxLevelUpDown_ValueChanged_1(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashMaxLevels[0] = (byte)rockSmashNinetyMaxLevelUpDown.Value; } private void rockSmashTenMaxLevelUpDown_ValueChanged_1(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.rockSmashMaxLevels[1] = (byte)rockSmashTenMaxLevelUpDown.Value; } private void grassSwarmComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.swarmPokemon[0] = (ushort)grassSwarmComboBox.SelectedIndex; } private void surfSwarmComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.swarmPokemon[1] = (ushort)surfSwarmComboBox.SelectedIndex; } private void goodRodSwarmComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.swarmPokemon[2] = (ushort)goodRodSwarmComboBox.SelectedIndex; } private void superRodSwarmComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.swarmPokemon[3] = (ushort)superRodSwarmComboBox.SelectedIndex; } private void surfSixtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[0] = (ushort)surfSixtyComboBox.SelectedIndex; } private void surfThirtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[1] = (ushort)surfThirtyComboBox.SelectedIndex; } private void surfFiveComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[2] = (ushort)surfFiveComboBox.SelectedIndex; } private void surfFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[3] = (ushort)surfFourComboBox.SelectedIndex; } private void surfOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfPokemon[4] = (ushort)surfOneComboBox.SelectedIndex; } private void oldRodSixtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[0] = (ushort)oldRodSixtyComboBox.SelectedIndex; } private void oldRodThirtyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[1] = (ushort)oldRodThirtyComboBox.SelectedIndex; } private void oldRodFiveComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[2] = (ushort)oldRodFiveComboBox.SelectedIndex; } private void oldRodFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[3] = (ushort)oldRodFourComboBox.SelectedIndex; } private void oldRodOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodPokemon[4] = (ushort)oldRodOneComboBox.SelectedIndex; } private void goodRodFirstFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[0] = (ushort)goodRodFirstFortyComboBox.SelectedIndex; } private void goodRodSecondFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[1] = (ushort)goodRodSecondFortyComboBox.SelectedIndex; } private void goodRodFifteenComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[2] = (ushort)goodRodFifteenComboBox.SelectedIndex; } private void goodRodFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[3] = (ushort)goodRodFourComboBox.SelectedIndex; } private void goodRodOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodPokemon[4] = (ushort)goodRodOneComboBox.SelectedIndex; } private void superRodFirstFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[0] = (ushort)superRodFirstFortyComboBox.SelectedIndex; } private void superRodSecondFortyComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[1] = (ushort)superRodSecondFortyComboBox.SelectedIndex; } private void superRodFifteenComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[2] = (ushort)superRodFifteenComboBox.SelectedIndex; } private void superRodFourComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[3] = (ushort)superRodFourComboBox.SelectedIndex; } private void superRodOneComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodPokemon[4] = (ushort)superRodOneComboBox.SelectedIndex; } /* Water levels controls */ private void surfSixtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[0] = (byte)surfSixtyMinLevelUpDown.Value; } private void surfThirtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[1] = (byte)surfThirtyMinLevelUpDown.Value; } private void surfFiveMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[2] = (byte)surfFiveMinLevelUpDown.Value; } private void surfFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[3] = (byte)surfFourMinLevelUpDown.Value; } private void surfOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMinLevels[4] = (byte)surfOneMinLevelUpDown.Value; } private void surfSixtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[0] = (byte)surfSixtyMaxLevelUpDown.Value; } private void surfThirtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[1] = (byte)surfThirtyMaxLevelUpDown.Value; } private void surfFiveMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[2] = (byte)surfFiveMaxLevelUpDown.Value; } private void surfFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[3] = (byte)surfFourMaxLevelUpDown.Value; } private void surfOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.surfMaxLevels[4] = (byte)surfOneMaxLevelUpDown.Value; } private void oldRodSixtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[0] = (byte)oldRodSixtyMinLevelUpDown.Value; } private void oldRodThirtyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[1] = (byte)oldRodThirtyMinLevelUpDown.Value; } private void oldRodFiveMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[2] = (byte)oldRodFiveMinLevelUpDown.Value; } private void oldRodFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[3] = (byte)oldRodFourMinLevelUpDown.Value; } private void oldRodOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMinLevels[4] = (byte)oldRodOneMinLevelUpDown.Value; } private void oldRodSixtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[0] = (byte)oldRodSixtyMaxLevelUpDown.Value; } private void oldRodThirtyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[1] = (byte)oldRodThirtyMaxLevelUpDown.Value; } private void oldRodFiveMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[2] = (byte)oldRodFiveMaxLevelUpDown.Value; } private void oldRodFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[3] = (byte)oldRodFourMaxLevelUpDown.Value; } private void oldRodOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.oldRodMaxLevels[4] = (byte)oldRodOneMaxLevelUpDown.Value; } private void goodRodFirstFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[0] = (byte)goodRodFirstFortyMinLevelUpDown.Value; } private void goodRodSecondFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[1] = (byte)goodRodSecondFortyMinLevelUpDown.Value; } private void goodRodFifteenMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[2] = (byte)goodRodFifteenMinLevelUpDown.Value; } private void goodRodFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[3] = (byte)goodRodFourMinLevelUpDown.Value; } private void goodRodOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMinLevels[4] = (byte)goodRodOneMinLevelUpDown.Value; } private void goodRodFirstFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[0] = (byte)goodRodFirstFortyMaxLevelUpDown.Value; } private void goodRodSecondFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[1] = (byte)goodRodSecondFortyMaxLevelUpDown.Value; } private void goodRodFifteenMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[2] = (byte)goodRodFifteenMaxLevelUpDown.Value; } private void goodRodFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[3] = (byte)goodRodFourMaxLevelUpDown.Value; } private void goodRodOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.goodRodMaxLevels[4] = (byte)goodRodOneMaxLevelUpDown.Value; } private void superRodFirstFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[0] = (byte)superRodFirstFortyMinLevelUpDown.Value; } private void superRodSecondFortyMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[1] = (byte)superRodSecondFortyMinLevelUpDown.Value; } private void superRodFifteenMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[2] = (byte)superRodFifteenMinLevelUpDown.Value; } private void superRodFourMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[3] = (byte)superRodFourMinLevelUpDown.Value; } private void superRodOneMinLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMinLevels[4] = (byte)superRodOneMinLevelUpDown.Value; } private void superRodFirstFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[0] = (byte)superRodFirstFortyMaxLevelUpDown.Value; } private void superRodSecondFortyMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[1] = (byte)superRodSecondFortyMaxLevelUpDown.Value; } private void superRodFifteenMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[2] = (byte)superRodFifteenMaxLevelUpDown.Value; } private void superRodFourMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[3] = (byte)superRodFourMaxLevelUpDown.Value; } private void superRodOneMaxLevelUpDown_ValueChanged(object sender, EventArgs e) { if (Helpers.HandlersDisabled) { return; } currentFile.superRodMaxLevels[4] = (byte)superRodOneMaxLevelUpDown.Value; } private void addEncounterFileButton_Click(object sender, EventArgs e) { int encounterCount = selectEncounterComboBox.Items.Count; /* Add new encounter file to encounter folder */ string encounterFilePath = encounterFileFolder + "\\" + encounterCount.ToString("D4"); using (BinaryWriter writer = new BinaryWriter(new FileStream(encounterFilePath, FileMode.Create))) { writer.Write(new EncounterFileHGSS().ToByteArray()); } /* Update ComboBox*/ selectEncounterComboBox.Items.Add("[New] Encounters File " + encounterCount.ToString()); selectEncounterComboBox.SelectedIndex = encounterCount; } private void removeLastEncounterFileButton_Click(object sender, EventArgs e) { int encounterCount = selectEncounterComboBox.Items.Count; if (encounterCount > 1) { /* Delete encounter file file */ int encounterToDelete = encounterCount - 1; string encounterFilePath = encounterFileFolder + "\\" + encounterToDelete.ToString("D4"); File.Delete(encounterFilePath); /* Change selected index if the encounter file to be deleted is currently selected */ if (selectEncounterComboBox.SelectedIndex == encounterToDelete) { selectEncounterComboBox.SelectedIndex--; } /* Remove entry from ComboBox, and decrease encounter file count */ selectEncounterComboBox.Items.RemoveAt(encounterToDelete); } else { MessageBox.Show("At least one encounter file must be kept.", "Can't delete encounter file", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } private void repairAllButton_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("DSPRE is about to open every Encounter File and attempt to reset every corrupted field to its default value.\n" + "Do you wish to proceed?", "Repair all Encounter Files?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d == DialogResult.Yes) { for (int i = 0; i < Directory.GetFiles(encounterFileFolder).Length; i++) { currentFile.SaveToFileDefaultDir(i, showSuccessMessage: false); } MessageBox.Show("All repairable fields have been fixed.", "Operation completed", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } ================================================ FILE: DS_Map/WildEditorHGSS.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 iVBORw0KGgoAAAANSUhEUgAAAA8AAAASCAYAAACEnoQPAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAK1JREFUOE+lkrER gzAMRVmLFRiBlpIyZVZghLSUKVOmpWSEtB5DydOdfLJNwulSPOtb9uOwoRORQ8bxIlD3PYdNpJRE+n74 TNt1o2kgrutTCckREXKIiqBDLTI/Q2XCtr1UArIxz0uuPlPxshwly3yWKCrzqnbeCHiFvFwn2e9Tsekb hWyif4BdVE0je5FayHv6LXvRZNZguD1ytv3U5swmhuUI/8v8o4QoItK9AbYu4JnkDiiKAAAAAElFTkSu QmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL DAAACwwBP0AiyAAAAAd0SU1FB9oIDQQnDocfMUsAAADvSURBVDhPdZOxAYMgFEQdwxEsKVNSUjICpSUj OE5GyHbG+/rIh2hxAf6/d0DUqZbYqeRX09iTtpI6ncWaOxA4xbAjmQnxHoMRDaDPe923mmzU2uAU7gNI B/RSiKSehy2ACTBmD6uO2v2vjf8CnkDqFuJOfQt7s8bxRPM821UsgDudyT8jay/VJAIk+1EBGBPyoBch dgwCUFiWNpdZa0BqFnA80hbgmz5AIoC+xr8AmiOsGnUfIqb7EzmFRuZevq5xzed30QLWY4HJmz2MBOd0 PQW9EIIlFaURkNgox9BguwJvVTMo5DLZTsf8Ca4lTl/a+oEBOmHZ3AAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABgAAAAVCAYAAABc6S4mAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL DAAACwwBP0AiyAAAAAd0SU1FB9oIDQQqEiawE0kAAAFVSURBVEhLrZGxQQMxEARdAiU4pARCh4QOHVKC Q5dACYSElEFnz4/wiNW9bAIIxpJOulnpvVuW5S7783GBOpe6rkyLQvPh49ykz++nNtb18fOyCU2mRRrg 8fVbqNQ5ddcGQPVAn9Bko82MT2+nXjewnnEv+zcBsL+c2o0gA7wpghroGeacY3x4Oay6PwY4r+Tt4Ue+ bhDAaIBNhqZIMhyaZ8VXdLmHmM8kBubtlWeAjk2ADYw2uZaUg8EpFrw9wBAO85myWRmk3HWCw7G/QHH/ RGsAo5LZS0Qxczz2DgF5e5s8aPO9EHBfOeBtARZqSI7UbwVQJ8A1HoNaAD8WsxGozepiMOSr8Q2fyJBM z8P1f0mZ8uxVPgRAk8lV4lrhILvO6/l09gmpMGuAHuB+Jc7ffMEQcKWG3NoDL5nOIQA8lI1VMNu3Xn3D QmYSa8lvctgU/pdl9wW7k4QDv7pGRAAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK 6QAACukB/XXO0wAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAABOElE QVRIS7WToRLCMBBE+aRKPiOyks9AViKRfAYSWcknIJFIZF1gM7OZzeUKDVPEm1w2e7dNC5sY419xxTWp hK7rYh9CxMr6OAzvo9K3lGKDgawxmMNZ86yFXOhwRUPmPJ/IxadmnCHkOo7NIbn41qghLd+k2CwNaXld lYBGxZ7zmyx9Xa6o2CHYt4S4osUL8VAPqQQPbUZ97bfxOewS4+2eOJ0vbkixsXhPhj2HA+w53PPnQvGM BDqeGCsCcBvU4REStq9qtgYPeBDC4fv9Oa1eb9HEWplrpA5COCQ8XzarSKBP05Sf1J5pjQDehDqozAQa Biv0YdUe1HO3yAYVqeE940+F4XM/Q8IQe4t8SEFhyLfhgAH2FoWBte6x2jMPeBigt6hMSwda2Gdv4Zp/ gQGEemVcl7h5AeNIEGdOlDEPAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAe vAAAHrwB7kRN9wAAAAd0SU1FB9UDGhMWCY0H+k0AAAEJSURBVEhLtZKxEcIwDEUZhzIlJSOkpGQEyoyQ ERgjJSVlRkjJCJTpzH3fSafYki3nQvGOb1nRi4BTCOGvqMUjUYtd14XHeA74pAzSPg9ZAQMp0+Bpvkbk nZfNwRpAkuV7b5ZsDqWHcbdHwsHz0B4JB+8DrRIOXoH80UHt38XBKwAtW3BoEQCvhMNeQe1r4mAJUC/d 1bbgoDWgtq5rmG8XdQAJSltwSAfgjMESSzIMU0S73zRSpvN7+cQ3w/Dn9DIFfT9GigJgSazhBEm0LbJG eaYa1bV7gLq1xaYRWEOImiTdQm1Ma5KaIN0iawQliUcgt8gaCW1QSQykpCoAaJKk9ylab9Z0LOH0AzFS L3NUGae+AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK 6QAACukB/XXO0wAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAABFElE QVRIS7WUvQ3CMBSEKSkZJSVlxmCElIxAyQgZgzJlSkagzBjpjC7SWc+PI/4RFJ+cd7bvU4LEIYTwV2RI uq4LxO+VIkOA0mUaNq79qVkiQ0DBPPabYLjdmyQyJChk+fxamiQytKBwfExRUvu5ZEhYhBWCcTjGT1Yq kSHwBZhRTgnWEokMv12kBG+AFeQkH0HuAvbtW+QkyZArJzWSZCgVgFJJcoHPpeAOfw+sEPme5DCfa7AS vo3tiocYeLDHfT7785gpqRIgX9c1PC9nWepnSIDdk4eZodiiSv3sM3mQGf97UI7/I1VoZ0V82JOocu77 zJMMuOAvqYxUC8heqaVZQChSRSXlQIYKKystBzL8HeHwBp8XImlIZls2AAAAAElFTkSuQmCC AAABAAEAlpYAAAEAIABwawEAFgAAACgAAACWAAAALAEAAAEAIAAAAAAAkF8BAMMOAADDDgAAAAAAAAAA AAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/yfJ5P8wzeb/ONDo/zzS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8SwuD/E8Lg/xXD 4f8axeL/Isnk/yrM5/8y0On/OdPr/0DV7P9G1+3/S9nt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDH4/8fx+P/H8fj/yHI 5P8kyeT/KMvm/y3N5/8z0On/OtPq/0PW7P9M2e3/Vd3u/1zf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8szOX/Lczl/y3M 5v8uzOb/MM3n/zLO5/820Oj/PNLp/0bW6v9S2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/840Oj/OdDo/zrQ 6P860Oj/OdDo/znQ6P880ej/QdPp/0vX6v9Y3Oz/ZeHu/2/l7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/O9Hp/z7S6f9B0+n/RNXq/0fW 6v9H1ur/RtXq/0XV6v9G1er/Stfq/1Pa6/9e3u3/aePu/3Pm7/966fD/f+vx/4Ps8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0PU6v9J1+v/UNnr/1Tb 7P9W2+z/Vdvs/1Pa7P9T2uv/Vtvs/1ze7P9k4e3/bOTu/3Xn8P996vH/hO3y/4zv9P+S8fX/l/P3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALfY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PtLp/0fW6v9R2ev/W93t/2Hg 7f9k4e7/ZOHu/2Pg7f9i4O3/Y+Dt/2bh7v9q4+7/cOXv/3bn8P9+6vH/h+3z/5Lx9f+b9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QdPp/0vX6v9Y3Oz/ZODu/2zk 7/9w5e//ceXv/3Hl7/9w5e//cOXv/3Hl7/9y5u//defw/3jo8P9/6vH/iO3y/5Pw9P+d8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8BuNj/AbjY/wG52P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/R9bq/1La6/9f3u3/a+Pu/3Tm 7/956PD/e+nx/3zp8f996fH/ferx/33q8f996vH/ferx/3/q8f+C6vH/iOvx/4/r8P+V6+//muvt/53p 6/+f5+j/oOXl/6Hj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALfY/wC42P8CuNj/BLnZ/we72v8Lvdv/EL/d/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9K1+r/Sdbq/0nW6v9L1+r/UNnr/1nd7P9k4e3/buTv/3fo 8P9+6vH/g+zy/4fu8/+L7/T/jfD1/47x9v+N8fb/jPH3/4vw9v+J7fP/hunw/4Pk6/+A3uX/f9jf/4DS 1/+DzM//h8bH/4rBwP+Mvbv/jby5/427uP+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC32P8Dudj/CLva/w6+3P8Uwd7/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9Z3Oz/WNzs/1fc7P9Y3Oz/XN7s/2Hg7f9p4u7/cOXv/3jo 8P+A6/L/ie7z/5Hx9f+Y8/f/nPX4/573+v+f+fz/nfn8/5n2+v+Q8PX/gubt/3PZ4/9kzNj/W8DL/1q0 vv9eqa//ZJ6g/2uVlP9vj4v/cYyI/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8At9f/ALfX/wC42P8Eudn/DL3b/xXB3v8exeD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9o4u7/Z+Lu/2bi7v9m4e7/aOLu/2vj7v9u5e//c+bv/3no 8P+B6/L/jO/0/5fy9f+g9ff/pvf5/6r6+/+s/P3/qvz9/6P4+v+U7vL/fd7m/2HL1/9It8f/OKW1/zOU ov84hI3/QnZ5/0xqaP9RYVz/VF1X/1RdVv9TXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wK52P8Hu9r/EL/d/xvD4P8myOP/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/905/D/defw/3Tn8P905vD/dOfw/3Xn8P925/D/eOjw/3zp 8P+D6/H/jO3y/5bv8/+f8vT/pfP0/6r19f+t9vb/rPX1/6Xv8P+T4+b/ddDY/1K5xv8yobL/HYye/xd4 iP8dZXD/KFVY/zNHRP86PTf/PTkx/z04MP88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNn/AbjY/wG42P8Cudn/BLrZ/wi72v8Ovtz/FsLe/yHG4f8ry+T/NM7n/znQ6P880en/PdLp/0DT 6f9F1er/Ttjr/1nc7P9l4e7/cOXv/3jo8P986fH/furx/4Dq8f+A6vH/gevy/4Hr8v+B7PL/gezz/4Pr 8v+F6/H/ierw/43o7v+R5+v/leXo/5nk5v+e4uP/n9/e/5nX1/+Iysz/are9/0ihrP8oipn/EnWF/wxi cP8RUFn/HD9C/ycyL/8tKSH/LyQb/zAjGv8vJBz/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4m Hv8uJh7/LiYe/y4mHv8uJh7/LiYe/y4mHv8uJh7/LiYe/y8kHP8wIxr/LyQb/y0pIf8nMi//HD9C/xFQ Wf8MYnD/EnWF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2f8AuNj/AbjY/wS52f8Iu9r/DL3b/xG/3f8Xwt//H8Xh/yfJ4/8uzOb/Ns/n/zzR6f9B0+n/RdXq/0rX 6v9Q2ev/WNzs/2Hf7f9q4+7/c+bv/3rp8P+A6/H/huzy/4rt8v+N7vP/kPD0/5Hx9v+R8/f/kPP4/47x 9v+J7PP/g+bt/3ze5v921t7/dM7W/3jIzf9+wcT/grq6/4Cwr/9zo6P/XJOV/z+Bh/8lb3j/E11p/w5O V/8RPkT/GDEx/yElIf8lHRb/JxoR/ycZEP8nGhH/JhsS/yYbE/8mGxP/JhsT/ycbE/8nGxP/JxsT/ycb E/8nGxP/JxsT/ycbE/8nGxP/JhsT/yYbE/8mGxP/JhsS/ycaEf8nGRD/JxoR/yUdFv8hJSH/GDEx/xE+ RP8OTlf/E11p/yVveP8/gYf/XJOV/3Ojo/+AsK//grq6/37BxP94yM3/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/ArjY/we62v8Ovdz/FcHe/xzE4P8jx+L/KMnk/yzL5f8xzeb/Ns/o/z3S6f9F1er/Tdjr/1bb 7P9d3u3/Y+Dt/2nj7v9u5e//dOfw/3vp8P+D6/H/i+7y/5Pw9P+Z8vX/nfT3/6D3+f+h+fz/n/n8/5n1 +f+M7PL/et/o/2bQ2/9WwM3/TrK//1CmsP9XmqD/X4+P/2KDgf9bd3T/TGtq/zpfYP8oVFf/G0hN/xc+ Qf8YMzP/HSkm/yEhG/8kGxP/JRkQ/yUYD/8lGRD/JRoR/yUaEf8lGhL/JRoS/yUaEv8lGhL/JRoS/yUa Ev8lGhL/JRoS/yUaEv8lGhL/JRoS/yUaEv8lGhH/JRoR/yUZEP8lGA//JRkQ/yQbE/8hIRv/HSkm/xgz M/8XPkH/G0hN/yhUV/86X2D/TGtq/1t3dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC5 2f8AuNj/A7nZ/wq82/8TwN3/HsXg/yfJ4/8ty+X/MM3m/zLO5/80zuf/ONDo/0DT6f9K1+r/Vtvs/2Hf 7f9p4u7/buTv/3Hm7/9z5u//dufw/3zp8f+F7PL/j+/z/5ry9f+i9Pb/p/b3/6v5+v+t+/v/qvn7/6Dz 9v+M5uv/b9Pd/1G+zP84qbr/K5an/yuFkv8zdXz/PmZn/0VZVv9FT0n/P0dC/zZCPv8tPTr/Jzg2/yUz Mf8lLir/Jyok/yomH/8rIxv/LCIZ/ywiGf8sIhr/KyIa/ysiGv8rIhr/LCIa/ywiGv8sIhr/LCMa/ywj Gv8sIxr/LCMa/ywiGv8sIhr/LCIa/ysiGv8rIhr/KyIa/ywiGv8sIhn/LCIZ/ysjG/8qJh//Jyok/yUu Kv8lMzH/Jzg2/y09Ov82Qj7/P0dC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Cudn/Brva/w++3P8Zw9//Jcji/y7M5f81z+f/N9Do/zjQ6P850ej/PdLp/0XV6v9Q2ev/Xd7t/2ni 7v9y5u//d+fw/3jo8P956PD/e+nw/4Dq8f+I7fP/k/D0/53z9v+l9fb/qvX2/6719f+u9PP/qu/v/57m 5/+G1tv/ZcHK/0GpuP8kkqP/FH2P/xNqeP8cV1//KEhJ/zI7Nv82Myz/Ni8n/zQvJ/8yLyn/MTAq/zIx K/81Miv/ODMs/zo0Lf88NS3/PTUt/z01Lf88NS3/PDUt/zw1Lf88NS3/PDQt/zw0Lf87NC3/OzQt/zs0 Lf87NC3/OzQt/zs0Lf88NC3/PDQt/zw1Lf88NS3/PDUt/zw1Lf89NS3/PTUt/zw1Lf86NC3/ODMs/zUy K/8yMSv/MTAq/zIvKf80Lyf/Ni8n/zYzLP8yOzb/KEhJ/xxXX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anbr/AKrI/wC00/8Cudn/A7vb/wa8 2/8JvNv/Dr7c/xbC3v8gxuH/Ksrk/zPO5/850ej/PdLp/z/T6f9C1On/RtXq/07Y6/9Y3Oz/Y+Dt/27k 7/935/D/fOnw/3/q8f+B6/H/g+vy/4jt8/+O8PX/lvP3/531+P+i9ff/pPHy/6Xr6/+j4uH/nNfW/4/J yf94uLv/WaSr/ziPmv8deoj/Dmd1/wxUYP8TQ0n/HTQ0/ycpJP8tJBz/MCMb/zMmHv82KyT/OjEq/0A4 Mf9IQDn/UElC/1dQSf9bVU7/XVdR/15XUf9dV1H/XFZQ/1xWUP9bVk//W1VP/1pVT/9ZVU7/WVRO/1lU Tv9ZVE7/WVRO/1lVTv9aVU//W1VP/1tWT/9cVlD/XFZQ/11XUf9eV1H/XVdR/1tVTv9XUEn/UElC/0hA Of9AODH/OjEq/zYrJP8zJh7/MCMb/y0kHP8nKST/HTQ0/xNDSf8MVGD/Dmd1/x16iP84j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eutn/CL3d/w2/ 3v8Twd7/GcPf/yDG4f8nyeP/L8zl/zbP5/880un/QtTq/0fW6v9M2Ov/Utrr/1nc7P9h3+3/aePu/3Hm 7/946PD/f+rx/4Ts8v+K7fL/ju7z/5Lw9P+W8/j/mff7/5v4/P+b9fj/mOvu/5Tc3P+OyMf/hLSx/3eh nv9kkI//TH+C/zJvdf8eYGj/ElFa/xBCSP8UNDb/Gygm/yMgGv8oHhb/LiAY/zMmHv86Lyj/Qzo0/1BH Qf9fWFL/b2lk/314c/+Hgn3/i4aC/4yHg/+LhoH/iYSA/4iEf/+Hg3//hYJ+/4SCff+DgX3/goF8/4KB fP+CgXz/goF8/4OBff+Egn3/hYJ+/4eDf/+IhH//iYSA/4uGgf+Mh4P/i4aC/4eCff99eHP/b2lk/19Y Uv9QR0H/Qzo0/zovKP8zJh7/LiAY/ygeFv8jIBr/Gygm/xQ0Nv8QQkj/ElFa/x5gaP8yb3X/TH+C/2SQ j/93oZ7/hLSx/47Ix/+U3Nz/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKrI/wG00/8Gu9r/DcDe/xXD 4P8exeH/JMji/yrK5P8uzOX/Ms7n/zfQ6P890un/RdXq/07Y6/9X3Oz/X9/t/2Xh7v9q4+7/b+Xv/3Pm 7/956PD/gevx/4rt8v+S7/T/mfH1/5zz9v+c9vr/mvn9/5b4/f+Q8fb/iOHl/3/Iyv91qqn/aY2K/111 cf9PZWH/P1lX/zBQUP8kSEr/HT9B/xo1Nv8cLCr/ICQf/yUgGf8qIRn/MCUe/zcuKP9BOTT/TkhE/2Fb WP95dHH/kY2K/6ajoP+1sq//u7i2/726t/+7uLX/ubaz/7e1sv+1tLH/s7Ow/7Gyr/+vsa7/rrCu/62w rf+tsK3/rrCu/6+xrv+xsq//s7Ow/7W0sf+3tbL/ubaz/7u4tf+9urf/u7i2/7Wyr/+mo6D/kY2K/3l0 cf9hW1j/TkhE/0E5NP83Lij/MCUe/yohGf8lIBn/ICQf/xwsKv8aNTb/HT9B/yRISv8wUFD/P1lX/09l Yf9ddXH/aY2K/3Wqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbn/AKnI/wK00/8IvNv/EsHf/xzG 4v8nyeT/Lszl/zLN5v80zuf/Nc/n/zjQ6P8+0un/SNbq/1Tb7P9g3+3/auPu/3Dl7/9z5u//dOfw/3bn 8P976fD/g+vy/47u8/+Z8fX/ofT2/6P09v+f9vn/mPb6/47y+P+D6O7/eNLX/2uytP9djYz/UGpm/0VP Sf89QDr/NTk0/zA3Mv8sNjL/KTQw/ykvK/8pLCb/LCki/y8pIv81LSb/OjMt/0I9OP9NSkf/XVpZ/3Ry cf+RkI//sK6t/8rJyP/c29r/5OPi/+bl4//k4+H/4eDf/9/f3v/d3tz/2tzb/9fb2v/V2tn/1NnY/9PZ 2P/T2dj/1NnY/9Xa2f/X29r/2tzb/93e3P/f397/4eDf/+Tj4f/m5eP/5OPi/9zb2v/Kycj/sK6t/5GQ j/90cnH/XVpZ/01KR/9CPTj/OjMt/zUtJv8vKSL/LCki/yksJv8pLyv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FMPg/yHI 4/8szOX/NM7n/zfQ6P830Oj/N9Do/zjQ6P8/0un/Stfq/1jc7P9m4e7/ceXv/3jo8P966fD/e+nw/3zp 8f+A6vH/iO3z/5Lw9P+c8/b/o/T2/6Pz9f+c8fP/kezw/4Tk6f921dr/ab3B/1uanP9MdHL/QFBM/zc3 MP8yKiP/MCcg/zEqIv8zLif/NTAq/zcyK/86NC3/Pjgx/0M9Nv9JQz3/T0pF/1dUUP9hYF7/cXFw/4iJ if+mp6f/xsfH/+Li4v/09fT//P39//7//v/8/Pz/+fr5//f5+P/19/f/8vb2/+/19P/t9PP/6/Pz/+vz 8//r8/P/6/Pz/+308//v9fT/8vb2//X39//3+fj/+fr5//z8/P/+//7//P39//T19P/i4uL/xsfH/6an p/+IiYn/cXFw/2FgXv9XVFD/T0pF/0lDPf9DPTb/Pjgx/zo0Lf83Miv/NTAq/zMuJ/8xKiL/MCcg/zIq I/83NzD/QFBM/0x0cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FcPg/yPI 5P8vzeb/N8/o/znR6f840On/N9Do/zjQ6P8+0un/Stfq/1nc7P9o4u7/dOfw/3zp8f+A6/H/g+vx/4Xs 8v+I7fP/jvD1/5bz+P+c9vr/n/b5/5zx8/+T5+r/htre/3fKzv9otrn/Wp2f/01+ff9AXVn/Nj85/zAr I/8tIhn/LyEZ/zMnH/85Lif/QDYv/0g/OP9SSUP/XFRO/2VfWf9taGP/c3Bs/3h3df+AgYD/jI6O/6Ci ov+5u7z/1NXV/+vs7P/7+/v///////////////////////7////8////+v7///j+/v/2/v7/9f7+//X+ /v/1/v7/9f7+//b+/v/4/v7/+v7///z////+//////////////////////////v7+//r7Oz/1NXV/7m7 vP+goqL/jI6O/4CBgP94d3X/c3Bs/21oY/9lX1n/XFRO/1JJQ/9IPzj/QDYv/zkuJ/8zJx//LyEZ/y0i Gf8wKyP/Nj85/0BdWf9Nfn3/Wp2f/2i2uf93ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8Kvdv/FsPg/yPJ 5P8vzeb/N9Do/znR6f840On/Ns/o/zfQ6P890un/Sdbq/1jc7P9n4u7/defw/37q8f+G7PL/i+7y/4/v 8/+T8PT/lvP3/5n3+/+a+f3/mPb6/5Hs8P+G2t7/d8PG/2epq/9YkJD/THh3/0FfXP84R0L/MTMt/y4n H/8uIhr/MSQd/zcsJf9ANjH/S0M+/1tTTv9tZ2L/gHp2/4+Lh/+al5P/n52b/6Giof+lqKf/rLCw/7q+ vv/Mz9D/4OLi//Hy8v/8/Pz///////////////////////7////8////+v////n////3////9/////b/ ///2////9/////f////5////+v////z////+//////////////////////////z8/P/x8vL/4OLi/8zP 0P+6vr7/rLCw/6Wop/+hoqH/n52b/5qXk/+Pi4f/gHp2/21nYv9bU07/S0M+/0A2Mf83LCX/MSQd/y4i Gv8uJx//MTMt/zhHQv9BX1z/THh3/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8KvNv/FcPg/yLI 5P8uzOb/Ns/o/znQ6P840Oj/Ns/o/zfQ6P890un/Sdbq/1fc7P9m4e7/dOfw/4Dq8f+K7fL/k/D0/5ry 9f+d8/b/nfX4/5v4/P+W+P3/jvL4/4Tk6f93ys7/Z6mr/1eIh/9Jamf/P1RQ/zhDPf8yNS//MC0l/y8o IP8yKCH/Ni0n/z43Mv9JRED/WVRR/3Braf+KhoT/pKGf/7q3tf/GxMP/ysrJ/8rMy//Jzc3/y9DQ/9LY 2P/c4uL/5+3t//D29v/2/Pz/+f////r////5////+P7+//f+/v/3/f3/9v39//X8/P/0/Pz/8/z8//P8 /P/z/Pz/8/z8//T8/P/1/Pz/9v39//f9/f/3/v7/+P7+//n////6////+f////b8/P/w9vb/5+3t/9zi 4v/S2Nj/y9DQ/8nNzf/KzMv/ysrJ/8bEw/+6t7X/pKGf/4qGhP9wa2n/WVRR/0lEQP8+NzL/Ni0n/zIo If8vKCD/MC0l/zI1L/84Qz3/P1RQ/0lqZ/9XiIf/Z6mr/3fKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnI/wK00/8JvNv/FcPg/yLI 4/8tzOb/Ns/n/znQ6P850Oj/ONDo/zrR6P9A0+n/S9fq/1jc7P9m4e7/dObw/4Dq8f+N7vP/mfL1/6L0 9v+l9fb/ovX3/5v1+P+Q8fb/g+ju/3bV2v9otrn/WJCQ/0lqZ/8+S0b/Njgx/zEuJv8wKSL/MSoi/zQt Jf85Miv/Pzo1/0lGQv9XVVP/amlo/4WEhP+kpKP/w8LC/9vb2v/o6ej/7O7t/+rt7f/l6+v/4+rq/+Xs 7P/o7/D/7PPz/+/29v/x+Pn/8vn5//L6+v/y+fn/8vn5//L5+f/x+fn/8fn5//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8fn5//H5+f/y+fn/8vn5//L5+f/y+vr/8vn5//H4+f/v9vb/7PPz/+jv 8P/l7Oz/4+rq/+Xr6//q7e3/7O7t/+jp6P/b29r/w8LC/6Sko/+FhIT/amlo/1dVU/9JRkL/Pzo1/zky K/80LSX/MSoi/zApIv8xLib/Njgx/z5LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/FcPg/yHI 4/8tzOb/Ns/n/zvR6f880un/PtLp/0HT6f9H1ur/UNnr/1ze7P9o4u7/dOfw/4Hr8v+Q8PT/nfT3/6f2 9/+q9fb/pPHy/5jr7v+I4eX/eNLX/2m9wf9anZ//THh3/z9UUP82ODH/MCkh/y4jG/8vJRz/Myoj/zkz LP9CPDf/TElF/1pYVv9ra2r/f4CA/5ucnP+6u7v/19jY/+7v7//6/Pz//f////r////1+/v/8fj4//D4 +P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4 +P/w+Pj/8fj4//X7+//6/////f////r8/P/u7+//19jY/7q7u/+bnJz/f4CA/2trav9aWFb/TElF/0I8 N/85Myz/Myoj/y8lHP8uIxv/MCkh/zY4Mf8/VFD/THh3/1qdn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wK00/8JvNv/FMLg/yHH 4/8tzOX/N8/n/z7S6f9C1Or/R9bq/0vX6v9S2uv/Wd3s/2Hg7f9r4+7/defw/4Hr8v+R8fb/oPf5/6v5 +v+u9fX/pevr/5Tc3P9/yMr/a7K0/1uanP9Nfn3/QV9c/zhDPf8xLib/LiMb/y4hGf8xJh//Ny8p/0A7 Nv9NSkb/Xlxa/3FxcP+Fh4f/mp2d/7K0tf/LzM3/4uPj//P09P/9/v7///////3////5////9f39//T8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//0/Pz/9f39//n////9//////////3+/v/z9PT/4uPj/8vMzf+ytLX/mp2d/4WHh/9xcXD/Xlxa/01K Rv9AOzb/Ny8p/zEmH/8uIRn/LiMb/zEuJv84Qz3/QV9c/01+ff9bmpz/a7K0/3/Iyv+U3Nz/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8JvNv/FMLg/yDH 4/8tzOX/ONDo/0HT6f9J1+v/Udnr/1jc7P9f3u3/ZOHt/2ni7v9u5e//dufw/4Hs8v+R8/f/ofn8/637 +/+u9PP/o+Lh/47Ix/91qqn/XY2M/0x0cv9AXVn/OEdC/zI1L/8wKSL/LyUc/zEmH/82LSf/Pjgz/0pH Q/9cWlj/cnNx/4uNjP+jpqb/t7y8/8rOz//b39//6u3t//X4+P/7/v7//f////v////3/v7/9f39//P8 /P/y+/v/8fr6//D5+f/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+fn/8fr6//L7 +//z/Pz/9f39//f+/v/7/////f////v+/v/1+Pj/6u3t/9vf3//Kzs//t7y8/6Ompv+LjYz/cnNx/1xa WP9KR0P/Pjgz/zYtJ/8xJh//LyUc/zApIv8yNS//OEdC/0BdWf9MdHL/XY2M/3Wqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Anbn/AKnH/wK00/8JvNv/E8Lg/yDH 4/8tzOX/OdDo/0TV6v9Q2ev/W93t/2Tg7v9r4+7/buTv/3Dl7/9z5u//eOjw/4Hs8/+Q8/j/n/n8/6r5 +/+q7+//nNfW/4S0sf9pjYr/UGpm/0BQTP82Pzn/MTMt/zAtJf8xKiL/Myoj/zcvKf8+ODP/SUVC/1hW VP9tbWz/iIqJ/6Sop/++w8P/0djY/9/l5f/o7u//7vT1//L4+f/1/Pz/9v39//X8/P/z+/v/8vr6//H5 +f/x+fn/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//H5 +f/x+fn/8vr6//P7+//1/Pz/9v39//X8/P/y+Pn/7vT1/+ju7//f5eX/0djY/77Dw/+kqKf/iIqJ/21t bP9YVlT/SUVC/z44M/83Lyn/Myoj/zEqIv8wLSX/MTMt/zY/Of9AUEz/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRq/8Anbr/AarI/wS11P8Lvdz/FcPh/yHI 5P8tzOb/OtDo/0fW6v9U2+z/YeDt/2zk7/905u//d+jw/3jo8P956PD/fOnw/4Pr8v+O8fb/mfX5/6Dz 9v+e5uf/j8nJ/3ehnv9ddXH/RU9J/zc3MP8wKyP/Licf/y8oIP80LSX/OTMs/0A7Nv9KR0P/WFZU/2lo aP+AgYH/nKCg/7q/v//T2tr/5ezs/+719f/x+Pn/8fj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+Pj/8fn5//H4+P/w+Pj/8fj4//H4+f/u9fX/5ezs/9Pa2v+6v7//nKCg/4CB gf9paGj/WFZU/0pHQ/9AOzb/OTMs/zQtJf8vKCD/Licf/zArI/83NzD/RU9J/111cf93oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AYeg/wOSrP8EoLv/B63K/wy51v8SwN7/GsXi/yTJ 5P8uzOb/OtDo/0fW6v9W2+z/ZOHu/3Dl7/956PD/furx/4Dr8v+B6/L/g+vx/4Xr8f+J7PP/jOzy/4zm 6/+G1tv/eLi7/2SQj/9PZWH/PUA6/zIqI/8tIhn/LiIa/zIoIf85Miv/Qjw3/01KRv9cWlj/bW1s/4CB gf+Wmpr/sbW2/8vR0f/g6Oj/7/f3//X9/f/1/f3/8/v7//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/x+fn/8fn5//L6+v/y+vr/8vr6//L6+v/y+vr/8vr6//L6 +v/y+vr/8vr6//L6+v/y+vr/8vr6//L6+v/y+vr/8fn5//H5+f/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8/v7//X9/f/1/f3/7/f3/+Do6P/L0dH/sbW2/5aa mv+AgYH/bW1s/1xaWP9NSkb/Qjw3/zkyK/8yKCH/LiIa/y0iGf8yKiP/PUA6/09lYf9kkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/A4ig/waUrf8Lor3/EbHN/xa92f8cxOH/Isnk/yjL 5v8wzef/OdDo/0bV6v9V2+z/ZOHu/3Hl7/976fH/g+zy/4nu8/+M7/T/jO3y/4nq8P+D5u3/et/o/2/T 3f9lwcr/WaSr/0x/gv8/WVf/NTk0/zAnIP8vIRn/MSQd/zYtJ/8/OjX/TElF/15cWf9ycnH/iIqJ/5yg oP+xtbb/xcvL/9jf3//o8PD/8vr6//b+/v/2/v7/8/v7//D5+f/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+/v/9Pz8//T9/f/1/f3/9f7+//X+/v/2/v7/9v7///b+ ///2/v//9v7///b+/v/1/v7/9f7+//X9/f/0/f3/9Pz8//P7+//y+vr/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4+P/w+fn/8/v7//b+/v/2/v7/8vr6/+jw8P/Y39//xcvL/7G1 tv+coKD/iIqJ/3Jycf9eXFn/TElF/z86Nf82LSf/MSQd/y8hGf8wJyD/NTk0/z9ZV/9Mf4L/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BIih/wuVrv8Spb//G7XQ/yLC3P8nyeT/Kszn/y3N 5/8yzuf/OdDo/0XV6v9T2uz/Y+Dt/3Hl7/986fH/h+7z/5Hx9f+X8vX/lu/z/43o7v983ub/ZtDb/1G+ zP9Bqbj/OI+a/zJvdf8wUFD/MDcy/zEqIv8zJx//Nywl/z43Mv9JRkL/WlhW/3Fxb/+LjYz/pKin/7q/ v//L0dH/2N/f/+Tr6//s9PT/8vr6//T8/P/0/Pz/8vr6//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/7/j4//D4+P/w+Pj/8fn5//L6+v/z/Pz/9P39//X9/f/2/v7/9v7+//b////3////9/////f/ ///3////9/////f////2////9v7+//b+/v/1/f3/9P39//P8/P/y+vr/8fn5//D4+P/w+Pj/7/j4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vr6//T8/P/0/Pz/8vr6/+z09P/k6+v/2N/f/8vR 0f+6v7//pKin/4uNjP9xcW//WlhW/0lGQv8+NzL/Nywl/zMnH/8xKiL/MDcy/zBQUP8yb3X/OI+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/BYmh/w6Xr/8ZqMH/I7nS/yzG3/8wzeb/MtDp/zPQ 6f820Oj/PNHo/0bV6v9T2uv/YuDt/3Dl7/996fH/i+/0/5jz9/+g9ff/n/L0/5Hn6/921t7/VsDN/zip uv8kkqP/HXqI/x5gaP8kSEr/LDYy/zMuJ/85Lif/QDYx/0lEQP9XVVP/a2tq/4WHh/+jpqb/vsPD/9Pa 2v/g6Oj/6PDw/+z09P/u9vb/8Pj4//H5+f/x+fn/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+fn/8fn5//H5+f/x+fn/8fn5//H5 +f/x+fn/8fn5//H5+f/x+fn/8fn5//D5+f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//H5+f/x+fn/8Pj4/+729v/s9PT/6PDw/+Do 6P/T2tr/vsPD/6Ompv+Fh4f/a2tq/1dVU/9JRED/QDYx/zkuJ/8zLif/LDYy/yRISv8eYGj/HXqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/xCYsP8dqsL/KbvU/zLJ4f840Oj/OdPr/zrT 6v880un/QdPp/0rX6v9W2+z/Y+Dt/3Dl7/996vH/jfD1/5z1+P+m9/n/pfP0/5Xl6P90ztb/TrK//yuW p/8UfY//Dmd1/xJRWv8dP0H/KTQw/zUwKv9ANi//S0M+/1lUUf9qaWj/f4CA/5udnf+3vLz/0djY/+Xs 7P/v9/f/8vr6//L6+v/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+fn/8fn5//H5+f/w+Pj/7vX1/+vy8v/o7+//5ezs/+Pq6v/h6Oj/4Ofn/+Dm5v/f5uX/3+Xl/9/l 5P/f5eT/3+Xl/9/m5f/g5ub/4Ofn/+Ho6P/j6ur/5ezs/+jv7//r8vL/7vX1//D4+P/x+fn/8fn5//H5 +f/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/y+vr/8vr6/+/3 9//l7Oz/0djY/7e8vP+bnZ3/f4CA/2ppaP9ZVFH/S0M+/0A2L/81MCr/KTQw/x0/Qf8SUVr/Dmd1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zXK4v880un/QNXs/0PW 7P9G1ur/S9fq/1Pa6/9c3uz/ZuHu/3Hl7/996vH/jvH2/573+v+q+vv/qvX1/5nk5v94yM3/UKaw/yuF kv8Tanj/DFRg/xBCSP8aNTb/KS8r/zcyK/9IPzj/W1NO/3Braf+FhIT/m5yc/7O2tv/Kz9D/3+Xl/+71 9f/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5 +f/0+/v/9v39//b9/f/0+vr/7fPz/+Pp6f/Z39//0NbW/8rPz//Fysr/wsfG/8DEw/++wsD/vcG//73A vv+9wL7/vcG//77CwP/AxMP/wsfG/8XKyv/Kz8//0NbW/9nf3//j6en/7fPz//T6+v/2/f3/9v39//T7 +//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/u9fX/3+Xl/8rP0P+ztrb/m5yc/4WEhP9wa2n/W1NO/0g/OP83Miv/KS8r/xo1Nv8QQkj/DFRg/xNq eP8rhZL/UKaw/3jIzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xGYsP8eqsL/K7zU/zbL4v8/0+r/Rtft/0zZ 7f9S2uz/WNzs/17e7f9k4e3/auPu/3Lm7/996vH/jfH2/5/5/P+s/P3/rfb2/57i4/9+wcT/V5qg/zN1 fP8cV1//E0NJ/xQ0Nv8cLCr/KSwm/zo0Lf9SSUP/bWdi/4qGhP+kpKP/uru7/8zP0P/b4OH/6O7v//H4 +P/1/f3/9v7+//T8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//P6 +v/4/f3//P////z+/v/3+Pj/6uzs/9nb2//Gycn/tbm5/6mtrf+hpKP/m56c/5iZlv+VlZL/kpKP/5GR jf+RkY3/kpKP/5WVkv+YmZb/m56c/6Gko/+pra3/tbm5/8bJyf/Z29v/6uzs//f4+P/8/v7//P////j9 /f/z+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/0/Pz/9v7+//X9 /f/x+Pj/6O7v/9vg4f/Mz9D/uru7/6Sko/+KhoT/bWdi/1JJQ/86NC3/KSwm/xwsKv8UNDb/E0NJ/xxX X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/B4mh/xCYsP8dqsL/KrzU/zbK4v9B1Or/S9nt/1Xd 7v9d3+3/ZeHu/2nj7v9s5O7/cOXv/3Xn8P996vH/jPH3/535/P+q/P3/rPX1/5/f3v+Curr/X4+P/z5m Z/8oSEn/HTQ0/xsoJv8gJB//LCki/z44Mf9cVE7/gHp2/6Shn//DwsL/19jY/+Pm5//q7+//7vT1//H4 +P/z+/v/8/v7//L6+v/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4/+/4+P/v+Pj/8Pj4//T6 +v/5/v7//f////3////19vb/4+Pk/8rLzP+wsbL/mJqa/4iJif98fXv/dHNw/25saP9qZ2L/Z2Ne/2Vi XP9lYlz/Z2Ne/2pnYv9ubGj/dHNw/3x9e/+IiYn/mJqa/7Cxsv/Ky8z/4+Pk//X29v/9/////f////n+ /v/0+vr/8Pj4/+/4+P/v+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/y+vr/8/v7//P7 +//x+Pj/7vT1/+rv7//j5uf/19jY/8PCwv+koZ//gHp2/1xUTv8+ODH/LCki/yAkH/8bKCb/HTQ0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8cqsL/KbvU/zXK4v9C1Or/T9vt/1zf 7/9n4u//b+Xv/3Pm7/915/D/dufw/3jo8P9/6vH/i/D2/5n2+v+j+Pr/pe/w/5nX1/+AsK//YoOB/0VZ Vv8yOzb/Jykk/yMgGv8lIBn/Lyki/0M9Nv9lX1n/j4uH/7q3tf/b29r/7u/v//X4+f/1+vr/8vj5//D4 +P/w+Pj/8Pn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//P6 +v/4/f3/+/7+//n7+//u7+//2NjY/7q7u/+am5v/fn9//2tqaf9dW1n/U1BM/01IQv9IQjv/RD02/0I7 NP9COzT/RD02/0hCO/9NSEL/U1BM/11bWf9ramn/fn9//5qbm/+6u7v/2NjY/+7v7//5+/v/+/7+//j9 /f/z+vr/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pn5//D4 +P/w+Pj/8vj5//X6+v/1+Pn/7u/v/9vb2v+6t7X/j4uH/2VfWf9DPTb/Lyki/yUgGf8jIBr/Jykk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/2Dh 7/9s5O//defw/3rp8P996vH/furx/3/q8f+C6vH/ie3z/5Dw9f+U7vL/k+Pm/4jKzP9zo6P/W3d0/0VP Sf82Myz/LSQc/ygeFv8qIRn/NS0m/0lDPf9taGP/mpaT/8bEw//o6ej/+vz8///////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//L6+v/z+vr/8vn5//H3 9v/x9PT/7vDv/+bn5v/Y19b/wcC//6Oiof+Eg4L/aWhn/1ZUUv9IRUL/Pzo1/zgyK/8zLCT/Lycf/y0l HP8tJRz/Lycf/zMsJP84Miv/Pzo1/0hFQv9WVFL/aWhn/4SDgv+joqH/wcC//9jX1v/m5+b/7vDv//H0 9P/x9/b/8vn5//P6+v/y+vr/8fn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v/////////+vz8/+jp6P/GxMP/mpaT/21oY/9JQz3/NS0m/yohGf8oHhb/LSQc/zYz LP9FT0n/W3d0/3Ojo/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Hh 7/9u5e//eOjw/3/r8f+E7fL/h+3z/4jt8v+I6/H/hunw/4Lm7f993ub/ddDY/2q3vf9ck5X/TGtq/z9H Qv82Lyf/MCMb/y4gGP8wJh7/OjMt/09KRf9zb2v/npyZ/8rIx//s6+v//f7+///////8////9vz8//H4 +P/w+Pj/7/j4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/x+fn/9Pz8//j+/v/5////9vv7/+/z 8v/k5uX/19fV/8fFw/+0sq//npuY/4WCf/9saWf/V1RR/0dDP/87NjH/Miwm/ywlHv8nHxf/JBsT/yIZ EP8iGRD/JBsT/ycfF/8sJR7/Miwm/zs2Mf9HQz//V1RR/2xpZ/+Fgn//npuY/7Syr//HxcP/19fV/+Tm 5f/v8/L/9vv7//n////4/v7/9Pz8//H5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/7/j4//D4 +P/x+Pj/9vz8//z//////////f7+/+zr6//KyMf/npyZ/3Nva/9PSkX/OjMt/zAmHv8uIBj/MCMb/zYv J/8/R0L/TGtq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Utzu/2Dh 7/9u5e//eejw/4Ps8v+M7/T/kvH1/5Pw9P+P6/D/g+Tr/3PZ4/9hy9f/UrnG/0ihrP8/gYf/Ol9g/zZC Pv80Lyf/MyYe/zMmHv83Lij/Qj04/1dTUP94d3T/oaGg/8rLyv/q7Oz/+v7+//7////7////9fz8//H4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/y+fn/9/39//z////+////+fn5/+rp 6P/U0tD/ure0/6CcmP+KhYH/dnFt/2VgW/9VUEv/R0I9/zw3Mf8zLSf/LSYf/yggGf8kHBT/IhkQ/yEY D/8hGA//IhkQ/yQcFP8oIBn/LSYf/zMtJ/88NzH/R0I9/1VQS/9lYFv/dnFt/4qFgf+gnJj/ure0/9TS 0P/q6ej/+fn5//7////8////9/39//L5+f/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/x+Pj/9fz8//v////+////+v7+/+rs7P/Ky8r/oaGg/3h3dP9XU1D/Qj04/zcuKP8zJh7/MyYe/zQv J/82Qj7/Ol9g/z+Bh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1er/Udzu/1/g 7/9t5O//eejw/4Xt8/+S8fX/m/T3/53y9f+V6+//gN7l/2TM2P9It8f/MqGy/yiKmf8lb3j/KFRX/y09 Ov8yLyn/Nisk/zovKP9BOTT/TUpH/2FgXv+AgYD/paen/8nNzf/l6+v/9fv7//n////3////8/v7//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/v+Pj/7/j4//D4+P/z+vr/+P7+//7/////////9/f3/+Hg 3//Bvrv/nJiU/3p1cP9hW1X/UUtF/0dBOv9BOjT/PDUv/zYwKf8yKyT/Lycg/ywkHP8qIhr/KSEY/ygg F/8oIBf/KSEY/yoiGv8sJBz/Lycg/zIrJP82MCn/PDUv/0E6NP9HQTr/UUtF/2FbVf96dXD/nJiU/8G+ u//h4N//9/f3///////+////+P7+//P6+v/w+Pj/7/j4/+/4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8/v7//f////5////9fv7/+Xr6//Jzc3/paen/4CBgP9hYF7/TUpH/0E5NP86Lyj/Nisk/zIv Kf8tPTr/KFRX/yVveP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ft8/+X8/f/ovb4/6X09v+a6+3/f9jf/1vAy/84pbX/HYye/xJ1hf8TXWn/G0hN/yc4 Nv8xMCr/OjEq/0M6NP9OSET/XVpZ/3FxcP+Njo7/rLCw/8vQ0P/j6ur/8fj4//X9/f/1/f3/8vr6//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H4+P/y+fn/9vz8//n9/f/3+fn/7Ozs/9LQ z/+sqaX/gn14/1xWUP9DPDX/Ny8o/zMsJP80LSX/Ni8n/zYvKP82Lyj/NzAp/zgxKf85Mir/OjIq/zoy Kv86Mir/OjIq/zkyKv84MSn/NzAp/zYvKP82Lyj/Ni8n/zQtJf8zLCT/Ny8o/0M8Nf9cVlD/gn14/6yp pf/S0M//7Ozs//f5+f/5/f3/9vz8//L5+f/x+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8vr6//X9/f/1/f3/8fj4/+Pq6v/L0ND/rLCw/42Ojv9xcXD/XVpZ/05IRP9DOjT/OjEq/zEw Kv8nODb/G0hN/xNdaf8SdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4ju9P+Z9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv8zlKL/F3iI/wxicP8OTlf/Fz5B/yUz Mf8zMSv/QDgx/1BHQf9hW1j/dHJx/4iJif+go6P/ur6//9LY2P/l7Oz/8Pj4//T8/P/z/Pz/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//L5+f/z+/v/9Pv7//P6+v/x9/b/7/Pz/+vt7P/i4uH/0tDP/7e0 sf+Sjon/a2Vf/0lCO/80LCT/KyMb/ysjG/8vKCH/Ni8o/zs0Lv9COzX/SUM8/1BJQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSUP/SUM8/0I7Nf87NC7/Ni8o/y8oIf8rIxv/KyMb/zQsJP9JQjv/a2Vf/5KO if+3tLH/0tDP/+Li4f/r7ez/7/Pz//H39v/z+vr/9Pv7//P7+//y+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//P8/P/0/Pz/8Pj4/+Xs7P/S2Nj/ur6//6Cjo/+IiYn/dHJx/2FbWP9QR0H/QDgx/zMx K/8lMzH/Fz5B/w5OV/8MYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4nu9P+Z9fn/pvn7/6r29v+f5+j/g8zP/16pr/84hI3/HWVw/xFQWf8RPkT/GDMz/yUu Kv81Miv/SEA6/2BYU/95dHH/kZCP/6enp/+6vb3/zdHR/9zi4v/o8PD/7/j4//L7+//y+/v/8fn5//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//T7+//4/v7/+v////j9/f/x9PT/5Obl/9TU0//BwL3/rKml/5KO if90bmn/Vk9I/z01Lf8tJR3/KCAZ/yojHP8yKyX/OzYw/0ZBO/9UT0r/ZF9a/3Nuaf9+eXT/hH97/4iD fv+Ig37/hH97/355dP9zbmn/ZF9a/1RPSv9GQTv/OzYw/zIrJf8qIxz/KCAZ/y0lHf89NS3/Vk9I/3Ru af+Sjon/rKml/8HAvf/U1NP/5Obl//H09P/4/f3/+v////j+/v/0+/v/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8fn5//L7+//y+/v/7/j4/+jw8P/c4uL/zdHR/7q9vf+np6f/kZCP/3l0cf9gWFP/SEA6/zUy K/8lLir/GDMz/xE+RP8RUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9P+Z9vn/pfr8/6n19v+g5eX/h8bH/2SeoP9Cdnn/KFVY/xw/Qv8YMTH/HSkm/ycq JP84Myz/UElC/3BpZP+RjYr/sK+t/8bHx//W2Nj/4OTl/+ft7f/s8/P/8Pj4//H6+v/x+fn/8Pn5//D4 +P/w+Pj/8Pj4/+/4+P/w+Pj/8fn5//b8/P/8//////////v8/P/u7ez/19XT/7q3tP+dmJX/gn14/2tl X/9WT0j/RDw0/zYuJv8uJh7/LSUe/zErJP85NC//RUE9/1VRTv9rZ2T/g4B9/5qWk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+alpP/g4B9/2tnZP9VUU7/RUE9/zk0L/8xKyT/LSUe/y4mHv82Lib/RDw0/1ZP SP9rZV//gn14/52Ylf+6t7T/19XT/+7t7P/7/Pz///////z////2/Pz/8fn5//D4+P/v+Pj/8Pj4//D4 +P/w+Pj/8Pn5//H5+f/x+vr/8Pj4/+zz8//n7e3/4OTl/9bY2P/Gx8f/sK+t/5GNiv9waWT/UElC/zgz LP8nKiT/HSkm/xgxMf8cP0L/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+Y9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ycyL/8hJSH/ISEb/yom H/86NC3/V1BJ/314c/+no6D/ysnI/+Li4v/t7/D/8fX1//D29v/v9vb/8Pj4//D5+f/w+fn/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8fn5//b9/f/8//////////n7+//m5+b/x8XD/6Cdmf96dXD/XFZQ/0lC O/89NS3/Ni4m/zMrI/8zKyT/NS8o/zs2Mf9FQj7/VFFP/2dmZP+CgYD/oZ+e/728u//T0dD/393c/+Xk 4v/l5OL/393c/9PR0P+9vLv/oZ+e/4KBgP9nZmT/VFFP/0VCPv87NjH/NS8o/zMrJP8zKyP/Ni4m/z01 Lf9JQjv/XFZQ/3p1cP+gnZn/x8XD/+bn5v/5+/v///////z////2/f3/8fn5//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D5+f/w+fn/8Pj4/+/29v/w9vb/8fX1/+3v8P/i4uL/ysnI/6ejoP99eHP/V1BJ/zo0 Lf8qJh//ISEb/yElIf8nMi//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y0pIf8lHRb/JBwT/ysj G/88NC3/W1VO/4aBff+0sa7/29vZ//P09P/8////+/////b8/P/x+fn/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//T6+v/3/Pz/9/r6/+7v7//Y19b/tLKv/4qFgf9hW1X/Qzw1/zQs JP8tJR3/LiYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/LiYe/y0l Hf80LCT/Qzw1/2FbVf+KhYH/tLKv/9jX1v/u7+//9/r6//f8/P/0+vr/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//H5+f/2/Pz/+/////z////z9PT/29vZ/7Sxrv+GgX3/W1VO/zw0 Lf8rIxv/JBwT/yUdFv8tKSH/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/y8kG/8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4mEgP+4tbP/4eDe//n6+f////////////r////1/Pz/8/v7//P7+//z+/v/8/v7//P7 +//z/Pz/9Pz8//T8/f/z+/v/8fj4/+/19f/s8PH/5ejo/9jZ2f/BwL//npuY/3Zxbf9RS0T/Ny8o/ysj G/8oIBn/LSUe/zUvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9aWFX/S0dD/z86NP81Lyj/LSUe/ygg Gf8rIxv/Ny8o/1FLRP92cW3/npuY/8HAv//Y2dn/5ejo/+zw8f/v9fX/8fj4//P7+//0/P3/9Pz8//P8 /P/z+/v/8/v7//P7+//z+/v/8/v7//X8/P/6///////////////5+vn/4eDe/7i1s/+JhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBv/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zAjGv8nGRD/JRkQ/ywi Gf88NS3/XFZQ/4mEgP+4tbL/4eDe//n6+v////////////3////4////9v////b////2////9v////b/ ///3////+P////n////3////8fn5/+ju7//c4eH/zdDQ/7u7u/+joqH/hYJ//2RfW/9HQTr/Mywk/ysj G/8qIxz/MSsk/zs2Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WlhV/0lFQf87NjH/MSsk/yoj HP8rIxv/Mywk/0dBOv9kX1v/hYJ//6Oiof+7u7v/zdDQ/9zh4f/o7u//8fn5//f////5////+P////f/ ///2////9v////b////2////9v////j////9///////////////5+vr/4eDe/7i1sv+JhID/XFZQ/zw1 Lf8sIhn/JRkQ/ycZEP8wIxr/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/y8kHP8nGhH/JRkQ/ywi Gv88NS3/XFZQ/4iEgP+3tbL/4ODe//j6+v////////////z////3////9v////b+///2/v//9v7///b/ ///3////+f////n////2////7fX1/93k5P/Jzs7/srW1/5ucnP+Eg4L/bGlm/1VQS/9BOjT/NC0l/y8o If8yKyX/OTQv/0VCPv9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+Fh4b/a2tp/1VTUf9FQj7/OTQv/zIr Jf8vKCH/NC0l/0E6NP9VUEv/bGlm/4SDgv+bnJz/srW1/8nOzv/d5OT/7fX1//b////5////+f////f/ ///2////9v7///b+///2/v//9v////f////8///////////////4+vr/4ODe/7e1sv+IhID/XFZQ/zw1 Lf8sIhr/JRkQ/ycaEf8vJBz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/y8mHv8nGxP/JRoS/ywi Gv87NC3/WVRO/4KAfP+usK3/1NjX/+vy8f/0/Pz/9f39//L5+f/u9vb/7fX1/+319f/t9fX/7fX1/+31 9f/v9/f/8fn5//L6+v/u9vX/4urp/87U1P+0uLj/mJqa/35/fv9paGf/V1RR/0dCPf88NS//Ni8n/zYv KP87NjD/RUE9/1RRT/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9UUU//RUE9/zs2 MP82Lyj/Ni8n/zw1L/9HQj3/V1RR/2loZ/9+f37/mJqa/7S4uP/O1NT/4urp/+729f/y+vr/8fn5/+/3 9//t9fX/7fX1/+319f/t9fX/7fX1/+729v/y+fn/9f39//T8/P/r8vH/1NjX/66wrf+CgHz/WVRO/zs0 Lf8sIhr/JRoS/ycbE/8vJh7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8nHBT/JhsT/ywj G/86Myv/VE9I/3h2cf+en5z/v8PB/9Ta2P/d4+L/3uTj/9vh4P/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je 3f/Z397/3OLh/9zi4f/Y3t3/zdLR/7i8u/+doJ//gYKB/2hoZv9WVFL/R0RA/z03Mv83MCn/Ni8o/zs0 Lv9GQTv/VVFO/2dmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9nZmT/VVFO/0ZB O/87NC7/Ni8o/zcwKf89NzL/R0RA/1ZUUv9oaGb/gYKB/52gn/+4vLv/zdLR/9je3f/c4uH/3OLh/9nf 3v/Y3t3/2N7d/9je3f/Y3t3/2N7d/9je3f/b4eD/3uTj/93j4v/U2tj/v8PB/56fnP94dnH/VE9I/zoz K/8sIxv/JhsT/yccFP8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8mHv8oHRX/Jx0U/y0k G/84MCn/TEZA/2hlX/+GhYH/oKGe/7CzsP+3urj/uLu5/7a5tv+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2 tP+0t7X/trm3/7e6t/+0t7T/qqyq/5iamP+CgoD/ampn/1ZUUv9IRUH/PTg0/zUvKf8zLCX/Ni8o/0I7 Nf9UT0r/a2dk/4KBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+CgYD/a2dk/1RP Sv9COzX/Ni8o/zMsJf81Lyn/PTg0/0hFQf9WVFL/ampn/4KCgP+Ympj/qqyq/7S3tP+3urf/trm3/7S3 tf+ztrT/s7a0/7O2tP+ztrT/s7a0/7O2tP+2ubb/uLu5/7e6uP+ws7D/oKGe/4aFgf9oZV//TEZA/zgw Kf8tJBv/Jx0U/ygdFf8vJh7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8pHhb/KR4W/y0k HP81Lib/Qzw1/1VRSv9pZmH/enl0/4WFgP+KioX/ioqG/4mJhP+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iH g/+IiIP/iomF/4qKhf+Ih4P/gYB8/3V0b/9mY1//VlNO/0hEQP8+OTT/NjAq/zApI/8wKSH/NzAp/0lD PP9kX1r/g4B9/6Gfnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hn57/g4B9/2Rf Wv9JQzz/NzAp/zApIf8wKSP/NjAq/z45NP9IRED/VlNO/2ZjX/91dG//gYB8/4iHg/+KioX/iomF/4iI g/+Ih4P/iIeD/4iHg/+Ih4P/iIeD/4iHg/+JiYT/ioqG/4qKhf+FhYD/enl0/2lmYf9VUUr/Qzw1/zUu Jv8tJBz/KR4W/ykeFv8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/y8nH/8qHxf/KyAY/y4l Hf8zKyP/OjMr/0M9Nv9OSEL/V1JM/1xYUv9fW1X/X1tV/19aVP9eWlT/XlpT/15aU/9eWlP/XlpT/15a U/9eWlT/X1tV/19bVf9eWlT/WlZQ/1RQSv9MR0H/RD84/z03Mf83MSv/MSoj/y0lHv8uJh//ODEp/1BJ Q/9zbmn/mpaT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpaT/3Nu af9QSUP/ODEp/y4mH/8tJR7/MSoj/zcxK/89NzH/RD84/0xHQf9UUEr/WlZQ/15aVP9fW1X/X1tV/15a VP9eWlP/XlpT/15aU/9eWlP/XlpT/15aVP9fWlT/X1tV/19bVf9cWFL/V1JM/05IQv9DPTb/OjMr/zMr I/8uJR3/KyAY/yofF/8vJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8rIBj/LCEZ/y4m Hf8xKSH/Mysj/zYvJ/85Mir/PDUu/z43MP8/ODD/Pzgw/z44MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43 MP8+NzD/Pjgw/z44MP8+NzD/PTYv/zs0Lf85Miv/Ny8o/zUtJv8yKyP/LSYe/yoiGv8tJR3/OTIq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTIq/y0lHf8qIhr/LSYe/zIrI/81LSb/Ny8o/zkyK/87NC3/PTYv/z43MP8+ODD/Pjgw/z43 MP8+NzD/Pjcw/z43MP8+NzD/Pjcw/z43MP8+ODD/Pzgw/z84MP8+NzD/PDUu/zkyKv82Lyf/Mysj/zEp If8uJh3/LCEZ/ysgGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCcf/y8nHv8vJh3/LyYd/y8mHP8vJRz/LiUc/y8lHP8vJRz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJRz/LyUc/y4lHP8vJRz/LyYc/y8mHf8vJh3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OTIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OTIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8mHf8vJh3/LyYc/y8lHP8uJRz/LyUc/y8l HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8lHP8vJRz/LiUc/y8lHP8vJhz/LyYd/y8mHf8vJx7/MCcf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wJx//LyYd/y4kGv8sIhf/KyAU/ysfE/8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/KyAT/ywhFf8tIhf/LiQZ/y8lG/8vJRv/KyIY/ykgFv8sIxv/OTIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OTIq/ywjG/8pIBb/KyIY/y8lG/8vJRv/LiQZ/y0iF/8sIRX/KyAT/yofEv8qHxL/Kh8S/yof Ev8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8qHxL/Kh8S/yofEv8rHxP/KyAU/ywiF/8uJBr/LyYd/zAn H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKB//LyYd/y4lGv8uIxf/LSEU/ywgE/8sIBL/LCAS/ywgEv8sIBL/LCAT/ywgE/8sIBP/LCAT/ywg E/8sIBL/LCAS/ywgEv8sIBL/LSET/y0iFf8uIxf/LyUZ/zAmG/8vJhv/LCIY/ykgFv8sIxv/OjIq/1hR S/+Dfnn/s6+t/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+t/4N+ ef9YUUv/OjIq/ywjG/8pIBb/LCIY/y8mG/8wJhv/LyUZ/y4jF/8tIhX/LSET/ywgEv8sIBL/LCAS/ywg Ev8sIBP/LCAT/ywgE/8sIBP/LCAT/ywgEv8sIBL/LCAS/ywgEv8sIBP/LSEU/y4jF/8uJRr/LyYd/zAo H/8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRn/LCIa/y8m Hv8wKCD/MCgf/y8nHv8vJh3/LyYd/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHf8vJx3/MCce/zAnH/8vJx7/KyMa/ykgGP8sIxv/OjIq/1hR Sv+Dfnn/s6+s/9zb2v/39/f////////////5////8vn5//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8vn5//n///////////////f39//c29r/s6+s/4N+ ef9YUUr/OjIq/ywjG/8pIBj/KyMa/y8nHv8wJx//MCce/y8nHf8vJh3/LyYc/y8mHP8vJhz/LyYc/y8m HP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYc/y8mHP8vJhz/LyYd/y8mHf8vJx7/MCgf/zAo IP8vJh7/LCIa/ywhGf8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIRj/LCIZ/y8m Hf8wKCH/Lykj/y4qJ/8uKyr/LSwt/y0sL/8sLDD/LCww/ywsMP8sLC//LCwv/ywsL/8sLC//LCwv/yws L/8sLC//LCww/ywsMP8sLC//LCwu/ywrLf8sKir/LCko/ywoJv8sJyP/KSMe/ycgGv8rJB3/OTEq/1VP SP9+eXT/q6il/9PR0P/s7e3/9/r6//n9/f/1+/v/8fj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/w+Pj/8Pj4//D4+P/w+Pj/8fj4//X7+//5/f3/9/r6/+zt7f/T0dD/q6il/355 dP9VT0j/OTEq/yskHf8nIRr/KSMe/ywnI/8tKCb/LCko/ywqKv8sKy3/LCwu/ywsL/8sLDD/LCww/yws L/8sLC//LCwv/ywsL/8sLC//LCwv/ywsL/8sLDD/LCww/ywsMP8tLC//LSwt/y4rKv8uKif/Lykj/zAo If8vJh3/LCIZ/ywhGP8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBf/LSEY/y8m Hf8vKSP/Lisr/ysuNv8oMUH/JjRL/yU2Uf8kNlT/JDZU/yQ2U/8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1 Uv8lNlL/JTZT/yU2U/8lNVL/JDRO/yMxSP8iLUD/Iio4/yInMf8jJSv/IiEj/yMgHv8pIx//NzAp/1BK Q/90bmn/mpeT/728u//W19b/5Obn/+vw8P/u9PT/8Pf3//L6+v/y+/v/8vr6//H5+f/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/x+fn/8vr6//L7+//y+vr/8Pf3/+709P/r8PD/5Obn/9bX1v+9vLv/mpeT/3Ru af9QSkP/NzAp/yokH/8lIR7/JCMk/yUnK/8lKTH/JCw4/yQvQf8kMkj/JTRO/yU1Uv8lNlP/JTZT/yU1 Uv8lNVL/JTVS/yU1Uv8lNVL/JTVS/yU1Uv8kNlP/JDZU/yQ2VP8lNlH/JjRL/ygxQf8rLjb/Lisr/y8p I/8vJh3/LSEY/ywgF/8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnH/8sIBb/LSEW/y8l HP8vKib/Ky41/yc0Sv8iOmD/HT9z/xtDfv8ZRIP/GUOD/xpDgf8aQn//GkJ//xpCf/8aQn//GkJ//xpC f/8aQoD/GkOB/xpDgf8aQn//GT95/xg5bf8WMl3/FCtN/xQlP/8WIjX/GR8q/x4fI/8mIyH/NC4p/0pD PP9mYFr/hIB9/6Ggnv+4ubn/y83O/9re3v/l6+z/7vX1//T8/P/1/v7/9Pz8//L6+v/w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+vr/9Pz8//X+/v/0/Pz/7vX1/+Xr7P/a3t7/y83O/7i5uf+hoJ7/hIB9/2Vg Wv9KQzz/NS8p/yglIv8hIiT/HiMr/xwnNv8aKkH/GS9O/xk1Xv8aO23/Gj95/xpCf/8aQoH/GkKB/xpC gP8aQn//GkJ//xpCf/8aQn//GkJ//xpCf/8aQ4H/GUOD/xlEg/8bQ37/HT9z/yI6YP8nNEr/Ky41/y8q Jv8vJRz/LSEW/ywgFv8wJx//PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8sIBX/LSAU/y8l G/8uKij/KTE//yI5Xv8aQn//FEqb/xBPrf8OUbT/DlG0/w9Qsf8PT6//D06u/w9Orv8PTq7/D06u/w9O rv8PT6//D1Cx/w9Qsv8PTq//Dkql/w1ClP8KOH3/CS9m/wknUf8NIkH/EyA0/xogKv8lJCX/Mi0o/0M8 Nf9XUEr/bGhk/4OBgP+YmZn/r7Gy/8XKyv/a4OD/6vHx//P7+//2////9f7+//L7+//w+Pj/7/j4/+/3 9//v9/f/7/j4//D4+P/y+/v/9f7+//b////z+/v/6vHx/9rg4P/Fysr/r7Gy/5iZmf+DgYD/bGhk/1ZQ Sv9CPDX/Mi0o/yclJf8eIyr/GCQ1/xMnQ/8QLFL/DjNn/w47fv8PRJT/D0ul/w9Or/8PULL/D0+x/w9P r/8PTq7/D06u/w9Orv8PTq7/D06u/w9Pr/8PULH/DlG0/w5RtP8QT63/FEqb/xpCf/8iOV7/KTE//y4q KP8vJRv/LSAU/ywgFf8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3COif9TX1n/PDsz/zAnHv8tHxT/LiAT/y8l G/8uKyv/JzJH/x49bv8USJf/DFG7/wdX0f8FWtv/BVrc/wVa2f8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ 1v8GWdf/Blra/wZb2v8GWdb/BlXL/wZNtv8GQpv/Bjd//wkvZv8NKVL/FCZA/xwlMv8mJir/MCwo/zw1 Lv9JQjv/V1NO/2hmZP97fHv/lJaW/7C0tP/L0NH/4ejo/+729v/z+/v/9Pz8//L6+v/w+Pj/8Pj4//D4 +P/w+Pj/8Pj4//D4+P/y+vr/9Pz8//P7+//u9vb/4ejo/8vQ0f+wtLT/lJaW/3t8e/9oZmT/V1NO/0lC O/88NS7/MCso/yUmKf8bJDL/EiVA/wsoUf8HLWX/BTZ//wVBm/8FTLb/BlXL/wZZ1v8GW9r/Blra/wZZ 1/8GWdb/BlnW/wZZ1v8GWdb/BlnW/wZZ1v8FWtn/BVrc/wVa2/8HV9H/DFG7/xRIl/8ePW7/JzJH/y4r K/8vJRv/LiAT/y0fFP8wJx7/PDsz/1NfWf9wjon/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eH/jby6/3CNif9TX1n/PDoz/zAnHv8tHxP/LiAS/y8l Gv8tKyz/JjJK/xw9df8RSKL/CFLK/wJY4/8AXO7/AF7x/wBe7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf 7f8AYO//AGDx/wBg8v8AX+7/Alzi/wdXzv8MULT/EkiX/xhBff8dO2b/IjRR/yYvPf8qKy//MCsn/zcw KP8+NzD/SEM+/1RST/9mZWT/fn9//5uenv+4vb3/0dfX/+Ho6P/q8fH/7vX1//D39//x+Pj/8/r6//T7 +//0+/v/8/r6//H4+P/w9/f/7vX1/+rx8f/h6Oj/0dfX/7i9vf+bnp7/fn9//2ZlZP9VUk//SUM+/0A5 MP84MCj/Lyon/yQnLv8aJTv/DyZN/wcqYv8CL3n/ADmU/wBFsf8AUcz/AVri/wFf7v8BYfL/AWHx/wFg 7/8BX+3/AV/t/wFf7f8BX+3/AV/t/wFf7f8AXu//AF7x/wBc7v8CWOP/CFLK/xFIov8cPXX/JjJK/y0r LP8vJRr/LiAS/y0fE/8wJx7/PDoz/1NfWf9wjYn/jby6/6Hh4f+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GNiP9TXlf/PDkx/zEmHP8tHhL/Lh8R/zAl Gv8tKiz/JjFK/xs5df8QQqL/B0vK/wFS5P8AV/H/AFv2/wBe9v8AYPX/AGL2/wBi9/8AYvf/AGL3/wBi 9v8AYfj/AGD5/wBg+v8AX/f/Bl/t/xJh3f8hYsn/MGOx/ztgmf8/WYH/PU1l/zc+Sv8yMTT/Lyol/zEp If81LSX/PDYv/0ZCP/9VU1H/a2tp/4WHhv+go6P/uL29/8vQ0f/a4OD/5evs/+709P/1+/v/+v////z/ ///8////+v////X7+//u9PT/5evs/9rg4P/L0NH/uL29/6Cjo/+FhoX/a2pp/1VTUf9HQz//Pzkw/zoy Jv82LSL/Lyol/yUnMf8aJ0X/EChc/wcsdv8BMo7/ADyo/wBIwv8AVNr/AF3s/wBi9/8AZPv/AGP6/wBi +P8AYvf/AGL3/wBi9/8AYvf/AGL2/wBg9f8AXvb/AFv2/wBX8f8BUuT/B0vK/xBCov8bOXX/JjFK/y0q LP8wJRr/Lh8R/y0eEv8xJhz/PDkx/1NeV/9xjYj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jbu4/3GMh/9UXVb/PTgw/zElG/8uHhH/Lx8R/zAl Gv8tKiv/Ji5I/xszcP8QOpv/B0DB/wFH2/8ATen/AFTw/wBa8/8AX/X/AGL3/wBj+P8AY/j/AGL3/wBi 9/8AYPj/AF75/wBd+f8AXvf/C2Hx/yBr5/88eNv/VoLL/2eGt/9qfp7/YGp9/05RWf88Ojr/MCok/ywk G/8tJRz/Mywl/zw3Mf9JRUH/WlhV/25ubP+Fh4b/m56e/7CztP/FyMj/2dzc/+vs7P/4+fn///////// //////////////j5+f/r7Oz/2dzc/8XIyP+ws7T/m56e/4WHhv9ubmz/WVdV/0lFQf8+OTL/OTEm/zct Hv80Kh3/Lykk/yYoNf8bKE//ECpt/wcui/8BNKT/AD66/wBJz/8AVeH/AF3v/wBi9/8AZPr/AGP6/wBi +P8AYvf/AGL3/wBj+P8AY/j/AGL3/wBf9f8AWvP/AFTw/wBN6f8BR9v/B0DB/xA6m/8bM3D/Ji5I/y0q K/8wJRr/Lx8R/y4eEf8xJRv/PTgw/1RdVv9xjIf/jbu4/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9/v/o/r9/6j19v+h4eD/jby5/3GMiP9UXVf/PTkx/zElHP8uHxL/LiAS/zAl Gv8tKSr/JitE/xstaP8QMI//BzWy/wE7y/8AQ9v/AEzl/wBW6/8AXfD/AGHz/wBi9f8AYvX/AGH0/wBh 8/8AX/T/AF30/wBc9P8AXvP/D2bw/y537v9Wjur/e6Hi/5Sr1P+Worr/hImV/2dna/9KRUT/NC4o/ywk G/8qIhn/Lice/zYvKP8/OjT/S0dD/1pYVf9ra2n/fn9//5SWlv+usLD/ysvL/+Pk5P/29vb///////// //////////////b29v/j5OT/ysvL/66wsP+Ulpb/fn9//2traf9ZWFX/S0dD/z86NP84MSn/NSwg/zQq G/8zKRz/Likm/yYpPf8bK1z/EC1//wcyoP8BOLj/AEHL/wBL2v8AVeX/AF3u/wBh8/8AYvX/AGL1/wBh 9P8AYfP/AGH0/wBi9P8AYvX/AGHz/wBd8P8AVuv/AEzl/wBD2/8BO8v/BzWy/xAwj/8bLWj/JitE/y0p Kv8wJRr/LiAS/y4fEv8xJRz/PTkx/1RdV/9xjIj/jby5/6Hh4P+o9fb/o/r9/5f3+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/17g 7/9s5O//eejw/4jv9f+X9vv/o/r9/6j19v+h4uH/jL27/2+Pi/9RYVz/Oj03/y8qIv8sIxf/LSMW/y8m HP8tKCn/JihA/xwoYP8RKYP/Byyj/wEyu/8AO83/AEba/wBS5P8AW+v/AGDw/wBi8v8AYfL/AGHx/wBg 8P8AYPD/AF/w/wBf8f8GZPH/GW/w/z+G8/9uovX/mrz0/7fI6v+5wNL/o6Ss/4B9f/9bVlT/QDo0/zMr JP8uJh3/LyYe/zMrJP84MSv/Pzo0/0lFQf9VU1H/ZmVk/3t8e/+YmZn/uLm5/9bX1v/s7e3/+fr5//// ////////+fr5/+zt7f/W19b/uLm5/5iZmf97fHv/ZmVk/1VTUf9JRUH/Pzo0/zgxK/8zKyT/MSgf/zEo Hv8vKCP/LCox/yQrSv8aLmz/DzKR/wY2sv8BPMn/AETY/wBN4v8AVuj/AFzt/wBg8P8AYfL/AGHx/wBg 8f8AYPD/AGHx/wBi8v8AYvL/AGDw/wBb6/8AUuT/AEba/wA7zf8BMrv/Byyj/xEpg/8cKGD/JihA/y0o Kf8vJhz/LSMW/ywjF/8vKiL/Oj03/1FhXP9vj4v/jL27/6Hi4f+o9fb/o/r9/5f2+/+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9D1Or/UNvu/13g 7/9r5O//eOjw/4fv9f+X9vr/pPr8/6j19v+h4+P/isHA/2uVlP9Mamj/M0dE/ygzL/8mKiL/Kigd/y0p IP8tKSn/Jic8/xwmWP8RJXf/ByiV/wEtrf8AN8H/AETR/wBQ3/8AWun/AGDw/wBh8v8AYfL/AGDx/wJh 8P8GZPD/C2fx/xNs8f8hdPL/N4Lz/1ya+P+Jtf3/sc7+/8za9v/O0+L/ubnA/5iVl/90b2//WFJP/0dA Ov88NS3/Ni4m/zQsI/80LCT/NzAp/z04Mv9HQz//VVJP/2hmZP+DgYD/oaCe/728u//T0dD/393c/+Xj 4v/l4+L/393c/9PR0P+9vLv/oaCe/4OBgP9oZmT/VVJP/0dDP/8+OTL/ODEp/zMrJP8vKCL/LSYk/ysn Kv8qKTX/JixG/x8vYP8WMoH/DTek/wU8wv8BQtb/AEni/wBR6f8AWOz/AF3u/wBg8P8AYfH/AGHx/wBg 8P8AYPD/AGHx/wBi8v8AYvL/AGDw/wBa6f8AUN//AETR/wA3wf8BLa3/ByiV/xEld/8cJlj/Jic8/y0p Kf8tKSD/Kigd/yYqIv8oMy//M0dE/0xqaP9rlZT/isHA/6Hj4/+o9fb/pPr8/5j2+v+I7/X/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/T9vt/1zg 7/9p5O//dujw/4bu9P+X9vn/pPn7/6n19v+g5eX/h8bH/2WeoP9Cdnn/KFVY/x1AQv8dNTL/JC8o/yss Jf8sKSn/JiY4/xwkT/8RJGr/ByaF/wEsnf8ANrP/AEPI/wBQ2v8AWuf/AGDw/wBh8/8AYPP/AGDx/wVj 8P8RavH/IXTy/zWB8/9Lj/T/ZJ72/4Sz+v+myf//xdv//9jk+//Z3+z/ysvS/7Gvs/+VkpP/fHd2/2hi Xv9WTkf/Rj40/zsxJv80Kx//Myof/zYuJf89NzD/SEM+/1dTTv9saGT/hIB9/5qXk/+rqKX/tbGu/7m2 s/+5trP/tbGu/6uopf+al5P/hIB9/2xoZP9XU07/SUM+/z85MP85MSb/NSwg/zEoH/8tJiT/KSYv/yUo Pv8iK1H/HS5m/xczf/8QOJv/Cj63/wREz/8BSt//AE/o/wBV7f8AWu7/AF7v/wBg8P8AYfH/AGHw/wBg 8P8AYPD/AGHx/wBi8/8AYvP/AGDw/wBa5/8AUNr/AEPI/wA2s/8BLJ3/ByaF/xEkav8cJE//JiY4/ywp Kf8rLCX/JC8o/x01Mv8dQEL/KFVY/0J2ef9knqD/h8bH/6Dl5f+p9fb/pfr8/5n2+f+I7/T/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zXK4v9C1Or/Ttvt/1vg 7/9o4+//defw/4Xu9P+X9fj/pPn7/6n29v+f5+j/g8zP/16pr/84hI3/HWVw/xJQWf8VQkT/Hjc0/ygw K/8rKin/JiYz/x0kRf8RJFz/ByZ1/wEsjP8ANqX/AEO9/wBQ1P8AWub/AF/w/wBg8/8AX/P/AF/x/wdl 8P8ccfL/OYPz/1mX9f95q/f/k7z5/6zL/P/C2f//0+T//93o/f/e5fP/1trk/8jJ0f+2tbr/op+i/4yH h/9ya2f/WFBI/0M5Lv82LB//MSca/zIpHf83Lyb/Pzgw/0lCO/9WUEr/ZWBa/3Ruaf9+eXT/hH97/4eC fv+Hgn7/hH97/355dP90bmn/ZWBa/1ZQSv9JQjv/QDkw/zoyJv83LR7/NCob/zEoHv8rJyr/JSg+/x8q V/8ZLnL/EzKK/w43oP8KPrb/BkbK/wJM2v8AUub/AFbs/wBa7/8AXO//AF/v/wBg8P8AYfD/AGDw/wBg 8P8AYPD/AGHx/wBi8/8AYvT/AGDw/wBa5v8AUNT/AEO9/wA2pf8BLIz/ByZ1/xEkXP8dJEX/JiYz/ysq Kf8oMCv/Hjc0/xVCRP8SUFn/HWVw/ziEjf9eqa//g8zP/5/n6P+q9vb/pvn7/5n1+f+J7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/xCYsP8bqcL/KLvU/zbK4v9C1Or/UNvu/13g 7/9q5O//d+jw/4fu8/+Y9Pj/pfj6/6j19v+d6ev/gNLX/1q0vv80lKL/F3iI/w1icP8RUFf/HEFB/yc1 Mf8rLCr/JiYu/x0jO/8RJE7/Bydl/wEtfP8AN5b/AESz/wBQzv8AWuT/AF/w/wBf9P8AXvT/AF/x/wpm 8f8ld/L/S4/0/3Wp9/+cwfn/uNL7/8re/f/V5f7/3On+/97q/f/f6Pj/3eTz/9fd6//N0d7/vsDL/6am rf+GhIb/ZWBe/0hBO/82LST/LiUb/y4lHP8yKiH/NzAo/zw1Lv9CPDX/SkM8/1BKQ/9VT0j/WFJL/1pT Tf9aU03/WFJL/1VPSP9QSkP/SkM8/0I8Nf88NS7/ODAo/zYtIv80Kh3/Mykc/y8oI/8qKTX/IitR/xku cv8RMZL/Cjar/wY9v/8ERc7/Ak3a/wFU4/8AWer/AFzu/wBe8P8AX/D/AF/w/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvT/AGDw/wBa5P8AUM7/AESz/wA3lv8BLXz/Bydl/xEkTv8dIzv/JiYu/yss Kv8nNTH/HEFB/xFQV/8NYnD/F3iI/zOUov9atL7/gNLX/53p6/+o9fb/pfj6/5n0+P+I7vT/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w+YsP8bqcL/KLvU/zbK4v9E1er/U9zu/2Ph 7/9y5fD/gOnx/43u9P+b9Pf/pff5/6b19v+a6+3/f9jf/1u/y/83pbX/HYye/xN1hf8WX2n/H0tN/yg5 Nv8sLSr/JyYq/x4jMv8UJEL/CihW/wQtbP8BN4n/AESq/wBRyf8AW+L/AF/w/wBf9f8AXfT/AF7y/wpm 8f8oefL/UpP1/4Cv9/+oyfr/xNr7/9Tk/P/c6f3/3ur9/97q/P/e6fz/3un9/9vm/P/T3vb/xM/m/6y0 yf+KkKD/Z2h0/0dGTP8yLzL/KSUm/ygjIv8rJiT/Lion/zArKP8yLSj/NS8p/zcwKf85MSr/OjIq/zoy Kv86Mir/OjIq/zkxKv83MCn/NS8p/zItKP8wKyj/Lyon/y8qJf8vKST/Likm/ywqMf8mLEb/HS5m/xMy iv8KNqv/BDzF/wFC1v8ASuD/AFPm/wBZ6v8AXu7/AGDw/wBg8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9P8AYvX/AGDw/wBb4v8AUcn/AESq/wE3if8ELWz/CihW/xQkQv8eIzL/JyYq/ywt Kv8oOTb/H0tN/xZfaf8TdYX/HYye/ziltf9bwMv/f9jf/5rr7f+l9Pb/ovb4/5fz9/+H7fP/eejw/2zk 7/9e4O//UNvu/0PU6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8AgZn/Bomh/w6XsP8ZqcL/JrvT/zTK4v9G1er/Wt3v/2/j 8f+C6PL/kOzz/5rw9f+h9Pf/o/X4/6Dz9f+U6+//ft3l/2PM1/9Ht8f/MqGy/yiKmf8ncHj/KlVX/y4+ Ov8uLSn/KSQk/yEhKf8YIzb/ECdI/wsuX/8HOH7/BESj/wJRxv8BW+L/AGDx/wBg9/8AXvX/AF/y/wlm 8f8kdvL/SY30/3Gm9v+Xvvn/ss/6/8Xb+//T4/z/2+j9/97q/f/e6v7/2Oj//8/i///B2P//r8fz/5at 2f94i7T/WGaL/zxGZv8qMEv/ISY8/x8jNP8hJDH/JCYu/yUmKf8nJST/KSQg/yokHf8sIxr/LSMY/y0j F/8tIxf/LSMY/ywjGv8qJB3/KSQg/yclJP8lJin/JScu/yUnMf8mKDX/Jik9/yQrSv8fL2D/FzN//w83 oP8HPb//AkLW/wBJ4/8AUOr/AFft/wBd7v8AYPD/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvf/AGHx/wFb4v8CUcb/BESj/wc4fv8LLl//ECdI/xgjNv8hISn/KSQk/y4t Kf8uPjr/KlVX/ydweP8oipn/MqGy/0i3x/9kzNj/gN7l/5Xr7/+d8vX/m/T3/5Lx9f+F7fP/eejw/23k 7/9f4O//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/Bomh/w2XsP8WqMH/I7rT/zLJ4f9H1er/Yt7w/37m 8v+W6/T/pu/1/6vy9v+o9Pf/ofP2/5fw9P+M6/D/f+Pq/2/Z4/9fy9f/UrnG/0ihrP9Bgof/O2Bg/zdC Pv8xLSf/KyIf/yUfIP8fISr/GSc6/xQuUf8POHP/CkWc/wVSxP8CXOP/AGH0/wBh+f8AYPf/AGDz/wdk 8f8acPH/NIDz/1KT9f9wpvb/i7b4/6XH+f++1vv/0eL8/9zp/f/b6P7/zeH//7fV//+exP//hrD2/2+Y 4v9We8X/P16k/yxEhf8eMm3/Fyhc/xYlT/8XJUT/GSU7/xskMf8eIij/IiEg/yYgGf8pHxT/Kh4R/yse D/8rHg//Kh4R/ykfFP8mIBn/IiEg/x4iKP8bJDH/GiU7/xonRf8aKFD/Gytd/xoubP8WMoH/ETib/ws+ tv8FRc7/AUrg/wBQ6v8AVu7/AFvw/wBe8P8AYfH/AGLx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/n/AGH0/wJc4/8FUsT/CkWc/w84c/8ULlH/GSc6/x8hKv8lHyD/KyIf/zEt J/83Qj7/O2Bg/0GCh/9Ioaz/UrnG/2HL1/9z2eP/g+Tr/4/r8P+T8PT/kvH1/4zv9P+D7PL/eejw/27l 7/9g4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6V/wB+lf8AgZn/BYmh/wyXsP8VqMH/IrrT/zPK4f9M1uv/beDx/5Dp 9P+t7/b/vfP4/731+P+x9Pf/oPH2/5Du8/+G6vD/gejv/37l7f963ub/dNDY/2q3vf9dlJX/Tmxq/z9I Qv80Lif/LSIb/ykeGf8mISD/Iicv/x0uRv8XOGn/D0WV/wlSwP8DXOL/AGH0/wBi+v8AYfj/AGDz/wRj 8f8OafH/HHLx/y588/9DifT/W5n1/32u9/+ixfn/wtn7/9Xl/P/T5P3/vNf+/5rC/v90qvv/VpP0/0B+ 5v8waNP/I1O8/xlBpv8SNJL/Dix//wwobf8NJ1z/DyZN/xMkP/8YIzP/HyIn/yYiHv8rIRf/LSET/y8h Ef8vIRH/LSET/yshF/8mIh7/HyIn/xgjM/8TJD//DyZN/w4oXf8PKm7/Dy1//w8ykf8NN6T/Cj63/wZG yv8DTdr/AVPm/wBX7f8AW/D/AF3w/wBf8P8AYfH/AGHx/wBh8f8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHz/wBj+P8AY/r/AGL0/wNc4v8JUsD/D0WV/xc4af8dLkb/Iicv/yYhIP8pHhn/LSIb/zQu J/8/SEL/TWxq/1yTlf9qt73/ddDY/33e5v+C5u3/hunw/4jr8f+I7fL/h+3z/4Tt8v9/6/H/eOjw/27l 7/9h4e//Utzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/Bomh/w6XsP8YqcL/JrvU/zrL4v9W2Oz/e+Py/6Ls 9v/B8vj/0fb6/833+f+69Pj/ovD1/47s8/+F6/H/hu3z/43v9f+T7vL/k+Pm/4jKzP90pKP/XHh0/0VP Sf81Miz/LSQc/ysgFv8rIhr/Kicm/yYtPP8eN2D/FUSM/wtQuP8EWtz/AGDv/wBh9v8AYfb/AGDy/wJh 8P8EY/D/B2Xw/w5o8f8acPL/MH7z/1aW9f+Fs/j/r836/8jc/P/F2/z/p8n7/3yu+f9Okfb/K3jw/xhm 6P8PV93/C0rR/wk/wv8HN7L/BTGf/wQti/8FK3X/Byli/wsoUv8TJ0P/HCc2/yUnLP8sJyT/MCcf/zEn HP8xJxz/MCcf/ywnJP8lJyz/HCc2/xMnQ/8LKFL/Bypi/wUsdv8FLov/BjKg/wY2sv8FPML/BETP/wNM 2v8BVOP/AFnq/wBd7v8AXvD/AF/w/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGHy/wBi9v8AYvb/AGDv/wRa3P8LULj/FUSM/x43YP8mLTz/Kicm/ysiGv8rIBb/LSQc/zUy LP9FT0n/XHh0/3Sko/+Iysz/k+Pm/5Tu8v+Q8PX/ie3z/4Lq8f9/6vH/furx/33q8f966fD/defw/2zk 7/9g4e//Udzu/0PV6v82yuL/KLvU/xupwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH2V/wB9lf8BgZn/CImh/xOZsP8iq8P/NL7V/0rP5P9n3O7/jOb0/7Hv +P/P9fr/3vj7/9j4+v/D9fj/qvH1/5Xt8/+M7PP/kfH2/5v3+/+k+Pr/pe/w/5jX1/9/sK//YYOB/0VZ Vv8yOzb/Kisk/yklGv8sJRr/Ligi/yotNP8iNVb/GECA/w1Mq/8FVc7/AFvj/wBe7f8AX+//AF/v/wBg 7/8AX/D/AF7w/wBe8P8DYvD/Fm7x/zuF8/9rovb/lr35/7DO+v+tzPr/j7r5/2Ke9/8zgfT/EWnv/wFa 6/8AT+b/AEff/wBC1v8BPMn/ADi4/wA0o/8AMY3/ATB5/wYuaP8OLln/GC5N/yEuQv8oLjr/LC41/y4u M/8uLjP/LC41/yguOv8hLkL/GC5N/w4uWf8GLmj/ATB5/wAyjf8ANKP/ADi4/wE8yf8BQtb/AUrf/wBS 5v8AWer/AF7u/wBg8P8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg 8P8AYO//AF/v/wBf7/8AXu3/AFvj/wVVzv8NTKv/GECA/yI1Vv8qLTT/Ligi/ywlGv8pJRr/Kisk/zI7 Nv9FWVb/YoOB/4Cwr/+Z19f/pe/w/6P4+v+Z9vr/i/D2/3/q8f946PD/dufw/3Xn8P9z5u//b+Xv/2fi 7/9c3+//T9vt/0LU6v81yuL/KbvU/xyqwv8QmLD/Bomh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB8lP8Bf5f/DImg/x6asP80rsT/TcTX/2fV5/+D4vH/ouv3/8Hy +v/Z9/v/5Pn8/9/5+//O9vn/uPL3/6Xv9f+e8PX/ofX5/6n7/f+v/f7/rfX1/53e3v9/ubn/XY6P/z1m Z/8oSEn/ITY0/yMtJv8pKiD/Lioi/ywsL/8kMkv/GTpw/w5El/8FTLj/AFLN/wBX2/8AW+T/AF7q/wBg 7v8AX/H/AFzx/wBa8f8AXPD/DmXx/y158v9TkfX/dqj3/4y2+P+Jtfj/cKX3/0yO9f8mdfL/C2Lw/wBW 7f8AT+v/AEvo/wBH4v8ARNj/AEDK/wA+uP8AO6b/ADqV/wQ4hv8LOHr/Ezhv/xo4Zv8gOGD/Izhb/yQ4 Wf8kOFn/Izhb/yA4YP8aOGb/Ezhv/ws4ev8EOIb/ADqV/wA7pv8APbj/AEDK/wBE2P8ASeL/AE/o/wBW 7P8AXO7/AGDw/wBi8f8AYvH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYfH/AGHy/wBh 8f8AYO7/AF7q/wBb5P8AV9v/AFLN/wVMuP8ORJf/GTpw/yQyS/8sLC//Lioi/ykqIP8jLSb/ITY0/yhI Sf8+Zmf/X4+P/4K6uv+f397/rPX1/6r8/f+d+fz/jPH3/33q8f915/D/cOXv/2zk7v9p4+7/ZeHu/13f 7f9V3e7/S9nt/0HU6v82yuL/KrzU/x2qwv8QmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Bfpb/EYig/yqbsf9Ks8b/a8rb/4nd6/+j6vX/u/H6/9D2 /P/f+Pz/5/r8/+P5/P/Y9/r/yfX5/7zz9/+18/f/tfj7/7f9/v+3/v7/r/b2/5rh4v95wMP/U5qf/zF0 fP8cWF//FkVJ/xs4Nv8kMSr/LC0m/ywsLf8lLkH/GjNe/w46f/8FQZz/AEiz/wBPxv8AVtb/AFvj/wBf 7f8AYPL/AF7z/wBc8v8AXPD/CmLw/x9v8f85gfP/UZH1/2Cb9f9emvX/TY/1/zR+8/8abfH/B2Dw/wBY 7v8AU+3/AFHs/wBP6P8ATeL/AEvY/wBJzP8AR7//AEaz/wNFqf8HRaD/DUWY/xJFkv8WRY3/GEWK/xlF if8ZRYn/GEWK/xZFjf8SRZL/DUWY/wdFoP8DRan/AEaz/wBHv/8ASMz/AEvY/wBN4v8AUen/AFXt/wBa 7/8AXvD/AGDx/wBh8f8AYfH/AGHx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfL/AGLz/wBi 8v8AYO3/AFvj/wBV1v8AT8b/AEiz/wVBnP8OOn//GjNe/yUuQf8sLC3/LC0m/yQxKv8bODb/FkVJ/xxY X/8zdXz/V5qg/37BxP+e4uP/rfb2/6z8/f+f+fz/jfH2/33q8f9y5u//auPu/2Th7f9e3u3/WNzs/1La 7P9M2e3/Rtft/z/T6v82y+L/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8Cfpf/FYqh/zefs/9guMn/idLe/6zl7//D8fj/0/f8/975 /f/k+fz/5/n8/+b5/P/h+fv/2vj7/9P3+v/M9/r/yfr8/8X9/v+9/f3/r/X2/5bj5f9zx83/TKWv/ymF kv8Tanj/DlZg/xVFSf8gOTb/KjAr/ysrK/8kKjf/GixN/w4wZv8FNoD/AD2X/wBGr/8AUMf/AFjc/wBe 6/8AYfL/AGD0/wBf8/8AXvH/BWHw/xFp8f8fcvL/LHvy/zSA8/8zf/P/Knny/xxx8v8OZ/H/BGDw/wBc 7/8AWe//AFju/wBX7P8AVuj/AFTj/wBT3P8AUtX/AFLP/wJRyf8EUcT/B1HA/wpRvf8MUbr/DVG5/w1R uP8NUbj/DVG5/wxRuv8KUb3/B1HA/wRRxP8CUcn/AFLP/wBS1f8AU9z/AFTj/wBW6P8AWOz/AFru/wBc 7/8AX/D/AGDw/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGL0/wBi 8v8AX+v/AFjc/wBPx/8ARq//AD2X/wU2gP8OMGb/GixN/yQqN/8rKyv/KjAr/yA5Nv8VRUn/DlZg/xNq eP8rhZL/UKaw/3jHzf+Z5Ob/qvX1/6r6+/+e9/r/jvH2/33q8f9x5e//ZuHu/1ze7P9T2uv/S9fq/0bW 6v9D1uz/QNXs/zzS6f81yuL/K7zU/x6qwv8RmLD/B4mh/wGBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB/l/8HhJv/H5Cm/0WmuP90v83/otni/8fs8v/b9/v/5fv+/+f7 /v/n+v3/5/n8/+j6/P/o+vz/6Pr8/+X6/P/f+vz/2fz9/9D+/v/E/Pz/svX2/5fl6f9zztb/TLK//yqW p/8UfY//D2d1/xVTWv8gQUH/KTQw/ysqKv8kJi//GiY9/w8pUf8GLmf/ATR+/wA+m/8ASrn/AFTU/wBc 5/8AYPH/AGH0/wBg8/8AYPH/AmHw/wZj8P8KZvH/D2nx/xJr8f8Ra/H/Dmnx/wpm8f8FY/D/AWHw/wBf 8P8AXu//AF3v/wBd7v8AXO3/AFzr/wBc6f8AW+b/AFvk/wFb4/8BW+H/Alvg/wNb3/8EW97/BFvd/wVb 3f8FW93/BFvd/wRb3v8DW9//Alvg/wFb4f8BW+P/AFvk/wBb5v8AXOn/AFzr/wBc7f8AXe7/AF7v/wBf 7/8AX/D/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYfP/AGH0/wBg 8f8AXOf/AFTU/wBKuf8APpv/ATR+/wYuZ/8PKVH/GiY9/yQmL/8rKir/KTQw/yBBQf8VU1r/D2d1/xR9 j/8rlqf/TrK//3TO1v+V5ej/pfP0/6b3+f+c9fj/jfD1/33q8f9w5e//Y+Dt/1bb7P9K1+r/QdPp/zzS 6f860+r/OdPr/zjQ6P8yyeH/KbvU/x2qwv8QmLD/Bomh/wCBmf8AfZX/AH2V/wB/l/8AgJj/AICY/wCA mP8Afpf/AH+X/wOBmf8Fgpr/CYSb/xGIn/8gkKX/Op2w/2Cxwf+MydT/tt/m/9fw9f/o+fz/7fz//+z8 /v/p+v3/6Pn8/+r6/P/s+v3/7vv9/+78/f/q/P3/4/39/9r+/v/M/Pz/uvb3/6Hp7f9/19//WsHO/zqp uv8lkqT/HXqI/x9haP8mSUr/LDYy/yspJ/8lIyf/HSIw/xMkQP8LKVP/Bi9s/wQ5i/8CRK3/AU/N/wBX 4/8AXO//AF7z/wBf8v8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPH/AGDx/wBg 8f8AYPH/AGDx/wBg8f8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8f8AYPH/AGDx/wBg8f8AX/P/AF70/wBc 7/8AV+P/AU/M/wJErf8EOYv/Bi9r/wspU/8TJED/HCIw/yUjJ/8rKSf/LDYy/ydKSv8gYWj/HnqI/ySS o/84qbr/VsDN/3bW3v+R5+v/n/L0/6D19/+Y8/f/i+/0/33p8f9w5e//YuDt/1Pa6/9G1er/PNHo/zbQ 6P8z0On/MtDp/zDN5v8sxt//I7nS/xmowf8Ol6//BYmh/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH2V/waAmP8Rhp3/H42j/zGXq/9Ho7T/YbHA/4LCzv+l1N3/xubs/97z9v/r+vz/7/z+/+z7 /v/p+v3/6Pn8/+r6/P/u+/3/8fz9//H8/f/v/f3/6f3+/+L+/v/W/Pz/x/j4/7Hu8v+U4un/dNLd/1e/ zf9Cqrj/No+a/zJwdf8wUVD/Lzcy/ywnIv8mHx7/IB4k/xkhMf8UJ0T/Dyxc/wo1fv8GP6P/A0nG/wFQ 4P8AVe3/AFjy/wBa8v8AW/D/AFzw/wBc8P8AXPD/AFzw/wBb8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHx/wBh8f8AYfH/AGLy/wBi8/8AYvT/AGL1/wBi9f8AYvb/AGL2/wBi9/8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvf/AGL2/wBi9v8AYvX/AGL1/wBi9P8AYvP/AGLy/wBh8f8AYfH/AGHx/wBh 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBh8v8AYfP/AGHz/wBf8/8AXfT/AFr0/wBW 7v8BUOD/A0jG/wY/o/8KNX7/Dyxc/xQnRP8ZITH/IB4k/yYfHv8sJyL/MDcy/zJRUP80cHX/OY+a/0Gp uP9Rvsz/ZtDb/3ze5v+N6O7/lu/z/5fy9f+R8fX/h+7z/3zp8f9x5e//Y+Dt/1Pa7P9F1er/OdDo/zLO 5/8tzef/Kszn/yfJ5P8iwtz/G7XQ/xKlv/8Lla7/BIih/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wqBmf8di6H/N5ms/1Wpuf90ucb/jsfR/6fU3f++4ef/0uzx/+H0+P/p+fz/6/r9/+r6 /f/o+fz/6Pn8/+r6/P/t+/3/8Pz9//H8/f/w/P3/7f3+/+j9/v/g/P3/1Pn6/8P09v+t7fL/k+Pr/3vV 3v9mwcv/VqSr/0l/gf8+WVf/NTk0/y0lH/8oHRj/JB0b/yEhJv8dJjf/GCtP/xIycv8MOpr/BkG//wJI 2v8ATen/AFLv/wBW8P8AWe//AFvw/wBc8P8AXPD/AFzw/wBc8P8AXPD/AF3w/wBe8P8AX/D/AGDw/wBg 8P8AYfD/AGHw/wBh8f8AYfH/AGHy/wBh8/8AYvP/AGL0/wBi9f8AYvX/AGL1/wBi9v8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvb/AGL1/wBi9f8AYvX/AGL0/wBi8/8AYfP/AGHy/wBh8f8AYfH/AGHw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPH/AGHy/wBi8/8AYvT/AGH0/wBe9P8AWvT/AFXx/wBP 6v8CSNr/BkG//ww5mv8SMnL/GCtP/x0mN/8hISb/JB0b/ygdGP8tJR//NTk0/0BaV/9NgIL/WaSr/2XB yv9v093/et/o/4Pm7f+J6vD/jO3y/4zv9P+J7vP/g+zy/3vp8f9x5e//ZOHu/1Xb7P9G1er/OdDo/zDN 5/8oy+b/Isnk/xzE4f8Wvdn/EbHN/wuivf8GlK3/A4ig/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeZL/AH2W/w6FnP8pk6f/TqW2/3e6x/+dztf/t9zi/8jl6v/T7PD/2/H1/+D1+f/l+Pv/5/n8/+f5 /P/n+fz/5/n8/+n6/P/s+/3/7vv9/+/8/f/v/P3/7v39/+39/f/p/P3/4fv7/9X4+v/F9vn/svL2/57p 7f+K19v/dri6/2GPj/9NZWH/PEA6/zAqI/8rIBj/KR8X/ygjH/8mJy7/IStF/xkvZ/8QNY7/CDq0/wJA 0P8AR+H/AE3p/wBU7P8AWe7/AF3v/wBf8f8AX/H/AF/w/wBf8P8AX/D/AF/w/wBf8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBh8f8AYfH/AGHx/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh 8v8AYfL/AGHy/wBh8v8AYfL/AGHy/wBh8v8AYfL/AGHx/wBh8f8AYfH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHx/wBi8v8AYvL/AGDx/wBc7/8AVu7/AE/q/wBH 4f8CQdD/CDq0/xA1jv8ZL2f/IStF/yYnLv8oIx//KR8X/ysgGP8wKiP/PUA6/09lYf9lkI//eLi7/4bW 2/+M5uv/jOzy/4ns8/+F6/H/g+vx/4Hr8v+A6/L/furx/3no8P9w5e//ZOHu/1bb7P9H1ur/OtDo/y7M 5v8kyeT/GsXi/xLA3v8Mudb/B63K/wSgu/8Dkqz/AYeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8CgZn/C4Wc/x2Oo/88nrD/ZbLA/5PJ0v+73eP/1Oru/9/x9P/i9Pf/4fX4/+H1+f/i9/r/5Pj7/+X4 /P/m+fz/5/n8/+n6/P/r+vz/7Pv9/+77/f/u/P3/7/z9//D8/f/u/P3/6vz8/+L7/f/X/f7/yv3+/7r3 +P+n5+j/kMnJ/3agnv9cdXH/RU9J/zY3MP8wKiH/LiYb/y4nHv8tKSj/Jyo7/x4sWv8UMH//DDSj/wY7 wP8EQ9L/Bk3e/wlY5f8LYer/DGbv/wpn8f8HZvH/BGPx/wFh8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYO//AGDu/wBg7f8AX+v/AFzn/wBX4/8AUOD/AEja/wJB 0P8FOr//DDWk/xUwgP8fLVv/Jyo7/y0pKP8uJx7/LiYb/zAqIf82NzD/RU9J/111cf94oZ7/j8nJ/57m 5/+g8/b/mfX5/47x9v+D6/L/fOnw/3no8P946PD/d+jw/3Tm7/9s5O//YeDt/1Tb7P9H1ur/OtDo/y3M 5v8hyOT/FcPh/wu93P8EtdT/AarI/wCduv8Akav/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8olKj/MZir/0Cgsv9crr3/gsDM/6rV3P/O5+r/4vHz/+n2+P/p9/n/5fb5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+n6/P/q+vz/6/v9/+z7/f/u+/3/7/z9//H8/f/x/P3/7/z9/+r9/v/k////2////8/+ /v++8vH/ptjW/4m0sv9sjYr/Umpm/0BRS/84QDj/NDUp/zMuIv8wKiT/Kicw/yEmSf8XKGj/EC2I/w01 o/8QQbj/GVLK/yJj2f8qceX/K3jt/yR28f8acPL/D2jx/wVi8P8AX/D/AF7x/wBf8f8AYPH/AGHy/wBh 8v8AYfH/AGHx/wBh8f8AYfH/AGHw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGHw/wBh8f8AYfH/AGHx/wBh 8f8AYfL/AGHy/wBh8v8AYfP/AGHz/wBh8v8AX+//AF7q/wBb4/8AWNz/AFTU/wFPzP8DSMb/BUG//wg6 tP8MNaT/EjCK/xorav8jKEr/Kygx/zAqJP8zLiL/NTUp/zhAOP9AUUv/UGpm/2mNiv+EtLH/nNfW/6rv 7/+q+fv/n/n8/5Dz+P+B7PP/eOjw/3Pm7/9w5e//buTv/2vj7v9k4O7/W93t/1DZ6/9E1er/OdDo/y3M 5f8gx+P/E8Lg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9gsL7/ZrPB/3G4xf+Gws3/odDY/77f5P/Y7O//5vP1/+v3+P/p9/n/5fb6/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/p+vz/6vr8/+v7/f/s+/3/7vv9//D7/f/x/P3/8Pz9/+79/v/s////6P///9// ///R9/f/uuTj/5zJyP99q6r/YY2M/010cv9CXlj/O0lA/zY4Lf8xKyP/KiMm/yEfNP8ZIEv/FCVk/xUv ff8gQZb/Mlqw/0Z0yf9TiN3/VZDr/0mM8v80f/P/HXDy/wpj8f8AXfH/AFzy/wBd8/8AYPT/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8P8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 8/8AYvT/AGL0/wBi9v8AY/j/AGP4/wBi9v8AX+//AFvk/wBV1v8AT8f/AUq5/wNErf8HP6P/Czma/xA1 jv8VMID/Gitq/yAmUP8mIzj/LCQn/zIrI/83OC3/PElA/0JdWP9NdHL/XY2M/3Sqqf+OyMf/o+Lh/670 8/+t+/v/ofn8/5Hz9/+B7PL/dufw/27l7/9p4u7/ZOHt/1/e7f9Y3Oz/Udnr/0nX6/9B0+n/ONDo/y3M 5f8gx+P/FMLg/wm82/8Cs9P/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+Xy9T/m83W/6HQ2P+t1t3/vd7j/87m6v/d7vD/5fP0/+f19//m9vj/4/b5/+L2+v/i9vr/4/f7/+T4 +//m+Pz/5/n8/+j5/P/o+vz/6fr8/+n6/P/q+vz/7Pv9/+77/f/v+/3/8Pz9//D9/v/w////7////+r/ ///e+vr/ye7u/6zd3v+Oycv/cbK1/1ybnP9Nfn3/QmBb/zpEPP8zLif/KyEg/yMbJP8dGzH/GyFD/yEt Wf8zRHX/UGWW/2yHuf+Bodb/g6vq/3Cj8v9QkPT/LXny/xBm8f8BXfH/AFvy/wBc8/8AX/T/AGH0/wBi 9P8AYvT/AGLz/wBi8v8AYvL/AGHx/wBh8f8AYfH/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBh8f8AYfH/AGHx/wBi8v8AYvL/AGLz/wBi 9P8AYvT/AGL1/wBi9/8AY/n/AGP6/wBi9v8AXu3/AFfb/wBPxv8ARq//AT6b/wU5i/8LNX7/EjJy/xkv Z/8fLVv/IyhK/yYjOP8pICj/LSMh/zMvJ/86RDz/Q2Bb/05+ff9bmpz/a7K0/3/Iyv+U29z/pevr/671 9f+r+fr/oPf5/5Hx9v+B6/L/defw/2vj7v9h4O3/Wd3s/1La6/9L1+r/R9bq/0LU6v8+0un/N8/n/y3M 5f8hx+P/FMLg/wm82/8CtNP/AKnH/wCcuf8AkKv/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP++3+T/v9/l/8Ph5v/I4+j/z+fr/9fr7v/e7vH/4vHz/+Pz9f/i9Pf/4vX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/o+fz/6Pn8/+j5/P/p+vz/6vr8/+z7/f/u+/3/7/z9//D9/f/y/v7/8v///+/+ /v/l+/v/0fX2/7fu8P+b4+f/gNPY/2q9wf9ZnZ//S3h2/z9UT/82ODL/Ligj/ygfHv8lHiP/JyUv/zEz Qv9KTV7/bXOF/5Garf+puNH/q8Po/5K48v9ooPX/O4Ty/xVt8P8BYfD/AFzw/wBc8P8AXvD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBh8f8AYfT/AGL0/wBg7/8AW+P/AFLN/wBIs/8APZf/ATR+/wYva/8OLFz/GCtP/yEr Rf8nKjv/Kygx/ywkJ/8tIyH/MCkj/zY4Mv9AVVD/TXh2/1udn/9pvcH/eNLX/4jh5f+Y6+7/pPHy/6r1 9v+n9vf/nfT3/5Dw9P+B6/L/dOfw/2ji7v9c3uz/UNnr/0fW6v9B0+n/PtLp/zzS6f870en/Ns/n/y3M 5v8hyOP/FcPg/wm82/8CtNP/AKnH/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP/E4ub/xeLn/8jj6P/M5ur/0ujs/9jr7v/e7vH/4fHz/+Ly9f/i9Pf/4fX4/+H2+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+z7/f/t+/3/7vz9/+/8/f/v/f3/7/39/+v8 /f/h+vz/0fn7/7v3+/+j8/j/i+ju/3jV2v9mtbn/VY+Q/0hpZ/8+TEb/ODo0/zQxK/81MCr/OzYx/0hE Qf9iXlz/h4OC/6yqq//FyM//xtPm/63I8f+DsPT/VJPy/yx67/8Ua+3/CWPq/wRf5/8CXeT/AVvj/wBa 4/8AWeX/AFrn/wBa6f8AW+v/AFzs/wBd7v8AXu//AF/w/wBg8P8AYPH/AGDx/wBg8P8AYPD/AGDw/wBg 8P8AYPD/AGDw/wBg8P8AYPD/AGDx/wBg8f8AYPD/AF/w/wBe7/8AXe7/AFzs/wBb6/8AWun/AFrn/wBa 5v8AWuT/AFvi/wFb4v8CXOP/A1zi/wRa3P8FVc7/BEy4/wNBnP8ENoD/Bi5n/wspU/8UJ0T/HSY3/yYn Lv8tKSj/MCok/zIrI/8zLyf/Njgy/z1LRv9Jamf/WJCQ/2i2uf921dr/g+ju/5Dx9v+b9fj/ovX3/6X1 9v+i9Pb/mfL1/43u8/+A6vH/dObw/2bh7v9Y3Oz/S9fq/0DT6f860ej/ONDo/znQ6P850Oj/Ns/n/y3M 5v8iyOP/FcPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP+m0tr/qNTb/67X3v+32+H/xOHm/9Ho7P/d7vH/5PL0/+b09v/l9fj/4/X5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6/r8/+77/f/w/P3/8Pz9/+78/f/q+/z/5Pr8/9z5 +//S+Pr/xfn8/7b6/v+m+f7/lfP4/4Xk6f90ycz/Yqep/1OGhf9Ja2n/RlxX/0dUTf9OUkr/WVdO/2hj Wf+BeW//oZmP/8C6s//V09H/1tzl/8HT7/+ev/L/dabw/1GP7P84fuf/JW/f/xdi1v8MWM7/BFHK/wBN y/8ATND/AE3X/wBP3v8AUuT/AFXo/wBY7P8AXO//AF/y/wBh9P8AYvT/AGL0/wBh9P8AYfT/AGH0/wBh 9P8AYfT/AGH0/wBh9P8AYfT/AGL0/wBi9P8AYfT/AF/y/wBc7/8AWOz/AFXo/wBS5P8AUN//AFDa/wBQ 1P8AUM7/AVHJ/wNRxv8GUsT/CVLA/wtQuP8NTKv/DUSX/w06f/8NMGb/DylR/xMkQP8ZITH/ISEm/ygj H/8uJx7/My4i/zc4Lf86RDz/QFVQ/0lqZ/9XiIf/Z6mr/3bKzv+E5On/jvL4/5b4/f+b+Pz/nfX4/53z 9v+a8vX/k/D0/4rt8v+A6vH/dOfw/2bh7v9X3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6P850Oj/Ns/o/y7M 5v8iyOT/FcPg/wq82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP9yucX/d7vI/4HAzP+TydP/qtXc/8Th5v/a7e//5vP1/+r2+P/o9/n/5fb5/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//D8/f/z/f3/8v39/+z8/f/h+vv/1Pf6/8b1 +P+69Pj/svX5/6v4/P+l+f7/nfb7/5Ls8P+C2Nz/cb/C/2GmqP9YkpP/WIaF/2CAff9tf3n/fYJ6/46K gf+impH/ubGn/8/IwP/d2tb/3uDl/9Db7P+4zu//m7zt/36o6f9kleD/SX/S/y9owf8YU7L/CESr/wA9 rP8APLb/AD7C/wBC0P8ARtr/AEzi/wBS6f8AWe//AF70/wBi9/8AY/j/AGP4/wBi+P8AYvf/AGL3/wBi 9/8AYvf/AGL3/wBi9/8AYvj/AGP4/wBj+P8AYvf/AF70/wBZ7/8AUun/AEzi/wBG2v8ARNH/AEPI/wBD vf8ARLP/AkSq/wVEo/8LRZz/EEWV/xVEjP8YQID/GTpw/xkzXv8ZLE3/GiY9/x0iMP8gHiT/JB0b/ykf F/8uJhv/NTUp/zxJQP9DYFv/TXh2/1iQkP9nqav/d8PG/4ba3v+R7PD/mPb6/5r5/f+Z9/v/lvP3/5Pw 9P+P7/P/i+7y/4bs8v9+6vH/defw/2fi7v9Y3Oz/Sdbq/z3S6f830Oj/Ns/o/zjQ6f850en/N9Do/y/N 5v8jyeT/FsPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP85nK//QKCy/0+nuP9ptML/i8XP/7HY3//S6ez/5PL0/+r3+P/p9/r/5ff6/+L2+v/i9/r/4/f7/+X4 +//m+fz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/7Pr9//H8/f/z/f3/8Pz9/+b7/P/V+Pr/wfT4/67x 9v+h8PX/nfH2/570+P+h9vr/ovb5/53x8/+Q5ef/f9XZ/3HGyf9pubz/bbK0/3qurv+Mrav/oa6r/7Kz rv/Bu7b/z8jC/9rV0P/h39z/4uLk/9zh6f/Q2+z/wNHr/6vC5f+Qrdn/bZDF/0dwrf8lUpn/CzyO/wAx kP8ALpz/ADCt/wA1v/8AO83/AELY/wBM4v8AVev/AF3x/wBh9v8AY/f/AGP3/wBi9/8AYvb/AGL2/wBi 9v8AYvb/AGL2/wBi9v8AYvf/AGP3/wBj9/8AYfb/AF3x/wBV6/8AS+L/AELY/wA7zf8AN8H/ADaz/wA2 pf8AN5b/AjeJ/wg4fv8POHP/Fzhp/x43YP8iNVb/JDJL/yQuQf8kKjf/JCYv/yUjJ/8mHx7/KB0Y/ysg GP8wKiH/OEA4/0JdWP9Ofn3/W52f/2i2uf92ys7/htre/5Pn6v+c8fP/n/b5/5z2+v+W8/j/jvD1/4jt 8/+F7PL/g+vx/4Dr8f986fH/dOfw/2ji7v9Z3Oz/Stfq/z7S6f840Oj/N9Do/zjQ6f850en/N8/o/y/N 5v8jyOT/FcPg/wq92/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8LhZz/FIqg/yaTp/9EorP/bbbD/5rN1f/C4eb/2u3w/+Pz9f/l9fj/4/X5/+H1+f/i9/r/4/f7/+X4 +//m+Pz/5/n8/+f5/P/n+fz/5/n8/+f5/P/o+fz/6vr8/+37/f/t+/3/5/r8/9r4+//F9fj/rvH2/5nt 9P+M7PL/i+3z/5Lw9P+c8/b/o/T2/6Pz9f+a7vD/jOfq/4Hf5P972d7/gtXa/5PT1/+p0tT/v9PT/9DU 0//a19X/4NvZ/+Pf3v/k4+L/4+Tl/+Tl6P/i5er/3OHp/87W4/+0wdX/jKG9/157ov8zV4r/Ej18/wIu ff8AKYn/ACma/wAtrf8BMrv/ATrI/wFF1P8BUN7/AVnm/wFe6/8BYO3/AWDt/wFf7P8BX+v/AV/r/wFf 6/8BX+v/AV/r/wFf6/8BX+z/AWDt/wFg7f8BXuv/AVnm/wFQ3v8BRdT/ATrI/wEyu/8BLa3/ACyd/wAs jP8BLXz/BC1s/wsuX/8ULlH/HS5G/yYtPP8qLTT/LCwv/ywsLf8rKyv/Kyoq/yspJ/8sJyL/LSUf/zAq I/82NzD/QFFL/010cv9bmpz/ab3B/3bV2v+E5On/kezw/5zx8/+j8/X/o/T2/5zz9v+S8PT/iO3z/4Dq 8f986fH/e+nw/3rp8P946PD/ceXv/2bh7v9Y3Oz/Stfq/z/S6f840Oj/N9Do/zfQ6P830Oj/NM7n/yzM 5f8hyOP/FMPg/wm82/8CtNP/AKnI/wCduf8AkKv/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8Ae5T/AH+X/w+Hnv8slqr/VKm5/3+/y/+o09v/weHm/9Dp7v/Y7/P/3fL2/+D1+f/j9/v/5fj7/+X4 /P/m+Pz/5vn8/+f5/P/o+fz/6Pn8/+j5/P/m+fz/5Pn8/+H4+//c9/v/0/b6/8Xz+P+y8Pb/nO30/4rr 8v+A6vH/gevx/4ru8/+W8fT/oPT2/6T09v+f8/b/mPH1/5Hu9P+Q7PL/mevw/6rq7v+/6ez/1Onq/+Lp 6P/p6Of/6ujn/+nn5v/m5+b/5ufm/+np5//s6+n/6+ro/+Li4v/Lz9T/prC+/3qMpP9PaYz/Lk59/xs8 e/8RMoH/DC2M/wormf8ILaT/BjOv/wY+uv8GScT/B1LM/wdX0f8HWdP/B1nT/wdY0v8HWNL/B1jS/wdY 0v8HWNL/B1jS/wdY0v8HWNL/B1nT/wdZ0/8HV9H/B1LM/wdJxf8HP7v/BzSw/wcso/8HKJX/BiaF/wYm df8HJ2X/CihW/xAnSP8ZJzr/Iicv/yonJv8uKCL/Lioi/ywtJv8qMCv/KTQw/yw2Mv8wNzL/NTk0/z1A Ov9FT0n/UGpm/12NjP9rsrT/eNLX/4Po7v+O8vj/mPb6/5/2+f+j9Pb/ofT2/5nx9f+O7vP/g+vy/3vp 8P925/D/dOfw/3Pm7/9w5e//auPu/2Df7f9U2+z/SNbq/z7S6f840Oj/Nc/n/zTO5/8yzeb/Lszl/yfJ 5P8cxuL/EsHf/wi82/8CtNP/AKnI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AeJH/AHuU/wuCmv8hjqP/P52v/2Cuvf+BwMv/m87X/7Ha4f/E5Or/1O3y/+D0+P/n+Pv/6fn8/+j5 /P/m+Pz/5vj7/+f5/P/q+vz/7Pr9/+v6/f/m+fz/3ff7/9D0+f/C8fj/tO72/6bs9f+Y6vP/iuny/4Dp 8f976fD/ferx/4Xs8v+P7/P/mPH1/5/z9v+h9Pj/ovX5/6T2+/+p9vv/s/b7/8L2+v/T9vj/4vX2/+30 9P/w8vH/7u/v/+rt7P/n6ur/5eno/+nq6P/t7ej/7+zn/+rn4v/Z2Nf/vcDG/5uksv95iJ7/XG+Q/0Zb h/80SYP/JjqB/xswgv8TLIX/Dy6L/w42lP8PQJ3/EEik/xBMqP8QTqr/EE6q/xBNqf8QTan/EE2p/xBN qf8QTan/EE2p/xBNqf8QTan/EE6q/xBOqv8QTKj/EEik/xBBnv8QOJb/EDCN/xEpg/8QJXf/ECRq/xAk XP8RJE7/FCRC/xgjNv8fISr/JiEg/ysiGv8sJRr/KSog/yQxKv8gOTb/IEFB/ydKSv8yUVD/QFpX/09l Yf9ddXH/aY2K/3Sqqf9/yMr/iOHl/5Dx9v+W+P3/mvn9/5z2+v+c8/b/mfH1/5Lv9P+K7fL/gevx/3no 8P9z5u//b+Xv/2rj7v9l4e7/X9/t/1fc7P9O2Ov/RdXq/z3S6f830Oj/Ms7n/y7M5f8qyuT/JMji/x7F 4f8Vw+D/DcDe/wa72v8BtNP/AKrI/wCduf8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AepP/AHyV/weAmP8Uh57/JpGm/zydr/9Vqrr/b7jF/43H0v+s2OD/yOft/97y9v/p+fz/7Pr9/+n6 /f/m+Pv/5fj7/+j5/P/s+vz/7/v9/+37/f/k+fz/0vT6/7rv9/+j6fT/j+Xy/4Pk8f985PD/eeXw/3jn 8P956PD/e+rx/4Dr8f+G7fL/ju7z/5bw9f+g8/f/q/b6/7f4/P/C+v7/zfv+/9j7/v/j+/z/7Pr7//H5 +f/x9vb/7vPz/+rw8P/m7e3/5Ovr/+br6v/q7On/7Ovn/+rn4//g3tv/0NDR/7u+xf+kq7j/jZaq/3V/ m/9bZon/Q015/y44a/8fLGT/GSpk/xcuaf8ZNnD/Gz12/xtAef8bQXr/G0F6/xtAef8bQHn/G0B5/xtA ef8bQHn/G0B5/xtAef8bQHn/G0F6/xtBev8bQHn/Gz12/xs4cv8bMm3/Gy1n/xwoYP8cJlj/HCRP/xwk Rf8dIzv/HiMy/yEhKf8lHyD/KR4Z/ysgFv8pJRr/Iy0m/xs4Nv8VRUn/FVNa/yBhaP80cHX/TYCC/2WQ j/94oZ7/hLSx/47Ix/+U29z/mOvu/5v1+P+b+Pz/mff7/5bz+P+S8PT/ju7z/4rt8v+E7PL/f+rx/3jo 8P9x5u//aePu/2Hf7f9Z3Oz/Utrr/0zY6/9H1ur/QtTq/zzS6f82z+f/L8zl/yfJ4/8gxuH/GcPf/xPB 3v8Nv97/CL3d/wS62f8BtNP/AKrI/wCduv8Akav/AIaf/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AfZb/AH6X/wSBmP8Jg5v/D4ed/xqNov8slqn/RaO0/2i2xP+Sy9b/ueDn/9bv9P/m+Pv/6vr9/+j5 /f/k+Pv/4/f7/+b4+//r+fz/7fr8/+n6/P/c9/v/wvH4/6Pp9P+E4vH/bN3u/2Lc7f9j3e3/aeHu/3Hl 7/936PD/eunw/3vq8f9+6vH/g+vy/43t8/+d8PX/sfT4/8T4+//V+v3/4fz9/+n9/f/u/P3/8fz8//L6 +v/x+Pj/7fb2/+ny8//l8PH/4+3u/+Ts7P/m6+r/6Onn/+fm5P/j4eD/3Nzd/9TV2P/HytD/tbrD/5yh rf98gJD/W15x/z5AVv8rLUX/IidA/yAoQf8jLUb/JTJL/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjRM/yY0 TP8mNEz/JjRM/yY0TP8mNE3/JjRN/yY0Tf8mNEz/JjNL/yYwSf8mLUf/JitE/yYoQP8mJzz/JiY4/yYm M/8mJi7/JyYq/ykkJP8rIh//LSIb/y0kHP8qKyT/ITY0/xZFSf8OVmD/D2d1/x56iP85j5r/WaSr/3i4 u/+Pycn/nNfW/6Pi4f+l6+v/pPHy/6L19/+d9fj/lvP3/47w9f+I7fP/g+vy/4Hr8f9/6vH/fOnw/3fn 8P9u5O//Y+Dt/1jc7P9O2Ov/RtXq/0LU6f8/0+n/PdLp/znR6P8zzuf/Ksrk/yDG4f8Wwt7/Dr7c/wm8 2/8GvNv/A7vb/wK52f8AtNP/AKrI/wCduv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wGAmP8AgJj/AH+X/wOBmf8Nh53/JJOo/0qnuf93wM3/o9jh/8Xq8f/Z9Pn/4fj8/+P4 /P/h9/v/4Pb6/+L3+v/k9/v/4vf7/9v2+v/L8vj/ruv1/4vj8f9p2+7/Utbr/0rW6v9P2ev/W93s/2ni 7v9y5u//dufw/3bo8P936PD/e+nw/4br8v+Z7vT/sfL2/8n2+f/d+vv/6fz8//D9/f/y/f3/8/39//L8 /P/w+vr/7fj4/+n19v/l8vT/4/Dx/+Pt7v/l7Oz/5unp/+bn5v/k5eT/4uTl/97i5P/W3N//x87R/66z t/+Mj5L/aGdq/0hFRv8zLi//KSUl/ycjJP8qJyj/LSor/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0r LP8tKyz/LSss/y0rLP8tKyz/LSss/y0rLP8tKyz/LSss/y0qK/8tKSr/LSkq/y0oKf8tKSn/LCkp/ysq Kf8rLCr/LC0q/y4tKf8xLSf/NC4n/zUyLP8yOzb/KEhJ/xxYX/8Tanj/FH2P/ySSo/9Bqbj/ZcHK/4bW 2/+e5uf/qu/v/6708/+u9fX/qvX2/6X19v+d8/b/k/D0/4jt8/+A6vH/e+nw/3no8P946PD/d+fw/3Lm 7/9p4u7/Xd7t/1DZ6/9F1er/PdLp/znR6P840Oj/N9Do/zXP5/8uzOX/Jcji/xnD3/8Pvtz/Brva/wK5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyU/wB7lP8Cf5j/FYuh/zWesv9dtsf/hc7c/6fh7P+97PX/zfL5/9f1 +v/d9fr/3vX6/9z1+f/W8/n/zPH3/77t9f+r6fP/kOPx/3Lc7v9W1uv/Q9Pp/z7T6f9E1er/Udrr/1/f 7f9p4u7/buTv/2/l7/9x5u//dufw/4Lq8f+U7fP/q/H2/8L1+P/V+Pr/4vv8/+r8/f/v/f7/8v7+//P9 /v/y/P3/7/r7/+v3+f/o9fb/5vP0/+fx8v/p7/D/6u3t/+nr6v/k6Oj/3ubn/9Tj5f/H297/tszO/56x sv+AjYv/YWVg/0ZDOv80LCL/LCEW/yofFP8tIhf/LyQa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8l Gv8vJRr/LyUa/y8lGv8vJRr/LyUa/y8lGv8vJRr/LyUa/zAlGv8wJRr/MCUa/y8mHP8tKSD/Kywl/ygw K/8nNTH/KDk2/y4+Ov83Qj7/P0hC/0VPSf9FWVb/PmZn/zN1fP8rhZL/K5an/zipuv9Rvsz/b9Pd/4zm 6/+g8/b/qvn7/637+/+r+fr/p/b3/6L09v+a8vX/j+/z/4Xs8v986fH/dufw/3Pm7/9x5u//buTv/2ni 7v9h3+3/Vtvs/0rX6v9A0+n/ONDo/zTO5/8yzuf/MM3m/y3L5f8nyeP/HsXg/xPA3f8KvNv/A7nZ/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHuU/wB6k/8BfZb/D4ef/yaYr/9CrsL/YMPW/33V5f+W4u//sOv1/8fx +P/X9Pn/3fX5/9Xz+P/D7vb/rOjy/5Xi7/+A3e3/a9nr/1fV6v9H0un/PNHo/znR6P8/1On/SNfq/1Tb 7P9d3u3/Y+Dt/2ji7v9t5e//dOfw/3/p8f+O7PL/n+/0/7Hy9v/B9fj/z/j6/9v6+//m/P3/7v3+//P+ /v/1/f7/8/z8/+/6+//s+Pn/6vb3/+z19v/w9fX/8fPz/+3w7//i6ur/0ePm/7va3/+jzdP/jLvB/3eg pP9hfn7/TVtV/z08Mv8xJxr/LB0P/ysbDf8sHQ//LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4g Ev8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEv8uIBL/LiAS/y4gEf8vHxH/LiAS/y0jFv8qKB3/JC8o/x43 NP8cQUH/H0tN/ypVV/87YGD/TWxq/1x4dP9ig4H/X4+P/1eaoP9QprD/TrK//1bAzf9m0Nv/et/o/4zs 8v+Z9fn/n/n8/6H5/P+g9/n/nfT3/5ny9f+T8PT/i+7y/4Pr8f976fD/dOfw/27l7/9p4+7/Y+Dt/13e 7f9W2+z/Tdjr/0XV6v890un/Ns/o/zHN5v8sy+X/KMnk/yPH4v8cxOD/FcHe/w693P8Hutr/ArjY/wC4 2P8Audn/ALna/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Afpb/AHyV/wB8lP8Bfpf/CYaf/xWVrf8lpr7/OLnQ/0/J3/9s1un/kOLw/7Tr 9f/O8fj/2PP5/8rw9/+t6PL/id7t/2jV6P9S0Ob/Rc7l/z3O5v86z+f/ONDo/znR6P880un/QtTq/0nX 6v9Q2ev/WNzs/2Df7f9p4+7/c+bv/33p8P+G6/L/kO3z/5vv9P+n8fX/tfP3/8b2+f/X+fv/5vz9//H9 /v/1/f7/9f39//L7/P/w+vv/7/n6//L6+v/2+vr/9/n5//D19f/e6+3/wN7j/5vN1v93usX/W6Sw/0mL lP89bXH/NlBO/zI2L/8uJRr/LB0Q/ysbDv8sHRD/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0f E/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fE/8tHxP/LR8T/y0fEv8uHhH/Lh8S/ywjF/8mKiL/HTUy/xVC RP8RUFf/Fl9p/ydweP9Bgof/XJOV/3Sko/+AsK//grq6/37BxP94x83/dM7W/3bW3v983ub/g+bt/4ns 8/+O8fb/kPP4/5Hz9/+R8fb/kPD0/43u8/+K7fL/huzy/4Dr8f966fD/c+bv/2rj7v9h3+3/WNzs/1DZ 6/9K1+r/RdXq/0HT6f880en/Ns/n/y7M5v8nyeP/H8Xh/xfC3/8Rv93/DL3b/wi72v8Eudn/AbjY/wC4 2P8Audn/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB9lf8AgJj/BIef/weSrP8Mobv/FrDL/ye+2f9Fy+P/cNnr/53l 8v/A7fb/zPD3/7vr9P+U4e7/Z9Tn/z/K4v8qxd//JMTg/yfH4v8vy+X/Nc/n/zjQ6P860en/PNLp/z/T 6f9F1er/Tdjr/1nc7P9l4e7/cOXv/3jo8P996fH/gerx/4Xr8f+N7PL/m+70/7Dy9v/G9fn/2/n7/+v8 /f/y/f3/9f39//T9/f/y/Pz/8vz8//b9/f/5//7/+f79/+/4+f/X7O//r9rh/4DDz/9Tq7v/M5Ok/yR7 iv8iY2z/JkxO/y04NP8wKyP/MCUb/zAjGf8wJRv/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zAn Hv8wJx7/MCce/zAnHv8wJx7/MCce/zAnHv8wJx7/MCce/zEmHP8xJRv/MSUc/y8qIv8oMy//HUBC/xJQ Wf8NYnD/E3WF/yiKmf9Ioaz/are9/4jKzP+Z19f/n9/e/57i4/+Z5Ob/leXo/5Hn6/+N6O7/ierw/4Xr 8f+D6/L/gezz/4Hs8v+B6/L/gevy/4Dq8f+A6vH/furx/3zp8f946PD/cOXv/2Xh7v9Z3Oz/Ttjr/0XV 6v9A0+n/PdLp/zzR6f850Oj/NM7n/yvL5P8hxuH/FsLe/w6+3P8Iu9r/BLrZ/wK52f8BuNj/AbjY/wC4 2f8Audr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCQq/8Anbn/AKrI/w231f8pxN//VtLn/4Xe 7v+q5/L/t+r0/6Tl8f972ur/S8zj/yPC3f8Pvdv/Db7c/xbC3/8kyOL/L8zl/zTO5/82z+f/Ns/o/zjQ 6P890un/RtXq/1La6/9f3+3/auPu/3Hl7/9z5u//cubv/3Pm7/945/D/hunx/5zt9P+18vf/zfb5/9/5 +//q+/z/7/z9//L9/f/y/f3/8/39//X////3////8////+f6+//N7fD/o9nh/3LBzv9FqLn/JpGk/xt8 jP8eaXP/KFda/zRIRf86PTf/PDkx/z04L/88OTH/PDoz/zw7M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7 M/88OzP/PDsz/zw7M/88OzP/PDsz/zw7M/88OzP/PDoz/zw5Mf89ODD/PTkx/zo9N/8zR0T/KFVY/x1l cP8XeIj/HYye/zKhsv9Sucb/ddDY/5Pj5v+l7/D/rPX1/6329v+q9fX/pfP0/5/y9P+W7/P/jO3y/4Pr 8f986fD/eOjw/3bn8P915/D/dOfw/3Tm8P905/D/defw/3Tn8P9x5e//auPu/1/f7f9S2uv/RtXq/z3S 6f840Oj/Ns/o/zbP5/80zuf/L8zl/ybI4/8bw+D/EL/d/we72v8Cudj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCPq/8Am7j/AKjH/wa00/8dv9z/Qsvk/2nW 6f+I3u3/k+Du/4Pc7P9h0ub/Ocbg/xe92/8Hudn/B7ra/w++3f8bxOD/Jsjj/yvL5P8uzOb/Mc3m/zTO 5/850ej/QtTp/0zY6/9X3Oz/YN/t/2bh7v9m4u7/Y+Ht/2Lh7f9n4u7/c+Tv/4jo8v+h7fT/ufL3/8z2 +f/a+fv/5fv8/+39/f/y/v7/8/7+//L////t////5P3+/9X4+v+97fH/mtzk/3LI1P9Ps8L/NqCw/y+Q nv80gYr/P3R3/0ppZ/9RYVz/VF5X/1RdVv9UXlf/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1Nf Wf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NfWf9TX1n/U19Z/1NeV/9UXVb/VF1X/1FhXP9Mamj/QnZ5/ziE jf8zlKL/OKW1/0i3x/9hy9f/fd7m/5Tu8v+j+Pr/qvz9/6z8/f+q+vv/pvf5/6D19/+X8vX/jO/0/4Hr 8v956PD/c+bv/27l7/9r4+7/aOLu/2bh7v9m4u7/Z+Lu/2ji7v9m4e7/YN/t/1fc7P9M2Ov/QtTp/znR 6P80zuf/Mc3m/y7M5v8ry+T/Jsjj/x7F4P8Vwd7/DL3b/wS52f8AuNj/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8Am7n/AKfH/wSz0v8UvNr/LsXg/0rN 5f9f0uf/Z9Tn/1zR5v9EyuL/KMHd/xC72f8FuNj/BLnZ/wq82/8TwN3/G8Pg/yHG4f8nyeP/LMvl/zLO 5/840Oj/P9Pp/0fW6v9O2Ov/VNvs/1jc7P9X3Oz/VNzs/1Tb7P9X3Oz/Y9/t/3Xj7/+K6fL/oe70/7Xy 9//H9vn/2Pn7/+b8/P/w/f7/8v7+/+z+/v/g/P7/0Pn8/770+P+r7PH/k+Ho/3vT3f9mxtH/WLnF/1Sv uP9ZpKv/YZue/2qUk/9vj4v/cY2I/3GMh/9xjYj/cI2J/3COif9wjon/cI6J/3COif9wjon/cI6J/3CO if9wjon/cI6J/3COif9wjon/cI6J/3COif9wjon/cI2J/3GNiP9xjIf/cYyI/2+Pi/9rlZT/ZJ6g/16p r/9atL7/W8DL/2TM2P9z2eP/gubt/5Dw9f+Z9vr/nfn8/5/5/P+e9/r/nPX4/5jz9/+R8fX/ie7z/4Dr 8v946PD/cOXv/2ni7v9h4O3/XN7s/1jc7P9X3Oz/WNzs/1nc7P9Y3Oz/VNvs/07Y6/9H1ur/P9Pp/zjQ 6P8yzuf/LMvl/yfJ4/8hxuH/G8Pg/xTB3v8Ovtz/CLva/wO52P8At9j/ALfX/wC31/8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQq/8AnLn/AKnH/wKz0/8Lutr/GsDe/ynF 4P82x+H/Osjh/zTG4P8mwt3/Fr3b/wm52f8DuNj/ArjY/wW62f8KvNv/EL/c/xbC3v8fxeH/KMnk/zDN 5v830Oj/PdLp/0LU6v9F1er/SNbq/0rX6v9J1+r/R9bq/0fW6v9K1+r/VNrr/2Pe7f915O//ieny/5zu 9P+x8vb/x/b5/9z6+//p/P3/7Pz9/+L7/P/P+Pv/ufT4/6bw9f+Y6/H/jubt/4bg5/+A2uH/fdTb/33P 1P+Ayc3/hcTF/4nAv/+Mvbv/jby5/427uf+NvLn/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428 uv+NvLr/jby6/428uv+NvLr/jby6/428uv+NvLr/jby6/428uf+Nu7j/jby5/4y9u/+KwcD/h8bH/4PM z/+A0tf/f9jf/4De5f+D5Ov/hunw/4nt8/+L8Pb/jPH3/43x9v+O8fb/jfD1/4vv9P+H7vP/g+zy/37q 8f936PD/buTv/2Th7f9Z3ez/UNnr/0vX6v9J1ur/Sdbq/0rX6v9K1+r/SNbq/0XV6v9C1Or/PdLp/zfQ 6P8wzeb/KMnk/x/F4f8Wwt7/EL/d/wu92/8Hu9r/BLnZ/wK42P8AuNj/ALfY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIaf/wCRq/8Anbr/AKrI/wG00/8Eudn/Cr3c/w++ 3P8Uvtz/Fb7b/xO92/8OvNr/CLrZ/wO52P8BuNj/ALjY/wG42P8Dudn/B7va/w6+3P8Xwt//I8fi/y3L 5f81z+f/OdHo/zzS6f890un/PtLp/z/S6f8+0un/PdLp/z3S6f9A0+n/SNbq/1Ta6/9i3+3/c+Tv/4Xp 8f+b7vT/tfL3/8z2+f/d+fv/4Pn7/9T3+v+99Pj/pfD1/5Hs8/+J6/H/ierw/47q7/+V6+7/murt/53p 6/+f5+j/oOXl/6Dj4/+h4uH/oeHg/6Hh4P+h4eD/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh 4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4f+h4eH/oeHh/6Hh4P+h4eD/oeHg/6Hi4f+h4+P/oOXl/5/n 6P+d6ev/muvt/5Xr7/+P6/D/iOvx/4Lq8f9/6vH/ferx/33q8f996vH/ferx/33p8f986fH/e+nx/3no 8P905u//a+Pu/1/e7f9S2uv/R9bq/0DT6f890un/PdLp/z7S6f8/0un/PtLp/z3S6f880un/OdHo/zXP 5/8ty+X/I8fi/xfC3/8Ovtz/B7va/wO52f8Budj/AbjY/wG42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wG6 2v8Budn/AbjY/wG42P8BuNj/ALjY/wC42P8AuNj/ALjY/wC32P8AuNj/ArnY/wi72v8Rv93/HMTg/yfJ 4/8uzOX/M87n/zbP5/830Oj/ONDo/zjQ6P840Oj/N9Do/zfQ6P860ej/QNPp/0nX6v9V2+z/YuDt/3Ll 7/+H6fL/n+30/7bx9//H9Pj/y/T5/8Dz+P+r7/X/lOzz/4Tq8f+A6vH/hezy/5Dv8/+c8vX/pfT2/6j1 9v+q9vb/qfX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j1 9v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qPX2/6j19v+o9fb/qfX2/6r2 9v+o9fb/pfT2/53y9f+T8PT/iO3y/3/q8f946PD/defw/3Lm7/9x5e//cOXv/3Dl7/9x5e//ceXv/3Dl 7/9s5O//ZODu/1jc7P9L1+r/QdPp/zrR6P830Oj/N9Do/zjQ6P840Oj/ONDo/zfQ6P82z+f/M87n/y7M 5f8nyeP/HMTg/xG/3f8Iu9r/ArnY/wC42P8At9j/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC31/8At9f/AbjY/wa62f8Nvdv/FcHe/x7F 4P8lyOL/Ksrk/y7M5f8yzuf/Nc/n/zfQ6P830Oj/Ns/o/zbP6P840Oj/PdLp/0PV6v9M2ev/Vtzs/2Lg 7f9y4+//hubx/5jp8/+m6/X/q+31/6Ts9P+W6/P/h+nx/33p8f986vH/g+3y/47w9P+Z9Pf/ovb4/6X4 +v+m+fv/pfr8/6T6/P+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6 /f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+j+v3/o/r9/6P6/f+k+vz/pfr8/6b5 +/+l+Pr/ovb4/5v09/+S8fX/h+3z/37q8f925/D/cOXv/2rj7v9m4e7/Y+Dt/2Lg7f9j4O3/ZOHu/2Th 7v9h4O3/W93t/1HZ6/9H1ur/PtLp/zjQ6P82z+j/Ns/o/zfQ6P830Oj/Nc/n/zLO5/8uzOX/Ksrk/yXI 4v8exeD/FcHe/w292/8Gutn/AbjY/wC31/8At9f/ALfY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALna/wC4 2f8At9j/ALbX/wC21/8At9f/ALfY/wC42P8AuNj/ALjY/wC32P8At9f/AbjY/wS52f8Iu9r/Db3c/xPA 3f8Zw9//IMbh/yfJ4/8uzOX/NM7n/zfQ6P840On/ONDp/zjQ6P850Oj/PNLp/0DU6f9F1ur/TNjr/1Tb 7P9e3e3/at/u/3fg7/+A4vD/huTx/4Xl8f+B5vH/fOfw/3no8P976vH/gezy/4nv9P+R8fX/lvP3/5n0 +P+Z9fn/mfb5/5j2+v+X9vv/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3 +/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f3+/+X9/v/l/f7/5f2+/+Y9vr/mfb5/5n1 +f+Z9Pj/l/P3/5Lx9f+M7/T/hO3y/33q8f915/D/bOTu/2Th7f9c3uz/Vtvs/1Pa6/9T2uz/Vdvs/1bb 7P9U2+z/UNnr/0nX6/9D1Or/PNLp/znQ6P840Oj/ONDp/zjQ6f830Oj/NM7n/y7M5f8nyeP/IMbh/xnD 3/8TwN3/Db3c/wi72v8Eudn/AbjY/wC31/8At9f/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC5 2v8AuNj/ALfY/wC32P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK42P8Dudn/Brra/wm8 2/8Pvtz/FsLe/yDG4f8qyuT/Ms3m/zfQ6P850en/OdHp/znQ6P850Oj/OtHo/zzS6f8/0+n/Q9Tq/0fW 6v9M1uv/Udfr/1fY7P9d2ez/Ytvt/2je7v9t4e7/ceTv/3bn8P966fD/furx/4Ls8v+F7fP/h+3z/4ju 9P+J7vT/iO/0/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv 9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/1/4jv9f+I7/X/iO/0/4nu 9P+I7vT/h+3z/4Xt8/+D7PL/f+vx/3rp8P9z5u//aePu/17e7f9T2uv/Stfq/0bV6v9F1er/RtXq/0fW 6v9H1ur/RNXq/0HT6f8+0un/O9Hp/znQ6P850Oj/OdHp/znR6f830Oj/Ms3m/yrK5P8gxuH/FsLe/w++ 3P8JvNv/Brra/wO52f8CuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIef/wCRq/8Anrr/AKrI/wCz0/8AuNj/ALra/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wK5 2f8Gu9r/Dr7c/xnD3/8kyOL/Lszl/zTO5/83z+j/N9Do/zbP6P82z+f/Ns/n/zfP5/830Oj/OdDo/zrR 6P870ej/PdHo/z/R6f9C0un/SNXq/1HY6/9c3ez/Z+Hu/3Dl7/915/D/eOjw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no8P956PD/eejw/3no 8P956PD/eejw/3no8P956PD/eOjw/3Xn8P9v5e//ZeHu/1jc7P9L1+r/QdPp/zzR6P850Oj/OdDo/zrQ 6P860Oj/OdDo/zjQ6P83z+f/Ns/n/zbP5/82z+j/N9Do/zfP6P80zuf/Lszl/yTI4v8Zw9//Dr7c/wa7 2v8Cudn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALra/wC42P8As9P/AKrI/wCeuv8Akav/AIef/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALvb/wC6 2v8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC42f8AuNj/ALjY/wC4 2P8Dudn/Crzb/xPB3v8exeH/J8nk/yzM5f8vzeb/L83m/y7M5v8tzOb/Lczm/y3M5f8tzOX/Lczl/y3M 5v8uzOb/L83n/zHO5/81z+j/O9Lp/0XW6v9R2uz/Xd/t/2fi7/9s5O//buXv/27l7/9t5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk7/9s5O//bOTv/2zk 7/9s5O//bOTv/23k7/9u5e//buXv/2zk7/9n4u//Xd/t/1La7P9G1ur/PNLp/zbQ6P8yzuf/MM3n/y7M 5v8tzOb/Lczl/yzM5f8tzOX/Lczm/y3M5v8uzOb/L83m/y/N5v8szOX/J8nk/x7F4f8Twd7/Crzb/wO5 2f8AuNj/ALjY/wC42P8AuNn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC52f8Audn/ALnZ/wC5 2f8Autr/ALvb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrv/AKvJ/wC11P8Autr/ALzc/wC7 3P8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC52v8Audn/ALnZ/wC5 2f8Cutr/B7zb/w6/3v8Ww+D/Hcbi/yHI4/8jyOT/I8nk/yLI5P8iyOP/Icjj/yDI4/8gx+P/H8fj/yDI 5P8jyeT/Jsvm/yrN5/8wz+n/NtLq/z/V6/9K2ez/U9zu/1vf7/9g4e//YeHv/2Dh7/9f4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g7/9e4O//XuDv/17g 7/9e4O//XuDv/1/g7/9g4e//YeHv/2Dh7/9c3+//Vd3u/0zZ7f9D1uz/OtPq/zPQ6f8tzef/KMvm/yTJ 5P8hyOT/H8fj/x/H4/8gx+P/Icjj/yLI4/8iyOT/I8nk/yPI5P8hyOP/Hcbi/xbD4P8Ov97/B7zb/wK6 2v8Audn/ALnZ/wC52f8Audr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC6 2v8Au9z/ALzc/wC62v8AtdT/AKvJ/wCeu/8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCSrP8An7v/AKvK/wC11f8Autv/ALzd/wC8 3P8Au9v/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALna/wC5 2v8Butr/BLvb/wm93f8OwN7/EsHf/xTD4P8Vw+D/FsPg/xXD4P8Vw+D/FMPg/xPC4P8TwuD/E8Lg/xXD 4f8axeL/IMjk/yjM5v8wz+n/N9Lq/z7V6/9E1+z/Stnt/0/b7f9R3O7/Utzu/1Lc7v9R3O7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db7v9Q2+7/UNvu/1Db 7v9Q2+7/UNvu/1Hc7v9S3O7/Utzu/1Hc7v9P2+3/S9nt/0bX7f9A1ez/OdPr/zLQ6f8qzOf/Isnk/xrF 4v8Vw+H/E8Lg/xLC4P8TwuD/FMPg/xXD4P8Vw+D/FsPg/xXD4P8Uw+D/EsHf/w7A3v8Jvd3/BLvb/wG6 2v8Audr/ALna/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC62v8Autr/ALra/wC7 2/8AvNz/ALzd/wC62/8AtdX/AKvK/wCfu/8Akqz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgZn/AIeg/wCRrP8Anrr/AKrI/wC00/8Audn/ALrb/wC6 2v8Audn/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC4 2P8BuNj/ArnZ/wS62f8Gu9r/CLzb/wm82/8Kvdv/Cr3b/wq82/8JvNv/Cbzb/wi82/8HvNv/CLzb/wu9 3P8SwN7/HMTh/ybJ5P8wzeb/N9Do/zvS6f8/0+r/QdTq/0LU6v9D1er/Q9Xq/0PV6v9D1er/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU6v9D1Or/Q9Tq/0PU 6v9D1Or/Q9Tq/0PV6v9D1er/Q9Xq/0PV6v9C1Or/QdTq/z/T6v880un/ONDo/zDN5v8nyeT/HMTh/xLA 3v8Lvdz/CLzb/we82/8IvNv/Cbzb/wm82/8KvNv/Cr3b/wq92/8JvNv/CLzb/wa72v8Eutn/ArnZ/wG4 2P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC42P8AuNj/ALjY/wC5 2f8Autr/ALrb/wC52f8AtNP/AKrI/wCeuv8Akaz/AIeg/wCBmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH6W/wB+lv8AgJn/AIaf/wCQqv8Am7f/AKfE/wCvzv8AtNP/ALXV/wC1 1P8AtNP/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz 0/8As9P/ALTT/wG00/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8As9P/AbTT/wS1 1P8Mudb/Fr3Z/yLC3P8sxt//Msnh/zXK4v82y+L/Nsri/zXK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK 4v82yuL/Nsri/zbK4v82yuL/Nsri/zbK4v81yuL/Nsri/zbL4v81yuL/Msnh/yzG3/8iwtz/Fr3Z/wy5 1v8EtdT/AbTT/wCz0/8BtNP/ArTT/wK00/8CtNP/ArTT/wK00/8CtNP/ArTT/wG00/8BtNP/ALTT/wCz 0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wCz0/8As9P/ALPT/wC0 0/8AtdT/ALXV/wC00/8Ar87/AKfE/wCbt/8AkKr/AIaf/wCAmf8Afpb/AH6W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8Af5f/AH+W/wB/lv8AgJj/AIWe/wCNp/8AlrH/AJ+8/wCnxP8Aqsj/AKvK/wCr yf8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKnI/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnH/wCpx/8Aqcf/AKnH/wKq yP8Ircr/EbHN/xu10P8judL/KbvU/yu81P8rvNT/KrzU/ym71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8ou9T/KLvU/yi7 1P8ou9T/KLvU/yi71P8ou9T/KLvU/yi71P8pu9T/KrzU/yu81P8rvNT/KbvU/yO50v8btdD/EbHN/wit yv8Cqsj/AKnH/wCpx/8Aqcf/AKnH/wCpyP8Aqcj/AKnI/wCpyP8Aqcj/AKnI/wCqyP8Aqsj/AKrI/wCq yP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCqyP8Aqsj/AKrI/wCq yP8Aq8n/AKvK/wCqyP8Ap8T/AJ+8/wCWsf8Ajaf/AIWe/wCAmP8Af5b/AH+W/wB/l/8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIOc/wCJov8AkKr/AJax/wCbt/8Anrr/AJ+7/wCe u/8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrr/AJ26/wCduv8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCcuf8AnLn/AJ25/wKd uv8GoLv/DKK9/xOlv/8ZqMH/HarC/x6qwv8eqsL/HarC/xyqwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8bqcL/G6nC/xup wv8bqcL/G6nC/xupwv8bqcL/G6nC/xupwv8cqsL/HarC/x6qwv8eqsL/HarC/xmowf8Tpb//DKK9/wag u/8Cnbr/AJ25/wCcuf8AnLn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbn/AJ25/wCduf8Anbr/AJ26/wCe uv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCeuv8Anrr/AJ66/wCe uv8Anrv/AJ+7/wCeuv8Am7f/AJax/wCQqv8AiaL/AIOc/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AH+X/wB/l/8AgJj/AIKa/wCFnv8AiaL/AI2n/wCQqv8Akaz/AJKs/wCR rP8Akaz/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wGR q/8Dkqz/B5St/wuVrv8Ol6//EJiw/xGYsP8RmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCY sP8QmLD/EJiw/xCYsP8QmLD/EJiw/xCYsP8QmLD/EJiw/xGYsP8RmLD/EJiw/w6Xr/8Lla7/B5St/wOS rP8Bkav/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJCr/wCQq/8AkKv/AJGr/wCRq/8Akav/AJGr/wCR q/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCRq/8Akav/AJGr/wCR rP8Akaz/AJKs/wCRrP8AkKr/AI2n/wCJov8AhZ7/AIKa/wCAmP8Af5f/AH+X/wCAmP8AgJj/AICY/wCA mP8AgJj7AICY/ACAmPwAgJj8AICY/QCAmP4AgJj/AIGZ/wCCmv8Ag5z/AIWe/wCGn/8Ah5//AIeg/wCH oP8Ah6D/AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH n/8Ah5//AIef/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCH oP8Bh6D/A4ig/wSIof8FiaH/Bomh/weJof8HiaH/B4mh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/Bomh/waJ of8GiaH/Bomh/waJof8GiaH/Bomh/waJof8GiaH/B4mh/weJof8HiaH/Bomh/wWJof8EiKH/A4ig/wGH oP8Ah6D/AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIaf/wCGn/8Ahp//AIef/wCH n/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCHn/8Ah5//AIef/wCH oP8Ah6D/AIeg/wCHn/8Ahp//AIWe/wCDnP8Agpr/AIGZ/wCAmP8AgJj+AICY/QCAmPwAgJj8AICY/ACA mPsAgJjcAICY3gCAmOEAgJjmAICY7QCAmPQAgJj7AICY/wCAmP8AgJj/AICY/wCAmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCAmf8AgJn/AICZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGB mf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AYGZ/wGBmf8BgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AICZ/wCAmf8AgJn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCBmf8AgZn/AIGZ/wCB mf8AgZn/AIGZ/wCBmf8AgJn/AICY/wCAmP8AgJj/AICY/wCAmPsAgJj0AICY7QCAmOYAgJjhAICY3gCA mNwAgJimAICYqgCAmLEAgJi+AICY0ACAmOMAgJj0AICY/gB/l/8Af5f/AH+W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+W/wB/l/8Af5f/AICY/gCAmPQAgJjjAICY0ACAmL4AgJixAICYqgCA mKYAgJhoAICYbwCAmHsAgJiSAICYrwCAmNAAgJjtAICY/QB/l/8Af5f/AH+X/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9 lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB9lf8AfZX/AH2V/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+lv8Afpb/AH6W/wB+ lv8Afpb/AH6W/wB+lv8Afpb/AH+X/wB/l/8Af5f/AICY/QCAmO0AgJjQAICYrwCAmJIAgJh7AICYbwCA mGgAgJgwAICYOQCAmEoAgJhpAICYkgCAmL4AgJjmAICY/ACAmP8AgJj/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wB/ l/8Af5f/AH+X/wB/l/8Af5f/AH+X/wCAmP8AgJj/AICY/ACAmOYAgJi+AICYkgCAmGkAgJhKAICYOQCA mDAAgJgGAICYEQCAmCYAgJhKAICYewCAmLEAgJjhAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmOEAgJixAICYewCAmEoAgJgmAICYEQCA mAYAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mAAAgJgAAICYAACAmBQAgJg7AICYcACAmKsAgJjeAICY/ACAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/wCA mP8AgJj/AICY/wCAmP8AgJj/AICY/wCAmP8AgJj/AICY/ACAmN4AgJirAICYcACAmDsAgJgUAICYAACA mADAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAwAwAAAAAAAAAAAAAAAAAAAAAAA DAA= ================================================ FILE: DS_Map.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.32014.148 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DSPRE", "DS_Map\DSPRE.csproj", "{E3C66521-EE89-4406-92C4-FC1D40DC4200}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ekona", "Ekona\Ekona.csproj", "{736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Images", "Images\Images\Images.csproj", "{8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}" ProjectSection(ProjectDependencies) = postProject {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87} = {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Debug|Any CPU.Build.0 = Debug|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Debug|x64.ActiveCfg = Debug|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Debug|x64.Build.0 = Debug|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Debug|x86.ActiveCfg = Debug|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Debug|x86.Build.0 = Debug|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Release|Any CPU.ActiveCfg = Release|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Release|Any CPU.Build.0 = Release|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Release|x64.ActiveCfg = Release|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Release|x64.Build.0 = Release|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Release|x86.ActiveCfg = Release|Any CPU {E3C66521-EE89-4406-92C4-FC1D40DC4200}.Release|x86.Build.0 = Release|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Debug|Any CPU.Build.0 = Debug|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Debug|x64.ActiveCfg = Debug|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Debug|x64.Build.0 = Debug|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Debug|x86.ActiveCfg = Debug|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Debug|x86.Build.0 = Debug|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Release|Any CPU.ActiveCfg = Release|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Release|Any CPU.Build.0 = Release|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Release|x64.ActiveCfg = Release|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Release|x64.Build.0 = Release|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Release|x86.ActiveCfg = Release|Any CPU {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87}.Release|x86.Build.0 = Release|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|Any CPU.Build.0 = Debug|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x64.ActiveCfg = Debug|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x64.Build.0 = Debug|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x86.ActiveCfg = Debug|x86 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x86.Build.0 = Debug|x86 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|Any CPU.ActiveCfg = Release|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|Any CPU.Build.0 = Release|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x64.ActiveCfg = Release|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x64.Build.0 = Release|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x86.ActiveCfg = Release|x86 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {233F2ECD-9F46-44E0-923E-8738BF38CA17} EndGlobalSection EndGlobal ================================================ FILE: Ekona/Ekona.csproj ================================================  Debug AnyCPU 8.0.30703 2.0 {736010D3-F72F-4C56-B8D2-2EDD1B8F3A87} Library Properties Ekona Ekona v4.8 512 False False false 2.0 true Full false bin\Debug\ DEBUG;TRACE prompt 4 False Auto 4194304 AnyCPU false none true bin\Release\ TRACE prompt 4 False Auto 4194304 AnyCPU false False False Auto 4194304 AnyCPU Form OAMEditor.cs UserControl ImageControl.cs UserControl SpriteControl.cs UserControl PaletteControl.cs True True Resources.resx OAMEditor.cs ImageControl.cs SpriteControl.cs PaletteControl.cs ResXFileCodeGenerator Resources.Designer.cs Always ================================================ FILE: Ekona/EkonaLang.xml ================================================ Number of palette: Display all palettes Export Import Start byte: Depth: of Palettes Palette Use this palette Hexadecimal Colors to fill: Fill colors Double-click to see the full image. Image properties Offset: Hexadecimal Width: Height: Image pattern: Tile size: Num palette Transparency Set transparency Set box background Remove box background Imported tiles (bitmap only) Map compression Export Import Lineal Horizontal Vertical Full size image Palette import options Swap to original palette Replace palette Threshold Bank: Show all banks Base name (without extension) %s will be replace by the bank ID Export / Import multi-mode OAM Editor Export Import Set transparency color Set box background Remove box background Cell image options Show grid Show cell border Show image Transparency Show numbers Swap to original palette Banks Imported tiles (bitmap only) Replace palette Palette import options Threshold Tile import options Add image Replace image OAM Editor OAM: of Object 0 Y position: Rotation / Scale Object disable Double size Object mode: Normal Semi-transparent Window Invalid Mosaic Depth: 4 bpp (16 colors) 8 bpp (256 colors) Shape: Square Horizontal Vertical OAM id: Preview: Add OAM Remove OAM Object 1 X position: Select param: Flip X Flip Y Size: Object 2 Tile offset: Priority: Palette index: Save Auto set size: Preview options Transparency View oam border View image View numbers View grid Select OAM ================================================ FILE: Ekona/Helper/BinaryReaderBE.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 28/04/2012 20:22:31 // ----------------------------------------------------------------------- using System; using System.Linq; using System.IO; namespace Ekona.Helper { // Not finished public class BinaryReaderBE : BinaryReader { public BinaryReaderBE(string file) : base(File.OpenRead(file)) { } public override ushort ReadUInt16() { return BitConverter.ToUInt16(ReadBytes(2).Reverse().ToArray(), 0); } } } ================================================ FILE: Ekona/Helper/BinaryWriterBE.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 28/04/2012 20:18:58 // ----------------------------------------------------------------------- using System; using System.Linq; using System.IO; namespace Ekona.Helper { // Not finished public class BinaryWriterBE : BinaryWriter { public BinaryWriterBE(string file) : base(File.OpenWrite(file)) { } public override void Write(ushort value) { byte[] v = BitConverter.GetBytes(value); v = v.Reverse().ToArray(); Write(v); } } } ================================================ FILE: Ekona/Helper/BitsConverter.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 24/06/2012 14:28:44 // ----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ekona.Helper { public static class BitsConverter { // From Byte public static Byte[] ByteToBits(Byte data) { List bits = new List(); for (int j = 7; j >= 0; j--) bits.Add((byte)((data >> j) & 1)); return bits.ToArray(); } public static Byte[] ByteToBit2(Byte data) { Byte[] bit2 = new byte[4]; bit2[0] = (byte)(data & 0x3); bit2[1] = (byte)((data >> 2) & 0x3); bit2[2] = (byte)((data >> 4) & 0x3); bit2[3] = (byte)((data >> 6) & 0x3); return bit2; } public static Byte[] ByteToBit4(Byte data) { Byte[] bit4 = new Byte[2]; bit4[0] = (byte)(data & 0x0F); bit4[1] = (byte)((data & 0xF0) >> 4); return bit4; } public static Byte[] BytesToBit4(Byte[] data) { byte[] bit4 = new byte[data.Length * 2]; for (int i = 0; i < data.Length; i++) { byte[] b4 = ByteToBit4(data[i]); bit4[i * 2] = b4[0]; bit4[i * 2 + 1] = b4[1]; } return bit4; } public static String BytesToHexString(Byte[] bytes) { string result = ""; for (int i = 0; i < bytes.Length; i++) result += String.Format("{0:X}", bytes[i]); return result; } // To Byte public static Byte[] BitsToBytes(Byte[] bits) { List bytes = new List(); for (int i = 0; i < bits.Length; i += 8) { Byte newByte = 0; int b = 0; for (int j = 7; j >= 0; j--, b++) { newByte += (byte)(bits[i + b] << j); } bytes.Add(newByte); } return bytes.ToArray(); } public static Byte Bit4ToByte(Byte[] data) { return (byte)(data[0] + (data[1] << 4)); } public static Byte Bit4ToByte(Byte b1, Byte b2) { return (byte)(b1 + (b2 << 4)); } public static Byte[] Bits4ToByte(Byte[] data) { byte[] b = new byte[data.Length / 2]; for (int i = 0; i < data.Length; i += 2) b[i / 2] = Bit4ToByte(data[i], data[i + 1]); return b; } public static Byte[] StringToBytes(String text, int num_bytes) { string hexText = text.Replace("-", ""); hexText = hexText.PadRight(num_bytes * 2, '0'); List hex = new List(); for (int i = 0; i < hexText.Length; i += 2) hex.Add(Convert.ToByte(hexText.Substring(i, 2), 16)); return hex.ToArray(); } } } ================================================ FILE: Ekona/Helper/CRC.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 24/06/2012 14:45:49 // ----------------------------------------------------------------------- using System; using System.Collections; using System.IO; using System.Text; namespace Ekona.Helper { public static class CRC16 { public static UInt32 Calculate(byte[] bytes, UInt32 init = 0xFFFF) { UInt32 crc = init; for (int i = 0; i < bytes.Length; i++) { crc = (crc >> 8) ^ crc16tab[(crc ^ bytes[i]) & 0xFF]; } return crc; } private static ushort[] crc16tab = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 }; } public static class CRC32 { // Code from: http://www.codeproject.com/KB/cs/PngUtil.aspx credits to Paul Young /// /// Create the CRC-32 table /// private static void CreateCrcTable() { uint c; int k; int n; for (n = 0; n < 256; n++) { c = (uint)n; for (k = 0; k < 8; k++) { if ((c & 1) == 1) { c = 0xedb88320 ^ (c >> 1); } else { c = c >> 1; } } CrcTable[n] = c; } IsTableCreated = true; } static uint[] CrcTable = new uint[256]; static bool IsTableCreated = false; /// /// Calculate the CRC from the buffer /// /// Data to calculate the CRC32 /// 4 bytes with the CRC32 code public static byte[] Calculate(byte[] buffer) { uint data = 0xFFFFFFFF; int n; if (!IsTableCreated) CreateCrcTable(); for (n = 0; n < buffer.Length; n++) data = CrcTable[(data ^ buffer[n]) & 0xff] ^ (data >> 8); data = data ^ 0xFFFFFFFF; byte b1 = Convert.ToByte(data >> 24); byte b2 = Convert.ToByte(b1 << 8 ^ data >> 16); byte b3 = Convert.ToByte(((data >> 16 << 16) ^ (data >> 8 << 8)) >> 8); byte b4 = Convert.ToByte((data >> 8 << 8) ^ data); return new byte[] { b1, b2, b3, b4 }; } } } ================================================ FILE: Ekona/Helper/IOutil.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 04/07/2012 12:55:15 // ----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Microsoft.Win32; namespace Ekona.Helper { public static class IOutil { public static void Append(ref BinaryWriter bw, string file) { BinaryReader br = new BinaryReader(File.OpenRead(file)); Append(ref bw, ref br); br.Close(); br = null; } public static void Append(ref BinaryWriter bw, ref BinaryReader br) { const int block_size = 0x80000; // 512 KB int size = (int)br.BaseStream.Length; while (br.BaseStream.Position + block_size < size) { bw.Write(br.ReadBytes(block_size)); bw.Flush(); } int rest = size - (int)br.BaseStream.Position; bw.Write(br.ReadBytes(rest)); bw.Flush(); } public static string LastSelectedFile() { string recent = Environment.GetFolderPath(Environment.SpecialFolder.Recent); DirectoryInfo info = new DirectoryInfo(recent); FileInfo[] files = info.GetFiles().OrderBy(p => p.LastAccessTime).ToArray(); if (files.Length > 0) { for (int i = 1; i <= files.Length ; i++) { LNK link = new LNK(files[files.Length - i].FullName); if (!link.FileAttribute.archive) continue; return link.Path; } } return null; } public static string GetLastOpenSaveFile(string extention) { // IT DOESN'T WORK YET RegistryKey regKey = Registry.CurrentUser; string lastUsedFolder = string.Empty; regKey = regKey.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSavePidlMRU"); if (string.IsNullOrEmpty(extention)) return lastUsedFolder; RegistryKey myKey = regKey.OpenSubKey(extention); if (myKey == null && regKey.GetSubKeyNames().Length > 0) return lastUsedFolder; string[] names = myKey.GetValueNames(); if (names != null && names.Length > 0) { File.WriteAllBytes("G:\\reg.bin", (byte[])myKey.GetValue(names[names.Length - 1])); //lastUsedFolder = new String(Encoding.ASCII.GetChars((byte[])myKey.GetValue(names[names.Length - 2]))); } return lastUsedFolder; } } } ================================================ FILE: Ekona/Helper/LNK.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 06/08/2012 14:08:22 // ----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Ekona.Helper { /// /// Specification from http://msdn.microsoft.com/en-us/library/dd871305%28v=prot.13%29.aspx /// public class LNK { SHELL_LINK lnk; public LNK(string fileIn) { Read(fileIn); } private void Read(string fileIn) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); lnk = new SHELL_LINK(); lnk.header = Read_Header(br); if (lnk.header.linkFlags.hasLinkTargetIDList) lnk.idlist = Read_LinkIDList(br); if (lnk.header.linkFlags.hasLinkInfo) lnk.info = Read_LinkInfo(br); lnk.sdata = Read_StringData(br); lnk.extra = Read_Extra(br); br.Close(); br = null; } private SHELL_LINK_HEADER Read_Header(BinaryReader br) { SHELL_LINK_HEADER header = new SHELL_LINK_HEADER(); header.headerSize = br.ReadUInt32(); if (header.headerSize != 0x4C) throw new FormatException("Incorrect file size!"); header.linkCLSID = br.ReadBytes(0x10); for (int i = 0; i < 0x10; i++) if (header.linkCLSID[i] != CLSID[i]) throw new FormatException("Invalid CLSID!"); header.linkFlags = Read_LinkFlags(br.ReadUInt32()); header.fileAttributes = Read_FileAttribute(br.ReadUInt32()); header.creationTime.dateTime = br.ReadUInt64(); header.accessTime.dateTime = br.ReadUInt64(); header.writeTime.dateTime = br.ReadUInt64(); header.fileSize = br.ReadUInt32(); header.iconIndex = br.ReadInt32(); header.showCommand = (SHOW_COMMAND)br.ReadUInt32(); header.hotKey.low = (HOTKEYS_FLAGS.LOW_BYTE)br.ReadByte(); header.hotKey.hight = (HOTKEYS_FLAGS.HIGH_BYTE)br.ReadByte(); header.reserved1 = br.ReadUInt16(); header.reserved2 = br.ReadUInt32(); header.reserved3 = br.ReadUInt32(); return header; } private LINK_FLAGS Read_LinkFlags(uint value) { LINK_FLAGS flags = new LINK_FLAGS(); flags.hasLinkTargetIDList = Get_Boolean(value); value >>= 1; flags.hasLinkInfo = Get_Boolean(value); value >>= 1; flags.hasName = Get_Boolean(value); value >>= 1; flags.hasRelativePath = Get_Boolean(value); value >>= 1; flags.hasWorkingDir = Get_Boolean(value); value >>= 1; flags.hasArguments = Get_Boolean(value); value >>= 1; flags.hasIconLocation = Get_Boolean(value); value >>= 1; flags.isUnicode = Get_Boolean(value); value >>= 1; flags.forceNoLinkInfo = Get_Boolean(value); value >>= 1; flags.hasExpString = Get_Boolean(value); value >>= 1; flags.runInSeparateProcess = Get_Boolean(value); value >>= 1; flags.unused1 = Get_Boolean(value); value >>= 1; flags.hasDarwinID = Get_Boolean(value); value >>= 1; flags.runAsUser = Get_Boolean(value); value >>= 1; flags.hasExpIcon = Get_Boolean(value); value >>= 1; flags.noPidlAlias = Get_Boolean(value); value >>= 1; flags.unused2 = Get_Boolean(value); value >>= 1; flags.runWithShimLayer = Get_Boolean(value); value >>= 1; flags.forceNoLinkTrack = Get_Boolean(value); value >>= 1; flags.enableTargetMetadata = Get_Boolean(value); value >>= 1; flags.disableLinkPathTracking = Get_Boolean(value); value >>= 1; flags.disableKnownFolderAlias = Get_Boolean(value); value >>= 1; flags.allowLinkToLink = Get_Boolean(value); value >>= 1; flags.unaliasOnSave = Get_Boolean(value); value >>= 1; flags.preferEnvironmentPath = Get_Boolean(value); value >>= 1; flags.keepLocalIDListForUNCTarget = Get_Boolean(value); return flags; } private FILE_ATTRIBUTE_FLAGS Read_FileAttribute(uint value) { FILE_ATTRIBUTE_FLAGS flags = new FILE_ATTRIBUTE_FLAGS(); flags.readOnly = Get_Boolean(value); value >>= 1; flags.hidden = Get_Boolean(value); value >>= 1; flags.system = Get_Boolean(value); value >>= 1; flags.reserved1 = Get_Boolean(value); value >>= 1; flags.directory = Get_Boolean(value); value >>= 1; flags.archive = Get_Boolean(value); value >>= 1; flags.reserved2 = Get_Boolean(value); value >>= 1; flags.normal = Get_Boolean(value); value >>= 1; flags.temporary = Get_Boolean(value); value >>= 1; flags.sparse_file = Get_Boolean(value); value >>= 1; flags.compressed = Get_Boolean(value); value >>= 1; flags.offline = Get_Boolean(value); value >>= 1; flags.offline = Get_Boolean(value); value >>= 1; flags.not_content_indexed = Get_Boolean(value); value >>= 1; flags.encrypted = Get_Boolean(value); value >>= 1; return flags; } private LINKTARGET_IDLIST Read_LinkIDList(BinaryReader br) { LINKTARGET_IDLIST idlist = new LINKTARGET_IDLIST(); idlist.IDListSize = br.ReadUInt16(); idlist.IDList = Read_IDList(br); return idlist; } private IDLIST Read_IDList(BinaryReader br) { IDLIST idlist = new IDLIST(); idlist.itemIDList = new List(); ushort size = br.ReadUInt16(); while (size != 0) { ITEM_IDLIST item = new ITEM_IDLIST(); item.itemIDSize = size; item.data = br.ReadBytes(size - 2); idlist.itemIDList.Add(item); size = br.ReadUInt16(); } idlist.terminalID = size; return idlist; } private LINKINFO Read_LinkInfo(BinaryReader br) { LINKINFO info = new LINKINFO(); uint info_pos = (uint)br.BaseStream.Position; info.linkInfoSize = br.ReadUInt32(); info.linkInfoHeaderSize = br.ReadUInt32(); uint value = br.ReadUInt32(); info.volumeIDAndLocalBasePath = Get_Boolean(value); value >>= 1; info.commonNetworkRelativeLinkAndPathSuffix = Get_Boolean(value); info.volumeIDOffset = br.ReadUInt32(); info.localBasePathOffset = br.ReadUInt32(); info.commonNetworkRelativeLinkOffset = br.ReadUInt32(); info.commonPathSuffixOffset = br.ReadUInt32(); if (info.linkInfoHeaderSize >= 0x24) { info.localBasePathOffsetUnicode = br.ReadUInt32(); info.commonPathSuffixOffsetUnicode = br.ReadUInt32(); } if (info.volumeIDAndLocalBasePath) { // Volume ID uint volumeID_pos = info_pos + info.volumeIDOffset; br.BaseStream.Position = volumeID_pos; info.volumeID = new VOLUMEID(); info.volumeID.volumeIDSize = br.ReadUInt32(); info.volumeID.driveType = (DRIVE_TYPE)br.ReadUInt32(); info.volumeID.driveSerialNumber = br.ReadUInt32(); info.volumeID.volumeLabelOffset = br.ReadUInt32(); if (info.volumeID.volumeLabelOffset != 0x14) info.volumeID.data = Get_String(br, false, volumeID_pos + info.volumeID.volumeLabelOffset); else { info.volumeID.volumeLabelOffsetUnicode = br.ReadUInt32(); info.volumeID.data = Get_String(br, true, volumeID_pos + info.volumeID.volumeLabelOffsetUnicode); } // Local Base Path info.localBasePath = Get_String(br, false, info_pos + info.localBasePathOffset); } if (info.commonNetworkRelativeLinkAndPathSuffix) { // Common Network Relative Link uint cnrl_pos = info_pos + info.commonNetworkRelativeLinkOffset; info.cnrl = new COMMON_NETWORK_RELATIVE_LINK(); info.cnrl.cnrl_size = br.ReadUInt32(); uint flags = br.ReadUInt32(); info.cnrl.validDevice = Get_Boolean(flags); flags >>= 1; info.cnrl.validNetType = Get_Boolean(flags); info.cnrl.netNameOffset = br.ReadUInt32(); info.cnrl.deviceNameOffset = br.ReadUInt32(); uint networkprovider = br.ReadUInt32(); if (info.cnrl.validNetType) info.cnrl.networkProviderType = (PROVIDER_TYPE)networkprovider; if (info.cnrl.netNameOffset > 0x14) { info.cnrl.netNameOffsetUnicode = br.ReadUInt32(); info.cnrl.deviceNameOffsetUnicode = br.ReadUInt32(); } info.cnrl.netName = Get_String(br, false, cnrl_pos + info.cnrl.netNameOffset); if (info.cnrl.validDevice) info.cnrl.deviceName = Get_String(br, false, cnrl_pos + info.cnrl.deviceNameOffset); if (info.cnrl.netNameOffset > 0x14) { info.cnrl.netNameUnicode = Get_String(br, true, cnrl_pos + info.cnrl.netNameOffsetUnicode); info.cnrl.deviceNameUnicode = Get_String(br, true, cnrl_pos + info.cnrl.deviceNameOffsetUnicode); } } info.commonPathSuffix = Get_String(br, false, info_pos + info.commonPathSuffixOffset); if (info.linkInfoHeaderSize >= 0x24 && info.volumeIDAndLocalBasePath) info.localBasePathUnicode = Get_String(br, true, info_pos + info.localBasePathOffsetUnicode); if (info.linkInfoHeaderSize >= 0x24) info.commonPathSuffixUnicode = Get_String(br, true, info_pos + info.commonPathSuffixOffsetUnicode); return info; } private STRING_DATA Read_StringData(BinaryReader br) { STRING_DATA sdata = new STRING_DATA(); if (lnk.header.linkFlags.hasName) { sdata.nameString = new NAME_STRING(); sdata.nameString.countCharacters = br.ReadUInt16(); sdata.nameString.value = Get_String(br, sdata.nameString.countCharacters, true); } if (lnk.header.linkFlags.hasRelativePath) { sdata.relativePath = new RELATIVE_PATH(); sdata.relativePath.countCharacters = br.ReadUInt16(); sdata.relativePath.value = Get_String(br, sdata.relativePath.countCharacters, true); } if (lnk.header.linkFlags.hasWorkingDir) { sdata.workingDir = new WORKING_DIR(); sdata.workingDir.countCharacters = br.ReadUInt16(); sdata.workingDir.value = Get_String(br, sdata.workingDir.countCharacters, true); } if (lnk.header.linkFlags.hasArguments) { sdata.commandLineArgs = new COMMAND_LINE_ARGUMENTS(); sdata.commandLineArgs.countCharacters = br.ReadUInt16(); sdata.commandLineArgs.value = Get_String(br, sdata.commandLineArgs.countCharacters, true); } if (lnk.header.linkFlags.hasIconLocation) { sdata.iconLocation = new ICON_LOCATION(); sdata.iconLocation.countCharacters = br.ReadUInt16(); sdata.iconLocation.value = Get_String(br, sdata.iconLocation.countCharacters, true); } return sdata; } private EXTRA_DATA Read_Extra(BinaryReader br) { EXTRA_DATA extra = new EXTRA_DATA(); for (; ; ) { uint size = br.ReadUInt32(); if (size < 0x04) { extra.terminal.terminal = size; return extra; } uint sign = br.ReadUInt32(); switch (sign) { case 0xA0000001: extra.environment.blockSize = size; extra.environment.blockSignature = sign; extra.environment.targetAnsi = Get_String(br, 260, false); extra.environment.targetUnicode = Get_String(br, 260, true); break; case 0xA0000002: CONSOLE_PROPS cp = new CONSOLE_PROPS(); cp.blockSize = size; cp.blockSignature = sign; cp.fillAttributes = (FILL_ATTRIBUTES)br.ReadUInt16(); cp.popupFillAttributes = br.ReadUInt16(); cp.screenBufferSizeX = br.ReadUInt16(); cp.screenBufferSizeY = br.ReadUInt16(); cp.windowSizeX = br.ReadUInt16(); cp.windowSizeY = br.ReadUInt16(); cp.windowOriginX = br.ReadUInt16(); cp.windowOriginY = br.ReadUInt16(); cp.unused1 = br.ReadUInt32(); cp.unused2 = br.ReadUInt32(); cp.fontSize = br.ReadUInt32(); cp.fontFamily = (FONT_FAMILY)br.ReadUInt32(); cp.fontWeight = br.ReadUInt32(); cp.faceName = Get_String(br, 32, true); cp.cursorSize = br.ReadUInt32(); cp.fullScreen = br.ReadUInt32(); cp.quickEdit = br.ReadUInt32(); cp.insertMode = br.ReadUInt32(); cp.autoPosition = br.ReadUInt32(); cp.historyBufferSize = br.ReadUInt32(); cp.numberOfHistoryBuffer = br.ReadUInt32(); cp.historyNoDup = br.ReadUInt32(); cp.colorTable = new uint[0x10]; for (int i = 0; i < 0x10; i++) cp.colorTable[i] = br.ReadUInt32(); extra.console = cp; break; case 0xA0000003: extra.tracker.blockSize = size; extra.tracker.blockSignature = sign; extra.tracker.length = br.ReadUInt32(); extra.tracker.version = br.ReadUInt32(); extra.tracker.machineID = Get_String(br, 0x10, false); extra.tracker.droid = br.ReadBytes(0x20); extra.tracker.droidBirth = br.ReadBytes(0x20); break; case 0xA0000004: extra.consoleFe.blockSize = size; extra.consoleFe.blockSignature = sign; extra.consoleFe.codePage = br.ReadUInt32(); break; case 0xA0000005: extra.specialFolder.blockSize = size; extra.specialFolder.blockSignature = sign; extra.specialFolder.specialFolderID = br.ReadUInt32(); extra.specialFolder.offset = br.ReadUInt32(); break; case 0xA0000006: extra.darwin.blockSize = size; extra.darwin.blockSignature = sign; extra.darwin.darwinDataAnsi = Get_String(br, 260, false); extra.darwin.darwinDataUnicode = Get_String(br, 260, true); break; case 0xA0000007: extra.iconEnvironment.blockSize = size; extra.iconEnvironment.blockSignature = sign; extra.iconEnvironment.targetAnsi = Get_String(br, 260, false); extra.iconEnvironment.targetUnicode = Get_String(br, 260, true); break; case 0xA0000008: extra.shim.blockSize = size; extra.shim.blockSignature = sign; extra.shim.layerName = Get_String(br, (int)extra.shim.blockSize - 8, true); break; case 0xA0000009: extra.propertyStore.blockSize = size; extra.propertyStore.blockSignature = sign; extra.propertyStore.propertyStore = null; break; case 0xA000000B: extra.knownFolder.blockSize = size; extra.knownFolder.blockSignature = sign; extra.knownFolder.knownFolderID = br.ReadBytes(0x10); extra.knownFolder.offset = br.ReadUInt32(); break; case 0xA000000C: extra.vistaIDList.blockSize = size; extra.vistaIDList.blockSignature = sign; extra.vistaIDList.idlist = Read_IDList(br); break; } } } private bool Get_Boolean(uint value) { uint v = value & 1; return (v == 0 ? false : true); } private string Get_String(BinaryReader br, bool unicode, uint offset = 0) { if (offset != 0) br.BaseStream.Position = offset; string t = ""; char c; for ( ; ; ) { if (unicode) c = Encoding.Unicode.GetChars(br.ReadBytes(2))[0]; else c = br.ReadChar(); if (c == '\0') break; t += c; } return t; } private string Get_String(BinaryReader br, int size, bool unicode) { if (!unicode) return new string(Encoding.Default.GetChars(br.ReadBytes(size))); else return new string(Encoding.Unicode.GetChars(br.ReadBytes(size * 2))); } public static bool Check(string fileIn) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); uint hsize = br.ReadUInt32(); if (hsize != 0x4C) return false; byte[] linkCLSID = br.ReadBytes(0x10); for (int i = 0; i < 0x10; i++) if (linkCLSID[i] != CLSID[i]) return false; br.Close(); br = null; return true; } public string Path { get { return lnk.info.commonPathSuffix + lnk.info.localBasePath; } } public FILE_ATTRIBUTE_FLAGS FileAttribute { get { return lnk.header.fileAttributes; } } #region Structures public struct SHELL_LINK { public SHELL_LINK_HEADER header; public LINKTARGET_IDLIST idlist; // Optional public LINKINFO info; // Optional public STRING_DATA sdata; // Optional public EXTRA_DATA extra; // Optional } public struct SHELL_LINK_HEADER { public uint headerSize; // Must be 0x4C public byte[] linkCLSID; // Must be 00021401-0000-0000-C000-000000000046. public LINK_FLAGS linkFlags; public FILE_ATTRIBUTE_FLAGS fileAttributes; public FILE_TIME creationTime; public FILE_TIME accessTime; public FILE_TIME writeTime; public uint fileSize; public int iconIndex; public SHOW_COMMAND showCommand; public HOTKEYS_FLAGS hotKey; public ushort reserved1; // Must be 00 public uint reserved2; // Must be 00 public uint reserved3; // Must be 00 } public struct LINK_FLAGS // 4 bytes { public bool hasLinkTargetIDList; public bool hasLinkInfo; public bool hasName; public bool hasRelativePath; public bool hasWorkingDir; public bool hasArguments; public bool hasIconLocation; public bool isUnicode; // Should be true public bool forceNoLinkInfo; // LinkInfo ignored public bool hasExpString; public bool runInSeparateProcess; public bool unused1; // Must be ignored public bool hasDarwinID; public bool runAsUser; public bool hasExpIcon; public bool noPidlAlias; public bool unused2; // Must be ignored public bool runWithShimLayer; public bool forceNoLinkTrack; public bool enableTargetMetadata; public bool disableLinkPathTracking; public bool diableKnownFolderTracking; public bool disableKnownFolderAlias; public bool allowLinkToLink; public bool unaliasOnSave; public bool preferEnvironmentPath; public bool keepLocalIDListForUNCTarget; } public struct FILE_ATTRIBUTE_FLAGS // 4 bytes { public bool readOnly; public bool hidden; public bool system; public bool reserved1; // Must be 0 public bool directory; public bool archive; public bool reserved2; // Must be 0 public bool normal; public bool temporary; public bool sparse_file; public bool reparse_point; public bool compressed; public bool offline; public bool not_content_indexed; public bool encrypted; } public struct FILE_TIME // 8 bytes { // FROM: http://msdn.microsoft.com/en-us/library/cc230273%28v=prot.10%29.aspx // "The FILETIME structure is a 64-bit value that represents the number of // 100-nanosecond intervals that have elapsed since January 1, 1601, Coordinated Universal Time (UTC)." //uint dwLowDateTime; //uint dwHightDateTime; public ulong dateTime; } public enum SHOW_COMMAND : uint { SW_SHOWNORMAL = 0x01, // Default SW_SHOWMAXIMIZED = 0x03, SW_SHOWMINNOACTIVE = 0x07 } public struct HOTKEYS_FLAGS // 2 bytes { public LOW_BYTE low; public HIGH_BYTE hight; public enum LOW_BYTE : byte { K_0 = 0x30, K_1 = 0x31, K_2 = 0x32, K_3 = 0x33, K_4 = 0x34, K_5 = 0x35, K_6 = 0x36, K_7 = 0x37, K_8 = 0x38, K_9 = 0x39, K_A = 0x41, K_B = 0x42, K_C = 0x43, K_D = 0x44, K_E = 0x45, K_F = 0x46, K_G = 0x47, K_H = 0x48, K_I = 0x49, K_J = 0x4A, K_K = 0x4B, K_L = 0x4C, K_M = 0x4D, K_N = 0x4E, K_O = 0x4F, K_P = 0x50, K_Q = 0x51, K_R = 0x52, K_S = 0x53, K_T = 0x54, K_U = 0x55, K_V = 0x56, K_W = 0x57, K_X = 0x58, K_Y = 0x59, K_Z = 0x5A, VK_F1 = 0x70, VK_F2 = 0x71, VK_F3 = 0x72, VK_F4 = 0x73, VK_F5 = 0x74, VK_F6 = 0x75, VK_F7 = 0x76, VK_F8 = 0x77, VK_F9 = 0x78, VK_F10 = 0x79, VK_F11 = 0x7A, VK_F12 = 0x7B, VK_F13 = 0x7C, VK_F14 = 0x7D, VK_F15 = 0x7E, VK_F16 = 0x7F, VK_F17 = 0x80, VK_F18 = 0x81, VK_F19 = 0x82, VK_F20 = 0x83, VK_F21 = 0x84, VK_F22 = 0x85, VK_F23 = 0x86, VK_F24 = 0x87, VK_NUMLOCK = 0x90, VK_SCROLL = 0x91 } public enum HIGH_BYTE : byte { HOTKEYF_SHIFT = 0x01, HOTKEYF_CONTROL = 0x02, HOTKEYF_ALT = 0x04 } } public struct LINKTARGET_IDLIST { // The presence of this optional structure is // specified by the HasLinkTargetIDList bit public ushort IDListSize; public IDLIST IDList; } public struct IDLIST { public List itemIDList; public ushort terminalID; // Must be 0000 } public struct ITEM_IDLIST { public ushort itemIDSize; public byte[] data; } public struct LINKINFO { public uint linkInfoSize; public uint linkInfoHeaderSize; // 0x1C->no optional fields; >= 0x24 optional fields // Flags, in total 4 bytes public bool volumeIDAndLocalBasePath; public bool commonNetworkRelativeLinkAndPathSuffix; // Offsets public uint volumeIDOffset; public uint localBasePathOffset; public uint commonNetworkRelativeLinkOffset; public uint commonPathSuffixOffset; public uint localBasePathOffsetUnicode; public uint commonPathSuffixOffsetUnicode; public VOLUMEID volumeID; public string localBasePath; // NULL-terminated public COMMON_NETWORK_RELATIVE_LINK cnrl; public string commonPathSuffix; // NULL-terminated public string localBasePathUnicode; // UNICODE & NULL-terminated public string commonPathSuffixUnicode; // UNICODE & NULL-terminated } public struct VOLUMEID { public uint volumeIDSize; // MUST be > 0x10 public DRIVE_TYPE driveType; public uint driveSerialNumber; public uint volumeLabelOffset; // NULL-terminated public uint volumeLabelOffsetUnicode; // UNICODE & NULL-terminated public string data; } public enum DRIVE_TYPE : uint { DRIVE_UNKNOWN = 0x00, DRIVE_NO_ROOT_DIR = 0x01, DRIVE_REMOVABLE = 0x02, DRIVE_FIXED = 0x03, DRIVE_REMOTE = 0x04, DRIVE_CDROM = 0x05, DRIVE_RAMDISK = 0x06 } public struct COMMON_NETWORK_RELATIVE_LINK { public uint cnrl_size; // Flags - 4 bytes public bool validDevice; public bool validNetType; // Offsets public uint netNameOffset; public uint deviceNameOffset; public PROVIDER_TYPE networkProviderType; public uint netNameOffsetUnicode; public uint deviceNameOffsetUnicode; public string netName; // Null-terminated public string deviceName; // Null-terminated public string netNameUnicode; // Unicode & Null-terminated public string deviceNameUnicode; // Unicode & Null-terminated } public enum PROVIDER_TYPE : uint { WNNC_NET_AVID = 0x001A0000, WNNC_NET_DOCUSPACE = 0x001B0000, WNNC_NET_MANGOSOFT = 0x001C0000, WNNC_NET_SERNET = 0x001D0000, WNNC_NET_RIVERFRONT1 = 0x001E0000, WNNC_NET_RIVERFRONT2 = 0x001F0000, WNNC_NET_DECORB = 0x00200000, WNNC_NET_PROTSTOR = 0x00210000, WNNC_NET_FJ_REDIR = 0x00220000, WNNC_NET_DISTINCT = 0x00230000, WNNC_NET_TWINS = 0x00240000, WNNC_NET_RDR2SAMPLE = 0x00250000, WNNC_NET_CSC = 0x00260000, WNNC_NET_3IN1 = 0x00270000, WNNC_NET_EXTENDNET = 0x00290000, WNNC_NET_STAC = 0x002A0000, WNNC_NET_FOXBAT = 0x002B0000, WNNC_NET_YAHOO = 0x002C0000, WNNC_NET_EXIFS = 0x002D0000, WNNC_NET_DAV = 0x002E0000, WNNC_NET_KNOWARE = 0x002F0000, WNNC_NET_OBJECT_DIRE = 0x0030000, WNNC_NET_MASFAX = 0x00310000, WNNC_NET_HOB_NFS = 0x00320000, WNNC_NET_SHIVA = 0x00330000, WNNC_NET_IBMAL = 0x00340000, WNNC_NET_LOCK = 0x00350000, WNNC_NET_TERMSRV = 0x00360000, WNNC_NET_SRT = 0x00370000, WNNC_NET_QUINCY = 0x00380000, WNNC_NET_OPENAFS = 0x00390000, WNNC_NET_AVID1 = 0x003A0000, WNNC_NET_DFS = 0x003B0000, WNNC_NET_KWNP = 0x003C0000, WNNC_NET_ZENWORKS = 0x003D0000, WNNC_NET_DRIVEONWEB = 0x003E0000, WNNC_NET_VMWARE = 0x003F0000, WNNC_NET_RSFX = 0x00400000, WNNC_NET_MFILES = 0x00410000, WNNC_NET_MS_NFS = 0x00420000, WNNC_NET_GOOGLE = 0x00430000 } public struct STRING_DATA { public NAME_STRING nameString; public RELATIVE_PATH relativePath; public WORKING_DIR workingDir; public COMMAND_LINE_ARGUMENTS commandLineArgs; public ICON_LOCATION iconLocation; } public struct NAME_STRING { public ushort countCharacters; public string value; } public struct RELATIVE_PATH { public ushort countCharacters; public string value; } public struct WORKING_DIR { public ushort countCharacters; public string value; } public struct COMMAND_LINE_ARGUMENTS { public ushort countCharacters; public string value; } public struct ICON_LOCATION { public ushort countCharacters; public string value; } public struct EXTRA_DATA { public CONSOLE_PROPS console; public CONSOLE_FE_PROPS consoleFe; public DRAWIN_PROPS darwin; public ENVIRONMENT_PROPS environment; public ICON_ENVIRONMENT_PROPS iconEnvironment; public KNOWN_FOLDER_PROPS knownFolder; public PROPERTY_STORE_PROPS propertyStore; public SHIM_PROPS shim; public SPECIAL_FOLDER_PROPS specialFolder; public TRACKER_PROPS tracker; public VISTA_AND_ABOVE_IDLIST_PROPS vistaIDList; public TERMINAL_BLOCK terminal; } public struct CONSOLE_PROPS { public uint blockSize; // MUST be 0xCC public uint blockSignature; // MUST be 0xA0000002 public FILL_ATTRIBUTES fillAttributes; public ushort popupFillAttributes; public ushort screenBufferSizeX; public ushort screenBufferSizeY; public ushort windowSizeX; public ushort windowSizeY; public ushort windowOriginX; public ushort windowOriginY; public uint unused1; public uint unused2; public uint fontSize; public FONT_FAMILY fontFamily; public uint fontWeight; // More than 700 bold font public string faceName; // 64 bytes UNICODE public uint cursorSize; public uint fullScreen; // Different to 0 -> Full-screen public uint quickEdit; // Different to 0 -> ON public uint insertMode; // Different to 0 -> ON public uint autoPosition; // Different to 0 -> Auto public uint historyBufferSize; public uint numberOfHistoryBuffer; public uint historyNoDup; // Different to 0 -> Allowed public uint[] colorTable; // RGB 32-bits colors } public enum FILL_ATTRIBUTES : ushort { FOREGROUND_BLUE = 0x01, FOREGROUND_GREEN = 0x02, FOREGROUND_RED = 0x04, FOREGROUND_INTENSITY = 0x08, BACKGROUND_BLUE = 0x10, BACKGROUND_GREEN = 0x20, BACKGROUND_RED = 0x40, BACKGROUND_INTENSITY = 0x80 } public enum FONT_FAMILY : uint { FF_DONTCARE = 0x00, FF_ROMAN = 0x10, FF_SWISS = 0x20, FF_MODERN = 0x30, FF_SCRIPT = 0x40, FF_DECORATIVE = 0x50 } public struct CONSOLE_FE_PROPS { public uint blockSize; // MUST be 0xC public uint blockSignature; // MUST be 0xA0000004 public uint codePage; } public struct DRAWIN_PROPS { public uint blockSize; // Must be 0x314 public uint blockSignature; // Must be 0xA0000006 public string darwinDataAnsi; // 260 bytes, Null-terminated public string darwinDataUnicode; // 520 bytes Unicode, Null-terminated } public struct ENVIRONMENT_PROPS { public uint blockSize; // Must be 0x314 public uint blockSignature; // Must be 0xA0000001 public string targetAnsi; // 260 bytes, null-terminated public string targetUnicode; // 520 bytes, null-terminated, unicode } public struct ICON_ENVIRONMENT_PROPS { public uint blockSize; // Must be 0x314 public uint blockSignature; // Must be 0xA0000007 public string targetAnsi; // 260 bytes, null-terminated public string targetUnicode; // 520 bytes, null-terminated, unicode } public struct KNOWN_FOLDER_PROPS { public uint blockSize; // Must be 0x1C public uint blockSignature; // Must be 0xA000000B public byte[] knownFolderID; public uint offset; } public struct PROPERTY_STORE_PROPS { public uint blockSize; // Must be >= 0x0C public uint blockSignature; // Mst be 0xA0000009 public byte[] propertyStore; } public struct SHIM_PROPS { public uint blockSize; // Must be >= 0x88 public uint blockSignature; // Must be 0xA0000008 public string layerName; // Unicode } public struct SPECIAL_FOLDER_PROPS { public uint blockSize; // Must be 0x10 public uint blockSignature; // Must be 0xA0000005 public uint specialFolderID; public uint offset; } public struct TRACKER_PROPS { public uint blockSize; // Must be 0x60 public uint blockSignature; // Must be 0xA0000003 public uint length; // Must be >= 0x58 public uint version; // Must be 0x00 public string machineID; public byte[] droid; // Two GUID public byte[] droidBirth; // Two GUID } public struct VISTA_AND_ABOVE_IDLIST_PROPS { public uint blockSize; // Must be >= 0x0A public uint blockSignature; // Must be 0xA000000C public IDLIST idlist; } public struct TERMINAL_BLOCK { public uint terminal; // Less than 0x04 } static byte[] CLSID = { 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 }; #endregion } } ================================================ FILE: Ekona/Helper/Translation.cs ================================================ //----------------------------------------------------------------------- // // Copyright (C) 2013 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see "http://www.gnu.org/licenses/". // // pleoNeX // benito356@gmail.com // 07/03/2013 //----------------------------------------------------------------------- namespace Ekona.Helper { using System; using System.IO; using System.Reflection; using System.Windows.Forms; using System.Xml.Linq; /// /// Represents operations to get text in different languages. /// public static class Translation { private static string language; /// /// Initializes a new instance of the class. /// static Translation() { string tinkePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); XDocument confXml = XDocument.Load(Path.Combine(tinkePath, "Tinke.xml")); XElement optionsXml = confXml.Element("Tinke").Element("Options"); language = optionsXml.Element("Language").Value; } /// /// Get the path to the translation file of the current assembly. /// /// String with the path of the file. public static string GetTranslationFile() { string assemblyName = Assembly.GetCallingAssembly().ManifestModule.Name; assemblyName = assemblyName.Substring(0, assemblyName.LastIndexOf('.')); // Remove extension return GetTranslationFile(assemblyName); } /// /// Get the path to the translation file of an assembly. /// /// Name of the assembly to get translation. /// String with the path of the file. public static string GetTranslationFile(string assemblyName) { string tinkePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); //string langsPath = Path.Combine(tinkePath, "langs"); string langsPath = Path.Combine(tinkePath, "Plugins"); // TEMP return Path.Combine(langsPath, assemblyName + ".xml"); } /// /// Get the a XML element of the current assembly. /// /// XML element with of the current language. public static XElement GetTranslationXml() { string assemblyName = Assembly.GetCallingAssembly().ManifestModule.Name; assemblyName = assemblyName.Substring(0, assemblyName.LastIndexOf('.')); // Remove extension return GetTranslationXml(assemblyName); } /// /// Get the a XML element from an assemby name. /// /// XML element with of the current language. public static XElement GetTranslationXml(string assemblyName) { string xmlFile = GetTranslationFile(assemblyName); if (!File.Exists(xmlFile)) { return null; } XDocument doc = XDocument.Load(xmlFile); XElement element = doc.Element(assemblyName); if (element == null) { return null; } element = element.Element(language); return element; } /// /// Translate controls using the current assembly translation XML. It matches the control name. /// /// Controls to translate. /// Subelement inside the XML file. public static void TranslateControls(Control.ControlCollection controls, string xmlName) { string assemblyName = Assembly.GetCallingAssembly().ManifestModule.Name; assemblyName = assemblyName.Substring(0, assemblyName.LastIndexOf('.')); // Remove extension Control[] controlArray = new Control[controls.Count]; controls.CopyTo(controlArray, 0); TranslateControls(controlArray, xmlName, assemblyName); } /// /// Translate controls using a translation XML from an assembly name. It matches the control name. /// /// Controls to translate. /// Subelement inside the XML file. public static void TranslateControls(Control[] controls, string xmlName, string assemblyName) { XElement transXml = GetTranslationXml(assemblyName); if (transXml == null || transXml.Element(xmlName) == null) { return; } transXml = transXml.Element(xmlName); foreach (Control control in controls) { if (transXml.Element(control.Name) != null) { control.Text = transXml.Element(control.Name).Value; } } } /// /// User choosen language. /// public static string Language { get { return language; } } } } ================================================ FILE: Ekona/IGamePlugin.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 24/06/2012 15:01:36 // ----------------------------------------------------------------------- using System.Windows.Forms; namespace Ekona { /// /// Inteface to support one or more games /// public interface IGamePlugin { /// /// First method to be called. /// Class with common and necessary methods /// String with the game code void Initialize(IPluginHost pluginHost, string gameCode); /// /// It returns if this game is compatible using the game code /// /// True or false bool IsCompatible(); /// /// Get the file format /// /// /// File info. /// Normally, the path value will be the rom file. /// /// First four bytes of the file /// File format Format Get_Format(sFile file, byte[] magic); /// /// This method is called when the user click on button "view", it will return a control with the file information /// /// File to analyze. It's not the same variable as used internally. /// Control that will be displayed Control Show_Info(sFile file); /// /// This method will be called when the user double click a file. /// It's used for a fast reading, /// ie: double click the palette file instead of click on the button View if you want to see the next image. /// It should call the methods Set_Palette, Set_Image, Set_Map.... in pluginHost. /// /// File to analyze. It's not the same variable as used internally. void Read(sFile file); /// /// It will be called when the user click on button "Unpack". /// /// File to unpack. It's not the same variable as used internally. /// sFolder variable with files to show in the tree interface sFolder Unpack(sFile file); /// /// It will be called when the user click on button "Pack" /// /// sFolder variable with all the unpacked files to pack /// Original pack file. It's not the same variable as used internally. /// Path where the new pack file is string Pack(ref sFolder unpacked, sFile file); } } ================================================ FILE: Ekona/IPlugin.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 24/06/2012 15:01:47 // ----------------------------------------------------------------------- using System.Windows.Forms; namespace Ekona { /// /// IPlugin interface to support a file format /// public interface IPlugin { /// /// First method to be called. It passes the class IPluginHost /// /// Class with common and necessary methods void Initialize(IPluginHost pluginHost); /// /// Get the file format /// /// /// File info. It's the same variable as used internally. /// Normally, the path value will be the rom file. /// /// First four bytes of the file /// File format Format Get_Format(sFile file, byte[] magic); /// /// This method is called when the user click on button "view", it will return a control with the file information /// /// File to analyze. It's not the same variable as used internally. /// Control that will be displayed Control Show_Info(sFile file); /// /// This methos will be called when the user double click a file. /// It's used for a fast reading, /// ie: double click the palette file instead of click on the button View if you want to see the next image. /// It should call the methods Set_Palette, Set_Image, Set_Sprite.... in pluginHost. /// /// File to analyze. It's not the same variable as used internally. void Read(sFile file); /// /// It will be called when the user click on button "Unpack". /// /// File to unpack. It's not the same variable as used internally. /// sFolder variable with files to show in the tree interface sFolder Unpack(sFile file); /// /// It will be called when the user click on button "Pack" /// /// sFolder variable with all the unpacked files to pack /// Original pack file. It's not the same variable as used internally. /// Path where the new pack file is string Pack(ref sFolder unpacked, sFile file); } } ================================================ FILE: Ekona/IPluginHost.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * by pleoNeX * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using Ekona.Images; namespace Ekona { public interface IPluginHost { Object Get_Object(); ImageBase Get_Image(); PaletteBase Get_Palette(); MapBase Get_Map(); SpriteBase Get_Sprite(); void Set_Object(Object objects); void Set_Image(ImageBase image); void Set_Palette(PaletteBase palette); void Set_Map(MapBase map); void Set_Sprite(SpriteBase sprite); string[] PluginList(); Object Call_Plugin(string[] param, int id, int action); void Set_Files(sFolder folder); sFolder Get_Files(); sFolder Get_DecompressedFiles(int id); String Search_File(int id); // Search file by id sFile Search_File(short id); sFolder Search_File(string name); Byte[] Get_Bytes(string path, int offset, int length); sFolder Search_Folder(int id); string Get_Language(); string Get_LangXML(); string Get_LanguageFolder(); string Get_TempFile(); string Get_TempFolder(); void Set_TempFolder(string newPath); void Restore_TempFolder(); void Decompress(string file); void Decompress(byte[] data); void Compress(string filein, string fileout, FormatCompress format); /// /// Change the content of a file /// /// The id of the file to change /// The path where the new file is void ChangeFile(int id, string newFile); } } ================================================ FILE: Ekona/Images/Actions.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.Drawing; namespace Ekona.Images { public enum TileForm { Lineal, Horizontal, Vertical } public enum ColorFormat : byte { A3I5 = 1, // 8 bits-> 0-4: index; 5-7: alpha colors4 = 2, // 2 bits for 4 colors colors16 = 3, // 4 bits for 16 colors colors256 = 4, // 8 bits for 256 colors texel4x4 = 5, // 32bits, 2bits per Texel (only in textures) A5I3 = 6, // 8 bits-> 0-2: index; 3-7: alpha direct = 7, // 16bits, color with BGR555 encoding colors2 = 8, // 1 bit for 2 colors BGRA32 = 9, // 32 bits -> ABGR A4I4 = 10, ABGR32 = 11 } public enum ColorEncoding : byte { BGR555 = 1, BGR = 2, RGB = 3 } public static class Actions { #region Palette /// /// Convert bytes encoding with BGR555 to colors /// /// Bytes encoded with BGR555 /// Colors public static Color[] BGR555ToColor(byte[] bytes) { Color[] colors = new Color[bytes.Length / 2]; for (int i = 0; i < bytes.Length / 2; i++) colors[i] = BGR555ToColor(bytes[i * 2], bytes[i * 2 + 1]); return colors; } /// /// Convert two bytes encoded with BGR555 to a color /// public static Color BGR555ToColor(byte byte1, byte byte2) { int r, b, g; short bgr = BitConverter.ToInt16(new Byte[] { byte1, byte2 }, 0); r = (bgr & 0x001F) * 0x08; g = ((bgr & 0x03E0) >> 5) * 0x08; b = ((bgr & 0x7C00) >> 10) * 0x08; return Color.FromArgb(r, g, b); } /// /// Convert colors to byte with BGR555 encoding /// /// Colors to convert /// Bytes converted public static Byte[] ColorToBGR555(Color[] colors) { byte[] data = new byte[colors.Length * 2]; for (int i = 0; i < colors.Length; i++) { byte[] bgr = ColorToBGR555(colors[i]); data[i * 2] = bgr[0]; data[i * 2 + 1] = bgr[1]; } return data; } public static Byte[] ColorToBGRA555(Color color) { byte[] d = new byte[2]; int r = color.R / 8; int g = (color.G / 8) << 5; int b = (color.B / 8) << 10; int a = (color.A / 255) << 15; ushort bgra = (ushort)(r + g + b + a); Array.Copy(BitConverter.GetBytes(bgra), d, 2); return d; } public static Byte[] ColorToBGR555(Color color) { byte[] d = new byte[2]; int r = color.R / 8; int g = (color.G / 8) << 5; int b = (color.B / 8) << 10; ushort bgr = (ushort)(r + g + b); Array.Copy(BitConverter.GetBytes(bgr), d, 2); return d; } public static Bitmap Get_Image(Color[] colors) { int height = (colors.Length / 0x10); if (colors.Length % 0x10 != 0) height++; Bitmap palette = new Bitmap(160, height * 10); bool end = false; for (int i = 0; i < 16 & !end; i++) { for (int j = 0; j < 16; j++) { if (colors.Length <= j + 16 * i) { end = true; break; } for (int k = 0; k < 10; k++) for (int q = 0; q < 10; q++) palette.SetPixel((j * 10 + q), (i * 10 + k), colors[j + 16 * i]); } } return palette; } public static Color[][] Palette_16To256(Color[][] palette) { // Get the colours of all the palettes in BGR555 encoding List paletteColor = new List(); for (int i = 0; i < palette.Length; i++) paletteColor.AddRange(palette[i]); // Set the colours in one palette Color[][] newPal = new Color[1][]; newPal[0] = paletteColor.ToArray(); return newPal; } public static Color[][] Palette_256To16(Color[][] palette) { Color[][] newPal; int isExact = (int)palette[0].Length % 0x10; if (isExact == 0) { newPal = new Color[palette[0].Length / 0x10][]; for (int i = 0; i < newPal.Length; i++) { newPal[i] = new Color[0x10]; Array.Copy(palette[0], i * 0x10, newPal[i], 0, 0x10); } } else { newPal = new Color[(palette[0].Length / 0x10) + 1][]; for (int i = 0; i < newPal.Length - 1; i++) { newPal[i] = new Color[0x10]; Array.Copy(palette[0], i * 0x10, newPal[i], 0, 0x10); } Color[] temp = new Color[isExact]; Array.Copy(palette[0], palette[0].Length / 0x10, temp, 0, isExact); newPal[newPal.Length - 1] = temp; } return newPal; } #endregion #region Tiles public static Byte[] AlphaIndexTo32ARGB(Color[] palette, byte[] data, ColorFormat format) { Byte[] direct = new byte[data.Length * 4]; for (int i = 0; i < data.Length; i++) { Color color = Color.Transparent; if (format == ColorFormat.A3I5) { int colorIndex = data[i] & 0x1F; int alpha = (data[i] >> 5); alpha = ((alpha * 4) + (alpha / 2)) * 8; color = Color.FromArgb(alpha, palette[colorIndex].R, palette[colorIndex].G, palette[colorIndex].B); } else if (format == ColorFormat.A5I3) { int colorIndex = data[i] & 0x7; int alpha = (data[i] >> 3); alpha *= 8; color = Color.FromArgb(alpha, palette[colorIndex].R, palette[colorIndex].G, palette[colorIndex].B); } Byte[] argb32 = BitConverter.GetBytes(color.ToArgb()); Array.Copy(argb32, 0, direct, i * 4, 4); } return direct; } public static Byte[] Bpp2ToBpp4(byte[] data) { Byte[] bpp4 = new byte[data.Length * 2]; for (int i = 0; i < data.Length; i++) { byte b1 = (byte)(data[i] & 0x3); b1 += (byte)(((data[i] >> 2) & 0x3) << 4); byte b2 = (byte)((data[i] >> 4) & 0x3); b2 += (byte)(((data[i] >> 6) & 0x3) << 4); bpp4[i * 2] = b1; bpp4[i * 2 + 1] = b2; } return bpp4; } public static Bitmap Get_Image(Byte[] tiles, Byte[] tile_pal, Color[][] palette, ColorFormat format, int width, int height, int start = 0) { if (tiles.Length == 0) return new Bitmap(1, 1); Bitmap image = new Bitmap(width, height); int pos = start; for (int h = 0; h < height; h++) { for (int w = 0; w < width; w++) { int num_pal = 0; if (tile_pal.Length <= w + h * width) num_pal = 0; else num_pal = tile_pal[w + h * width]; if (num_pal >= palette.Length) num_pal = 0; Color color = Get_Color(tiles, palette[num_pal], format, ref pos); image.SetPixel(w, h, color); } } return image; } public static Color Get_Color(Byte[] data, Color[] palette, ColorFormat format, ref int pos) { Color color = Color.Transparent; int alpha, index; switch (format) { case ColorFormat.A3I5: if (data.Length <= pos){ break; } index = data[pos] & 0x1F; alpha = (data[pos] >> 5); alpha = ((alpha * 4) + (alpha / 2)) * 8; if (palette.Length > index) color = Color.FromArgb(alpha, palette[index].R, palette[index].G, palette[index].B); pos++; break; case ColorFormat.A4I4: if (data.Length <= pos){ break; } index = data[pos] & 0xF; alpha = (data[pos] >> 4); alpha *= 16; if (palette.Length > index) color = Color.FromArgb(alpha, palette[index].R, palette[index].G, palette[index].B); pos++; break; case ColorFormat.A5I3: if (data.Length <= pos){ break; } index = data[pos] & 0x7; alpha = (data[pos] >> 3); alpha *= 8; if (palette.Length > index) color = Color.FromArgb(alpha, palette[index].R, palette[index].G, palette[index].B); pos++; break; case ColorFormat.colors2: if (data.Length <= (pos / 8)){ break; } byte bit1 = data[pos / 8]; index = Helper.BitsConverter.ByteToBits(bit1)[pos % 8]; if (palette.Length > index) color = palette[index]; pos++; break; case ColorFormat.colors4: if (data.Length <= (pos / 4)){ break; } byte bit2 = data[pos / 4]; index = Helper.BitsConverter.ByteToBit2(bit2)[pos % 4]; if (palette.Length > index) color = palette[index]; pos++; break; case ColorFormat.colors16: if (data.Length <= (pos / 2)){ break; } byte bit4 = data[pos / 2]; index = Helper.BitsConverter.ByteToBit4(bit4)[pos % 2]; if (palette.Length > index) color = palette[index]; pos++; break; case ColorFormat.colors256: if (data.Length > pos && palette.Length > data[pos]) color = palette[data[pos]]; pos++; break; case ColorFormat.direct: // RGB555 if (pos + 2 >= data.Length) break; ushort byteColor = BitConverter.ToUInt16(data, pos); color = Color.FromArgb( ((byteColor >> 15) == 1 ? 255 : 0), (byteColor & 0x1F) * 8, ((byteColor >> 5) & 0x1F) * 8, ((byteColor >> 10) & 0x1F) * 8); pos += 2; break; case ColorFormat.BGRA32: if (pos + 4 >= data.Length) break; color = Color.FromArgb(data[pos+3], data[pos+0], data[pos+1], data[pos+2]); pos += 4; break; case ColorFormat.ABGR32: if (pos + 4 >= data.Length) break; color = Color.FromArgb(data[pos+0], data[pos+1], data[pos+2], data[pos+3]); pos += 4; break; case ColorFormat.texel4x4: throw new NotSupportedException("Compressed texel 4x4 not supported yet"); default: throw new FormatException("Unknown color format"); } return color; } public static byte[] HorizontalToLineal(byte[] horizontal, int width, int height, int bpp, int tile_size) { Byte[] lineal = new byte[horizontal.Length]; int tile_width = tile_size * bpp / 8; // Calculate the number of byte per line in the tile // pixels per line * bits per pixel / 8 bits per byte int tilesX = width / tile_size; int tilesY = height / tile_size; int pos = 0; for (int ht = 0; ht < tilesY; ht++) { for (int wt = 0; wt < tilesX; wt++) { // Get the tile data for (int h = 0; h < tile_size; h++) { for (int w = 0; w < tile_width; w++) { if ((w + h * tile_width * tilesX) + wt * tile_width + ht * tilesX * tile_size * tile_width >= lineal.Length) continue; if (pos >= lineal.Length) continue; lineal[pos++] = horizontal[(w + h * tile_width * tilesX) + wt * tile_width + ht * tilesX * tile_size * tile_width]; } } } } return lineal; } public static byte[] LinealToHorizontal(byte[] lineal, int width, int height, int bpp, int tile_size) { byte[] horizontal = new byte[lineal.Length]; int tile_width = tile_size * bpp / 8; // Calculate the number of byte per line in the tile // pixels per line * bits per pixel / 8 bits per byte int tilesX = width / tile_size; int tilesY = height / tile_size; int pos = 0; for (int ht = 0; ht < tilesY; ht++) { for (int wt = 0; wt < tilesX; wt++) { // Get the tile data for (int h = 0; h < tile_size; h++) { for (int w = 0; w < tile_width; w++) { if ((w + h * tile_width * tilesX) + wt * tile_width + ht * tilesX * tile_size * tile_width >= lineal.Length) continue; if (pos >= lineal.Length) continue; horizontal[(w + h * tile_width * tilesX) + wt * tile_width + ht * tilesX * tile_size * tile_width] = lineal[pos++]; } } } } return horizontal; } public static int Remove_DuplicatedColors(ref Color[] palette, ref byte[] tiles) { List colors = new List(); int first_duplicated_color = -1; for (int i = 0; i < palette.Length; i++) { if (!colors.Contains(palette[i])) colors.Add(palette[i]); else // The color is duplicated { int newIndex = colors.IndexOf(palette[i]); Replace_Color(ref tiles, i, newIndex); colors.Add(Color.FromArgb(248, 0, 248)); if (first_duplicated_color == -1) first_duplicated_color = i; } } palette = colors.ToArray(); return first_duplicated_color; } public static int Remove_NotUsedColors(ref Color[] palette, ref byte[] tiles) { int first_notUsed_color = -1; bool[] colors = new bool[palette.Length]; for (int i = 0; i < palette.Length; i++) colors[i] = false; for (int i = 0; i < tiles.Length; i++) colors[tiles[i]] = true; for (int i = 0; i < colors.Length; i++) if (!colors[i]) first_notUsed_color = i; return first_notUsed_color; } public static void Change_Color(ref byte[] tiles, int oldIndex, int newIndex, ColorFormat format) { if (format == ColorFormat.colors16) // Yeah, I should improve it tiles = Helper.BitsConverter.BytesToBit4(tiles); else if (format != ColorFormat.colors256) throw new NotSupportedException("Only supported 4bpp and 8bpp images."); for (int i = 0; i < tiles.Length; i++) { if (tiles[i] == oldIndex) tiles[i] = (byte)newIndex; else if (tiles[i] == newIndex) tiles[i] = (byte)oldIndex; } if (format == ColorFormat.colors16) tiles = Helper.BitsConverter.Bits4ToByte(tiles); } public static void Swap_Color(ref byte[] tiles, ref Color[] palette, int oldIndex, int newIndex, ColorFormat format) { if (format == ColorFormat.colors16) // Yeah, I should improve it tiles = Helper.BitsConverter.BytesToBit4(tiles); else if (format != ColorFormat.colors256) throw new NotSupportedException("Only supported 4bpp and 8bpp images."); Color old_color = palette[oldIndex]; palette[oldIndex] = palette[newIndex]; palette[newIndex] = old_color; for (int i = 0; i < tiles.Length; i++) { if (tiles[i] == oldIndex) tiles[i] = (byte)newIndex; else if (tiles[i] == newIndex) tiles[i] = (byte)oldIndex; } if (format == ColorFormat.colors16) tiles = Helper.BitsConverter.Bits4ToByte(tiles); } public static void Replace_Color(ref byte[] tiles, int oldIndex, int newIndex) { for (int i = 0; i < tiles.Length; i++) { if (tiles[i] == oldIndex) tiles[i] = (byte)newIndex; } } public static void Swap_Palette(ref byte[] tiles, Color[] newp, Color[] oldp, ColorFormat format, decimal threshold = 0) { if (format == ColorFormat.colors16) // Yeah, I should improve it tiles = Helper.BitsConverter.BytesToBit4(tiles); else if (format != ColorFormat.colors256) throw new NotSupportedException("Only supported 4bpp and 8bpp images."); List notfound = new List(); List newplist = new List(newp); for (int i = 0; i < tiles.Length; i++) { Color px = oldp[tiles[i]]; int id = newplist.IndexOf(px); if (px == Color.Transparent && id == -1) id = 0; if (id == -1) id = FindNextColor(px, newp, threshold); if (id == -1) { // If the color is not found, maybe is that the pixel own to another cell (overlapping cells). // For this reason, there are two ways to do that: // 1º Get the original hidden color from the original file <- In mind // 2º Set this pixel as transparent to show the pixel from the other cell (tiles[i] = 0) <- Done! // If there isn't overlapping cells, throw exception <- In mind notfound.Add(px); id = 0; } tiles[i] = (byte)id; } //if (notfound.Count > 0) // throw new NotSupportedException("Color not found in the original palette!"); if (format == ColorFormat.colors16) tiles = Helper.BitsConverter.Bits4ToByte(tiles); } public static Size Get_Size(int fileSize, int bpp) { int width, height; int num_pix = fileSize * 8 / bpp; // If the image it's a square if (Math.Pow((int)(Math.Sqrt(num_pix)), 2) == num_pix) width = height = (int)Math.Sqrt(num_pix); else { width = (num_pix < 0x100 ? num_pix : 0x0100); height = num_pix / width; } if (height == 0) height = 1; if (width == 0) width = 1; return new Size(width, height); } public static uint Add_Image(ref byte[] data, byte[] newData, uint blockSize) { // Add the image to the end of the data // Return the offset where the data is added List result = new List(); result.AddRange(data); while (result.Count % blockSize != 0) result.Add(0x00); uint offset = (uint)result.Count; result.AddRange(newData); while (result.Count % blockSize != 0) result.Add(0x00); data = result.ToArray(); return offset; } public static uint Add_Image(ref byte[] data, byte[] newData, uint partOffset, uint partSize, uint blockSize, out uint addedLength) { // Add the image to the end of the partition data // Return the offset where the data has been inserted List result = new List(data); uint offset = partOffset + partSize; addedLength = (partSize % blockSize != 0) ? blockSize - partSize % blockSize : 0; if (offset == result.Count){ result.AddRange(new byte[addedLength]); } else result.InsertRange((int)offset, new byte[addedLength]); offset += addedLength; if (offset == result.Count){ result.AddRange(newData); } else result.InsertRange((int)offset, newData); addedLength += (uint)newData.Length; data = result.ToArray(); return offset; } public static int FindNextColor(Color c, Color[] palette, decimal threshold = 0) { int id = -1; decimal minDistance = decimal.MaxValue; // Skip the first color since it used to be the transparent color and we // don't want that as the best match if possible. for (int i = 1; i < palette.Length; i++) { double x = palette[i].R - c.R; double y = palette[i].G - c.G; double z = palette[i].B - c.B; decimal distance = (decimal)Math.Sqrt(x * x + y * y + z * z); if (distance < minDistance) { minDistance = distance; id = i; } } // If the distance it's bigger than wanted, remove the best match if (minDistance > threshold) id = -1; // If still it doesn't found the color try with the first one. if (id == -1) { double x = palette[0].R - c.R; double y = palette[0].G - c.G; double z = palette[0].B - c.B; decimal distance = (decimal)Math.Sqrt(x * x + y * y + z * z); if (distance <= threshold) id = 0; } if (id == -1) Console.WriteLine("Color not found: {0} (distance: {1})", c, minDistance); return id; } public static void Indexed_Image(Bitmap img, ColorFormat cf, out byte[] tiles, out Color[] palette) { // It's a slow method but it should work always int width = img.Width; int height = img.Height; List coldif = new List(); int[,] data = new int[width * height, 2]; // Get the indexed data for (int h = 0; h < height; h++) { for (int w = 0; w < width; w++) { Color pix = img.GetPixel(w, h); Color apix = Color.FromArgb(pix.R, pix.G, pix.B); // Without alpha value if (pix.A == 0) apix = Color.Transparent; // Add the color to the provisional palette if (!coldif.Contains(apix)) coldif.Add(apix); // Get the index and save the alpha value data[w + h * width, 0] = coldif.IndexOf(apix); // Index data[w + h * width, 1] = pix.A; // Alpha value } } int max_colors = 0; // Maximum colors per palette int bpc = 0; // Bits per color switch (cf) { case ColorFormat.A3I5: max_colors = 32; bpc = 8; break; case ColorFormat.colors4: max_colors = 4; bpc = 2; break; case ColorFormat.colors16: max_colors = 16; bpc = 4; break; case ColorFormat.colors256: max_colors = 256; bpc = 8; break; case ColorFormat.texel4x4: throw new NotSupportedException("Texel 4x4 not supported yet."); case ColorFormat.A5I3: max_colors = 8; bpc = 8; break; case ColorFormat.direct: max_colors = 0; bpc = 16; break; case ColorFormat.colors2: max_colors = 2; bpc = 1; break; case ColorFormat.A4I4: max_colors = 16; bpc = 8; break; } // Not dithering method for now, I hope you input a image with less than the maximum colors if (coldif.Count > max_colors && cf != ColorFormat.direct) throw new NotSupportedException("The image has more colors than permitted.\n" + (coldif.Count + 1).ToString() + " unique colors!"); // Finally get the set the tile array with the correct format tiles = new byte[width * height * bpc / 8]; for (int i = 0, j = 0; i < tiles.Length; ) { switch (cf) { case ColorFormat.colors2: case ColorFormat.colors4: case ColorFormat.colors16: case ColorFormat.colors256: for (int b = 0; b < 8; b += bpc) if (j < data.Length) tiles[i] |= (byte)(data[j++, 0] << b); i++; break; case ColorFormat.A3I5: byte alpha1 = (byte)(data[j, 1] * 8 / 256); byte va1 = (byte)data[j++, 0]; va1 |= (byte)(alpha1 << 5); tiles[i++] = va1; break; case ColorFormat.A4I4: byte alpha3 = (byte)(data[j, 1] * 16 / 256); byte va3 = (byte)data[j++, 0]; va3 |= (byte)(alpha3 << 4); tiles[i++] = va3; break; case ColorFormat.A5I3: byte alpha2 = (byte)(data[j, 1] * 32 / 256); byte va2 = (byte)data[j++, 0]; va2 |= (byte)(alpha2 << 3); tiles[i++] = va2; break; case ColorFormat.direct: byte[] v = ColorToBGRA555(Color.FromArgb(data[j, 1], coldif[data[j++, 0]])); tiles[i++] = v[0]; tiles[i++] = v[1]; break; case ColorFormat.texel4x4: // Not supported break; } } palette = coldif.ToArray(); } #endregion #region Map public static Byte[] Apply_Map(NTFS[] map, Byte[] tiles, out Byte[] tile_pal, int bpp, int tile_size, int startInfo = 0) { int tile_length = tile_size * tile_size * bpp / 8; int num_tiles = tiles.Length / tile_length; List bytes = new List(); tile_pal = new byte[(map.Length - startInfo) * tile_size * tile_size]; for (int i = startInfo; i < map.Length; i++) { if (map[i].nTile >= num_tiles) map[i].nTile = 0; Byte[] currTile = new byte[tile_length]; if (map[i].nTile * tile_length + tile_length > tiles.Length) map[i].nTile = 0; if (tile_length < tiles.Length) Array.Copy(tiles, map[i].nTile * tile_length, currTile, 0, tile_length); if (map[i].xFlip == 1) currTile = XFlip(currTile, tile_size, bpp); if (map[i].yFlip == 1) currTile = YFlip(currTile, tile_size, bpp); bytes.AddRange(currTile); for (int t = 0; t < tile_size * tile_size; t++) tile_pal[i * tile_size * tile_size + t] = map[i].nPalette; } return bytes.ToArray(); } public static Byte[] XFlip(Byte[] tile, int tile_size, int bpp) { byte[] newTile = new byte[tile.Length]; int tile_width = tile_size * bpp / 8; for (int h = 0; h < tile_size; h++) { for (int w = 0; w < tile_width / 2; w++) { byte b = tile[((tile_width - 1) - w) + h * tile_width]; newTile[w + h * tile_width] = Reverse_Bits(b, bpp); b = tile[w + h * tile_width]; newTile[((tile_width - 1) - w) + h * tile_width] = Reverse_Bits(b, bpp); } } return newTile; } public static Byte Reverse_Bits(byte b, int length) { byte rb = 0; if (length == 4) rb = (byte)((b << 4) + (b >> 4)); else if (length == 8) return b; return rb; } public static Byte[] YFlip(Byte[] tile, int tile_size, int bpp) { byte[] newTile = new byte[tile.Length]; int tile_width = tile_size * bpp / 8; for (int h = 0; h < tile_size / 2; h++) { for (int w = 0; w < tile_width; w++) { newTile[w + h * tile_width] = tile[w + (tile_size - 1 - h) * tile_width]; newTile[w + (tile_size - 1 - h) * tile_width] = tile[w + h * tile_width]; } } return newTile; } public static NTFS[] Create_BasicMap(int num_tiles, int startTile = 0, byte palette = 0) { NTFS[] map = new NTFS[num_tiles]; for (int i = startTile; i < num_tiles; i++) { map[i] = new NTFS(); map[i].nPalette = palette; map[i].yFlip = 0; map[i].xFlip = 0; //if (i >= startFillTile) // map[i].nTile = (ushort)fillTile; //else map[i].nTile = (ushort)(i + startTile); } return map; } public static NTFS[] Create_Map(ref byte[] data, int bpp, int tile_size, byte palette = 0) { int ppt = tile_size * tile_size; // pixels per tile int tile_length = ppt * bpp / 8; // Divide the data in tiles byte[][] tiles = new byte[data.Length / tile_length][]; for (int i = 0; i < tiles.Length; i++) { tiles[i] = new byte[tile_length]; Array.Copy(data, i * tiles[i].Length, tiles[i], 0, tiles[i].Length); } NTFS[] map = new NTFS[tiles.Length]; List newtiles = new List(); for (int i = 0; i < map.Length; i++) { map[i].nPalette = palette; map[i].xFlip = 0; map[i].yFlip = 0; int index = -1; byte flipX = 0; byte flipY = 0; for (ushort t = 0; t < newtiles.Count; t++) { if (Compare_Array(newtiles[t], tiles[i])) { index = t; break; } if (Compare_Array(newtiles[t], XFlip(tiles[i], tile_size, bpp))) { index = t; flipX = 1; break; } if (Compare_Array(newtiles[t], YFlip(tiles[i], tile_size, bpp))) { index = t; flipY = 1; break; } if (Compare_Array(newtiles[t], YFlip(XFlip(tiles[i], tile_size, bpp), tile_size, bpp))) { index = t; flipX = 1; flipY = 1; break; } } if (index > -1) map[i].nTile = (ushort)index; else { map[i].nTile = (ushort)newtiles.Count; newtiles.Add(tiles[i]); } map[i].xFlip = flipX; map[i].yFlip = flipY; } // Save the new tiles data = new byte[newtiles.Count * tile_length]; for (int i = 0; i < newtiles.Count; i++) for (int j = 0; j < newtiles[i].Length; j++) data[j + i * tile_length] = newtiles[i][j]; return map; } public static bool Compare_Array(byte[] d1, byte[] d2) { if (d1.Length != d2.Length) return false; for (int i = 0; i < d1.Length; i++) if (d1[i] != d2[i]) return false; return true; } public static NTFS MapInfo(ushort value) { NTFS mapInfo = new NTFS(); mapInfo.nTile = (ushort)(value & 0x3FF); mapInfo.xFlip = (byte)((value >> 10) & 1); mapInfo.yFlip = (byte)((value >> 11) & 1); mapInfo.nPalette = (byte)((value >> 12) & 0xF); return mapInfo; } public static ushort MapInfo(NTFS map) { int npalette = map.nPalette << 12; int yFlip = map.yFlip << 11; int xFlip = map.xFlip << 10; int data = npalette + yFlip + xFlip + map.nTile; return (ushort)data; } #endregion #region OAM public static Size Get_OAMSize(byte shape, byte size) { Size imageSize = new Size(); switch (shape) { case 0x00: // Square switch (size) { case 0x00: imageSize = new Size(8, 8); break; case 0x01: imageSize = new Size(16, 16); break; case 0x02: imageSize = new Size(32, 32); break; case 0x03: imageSize = new Size(64, 64); break; } break; case 0x01: // Horizontal switch (size) { case 0x00: imageSize = new Size(16, 8); break; case 0x01: imageSize = new Size(32, 8); break; case 0x02: imageSize = new Size(32, 16); break; case 0x03: imageSize = new Size(64, 32); break; } break; case 0x02: // Vertical switch (size) { case 0x00: imageSize = new Size(8, 16); break; case 0x01: imageSize = new Size(8, 32); break; case 0x02: imageSize = new Size(16, 32); break; case 0x03: imageSize = new Size(32, 64); break; } break; } return imageSize; } public static Bitmap Get_Image(Bank bank, uint blockSize, ImageBase img, PaletteBase pal, int max_width, int max_height, bool draw_grid, bool draw_cells, bool draw_numbers, bool trans, bool image, int currOAM = -1, int zoom = 1, int[] index = null) { Size size = new Size(max_width * zoom, max_height * zoom); Bitmap bank_img = new Bitmap(size.Width, size.Height); Graphics graphic = Graphics.FromImage(bank_img); if (bank.oams.Length == 0) { graphic.DrawString("No OAM", SystemFonts.CaptionFont, Brushes.Black, new PointF(max_width / 2, max_height / 2)); return bank_img; } if (draw_grid) { for (int i = (0 - size.Width); i < size.Width; i += 8) { graphic.DrawLine(Pens.LightBlue, (i + size.Width / 2) * zoom, 0, (i + size.Width / 2) * zoom, size.Height * zoom); graphic.DrawLine(Pens.LightBlue, 0, (i + size.Height / 2) * zoom, size.Width * zoom, (i + size.Height / 2) * zoom); } graphic.DrawLine(Pens.Blue, (max_width / 2) * zoom, 0, (max_width / 2) * zoom, max_height * zoom); graphic.DrawLine(Pens.Blue, 0, (max_height / 2) * zoom, max_width * zoom, (max_height / 2) * zoom); } Image cell; for (int i = 0; i < bank.oams.Length; i++) { bool draw = false; if (index == null) draw = true; else for (int k = 0; k < index.Length; k++) if (index[k] == i) draw = true; if (!draw) continue; if (bank.oams[i].width == 0x00 || bank.oams[i].height == 0x00) continue; uint tileOffset = bank.oams[i].obj2.tileOffset; tileOffset = (uint)(tileOffset << (byte)blockSize); if (image) { ImageBase cell_img = new TestImage(); cell_img.Set_Tiles((byte[])img.Tiles.Clone(), bank.oams[i].width, bank.oams[i].height, img.FormatColor, img.FormTile, false); cell_img.StartByte = (int)(tileOffset * 0x20 + bank.data_offset); byte num_pal = bank.oams[i].obj2.index_palette; if (num_pal >= pal.NumberOfPalettes) num_pal = 0; for (int j = 0; j < cell_img.TilesPalette.Length; j++) cell_img.TilesPalette[j] = num_pal; cell = cell_img.Get_Image(pal); //else //{ // tileOffset /= (blockSize / 2); // int imageWidth = img.Width; // int imageHeight = img.Height; // int posX = (int)(tileOffset % imageWidth); // int posY = (int)(tileOffset / imageWidth); // if (img.ColorFormat == ColorFormat.colors16) // posY *= (int)blockSize * 2; // else // posY *= (int)blockSize; // if (posY >= imageHeight) // posY = posY % imageHeight; // cells[i] = ((Bitmap)img.Get_Image(pal)).Clone(new Rectangle(posX * zoom, posY * zoom, bank.oams[i].width * zoom, bank.oams[i].height * zoom), // System.Drawing.Imaging.PixelFormat.DontCare); //} #region Flip if (bank.oams[i].obj1.flipX == 1 && bank.oams[i].obj1.flipY == 1) cell.RotateFlip(RotateFlipType.RotateNoneFlipXY); else if (bank.oams[i].obj1.flipX == 1) cell.RotateFlip(RotateFlipType.RotateNoneFlipX); else if (bank.oams[i].obj1.flipY == 1) cell.RotateFlip(RotateFlipType.RotateNoneFlipY); #endregion if (trans) ((Bitmap)cell).MakeTransparent(pal.Palette[num_pal][0]); graphic.DrawImageUnscaled(cell, size.Width / 2 + bank.oams[i].obj1.xOffset * zoom, size.Height / 2 + bank.oams[i].obj0.yOffset * zoom); } if (draw_cells) graphic.DrawRectangle(Pens.Black, size.Width / 2 + bank.oams[i].obj1.xOffset * zoom, size.Height / 2 + bank.oams[i].obj0.yOffset * zoom, bank.oams[i].width * zoom, bank.oams[i].height * zoom); if (i == currOAM) graphic.DrawRectangle(new Pen(Color.Red, 3), size.Width / 2 + bank.oams[i].obj1.xOffset * zoom, size.Height / 2 + bank.oams[i].obj0.yOffset * zoom, bank.oams[i].width * zoom, bank.oams[i].height * zoom); if (draw_numbers) graphic.DrawString(bank.oams[i].num_cell.ToString(), SystemFonts.CaptionFont, Brushes.Black, size.Width / 2 + bank.oams[i].obj1.xOffset * zoom, size.Height / 2 + bank.oams[i].obj0.yOffset * zoom); } return bank_img; } public static Byte[] Get_OAMdata(OAM oam, byte[] image, ColorFormat format) { if (format == ColorFormat.colors16) image = Helper.BitsConverter.BytesToBit4(image); List data = new List(); int y1 = 128 + oam.obj0.yOffset; int y2 = y1 + oam.height; int x1 = 256 + oam.obj1.xOffset; int x2 = x1 + oam.width; for (int ht = 0; ht < 256; ht++) for (int wt = 0; wt < 512; wt++) if (ht >= y1 && ht < y2) if (wt >= x1 && wt < x2) data.Add(image[wt + ht * 512]); if (format == ColorFormat.colors16) return Helper.BitsConverter.Bits4ToByte(data.ToArray()); else return data.ToArray(); } public static int Comparision_OAM(OAM c1, OAM c2) { if (c1.obj2.priority < c2.obj2.priority) return 1; else if (c1.obj2.priority > c2.obj2.priority) return -1; else // Same priority { if (c1.num_cell < c2.num_cell) return 1; else if (c1.num_cell > c2.num_cell) return -1; else // Same cell return 0; } } public static ushort[] OAMInfo(OAM oam) { ushort[] obj = new ushort[3]; // OBJ0 obj[0] = 0; obj[0] += (ushort)((sbyte)(oam.obj0.yOffset) & 0xFF); obj[0] += (ushort)((oam.obj0.rs_flag & 1) << 8); if (oam.obj0.rs_flag == 0x00) obj[0] += (ushort)((oam.obj0.objDisable & 1) << 9); else obj[0] += (ushort)((oam.obj0.doubleSize & 1) << 9); obj[0] += (ushort)((oam.obj0.objMode & 3) << 10); obj[0] += (ushort)((oam.obj0.mosaic_flag & 1) << 12); obj[0] += (ushort)((oam.obj0.depth & 1) << 13); obj[0] += (ushort)((oam.obj0.shape & 3) << 14); // OBJ1 obj[1] = 0; if (oam.obj1.xOffset < 0) oam.obj1.xOffset += 0x200; obj[1] += (ushort)(oam.obj1.xOffset & 0x1FF); if (oam.obj0.rs_flag == 0) { obj[1] += (ushort)((oam.obj1.unused & 0x7) << 9); obj[1] += (ushort)((oam.obj1.flipX & 1) << 12); obj[1] += (ushort)((oam.obj1.flipY & 1) << 13); } else obj[1] += (ushort)((oam.obj1.select_param & 0x1F) << 9); obj[1] += (ushort)((oam.obj1.size & 3) << 14); // OBJ2 obj[2] = 0; obj[2] += (ushort)(oam.obj2.tileOffset & 0x3FF); obj[2] += (ushort)((oam.obj2.priority & 3) << 10); obj[2] += (ushort)((oam.obj2.index_palette & 0xF) << 12); return obj; } public static OAM OAMInfo(ushort[] obj) { OAM oam = new OAM(); // Obj 0 oam.obj0.yOffset = (sbyte)(obj[0] & 0xFF); oam.obj0.rs_flag = (byte)((obj[0] >> 8) & 1); if (oam.obj0.rs_flag == 0) oam.obj0.objDisable = (byte)((obj[0] >> 9) & 1); else oam.obj0.doubleSize = (byte)((obj[0] >> 9) & 1); oam.obj0.objMode = (byte)((obj[0] >> 10) & 3); oam.obj0.mosaic_flag = (byte)((obj[0] >> 12) & 1); oam.obj0.depth = (byte)((obj[0] >> 13) & 1); oam.obj0.shape = (byte)((obj[0] >> 14) & 3); // Obj 1 oam.obj1.xOffset = obj[1] & 0x01FF; if (oam.obj1.xOffset >= 0x100) oam.obj1.xOffset -= 0x200; if (oam.obj0.rs_flag == 0) { oam.obj1.unused = (byte)((obj[1] >> 9) & 7); oam.obj1.flipX = (byte)((obj[1] >> 12) & 1); oam.obj1.flipY = (byte)((obj[1] >> 13) & 1); } else oam.obj1.select_param = (byte)((obj[1] >> 9) & 0x1F); oam.obj1.size = (byte)((obj[1] >> 14) & 3); // Obj 2 oam.obj2.tileOffset = (uint)(obj[2] & 0x03FF); oam.obj2.priority = (byte)((obj[2] >> 10) & 3); oam.obj2.index_palette = (byte)((obj[2] >> 12) & 0xF); Size size = Get_OAMSize(oam.obj0.shape, oam.obj1.size); oam.width = (ushort)size.Width; oam.height = (ushort)size.Height; return oam; } public static OAM OAMInfo(ushort v1, ushort v2, ushort v3) { return OAMInfo(new ushort[] { v1, v2, v3 }); } #endregion } } ================================================ FILE: Ekona/Images/Dialogs/OAMEditor.Designer.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ namespace Ekona.Images.Dialogs { partial class OAMEditor { /// /// 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(OAMEditor)); this.groupObj0 = new System.Windows.Forms.GroupBox(); this.comboShape = new System.Windows.Forms.ComboBox(); this.label5 = new System.Windows.Forms.Label(); this.comboDepth = new System.Windows.Forms.ComboBox(); this.comboObjMode = new System.Windows.Forms.ComboBox(); this.checkMosaic = new System.Windows.Forms.CheckBox(); this.checkDoubleSize = new System.Windows.Forms.CheckBox(); this.checkObjdisable = new System.Windows.Forms.CheckBox(); this.checkRSflag = new System.Windows.Forms.CheckBox(); this.label4 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.numYoffset = new System.Windows.Forms.NumericUpDown(); this.label1 = new System.Windows.Forms.Label(); this.groupObj1 = new System.Windows.Forms.GroupBox(); this.numSize = new System.Windows.Forms.NumericUpDown(); this.label7 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.checkFlipY = new System.Windows.Forms.CheckBox(); this.checkFlipX = new System.Windows.Forms.CheckBox(); this.numSelectPar = new System.Windows.Forms.NumericUpDown(); this.label2 = new System.Windows.Forms.Label(); this.numXpos = new System.Windows.Forms.NumericUpDown(); this.groupObj2 = new System.Windows.Forms.GroupBox(); this.numPal = new System.Windows.Forms.NumericUpDown(); this.label10 = new System.Windows.Forms.Label(); this.numPrio = new System.Windows.Forms.NumericUpDown(); this.label9 = new System.Windows.Forms.Label(); this.numOffset = new System.Windows.Forms.NumericUpDown(); this.label8 = new System.Windows.Forms.Label(); this.numOAM = new System.Windows.Forms.NumericUpDown(); this.label11 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); this.picBox = new System.Windows.Forms.PictureBox(); this.label13 = new System.Windows.Forms.Label(); this.btnSave = new System.Windows.Forms.Button(); this.label14 = new System.Windows.Forms.Label(); this.comboSize = new System.Windows.Forms.ComboBox(); this.checkGrid = new System.Windows.Forms.CheckBox(); this.checkNumbers = new System.Windows.Forms.CheckBox(); this.checkImage = new System.Windows.Forms.CheckBox(); this.checkOAM = new System.Windows.Forms.CheckBox(); this.checkTrans = new System.Windows.Forms.CheckBox(); this.groupPreview = new System.Windows.Forms.GroupBox(); this.checkCurrOAM = new System.Windows.Forms.CheckBox(); this.btnAddOAM = new System.Windows.Forms.Button(); this.btnRemOAM = new System.Windows.Forms.Button(); this.numNumOAM = new System.Windows.Forms.NumericUpDown(); this.label15 = new System.Windows.Forms.Label(); this.numObj0 = new System.Windows.Forms.NumericUpDown(); this.label16 = new System.Windows.Forms.Label(); this.label17 = new System.Windows.Forms.Label(); this.numObj1 = new System.Windows.Forms.NumericUpDown(); this.label18 = new System.Windows.Forms.Label(); this.numObj2 = new System.Windows.Forms.NumericUpDown(); this.checkAddFirst = new System.Windows.Forms.CheckBox(); this.groupObj0.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numYoffset)).BeginInit(); this.groupObj1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numSize)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numSelectPar)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numXpos)).BeginInit(); this.groupObj2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numPal)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numPrio)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numOffset)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numOAM)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.picBox)).BeginInit(); this.groupPreview.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numNumOAM)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numObj0)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numObj1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numObj2)).BeginInit(); this.SuspendLayout(); // // groupObj0 // this.groupObj0.Controls.Add(this.comboShape); this.groupObj0.Controls.Add(this.label5); this.groupObj0.Controls.Add(this.comboDepth); this.groupObj0.Controls.Add(this.comboObjMode); this.groupObj0.Controls.Add(this.checkMosaic); this.groupObj0.Controls.Add(this.checkDoubleSize); this.groupObj0.Controls.Add(this.checkObjdisable); this.groupObj0.Controls.Add(this.checkRSflag); this.groupObj0.Controls.Add(this.label4); this.groupObj0.Controls.Add(this.label3); this.groupObj0.Controls.Add(this.numYoffset); this.groupObj0.Controls.Add(this.label1); this.groupObj0.Location = new System.Drawing.Point(14, 33); this.groupObj0.Name = "groupObj0"; this.groupObj0.Size = new System.Drawing.Size(222, 197); this.groupObj0.TabIndex = 0; this.groupObj0.TabStop = false; this.groupObj0.Text = "Object 0"; // // comboShape // this.comboShape.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboShape.FormattingEnabled = true; this.comboShape.Items.AddRange(new object[] { "Square", "Horizontal", "Vertical", "Invalid"}); this.comboShape.Location = new System.Drawing.Point(98, 169); this.comboShape.Name = "comboShape"; this.comboShape.Size = new System.Drawing.Size(110, 21); this.comboShape.TabIndex = 22; this.comboShape.SelectedIndexChanged += new System.EventHandler(this.Change_OBJ0); // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(7, 143); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(39, 13); this.label5.TabIndex = 21; this.label5.Text = "Depth:"; // // comboDepth // this.comboDepth.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboDepth.FormattingEnabled = true; this.comboDepth.Items.AddRange(new object[] { "4 bpp (16 colors)", "8 bpp (256 colors)"}); this.comboDepth.Location = new System.Drawing.Point(98, 140); this.comboDepth.Name = "comboDepth"; this.comboDepth.Size = new System.Drawing.Size(110, 21); this.comboDepth.TabIndex = 20; this.comboDepth.SelectedIndexChanged += new System.EventHandler(this.Change_OBJ0); // // comboObjMode // this.comboObjMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboObjMode.FormattingEnabled = true; this.comboObjMode.Items.AddRange(new object[] { "Normal", "Semi-transparent", "Window", "Invalid"}); this.comboObjMode.Location = new System.Drawing.Point(98, 91); this.comboObjMode.Name = "comboObjMode"; this.comboObjMode.Size = new System.Drawing.Size(110, 21); this.comboObjMode.TabIndex = 19; this.comboObjMode.SelectedIndexChanged += new System.EventHandler(this.Change_OBJ0); // // checkMosaic // this.checkMosaic.AutoSize = true; this.checkMosaic.Location = new System.Drawing.Point(9, 117); this.checkMosaic.Name = "checkMosaic"; this.checkMosaic.Size = new System.Drawing.Size(60, 17); this.checkMosaic.TabIndex = 17; this.checkMosaic.Text = "Mosaic"; this.checkMosaic.UseVisualStyleBackColor = true; this.checkMosaic.CheckedChanged += new System.EventHandler(this.Change_OBJ0); // // checkDoubleSize // this.checkDoubleSize.AutoSize = true; this.checkDoubleSize.Location = new System.Drawing.Point(135, 68); this.checkDoubleSize.Name = "checkDoubleSize"; this.checkDoubleSize.Size = new System.Drawing.Size(81, 17); this.checkDoubleSize.TabIndex = 16; this.checkDoubleSize.Text = "Double size"; this.checkDoubleSize.UseVisualStyleBackColor = true; this.checkDoubleSize.CheckedChanged += new System.EventHandler(this.Change_OBJ0); // // checkObjdisable // this.checkObjdisable.AutoSize = true; this.checkObjdisable.Location = new System.Drawing.Point(36, 68); this.checkObjdisable.Name = "checkObjdisable"; this.checkObjdisable.Size = new System.Drawing.Size(93, 17); this.checkObjdisable.TabIndex = 15; this.checkObjdisable.Text = "Object disable"; this.checkObjdisable.UseVisualStyleBackColor = true; this.checkObjdisable.CheckedChanged += new System.EventHandler(this.Change_OBJ0); // // checkRSflag // this.checkRSflag.AutoSize = true; this.checkRSflag.Location = new System.Drawing.Point(10, 45); this.checkRSflag.Name = "checkRSflag"; this.checkRSflag.Size = new System.Drawing.Size(104, 17); this.checkRSflag.TabIndex = 14; this.checkRSflag.Text = "Rotation / Scale"; this.checkRSflag.UseVisualStyleBackColor = true; this.checkRSflag.CheckedChanged += new System.EventHandler(this.Change_OBJ0); // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(6, 169); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(41, 13); this.label4.TabIndex = 4; this.label4.Text = "Shape:"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(6, 94); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(70, 13); this.label3.TabIndex = 2; this.label3.Text = "Object mode:"; // // numYoffset // this.numYoffset.Location = new System.Drawing.Point(98, 19); this.numYoffset.Maximum = new decimal(new int[] { 127, 0, 0, 0}); this.numYoffset.Minimum = new decimal(new int[] { 128, 0, 0, -2147483648}); this.numYoffset.Name = "numYoffset"; this.numYoffset.Size = new System.Drawing.Size(60, 20); this.numYoffset.TabIndex = 1; this.numYoffset.ValueChanged += new System.EventHandler(this.Change_OBJ0); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(6, 21); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(56, 13); this.label1.TabIndex = 0; this.label1.Text = "Y position:"; // // groupObj1 // this.groupObj1.Controls.Add(this.numSize); this.groupObj1.Controls.Add(this.label7); this.groupObj1.Controls.Add(this.label6); this.groupObj1.Controls.Add(this.checkFlipY); this.groupObj1.Controls.Add(this.checkFlipX); this.groupObj1.Controls.Add(this.numSelectPar); this.groupObj1.Controls.Add(this.label2); this.groupObj1.Controls.Add(this.numXpos); this.groupObj1.Location = new System.Drawing.Point(242, 33); this.groupObj1.Name = "groupObj1"; this.groupObj1.Size = new System.Drawing.Size(169, 118); this.groupObj1.TabIndex = 1; this.groupObj1.TabStop = false; this.groupObj1.Text = "Object 1"; // // numSize // this.numSize.Location = new System.Drawing.Point(99, 92); this.numSize.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.numSize.Name = "numSize"; this.numSize.Size = new System.Drawing.Size(60, 20); this.numSize.TabIndex = 8; this.numSize.ValueChanged += new System.EventHandler(this.Change_OBJ1); // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(6, 94); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(30, 13); this.label7.TabIndex = 7; this.label7.Text = "Size:"; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(6, 48); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(72, 13); this.label6.TabIndex = 5; this.label6.Text = "Select param:"; // // checkFlipY // this.checkFlipY.AutoSize = true; this.checkFlipY.Location = new System.Drawing.Point(99, 72); this.checkFlipY.Name = "checkFlipY"; this.checkFlipY.Size = new System.Drawing.Size(52, 17); this.checkFlipY.TabIndex = 4; this.checkFlipY.Text = "Flip Y"; this.checkFlipY.UseVisualStyleBackColor = true; this.checkFlipY.CheckedChanged += new System.EventHandler(this.Change_OBJ1); // // checkFlipX // this.checkFlipX.AutoSize = true; this.checkFlipX.Location = new System.Drawing.Point(9, 72); this.checkFlipX.Name = "checkFlipX"; this.checkFlipX.Size = new System.Drawing.Size(52, 17); this.checkFlipX.TabIndex = 3; this.checkFlipX.Text = "Flip X"; this.checkFlipX.UseVisualStyleBackColor = true; this.checkFlipX.CheckedChanged += new System.EventHandler(this.Change_OBJ1); // // numSelectPar // this.numSelectPar.Location = new System.Drawing.Point(99, 46); this.numSelectPar.Maximum = new decimal(new int[] { 31, 0, 0, 0}); this.numSelectPar.Name = "numSelectPar"; this.numSelectPar.Size = new System.Drawing.Size(60, 20); this.numSelectPar.TabIndex = 2; this.numSelectPar.ValueChanged += new System.EventHandler(this.Change_OBJ1); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(6, 21); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(56, 13); this.label2.TabIndex = 1; this.label2.Text = "X position:"; // // numXpos // this.numXpos.Location = new System.Drawing.Point(99, 19); this.numXpos.Maximum = new decimal(new int[] { 255, 0, 0, 0}); this.numXpos.Minimum = new decimal(new int[] { 256, 0, 0, -2147483648}); this.numXpos.Name = "numXpos"; this.numXpos.Size = new System.Drawing.Size(60, 20); this.numXpos.TabIndex = 0; this.numXpos.ValueChanged += new System.EventHandler(this.Change_OBJ1); // // groupObj2 // this.groupObj2.Controls.Add(this.numPal); this.groupObj2.Controls.Add(this.label10); this.groupObj2.Controls.Add(this.numPrio); this.groupObj2.Controls.Add(this.label9); this.groupObj2.Controls.Add(this.numOffset); this.groupObj2.Controls.Add(this.label8); this.groupObj2.Location = new System.Drawing.Point(242, 157); this.groupObj2.Name = "groupObj2"; this.groupObj2.Size = new System.Drawing.Size(169, 100); this.groupObj2.TabIndex = 1; this.groupObj2.TabStop = false; this.groupObj2.Text = "Object 2"; // // numPal // this.numPal.Location = new System.Drawing.Point(99, 71); this.numPal.Maximum = new decimal(new int[] { 15, 0, 0, 0}); this.numPal.Name = "numPal"; this.numPal.Size = new System.Drawing.Size(60, 20); this.numPal.TabIndex = 7; this.numPal.ValueChanged += new System.EventHandler(this.Change_OBJ2); // // label10 // this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(7, 73); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(71, 13); this.label10.TabIndex = 6; this.label10.Text = "Palette index:"; // // numPrio // this.numPrio.Location = new System.Drawing.Point(99, 45); this.numPrio.Maximum = new decimal(new int[] { 3, 0, 0, 0}); this.numPrio.Name = "numPrio"; this.numPrio.Size = new System.Drawing.Size(60, 20); this.numPrio.TabIndex = 5; this.numPrio.ValueChanged += new System.EventHandler(this.Change_OBJ2); // // label9 // this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(7, 47); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(41, 13); this.label9.TabIndex = 4; this.label9.Text = "Priority:"; // // numOffset // this.numOffset.Hexadecimal = true; this.numOffset.Location = new System.Drawing.Point(99, 19); this.numOffset.Maximum = new decimal(new int[] { 1023, 0, 0, 0}); this.numOffset.Name = "numOffset"; this.numOffset.Size = new System.Drawing.Size(60, 20); this.numOffset.TabIndex = 3; this.numOffset.ValueChanged += new System.EventHandler(this.Change_OBJ2); // // label8 // this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(7, 21); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(56, 13); this.label8.TabIndex = 2; this.label8.Text = "Tile offset:"; // // numOAM // this.numOAM.Location = new System.Drawing.Point(52, 7); this.numOAM.Name = "numOAM"; this.numOAM.Size = new System.Drawing.Size(60, 20); this.numOAM.TabIndex = 2; this.numOAM.ValueChanged += new System.EventHandler(this.numOAM_ValueChanged); // // label11 // this.label11.AutoSize = true; this.label11.Location = new System.Drawing.Point(12, 9); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(34, 13); this.label11.TabIndex = 3; this.label11.Text = "OAM:"; // // label12 // this.label12.AutoSize = true; this.label12.Location = new System.Drawing.Point(118, 9); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(19, 13); this.label12.TabIndex = 4; this.label12.Text = "of "; // // picBox // this.picBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.picBox.Location = new System.Drawing.Point(14, 289); this.picBox.Name = "picBox"; this.picBox.Size = new System.Drawing.Size(512, 256); this.picBox.TabIndex = 5; this.picBox.TabStop = false; // // label13 // this.label13.AutoSize = true; this.label13.Location = new System.Drawing.Point(13, 270); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(48, 13); this.label13.TabIndex = 6; this.label13.Text = "Preview:"; // // btnSave // this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; this.btnSave.Location = new System.Drawing.Point(449, 4); this.btnSave.Name = "btnSave"; this.btnSave.Size = new System.Drawing.Size(80, 40); this.btnSave.TabIndex = 7; this.btnSave.Text = "Save"; this.btnSave.UseVisualStyleBackColor = true; this.btnSave.Click += new System.EventHandler(this.btnSave_Click); // // label14 // this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(415, 57); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(70, 13); this.label14.TabIndex = 8; this.label14.Text = "Auto set size:"; // // comboSize // this.comboSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboSize.FormattingEnabled = true; this.comboSize.Items.AddRange(new object[] { "08x08", "16x16", "32x32", "64x64", "16x08", "32x08", "32x16", "64x32", "08x16", "08x32", "16x32", "32x64"}); this.comboSize.Location = new System.Drawing.Point(415, 73); this.comboSize.Name = "comboSize"; this.comboSize.Size = new System.Drawing.Size(110, 21); this.comboSize.TabIndex = 9; this.comboSize.SelectedIndexChanged += new System.EventHandler(this.comboSize_SelectedIndexChanged); // // checkGrid // this.checkGrid.AutoSize = true; this.checkGrid.Checked = true; this.checkGrid.CheckState = System.Windows.Forms.CheckState.Checked; this.checkGrid.Location = new System.Drawing.Point(3, 108); this.checkGrid.Name = "checkGrid"; this.checkGrid.Size = new System.Drawing.Size(69, 17); this.checkGrid.TabIndex = 10; this.checkGrid.Text = "View grid"; this.checkGrid.UseVisualStyleBackColor = true; this.checkGrid.CheckedChanged += new System.EventHandler(this.Change_Preview); // // checkNumbers // this.checkNumbers.AutoSize = true; this.checkNumbers.Location = new System.Drawing.Point(3, 85); this.checkNumbers.Name = "checkNumbers"; this.checkNumbers.Size = new System.Drawing.Size(92, 17); this.checkNumbers.TabIndex = 11; this.checkNumbers.Text = "View numbers"; this.checkNumbers.UseVisualStyleBackColor = true; this.checkNumbers.CheckedChanged += new System.EventHandler(this.Change_Preview); // // checkImage // this.checkImage.AutoSize = true; this.checkImage.Checked = true; this.checkImage.CheckState = System.Windows.Forms.CheckState.Checked; this.checkImage.Location = new System.Drawing.Point(3, 62); this.checkImage.Name = "checkImage"; this.checkImage.Size = new System.Drawing.Size(80, 17); this.checkImage.TabIndex = 12; this.checkImage.Text = "View image"; this.checkImage.UseVisualStyleBackColor = true; this.checkImage.CheckedChanged += new System.EventHandler(this.Change_Preview); // // checkOAM // this.checkOAM.AutoSize = true; this.checkOAM.Checked = true; this.checkOAM.CheckState = System.Windows.Forms.CheckState.Checked; this.checkOAM.Location = new System.Drawing.Point(3, 42); this.checkOAM.Name = "checkOAM"; this.checkOAM.Size = new System.Drawing.Size(105, 17); this.checkOAM.TabIndex = 13; this.checkOAM.Text = "View oam border"; this.checkOAM.UseVisualStyleBackColor = true; this.checkOAM.CheckedChanged += new System.EventHandler(this.Change_Preview); // // checkTrans // this.checkTrans.AutoSize = true; this.checkTrans.Location = new System.Drawing.Point(3, 19); this.checkTrans.Name = "checkTrans"; this.checkTrans.Size = new System.Drawing.Size(91, 17); this.checkTrans.TabIndex = 14; this.checkTrans.Text = "Transparency"; this.checkTrans.UseVisualStyleBackColor = true; this.checkTrans.CheckedChanged += new System.EventHandler(this.Change_Preview); // // groupPreview // this.groupPreview.Controls.Add(this.checkCurrOAM); this.groupPreview.Controls.Add(this.checkTrans); this.groupPreview.Controls.Add(this.checkGrid); this.groupPreview.Controls.Add(this.checkOAM); this.groupPreview.Controls.Add(this.checkNumbers); this.groupPreview.Controls.Add(this.checkImage); this.groupPreview.Location = new System.Drawing.Point(418, 105); this.groupPreview.Name = "groupPreview"; this.groupPreview.Size = new System.Drawing.Size(111, 152); this.groupPreview.TabIndex = 15; this.groupPreview.TabStop = false; this.groupPreview.Text = "Preview options"; // // checkCurrOAM // this.checkCurrOAM.AutoSize = true; this.checkCurrOAM.Checked = true; this.checkCurrOAM.CheckState = System.Windows.Forms.CheckState.Checked; this.checkCurrOAM.Location = new System.Drawing.Point(3, 129); this.checkCurrOAM.Name = "checkCurrOAM"; this.checkCurrOAM.Size = new System.Drawing.Size(79, 17); this.checkCurrOAM.TabIndex = 15; this.checkCurrOAM.Text = "Select oam"; this.checkCurrOAM.UseVisualStyleBackColor = true; this.checkCurrOAM.CheckedChanged += new System.EventHandler(this.Change_Preview); // // btnAddOAM // this.btnAddOAM.Location = new System.Drawing.Point(225, 4); this.btnAddOAM.Name = "btnAddOAM"; this.btnAddOAM.Size = new System.Drawing.Size(90, 23); this.btnAddOAM.TabIndex = 16; this.btnAddOAM.Text = "Add OAM"; this.btnAddOAM.UseVisualStyleBackColor = true; this.btnAddOAM.Click += new System.EventHandler(this.btnAddOAM_Click); // // btnRemOAM // this.btnRemOAM.Location = new System.Drawing.Point(321, 4); this.btnRemOAM.Name = "btnRemOAM"; this.btnRemOAM.Size = new System.Drawing.Size(90, 23); this.btnRemOAM.TabIndex = 17; this.btnRemOAM.Text = "Remove OAM"; this.btnRemOAM.UseVisualStyleBackColor = true; this.btnRemOAM.Click += new System.EventHandler(this.btnRemOAM_Click); // // numNumOAM // this.numNumOAM.Location = new System.Drawing.Point(176, 236); this.numNumOAM.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numNumOAM.Name = "numNumOAM"; this.numNumOAM.Size = new System.Drawing.Size(60, 20); this.numNumOAM.TabIndex = 18; this.numNumOAM.ValueChanged += new System.EventHandler(this.numNumOAM_ValueChanged); // // label15 // this.label15.AutoSize = true; this.label15.Location = new System.Drawing.Point(125, 238); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(45, 13); this.label15.TabIndex = 19; this.label15.Text = "OAM id:"; // // numObj0 // this.numObj0.Hexadecimal = true; this.numObj0.Location = new System.Drawing.Point(176, 263); this.numObj0.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numObj0.Name = "numObj0"; this.numObj0.Size = new System.Drawing.Size(60, 20); this.numObj0.TabIndex = 20; this.numObj0.Value = new decimal(new int[] { 65535, 0, 0, 0}); this.numObj0.ValueChanged += new System.EventHandler(this.numObj_ValueChanged); // // label16 // this.label16.AutoSize = true; this.label16.Location = new System.Drawing.Point(126, 265); this.label16.Name = "label16"; this.label16.Size = new System.Drawing.Size(32, 13); this.label16.TabIndex = 21; this.label16.Text = "Obj0:"; // // label17 // this.label17.AutoSize = true; this.label17.Location = new System.Drawing.Point(257, 265); this.label17.Name = "label17"; this.label17.Size = new System.Drawing.Size(32, 13); this.label17.TabIndex = 23; this.label17.Text = "Obj1:"; // // numObj1 // this.numObj1.Hexadecimal = true; this.numObj1.Location = new System.Drawing.Point(307, 263); this.numObj1.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numObj1.Name = "numObj1"; this.numObj1.Size = new System.Drawing.Size(60, 20); this.numObj1.TabIndex = 22; this.numObj1.Value = new decimal(new int[] { 65535, 0, 0, 0}); this.numObj1.ValueChanged += new System.EventHandler(this.numObj_ValueChanged); // // label18 // this.label18.AutoSize = true; this.label18.Location = new System.Drawing.Point(383, 265); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(32, 13); this.label18.TabIndex = 25; this.label18.Text = "Obj2:"; // // numObj2 // this.numObj2.Hexadecimal = true; this.numObj2.Location = new System.Drawing.Point(433, 263); this.numObj2.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numObj2.Name = "numObj2"; this.numObj2.Size = new System.Drawing.Size(60, 20); this.numObj2.TabIndex = 24; this.numObj2.Value = new decimal(new int[] { 65535, 0, 0, 0}); this.numObj2.ValueChanged += new System.EventHandler(this.numObj_ValueChanged); // // checkAddFirst // this.checkAddFirst.AutoSize = true; this.checkAddFirst.Checked = true; this.checkAddFirst.CheckState = System.Windows.Forms.CheckState.Checked; this.checkAddFirst.Location = new System.Drawing.Point(14, 234); this.checkAddFirst.Name = "checkAddFirst"; this.checkAddFirst.Size = new System.Drawing.Size(78, 17); this.checkAddFirst.TabIndex = 26; this.checkAddFirst.Text = "Add first ID"; this.checkAddFirst.UseVisualStyleBackColor = true; // // OAMEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.GradientInactiveCaption; this.ClientSize = new System.Drawing.Size(533, 550); this.Controls.Add(this.checkAddFirst); this.Controls.Add(this.label18); this.Controls.Add(this.numObj2); this.Controls.Add(this.label17); this.Controls.Add(this.numObj1); this.Controls.Add(this.label16); this.Controls.Add(this.numObj0); this.Controls.Add(this.label15); this.Controls.Add(this.numNumOAM); this.Controls.Add(this.btnRemOAM); this.Controls.Add(this.btnAddOAM); this.Controls.Add(this.groupPreview); this.Controls.Add(this.comboSize); this.Controls.Add(this.label14); this.Controls.Add(this.btnSave); this.Controls.Add(this.label13); this.Controls.Add(this.picBox); this.Controls.Add(this.label12); this.Controls.Add(this.label11); this.Controls.Add(this.numOAM); this.Controls.Add(this.groupObj1); this.Controls.Add(this.groupObj2); this.Controls.Add(this.groupObj0); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.Name = "OAMEditor"; this.Text = "OAM Editor"; this.Load += new System.EventHandler(this.OAMEditor_Load); this.groupObj0.ResumeLayout(false); this.groupObj0.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numYoffset)).EndInit(); this.groupObj1.ResumeLayout(false); this.groupObj1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numSize)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numSelectPar)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numXpos)).EndInit(); this.groupObj2.ResumeLayout(false); this.groupObj2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numPal)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numPrio)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numOffset)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numOAM)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.picBox)).EndInit(); this.groupPreview.ResumeLayout(false); this.groupPreview.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numNumOAM)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numObj0)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numObj1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numObj2)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.GroupBox groupObj0; private System.Windows.Forms.GroupBox groupObj1; private System.Windows.Forms.GroupBox groupObj2; private System.Windows.Forms.NumericUpDown numYoffset; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.NumericUpDown numXpos; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label3; private System.Windows.Forms.CheckBox checkRSflag; private System.Windows.Forms.CheckBox checkObjdisable; private System.Windows.Forms.CheckBox checkDoubleSize; private System.Windows.Forms.CheckBox checkMosaic; private System.Windows.Forms.ComboBox comboObjMode; private System.Windows.Forms.ComboBox comboDepth; private System.Windows.Forms.Label label5; private System.Windows.Forms.ComboBox comboShape; private System.Windows.Forms.Label label6; private System.Windows.Forms.CheckBox checkFlipY; private System.Windows.Forms.CheckBox checkFlipX; private System.Windows.Forms.NumericUpDown numSelectPar; private System.Windows.Forms.Label label7; private System.Windows.Forms.NumericUpDown numSize; private System.Windows.Forms.NumericUpDown numPal; private System.Windows.Forms.Label label10; private System.Windows.Forms.NumericUpDown numPrio; private System.Windows.Forms.Label label9; private System.Windows.Forms.NumericUpDown numOffset; private System.Windows.Forms.Label label8; private System.Windows.Forms.NumericUpDown numOAM; private System.Windows.Forms.Label label11; private System.Windows.Forms.Label label12; private System.Windows.Forms.PictureBox picBox; private System.Windows.Forms.Label label13; private System.Windows.Forms.Button btnSave; private System.Windows.Forms.Label label14; private System.Windows.Forms.ComboBox comboSize; private System.Windows.Forms.CheckBox checkGrid; private System.Windows.Forms.CheckBox checkNumbers; private System.Windows.Forms.CheckBox checkImage; private System.Windows.Forms.CheckBox checkOAM; private System.Windows.Forms.CheckBox checkTrans; private System.Windows.Forms.GroupBox groupPreview; private System.Windows.Forms.CheckBox checkCurrOAM; private System.Windows.Forms.Button btnAddOAM; private System.Windows.Forms.Button btnRemOAM; private System.Windows.Forms.NumericUpDown numNumOAM; private System.Windows.Forms.Label label15; private System.Windows.Forms.NumericUpDown numObj0; private System.Windows.Forms.Label label16; private System.Windows.Forms.Label label17; private System.Windows.Forms.NumericUpDown numObj1; private System.Windows.Forms.Label label18; private System.Windows.Forms.NumericUpDown numObj2; private System.Windows.Forms.CheckBox checkAddFirst; } } ================================================ FILE: Ekona/Images/Dialogs/OAMEditor.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Xml.Linq; namespace Ekona.Images.Dialogs { public partial class OAMEditor : Form { Bank bank; bool stop; bool preview; SpriteBase sprite; ImageBase image; PaletteBase palette; public OAMEditor() { InitializeComponent(); } public OAMEditor(string langxml, Bank bank) { InitializeComponent(); this.bank = bank; numOAM.Maximum = bank.oams.Length - 1; preview = false; picBox.Enabled = false; groupPreview.Enabled = false; Read_Language(langxml); } public OAMEditor(string langxml, Bank bank, SpriteBase sprite, ImageBase image, PaletteBase palette) { InitializeComponent(); this.bank = bank; numOAM.Maximum = bank.oams.Length - 1; numOffset.Maximum = (bank.data_size == 0) ? image.Tiles.Length / (0x20 << (int)sprite.BlockSize) - 1 : bank.data_size / (0x20 << (int)sprite.BlockSize) - 1; preview = true; this.sprite = sprite; this.image = image; this.palette = palette; Read_Language(langxml); } public OAMEditor(XElement langxml, Bank bank, SpriteBase sprite, ImageBase image, PaletteBase palette) { InitializeComponent(); this.bank = bank; numOAM.Maximum = bank.oams.Length - 1; numOffset.Maximum = (bank.data_size == 0) ? image.Tiles.Length / (0x20 << (int)sprite.BlockSize) - 1 : bank.data_size / (0x20 << (int)sprite.BlockSize) - 1; preview = true; this.sprite = sprite; this.image = image; this.palette = palette; Read_Language(langxml); } private void OAMEditor_Load(object sender, EventArgs e) { Read_Info(0); Update_Image(); } private void Read_Language(string langxml) { try { XElement xml = XElement.Load(langxml); xml = xml.Element("Ekona").Element("OAMEditor"); Read_Language(xml); } catch { throw new Exception("There was an error reading the XML file of language."); } } private void Read_Language(XElement xml) { try { this.Text = xml.Element("S01").Value; label11.Text = xml.Element("S02").Value; label12.Text = xml.Element("S03").Value + ' ' + numOAM.Maximum.ToString(); groupObj0.Text = xml.Element("S04").Value; label1.Text = xml.Element("S05").Value; checkRSflag.Text = xml.Element("S06").Value; checkObjdisable.Text = xml.Element("S07").Value; checkDoubleSize.Text = xml.Element("S08").Value; label3.Text = xml.Element("S09").Value; comboObjMode.Items[0] = xml.Element("S0A").Value; comboObjMode.Items[1] = xml.Element("S0B").Value; comboObjMode.Items[2] = xml.Element("S0C").Value; comboObjMode.Items[3] = xml.Element("S0D").Value; checkMosaic.Text = xml.Element("S0E").Value; label5.Text = xml.Element("S0F").Value; comboDepth.Items[0] = xml.Element("S10").Value; comboDepth.Items[1] = xml.Element("S11").Value; label4.Text = xml.Element("S12").Value; comboShape.Items[0] = xml.Element("S13").Value; comboShape.Items[1] = xml.Element("S14").Value; comboShape.Items[2] = xml.Element("S15").Value; comboShape.Items[3] = xml.Element("S0D").Value; label15.Text = xml.Element("S16").Value; label13.Text = xml.Element("S17").Value; btnAddOAM.Text = xml.Element("S18").Value; btnRemOAM.Text = xml.Element("S19").Value; groupObj1.Text = xml.Element("S1A").Value; label2.Text = xml.Element("S1B").Value; label6.Text = xml.Element("S1C").Value; checkFlipX.Text = xml.Element("S1D").Value; checkFlipY.Text = xml.Element("S1E").Value; label7.Text = xml.Element("S1F").Value; groupObj2.Text = xml.Element("S20").Value; label8.Text = xml.Element("S21").Value; label9.Text = xml.Element("S22").Value; label10.Text = xml.Element("S23").Value; btnSave.Text = xml.Element("S24").Value; label14.Text = xml.Element("S25").Value; groupPreview.Text = xml.Element("S26").Value; checkTrans.Text = xml.Element("S27").Value; checkOAM.Text = xml.Element("S28").Value; checkImage.Text = xml.Element("S29").Value; checkNumbers.Text = xml.Element("S2A").Value; checkGrid.Text = xml.Element("S2B").Value; checkCurrOAM.Text = xml.Element("S2C").Value; } catch { throw new Exception("There was an error reading the XML file of language."); } } private void Read_Info(int i) { OAM oam = bank.oams[i]; stop = true; // Obj0 numYoffset.Value = oam.obj0.yOffset; if (oam.obj0.rs_flag == 0) { checkRSflag.Checked = false; checkObjdisable.Enabled = true; checkDoubleSize.Enabled = false; checkFlipX.Enabled = true; checkFlipY.Enabled = true; numSelectPar.Enabled = false; } else { checkRSflag.Checked = true; checkObjdisable.Enabled = false; checkDoubleSize.Enabled = true; checkFlipX.Enabled = false; checkFlipY.Enabled = false; numSelectPar.Enabled = true; } checkDoubleSize.Checked = (oam.obj0.doubleSize == 0) ? false : true; checkObjdisable.Checked = (oam.obj0.objDisable == 0) ? false : true; comboObjMode.SelectedIndex = oam.obj0.objMode; checkMosaic.Checked = (oam.obj0.mosaic_flag == 0) ? false : true; comboDepth.SelectedIndex = oam.obj0.depth; comboShape.SelectedIndex = oam.obj0.shape; // Obj1 numXpos.Value = oam.obj1.xOffset; numSelectPar.Value = oam.obj1.select_param; checkFlipX.Checked = (oam.obj1.flipX == 0) ? false : true; checkFlipY.Checked = (oam.obj1.flipY == 0) ? false : true; numSize.Value = oam.obj1.size; // Obj2 numOffset.Value = oam.obj2.tileOffset; numPrio.Value = oam.obj2.priority; numPal.Value = oam.obj2.index_palette; // Auto size switch (oam.obj0.shape) { case 0: if (oam.obj1.size == 0){ comboSize.SelectedIndex = 0; } else if (oam.obj1.size == 1){ comboSize.SelectedIndex = 1; } else if (oam.obj1.size == 2){ comboSize.SelectedIndex = 2; } else if (oam.obj1.size == 3){ comboSize.SelectedIndex = 3; } break; case 1: if (oam.obj1.size == 0){ comboSize.SelectedIndex = 4; } else if (oam.obj1.size == 1){ comboSize.SelectedIndex = 5; } else if (oam.obj1.size == 2){ comboSize.SelectedIndex = 6; } else if (oam.obj1.size == 3){ comboSize.SelectedIndex = 7; } break; case 2: if (oam.obj1.size == 0){ comboSize.SelectedIndex = 8; } else if (oam.obj1.size == 1){ comboSize.SelectedIndex = 9; } else if (oam.obj1.size == 2){ comboSize.SelectedIndex = 10; } else if (oam.obj1.size == 3){ comboSize.SelectedIndex = 11; } break; } numNumOAM.Value = oam.num_cell; stop = false; } private void Update_Image() { stop = true; OAM oam = bank.oams[(int)numOAM.Value]; Size size = Actions.Get_OAMSize(oam.obj0.shape, oam.obj1.size); oam.width = (ushort)size.Width; oam.height = (ushort)size.Height; bank.oams[(int)numOAM.Value] = oam; ushort[] objs = Actions.OAMInfo(oam); numObj0.Value = objs[0]; numObj1.Value = objs[1]; numObj2.Value = objs[2]; if (!preview) return; picBox.Image = sprite.Get_Image(image, palette, bank, 512, 256, checkGrid.Checked, checkOAM.Checked, checkNumbers.Checked, checkTrans.Checked, checkImage.Checked, (checkCurrOAM.Checked ? (int)numOAM.Value : -1)); stop = false; } private void btnSave_Click(object sender, EventArgs e) { this.Close(); } public Bank Bank { get { return bank; } } private void numOAM_ValueChanged(object sender, EventArgs e) { Read_Info((int)numOAM.Value); Update_Image(); } private void Change_OBJ0(object sender, EventArgs e) { if (stop) return; bank.oams[(int)numOAM.Value].obj0.yOffset = (int)numYoffset.Value; bank.oams[(int)numOAM.Value].obj0.rs_flag = (byte)(checkRSflag.Checked ? 1 : 0); if (checkRSflag.Checked) { checkObjdisable.Enabled = false; checkDoubleSize.Enabled = true; checkFlipX.Enabled = false; checkFlipY.Enabled = false; numSelectPar.Enabled = true; } else { checkObjdisable.Enabled = true; checkDoubleSize.Enabled = false; checkFlipX.Enabled = true; checkFlipY.Enabled = true; numSelectPar.Enabled = false; } bank.oams[(int)numOAM.Value].obj0.objDisable = (byte)(checkObjdisable.Checked ? 1 : 0); bank.oams[(int)numOAM.Value].obj0.doubleSize = (byte)(checkDoubleSize.Checked ? 1 : 0); bank.oams[(int)numOAM.Value].obj0.objMode = (byte)comboObjMode.SelectedIndex; bank.oams[(int)numOAM.Value].obj0.mosaic_flag = (byte)(checkMosaic.Checked ? 1 : 0); bank.oams[(int)numOAM.Value].obj0.depth = (byte)comboDepth.SelectedIndex; bank.oams[(int)numOAM.Value].obj0.shape = (byte)comboShape.SelectedIndex; Update_Image(); } private void Change_OBJ1(object sender, EventArgs e) { if (stop) return; bank.oams[(int)numOAM.Value].obj1.xOffset = (int)numXpos.Value; bank.oams[(int)numOAM.Value].obj1.select_param = (byte)numSelectPar.Value; bank.oams[(int)numOAM.Value].obj1.flipX = (byte)(checkFlipX.Checked ? 1 : 0); bank.oams[(int)numOAM.Value].obj1.flipY = (byte)(checkFlipY.Checked ? 1 : 0); bank.oams[(int)numOAM.Value].obj1.size = (byte)numSize.Value; Update_Image(); } private void Change_OBJ2(object sender, EventArgs e) { if (stop) return; bank.oams[(int)numOAM.Value].obj2.tileOffset = (uint)numOffset.Value; bank.oams[(int)numOAM.Value].obj2.priority = (byte)numPrio.Value; bank.oams[(int)numOAM.Value].obj2.index_palette = (byte)numPal.Value; Update_Image(); } private void Change_Preview(object sender, EventArgs e) { Update_Image(); } private void numNumOAM_ValueChanged(object sender, EventArgs e) { if (stop) return; bank.oams[(int)numOAM.Value].num_cell = (ushort)numNumOAM.Value; OAM currOAM = bank.oams[(int)numOAM.Value]; // Reorder the cells due to the new priority List cells = new List(); cells.AddRange(bank.oams); cells.Sort(Actions.Comparision_OAM); bank.oams = cells.ToArray(); numOAM.Value = Array.IndexOf(bank.oams, currOAM); Read_Info((int)numOAM.Value); Update_Image(); } private void comboSize_SelectedIndexChanged(object sender, EventArgs e) { if (stop) return; switch (comboSize.SelectedIndex) { case 0: bank.oams[(int)numOAM.Value].obj0.shape = 0; bank.oams[(int)numOAM.Value].obj1.size = 0; break; case 1: bank.oams[(int)numOAM.Value].obj0.shape = 0; bank.oams[(int)numOAM.Value].obj1.size = 1; break; case 2: bank.oams[(int)numOAM.Value].obj0.shape = 0; bank.oams[(int)numOAM.Value].obj1.size = 2; break; case 3: bank.oams[(int)numOAM.Value].obj0.shape = 0; bank.oams[(int)numOAM.Value].obj1.size = 3; break; case 4: bank.oams[(int)numOAM.Value].obj0.shape = 1; bank.oams[(int)numOAM.Value].obj1.size = 0; break; case 5: bank.oams[(int)numOAM.Value].obj0.shape = 1; bank.oams[(int)numOAM.Value].obj1.size = 1; break; case 6: bank.oams[(int)numOAM.Value].obj0.shape = 1; bank.oams[(int)numOAM.Value].obj1.size = 2; break; case 7: bank.oams[(int)numOAM.Value].obj0.shape = 1; bank.oams[(int)numOAM.Value].obj1.size = 3; break; case 8: bank.oams[(int)numOAM.Value].obj0.shape = 2; bank.oams[(int)numOAM.Value].obj1.size = 0; break; case 9: bank.oams[(int)numOAM.Value].obj0.shape = 2; bank.oams[(int)numOAM.Value].obj1.size = 1; break; case 10: bank.oams[(int)numOAM.Value].obj0.shape = 2; bank.oams[(int)numOAM.Value].obj1.size = 2; break; case 11: bank.oams[(int)numOAM.Value].obj0.shape = 2; bank.oams[(int)numOAM.Value].obj1.size = 3; break; } Read_Info((int)numOAM.Value); Update_Image(); } private void btnAddOAM_Click(object sender, EventArgs e) { int length = bank.oams.Length; OAM[] newOAM = new OAM[length + 1]; Array.Copy(bank.oams, newOAM, length); // New oam newOAM[length] = new OAM(); newOAM[length].obj0.yOffset = -128; newOAM[length].obj1.xOffset = -256; if (checkAddFirst.Checked) { newOAM[length].num_cell = 0; // Set this OAM as the first, with more priority in this layer so visible for (int i = 0; i < length; i++) // And increment the number of each OAM to fix that newOAM[i].num_cell++; } else newOAM[length].num_cell = (ushort)length; // Set to the background of the layer bank.oams = newOAM; OAM oam = newOAM[length]; // Reorder the cells due to the new num_cell and priority List cells = new List(); cells.AddRange(bank.oams); cells.Sort(Actions.Comparision_OAM); bank.oams = cells.ToArray(); // Update numOAM.Maximum = bank.oams.Length - 1; label12.Text = "of " + numOAM.Maximum.ToString(); numOAM.Value = Array.IndexOf(bank.oams, oam); Read_Info((int)numOAM.Value); Update_Image(); } private void btnRemOAM_Click(object sender, EventArgs e) { OAM[] newOAM = new OAM[bank.oams.Length - 1]; int j = 0; for (int i = 0; i < bank.oams.Length; i++) if (i != numOAM.Value) newOAM[j++] = bank.oams[i]; bank.oams = newOAM; numOAM.Maximum = bank.oams.Length - 1; label12.Text = "of " + numOAM.Maximum.ToString(); Read_Info((int)numOAM.Value); Update_Image(); } private void numObj_ValueChanged(object sender, EventArgs e) { if (stop) return; bank.oams[(int)numOAM.Value] = Actions.OAMInfo( (ushort)numObj0.Value, (ushort)numObj1.Value, (ushort)numObj2.Value); Read_Info((int)numOAM.Value); Update_Image(); } } } ================================================ FILE: Ekona/Images/Dialogs/OAMEditor.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 AAABAAEAQEAAAAAAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA 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///wD69/YA9vDtAPHp5ADt4tsA7eLcAO7j3ADu5N0A7+XeAO/l 3gDv5d4A7+XeAPDl3gDw5d4A8OXeAPDl3gDw5d4A8OXeAPDl3gDw5d4A8OXeAPDl3gDw5d4A8OXeAPDl 3gDw5d4A8OXeAPDl3gDw5d4A8OXeAPDl3gDw5d4A8OXeAPDl3gDw5d4A7+XeAO/l3gDv5N0A7uTdAO7j 3ADt4tsA8enkAPbw7QD69/YA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A9vDtAO3i2wDk08kA28W3ANzG uQDdyLoA3sm8AODLvgDgy70A4Mu9AODLvQDhy70A4cu9AOHLvQDhy70A4cy+AOHMvgDhzL4A4cy+AOHM vgDhzL4A4cy+AOHMvgDhzL4A4cu+AOHLvgDhy74A4cu+AOHLvgDhy74A4cu+AOHLvgDhy74A4cu+AODL vgDgzL4A38q8AN7JuwDdx7kA3Ma4AOTUygDt4tsA9vDtAP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////APHp 5ADk08kA172uAMmokwDLqpYAzayYAM6umwDQsZ0A0LGdANGxnADRsZwA0rGcANKxnADSsZwA0rKdANKy nQDSsp0A0rKdANKyngDSsp4A0rKeANKynQDSsp0A0rKdANKynQDSsp0A0rGdANKxnQDSsZ0A0rGdANKx nQDSsZ0A0rGdANKynQDRsp0A0bKdAM+wmwDNrpkAzKuXAMqplQDXvq8A5NTKAPHp5AD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wDt4tsA28W3AMmokwC4i3CKuo5ziryRdoq+lHmKwZd9w8GXfMPCl3zDwpd7w8OX e/DDl3vww5h88MOYfPDEmX3wxJl98MSZffDEmX3wxJl+/8SZff/EmX3/xJl9/8SZffDEmH3wxJh98MSY ffDEmH3wxJh98MSYffDEmH3wxJh98MOYffDDmH3wwph98MKZffC/lnrwvZN38LuQdPC5jXKQyqmVkNzG uJDt4tuQ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A7eLbANzGuADLqZUAuo1yir6VfIrDnYWKyKSPisys mMPNrZjDzq2Yw8+tmMPQrpjw0K6Y8NCvmfDQr5nw0a+Z8NCvmfDQr5rw0K+a8NCvmv/Qr5r/0K+a/9Cv mf/Qr5nw0K+Z8NCvmfDQrpnw0K6Z8NCumfDQrpnw0K6Z8NCumfDQrpnwz66Y8M6umPDOrpjwyaaP8MSf hvDAl33wu5B1kMyrl5Ddx7qQ7uPckP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO7j3ADdx7oAzKuXALyQ dYrDnISKyqmUitG1pIrYwrTD2cO0w9vEtcPcxLXD3cW28N3FtvDdxrbw3ca28N7GtvDdxrbw3ca28N3G tvDdxrf/3ca2/93Gtv/dxrb/3ca28N3FtvDdxbbw3cW28N3FtvDdxbbw3cW28N3FtvDdxbbw3MW18NvE tPDaxLTw2sOz8NO3pPDMq5XwxZ+G8L6TeJDOrpmQ3sm7kO7k3ZD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDu490A3si7AM6tmQC+kneKx6ONitG1o4raxrqK5NjQw+XZ0cPn2tHD6dvSw+rc0/Dq3NPw6t3T8Ord 0/Dr3dPw6t3T8Ord0/Dq3dPw6t3T/+rd0//q3NP/6tzS/+rc0vDq3NLw6tzS8Orc0vDq3NLw6tzS8Orc 0vDq3NLw6tzS8Onb0fDo2tDw59nP8ObYzvDcyLnw07ek8Mqmj/DBlnuQ0LCckODKvZDv5N6Q////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A7+TdAN/KvADPr5sAwJV64cyrluHYwbPh5NfP4fDu7P/y7+3/9PHu//by 7//49PH/+PTw//j08P/49PD/+PTw//f08P/39PD/9/Tw//f08P/38+//9/Pv//fz7//38+//9/Pv//fz 7//38+//9/Pv//fz7//38+//9/Pv//fz7//18e3/9PDs//Pv6//y7ur/5tjP/9vDtP/Prpn/xJl+79Ky nu/hzL7v8OXe7////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD69/YA9vDtAPHp5ADt4tsA7eLcAO7j3ADu5N0A7+XeAOPRxQDYvawAzKmSAMCVeeHMq5bh2cGy4eXY z+Hx7uz/6Orl/97n3v/V49f/y9/Q/8vf0P/L3s//yt7P/8rezv/J3c7/yd3O/8jdzf/I3M3/x9zM/8fb zP/H28v/xtrL/8bayv/G2cr/xdnK/8XZyf/F2Mn/xNjJ/8TYyP/E18j/0N3Q/9vi2P/n6OD/8+3p/+fY zv/bw7P/0K6Y/8SZfu/Ssp7v4cy+7/Dl3u////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A9vDtAO3i2wDk08kA28W3ANzGuQDdyLoA3sm8AODLvgDYvawA0LCbAMii igDBlXnhzauV4drCsuHm2M/h8+/s/97m3f/J3c7/tNS//5/LsP+eyq//nsmv/53Jrv+dyK3/nMes/5vH rP+axqv/mcWr/5jEqv+Yw6n/l8Ko/5bCp/+Vwab/lcCm/5S/pf+Uv6T/k76j/5K9o/+SvaL/kbyi/6rI s//D1cX/2+HW//Tt6P/o2M3/3MOz/9CumP/EmX7v07Ke7+HMvu/w5d7v////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////APHp5ADk08kA172uAMmokwDLqpYAzayYAM6u mwDQsZ0AzKqUAMmjiwDFnIEAwZV44c6rleHbwrLh59nP4fTw7P/U4dX/s9O+/5PEp/9ztpD/crWP/3G0 jv9ws43/b7KM/26xi/9tsIr/a6+J/2quiP9prYf/aKuG/2eqhP9mqYP/ZaiC/2Sngf9jpoD/YqV//2Gk fv9go33/X6J8/16he/+EtJb/qsex/9DazP/17ef/6djM/93Dsv/Rrpj/xJl+79Oznu/hzL7v8OXe7/// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDt4tsA28W3AMmo kwC4i3B8uo5zfLyRdny+lHl8wZd9sMGWe7DBlnqwwZV5sMKVeP/PrJX/3MOy/+naz//28e3/yt3N/57J rv9ytY//R6Jw/0Wgbv9En23/Q55s/0Kda/9Am2n/P5po/z2YZ/88l2b/OpVk/zmUY/83kmH/NpFg/zSP Xv8zjl3/Moxb/zGLWv8viVj/LohX/y2HVv8shlX/Xp95/5G5nf/E08H/9+3m/+rYzP/ew7L/0a6Y/8Wa fv7Ts57+4sy+/vDl3v7///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A7eLbANzGuADLqZUAuo1yfL6VfHzDnYV8yKSPfMysmLDKppCwx6GIsMSbgLDClXj/z6yV/9zD sv/p2s//9vHs/9Pf0P+xzbT/jruX/2ype/9rqHr/aqd5/2mmeP9ppXf/XqF5/1See/9Km33/QJh//z2V e/86kXf/N450/zSKcP8+jW7/SJBs/1GTaf9blmf/WpRm/1iTZf9XkmT/VpFj/36og/+mv6T/ztbF//bt 5v/q2Mz/3cOy/9GvmP/Fmn7+07Oe/uLMvv7w5d7+////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AO7j3ADdx7oAzKuXALyQdXzDnIR8yqmUfNG1pHzYwrSw07elsM2s lrDIoIewwpV4/8+slf/cw7L/6drP//bx7P/d4NP/xNC5/6rAoP+RsIf/ka+G/5Cuhf+QrYT/kK2D/32o iP9qo47/WJ+T/0Wamf9BlZL/PI+M/ziKhv8zhID/SIt9/1ySe/9xmXj/haF1/4SfdP+DnnP/gp1y/4Gc cf+esI7/u8Sr/9nZyP/27eb/6tjM/93Esv/Rr5j/xZp+/tOznv7izL7+8OXe/v///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDu490A3si7AM6tmQC+knd8x6ONfNG1 o3zaxrp85NjQsNvHurDTt6Swy6aOsMKVeP/PrJX/3MOy/+naz//28ez/5uLV/9bUv//Gxaj/treS/7a2 kf+2tpD/trWP/7e1j/+brpf/gKig/2Wiqf9KnLL/RJSq/z6Nof84hZn/Mn6Q/1GJjf9xlYr/kKCG/6+s g/+uqoL/ramB/6yogP+rp3//vriY/9DKsv/j3Mz/9u3m/+nZzP/dxLL/0a+Y/8Wafv7Ts57+4sy+/vDl 3v7///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A7+TdAN/K vADPr5sAwJV6y8yrlsvYwbPL5NfPy/Du7Obk2M/m2cKy5s6slebDlnj/0KyV/93Dsv/q2s//9/Hs//Dk 2P/p18X/4sqx/9y+nv/cvZ3/3b2c/929m//evZv/urWn/5ats/9ypb//T57M/0eUwf9Ai7b/OIGr/zF4 of9bh53/hZeZ/6+nlf/at5H/2bWQ/9i0j//Xs47/1rKN/97Bo//m0Ln/7t/P//bu5v/p2cz/3cSy/9Gv mP/Fm3/+07Sf/uLNv/7w5t/+////AP///wD///8A////AP///wD69/YA9vDtAPHp5ADt4tsA7eLcAO7j 3ADu5N0A7+XeAOPRxQDYvawAzKmSAMCVecvMq5XL2MGxy+TXzsvw7erm5NfN5tjBsebNq5TmwZZ4/86s lf/cw7L/6drP//fx7P/w5dn/6djH/+PMtP/cwKL/1b6d/867mP/HuZP/v7eP/6KxmP+ErKH/Z6eq/0mh s/9Dmqr/PZKh/zaLmf8whJD/Uo6M/3OZiP+VpIT/t6+A/76vg//GsIb/zbCJ/9WxjP/dwKL/5c+5/+3e z//27ub/6dnM/93Esv/Rr5j/xJp+/tOznv7hzL7+8OXe/v///wD///8A////AP///wD///8A9vDtAO3i 2wDk08kA28W3ANzGuQDdyLoA3sm8AODLvgDYvawA0LCbAMiiigDBlXnLzaqUy9nAsMvl1szL8ezo5uTW zObYwbDmy6uU5r+WeP/NrZX/28Sy/+nbz//38u3/8Obb/+rayf/jzrf/3cKm/86+nf+/upT/sLWM/6Gx g/+Kron/cquP/1uolf9EpZv/P6CU/zqajf81lYb/MJB//0mVe/9im3f/e6Fz/5Snb/+kqXb/tKt9/8St hP/UsIv/3L+h/+XPuP/t3s//9u7m/+nZzP/dxLL/0K+Y/8Safv7Ts57+4cy+/vDl3v7///8A////AP// /wD///8A////APHp5ADk08kA172uAMmokwDLqpYAzayYAM6umwDQsZ0AzKqUAMmjiwDFnIEAwZV4y82q lMvZwK/L5dXLy/Hr5ubk1cvm18Cv5sqrk+a9lnj/zK2V/9rEsv/o29D/9/Lt//Dn3P/q28v/5NC6/97E qv/Hvp3/sLiQ/5qyhP+Dq3f/cqt6/2Cqff9PqX//PqmC/zqlff83onj/M59z/y+cbv8/nGr/UJ1m/2Ce Yv9xn17/iaNp/6KndP+6q3//06+K/9u+of/kzrj/7d7P//bu5v/p2cz/3cSy/9CvmP/Emn7+0rOe/uHM vv7w5d7+////AP///wD///8A////AP///wDt4tsA28W3AMmokwC4i3Buuo5zbryRdm6+lHluwZd9nMGW e5zBlnqcwZV5nMKVePnOqpP52r+u+ebUyfny6uX55NXJ+dfArvnJq5P5vJZ4/8qtlf/ZxLP/6NvQ//fz 7v/x6N7/693O/+XSvv/fx67/wL6d/6K2jf+Drnz/ZaZs/1qna/9PqWv/RKtq/zmtav82q2f/NKpk/zGp Yf8vqF7/NqNa/z6fVv9Gm1L/TpdO/2+cXP+Qomv/sah6/9Kuif/bvqD/5M64/+3ez//27uf/6dnM/93E sv/Qr5j/xJp+8NKznvDhzL7w8OXe8P///wD///8A////AP///wD///8A7eLbANzGuADLqZUAuo1ybr6V fG7DnYVuyKSPbsysmJzKp5GcyKGJnMWcgZzDl3r5z6yV+dvBsPnn1sv58+vm+ebWy/nYwa/5y6uU+b6W eP/MrZb/2sSz/+jc0P/38+7/8ejf/+vez//l08D/38mx/77Bof+dupL/fLOD/1usc/9UrnT/TbB0/0Wx df8+s3X/PLJy/zmxb/83r2z/Na5p/zmpZP8+pV7/QqBY/0abU/9poGD/i6Ru/62oe//QrYn/2b2g/+PN uP/s3c//9u7n/+nZzP/dxLL/0K+Y/8SafvDSs57w4cy+8PDl3vD///8A////AP///wD///8A////AO7j 3ADdx7oAzKuXALyQdW7DnIRuyqmUbtG1pG7YwrSc07imnM6tmJzJo4qcxJl8+dCul/ncw7L56NjN+fTt 6Pnn18z52sKx+c2slfnAl3n/zq6W/9vFtP/p3NH/9/Pu//Hp4P/r39H/5dXD/+DLtP+8xab/mb+Y/3W5 if9Ss3v/TrR9/0u2fv9HuID/RLqB/0G4fv8/t3v/PbZ4/zu1df88r27/Papn/z6lX/8/oFj/Y6Nk/4em cP+qqXz/zqyJ/9i8oP/izbj/7N3P//bu5//p2cz/3cSy/9CvmP/Emn7w0rOe8OHMvvDw5d7w////AP// /wD///8A////AP///wDu490A3si7AM6tmQC+kndux6ONbtG1o27axrpu5NjQnNzIu5zVuaeczaqTnMWb fvnRsJn53cW0+enaz/n17+r56dnO+dzDsvnPrZb5wpd6/8+ul//cxbT/6dzR//fz7v/x6uH/6+DT/+bW xf/gzbf/usiq/5TDnf9vvpD/SbmD/0m7hf9JvYj/Sb6K/0nAjf9Hv4r/Rb6H/0O8hP9Bu4H/P7V4/z2w b/86qmb/OKVd/12maP+CqHP/p6l+/8yrif/Xu6D/4cy4/+vdz//27uf/6dnM/93Esv/Qr5j/xJp+8NKz nvDhzL7w8OXe8P///wD///8A////AP///wD///8A7+TdAN/KvADPr5sAwJV6tMyrlrTYwbO05NfPtPDu 7Mzl2dHM28W2zNGxm8zHnYH607Kb+t/Htvrr3NH69/Hs+uraz/rexLP60a6X+sWYe//Rr5j/3sa1/+rd 0v/39O//8eri/+zh1f/m2Mj/4c+7/7jLr/+Qx6P/aMOX/0DAi/9DwY7/R8OS/0vFlf9Px5n/TcWW/0vE k/9Jw5D/SMKN/0K8gv88tnj/NrBt/zGqY/9Xqmz/fqp2/6Sqf//Lqon/1bug/+DMuP/r3c//9u7n/+nZ zP/dxLL/0K+Y/8SafvDSs57w4cy+8PDl3vD///8A////AP///wD///8A////AO/k3QDfyrwA0K+aAMCV ebTMq5a02cGytOXYz7Tx7uzM5dnQzNnFtczNsJnMwpt++s6wmfraxbT659rP+vPv6vrn2c763MOy+tCt lvrEl3r/0a6X/93FtP/q3dL/9/Tv//Hr4//s4tb/59rK/+LRvv+6zbL/ksmm/2rFm/9Cwo//RcOS/0nF lv9Nx5n/Ucmc/1DHmf9Oxpb/TMWT/0rEkf9Evob/Prh8/ziycf8zrGf/Waxw/3+sev+mrYP/zK2N/9e9 o//hzbr/697Q//Xu5//p2cz/3MSy/9CvmP/Emn7w0rOe8OHMvvDw5d7w////AP///wD///8A////AP// /wDv5N0A4Mq8ANCvmgDBlXm0zauVtNrCsrTm2M+08+/szOXa0MzYxLTMyq+YzL2afPrJr5f61sSy+uPZ zfrw7uj65djM+trCsfrPrJX6xJd6/9Cul//dxbT/6t3S//f07//y7OT/7eTY/+jczf/k1MH/vNC2/5TM qv9syJ//RMST/0jFlv9Mx5r/UMmd/1TLoP9SyZ3/Ucia/0/Hl/9NxpX/R8CK/0G6gP87tHb/Na9s/1uv df+Br37/qLCI/86wkf/YwKb/4s+8/+vf0f/17uf/6dnM/9zEsv/Qr5j/xJp+8NKznvDhzL7w8OXe8P// /wD///8A////AP///wD///8A7+TdAODKuwDQr5oAwZV4tM6rlbTbwrK059nPtPTw7Mzl2s/M1sSzzMeu lsy4mHn6xa2U+tLCr/rf2Mr67O3m+uLXyvrYwa/6zayU+sOWef/Qrpf/3cW0/+rd0v/39O//8u3l/+7l 2v/p3s//5dbE/73Suf+Vzq7/bcqj/0bGl/9Kx5r/Tsme/1LLof9XzaT/Vcuh/1PKnv9SyZv/UMiZ/0nC jv9DvIT/Pbd6/zexcP9dsnn/g7KD/6mzjP/Qs5X/2cKq/+LRvv/s4NL/9e7n/+jZzP/cxLL/0K+Y/8Sa fvDSs57w4cy+8PDl3vD///8A////AP///wD///8A////AO/k3QDgyrsA0a+ZAMKVeMvPrJXL3MOyy+na z8v28e3M5drPzNTEsszDrZTMs5d398CskvfOwa3329bI9+ns5Prf1sn61sGu+syrk/rDlnn/0K2W/93F tP/q3dL/9/Xw//Pu5v/v59z/6+DS/+fZyP+/1L3/l9Cy/2/Mp/9IyJz/TMmf/1HLov9VzaX/Ws+o/1jN pf9WzKL/VMuf/1PKnf9MxJP/Rr+J/z+5f/85tHX/X7R+/4W1h/+rtpD/0rea/9rFrf/j08D/7OHT//Xv 5//o2s3/3MWz/9Cwmf/Em3/+0rSf/uHNv/7w5t/+////AP///wD///8A////AP///wDv5N0A4Mq7ANGv mQDClXjLz6yVy9zDssvp2s/L9vHszObaz8zXxLLMx66VzLeXePfErZP30cKu997Xyffs7eX64dfK+tfB r/rNrJT6w5Z5/9Cul//dxbX/6t3T//f18f/z7uf/7+fd/+vg0//n2cn/wdS9/5rPsf90yqX/TcWZ/0/H nP9RyZ//U8ui/1bNpf9UzKP/Usug/1HJnf9PyJv/S8OR/0i9iP9EuH7/QLJ1/2W0gP+Ktor/r7mV/9S7 n//cyLH/5dXD/+3i1f/17+f/6drN/9zFs//Qr5j/xJp+/tKznv7hzL7+8OXe/v///wD///8A////AP// /wD///8A7+TdAODKuwDRr5kAwpV4y8+slcvcw7LL6drPy/bx7Mzo2s/M2cSzzMuulsy8mHr3ya2V99XD sPfi2Mv37+7m+uTYy/rZwrD6zqyV+sOXev/Qrpj/3ca2/+rd1P/39fL/8+7o/+/n3v/r4NT/6NrK/8LU vf+dzrD/eMij/1PClv9SxJn/Usec/1LJoP9SzKP/UMug/0/Jnv9NyJv/TMeZ/0vBkP9KvIf/SbZ+/0ix dv9stIH/j7iN/7O7mf/Xv6X/3su2/+bXxv/u49f/9u/o/+nazf/dxbP/0K+Y/8Safv7Ts57+4cy+/vDl 3v7///8A////AP///wD///8A////AO/k3QDgyrsA0bCZAMKVeMvPrJXL3MOyy+naz8v28ezM6dvQzNzF s8zOr5fMwZl7982ulvfZxLH35dnM9/Lv5/rm2cz62sOx+s+tlvrDl3v/0K6Z/93Gt//q3dX/9/Xz//Pu 6f/v59//7OHV/+jay//E073/oMyv/3zFof9Yv5P/VcKW/1PFmv9QyJ3/Tsuh/0zJnv9LyJz/ScaZ/0jF l/9KwI7/TLqG/061fv9Qr3b/crSD/5S5kP+3vp7/2cOr/+DOuv/o2cn/7+TZ//bv6P/q2s3/3cWz/9Gv mP/Emn7+07Oe/uHMvv7w5d7+////AP///wD///8A////AP///wDw5N0A4cq7ANKwmQDDlnjL0KyVy93D ssvq2s/L9/HszOrb0MzexbTM0q+YzMaafffRr5f33cWy9+nazff18Oj66NrN+tzEsvrQrpf6xJh8/9Cv mv/dxrj/6t3W//f19P/z7ur/8Ojg/+zh1v/p28z/xtO9/6PLrv+Aw5//XryQ/1m/k/9Uw5f/T8ab/0rK n/9IyJz/R8ea/0bFl/9FxJX/Sb6N/065hv9Ts37/WK53/3m0hf+au5T/u8Gi/9zIsf/i0r//6dzN//Dm 2//38On/6trO/97Fs//Rr5j/xZp+8NOznvDizL7w8OXe8P///wD///8A////AP///wD///8A8OTdAOHK uwDSsJkAw5V4y9Cslcvdw7LL6trPy/fx7Mzq29DM3sW0zNKvmMzFmn330a+X99zEsvfn2sz38u/n+ufa zfrbxbP6z7CZ+sSbgP/QsJz/3Ma4/+fc1f/z8vH/8e7q//Dq4//u5dz/7OHW/9Lbyv+41b//ntC0/4TK qf+AzKv/fM+u/3nSsf911LT/dNOy/3PSsP9y0a7/cdCs/3XMp/94yKH/fMOb/3+/lv+YxKH/scms/8rO tv/i08H/59rL/+zh1f/x6N//9e/o/+nazv/dxLP/0K+Y/8SZffDSs57w4cy+8PDl3vD///8A////AP// /wD///8A////APDk3QDhyrsA0q+ZAMOVeMvQrJXL3cOyy+raz8v38u3M6tzRzN7GtczRsJnMxZp999Cv l/fbxLL35drM9/Dv5/rl28762sa1+s+ynPrEnoT/z7Ke/9rHuf/l29T/8PDv//Du6//w7Of/8Orj//Do 4P/e5Nj/zeDR/7vcyf+q2ML/qNrD/6Xcxf+j3cf/oN/J/5/eyP+f3sf/nt3F/57cxP+g2cD/ote9/6XU uf+n0bX/uNS8/8jYxP/Z28v/6d7S/+zi2P/v5t3/8erj//Tv6P/o2c3/3MSz/8+umP/DmX3w0rKd8OHM vvDw5d7w////AP///wD///8A////AP///wDw5N0A4cq7ANKvmQDDlXjL0KyVy93Dssvq29DL9/LtzOrc 0czexrXM0bCZzMWafffPr5f32cSx9+TZzPfu7+b649vO+tnIt/rPtJ/6xKGI/860of/Zx7r/49rT/+3t 7P/u7ev/8O7r//Hu6v/z7ur/6uzm/+Lq4v/Z6N7/0Obb/8/n2//O6Nz/zend/8vq3v/L6d7/y+nd/8rp 3P/K6Nz/y+fa/8zm2P/O5Nb/z+PU/9fk2P/f5tz/6Ojf//Dp4//x6uT/8ezl//Lt5//z7uj/59nN/9vD sv/Orpj/wpl98NGynfDgzL7w7+Xe8P///wD///8A////AP///wD///8A8OTdAOHKuwDSr5kAw5V4wNCs lcDdxLPA6tvQwPfz7szq3NHM3sa1zNGwmczFmn36zq+X+tjEsfri2cv67O/m+uLcz/rYybn6zrai+sWk jP/OtaP/18e7/+DZ0v/q6+r/7e3s//Dw7//z8vH/9/X0//f19P/39fT/9/X0//f19P/39fT/9/X0//f1 9P/39fT/9/X0//f19P/39fT/9/X0//f19P/39fT/9/X0//f19P/39fT/9/X0//f19P/39fT/9fPx//Tx 7v/z7+v/8u7o/+bYzf/aw7L/zq6X/8KZfe/Rsp3v4My+7+/l3u////8A////AP///wD///8A////APDk 3QDhyrsA0q+ZAMOVeMDQrJXA3cSzwOrb0MD38+7M6t3SzN7HtszRsJnMxZp9+s6vmPrYxbL64drN+uvv 5/rh3dH62Mu7+s+5pfrGp5D/zLOg/9K/sP/YzMH/3tjR/+DZ0v/j2tP/5dzU/+jd1f/o3dX/6N3V/+jd 1f/o3dX/6N3V/+nd1f/p3dX/6t3V/+rd1f/q3dX/6t3V/+rd1f/q3dX/6t3V/+rd1v/q3tb/6t3V/+rd 1f/q3dX/6tzU/+jb0v/n2tD/5tnO/+XXzP/cx7f/0raj/8mmjv+/lnrvz7Cb79/KvO/v5N3v////AP// /wD///8A////AP///wDw5N0A4cq7ANKvmQDDlXjA0KyVwN3Es8Dq29DA9/PuzOrd0szex7bM0bGazMWb fvrOsJn62MWz+uHazvrq8On64d7T+tjNvvrPvKn6x6uU/8mxnf/MuKb/z76v/9LFuf/Txbj/1cW3/9fF tv/Zxrb/2ca2/9nGtv/Zxrb/2ca2/9rGtv/bxrb/3MW2/93Ftv/dxbb/3cW2/93Ftv/dxrf/3ca3/97G t//exrj/3se4/97Gt//dxbf/3cW2/93Etf/cw7T/28Oy/9rCsf/ZwbD/0rWh/8uqk//EnoX/vZN3782u me/eybvv7uTd7////wD///8A////AP///wD///8A8OTdAOHKuwDSr5kAw5V4wNCslcDdxLPA6tzRwPfz 7szq3dLM3si3zNKym8zFnH/6zrGa+tfGtPrg28/66fDq+uHg1frYz8H60L+s+siumP/Hr5r/x7Cc/8ax nv/GsqD/x7Ge/8iwm//Jr5n/yq6X/8qul//Krpf/yq+X/8qvl//Mrpf/za6X/86ul//QrZf/0K2X/9Cu l//Qrpj/0K6Y/9Gumf/Rr5n/0a+a/9Kwmv/Rr5n/0a6Y/9Ctl//QrJb/z6yV/86rlf/Nq5T/zauU/8ik jP/DnYT/v5Z8/7qQdO/Lq5bv3Me57+3j3O////8A////AP///wD///8A////APDk3QDhyrsA0q+ZAMOV eMDQrJXA3cSzwOrc0cD39O/M6t7TzN7It8zSspvMxp2A986ym/fXx7b34NzR9+nx7Prh4dj62dHE+tHB sPrJspz9xa2X/cGpkv29pI39uqCI/7qdhP+6m4D/upl8/7uXeP+7l3j/u5d4/7uXeP+8mHn/vZd4/7+X eP/Blnj/w5Z4/8OWeP/Dlnn/w5Z5/8SXev/El3r/xZh7/8WYfP/GmX3+xZd7/sSWev7DlXj+w5R3/cKU d/3ClHf9wZR3/cGVePC+k3bwvJF08LqPcvC4jXGPyamUj9vGuI/t4tuP////AP///wD///8A////AP// /wDw5N0A4cq7ANKvmQDDlXjA0K2WwN3Es8Dq3NHA9/TvzOrf1MzeybnM0rSfzMafhPfOs5331se3997a 0Pfm7ur64OPb+tvYzfrWzb760cKw/c6+rP3Lu6j9yLel/ca0of/Gsp7/xrCa/8avl//GrZT/x62U/8it lf/JrZX/yq6W/8utlv/NrZb/zq2W/9Ctlv/PrZb/z62W/8+tlv/PrJb/0K2W/9Ctl//QrZf/0a6X/s2o j/7JoYj+xpuA/sKVeP3Gm4D9yaKJ/c2okf3Qr5nwzq6Y8M2sl/DLq5XwyamUj9e+r4/k1MmP8enkj/// /wD///8A////AP///wD///8A8OTdAOHKuwDSr5oAw5V4wNCtlsDdxbTA6tzRwPf078zr39XM38u8zNO2 oszHooj3zrSg99XHuPfc2dD34+zo+uDl3/re39b63NjN+trSxf3Yz8L91s2//dTLvf3Sybr/0ce4/9HG tf/RxLP/0cOx/9PDsf/Uw7L/1sOy/9jEs//ZxLP/2sS0/9vFtP/dxbX/3MS0/9zEtP/bw7P/28Ky/9vC sv/bw7L/28Oy/9zDsv7VuKT+z62W/sihiP7Clnr9yaOK/dGwmv3Yvav94Mq78N7JuvDdyLnw3Me48NvG uI/k1MmP7eLbj/bw7Y////8A////AP///wD///8A////APDk3QDhyrsA0rCaAMOVeMDQrZbA3cW0wOrd 0sD39O/M6+DXzN/MvszTuKXMyKSM9861o/fUx7n32tjP9+Dq5vrg6OL64ebf+uHk3Pri4tn94eDY/eDf 1v3f3tX93t3T/93c0v/d29D/3drP/9zZzf/f2c7/4dnO/+PZz//m2tD/59rR/+jb0v/p3NP/6t3U/+nc 0v/o2tH/59nQ/+fYzv/n2M7/59jO/+fYzf/n2M3+3ci4/tS4pP7LqI/+wpd7/c2qk/3Yvqz95NHE/e/k 3fDu5Nzw7uPc8O3j2/Dt4tuP8enkj/bw7Y/69/aP////AP///wD///8A////AP///wDw5N0A4cq8ANKw mgDDlnnL0K2Wy93FtMvq3dLL9/XwzOvh2MzgzsDM1LqozMmnkfbOt6X208e69tjXz/bd6OT64Orm+uTt 6frn7+v66/Lu+ury7frq8u366vLt+ury7frp8ez66fHr+ujw6vro8Or66/Dq+u7w6/rx8Oz69PDt+vTx 7vr18vD69vPx+vf18/r28/H69fHv+vTv7frz7uv68u7q+vLu6fry7uj68u7o5ubYzebaw7Lmzq6X5sKZ fdjRsp3Y4My+2O/l3tj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A8OTdAOHKuwDSsJoAw5V4y9CtlsvdxbTL6t3Sy/f18czr4tnM4M/CzNW8q8zKqpT2zLWi9s7A sPbQy7/20tbN+tXXzvrX2c/62trQ+t3c0frc3NH63NzQ+tzc0Prc3ND63NvP+tzbzvrc2s763NrN+t/a zvri2s/65drQ+uja0frp29P66t3U+ure1vrr39f66t3V+unb0vro2dD659fO+ubXzfrm18365tfM+uXX zObcx7fm0raj5smmjua/lnrYz7Cb2N/KvNjv5N3Y////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////APDk3QDhyrsA0q+aAMOVeMvQrZbL3cW1y+rd08v39fLM7OPbzOHR xMzWv67MzK2X9suyn/bKuKf2yb6u9sjEtvrKxbb6y8W1+s3GtfrPxrT6zsa0+s7GtPrOxrP6zsaz+s/F svrQxbL60MSx+tHEsfrUxLL618Sz+trEtPrdxbb63ca3+t7HufrfyLr64Mq8+t7Hufrdxbb63MO0+tvB sfrawbH62sGw+tnBsPrZwbDm0rWh5suqk+bEnoXmvZN32M2umdjeybvY7uTd2P///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDw5N0A4cq7ANKvmQDDlXjL0K2Wy93F tcvq3dTL9/XzzOzj3Mzi0sbM18GwzM2wmvbJsJz2xbGd9sKynva+sp/6vrKd+r+xm/rAsZn6wbCX+sCw l/rAsJf6wLCX+sCwlvrCsJb6w6+V+sSulfrGrpT6ya6W+suul/rOr5n60a+a+tKwnPrTsp3607Of+tS0 oPrTsp360a+a+tCtl/rPqpT6zqqU+s6qlPrNq5T6zauU5sikjObDnYTmv5Z85rqQdNjLq5bY3Me52O3j 3Nj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8OTdAOHK uwDSr5kAw5V4wNCtl8DdxbbA6t3VwPf19Mzt5N7M49TJzNnDs8zPs57lyK6Y5cGqk+W6pY7ltKGJ9bOf hfWznoL1s5x+9bObe/ezm3r3s5t697Obevezm3r3tZp597eZefe5mHj3u5h4+r2YefrAmXv6w5l9+saa f/fGm4D3x5yC98idg/fJn4X3x5yB98aZfvfElnv3w5R49cKUePXClHj1wZR49cGVeNi+k3bYvJF02LqP cti4jXGByamUgdvGuIHt4tuB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////APDl3gDhy70A0rGcAMOXe8DPrpnA28W2wOfb1MD08vHM7ebizObb0szfz8PM2cOz5dPA r+XOvKvlybmn5cS2o/XEtKH1xLOe9cSym/XEsZn3xLGZ98SxmPfEsZj3xLGY98WwmPfHsJf3yK+X98qv l/rMr5j6zrCZ+tCwmvrSsJz30rGc99KxnffTsp3307Kd98+rlPfLpIv3xpyC98KVefXGm4H1yaKJ9c2o kfXQr5nYzq6Y2M2sl9jLq5XYyamUgde+r4Hk1MmB8enkgf///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wDw5d8A4cy/ANKznwDDmn/Azq+bwNrFt8Dl2tPA8fDvzO3p 5czq4tzM5tvSzOPUyeXf0cbl3M/D5djNweXVy7711cq89dXJu/XVyLn11ci399XIt/fVyLf31ci399XI t/fWx7b318e299jGtvfZxrb62sa2+tvHt/rdx7j63se5997HuPfex7j33ca3993GtvfWuqf30K6Y98mi iffClnr1yaOK9dGwm/XYvav14Mq72N7JutjdyLnY3Me42NvGuIHk1MmB7eLbgfbw7YH///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8ObgAOHNwQDStaIAw5yDwM2w ncDYxbfA49nSwO7t7Mzt6+nM7enlzO3m4szt5N7l6+Pd5eni2+Xn4drl5uDZ9ebf2PXm39f15t7W9ebe 1ffm3tX35t7V9+be1ffm3tX35t7V9+fe1ffn3dX36N3V+ujd1frp3tX66t7W+ure1vfq3dT36dzT9+jb 0ffn2s/33sm699W5pffLqJD3wpd79c2qlPXYvqz15NHE9e/k3dju5NzY7uPc2O3j29jt4tuB8enkgfbw 7YH69/aB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////APDn 4QDhz8MA0relAMOfh7rNsp+618W4uuHY0brr6+rL7u3sy/Hw78v08vHL9/X0zPf19Mz39fTM9/X0zPf1 9Mz39fTM9/X0zPf19Mz39fTM9/X0zPf19Mz39fTM9/X0zPf19Mz39fTM9/X0zPf19Mz39fTM9/X0zPf1 9Mz39fTM9fPxzPTx7szz7+vM8u7ozObYzczaw7LMzq6XzMKZfb/Rsp2/4My+v+/l3r////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wDv5uAA383BANC0ogDAnIO6yKqWutC5qrrYyL264dfRy+PY0svl2tLL59vTy+nc 1Mzp3NTM6dzUzOnc1Mzq3dTM6t3UzOrd1Mzq3dTM6t3VzOrd1Mzq3dTM6tzUzOrc1Mzq3NTM6tzUzOrc 1Mzq3NTM6tzUzOrc1Mzq3NTM6tzUzOjb0szn2tDM5tnOzOXXzMzcx7fM0rajzMmmjsy/lnq/z7Cbv9/K vL/v5N2/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A7uXfAN7MvwDOsp8AvpmAusSjjrrKrpy60LmqutfE uMvYxLfL2cS2y9vEtcvcxLXM3MS1zNzEtczcxLXM3cW1zN3FtczdxbXM3cW1zN3FtszdxbXM3cW1zN3E tczdxLXM3cS1zN3EtczdxLXM3cS1zN3EtczdxLXM3cS1zN3Etczcw7TM28OyzNrCsczZwbDM0rWhzMuq k8zEnoXMvZN3v82umb/eybu/7uTdv////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO7k3gDdyr0AzLCdALuW fLq/nIW6xKOOusiplrrNsJ/Lza+dy86umsvOrZjLz6yVzM+slczPrJXMz6yWzNCtlszQrZbM0K2WzNCt lszQrZfM0K2WzNCtlszQrJbM0KyWzNCslszQrJbM0KyWzNCslszQrJbM0KyWzNCslszQrJbMz6yVzM6r lczNq5TMzauUzMikjMzDnYTMv5Z8zLqQdL/Lq5a/3Me5v+3j3L////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDt5N0A3Mm8AMqumgC5k3lxu5V8cb6YgHHAmoNxw52HusKagrrCmH66wpZ6usKUdsDClHbAwpR2wMKU dsDDlXfAw5V3wMOVd8DDlXfAw5Z4zMOVd8zDlXfMw5R3zMOUd8DDlHfAw5R3wMOUd8DDlHfAw5R3wMOU d8DDlHfAw5R3wMKUd8DClHfAwZR3wMGVeMC+k3bAvJF0wLqPcsC4jXFyyamUctvGuHLt4tty////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A8erlAOTWzADXwrMAyq6accyvnXHOsZ9x0LOicdK1pbrRs6G60bKeutGw m7rRrpjA0a6YwNGvmMDRr5jA0q+ZwNKvmcDSr5nA0rCZwNKwmczSr5nM0q+ZzNKvmczSrpnA0q6ZwNKu mcDSrpnA0q6ZwNKumcDSrpnA0q6ZwNKumcDRrpnA0a+ZwNCvmcDQr5nAzq6YwM2sl8DLq5XAyamUcte+ r3Lk1Mly8enkcv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////APbx7gDt5N0A5NbMANzJvHHdyr1x3su/cd/M wXHhzsO64MzAuuDLvrrgyry64Mm6wODJusDgybrA4Mm6wOHKu8DhyrvA4cq7wOHKu8DhyrvM4cq7zOHK u8zhybvM4cm7wOHJu8DhybvA4cm7wOHJu8DhybvA4cm7wOHJu8DhybvA4Mm7wODJu8DgybvA4Mq7wN7J usDdyLnA3Me4wNvGuHLk1Mly7eLbcvbw7XL///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD6+PYA9vHuAPHq 5QDt5N1x7uTece7l33Hv5eBx8Obhuu/l37rv5d667+Tduu/k3MDv5NzA7+TcwO/k3MDw5N3A8OTdwPDk 3cDw5N3A8OTdzPDk3czw5N3M8OTdzPDk3cDw5N3A8OTdwPDk3cDw5N3A8OTdwPDk3cDw5N3A8OTdwO/k 3cDv5N3A7+TdwO/k3cDu5NzA7uPcwO3j28Dt4tty8enkcvbw7XL69/Zy////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A//////////////////////////////////////////////AAAAAAD///8AAAAAAP///wAAAA AA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP//AAAAAAAA//8AAAAAAAD//w AAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD/AAAAAAAAAP8AAAAAAA AA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AA AAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAA AA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AA AAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAA D//wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AA AAAAD/////////////////////////////////////////////8= ================================================ FILE: Ekona/Images/Formats/ACO.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 28/04/2012 19:33:55 // ----------------------------------------------------------------------- using System; using System.Drawing; using System.IO; using System.Linq; namespace Ekona.Images.Formats { /// /// Adobe COlor /// Info from http://www.nomodes.com/aco.html thanks to "Larry Tesler" /// public class ACO : PaletteBase { public ACO(string file) : base() { Read(file); } public ACO(Color[] colors) : base() { Set_Palette(new Color[][] { colors }, true); } public override void Read(string fileIn) { Helper.BinaryReaderBE br = new Helper.BinaryReaderBE(fileIn); Color[] pal; ushort version = br.ReadUInt16(); if (version != 0x00) { System.Windows.Forms.MessageBox.Show("Version not supported. Only 0"); throw new FormatException("Version not supported. Only 0"); } ushort num_colors = br.ReadUInt16(); pal = new Color[num_colors]; for (int i = 0; i < num_colors; i++) { ushort spec = br.ReadUInt16(); if (spec != 0x00) { System.Windows.Forms.MessageBox.Show("Color spec not supported. Only 0"); throw new FormatException("Color spec not supported. Only 0"); } pal[i] = Color.FromArgb(br.ReadUInt16(), br.ReadUInt16(), br.ReadUInt16()); br.ReadUInt16(); // Always 0x00 } br.Close(); } public override void Write(string fileOut) { // Only accept one palette Color[] pal = palette[0]; Helper.BinaryWriterBE bw = new Helper.BinaryWriterBE(fileOut); bw.Write((ushort)0x00); // Version 0 bw.Write((ushort)pal.Length); // Number of colors for (int i = 0; i < pal.Length; i++) { bw.Write((ushort)0x00); // Color spec set to 0 bw.Write((ushort)pal[i].R); // Red component bw.Write((ushort)pal[i].G); // Green component bw.Write((ushort)pal[i].B); // Blue component bw.Write((ushort)0x00); // Always 0x00, not used } bw.Flush(); bw.Close(); } } } ================================================ FILE: Ekona/Images/Formats/APNG.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 24/06/2012 14:47:38 // ----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Ekona.Images.Formats { public static class APNG { // Info from: // https://wiki.mozilla.org/APNG_Specification // http://www.w3.org/TR/PNG/ /// /// Save an animation in a APNG file (Firefox supported) /// /// All frames (path of files or bitmaps) /// The path of the output file /// The delay between frames (delay/1000) /// The number of loops (if 0 = infinite) public static void Create(string[] pngs, string apng, int delay, int loops) { byte[] pngSignature = new byte[] { 137, 80, 78, 71, 13, 10, 26, 10 }; IHDR ihdr = Read_IHDR(pngs[0]); #region Section acTL acTL actl = new acTL(); actl.length = BitConverter.GetBytes(8).Reverse().ToArray(); actl.id = Encoding.ASCII.GetBytes(new char[] { 'a', 'c', 'T', 'L' }); actl.num_frames = BitConverter.GetBytes(pngs.Length).Reverse().ToArray(); actl.num_plays = BitConverter.GetBytes(loops).Reverse().ToArray(); // Loop List stream = new List(); stream.AddRange(actl.id); stream.AddRange(actl.num_frames); stream.AddRange(actl.num_plays); actl.crc = Helper.CRC32.Calculate(stream.ToArray()); stream.Clear(); #endregion List fctl = new List(); List fdat = new List(); int i = 0; fctl.Add(Read_fcTL(pngs[0], i, delay)); i++; byte[] IDAT = Read_IDAT(pngs[0]); foreach (string png in pngs) { if (png == pngs[0]) continue; fctl.Add(Read_fcTL(png, i, delay)); i++; fdat.Add(Read_fdAT(png, i)); i++; } IEND iend = new IEND(); iend.id = Encoding.ASCII.GetBytes(new char[] { 'I', 'E', 'N', 'D' }); iend.length = BitConverter.GetBytes(0); iend.crc = Helper.CRC32.Calculate(iend.id); Write(apng, pngSignature, ihdr, actl, IDAT, fctl.ToArray(), fdat.ToArray(), iend); } public static void Create(System.Drawing.Bitmap[] pngs, string apng, int delay, int loops) { string[] files = new string[pngs.Length]; for (int i = 0; i < pngs.Length; i++) { files[i] = Path.GetTempFileName(); pngs[i].Save(files[i]); } Create(files, apng, delay, loops); for (int i = 0; i < files.Length; i++) File.Delete(files[i]); } private static void Write(string apng, byte[] signature, IHDR ihdr, acTL actl, byte[] idat, fcTL[] fctl, fdAT[] fdat, IEND iend) { BinaryWriter bw = new BinaryWriter(new FileStream(apng, FileMode.Create)); bw.Write(signature); bw.Write(ihdr.length); bw.Write(ihdr.id); bw.Write(ihdr.width); bw.Write(ihdr.height); bw.Write(ihdr.depth); bw.Write(ihdr.colour_type); bw.Write(ihdr.compression); bw.Write(ihdr.filter); bw.Write(ihdr.interlace); bw.Write(ihdr.crc); bw.Write(actl.length); bw.Write(actl.id); bw.Write(actl.num_frames); bw.Write(actl.num_plays); bw.Write(actl.crc); bw.Write(fctl[0].length); bw.Write(fctl[0].id); bw.Write(fctl[0].sequence_numer); bw.Write(fctl[0].width); bw.Write(fctl[0].height); bw.Write(fctl[0].x_offset); bw.Write(fctl[0].y_offset); bw.Write(fctl[0].delay_num); bw.Write(fctl[0].delay_den); bw.Write(fctl[0].dispose_op); bw.Write(fctl[0].blend_op); bw.Write(fctl[0].crc); bw.Write(idat); for (int i = 0; i < fdat.Length; i++) { bw.Write(fctl[i + 1].length); bw.Write(fctl[i + 1].id); bw.Write(fctl[i + 1].sequence_numer); bw.Write(fctl[i + 1].width); bw.Write(fctl[i + 1].height); bw.Write(fctl[i + 1].x_offset); bw.Write(fctl[i + 1].y_offset); bw.Write(fctl[i + 1].delay_num); bw.Write(fctl[i + 1].delay_den); bw.Write(fctl[i + 1].dispose_op); bw.Write(fctl[i + 1].blend_op); bw.Write(fctl[i + 1].crc); bw.Write(fdat[i].length); bw.Write(fdat[i].id); bw.Write(fdat[i].sequence_number); bw.Write(fdat[i].data); bw.Write(fdat[i].crc); } bw.Write(iend.length); bw.Write(iend.id); bw.Write(iend.crc); bw.Flush(); bw.Close(); } private static IHDR Read_IHDR(string png) { BinaryReader br = new BinaryReader(new FileStream(png, FileMode.Open)); br.BaseStream.Position = 0x08; IHDR ihdr = new IHDR(); ihdr.length = br.ReadBytes(4); ihdr.id = br.ReadBytes(4); ihdr.width = br.ReadUInt32(); ihdr.height = br.ReadUInt32(); ihdr.depth = br.ReadByte(); ihdr.colour_type = br.ReadByte(); ihdr.compression = br.ReadByte(); ihdr.filter = br.ReadByte(); ihdr.interlace = br.ReadByte(); ihdr.crc = br.ReadBytes(4); br.Close(); return ihdr; } private static fcTL Read_fcTL(string png, int seq, int delay) { BinaryReader br = new BinaryReader(new FileStream(png, FileMode.Open)); br.BaseStream.Position = 0x10; fcTL fctl = new fcTL(); fctl.length = BitConverter.GetBytes(26).Reverse().ToArray(); fctl.id = Encoding.ASCII.GetBytes(new char[] { 'f', 'c', 'T', 'L' }); fctl.sequence_numer = BitConverter.GetBytes(seq).Reverse().ToArray(); fctl.width = br.ReadBytes(4); fctl.height = br.ReadBytes(4); fctl.x_offset = BitConverter.GetBytes(0); fctl.y_offset = BitConverter.GetBytes(0); fctl.delay_num = BitConverter.GetBytes((ushort)delay).Reverse().ToArray(); fctl.delay_den = BitConverter.GetBytes((ushort)1000).Reverse().ToArray(); fctl.dispose_op = 1; fctl.blend_op = 0; List stream = new List(); stream.AddRange(fctl.id); stream.AddRange(fctl.sequence_numer); stream.AddRange(fctl.width); stream.AddRange(fctl.height); stream.AddRange(fctl.x_offset); stream.AddRange(fctl.y_offset); stream.AddRange(fctl.delay_num); stream.AddRange(fctl.delay_den); stream.Add(fctl.dispose_op); stream.Add(fctl.blend_op); fctl.crc = Helper.CRC32.Calculate(stream.ToArray()); stream.Clear(); br.Close(); return fctl; } private static byte[] Read_IDAT(string png) { BinaryReader br = new BinaryReader(new FileStream(png, FileMode.Open)); byte[] buffer; bool encontrado = false; string c = "\0\0\0\0"; while (!encontrado) { c = c.Remove(0, 1); c += (char)br.ReadByte(); if (c == "IDAT") encontrado = true; } br.BaseStream.Position -= 8; int length = BitConverter.ToInt32(br.ReadBytes(4).Reverse().ToArray(), 0); br.BaseStream.Position -= 4; buffer = br.ReadBytes(length + 12); br.Close(); return buffer; } private static fdAT Read_fdAT(string png, int i) { BinaryReader br = new BinaryReader(new FileStream(png, FileMode.Open)); fdAT fdat = new fdAT(); fdat.id = Encoding.ASCII.GetBytes(new char[] { 'f', 'd', 'A', 'T' }); fdat.sequence_number = BitConverter.GetBytes(i).Reverse().ToArray(); bool encontrado = false; string c = "\0\0\0\0"; while (!encontrado) { c = c.Remove(0, 1); c += (char)br.ReadByte(); if (c == "IDAT") encontrado = true; } br.BaseStream.Position -= 8; int length = BitConverter.ToInt32(br.ReadBytes(4).Reverse().ToArray(), 0); fdat.length = BitConverter.GetBytes(length + 4).Reverse().ToArray(); br.BaseStream.Position += 4; fdat.data = br.ReadBytes(length); List stream = new List(); stream.AddRange(fdat.id); stream.AddRange(fdat.sequence_number); stream.AddRange(fdat.data); fdat.crc = Helper.CRC32.Calculate(stream.ToArray()); br.Close(); return fdat; } private struct IHDR { public byte[] length; public byte[] id; public uint width; public uint height; public byte depth; public byte colour_type; public byte compression; public byte filter; public byte interlace; public byte[] crc; } private struct acTL { public byte[] length; public byte[] id; public byte[] num_frames; public byte[] num_plays; public byte[] crc; } private struct fcTL { public byte[] length; public byte[] id; public byte[] sequence_numer; public byte[] width; public byte[] height; public byte[] x_offset; public byte[] y_offset; public byte[] delay_num; public byte[] delay_den; public byte dispose_op; public byte blend_op; public byte[] crc; } private struct fdAT { public byte[] length; public byte[] id; public byte[] sequence_number; public byte[] data; public byte[] crc; } private struct IEND { public byte[] length; public byte[] id; public byte[] crc; } } } ================================================ FILE: Ekona/Images/Formats/Bitmap.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 28/04/2012 14:28:51 // ----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; namespace Ekona.Images.Formats { public class BMP : ImageBase { PaletteBase palette; public BMP(string file) : base(file, -1) { } public override void Read(string fileIn) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); if (new String(br.ReadChars(2)) != "BM") throw new NotSupportedException(); br.BaseStream.Position = 0x0A; uint offsetImagen = br.ReadUInt32(); br.BaseStream.Position += 0x04; uint width = br.ReadUInt32(); uint height = br.ReadUInt32(); br.BaseStream.Position += 0x02; uint bpp = br.ReadUInt16(); ColorFormat format; if (bpp == 0x04) format = Images.ColorFormat.colors16; else if (bpp == 0x08) format = Images.ColorFormat.colors256; else throw new NotSupportedException(); uint compression = br.ReadUInt32(); uint data_size = br.ReadUInt32(); br.BaseStream.Position += 0x8; uint num_colors = br.ReadUInt32(); if (num_colors == 0x00) num_colors = (uint)(bpp == 0x04 ? 0x10 : 0x0100); br.BaseStream.Position += 0x04; Color[][] colors = new Color[1][]; colors[0] = new Color[num_colors]; for (int i = 0; i < num_colors; i++) { Byte[] color = br.ReadBytes(4); colors[0][i] = Color.FromArgb(color[2], color[1], color[0]); } // Get the colors with BGR555 encoding (not all colours from bitmap are allowed) byte[] temp = Actions.ColorToBGR555(colors[0]); colors[0] = Actions.BGR555ToColor(temp); palette = new RawPalette(colors, false, format); byte[] tiles = new byte[width * height]; br.BaseStream.Position = offsetImagen; switch (bpp) { case 4: int divisor = (int)width / 2; if (width % 4 != 0) { int res; Math.DivRem((int)width / 2, 4, out res); divisor = (int)width / 2 + (4 - res); } tiles = new byte[tiles.Length * 2]; for (int h = (int)height - 1; h >= 0; h--) { for (int w = 0; w < width; w += 2) { byte b = br.ReadByte(); tiles[w + h * width] = (byte)(b >> 4); if (w + 1 != width) tiles[w + 1 + h * width] = (byte)(b & 0xF); } br.ReadBytes((int)(divisor - ((float)width / 2))); } tiles = Helper.BitsConverter.Bits4ToByte(tiles); break; case 8: divisor = (int)width; if (width % 4 != 0) { int res; Math.DivRem((int)width, 4, out res); divisor = (int)width + (4 - res); } for (int h = (int)height - 1; h >= 0; h--) { for (int w = 0; w < width; w++) { tiles[w + h * width] = br.ReadByte(); } br.ReadBytes(divisor - (int)width); } break; } br.Close(); Set_Tiles(tiles, (int)width, (int)height, format, Images.TileForm.Lineal, false); } public override void Write(string fileOut, PaletteBase palette) { throw new NotImplementedException(); } public PaletteBase Palette { get { return palette; } } } } ================================================ FILE: Ekona/Images/Formats/PaletteWin.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 28/04/2012 19:01:44 // ----------------------------------------------------------------------- using System; using System.IO; using System.Drawing; namespace Ekona.Images.Formats { public class PaletteWin : PaletteBase { bool gimp_error; // Error of Gimp, it reads the first colors at 0x1C instead of 0x18 public PaletteWin(string file) : base() { Read(file); } public PaletteWin(Color[] colors) : base() { Set_Palette(new Color[][] { colors }, true); } public override void Read(string fileIn) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); br.ReadChars(4); // RIFF br.ReadUInt32(); br.ReadChars(4); // PAL br.ReadChars(4); // data br.ReadUInt32(); // unknown, always 0x00 br.ReadUInt16(); // unknown, always 0x0300 ushort nColors = br.ReadUInt16(); Color[][] colors = new Color[1][]; colors[0] = new Color[nColors]; for (int j = 0; j < nColors; j++) { Color newColor = Color.FromArgb(br.ReadByte(), br.ReadByte(), br.ReadByte()); br.ReadByte(); // always 0x00 colors[0][j] = newColor; } br.Close(); Set_Palette(colors, true); } public override void Write(string fileOut) { if (File.Exists(fileOut)) File.Delete(fileOut); BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); bw.Write(new char[] { 'R', 'I', 'F', 'F' }); // "RIFF" bw.Write((uint)(0x10 + palette[0].Length * 4)); // file_length - 8 bw.Write(new char[] { 'P', 'A', 'L', ' ' }); // "PAL " bw.Write(new char[] { 'd', 'a', 't', 'a' }); // "data" bw.Write((uint)palette[0].Length * 4 + 4); // data_size = file_length - 0x14 bw.Write((ushort)0x0300); // version = 00 03 bw.Write((ushort)(palette[0].Length)); // num_colors if (gimp_error){ bw.Write((uint)0x00); } // Error in Gimp 2.8 for (int i = 0; i < palette[0].Length; i++) { bw.Write(palette[0][i].R); bw.Write(palette[0][i].G); bw.Write(palette[0][i].B); bw.Write((byte)0x00); bw.Flush(); } bw.Close(); } public bool Gimp_Error { get { return gimp_error; } set { gimp_error = value; } } } } ================================================ FILE: Ekona/Images/ImageBase.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Windows.Forms; namespace Ekona.Images { public abstract class ImageBase { #region Variable definition protected IPluginHost pluginHost; // Optional protected string fileName; protected int id = -1; bool loaded; Byte[] original; int startByte; int zoom = 1; Byte[] tiles; Byte[] tilePal; int width, height; ColorFormat format; TileForm tileForm; int tile_size; // Pixels heigth int bpp; bool canEdit; Object obj; #endregion public ImageBase() { } public ImageBase(Byte[] tiles, int width, int height, ColorFormat format, TileForm tileForm, bool editable, string fileName = "") { this.fileName = fileName; Set_Tiles(tiles, width, height, format, tileForm, editable); } public ImageBase(string file, int id, string fileName = "") { this.id = id; if (fileName == "") this.fileName = Path.GetFileName(file); else this.fileName = fileName; Read(file); } public ImageBase(string file, int id, IPluginHost pluginHost, string fileName = "") { this.id = id; this.pluginHost = pluginHost; if (fileName == "") this.fileName = Path.GetFileName(file); else this.fileName = fileName; Read(file); } public Image Get_Image(PaletteBase palette) { palette.Depth = format; Color[][] pal_colors = palette.Palette; Byte[] img_tiles; if (tileForm == Images.TileForm.Horizontal) { if (height < tile_size){ height = tile_size; } img_tiles = Actions.LinealToHorizontal(tiles, width, height, bpp, tile_size); tilePal = Actions.LinealToHorizontal(tilePal, width, height, 8, tile_size); } else img_tiles = tiles; return Actions.Get_Image(img_tiles, tilePal, pal_colors, format, width, height); } public abstract void Read(string fileIn); public abstract void Write(string fileOut, PaletteBase palette); public void Change_StartByte(int start) { if (start < 0 || start >= original.Length) return; startByte = start; tiles = new byte[original.Length - start]; Array.Copy(original, start, tiles, 0, tiles.Length); tilePal = new byte[tiles.Length * (tile_size / bpp)]; } public void Set_Tiles(Byte[] tiles, int width, int height, ColorFormat format, TileForm form, bool editable, int tile_size = 8) { this.tiles = tiles; this.format = format; this.tileForm = form; this.canEdit = editable; this.tile_size = tile_size; Width = width; Height = height; zoom = 1; //startByte = 0; loaded = true; bpp = 8; if (format == Images.ColorFormat.colors16) bpp = 4; else if (format == Images.ColorFormat.colors2) bpp = 1; else if (format == Images.ColorFormat.colors4) bpp = 2; else if (format == Images.ColorFormat.direct) bpp = 16; else if (format == Images.ColorFormat.BGRA32 || format == Images.ColorFormat.ABGR32) bpp = 32; tilePal = new byte[tiles.Length * (tile_size / bpp)]; // Get the original data for changes in startByte original = (byte[])tiles.Clone(); } public void Set_Tiles(ImageBase new_img) { this.tiles = new_img.Tiles; this.format = new_img.FormatColor; this.tileForm = new_img.FormTile; this.tile_size = new_img.tile_size; Width = new_img.Width; Height = new_img.Height; zoom = 1; startByte = 0; loaded = true; bpp = 8; if (format == Images.ColorFormat.colors16) bpp = 4; else if (format == Images.ColorFormat.colors2) bpp = 1; else if (format == Images.ColorFormat.colors4) bpp = 2; else if (format == Images.ColorFormat.direct) bpp = 16; else if (format == Images.ColorFormat.BGRA32 || format == Images.ColorFormat.ABGR32) bpp = 32; tilePal = new byte[tiles.Length * (tile_size / bpp)]; // Get the original data for changes in startByte original = (byte[])tiles.Clone(); } public void Set_Tiles(Byte[] tiles) { this.tiles = tiles; zoom = 1; startByte = 0; loaded = true; tilePal = new byte[tiles.Length * (tile_size / bpp)]; // Get the original data for changes in startByte original = (byte[])tiles.Clone(); } #region Properties public int ID { get { return id; } } public String FileName { get { return fileName; } set { fileName = value; } } public bool Loaded { get { return loaded; } } public bool CanEdit { get { return canEdit; } } public int Zoom { get { return zoom; } set { zoom = value; } } public int StartByte { get { return startByte; } set { Change_StartByte(value); } } public int Height { get { return height; } set { height = value; if (tileForm == TileForm.Horizontal || tileForm == TileForm.Vertical) { if (this.height < this.tile_size){ this.height = this.tile_size; } if (this.height % this.tile_size != 0) this.height += this.tile_size - (this.height % this.tile_size); } } } public int Width { get { return width; } set { width = value; if (tileForm == TileForm.Horizontal || tileForm == TileForm.Vertical) { if (this.width < this.tile_size){ this.width = this.tile_size; } if (this.width % this.tile_size != 0) this.width += this.tile_size - (this.width % this.tile_size); } } } public ColorFormat FormatColor { get { return format; } set { format = value; if (format == Images.ColorFormat.colors16) bpp = 4; else if (format == Images.ColorFormat.colors2) bpp = 1; else if (format == Images.ColorFormat.colors4) bpp = 2; else if (format == Images.ColorFormat.direct) bpp = 16; else if (format == Images.ColorFormat.BGRA32 || format ==Images.ColorFormat.ABGR32) bpp = 32; else bpp = 8; Array.Resize(ref tilePal, tiles.Length * (tile_size / bpp)); } } public TileForm FormTile { get { return tileForm; } set { tileForm = value; } } public Byte[] Tiles { get { return tiles; } } public Byte[] TilesPalette { get { return tilePal; } set { tilePal = value; } } public int BPP { get { return bpp; } } public int TileSize { get { return tile_size; } set { tile_size = value; Array.Resize(ref tilePal, tiles.Length * (tile_size / bpp)); } } public Byte[] Original { get { return original; } } #endregion } public class TestImage : ImageBase { public TestImage() : base() { } public override void Read(string fileIn) { throw new NotImplementedException(); } public override void Write(string fileOut, PaletteBase palette) { throw new NotImplementedException(); } } } ================================================ FILE: Ekona/Images/ImageControl.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Drawing; using System.Windows.Forms; using System.IO; using System.Xml.Linq; using Ekona.Images.Formats; namespace Ekona.Images { public partial class ImageControl : UserControl { IPluginHost pluginHost; ImageBase image; PaletteBase palette; bool isMap; MapBase map; bool stop; public ImageControl() { InitializeComponent(); } public ImageControl(IPluginHost pluginHost, bool isMap) { InitializeComponent(); this.pluginHost = pluginHost; this.isMap = isMap; this.palette = pluginHost.Get_Palette(); this.image = pluginHost.Get_Image(); if (isMap) this.map = pluginHost.Get_Map(); Update_Info(); this.comboDepth.SelectedIndexChanged += new EventHandler(comboDepth_SelectedIndexChanged); this.numericWidth.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericHeight.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericStart.ValueChanged += new EventHandler(numericStart_ValueChanged); ReadLanguage(); Update_Image(); } public ImageControl(IPluginHost pluginHost, ImageBase image, PaletteBase palette) { InitializeComponent(); isMap = false; this.image = image; this.palette = palette; this.pluginHost = pluginHost; Update_Info(); this.comboDepth.SelectedIndexChanged += new EventHandler(comboDepth_SelectedIndexChanged); this.numericWidth.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericHeight.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericStart.ValueChanged += new EventHandler(numericStart_ValueChanged); ReadLanguage(); Update_Image(); } public ImageControl(IPluginHost pluginHost, ImageBase image, PaletteBase palette, MapBase map) { InitializeComponent(); this.pluginHost = pluginHost; this.isMap = true; this.palette = palette; this.image = image; this.map = map; Update_Info(); this.comboDepth.SelectedIndexChanged += new EventHandler(comboDepth_SelectedIndexChanged); this.numericWidth.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericHeight.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericStart.ValueChanged += new EventHandler(numericStart_ValueChanged); ReadLanguage(); Update_Image(); } public ImageControl(XElement lang, ImageBase image, PaletteBase palette, MapBase map) { InitializeComponent(); this.isMap = true; this.palette = palette; this.image = image; this.map = map; Update_Info(); btnImport.Enabled = false; groupBox2.Enabled = false; this.comboDepth.SelectedIndexChanged += new EventHandler(comboDepth_SelectedIndexChanged); this.numericWidth.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericHeight.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericStart.ValueChanged += new EventHandler(numericStart_ValueChanged); ReadLanguage(lang); Update_Image(); } public ImageControl(XElement lang, ImageBase image, PaletteBase palette) { InitializeComponent(); isMap = false; this.image = image; this.palette = palette; Update_Info(); btnImport.Enabled = false; groupBox2.Enabled = false; this.comboDepth.SelectedIndexChanged += new EventHandler(comboDepth_SelectedIndexChanged); this.numericWidth.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericHeight.ValueChanged += new EventHandler(numericSize_ValueChanged); this.numericStart.ValueChanged += new EventHandler(numericStart_ValueChanged); ReadLanguage(lang); Update_Image(); } private void ReadLanguage() { XElement xml = XElement.Load(pluginHost.Get_LangXML()); xml = xml.Element("Ekona").Element("ImageControl"); ReadLanguage(xml); } private void ReadLanguage(XElement xml) { try { label5.Text = xml.Element("S01").Value; groupProp.Text = xml.Element("S02").Value; label3.Text = xml.Element("S03").Value; checkHex.Text = xml.Element("S04").Value; label1.Text = xml.Element("S05").Value; label2.Text = xml.Element("S06").Value; label6.Text = xml.Element("S07").Value; label10.Text = xml.Element("S08").Value; label9.Text = xml.Element("S09").Value; checkTransparency.Text = xml.Element("S0A").Value; btnSetTrans.Text = xml.Element("S0B").Value; btnBgd.Text = xml.Element("S0C").Value; btnBgdRem.Text = xml.Element("S0D").Value; radioOriginalPal.Text = xml.Element("S0E").Value; checkMapCmp.Text = xml.Element("S0F").Value; btnExport.Text = xml.Element("S10").Value; btnImport.Text = xml.Element("S11").Value; comboBox1.Items[0] = xml.Element("S12").Value; comboBox1.Items[1] = xml.Element("S13").Value; groupBox2.Text = xml.Element("S16").Value; radioSwapPal.Text = xml.Element("S17").Value; radioReplacePal.Text = xml.Element("S18").Value; label7.Text = xml.Element("S19").Value; } catch { throw new Exception("There was an error reading the XML file of language."); } } private void Update_Info() { stop = true; switch (image.FormatColor) { case ColorFormat.A3I5: comboDepth.SelectedIndex = 4; break; case ColorFormat.A5I3: comboDepth.SelectedIndex = 5; break; case ColorFormat.colors4: comboDepth.SelectedIndex = 6; break; case ColorFormat.colors16: comboDepth.SelectedIndex = 0; break; case ColorFormat.colors256: comboDepth.SelectedIndex = 1; break; case ColorFormat.direct: comboDepth.SelectedIndex = 3; break; case ColorFormat.colors2: comboDepth.SelectedIndex = 2; break; } if (isMap) { btnImport.Enabled = (map.CanEdit && image.CanEdit && palette.CanEdit ? true : false); this.comboBox1.Enabled = false; this.numericWidth.Value = (map.Width != 0 ? map.Width : image.Width); this.numericHeight.Value = (map.Height != 0 ? map.Height : image.Height); comboBox1.SelectedIndex = 1; numericHeight.Minimum = image.TileSize; numericWidth.Minimum = image.TileSize; numericWidth.Increment = image.TileSize; numericHeight.Increment = image.TileSize; } else { btnImport.Enabled = (image.CanEdit && palette.CanEdit ? true : false); this.numericWidth.Value = image.Width; this.numericHeight.Value = image.Height; switch (image.FormTile) { case TileForm.Lineal: comboBox1.SelectedIndex = 0; numericHeight.Minimum = 1; numericWidth.Minimum = 1; numericWidth.Increment = 1; numericHeight.Increment = 1; break; case TileForm.Horizontal: comboBox1.SelectedIndex = 1; numericHeight.Minimum = image.TileSize; numericWidth.Minimum = image.TileSize; numericWidth.Increment = image.TileSize; numericHeight.Increment = image.TileSize; break; } } this.numTileSize.Value = image.TileSize; this.numPal.Maximum = palette.NumberOfPalettes - 1; this.numericStart.Maximum = image.Original.Length - 1; this.checkMapCmp.Enabled = isMap; stop = false; } private void Update_Image() { Bitmap bitmap; if (!isMap) bitmap = (Bitmap)image.Get_Image(palette); else bitmap = (Bitmap)map.Get_Image(image, palette); if (checkTransparency.Checked) bitmap.MakeTransparent(palette.Palette[(int)numPal.Value][0]); Clipboard.SetImage(bitmap); pic.Image = bitmap; if (bitmap.Width == 512) pic.BorderStyle = System.Windows.Forms.BorderStyle.None; else pic.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; } private void numericStart_ValueChanged(object sender, EventArgs e) { if (stop) return; if (!isMap) image.StartByte = (int)numericStart.Value; else map.StartByte = (int)numericStart.Value; Update_Image(); } private void numTileSize_ValueChanged(object sender, EventArgs e) { if (stop) return; image.TileSize = (int)numTileSize.Value; Update_Image(); } private void numericSize_ValueChanged(object sender, EventArgs e) { if (stop) return; if (!isMap) { image.Height = (int)numericHeight.Value; image.Width = (int)numericWidth.Value; } else { map.Width = (int)numericWidth.Value; map.Height = (int)numericHeight.Value; } Update_Image(); } private void comboDepth_SelectedIndexChanged(object sender, EventArgs e) { if (stop) return; switch (comboDepth.SelectedIndex) { case 0: image.FormatColor = ColorFormat.colors16; break; case 1: image.FormatColor = ColorFormat.colors256; break; case 2: image.FormatColor = ColorFormat.colors2; break; case 3: image.FormatColor = ColorFormat.direct; break; case 4: image.FormatColor = ColorFormat.A3I5; break; case 5: image.FormatColor = ColorFormat.A5I3; break; case 6: image.FormatColor = ColorFormat.colors4; break; case 7: image.FormatColor = ColorFormat.A4I4; break; case 8: image.FormatColor = ColorFormat.BGRA32; break; case 9: image.FormatColor = ColorFormat.ABGR32; break; } Update_Image(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (stop) return; switch (comboBox1.SelectedIndex) { case 0: image.FormTile = TileForm.Lineal; numericHeight.Minimum = 1; numericWidth.Minimum = 1; numericWidth.Increment = 1; numericHeight.Increment = 1; break; case 1: image.FormTile = TileForm.Horizontal; numericHeight.Minimum = image.TileSize; numericWidth.Minimum = image.TileSize; numericWidth.Increment = image.TileSize; numericHeight.Increment = image.TileSize; break; } Update_Image(); } private void numPal_ValueChanged(object sender, EventArgs e) { for (int j = 0; j < image.TilesPalette.Length; j++) image.TilesPalette[j] = (byte)numPal.Value; Update_Image(); } private void checkTransparency_CheckedChanged(object sender, EventArgs e) { if (checkTransparency.Checked) { Bitmap imageT = (Bitmap)pic.Image; imageT.MakeTransparent(palette.Palette[(int)numPal.Value][0]); pic.Image = imageT; } else Update_Image(); } private void checkHex_CheckedChanged(object sender, EventArgs e) { numericStart.Hexadecimal = checkHex.Checked; } private void btnSetTrans_Click(object sender, EventArgs e) { int pal_index = (int)numPal.Value; Color[] pal = palette.Palette[pal_index]; byte[] tiles = image.Tiles; int index = -1; if ((palette.Depth == ColorFormat.colors256 && palette.NumberOfColors == 256) || (palette.Depth == ColorFormat.colors16 && palette.NumberOfColors == 16)) { index = Actions.Remove_DuplicatedColors(ref pal, ref tiles); if (index == -1) { index = Actions.Remove_NotUsedColors(ref pal, ref tiles); } } else { index = palette.NumberOfColors; // First empty place Color[] newPal = new Color[pal.Length + 1]; Array.Copy(pal, newPal, pal.Length); pal = newPal; } if (index == -1) { MessageBox.Show("No space in the palette found"); return; } pal[index] = Color.FromArgb(248, 0, 248); // Usually used as transparent color Actions.Swap_Color(ref tiles, ref pal, index, 0, image.FormatColor); Color[][] new_pal = palette.Palette; new_pal[pal_index] = pal; if (image.ID > 0) image.Set_Tiles(tiles); if (palette.ID > 0) palette.Set_Palette(new_pal); Save_Files(); } private void btnExport_Click(object sender, EventArgs e) { SaveFileDialog o = new SaveFileDialog(); o.AddExtension = true; o.DefaultExt = ".png"; o.Filter = "Portable Network Graphic (*.png)|*.png|" + "BitMaP (*.bmp)|*.bmp|" + "JPEG (*.jpg)|*.jpg;*.jpeg|" + "Tagged Image File Format (*.tiff)|*.tiff;*.tif|" + "Graphic Interchange Format (*.gif)|*.gif|" + "Icon (*.ico)|*.ico;*.icon"; o.OverwritePrompt = true; if (isMap) o.FileName = map.FileName + ".png"; else o.FileName = image.FileName + ".png"; if (o.ShowDialog() == DialogResult.OK) { if (o.FilterIndex == 2) pic.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Bmp); else if (o.FilterIndex == 1) pic.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Png); else if (o.FilterIndex == 3) pic.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Jpeg); else if (o.FilterIndex == 4) pic.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Tiff); else if (o.FilterIndex == 5) pic.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Gif); else if (o.FilterIndex == 6) pic.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Icon); } o.Dispose(); } private void btnImport_Click(object sender, EventArgs e) { OpenFileDialog o = new OpenFileDialog(); o.CheckFileExists = true; o.Filter = "Supported images |*.png;*.bmp;*.jpg;*.jpeg;*.tif;*.tiff;*.gif;*.ico;*.icon|" + "BitMaP (*.bmp)|*.bmp|" + "Portable Network Graphic (*.png)|*.png|" + "JPEG (*.jpg)|*.jpg;*.jpeg|" + "Tagged Image File Format (*.tiff)|*.tiff;*.tif|" + "Graphic Interchange Format (*.gif)|*.gif|" + "Icon (*.ico)|*.ico;*.icon"; o.Multiselect = false; if (o.ShowDialog() != DialogResult.OK) return; Bitmap bitmap = (Bitmap)Image.FromFile(o.FileName); // Get tiles + palette from the current image byte[] tiles = new byte[0]; Color[] pal = new Color[0]; if (radioOriginalPal.Checked) { BMP bmp = new BMP(o.FileName); tiles = bmp.Tiles; pal = bmp.Palette.Palette[0]; } else { try { Actions.Indexed_Image(bitmap, image.FormatColor, out tiles, out pal); } catch (Exception ex) { MessageBox.Show(ex.Message); Console.WriteLine(ex.Message); return; } } // Swap palettes if "Swap palette" is checked. Try to change the colors to the old palette if (radioSwapPal.Checked) { try { Actions.Swap_Palette(ref tiles, palette.Palette[(int)numPal.Value], pal, image.FormatColor); } catch (Exception ex) { MessageBox.Show(ex.Message); Console.WriteLine(ex.Message); return; } } // If the tile form is horizontal convert to it if (image.FormTile == TileForm.Horizontal || isMap) { tiles = Actions.HorizontalToLineal(tiles, bitmap.Width, bitmap.Height, image.BPP, 8); image.FormTile = TileForm.Horizontal; } // Create a map file // MetLob edition 19/05/2015 if (isMap && checkMapCmp.Checked) map.Set_Map(Actions.Create_Map(ref tiles, image.BPP, image.TileSize, (byte)numPal.Value), map.CanEdit, bitmap.Width, bitmap.Height); else if (isMap) { int num_tiles = (tiles.Length * 8 / image.BPP) / (image.TileSize * image.TileSize); map.Set_Map(Actions.Create_BasicMap(num_tiles, 0, (byte)numPal.Value), map.CanEdit); } // Set the data image.Set_Tiles(tiles, bitmap.Width, bitmap.Height, image.FormatColor, image.FormTile, image.CanEdit, 8); if (radioReplacePal.Checked) palette.Set_Palette(pal, (int)numPal.Value); Save_Files(); Update_Image(); Update_Info(); } private void Save_Files() { if (image.ID >= 0) { try { string imageFile = pluginHost.Get_TempFolder() + Path.DirectorySeparatorChar + Path.GetRandomFileName() + image.FileName; image.Write(imageFile, palette); pluginHost.ChangeFile(image.ID, imageFile); } catch (Exception e) { MessageBox.Show("Error writing new image:\n" + e.Message); }; } if (palette.ID >= 0 && radioReplacePal.Checked) { try { string paletteFile = pluginHost.Get_TempFolder() + Path.DirectorySeparatorChar + Path.GetRandomFileName() + palette.FileName; palette.Write(paletteFile); pluginHost.ChangeFile(palette.ID, paletteFile); } catch (Exception e) { MessageBox.Show("Error writing new palette:\n" + e.Message); }; } if (isMap && map.ID >= 0) { try { string mapFile = pluginHost.Get_TempFolder() + Path.DirectorySeparatorChar + Path.GetRandomFileName() + map.FileName; map.Write(mapFile, image, palette); pluginHost.ChangeFile(map.ID, mapFile); } catch (Exception e) { MessageBox.Show("Error writing new map:\n" + e.Message); }; } } private void pic_DoubleClick(object sender, EventArgs e) { XElement xml = XElement.Load(pluginHost.Get_LangXML()); xml = xml.Element("Ekona").Element("ImageControl"); Form ven = new Form(); PictureBox pcBox = new PictureBox(); pcBox.Image = pic.Image; pcBox.SizeMode = PictureBoxSizeMode.AutoSize; ven.Controls.Add(pcBox); ven.BackColor = SystemColors.GradientInactiveCaption; ven.Text = xml.Element("S15").Value; ven.AutoScroll = true; ven.MaximumSize = new Size(1024, 700); ven.ShowIcon = false; ven.AutoSize = true; ven.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; ven.MaximizeBox = false; ven.Show(); } private void btnBgd_Click(object sender, EventArgs e) { ColorDialog o = new ColorDialog(); o.AllowFullOpen = true; o.AnyColor = true; if (o.ShowDialog() == DialogResult.OK) { pic.BackColor = o.Color; btnBgdRem.Enabled = true; } } private void btnBgdTrans_Click(object sender, EventArgs e) { btnBgdRem.Enabled = false; pic.BackColor = Color.Transparent; } } } ================================================ FILE: Ekona/Images/ImageControl.designer.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Programador: pleoNeX * */ namespace Ekona.Images { partial class ImageControl { /// /// 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.numericWidth = new System.Windows.Forms.NumericUpDown(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.numericHeight = new System.Windows.Forms.NumericUpDown(); this.groupProp = new System.Windows.Forms.GroupBox(); this.label10 = new System.Windows.Forms.Label(); this.numTileSize = new System.Windows.Forms.NumericUpDown(); this.label9 = new System.Windows.Forms.Label(); this.numPal = new System.Windows.Forms.NumericUpDown(); this.checkHex = new System.Windows.Forms.CheckBox(); this.checkTransparency = new System.Windows.Forms.CheckBox(); this.label6 = new System.Windows.Forms.Label(); this.comboBox1 = new System.Windows.Forms.ComboBox(); this.label4 = new System.Windows.Forms.Label(); this.comboDepth = new System.Windows.Forms.ComboBox(); this.label3 = new System.Windows.Forms.Label(); this.numericStart = new System.Windows.Forms.NumericUpDown(); this.checkMapCmp = new System.Windows.Forms.CheckBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.radioSwapPal = new System.Windows.Forms.RadioButton(); this.radioOriginalPal = new System.Windows.Forms.RadioButton(); this.radioReplacePal = new System.Windows.Forms.RadioButton(); this.label7 = new System.Windows.Forms.Label(); this.numThreshold = new System.Windows.Forms.NumericUpDown(); this.btnSetTrans = new System.Windows.Forms.Button(); this.btnImport = new System.Windows.Forms.Button(); this.btnBgdRem = new System.Windows.Forms.Button(); this.btnBgd = new System.Windows.Forms.Button(); this.btnExport = new System.Windows.Forms.Button(); this.label5 = new System.Windows.Forms.Label(); this.pic = new System.Windows.Forms.PictureBox(); this.panel1 = new System.Windows.Forms.Panel(); ((System.ComponentModel.ISupportInitialize)(this.numericWidth)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericHeight)).BeginInit(); this.groupProp.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numTileSize)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numPal)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericStart)).BeginInit(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numThreshold)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pic)).BeginInit(); this.panel1.SuspendLayout(); this.SuspendLayout(); // // numericWidth // this.numericWidth.Location = new System.Drawing.Point(48, 76); this.numericWidth.Maximum = new decimal(new int[] { 65536, 0, 0, 0}); this.numericWidth.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numericWidth.Name = "numericWidth"; this.numericWidth.Size = new System.Drawing.Size(71, 20); this.numericWidth.TabIndex = 1; this.numericWidth.Value = new decimal(new int[] { 1, 0, 0, 0}); this.numericWidth.ValueChanged += new System.EventHandler(this.numericSize_ValueChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(6, 78); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(26, 13); this.label1.TabIndex = 2; this.label1.Text = "S05"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(128, 78); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(26, 13); this.label2.TabIndex = 3; this.label2.Text = "S06"; // // numericHeight // this.numericHeight.Location = new System.Drawing.Point(165, 76); this.numericHeight.Maximum = new decimal(new int[] { 65536, 0, 0, 0}); this.numericHeight.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numericHeight.Name = "numericHeight"; this.numericHeight.Size = new System.Drawing.Size(71, 20); this.numericHeight.TabIndex = 4; this.numericHeight.Value = new decimal(new int[] { 1, 0, 0, 0}); this.numericHeight.ValueChanged += new System.EventHandler(this.numericSize_ValueChanged); // // groupProp // this.groupProp.Controls.Add(this.label10); this.groupProp.Controls.Add(this.numTileSize); this.groupProp.Controls.Add(this.label9); this.groupProp.Controls.Add(this.numPal); this.groupProp.Controls.Add(this.checkHex); this.groupProp.Controls.Add(this.checkTransparency); this.groupProp.Controls.Add(this.label6); this.groupProp.Controls.Add(this.comboBox1); this.groupProp.Controls.Add(this.label4); this.groupProp.Controls.Add(this.comboDepth); this.groupProp.Controls.Add(this.label3); this.groupProp.Controls.Add(this.numericStart); this.groupProp.Controls.Add(this.numericHeight); this.groupProp.Controls.Add(this.numericWidth); this.groupProp.Controls.Add(this.label2); this.groupProp.Controls.Add(this.label1); this.groupProp.Location = new System.Drawing.Point(0, 306); this.groupProp.Name = "groupProp"; this.groupProp.Size = new System.Drawing.Size(252, 206); this.groupProp.TabIndex = 5; this.groupProp.TabStop = false; this.groupProp.Text = "S02"; // // label10 // this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(128, 143); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(26, 13); this.label10.TabIndex = 30; this.label10.Text = "S08"; // // numTileSize // this.numTileSize.Location = new System.Drawing.Point(199, 141); this.numTileSize.Maximum = new decimal(new int[] { 1024, 0, 0, 0}); this.numTileSize.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numTileSize.Name = "numTileSize"; this.numTileSize.Size = new System.Drawing.Size(37, 20); this.numTileSize.TabIndex = 29; this.numTileSize.Value = new decimal(new int[] { 8, 0, 0, 0}); this.numTileSize.ValueChanged += new System.EventHandler(this.numTileSize_ValueChanged); // // label9 // this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(128, 174); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(26, 13); this.label9.TabIndex = 26; this.label9.Text = "S09"; // // numPal // this.numPal.Location = new System.Drawing.Point(199, 172); this.numPal.Name = "numPal"; this.numPal.Size = new System.Drawing.Size(37, 20); this.numPal.TabIndex = 25; this.numPal.ValueChanged += new System.EventHandler(this.numPal_ValueChanged); // // checkHex // this.checkHex.AutoSize = true; this.checkHex.Location = new System.Drawing.Point(32, 46); this.checkHex.Name = "checkHex"; this.checkHex.Size = new System.Drawing.Size(45, 17); this.checkHex.TabIndex = 24; this.checkHex.Text = "S04"; this.checkHex.UseVisualStyleBackColor = true; this.checkHex.CheckedChanged += new System.EventHandler(this.checkHex_CheckedChanged); // // checkTransparency // this.checkTransparency.AutoSize = true; this.checkTransparency.Location = new System.Drawing.Point(9, 175); this.checkTransparency.Name = "checkTransparency"; this.checkTransparency.Size = new System.Drawing.Size(46, 17); this.checkTransparency.TabIndex = 19; this.checkTransparency.Text = "S0A"; this.checkTransparency.UseVisualStyleBackColor = true; this.checkTransparency.CheckedChanged += new System.EventHandler(this.checkTransparency_CheckedChanged); // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(6, 117); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(26, 13); this.label6.TabIndex = 11; this.label6.Text = "S07"; // // comboBox1 // this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { "S16", "S17"}); this.comboBox1.Location = new System.Drawing.Point(116, 114); this.comboBox1.Name = "comboBox1"; this.comboBox1.Size = new System.Drawing.Size(119, 21); this.comboBox1.TabIndex = 10; this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(128, 22); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(31, 13); this.label4.TabIndex = 9; this.label4.Text = "BPP:"; // // comboDepth // this.comboDepth.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboDepth.FormattingEnabled = true; this.comboDepth.Items.AddRange(new object[] { "4bpp (16 colors)", "8bpp (256 colors)", "1bpp (2 colors)", "Direct (16 bpp)", "A3I5", "A5I3", "2bpp (4 colors)", "A4I4", "BGRA32", "ABGR32"}); this.comboDepth.Location = new System.Drawing.Point(165, 19); this.comboDepth.Name = "comboDepth"; this.comboDepth.Size = new System.Drawing.Size(83, 21); this.comboDepth.TabIndex = 8; this.comboDepth.SelectedIndexChanged += new System.EventHandler(this.comboDepth_SelectedIndexChanged); // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(6, 22); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(26, 13); this.label3.TabIndex = 7; this.label3.Text = "S03"; // // numericStart // this.numericStart.Location = new System.Drawing.Point(48, 20); this.numericStart.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numericStart.Name = "numericStart"; this.numericStart.Size = new System.Drawing.Size(71, 20); this.numericStart.TabIndex = 6; this.numericStart.ValueChanged += new System.EventHandler(this.numericStart_ValueChanged); // // checkMapCmp // this.checkMapCmp.AutoSize = true; this.checkMapCmp.Location = new System.Drawing.Point(258, 444); this.checkMapCmp.Name = "checkMapCmp"; this.checkMapCmp.Size = new System.Drawing.Size(45, 17); this.checkMapCmp.TabIndex = 48; this.checkMapCmp.Text = "S0F"; this.checkMapCmp.UseVisualStyleBackColor = true; // // groupBox2 // this.groupBox2.Controls.Add(this.radioSwapPal); this.groupBox2.Controls.Add(this.radioOriginalPal); this.groupBox2.Controls.Add(this.radioReplacePal); this.groupBox2.Controls.Add(this.label7); this.groupBox2.Controls.Add(this.numThreshold); this.groupBox2.Location = new System.Drawing.Point(258, 352); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(254, 86); this.groupBox2.TabIndex = 47; this.groupBox2.TabStop = false; this.groupBox2.Text = "S16"; // // radioSwapPal // this.radioSwapPal.AutoSize = true; this.radioSwapPal.Checked = true; this.radioSwapPal.Location = new System.Drawing.Point(6, 19); this.radioSwapPal.Name = "radioSwapPal"; this.radioSwapPal.Size = new System.Drawing.Size(44, 17); this.radioSwapPal.TabIndex = 41; this.radioSwapPal.TabStop = true; this.radioSwapPal.Text = "S17"; this.radioSwapPal.UseVisualStyleBackColor = true; // // radioOriginalPal // this.radioOriginalPal.AutoSize = true; this.radioOriginalPal.Location = new System.Drawing.Point(6, 42); this.radioOriginalPal.Name = "radioOriginalPal"; this.radioOriginalPal.Size = new System.Drawing.Size(45, 17); this.radioOriginalPal.TabIndex = 39; this.radioOriginalPal.Text = "S0E"; this.radioOriginalPal.UseVisualStyleBackColor = true; // // radioReplacePal // this.radioReplacePal.AutoSize = true; this.radioReplacePal.Location = new System.Drawing.Point(6, 65); this.radioReplacePal.Name = "radioReplacePal"; this.radioReplacePal.Size = new System.Drawing.Size(44, 17); this.radioReplacePal.TabIndex = 40; this.radioReplacePal.Text = "S18"; this.radioReplacePal.UseVisualStyleBackColor = true; // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(174, 13); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(26, 13); this.label7.TabIndex = 43; this.label7.Text = "S19"; // // numThreshold // this.numThreshold.DecimalPlaces = 4; this.numThreshold.Increment = new decimal(new int[] { 5, 0, 0, 65536}); this.numThreshold.Location = new System.Drawing.Point(177, 29); this.numThreshold.Maximum = new decimal(new int[] { 442, 0, 0, 0}); this.numThreshold.Name = "numThreshold"; this.numThreshold.Size = new System.Drawing.Size(77, 20); this.numThreshold.TabIndex = 42; // // btnSetTrans // this.btnSetTrans.Location = new System.Drawing.Point(258, 306); this.btnSetTrans.Name = "btnSetTrans"; this.btnSetTrans.Size = new System.Drawing.Size(80, 40); this.btnSetTrans.TabIndex = 28; this.btnSetTrans.Text = "S0B"; this.btnSetTrans.UseVisualStyleBackColor = true; this.btnSetTrans.Click += new System.EventHandler(this.btnSetTrans_Click); // // btnImport // this.btnImport.Location = new System.Drawing.Point(429, 469); this.btnImport.Name = "btnImport"; this.btnImport.Size = new System.Drawing.Size(80, 40); this.btnImport.TabIndex = 23; this.btnImport.Text = "S11"; this.btnImport.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.btnImport.UseVisualStyleBackColor = true; this.btnImport.Click += new System.EventHandler(this.btnImport_Click); // // btnBgdRem // this.btnBgdRem.Enabled = false; this.btnBgdRem.Location = new System.Drawing.Point(430, 306); this.btnBgdRem.Name = "btnBgdRem"; this.btnBgdRem.Size = new System.Drawing.Size(80, 40); this.btnBgdRem.TabIndex = 22; this.btnBgdRem.Text = "S0D"; this.btnBgdRem.UseVisualStyleBackColor = true; this.btnBgdRem.Click += new System.EventHandler(this.btnBgdTrans_Click); // // btnBgd // this.btnBgd.Location = new System.Drawing.Point(344, 306); this.btnBgd.Name = "btnBgd"; this.btnBgd.Size = new System.Drawing.Size(80, 40); this.btnBgd.TabIndex = 20; this.btnBgd.Text = "S0C"; this.btnBgd.UseVisualStyleBackColor = true; this.btnBgd.Click += new System.EventHandler(this.btnBgd_Click); // // btnExport // this.btnExport.Location = new System.Drawing.Point(332, 469); this.btnExport.Name = "btnExport"; this.btnExport.Size = new System.Drawing.Size(80, 40); this.btnExport.TabIndex = 6; this.btnExport.Text = "S10"; this.btnExport.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.btnExport.UseVisualStyleBackColor = true; this.btnExport.Click += new System.EventHandler(this.btnExport_Click); // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(6, 290); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(26, 13); this.label5.TabIndex = 6; this.label5.Text = "S01"; // // pic // this.pic.BackColor = System.Drawing.Color.Transparent; this.pic.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pic.Location = new System.Drawing.Point(0, 0); this.pic.Name = "pic"; this.pic.Size = new System.Drawing.Size(100, 100); this.pic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; this.pic.TabIndex = 0; this.pic.TabStop = false; this.pic.DoubleClick += new System.EventHandler(this.pic_DoubleClick); // // panel1 // this.panel1.AutoScroll = true; this.panel1.Controls.Add(this.pic); this.panel1.Dock = System.Windows.Forms.DockStyle.Top; this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(512, 287); this.panel1.TabIndex = 7; // // ImageControl // this.BackColor = System.Drawing.Color.Transparent; this.Controls.Add(this.checkMapCmp); this.Controls.Add(this.panel1); this.Controls.Add(this.label5); this.Controls.Add(this.btnSetTrans); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupProp); this.Controls.Add(this.btnImport); this.Controls.Add(this.btnExport); this.Controls.Add(this.btnBgdRem); this.Controls.Add(this.btnBgd); this.Name = "ImageControl"; this.Size = new System.Drawing.Size(512, 512); ((System.ComponentModel.ISupportInitialize)(this.numericWidth)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericHeight)).EndInit(); this.groupProp.ResumeLayout(false); this.groupProp.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numTileSize)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numPal)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericStart)).EndInit(); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numThreshold)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pic)).EndInit(); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.PictureBox pic; private System.Windows.Forms.NumericUpDown numericWidth; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.NumericUpDown numericHeight; private System.Windows.Forms.GroupBox groupProp; private System.Windows.Forms.Button btnExport; private System.Windows.Forms.Label label3; private System.Windows.Forms.NumericUpDown numericStart; private System.Windows.Forms.Label label4; private System.Windows.Forms.ComboBox comboDepth; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.CheckBox checkTransparency; private System.Windows.Forms.Button btnBgd; private System.Windows.Forms.Button btnBgdRem; internal System.Windows.Forms.Button btnImport; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.CheckBox checkHex; private System.Windows.Forms.Label label9; private System.Windows.Forms.NumericUpDown numPal; private System.Windows.Forms.Button btnSetTrans; private System.Windows.Forms.Label label10; private System.Windows.Forms.NumericUpDown numTileSize; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.RadioButton radioSwapPal; private System.Windows.Forms.RadioButton radioOriginalPal; private System.Windows.Forms.RadioButton radioReplacePal; private System.Windows.Forms.Label label7; private System.Windows.Forms.NumericUpDown numThreshold; private System.Windows.Forms.CheckBox checkMapCmp; } } ================================================ FILE: Ekona/Images/ImageControl.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: Ekona/Images/MapBase.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; namespace Ekona.Images { public abstract class MapBase { #region Variables protected IPluginHost pluginHost; protected int id = -1; protected string fileName; bool loaded; Byte[] original; int startByte; NTFS[] map; int width, height; bool canEdit; Object obj; #endregion public MapBase() { } public MapBase(string fileIn, int id, string fileName = "") { this.id = id; if (fileName == "") this.fileName = System.IO.Path.GetFileName(fileIn); else this.fileName = fileName; Read(fileIn); } public MapBase(string fileIn, int id, IPluginHost pluginHost, string fileName = "") { this.pluginHost = pluginHost; this.id = id; if (fileName == "") this.fileName = System.IO.Path.GetFileName(fileIn); else this.fileName = fileName; Read(fileIn); } public MapBase(NTFS[] mapInfo, bool editable, int width = 0, int height = 0, string fileName = "") { this.fileName = fileName; Set_Map(mapInfo, editable, width, height); } public abstract void Read(string fileIn); public abstract void Write(string fileOut, ImageBase image, PaletteBase palette); public Image Get_Image(ImageBase image, PaletteBase palette) { if (image.FormTile == TileForm.Lineal) image.FormTile = TileForm.Horizontal; Byte[] tiles, tile_pal; NTFS[] currMap = (NTFS[])map.Clone(); tiles = Actions.Apply_Map(currMap, image.Tiles, out tile_pal, image.BPP, image.TileSize); ImageBase newImage = new TestImage(); newImage.Set_Tiles(tiles, image.Width, image.Height, image.FormatColor, image.FormTile, image.CanEdit, image.TileSize); newImage.TilesPalette = tile_pal; newImage.Zoom = image.Zoom; if (height != 0) newImage.Height = height; if (width != 0) newImage.Width = width; return newImage.Get_Image(palette); } public void Set_Map(NTFS[] mapInfo, bool editable, int width = 0, int height = 0) { this.map = mapInfo; this.canEdit = editable; this.width = width; this.height = height; startByte = 0; loaded = true; // Get the original byte data List data = new List(); for (int i = 0; i < map.Length; i++) data.AddRange(BitConverter.GetBytes(Actions.MapInfo(map[i]))); original = data.ToArray(); } public void Set_Map(MapBase new_map) { this.map = new_map.Map; this.width = new_map.Width; this.height = new_map.Height; startByte = 0; loaded = true; // Get the original byte data List data = new List(); for (int i = 0; i < map.Length; i++) data.AddRange(BitConverter.GetBytes(Actions.MapInfo(map[i]))); original = data.ToArray(); } private void Change_StartByte(int newStart) { if (newStart < 0 || newStart == startByte || newStart >= original.Length) return; startByte = newStart; Byte[] newData = new byte[original.Length - startByte]; Array.Copy(original, startByte, newData, 0, newData.Length); map = new NTFS[newData.Length / 2]; for (int i = 0; i < map.Length; i ++) { map[i] = Actions.MapInfo(BitConverter.ToUInt16(newData, i * 2)); } } #region Properties public int ID { get { return id; } } public String FileName { get { return fileName; } set { fileName = value; } } public bool Loaded { get { return loaded; } } public bool CanEdit { get { return canEdit; } } public int StartByte { get { return startByte; } set { Change_StartByte(value); } } public int Height { get { return height; } set { height = value; } } public int Width { get { return width; } set { width = value; } } public NTFS[] Map { get { return map; } } #endregion } } ================================================ FILE: Ekona/Images/NitroTextureCompressor.cs ================================================ // ----------------------------------------------------------------------- // // // Copyright (C) 2016 MetLob // Used NVidia optimization methods of end-points // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // ----------------------------------------------------------------------- namespace Ekona.Images { using System; using System.Collections.Generic; using System.Drawing; using System.Globalization; using System.Text; using Mathematics; /// /// Fast texture compressor for Nintendo DS format /// public class NitroTextureCompressor { #region Math private static double Clamp(double a) { if (a > 255){ a = 255; } if (a < 0){ a = 0; } return a; } #endregion #region Error private static double ColorLengthSquared(Vector3 v) { return Math.Truncate(v.X * v.X + v.Y * v.Y + v.Z * v.Z); } private static double Error(Vector3[] inputPoints, int[] mask, Vector3 a, Vector3 b, bool hasAlpha) { Vector3[] dxtFourPointsTemp = new Vector3[4]; dxtFourPointsTemp[0] = a; dxtFourPointsTemp[1] = b; // Calculate inside DXT colors if (!hasAlpha) { dxtFourPointsTemp[2] = (5 * dxtFourPointsTemp[0] + 3* dxtFourPointsTemp[1]) / 8; dxtFourPointsTemp[3] = (5 * dxtFourPointsTemp[1] + 3* dxtFourPointsTemp[0]) / 8; } else { dxtFourPointsTemp[2] = (dxtFourPointsTemp[0] + dxtFourPointsTemp[1]) / 2; dxtFourPointsTemp[3] = new Vector3(double.MaxValue, double.MaxValue, double.MaxValue); } double error = 0; for (int i = 0; i < inputPoints.Length; i++) { if (mask[i] > 0) { double dist0 = ColorLengthSquared(inputPoints[i] - dxtFourPointsTemp[0]); double dist1 = ColorLengthSquared(inputPoints[i] - dxtFourPointsTemp[1]); double dist2 = ColorLengthSquared(inputPoints[i] - dxtFourPointsTemp[2]); double dist3 = ColorLengthSquared(inputPoints[i] - dxtFourPointsTemp[3]); if (dist0 < dist2 && dist0 < dist3) { error += dist0; } else if (dist1 < dist2 && dist1 < dist3) { error += dist1; } else error += Math.Min(dist2, dist3); } } return error; } #endregion #region Colors manipulations private static uint ColorSquaredDistance(Color c1, Color c2) { int r = c1.R - c2.R; int g = c1.G - c2.G; int b = c1.B - c2.B; return (uint)(r * r + g * g + b * b); } private static Color VectorToColor(Vector3 v) { return Color.FromArgb(255, (byte)Clamp(v.X /* 255 / 31*/), (byte)Clamp(v.Y /* 255 / 63*/), (byte)Clamp(v.Z /* 255 / 31*/)); } private static Vector3 ColorToVector(Color c) { return new Vector3(c.R, c.G, c.B); } private static Color SumColors(Color a, Color b, int wa, int wb) { return Color.FromArgb( (a.R * wa + b.R * wb) / (wa + wb), (a.G * wa + b.G * wb) / (wa + wb), (a.B * wa + b.B * wb) / (wa + wb)); } #endregion #region Compressed block processing private static Color CalcSecondBoundColor(Color c, Color boundColor) { int r = 2 * c.R - boundColor.R; int g = 2 * c.G - boundColor.G; int b = 2 * c.B - boundColor.B; if (r < 0 || r > 255 || g < 0 || g > 255 || b < 0 || b > 255){ return c; } return Color.FromArgb(255, r, g, b); } private static bool IsCompressedBlock(Color[] colors, bool[] uniqueFlags, int count, int aIndex, int bIndex, out Color[] dxtBoundColors, ref bool hasAlpha) { Color[] uniqueColors = new Color[count]; Vector3[] inputPoints = new Vector3[count]; if (count > 0) { uniqueColors[0] = colors[aIndex]; uniqueColors[count - 1] = colors[bIndex]; for (int i = 0, j = 1; i < colors.Length && j < count - 1; i++) if (uniqueFlags[i] && i != aIndex && i != bIndex){ uniqueColors[j++] = colors[i]; } for (int i = 0; i < count; i++) inputPoints[i] = new Vector3(uniqueColors[i].R / 8, uniqueColors[i].G / 8, uniqueColors[i].B / 8); } dxtBoundColors = new Color[2]; if (count == 0) { #region Transparent block dxtBoundColors[0] = Color.Black; dxtBoundColors[1] = dxtBoundColors[0]; hasAlpha = true; #endregion } else if (count == 1) { #region Single color int r = (byte)(inputPoints[0].X * 255 / 31); int g = (byte)(inputPoints[0].Y * 255 / 31); int b = (byte)(inputPoints[0].Z * 255 / 31); if (uniqueColors[0].R == r && uniqueColors[0].G == g && uniqueColors[0].B == b) { dxtBoundColors[0] = uniqueColors[0]; dxtBoundColors[1] = dxtBoundColors[0]; hasAlpha = true; } else { Vector3[] dxtPoints = new Vector3[2]; dxtPoints[0] = Vector3.Zero; dxtPoints[1] = 2 * new Vector3(uniqueColors[0].R, uniqueColors[0].G, uniqueColors[0].B); if (dxtPoints[1].X > 255) { dxtPoints[0].X = dxtPoints[1].X - 255; dxtPoints[1].X -= dxtPoints[0].X; } if (dxtPoints[1].Y > 255) { dxtPoints[0].Y = dxtPoints[1].Y - 255; dxtPoints[1].Y -= dxtPoints[0].Y; } if (dxtPoints[1].Z > 255) { dxtPoints[0].Z = dxtPoints[1].Z - 255; dxtPoints[1].Z -= dxtPoints[0].Z; } dxtBoundColors[0] = Color.FromArgb(255, (byte)dxtPoints[0].X, (byte)dxtPoints[0].Y, (byte)dxtPoints[0].Z); dxtBoundColors[1] = Color.FromArgb(255, (byte)dxtPoints[1].X, (byte)dxtPoints[1].Y, (byte)dxtPoints[1].Z); hasAlpha = true; } #endregion } else if (count == 2) { #region Two colors block byte r0 = (byte)(inputPoints[0].X * 255 / 31); byte g0 = (byte)(inputPoints[0].Y * 255 / 31); byte b0 = (byte)(inputPoints[0].Z * 255 / 31); byte r1 = (byte)(inputPoints[1].X * 255 / 31); byte g1 = (byte)(inputPoints[1].Y * 255 / 31); byte b1 = (byte)(inputPoints[1].Z * 255 / 31); bool color0 = uniqueColors[0].R == r0 && uniqueColors[0].G == g0 && uniqueColors[0].B == b0; bool color1 = uniqueColors[1].R == r1 && uniqueColors[1].G == g1 && uniqueColors[1].B == b1; if (color0 && color1) { dxtBoundColors[0] = uniqueColors[0]; dxtBoundColors[1] = uniqueColors[1]; hasAlpha = true; } else { if (color0) { dxtBoundColors[0] = uniqueColors[0]; dxtBoundColors[1] = CalcSecondBoundColor(uniqueColors[1], uniqueColors[0]); hasAlpha = true; } else if (color1 || hasAlpha) { dxtBoundColors[0] = CalcSecondBoundColor(uniqueColors[0], uniqueColors[1]); dxtBoundColors[1] = uniqueColors[1]; hasAlpha = true; } else { dxtBoundColors[0] = CalcSecondBoundColor(uniqueColors[0], uniqueColors[1]); dxtBoundColors[1] = CalcSecondBoundColor(uniqueColors[1], uniqueColors[0]); if (dxtBoundColors[0] == uniqueColors[0] || dxtBoundColors[1] == uniqueColors[1]) hasAlpha = true; } } #endregion } else if (count == 3) { #region Three colors block Color middle = SumColors(uniqueColors[0], uniqueColors[2], 1, 1); if (middle.R == uniqueColors[1].R && middle.G == uniqueColors[1].G && middle.B == uniqueColors[1].B) { byte r0 = (byte)(inputPoints[0].X * 255 / 31); byte g0 = (byte)(inputPoints[0].Y * 255 / 31); byte b0 = (byte)(inputPoints[0].Z * 255 / 31); byte r2 = (byte)(inputPoints[2].X * 255 / 31); byte g2 = (byte)(inputPoints[2].Y * 255 / 31); byte b2 = (byte)(inputPoints[2].Z * 255 / 31); bool color0 = uniqueColors[0].R == r0 && uniqueColors[0].G == g0 && uniqueColors[0].B == b0; bool color2 = uniqueColors[2].R == r2 && uniqueColors[2].G == g2 && uniqueColors[2].B == b2; if ((color0 && color2) || hasAlpha) { dxtBoundColors[0] = uniqueColors[0]; dxtBoundColors[1] = uniqueColors[2]; hasAlpha = true; } else if (color0) { dxtBoundColors[0] = uniqueColors[0]; dxtBoundColors[1] = CalcSecondBoundColor(uniqueColors[2], uniqueColors[1]); hasAlpha = (dxtBoundColors[1] == uniqueColors[2]); } else { dxtBoundColors[0] = CalcSecondBoundColor(uniqueColors[0], uniqueColors[1]); dxtBoundColors[1] = uniqueColors[2]; hasAlpha = (dxtBoundColors[0] == uniqueColors[0]); } } else if (!hasAlpha) { Color m1 = SumColors(uniqueColors[0], uniqueColors[2], 5, 3); Color m2 = SumColors(uniqueColors[0], uniqueColors[2], 3, 5); if ((uniqueColors[1].R == m1.R && uniqueColors[1].G == m1.G && uniqueColors[1].B == m1.B) || (uniqueColors[1].R == m2.R && uniqueColors[1].G == m2.G && uniqueColors[1].B == m2.B)) { dxtBoundColors[0] = uniqueColors[0]; dxtBoundColors[1] = uniqueColors[2]; } else return false; } else return false; #endregion } else if (count == 4 && !hasAlpha) { #region Four colors block Color m1 = SumColors(uniqueColors[0], uniqueColors[3], 5, 3); Color m2 = SumColors(uniqueColors[0], uniqueColors[3], 3, 5); if ((uniqueColors[1].R == m1.R && uniqueColors[1].G == m1.G && uniqueColors[1].B == m1.B && uniqueColors[2].R == m2.R && uniqueColors[2].G == m2.G && uniqueColors[2].B == m2.B) || (uniqueColors[2].R == m1.R && uniqueColors[2].G == m1.G && uniqueColors[2].B == m1.B && uniqueColors[1].R == m2.R && uniqueColors[1].G == m2.G && uniqueColors[1].B == m2.B)) { dxtBoundColors[0] = uniqueColors[0]; dxtBoundColors[1] = uniqueColors[3]; } else return false; #endregion } else return false; return true; } #endregion #region NVidia optimization static void OptimizeEndPoints3(Vector3[] block, ref Vector3[] dxtPoints, ref uint indices) { float alpha2_sum = 0.0f; float beta2_sum = 0.0f; float alphabeta_sum = 0.0f; Vector3 alphax_sum = Vector3.Zero; Vector3 betax_sum = Vector3.Zero; for (int i = 0; i < 16; ++i) { uint bits = indices >> (2 * i); float beta = (float)(bits & 1); if ((bits & 2) > 0){ beta = 0.5f; } float alpha = 1.0f - beta; alpha2_sum += alpha * alpha; beta2_sum += beta * beta; alphabeta_sum += alpha * beta; alphax_sum += alpha * block[i]; betax_sum += beta * block[i]; } float denom = alpha2_sum * beta2_sum - alphabeta_sum * alphabeta_sum; if (NvMath.Equal(denom, 0.0f)){ return; } float factor = 1.0f / denom; Vector3 a = (alphax_sum * beta2_sum - betax_sum * alphabeta_sum) * factor; Vector3 b = (betax_sum * alpha2_sum - alphax_sum * alphabeta_sum) * factor; a = Vector3.Clamp(a, 0, 255); b = Vector3.Clamp(b, 0, 255); //UInt16 color0 = roundAndExpand(ref a); //UInt16 color1 = roundAndExpand(ref b); //if (color0 < color1) //{ // NvMath.swap(ref a, ref b); // NvMath.swap(ref color0, ref color1); //} //indices = computeIndices3(block, a, b); dxtPoints[0] = b; dxtPoints[1] = a; } static void OptimizeEndPoints4(Vector3[] block, ref Vector3[] dxtPoints, ref uint indices) { float alpha2_sum = 0.0f; float beta2_sum = 0.0f; float alphabeta_sum = 0.0f; Vector3 alphax_sum = Vector3.Zero; Vector3 betax_sum = Vector3.Zero; for (int i = 0; i < 16; ++i) { uint bits = indices >> (2 * i); float beta = (float)(bits & 1); if ((bits & 2) > 0){ beta = (1 + beta) / 3.0f; } float alpha = 1.0f - beta; alpha2_sum += alpha * alpha; beta2_sum += beta * beta; alphabeta_sum += alpha * beta; alphax_sum += alpha * block[i]; betax_sum += beta * block[i]; } float denom = alpha2_sum * beta2_sum - alphabeta_sum * alphabeta_sum; if (NvMath.Equal(denom, 0.0f)){ return; } float factor = 1.0f / denom; Vector3 a = (alphax_sum * beta2_sum - betax_sum * alphabeta_sum) * factor; Vector3 b = (betax_sum * alpha2_sum - alphax_sum * alphabeta_sum) * factor; a = Vector3.Clamp(a, 0, 255); b = Vector3.Clamp(b, 0, 255); //UInt16 color0 = roundAndExpand(ref a); //UInt16 color1 = roundAndExpand(ref b); //if (color0 < color1) //{ // NvMath.swap(ref a, ref b); // NvMath.swap(ref color0, ref color1); //} //indices = computeIndices4(block, a, b); dxtPoints[0] = a; dxtPoints[1] = b; } static uint ComputeIndices3(Vector3[] block, Vector3 maxColor, Vector3 minColor) { Vector3[] palette = new Vector3[4]; palette[0] = minColor; palette[1] = maxColor; palette[2] = (palette[0] + palette[1]) * 0.5f; uint indices = 0; for (int i = 0; i < 16; i++) { double d0 = ColorDistance(palette[0], block[i]); double d1 = ColorDistance(palette[1], block[i]); double d2 = ColorDistance(palette[2], block[i]); uint index; if (d0 < d1 && d0 < d2){ index = 0; } else if (d1 < d2){ index = 1; } else index = 2; indices |= index << (2 * i); } return indices; } static uint ComputeIndices4(Vector3[] block, Vector3 maxColor, Vector3 minColor) { Vector3[] palette = new Vector3[4]; palette[0] = maxColor; palette[1] = minColor; palette[2] = Vector3.Lerp(palette[0], palette[1], 3.0f / 8.0f); palette[3] = Vector3.Lerp(palette[0], palette[1], 5.0f / 8.0f); uint indices = 0; for (int i = 0; i < 16; i++) { double d0 = ColorDistance(palette[0], block[i]); double d1 = ColorDistance(palette[1], block[i]); double d2 = ColorDistance(palette[2], block[i]); double d3 = ColorDistance(palette[3], block[i]); uint b0 = d0 > d3 ? (uint)1 : 0; uint b1 = d1 > d2 ? (uint)1 : 0; uint b2 = d0 > d2 ? (uint)1 : 0; uint b3 = d1 > d3 ? (uint)1 : 0; uint b4 = d2 > d3 ? (uint)1 : 0; uint x0 = b1 & b2; uint x1 = b0 & b3; uint x2 = b0 & b4; indices |= (x2 | ((x0 | x1) << 1)) << (2 * i); } return indices; } static double ColorDistance(Vector3 c0, Vector3 c1) { return (c0 - c1).LengthSquared(); } // Takes a normalized color in [0, 255] range and returns static ushort RoundAndExpand(ref Vector3 v) { uint r = (uint)Math.Floor(NvMath.Clamp(v.X * (31.0f / 255.0f), 0.0f, 31.0f)); uint g = (uint)Math.Floor(NvMath.Clamp(v.Y * (31.0f / 255.0f), 0.0f, 31.0f)); uint b = (uint)Math.Floor(NvMath.Clamp(v.Z * (31.0f / 255.0f), 0.0f, 31.0f)); float r0 = (float)(((r + 0) << 3) | ((r + 0) >> 2)); float r1 = (float)(((r + 1) << 3) | ((r + 1) >> 2)); if (Math.Abs(v.X - r1) < Math.Abs(v.X - r0)){ r = Math.Min(r + 1, 31U); } float g0 = (float)(((g + 0) << 3) | ((g + 0) >> 2)); float g1 = (float)(((g + 1) << 3) | ((g + 1) >> 2)); if (Math.Abs(v.Y - g1) < Math.Abs(v.Y - g0)){ g = Math.Min(g + 1, 31U); } float b0 = (float)(((b + 0) << 3) | ((b + 0) >> 2)); float b1 = (float)(((b + 1) << 3) | ((b + 1) >> 2)); if (Math.Abs(v.Z - b1) < Math.Abs(v.Z - b0)){ b = Math.Min(b + 1, 31U); } ushort w = (ushort)((b << 10) | (g << 5) | r); r = (r << 3) | (r >> 2); g = (g << 3) | (g >> 2); b = (b << 3) | (b >> 2); v = new Vector3((float)r, (float)g, (float)b); return w; } #endregion #region Compress /// /// The compress 4x4 block. /// /// /// The block of 4x4 colors. /// /// /// The mask of 4x4 pixels (1 - visible, 0 - not visible). /// /// /// Four compressed colors. /// /// /// The color0. /// /// /// The color1. /// /// /// Texels. /// /// /// The approximation error. /// public static double CompressBlock(Color[] block, int[] mask, out Color[] compressColors, out ushort c0, out ushort c1, out uint texels) { #region Init bool hasAlpha = false; double bestError = 0; Vector3[] inputPoints = new Vector3[block.Length]; bool[] uniqueFlags = new bool[block.Length]; int[] lowIds = new int[block.Length]; int[] highIds = new int[block.Length]; int count = 0; int countWithmask = 0; double maxDistance = -1; double maxDistanceWithMask = -1; for (int i = 0; i < block.Length; i++) { inputPoints[i] = ColorToVector(block[i]); if (block[i].A >= 8) { bool dubled = false; bool dubledWithMask = false; for (int j = i - 1; j >= 0 && (!dubled || !dubledWithMask); --j) { if (block[j].A >= 8) { double dist = (inputPoints[i] - inputPoints[j]).LengthSquared(); if (uniqueFlags[j]) { dubled |= dist < 1e-6; if (dist > maxDistance) { maxDistance = dist; lowIds[0] = j; highIds[0] = i; } } if (mask[j] > 0 && mask[i] > 0) { dubledWithMask |= dist < 1e-6; if (dist > maxDistanceWithMask) { maxDistanceWithMask = dist; lowIds[2] = j; highIds[2] = i; } } } } if (!dubled) { count++; uniqueFlags[i] = true; if (maxDistance < 0){ lowIds[0] = i; } } if (!dubledWithMask && mask[i] > 0) { countWithmask++; if (maxDistanceWithMask < 0){ lowIds[2] = i; } } } else hasAlpha = true; } #endregion #region Compress bool compressed = false; bool hasAlpha0 = hasAlpha; Color[] dxtBoundColors = null; if (count <= 4) compressed = IsCompressedBlock(block, uniqueFlags, count, lowIds[0], highIds[0], out dxtBoundColors, ref hasAlpha); Vector3[] dxtBoundPoints = new Vector3[2]; if (!compressed) { hasAlpha = hasAlpha0; if (countWithmask == 0) { bestError = 0; dxtBoundPoints[0] = inputPoints[lowIds[0]]; dxtBoundPoints[1] = inputPoints[highIds[0]]; hasAlpha = true; } else if (countWithmask == 1) { bestError = Math.Max(0, maxDistance); uint dist0 = ColorSquaredDistance(block[lowIds[2]], block[lowIds[0]]); uint dist1 = ColorSquaredDistance(block[lowIds[2]], block[highIds[0]]); if (dist0 > dist1) dxtBoundPoints[1] = inputPoints[lowIds[0]]; else dxtBoundPoints[1] = inputPoints[highIds[0]]; dxtBoundPoints[0] = inputPoints[lowIds[2]]; hasAlpha = true; } else { Vector3 maxColor = inputPoints[lowIds[2]]; Vector3 minColor = inputPoints[highIds[2]]; UInt16 color0 = RoundAndExpand(ref maxColor); UInt16 color1 = RoundAndExpand(ref minColor); hasAlpha |= color0 == color1; if (color0 < color1) { NvMath.Swap(ref maxColor, ref minColor); NvMath.Swap(ref color0, ref color1); } dxtBoundPoints[0] = maxColor; dxtBoundPoints[1] = minColor; if (!hasAlpha) { uint indices = ComputeIndices4(inputPoints, maxColor, minColor); OptimizeEndPoints4(inputPoints, ref dxtBoundPoints, ref indices); } //else //{ // uint indices = computeIndices3(inputPoints, maxColor, minColor); // optimizeEndPoints3(inputPoints, ref dxtBoundPoints, ref indices); //} } } else { for (int i = 0; i < 2; i++) dxtBoundPoints[i] = ColorToVector(dxtBoundColors[i]); } #endregion #region Finilize c0 = RoundAndExpand(ref dxtBoundPoints[0]); c1 = RoundAndExpand(ref dxtBoundPoints[1]); if (c0 == c1){ hasAlpha = true; } if (c0 > c1 == hasAlpha) { NvMath.Swap(ref c0, ref c1); NvMath.Swap(ref dxtBoundPoints[0], ref dxtBoundPoints[1]); } if (c0 > c1){ NvMath.Swap(ref dxtBoundPoints[0], ref dxtBoundPoints[1]); } compressColors = new Color[4]; for (int i = 0; i < 2; i++) compressColors[i] = VectorToColor(dxtBoundPoints[i]); if (hasAlpha) { compressColors[2] = SumColors(compressColors[0], compressColors[1], 1, 1); compressColors[3] = Color.FromArgb(0, 0, 0, 0); } else { compressColors[2] = SumColors(compressColors[0], compressColors[1], 5, 3); compressColors[3] = SumColors(compressColors[0], compressColors[1], 3, 5); } bestError = 0; texels = 0; for (int i = 0; i < 16; i++) { byte ci; if (block[i].A >= 8) { double dist0 = ColorSquaredDistance(block[i], compressColors[0]); double dist1 = ColorSquaredDistance(block[i], compressColors[1]); double dist2 = ColorSquaredDistance(block[i], compressColors[2]); double dist3 = ColorSquaredDistance(block[i], compressColors[3]); if (dist0 < dist2) { ci = 0; bestError += dist0; } else if (dist1 < dist2 && dist1 < dist3) { ci = 1; bestError += dist1; } else if (dist2 < dist3) { ci = 2; bestError += dist2; } else { ci = 3; bestError += dist3; } } else ci = 3; texels |= (uint)(ci << (2 * i)); } #endregion return Math.Sqrt(bestError / 16); } /// /// The compress ARGB32 format image to 4x4 blocks. /// /// The bgra data. /// The width. /// The height. /// The boundary approx flag (if flag = 1 then pixels inside of the 4x4 block will be ignored). /// Interpolated palettes using only flag (if flag = 0 then palettes each 4x4 block can be contain from 2 to 4 colors). /// /// The output palette. /// WARNING: If color pairs number (palette size / 4) > 0x3FFF then output data has error color indexes. /// /// /// The compressed data. /// public static byte[] Compress(byte[] bgra, uint width, uint height, bool boundaryApprox, bool onlyInterpolatedPalettes, out byte[] palette) { uint wt = width / 4; uint texelsCount = width * height / 16; byte[] result = new byte[texelsCount * 6]; List colorQuarts = new List(); ulong[] colorPairsOrQuarts = new ulong[texelsCount]; byte[] palTypes = new byte[texelsCount]; int[] colorPairIndexes = new int[texelsCount]; for (uint y = 0; y < height; y += 4) { for (uint x = 0; x < width; x += 4) { Color[] block = new Color[16]; for (int j = 0; j < 4; j++) { for (int i = 0; i < 4; i++) { uint pixelIndex = (uint)((y + i) * width + (x + j)); int pixelBlockIndex = i * 4 + j; block[pixelBlockIndex] = Color.FromArgb( bgra[4 * pixelIndex + 3], bgra[4 * pixelIndex + 2], bgra[4 * pixelIndex + 1], bgra[4 * pixelIndex + 0]); } } int[] mask; if (boundaryApprox) { mask = new[] { 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1 }; } else { mask = new[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; } // try { Color[] compressColors; uint texels = 0; ushort c0, c1; double err = CompressBlock(block, mask, out compressColors, out c0, out c1, out texels); uint texelIndex = y / 4 * wt + x / 4; uint resIndex = texelIndex * 4; result[resIndex + 0] = (byte)((texels >> 0) & 0xFF); result[resIndex + 1] = (byte)((texels >> 8) & 0xFF); result[resIndex + 2] = (byte)((texels >> 16) & 0xFF); result[resIndex + 3] = (byte)((texels >> 24) & 0xFF); palTypes[texelIndex] = (c0 <= c1) ? (byte)1 : (byte)3; colorPairsOrQuarts[texelIndex] = (c0 <= c1) ? (uint)((c1 << 16) | c0) : (uint)((c0 << 16) | c1); int colorIndex = -1; if (!onlyInterpolatedPalettes && err >= 16) { Vector3[] cV = { Vector3.Zero, Vector3.Zero, Vector3.Zero, Vector3.Zero }; int[] cN = { 0, 0, 0, 0}; for (int i = 0; i < 16; i++) { uint ci = (texels >> (2 * i)) & 0x3; cV[ci] += ColorToVector(block[i]); cN[ci]++; } if (cN[2] != 0 || cN[3] != 0) { palTypes[texelIndex] -= 1; ushort[] c = new ushort[4]; for (int ci = 0; ci < 4; ci++) { if (cN[ci] > 0){ cV[ci] /= cN[ci]; } c[ci] = RoundAndExpand(ref cV[ci]); } colorPairsOrQuarts[texelIndex] = ((ulong)((c[3] << 16) | c[2]) << 32) | (ulong)((c[1] << 16) | c[0]); colorIndex = 2 * colorQuarts.IndexOf(colorPairsOrQuarts[texelIndex]); if (colorIndex < 0) { colorIndex = 2 * colorQuarts.Count; colorQuarts.Add(colorPairsOrQuarts[texelIndex]); } } } colorPairIndexes[texelIndex] = colorIndex; } // catch (Exception e) // { // throw e; // } } } // Generates pairs of colors. First writing pairs from quartets. List colorPairs = new List(); for (int i = 0; i < colorQuarts.Count; i++) { UInt32 pair1 = (uint)(colorQuarts[i] & 0xFFFFFFFF); UInt32 pair2 = (uint)((colorQuarts[i] >> 32) & 0xFFFFFFFF); colorPairs.Add(pair1); colorPairs.Add(pair2); } // Extend pairs list and writing to result. for (uint i = 0; i < texelsCount; i++) { int colorIndex = colorPairIndexes[i]; if (palTypes[i] % 2 != 0) { UInt32 colorPair = (uint)colorPairsOrQuarts[i]; colorIndex = colorPairs.IndexOf(colorPair); if (colorIndex < 0) { colorIndex = colorPairs.Count; colorPairs.Add(colorPair); } } if (colorIndex > 0x3FFF){ colorIndex = 0; } ushort palInfo = (ushort)((colorIndex & 0x3FFF) | (palTypes[i] << 14)); uint resIndex = texelsCount * 4 + i * 2; result[resIndex + 0] = (byte)((palInfo >> 0) & 0xFF); result[resIndex + 1] = (byte)((palInfo >> 8) & 0xFF); } // Convert color pais to output palette data. palette = new byte[colorPairs.Count * 4]; for (int i = 0; i < colorPairs.Count; i++) { byte[] colorsData = BitConverter.GetBytes(colorPairs[i]); Array.Copy(colorsData, 0, palette, 4 * i, 4); } return result; } #endregion } } ================================================ FILE: Ekona/Images/PaletteBase.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using System.Windows.Forms; namespace Ekona.Images { public abstract class PaletteBase { #region Variables protected IPluginHost pluginHost; protected String fileName; protected int id = -1; bool loaded; Byte[] original; int startByte; protected Color[][] palette; ColorFormat depth; bool canEdit; protected Object obj; #endregion public PaletteBase() { loaded = false; } public PaletteBase(Color[][] pal, bool editable, string fileName = "") { this.fileName = fileName; Set_Palette(pal, editable); } public PaletteBase(string fileIn, int id, IPluginHost pluginHost, string fileName = "") { this.pluginHost = pluginHost; if (fileName == "") this.fileName = System.IO.Path.GetFileName(fileIn); else this.fileName = fileName; this.id = id; Read(fileIn); } public PaletteBase(string fileIn, int id, string fileName = "") { if (fileName == "") this.fileName = System.IO.Path.GetFileName(fileIn); else this.fileName = fileName; this.id = id; Read(fileIn); } public abstract void Read(string fileIn); public abstract void Write(string fileOut); public Image Get_Image(int index) { if (index >= palette.Length) return null; return Actions.Get_Image(palette[index]); } public void FillColors(int maxColors, int pal_index) { FillColors(maxColors, pal_index, Color.Black); } public void FillColors(int maxColors, int pal_index, Color color) { int old_length = palette[pal_index].Length; if (old_length >= maxColors) return; Color[] newpal = new Color[maxColors]; Array.Copy(palette[pal_index], newpal, old_length); for (int i = old_length; i < maxColors; i++) newpal[i] = color; palette[pal_index] = newpal; } private void Change_PaletteDepth(ColorFormat newDepth) { if (newDepth == depth) return; depth = newDepth; if (depth == ColorFormat.colors256 || depth == ColorFormat.A3I5) palette = Actions.Palette_16To256(palette); else palette = Actions.Palette_256To16(palette); } private void Change_StartByte(int start) { if (start < 0 || start >= original.Length) return; startByte = start; // Get the new palette data int size = original.Length - start; if (size > 0x2000){ size = 0x2000; } Byte[] data = new byte[size]; Array.Copy(original, start, data, 0, data.Length); // Convert it to colors List colors = new List(); colors.AddRange(Actions.BGR555ToColor(data)); int num_colors = (depth == ColorFormat.colors16 ? 0x10 : 0x100); bool isExact = (colors.Count % num_colors == 0 ? true : false); palette = new Color[(colors.Count / num_colors) + (isExact ? 0 : 1)][]; for (int i = 0; i < palette.Length; i++) { int palette_length = i * num_colors + num_colors <= colors.Count ? num_colors : colors.Count - i * num_colors; palette[i] = new Color[palette_length]; Array.Copy(colors.ToArray(), i * num_colors, palette[i], 0, palette_length); } } public void Set_Palette(Color[][] palette, bool editable) { this.palette = palette; canEdit = editable; if (palette[0].Length > 16) depth = ColorFormat.colors256; else depth = ColorFormat.colors16; loaded = true; if (depth == ColorFormat.colors16 && (palette.Length == 1 && palette[0].Length > 0x10)) { Color[][] newColors = new Color[palette[0].Length / 0x10][]; for (int i = 0; i < newColors.Length; i++) { int pal_colors = 0x10; if (i * 0x10 >= palette[0].Length) pal_colors = palette[0].Length - (i - 1) * 0x10; newColors[i] = new Color[pal_colors]; Array.Copy(palette[0], i * 0x10, newColors[i], 0, pal_colors); } this.palette = newColors; } // Convert the palette to bytes, to store the original palette List colors = new List(); for (int i = 0; i < palette.Length; i++) colors.AddRange(palette[i]); original = Actions.ColorToBGR555(colors.ToArray()); startByte = 0; } public void Set_Palette(Color[][] palette, ColorFormat depth, bool editable) { this.palette = palette; canEdit = editable; this.depth = depth; loaded = true; if (depth == ColorFormat.colors16 && (palette.Length == 1 && palette[0].Length > 0x10)) { Color[][] newColors = new Color[palette[0].Length / 0x10][]; for (int i = 0; i < newColors.Length; i++) { int pal_colors = 0x10; if (i * 0x10 >= palette[0].Length) pal_colors = palette[0].Length - (i - 1) * 0x10; newColors[i] = new Color[pal_colors]; Array.Copy(palette[0], i * 0x10, newColors[i], 0, pal_colors); } this.palette = newColors; } // Convert the palette to bytes, to store the original palette List colors = new List(); for (int i = 0; i < palette.Length; i++) colors.AddRange(palette[i]); original = Actions.ColorToBGR555(colors.ToArray()); startByte = 0; } public void Set_Palette(Color[] palette, ColorFormat depth, bool editable) { Set_Palette(new Color[][] { palette }, depth, editable); } public void Set_Palette(Color[] palette, int index) { this.palette[index] = palette; } public void Set_Palette(PaletteBase new_pal) { this.palette = new_pal.Palette; this.depth = new_pal.Depth; loaded = true; // Convert the palette to bytes, to store the original palette List colors = new List(); for (int i = 0; i < palette.Length; i++) colors.AddRange(palette[i]); original = Actions.ColorToBGR555(colors.ToArray()); startByte = 0; } public void Set_Palette(Color[][] palette) { this.palette = palette; if (palette[0].Length > 16) depth = ColorFormat.colors256; else depth = ColorFormat.colors16; loaded = true; if (depth == ColorFormat.colors16 && (palette.Length == 1 && palette[0].Length > 0x10)) { Color[][] newColors = new Color[palette[0].Length / 0x10][]; for (int i = 0; i < newColors.Length; i++) { int pal_colors = 0x10; if (i * 0x10 >= palette[0].Length) pal_colors = palette[0].Length - (i - 1) * 0x10; newColors[i] = new Color[pal_colors]; Array.Copy(palette[0], i * 0x10, newColors[i], 0, pal_colors); } this.palette = newColors; } // Convert the palette to bytes, to store the original palette List colors = new List(); for (int i = 0; i < palette.Length; i++) colors.AddRange(palette[i]); original = Actions.ColorToBGR555(colors.ToArray()); startByte = 0; } public bool Has_DuplicatedColors(int index) { for (int i = 0; i < palette[index].Length; i++) for (int j = 0; j < palette[index].Length; j++) if (j != i && palette[index][i] == palette[index][j]) return true; return false; } #region Properties public int StartByte { get { return startByte; } set { Change_StartByte(value); } } public ColorFormat Depth { get { return depth; } set { Change_PaletteDepth(value); } } public int NumberOfPalettes { get { return palette.Length; } } public int NumberOfColors { get { if (depth == ColorFormat.colors256) return palette[0].Length; else { int colors = 0; for (int i = 0; i < palette.Length; i++) colors += palette[i].Length; return colors; } } } public Color[][] Palette { get { return palette; } } public bool CanEdit { get { return canEdit; } } public bool Loaded { get { return loaded; } } public String FileName { get { return fileName; } set { fileName = value; } } public int ID { get { return id; } } public Byte[] Original { set { original = value; } get { return original; } } #endregion } } ================================================ FILE: Ekona/Images/PaletteControl.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ 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 System.Xml.Linq; namespace Ekona.Images { public partial class PaletteControl : UserControl { IPluginHost pluginHost; PaletteBase palette; string[] translation; public PaletteControl() { InitializeComponent(); } public PaletteControl(IPluginHost pluginHost) { InitializeComponent(); this.pluginHost = pluginHost; this.palette = pluginHost.Get_Palette(); btnImport.Enabled = palette.CanEdit; ReadLanguage(); Update_Info(); } public PaletteControl(IPluginHost pluginHost, PaletteBase palette) { InitializeComponent(); this.pluginHost = pluginHost; this.palette = palette; btnImport.Enabled = palette.CanEdit; ReadLanguage(); Update_Info(); } private void Update_Info() { picPalette.Image = palette.Get_Image(0); numericPalette.Maximum = palette.NumberOfPalettes - 1; label3.Text = translation[0] + (palette.NumberOfPalettes - 1).ToString(); numericStartByte.Maximum = palette.Original.Length - 1; comboDepth.SelectedIndex = (palette.Depth == ColorFormat.colors16 ? 0 : 1); if (palette.Depth == ColorFormat.colors16) numFillColors.Value = 16; else numFillColors.Value = 256; checkDuplicated.Checked = palette.Has_DuplicatedColors(0); } private void ReadLanguage() { try { XElement xml = XElement.Load(pluginHost.Get_LangXML()); xml = xml.Element("Ekona"); xml = xml.Element("PaletteControl"); label1.Text = xml.Element("S01").Value; btnShow.Text = xml.Element("S02").Value; btnExport.Text = xml.Element("S03").Value; btnImport.Text = xml.Element("S04").Value; label2.Text = xml.Element("S05").Value; label4.Text = xml.Element("S06").Value; btnUseThis.Text = xml.Element("S0A").Value; checkHex.Text = xml.Element("S0B").Value; label5.Text = xml.Element("S0C").Value; btnFillColors.Text = xml.Element("S0D").Value; translation = new string[3]; translation[0] = xml.Element("S07").Value; translation[1] = xml.Element("S09").Value; translation[2] = xml.Element("S08").Value; } catch { throw new Exception("There was an error reading the XML file of language."); } } private void numericPalette_ValueChanged(object sender, EventArgs e) { picPalette.Image = palette.Get_Image((int)numericPalette.Value); checkDuplicated.Checked = palette.Has_DuplicatedColors((int)numericPalette.Value); } private void numericStartByte_ValueChanged(object sender, EventArgs e) { palette.StartByte = (int)numericStartByte.Value; picPalette.Image = palette.Get_Image((int)numericPalette.Value); numericPalette.Maximum = palette.NumberOfPalettes - 1; label3.Text = translation[0] + (palette.NumberOfPalettes - 1).ToString(); checkDuplicated.Checked = palette.Has_DuplicatedColors((int)numericPalette.Value); } private void comboDepth_SelectedIndexChanged(object sender, EventArgs e) { palette.Depth = (comboDepth.SelectedIndex == 0 ? ColorFormat.colors16 : ColorFormat.colors256); picPalette.Image = palette.Get_Image((int)numericPalette.Value); numericPalette.Value = 0; numericPalette.Maximum = palette.NumberOfPalettes - 1; label3.Text = translation[0] + (palette.NumberOfPalettes - 1).ToString(); if (palette.Depth == ColorFormat.colors16) numFillColors.Value = 16; else numFillColors.Value = 256; checkDuplicated.Checked = palette.Has_DuplicatedColors((int)numericPalette.Value); } private void picPalette_MouseClick(object sender, MouseEventArgs e) { if (picPalette.Image is Image) { Color color = ((Bitmap)picPalette.Image).GetPixel(e.X, e.Y); lblRGB.Text = "RGB: " + color.R + ", " + color.G + ", " + color.B; } } private void btnShow_Click(object sender, EventArgs e) { Form win = new Form(); int xMax = 6 * 170; int x = 0; int y = 15; for (int i = 0; i < palette.NumberOfPalettes; i++) { PictureBox pic = new PictureBox(); pic.Size = new Size(160, 160); pic.Location = new Point(x, y); pic.BorderStyle = BorderStyle.FixedSingle; pic.Image = palette.Get_Image(i); Label lbl = new Label(); lbl.Text = translation[2] + (i + 1).ToString(); lbl.Location = new Point(x, y - 15); win.Controls.Add(pic); win.Controls.Add(lbl); x += 170; if (x >= xMax) { x = 0; y += 185; } } win.Text = translation[1]; win.BackColor = SystemColors.GradientInactiveCaption; win.MaximumSize = new Size(1024, 760); win.ShowIcon = false; win.AutoSize = true; win.AutoSizeMode = AutoSizeMode.GrowAndShrink; win.MaximizeBox = false; win.Show(); } private void btnExport_Click(object sender, EventArgs e) { SaveFileDialog o = new SaveFileDialog(); o.AddExtension = true; o.CheckPathExists = true; o.DefaultExt = ".pal"; o.Filter = "Windows Palette for Gimp 2.8 (*.pal)|*.pal|" + "Windows Palette (*.pal)|*.pal|" + "Portable Network Graphics (*.png)|*.png|" + "Adobe COlor (*.aco)|*.aco"; o.OverwritePrompt = true; o.FileName = palette.FileName; if (o.ShowDialog() != DialogResult.OK) return; if (o.FilterIndex == 3) picPalette.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Png); else if (o.FilterIndex == 1 || o.FilterIndex == 2) { Formats.PaletteWin palwin = new Formats.PaletteWin(palette.Palette[(int)numericPalette.Value]); if (o.FilterIndex == 1){ palwin.Gimp_Error = true; } palwin.Write(o.FileName); } else if (o.FilterIndex == 4) { Formats.ACO palaco = new Formats.ACO(palette.Palette[(int)numericPalette.Value]); palaco.Write(o.FileName); } o.Dispose(); o = null; } private void btnImport_Click(object sender, EventArgs e) { OpenFileDialog o = new OpenFileDialog(); o.CheckFileExists = true; o.Filter = "All supported formats|*.pal;*.aco;*.png;*.bmp;*.jpg;*.jpeg;*.tif;*.tiff;*.gif;*.ico;*.icon|" + "Windows Palette (*.pal)|*.pal|" + "Adobe COlor (*.aco)|*.aco|" + "Palette from image|*.png;*.bmp;*.jpg;*.jpeg;*.tif;*.tiff;*.gif;*.ico;*.icon"; if (o.ShowDialog() != DialogResult.OK) return; string ext = Path.GetExtension(o.FileName).ToLower(); if (string.IsNullOrEmpty(ext) || ext.Length == 0) { MessageBox.Show("File without extension... Aborting"); return; } if (ext.Contains(".")) ext = ext.Substring(ext.LastIndexOf(".") + 1); Console.WriteLine("File extension:" + ext); PaletteBase newpal; if (ext == "pal") newpal = new Formats.PaletteWin(o.FileName); else if (ext == "aco") newpal = new Formats.ACO(o.FileName); else { byte[] tiles; Color[] newcol; Actions.Indexed_Image((Bitmap)Image.FromFile(o.FileName), palette.Depth, out tiles, out newcol); newpal = new RawPalette(newcol, palette.CanEdit, palette.Depth); } if (newpal != null) palette.Set_Palette(newpal); // Write the file Write_File(); o.Dispose(); o = null; } private void Write_File() { if (palette.ID > 0) { try { String fileOut = pluginHost.Get_TempFile(); palette.Write(fileOut); pluginHost.ChangeFile(palette.ID, fileOut); } catch (Exception ex) { MessageBox.Show("Error writing new palette:\n" + ex.Message); }; } } private void checkHex_CheckedChanged(object sender, EventArgs e) { numericStartByte.Hexadecimal = checkHex.Checked; } private void btnUseThis_Click(object sender, EventArgs e) { pluginHost.Set_Palette(palette); } private void btnFillColors_Click(object sender, EventArgs e) { palette.FillColors((int)numFillColors.Value, (int)numericPalette.Value); Write_File(); picPalette.Image = palette.Get_Image((int)numericPalette.Value); checkDuplicated.Checked = palette.Has_DuplicatedColors((int)numericPalette.Value); } } } ================================================ FILE: Ekona/Images/PaletteControl.designer.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ namespace Ekona.Images { partial class PaletteControl { /// /// 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.picPalette = new System.Windows.Forms.PictureBox(); this.numericPalette = new System.Windows.Forms.NumericUpDown(); this.label1 = new System.Windows.Forms.Label(); this.btnShow = new System.Windows.Forms.Button(); this.btnExport = new System.Windows.Forms.Button(); this.lblRGB = new System.Windows.Forms.Label(); this.btnImport = new System.Windows.Forms.Button(); this.label2 = new System.Windows.Forms.Label(); this.numericStartByte = new System.Windows.Forms.NumericUpDown(); this.label3 = new System.Windows.Forms.Label(); this.comboDepth = new System.Windows.Forms.ComboBox(); this.label4 = new System.Windows.Forms.Label(); this.checkHex = new System.Windows.Forms.CheckBox(); this.btnUseThis = new System.Windows.Forms.Button(); this.label5 = new System.Windows.Forms.Label(); this.numFillColors = new System.Windows.Forms.NumericUpDown(); this.btnFillColors = new System.Windows.Forms.Button(); this.checkDuplicated = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.picPalette)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericPalette)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericStartByte)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numFillColors)).BeginInit(); this.SuspendLayout(); // // picPalette // this.picPalette.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.picPalette.Location = new System.Drawing.Point(0, 0); this.picPalette.Name = "picPalette"; this.picPalette.Size = new System.Drawing.Size(160, 160); this.picPalette.TabIndex = 0; this.picPalette.TabStop = false; this.picPalette.MouseClick += new System.Windows.Forms.MouseEventHandler(this.picPalette_MouseClick); // // numericPalette // this.numericPalette.Location = new System.Drawing.Point(101, 182); this.numericPalette.Name = "numericPalette"; this.numericPalette.Size = new System.Drawing.Size(37, 20); this.numericPalette.TabIndex = 2; this.numericPalette.ValueChanged += new System.EventHandler(this.numericPalette_ValueChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(3, 184); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(26, 13); this.label1.TabIndex = 3; this.label1.Text = "S01"; // // btnShow // this.btnShow.Location = new System.Drawing.Point(6, 208); this.btnShow.Name = "btnShow"; this.btnShow.Size = new System.Drawing.Size(160, 30); this.btnShow.TabIndex = 4; this.btnShow.Text = "S02"; this.btnShow.UseVisualStyleBackColor = true; this.btnShow.Click += new System.EventHandler(this.btnShow_Click); // // btnExport // this.btnExport.Location = new System.Drawing.Point(343, 3); this.btnExport.Name = "btnExport"; this.btnExport.Size = new System.Drawing.Size(80, 40); this.btnExport.TabIndex = 6; this.btnExport.Text = "S03"; this.btnExport.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.btnExport.UseVisualStyleBackColor = true; this.btnExport.Click += new System.EventHandler(this.btnExport_Click); // // lblRGB // this.lblRGB.AutoSize = true; this.lblRGB.Location = new System.Drawing.Point(3, 163); this.lblRGB.Name = "lblRGB"; this.lblRGB.Size = new System.Drawing.Size(33, 13); this.lblRGB.TabIndex = 7; this.lblRGB.Text = "RGB:"; // // btnImport // this.btnImport.Location = new System.Drawing.Point(429, 3); this.btnImport.Name = "btnImport"; this.btnImport.Size = new System.Drawing.Size(80, 40); this.btnImport.TabIndex = 3; this.btnImport.Text = "S04"; this.btnImport.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.btnImport.UseVisualStyleBackColor = true; this.btnImport.Click += new System.EventHandler(this.btnImport_Click); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(313, 97); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(26, 13); this.label2.TabIndex = 1; this.label2.Text = "S05"; // // numericStartByte // this.numericStartByte.Location = new System.Drawing.Point(400, 95); this.numericStartByte.Maximum = new decimal(new int[] { -1, 0, 0, 0}); this.numericStartByte.Name = "numericStartByte"; this.numericStartByte.Size = new System.Drawing.Size(106, 20); this.numericStartByte.TabIndex = 0; this.numericStartByte.ValueChanged += new System.EventHandler(this.numericStartByte_ValueChanged); // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(142, 184); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(26, 13); this.label3.TabIndex = 9; this.label3.Text = "S07"; // // comboDepth // this.comboDepth.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboDepth.FormattingEnabled = true; this.comboDepth.Items.AddRange(new object[] { "16 / 16 (4bpp)", "256 / 1 (8bpp)"}); this.comboDepth.Location = new System.Drawing.Point(400, 121); this.comboDepth.Name = "comboDepth"; this.comboDepth.Size = new System.Drawing.Size(106, 21); this.comboDepth.TabIndex = 10; this.comboDepth.SelectedIndexChanged += new System.EventHandler(this.comboDepth_SelectedIndexChanged); // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(313, 124); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(26, 13); this.label4.TabIndex = 11; this.label4.Text = "S06"; // // checkHex // this.checkHex.AutoSize = true; this.checkHex.Location = new System.Drawing.Point(400, 72); this.checkHex.Name = "checkHex"; this.checkHex.Size = new System.Drawing.Size(46, 17); this.checkHex.TabIndex = 12; this.checkHex.Text = "S0B"; this.checkHex.UseVisualStyleBackColor = true; this.checkHex.CheckedChanged += new System.EventHandler(this.checkHex_CheckedChanged); // // btnUseThis // this.btnUseThis.Location = new System.Drawing.Point(166, 3); this.btnUseThis.Name = "btnUseThis"; this.btnUseThis.Size = new System.Drawing.Size(80, 40); this.btnUseThis.TabIndex = 13; this.btnUseThis.Text = "S0A"; this.btnUseThis.UseVisualStyleBackColor = true; this.btnUseThis.Click += new System.EventHandler(this.btnUseThis_Click); // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(259, 208); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(27, 13); this.label5.TabIndex = 14; this.label5.Text = "S0C"; // // numFillColors // this.numFillColors.Location = new System.Drawing.Point(345, 206); this.numFillColors.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numFillColors.Name = "numFillColors"; this.numFillColors.Size = new System.Drawing.Size(78, 20); this.numFillColors.TabIndex = 15; // // btnFillColors // this.btnFillColors.Location = new System.Drawing.Point(429, 194); this.btnFillColors.Name = "btnFillColors"; this.btnFillColors.Size = new System.Drawing.Size(80, 40); this.btnFillColors.TabIndex = 16; this.btnFillColors.Text = "S0D"; this.btnFillColors.UseVisualStyleBackColor = true; this.btnFillColors.Click += new System.EventHandler(this.btnFillColors_Click); // // checkDuplicated // this.checkDuplicated.AutoSize = true; this.checkDuplicated.Enabled = false; this.checkDuplicated.Location = new System.Drawing.Point(166, 72); this.checkDuplicated.Name = "checkDuplicated"; this.checkDuplicated.Size = new System.Drawing.Size(128, 17); this.checkDuplicated.TabIndex = 17; this.checkDuplicated.Text = "Has duplicated colors"; this.checkDuplicated.UseVisualStyleBackColor = true; // // PaletteControl // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Transparent; this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.Controls.Add(this.checkDuplicated); this.Controls.Add(this.btnFillColors); this.Controls.Add(this.numFillColors); this.Controls.Add(this.label5); this.Controls.Add(this.btnUseThis); this.Controls.Add(this.checkHex); this.Controls.Add(this.label4); this.Controls.Add(this.comboDepth); this.Controls.Add(this.btnImport); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.numericStartByte); this.Controls.Add(this.lblRGB); this.Controls.Add(this.btnExport); this.Controls.Add(this.btnShow); this.Controls.Add(this.label1); this.Controls.Add(this.numericPalette); this.Controls.Add(this.picPalette); this.Name = "PaletteControl"; this.Size = new System.Drawing.Size(512, 512); ((System.ComponentModel.ISupportInitialize)(this.picPalette)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericPalette)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericStartByte)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numFillColors)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.PictureBox picPalette; private System.Windows.Forms.NumericUpDown numericPalette; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button btnShow; private System.Windows.Forms.Button btnExport; private System.Windows.Forms.Label lblRGB; private System.Windows.Forms.Label label2; private System.Windows.Forms.NumericUpDown numericStartByte; internal System.Windows.Forms.Button btnImport; private System.Windows.Forms.Label label3; private System.Windows.Forms.ComboBox comboDepth; private System.Windows.Forms.Label label4; private System.Windows.Forms.CheckBox checkHex; private System.Windows.Forms.Button btnUseThis; private System.Windows.Forms.Label label5; private System.Windows.Forms.NumericUpDown numFillColors; private System.Windows.Forms.Button btnFillColors; private System.Windows.Forms.CheckBox checkDuplicated; } } ================================================ FILE: Ekona/Images/PaletteControl.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 True ================================================ FILE: Ekona/Images/RawData.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 23/06/2012 19:04:27 // ----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using System.Windows.Forms; namespace Ekona.Images { public class RawPalette : PaletteBase { // Unknown data byte[] prev_data; byte[] next_data; public RawPalette(string file, int id, bool editable, ColorFormat depth, int offset, int size, string fileName = "") : base() { if (fileName == "") this.fileName = System.IO.Path.GetFileName(file); else this.fileName = fileName; this.id = id; Read(file, editable, depth, offset, size); } public RawPalette(Color[][] colors, bool editable, ColorFormat depth, string fileName = "") : base() { this.fileName = fileName; Set_Palette(colors, depth, editable); } public RawPalette(Color[] colors, bool editable, ColorFormat depth, string fileName = "") : base() { this.fileName = fileName; Set_Palette(new Color[][] { colors }, depth, editable); } public RawPalette(string file, int id, bool editable, int offset, int size, string fileName = "") : base() { if (fileName == "") this.fileName = System.IO.Path.GetFileName(file); else this.fileName = fileName; this.id = id; Read(file, editable, offset, size); } public override void Read(string fileIn) { Read(fileIn, true, 0, -1); } public void Read(string fileIn, bool editable, ColorFormat depth, int offset, int fileSize) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); prev_data = br.ReadBytes(offset); if (fileSize <= 0){ fileSize = (int)br.BaseStream.Length; } if (fileSize > 0x2000){ fileSize = 0x2000; } int palette_length = 0x200; if (depth == ColorFormat.colors16 || fileSize < 0x200){ palette_length = 0x20; } // Color data Color[][] palette = new Color[fileSize / palette_length][]; for (int i = 0; i < palette.Length; i++) palette[i] = Actions.BGR555ToColor(br.ReadBytes(palette_length)); next_data = br.ReadBytes((int)(br.BaseStream.Length - fileSize)); br.Close(); Set_Palette(palette, depth, editable); } public void Read(string fileIn, bool editable, int offset, int fileSize) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); prev_data = br.ReadBytes(offset); if (fileSize <= 0) fileSize = (int)br.BaseStream.Length; int fileSize_ = fileSize; if (fileSize > 0x2000){ fileSize = 0x2000; } int palette_length = 0x200; if (fileSize < 0x200){ palette_length = fileSize; } // Color data Color[][] palette = new Color[fileSize / palette_length][]; for (int i = 0; i < palette.Length; i++) palette[i] = Actions.BGR555ToColor(br.ReadBytes(palette_length)); next_data = br.ReadBytes((int)(br.BaseStream.Length - fileSize)); Set_Palette(palette, editable); br.BaseStream.Position = offset; this.Original = br.ReadBytes(fileSize_); br.Close(); } public override void Write(string fileOut) { BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); bw.Write(prev_data); for (int i = 0; i < palette.Length; i++) bw.Write(Actions.ColorToBGR555(palette[i])); bw.Write(next_data); bw.Flush(); bw.Close(); } } public class RawImage : ImageBase { // Unknown data - Needed to write the file byte[] prev_data, post_data; byte[] ori_data; public RawImage(String file, int id, TileForm form, ColorFormat format, bool editable, int offset, int size, string fileName = "") : base() { this.id = id; if (fileName == "") this.fileName = Path.GetFileName(file); else this.fileName = fileName; Read(file, form, format, editable, offset, size); } public RawImage(String file, int id, TileForm form, ColorFormat format, int width, int height, bool editable, int offset, int size, string fileName = "") : base() { this.id = id; if (fileName == "") this.fileName = Path.GetFileName(file); else this.fileName = fileName; Read(file, form, format, editable, offset, size); this.Width = width; this.Height = height; } public RawImage(byte[] tiles, TileForm form, ColorFormat format, int width, int height, bool editable, string fileName = "") : base() { this.fileName = fileName; Set_Tiles(tiles, width, height, format, form, editable); } public override void Read(string fileIn) { Read(fileIn, TileForm.Horizontal, Images.ColorFormat.colors16, true, 0, -1); } public void Read(string fileIn, TileForm form, ColorFormat format, bool editable, int offset, int fileSize) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); prev_data = br.ReadBytes(offset); if (fileSize <= offset) fileSize = (int)br.BaseStream.Length; if (fileSize + offset >= br.BaseStream.Length) offset = (int)br.BaseStream.Length - fileSize; if (fileSize <= offset) fileSize = (int)br.BaseStream.Length; ori_data = br.ReadBytes(fileSize); post_data = br.ReadBytes((int)(br.BaseStream.Length - br.BaseStream.Position)); br.BaseStream.Position = offset; // Read the tiles Byte[] tiles = br.ReadBytes(fileSize); br.Close(); Set_Tiles(tiles, 0x0100, 0x00C0, format, form, editable); Size size = Actions.Get_Size(fileSize, BPP); Width = size.Width; Height = size.Height; } public override void Write(string fileOut, PaletteBase palette) { // MetLob edition 25/12/2015 int dataSize = (post_data.Length == 0) ? Tiles.Length : Math.Min(Tiles.Length, ori_data.Length - StartByte); if (dataSize < Tiles.Length) MessageBox.Show( "Tiles data size exceeds the allowable length and will be trimmed.", "Image import processing"); BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); bw.Write(prev_data); for (int i = 0; i < StartByte; i++) bw.Write(ori_data[i]); bw.Write(Tiles, 0, dataSize); for (int i = Tiles.Length + StartByte; i < ori_data.Length; i++) bw.Write(ori_data[i]); bw.Write(post_data); bw.Flush(); bw.Close(); } } public class RawMap : MapBase { // Unknown data byte[] prev_data; byte[] next_data; public RawMap(string file, int id, int offset, int size, bool editable, string fileName = "") : base() { this.id = id; if (fileName == "") this.fileName = System.IO.Path.GetFileName(file); else this.fileName = fileName; Read(file, offset, size, editable); } public RawMap(NTFS[] map, int width, int height, bool editable, string fileName = "") : base(map, editable, width, height, fileName) { } public override void Read(string fileIn) { Read(fileIn, 0, -1, true); } public void Read(string fileIn, int offset, int size, bool editable) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); prev_data = br.ReadBytes(offset); int file_size; if (size <= 0) file_size = (int)br.BaseStream.Length; else file_size = size; NTFS[] map = new NTFS[file_size / 2]; for (int i = 0; i < map.Length; i++) map[i] = Actions.MapInfo(br.ReadUInt16()); next_data = br.ReadBytes((int)(br.BaseStream.Length - file_size)); int width = (map.Length * 8 >= 0x100 ? 0x100 : map.Length * 8); int height = (map.Length / (width / 8)) * 8; br.Close(); Set_Map(map, editable, width, height); } public override void Write(string fileOut, ImageBase image, PaletteBase palette) { BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); bw.Write(prev_data); for (int i = 0; i < Map.Length; i++) bw.Write(Actions.MapInfo(Map[i])); bw.Write(next_data); bw.Flush(); bw.Close(); } } public class RawSprite : SpriteBase { public RawSprite(Bank[] banks, uint blocksize, bool editable = false) { Set_Banks(banks, blocksize, editable); } public RawSprite(OAM[] oams, uint blocksize, bool editable = false) { Bank bank = new Bank(); bank.name = "Bank 1"; bank.oams = oams; Set_Banks(new Bank[] { bank }, blocksize, editable); } public override void Read(string fileIn) { throw new NotImplementedException(); } public override void Write(string fileOut, ImageBase image, PaletteBase palette) { throw new NotImplementedException(); } } } ================================================ FILE: Ekona/Images/SpriteBase.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; namespace Ekona.Images { public abstract class SpriteBase { #region Variables protected IPluginHost pluginHost; protected string fileName; protected int id; bool loaded; bool canEdit; Bank[] banks; uint block_size; int zoom; Object obj; #endregion #region Properties public String FileName { get { return fileName; } set { fileName = value; } } public int ID { get { return id; } } public bool Loaded { get { return loaded; } } public bool CanEdit { get { return canEdit; } } public Bank[] Banks { get { return banks; } set { banks = value; } } public int NumBanks { get { return banks.Length; } } public uint BlockSize { get { return block_size; } } #endregion public SpriteBase() { } public SpriteBase(string file, int id, string fileName = "") { if (fileName == "") this.fileName = Path.GetFileName(file); else this.fileName = fileName; this.id = id; Read(file); } public SpriteBase(string file, int id, IPluginHost pluginHost, string fileName = "") { this.pluginHost = pluginHost; if (fileName == "") this.fileName = Path.GetFileName(file); else this.fileName = fileName; this.id = id; Read(file); } public abstract void Read(string fileIn); public abstract void Write(string fileOut, ImageBase image, PaletteBase palette); public void Set_Banks(Bank[] banks, uint block_size, bool editable) { this.banks = banks; this.block_size = block_size; this.canEdit = editable; loaded = true; // Sort the cell using the priority value for (int b = 0; b < banks.Length; b++) { List cells = new List(); cells.AddRange(banks[b].oams); cells.Sort(Actions.Comparision_OAM); banks[b].oams = cells.ToArray(); } } public Image Get_Image(ImageBase image, PaletteBase pal, int index, int width, int height, bool grid, bool cell, bool number, bool trans, bool img) { return Actions.Get_Image(banks[index], block_size, image, pal, width, height, grid, cell, number, trans, img); } public Image Get_Image(ImageBase image, PaletteBase pal, Bank bank, int width, int height, bool grid, bool cell, bool number, bool trans, bool img) { return Actions.Get_Image(bank, block_size, image, pal, width, height, grid, cell, number, trans, img); } public Image Get_Image(ImageBase image, PaletteBase pal, Bank bank, int width, int height, bool grid, bool cell, bool number, bool trans, bool img, int currOAM) { return Actions.Get_Image(bank, block_size, image, pal, width, height, grid, cell, number, trans, img, currOAM); } public Image Get_Image(ImageBase image, PaletteBase pal, int index, int width, int height, bool grid, bool cell, bool number, bool trans, bool img, int currOAM) { return Actions.Get_Image(banks[index], block_size, image, pal, width, height, grid, cell, number, trans, img, currOAM); } public Image Get_Image(ImageBase image, PaletteBase pal, int index, int width, int height, bool grid, bool cell, bool number, bool trans, bool img, int currOAM, int[] draw_index) { return Actions.Get_Image(banks[index], block_size, image, pal, width, height, grid, cell, number, trans, img, currOAM, 1, draw_index); } } public struct Bank { public OAM[] oams; public string name; public ushort height; public ushort width; public uint data_offset; public uint data_size; } public struct OAM { public Obj0 obj0; public Obj1 obj1; public Obj2 obj2; public ushort width; public ushort height; public ushort num_cell; } public struct Obj0 // 16 bits { public Int32 yOffset; // Bit0-7 -> signed public byte rs_flag; // Bit8 -> Rotation / Scale flag public byte objDisable; // Bit9 -> if r/s == 0 public byte doubleSize; // Bit9 -> if r/s != 0 public byte objMode; // Bit10-11 -> 0 = normal; 1 = semi-trans; 2 = window; 3 = invalid public byte mosaic_flag; // Bit12 public byte depth; // Bit13 -> 0 = 4bit; 1 = 8bit public byte shape; // Bit14-15 -> 0 = square; 1 = horizontal; 2 = vertial; 3 = invalid } public struct Obj1 // 16 bits { public Int32 xOffset; // Bit0-8 (unsigned) // If R/S == 0 public byte unused; // Bit9-11 public byte flipX; // Bit12 public byte flipY; // Bit13 // If R/S != 0 public byte select_param; //Bit9-13 -> Parameter selection public byte size; // Bit14-15 } public struct Obj2 // 16 bits { public uint tileOffset; // Bit0-9 public byte priority; // Bit10-11 public byte index_palette; // Bit12-15 } } ================================================ FILE: Ekona/Images/SpriteControl.cs ================================================ /* * Copyright (C) 2012 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Drawing; using System.Xml.Linq; using System.IO; using System.Windows.Forms; using Ekona.Images.Formats; namespace Ekona.Images { public partial class SpriteControl : UserControl { SpriteBase sprite; ImageBase image; PaletteBase palette; IPluginHost pluginHost; XElement lang; string trans; bool selectColor; public SpriteControl() { InitializeComponent(); } public SpriteControl(IPluginHost pluginHost) { InitializeComponent(); this.pluginHost = pluginHost; this.sprite = pluginHost.Get_Sprite(); this.image = pluginHost.Get_Image(); this.palette = pluginHost.Get_Palette(); Read_Language(); Update_Info(); } public SpriteControl(IPluginHost pluginHost, SpriteBase sprite) { InitializeComponent(); this.sprite = sprite; this.image = pluginHost.Get_Image(); this.palette = pluginHost.Get_Palette(); this.pluginHost = pluginHost; Read_Language(); Update_Info(); } public SpriteControl(IPluginHost pluginHost, SpriteBase sprite, ImageBase image, PaletteBase palette) { InitializeComponent(); this.sprite = sprite; this.image = image; this.palette = palette; this.pluginHost = pluginHost; Read_Language(); Update_Info(); } public SpriteControl(XElement lang, SpriteBase sprite, ImageBase image, PaletteBase palette) { InitializeComponent(); this.sprite = sprite; this.image = image; this.palette = palette; this.lang = lang; Read_Language(lang); Update_Info(); } private void Read_Language() { try { XElement xml = XElement.Load(pluginHost.Get_LangXML()); xml = xml.Element("Ekona"); Read_Language(xml); } catch { throw new Exception("There was an error reading the XML language file."); } } private void Read_Language(XElement xml) { try { xml = xml.Element("SpriteControl"); label1.Text = xml.Element("S01").Value; btnShowAll.Text = xml.Element("S02").Value; label3.Text = xml.Element("S03").Value.Remove(0, 1); checkBatch.Text = xml.Element("S04").Value; btnOAMeditor.Text = xml.Element("S05").Value; btnExport.Text = xml.Element("S06").Value; btnImport.Text = xml.Element("S07").Value; btnSetTrans.Text = xml.Element("S08").Value; btnBgd.Text = xml.Element("S09").Value; btnBgdTrans.Text = xml.Element("S0A").Value; groupBox1.Text = xml.Element("S0B").Value; checkGrid.Text = xml.Element("S0C").Value; checkCellBorder.Text = xml.Element("S0D").Value; checkImage.Text = xml.Element("S0E").Value; checkTransparency.Text = xml.Element("S0F").Value; checkNumber.Text = xml.Element("S10").Value; radioSwapPal.Text = xml.Element("S11").Value; trans = xml.Element("S12").Value; label4.Text = "of " + sprite.NumBanks.ToString(); radioReplacePal.Text = xml.Element("S14").Value; radioOriginalPal.Text = xml.Element("S13").Value; groupBox2.Text = xml.Element("S15").Value; label2.Text = xml.Element("S16").Value; groupBox3.Text = xml.Element("S17").Value; radioImgAdd.Text = xml.Element("S18").Value; radioImgReplace.Text = xml.Element("S19").Value; } catch { throw new Exception("There was an error reading the XML language file."); } } public Image Build_Image() { int[] index = new int[checkListOAM.CheckedIndices.Count]; for (int i = 0; i < index.Length; i++) index[i] = checkListOAM.CheckedIndices[i]; return sprite.Get_Image(image, palette, comboBank.SelectedIndex, 512, 256, checkGrid.Checked, checkCellBorder.Checked, checkNumber.Checked, checkTransparency.Checked, checkImage.Checked, (checkSelectOAM.Checked ? checkListOAM.SelectedIndex : -1), index); } private Image Update_Image() { imgBox.Image = Build_Image(); Clipboard.SetImage(imgBox.Image); return imgBox.Image; } private void Update_Info() { this.btnImport.Enabled = (sprite.CanEdit && image.CanEdit && palette.CanEdit ? true : false); this.btnOAMeditor.Enabled = sprite.CanEdit; groupBox2.Enabled = sprite.CanEdit; groupBox3.Enabled = sprite.CanEdit; for (ushort i = 0; i < sprite.NumBanks; i++) if (sprite.Banks[i].name is String) comboBank.Items.Add(sprite.Banks[i].name); else comboBank.Items.Add("Bank " + i.ToString()); comboBank.SelectedIndex = 0; txtBatch.Text = Path.GetFileNameWithoutExtension(sprite.FileName) + "_%s"; Update_BankInfo(0); } private void Update_BankInfo(int i) { checkListOAM.Items.Clear(); for (int k = 0; k < sprite.Banks[i].oams.Length; k++) checkListOAM.Items.Add("OAM " + k.ToString(), true); } private void comboBank_SelectedIndexChanged(object sender, EventArgs e) { Update_BankInfo(comboBank.SelectedIndex); Update_Image(); } private void check_CheckedChanged(object sender, EventArgs e) { Update_Image(); } private void btnShowAll_Click(object sender, EventArgs e) { Form win = new Form(); int xMax = 516 * 2; int x = 0; int y = 15; for (int i = 0; i < sprite.NumBanks; i++) { PictureBox pic = new PictureBox(); pic.Size = new Size(512, 256); pic.Location = new Point(x, y); pic.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; pic.Image = sprite.Get_Image(image, palette, i, 512, 256, checkGrid.Checked, checkCellBorder.Checked, checkNumber.Checked, checkTransparency.Checked, checkImage.Checked); Label lbl = new Label(); lbl.Text = sprite.Banks[i].name; lbl.Location = new Point(x, y - 15); win.Controls.Add(pic); win.Controls.Add(lbl); x += 516; if (x >= xMax) { x = 0; y += 275; } } win.Text = trans; win.BackColor = SystemColors.GradientInactiveCaption; win.AutoScroll = true; win.AutoSize = true; win.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; win.MaximumSize = new System.Drawing.Size(1050, 700); win.FormBorderStyle = FormBorderStyle.Sizable; win.ShowIcon = false; win.MaximizeBox = true; win.Show(); } private void btnBgdTrans_Click(object sender, EventArgs e) { btnBgdTrans.Enabled = false; imgBox.BackColor = Color.Transparent; } private void btnBgd_Click(object sender, EventArgs e) { ColorDialog o = new ColorDialog(); o.AllowFullOpen = true; o.AnyColor = true; if (o.ShowDialog() == DialogResult.OK) { imgBox.BackColor = o.Color; btnBgdTrans.Enabled = true; } } private void btnSetTrans_Click(object sender, EventArgs e) { selectColor = true; } private void SetTransFromImage(Color color) { int pal_index = sprite.Banks[comboBank.SelectedIndex].oams[0].obj2.index_palette; // How can I know that? yeah, I'm too lazy to do a new windows ;) Color[] pal = palette.Palette[pal_index]; byte[] tiles = image.Tiles; int index = -1; for (int i = 0; i < pal.Length; i++) { if (pal[i] == color) { index = i; break; } } Actions.Swap_Color(ref tiles, ref pal, index, 0, image.FormatColor); Color[][] new_pal = palette.Palette; new_pal[pal_index] = pal; if (image.ID > 0) image.Set_Tiles(tiles); if (palette.ID > 0) palette.Set_Palette(new_pal); Save_Files(); } private void imgBox_MouseClick(object sender, MouseEventArgs e) { if (selectColor && imgBox.Image is Image) { Color color = ((Bitmap)imgBox.Image).GetPixel(e.X, e.Y); SetTransFromImage(color); } } private void btnSave_Click(object sender, EventArgs e) { if (!checkBatch.Checked) Export_Single(); else Export_All(); } private void Export_Single() { SaveFileDialog o = new SaveFileDialog(); o.AddExtension = true; o.CheckPathExists = true; o.DefaultExt = ".png"; o.Filter = "Portable Network Graphic (*.png)|*.png|" + "BitMaP (*.bmp)|*.bmp|" + "JPEG (*.jpg)|*.jpg;*.jpeg|" + "Tagged Image File Format (*.tiff)|*.tiff;*.tif|" + "Graphic Interchange Format (*.gif)|*.gif|" + "Icon (*.ico)|*.ico;*.icon"; o.OverwritePrompt = true; o.FileName = sprite.FileName + '_' + comboBank.SelectedIndex; if (o.ShowDialog() == DialogResult.OK) { if (o.FilterIndex == 1) imgBox.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Png); else if (o.FilterIndex == 2) imgBox.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Bmp); else if (o.FilterIndex == 3) imgBox.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Jpeg); else if (o.FilterIndex == 4) imgBox.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Tiff); else if (o.FilterIndex == 5) imgBox.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Gif); else if (o.FilterIndex == 6) imgBox.Image.Save(o.FileName, System.Drawing.Imaging.ImageFormat.Icon); } } private void Export_All() { if (txtBatch.Text == "" || txtBatch.Text == null || !txtBatch.Text.Contains("%s")) { MessageBox.Show("Invalid file name."); return; } for (int i = 0; i < Path.GetInvalidFileNameChars().Length; i++) { if (txtBatch.Text.Contains(Path.GetInvalidFileNameChars()[i].ToString())) { MessageBox.Show("Invalid file name."); return; } } FolderBrowserDialog o = new FolderBrowserDialog(); o.Description = "Select the folder to extract the sprites."; o.ShowNewFolderButton = true; o.SelectedPath = Directory.GetParent(Helper.IOutil.LastSelectedFile()).FullName; if (o.ShowDialog() != DialogResult.OK) return; // TODO: Only export to PNG for (int i = 0; i < sprite.NumBanks; i++) { Image img = sprite.Get_Image(image, palette, i, 512, 256, checkGrid.Checked, checkCellBorder.Checked, checkNumber.Checked, checkTransparency.Checked, checkImage.Checked); string path = o.SelectedPath + Path.DirectorySeparatorChar; path += txtBatch.Text.Replace("%s", i.ToString()) + ".png"; img.Save(path, System.Drawing.Imaging.ImageFormat.Png); } o.Dispose(); o = null; } private void checkBatch_CheckedChanged(object sender, EventArgs e) { txtBatch.Enabled = checkBatch.Checked; } private void btnImport_Click(object sender, EventArgs e) { if (checkBatch.Checked) Import_All(); else Import_Single(); } private void Import_Single() { OpenFileDialog o = new OpenFileDialog(); o.CheckFileExists = true; o.Filter = "Supported images |*.png;*.bmp;*.jpg;*.jpeg;*.tif;*.tiff;*.gif;*.ico;*.icon|" + "BitMaP (*.bmp)|*.bmp|" + "Portable Network Graphic (*.png)|*.png|" + "JPEG (*.jpg)|*.jpg;*.jpeg|" + "Tagged Image File Format (*.tiff)|*.tiff;*.tif|" + "Graphic Interchange Format (*.gif)|*.gif|" + "Icon (*.ico)|*.ico;*.icon"; o.Multiselect = false; if (o.ShowDialog() != DialogResult.OK) return; Import_File(o.FileName, comboBank.SelectedIndex); o.FileName = null; o.Dispose(); o = null; Save_Files(); Update_Image(); } private void Import_All() { //FolderBrowserDialog o = new FolderBrowserDialog(); //o.Description = "Select the folder where the images are."; OpenFileDialog o = new OpenFileDialog(); o.CheckFileExists = true; o.Multiselect = true; if (o.ShowDialog() != DialogResult.OK) return; //string[] imgs = Directory.GetFiles(o.SelectedPath); string[] imgs = o.FileNames; for (int i = 0; i < sprite.NumBanks; i++) { string img = ""; for (int j = 0; j < imgs.Length; j++) { if (Path.GetFileNameWithoutExtension(imgs[j]) == txtBatch.Text.Replace("%s", i.ToString())) { img = imgs[j]; break; } } if (img == "") continue; Import_File(img, i); } Save_Files(); Update_Image(); o.Dispose(); o = null; } private void Import_File(string path, int banki) { Bitmap bitmap = (Bitmap)Image.FromFile(path); Console.WriteLine("Importing image {0} to bank {1}", path, banki.ToString()); OAM[] oams = (OAM[])sprite.Banks[banki].oams.Clone(); Color[][] pals = (Color[][])palette.Palette.Clone(); byte[] imgData = (byte[])image.Tiles.Clone(); // Get data from image byte[] tiles = new byte[0]; Color[] pal = new Color[0]; if (radioOriginalPal.Checked) { BMP bmp = new BMP(path); tiles = bmp.Tiles; if (image.FormatColor != bmp.FormatColor) if (image.FormatColor == ColorFormat.colors16) tiles = Helper.BitsConverter.Bits4ToByte(tiles); else if (image.FormatColor == ColorFormat.colors256) tiles = Helper.BitsConverter.BytesToBit4(tiles); pal = bmp.Palette.Palette[0]; } uint addedSize = 0; // Get the data of a oam and add to the end of the image for (int i = 0; i < oams.Length; i++) { if (!checkListOAM.GetItemChecked(i)) continue; Console.WriteLine("Processing cell {0}", oams[i].num_cell.ToString()); byte[] cellImg; if (!radioOriginalPal.Checked) { Bitmap subImg = (Bitmap)bitmap.Clone(new Rectangle( oams[i].obj1.xOffset + 256, oams[i].obj0.yOffset + 128, oams[i].width, oams[i].height), System.Drawing.Imaging.PixelFormat.DontCare); Actions.Indexed_Image(subImg, image.FormatColor, out cellImg, out pal); } else cellImg = Actions.Get_OAMdata(oams[i], tiles, image.FormatColor); // Swap palettes if "Swap palette" is checked. Try to change the colors to the old palette if (radioSwapPal.Checked) { try { Actions.Swap_Palette(ref cellImg, palette.Palette[oams[i].obj2.index_palette], pal, image.FormatColor, numThreshold.Value); } catch (Exception ex) { MessageBox.Show(ex.Message); Console.WriteLine(ex.Message); return; } } else if (radioReplacePal.Checked) // Set the palette pals[oams[i].obj2.index_palette] = pal; if (image.FormTile == TileForm.Horizontal) cellImg = Actions.HorizontalToLineal(cellImg, oams[i].width, oams[i].height, image.BPP, 8); // If Add image is checked add the new image to the end of the original file and change the tileOffset if (radioImgAdd.Checked) { uint added = 0; uint size = (sprite.Banks[banki].data_size > 0) ? sprite.Banks[banki].data_size + addedSize : (uint)imgData.Length; uint offset = Actions.Add_Image(ref imgData, cellImg, sprite.Banks[banki].data_offset, size, (uint)(0x20 << (int)sprite.BlockSize), out added) - sprite.Banks[banki].data_offset; addedSize += added; offset = (offset / 0x20) >> (int)this.sprite.BlockSize; if (offset >= 0x400) { MessageBox.Show( "The characters data size has exceeded the boundaries of what is permitted!\r\nSome characters will not be displayed."); break; } oams[i].obj2.tileOffset = offset; oams[i].obj1.flipX = 0; oams[i].obj1.flipY = 0; } else // Replace the old image { uint tileOffset = oams[i].obj2.tileOffset; tileOffset = (uint)(tileOffset << (byte)sprite.BlockSize) * 0x20 + sprite.Banks[banki].data_offset; Array.Copy(cellImg, 0, imgData, tileOffset, cellImg.Length); } } if (sprite.Banks[banki].data_size > 0) { sprite.Banks[banki].data_size += addedSize; for (int i = banki + 1; i < sprite.Banks.Length; i++) sprite.Banks[i].data_offset += addedSize; } // If everthing goes right then set the new data int height = (imgData.Length * 8 / image.BPP) / image.Width; image.Set_Tiles(imgData, image.Width, height, image.FormatColor, image.FormTile, image.CanEdit); sprite.Banks[banki].oams = oams; palette.Set_Palette(pals); bitmap.Dispose(); bitmap = null; } void Save_Files() { if (sprite.ID >= 0) { try { string spriteFile = ""; if (pluginHost is IPluginHost) spriteFile = pluginHost.Get_TempFolder() + Path.DirectorySeparatorChar + Path.GetRandomFileName() + sprite.FileName; else { SaveFileDialog o = new SaveFileDialog(); o.Title = "Save OAMs"; o.FileName = sprite.FileName; if (o.ShowDialog() != DialogResult.OK) return; spriteFile = o.FileName; } sprite.Write(spriteFile, image, palette); if (pluginHost is IPluginHost) pluginHost.ChangeFile(sprite.ID, spriteFile); } catch (Exception e) { MessageBox.Show("Error writing new sprite:\n" + e.Message); }; } if (image.ID >= 0) { try { string imageFile = ""; if (pluginHost is IPluginHost) imageFile = pluginHost.Get_TempFolder() + Path.DirectorySeparatorChar + Path.GetRandomFileName() + image.FileName; else { SaveFileDialog o = new SaveFileDialog(); o.Title = "Save image"; o.FileName = image.FileName; if (o.ShowDialog() != DialogResult.OK) return; imageFile = o.FileName; } image.Write(imageFile, palette); if (pluginHost is IPluginHost) pluginHost.ChangeFile(image.ID, imageFile); } catch (Exception e) { MessageBox.Show("Error writing new image:\n" + e.Message); }; } if (radioReplacePal.Checked && palette.ID >= 0) { try { string paletteFile = ""; if (pluginHost is IPluginHost) paletteFile = pluginHost.Get_TempFolder() + Path.DirectorySeparatorChar + Path.GetRandomFileName() + palette.FileName; else { SaveFileDialog o = new SaveFileDialog(); o.Title = "Save palette"; o.FileName = palette.FileName; if (o.ShowDialog() != DialogResult.OK) return; paletteFile = o.FileName; } palette.Write(paletteFile); if (pluginHost is IPluginHost) pluginHost.ChangeFile(palette.ID, paletteFile); } catch (Exception e) { MessageBox.Show("Error writing new palette:\n" + e.Message); }; } } private void btnOAMeditor_Click(object sender, EventArgs e) { Dialogs.OAMEditor editor; if (pluginHost is IPluginHost) editor = new Dialogs.OAMEditor(pluginHost.Get_LangXML(), sprite.Banks[comboBank.SelectedIndex], sprite, image, palette); else editor = new Dialogs.OAMEditor(lang.Element("OAMEditor"), sprite.Banks[comboBank.SelectedIndex], sprite, image, palette); if (editor.ShowDialog() != DialogResult.OK) return; Update_BankInfo(comboBank.SelectedIndex); sprite.Banks[comboBank.SelectedIndex] = editor.Bank; Update_Image(); Save_Files(); } public int SelectedBank { get { return comboBank.SelectedIndex; } } public SpriteBase Sprite { get { return sprite; } } public ImageBase Tiles { get { return image; } } public PaletteBase Palette { get { return palette; } } //private void btnSetTrans_Click(object sender, EventArgs e) //{ // Dialog.SelectModeColor dialog = new Dialog.SelectModeColor(); // if (dialog.ShowDialog() != DialogResult.OK) // return; // if (dialog.Option == 2) // { // ColorDialog o = new ColorDialog(); // o.AllowFullOpen = true; // o.AnyColor = true; // o.FullOpen = true; // if (o.ShowDialog() == DialogResult.OK) // Change_TransparencyColor(o.Color); // o.Dispose(); // } // else if (dialog.Option == 1) // selectColor = true; // else if (dialog.Option == 3) // { // Add_TransparencyColor(); // } //} //private void imgBox_MouseClick(object sender, MouseEventArgs e) //{ // if (selectColor && imgBox.Image is Image) // { // Color color = ((Bitmap)imgBox.Image).GetPixel(e.X, e.Y); // Change_TransparencyColor(color); // } //} //private void Add_TransparencyColor() //{ // int paletteIndex = ncer.cebk.banks[comboCelda.SelectedIndex].cells[0].obj2.index_palette; // // Search for unused or duplicated colors to change them with transparency color // // Search for duplicated colors // int result = Convertir.Remove_DuplicatedColors(ref paleta.pltt.palettes[paletteIndex], ref tile.rahc.tileData.tiles); // if (result == -1) // { // // Try another way: search for not used colors // result = Convertir.Remove_NotUsedColors(ref paleta.pltt.palettes[paletteIndex], ref tile.rahc.tileData.tiles); // if (result == -1) // { // MessageBox.Show(Tools.Helper.GetTranslation("Messages", "S24")); // return; // Nothing found. // } // } // // Now, the palette must have at least one transparency color, we put it in first place. // paleta.pltt.palettes[paletteIndex].colors[result] = paleta.pltt.palettes[paletteIndex].colors[0]; // paleta.pltt.palettes[paletteIndex].colors[0] = Color.FromArgb(248, 0, 248); // for (int i = 0; i < ncer.cebk.banks[comboCelda.SelectedIndex].cells.Length; i++) // { // tile.rahc.tileData.tiles = Imagen_NCER.Change_ColorCell(ncer.cebk.banks[comboCelda.SelectedIndex].cells[i], // ncer.cebk.block_size, tile, result, 0); // } // // Save the new palette file // pluginHost.Set_NCLR(paleta); // String paletteFile = System.IO.Path.GetTempFileName(); // Imagen_NCLR.Escribir(paleta, paletteFile); // pluginHost.ChangeFile((int)paleta.id, paletteFile); // // Save the new tile file // pluginHost.Set_NCGR(tile); // String tileFile = System.IO.Path.GetTempFileName(); // Imagen_NCGR.Write(tile, tileFile); // pluginHost.ChangeFile((int)tile.id, tileFile); // // Refresh the image // ActualizarImagen(); // checkTransparencia.Checked = true; //} } } ================================================ FILE: Ekona/Images/SpriteControl.designer.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 28/04/2012 14:29:12 // ----------------------------------------------------------------------- namespace Ekona.Images { partial class SpriteControl { /// /// 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 Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.imgBox = new System.Windows.Forms.PictureBox(); this.label1 = new System.Windows.Forms.Label(); this.comboBank = new System.Windows.Forms.ComboBox(); this.btnShowAll = new System.Windows.Forms.Button(); this.btnExport = new System.Windows.Forms.Button(); this.checkGrid = new System.Windows.Forms.CheckBox(); this.checkNumber = new System.Windows.Forms.CheckBox(); this.checkCellBorder = new System.Windows.Forms.CheckBox(); this.checkTransparency = new System.Windows.Forms.CheckBox(); this.checkImage = new System.Windows.Forms.CheckBox(); this.btnBgdTrans = new System.Windows.Forms.Button(); this.btnBgd = new System.Windows.Forms.Button(); this.btnImport = new System.Windows.Forms.Button(); this.btnSetTrans = new System.Windows.Forms.Button(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.checkSelectOAM = new System.Windows.Forms.CheckBox(); this.btnOAMeditor = new System.Windows.Forms.Button(); this.checkBatch = new System.Windows.Forms.CheckBox(); this.label3 = new System.Windows.Forms.Label(); this.txtBatch = new System.Windows.Forms.TextBox(); this.radioOriginalPal = new System.Windows.Forms.RadioButton(); this.radioReplacePal = new System.Windows.Forms.RadioButton(); this.radioSwapPal = new System.Windows.Forms.RadioButton(); this.numThreshold = new System.Windows.Forms.NumericUpDown(); this.label2 = new System.Windows.Forms.Label(); this.radioImgAdd = new System.Windows.Forms.RadioButton(); this.radioImgReplace = new System.Windows.Forms.RadioButton(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.label4 = new System.Windows.Forms.Label(); this.checkListOAM = new System.Windows.Forms.CheckedListBox(); this.label5 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.imgBox)).BeginInit(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numThreshold)).BeginInit(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); this.SuspendLayout(); // // imgBox // this.imgBox.Location = new System.Drawing.Point(0, 0); this.imgBox.Name = "imgBox"; this.imgBox.Size = new System.Drawing.Size(512, 256); this.imgBox.TabIndex = 0; this.imgBox.TabStop = false; this.imgBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imgBox_MouseClick); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(2, 266); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(26, 13); this.label1.TabIndex = 2; this.label1.Text = "S01"; // // comboBank // this.comboBank.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBank.FormattingEnabled = true; this.comboBank.Location = new System.Drawing.Point(72, 263); this.comboBank.Name = "comboBank"; this.comboBank.Size = new System.Drawing.Size(183, 21); this.comboBank.TabIndex = 3; this.comboBank.SelectedIndexChanged += new System.EventHandler(this.comboBank_SelectedIndexChanged); // // btnShowAll // this.btnShowAll.Location = new System.Drawing.Point(3, 290); this.btnShowAll.Name = "btnShowAll"; this.btnShowAll.Size = new System.Drawing.Size(80, 40); this.btnShowAll.TabIndex = 4; this.btnShowAll.Text = "S02"; this.btnShowAll.UseVisualStyleBackColor = true; this.btnShowAll.Click += new System.EventHandler(this.btnShowAll_Click); // // btnExport // this.btnExport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; this.btnExport.Location = new System.Drawing.Point(261, 471); this.btnExport.Name = "btnExport"; this.btnExport.Size = new System.Drawing.Size(80, 40); this.btnExport.TabIndex = 5; this.btnExport.Text = "S06"; this.btnExport.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.btnExport.UseVisualStyleBackColor = true; this.btnExport.Click += new System.EventHandler(this.btnSave_Click); // // checkGrid // this.checkGrid.AutoSize = true; this.checkGrid.Location = new System.Drawing.Point(6, 17); this.checkGrid.Name = "checkGrid"; this.checkGrid.Size = new System.Drawing.Size(46, 17); this.checkGrid.TabIndex = 6; this.checkGrid.Text = "S0C"; this.checkGrid.UseVisualStyleBackColor = true; this.checkGrid.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkNumber // this.checkNumber.AutoSize = true; this.checkNumber.Location = new System.Drawing.Point(147, 40); this.checkNumber.Name = "checkNumber"; this.checkNumber.Size = new System.Drawing.Size(45, 17); this.checkNumber.TabIndex = 7; this.checkNumber.Text = "S10"; this.checkNumber.UseVisualStyleBackColor = true; this.checkNumber.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkCellBorder // this.checkCellBorder.AutoSize = true; this.checkCellBorder.Location = new System.Drawing.Point(6, 40); this.checkCellBorder.Name = "checkCellBorder"; this.checkCellBorder.Size = new System.Drawing.Size(47, 17); this.checkCellBorder.TabIndex = 8; this.checkCellBorder.Text = "S0D"; this.checkCellBorder.UseVisualStyleBackColor = true; this.checkCellBorder.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkTransparency // this.checkTransparency.AutoSize = true; this.checkTransparency.Checked = true; this.checkTransparency.CheckState = System.Windows.Forms.CheckState.Checked; this.checkTransparency.Location = new System.Drawing.Point(147, 17); this.checkTransparency.Name = "checkTransparency"; this.checkTransparency.Size = new System.Drawing.Size(45, 17); this.checkTransparency.TabIndex = 9; this.checkTransparency.Text = "S0F"; this.checkTransparency.UseVisualStyleBackColor = true; this.checkTransparency.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkImage // this.checkImage.AutoSize = true; this.checkImage.Checked = true; this.checkImage.CheckState = System.Windows.Forms.CheckState.Checked; this.checkImage.Location = new System.Drawing.Point(6, 63); this.checkImage.Name = "checkImage"; this.checkImage.Size = new System.Drawing.Size(46, 17); this.checkImage.TabIndex = 10; this.checkImage.Text = "S0E"; this.checkImage.UseVisualStyleBackColor = true; this.checkImage.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // btnBgdTrans // this.btnBgdTrans.Enabled = false; this.btnBgdTrans.Location = new System.Drawing.Point(175, 290); this.btnBgdTrans.Name = "btnBgdTrans"; this.btnBgdTrans.Size = new System.Drawing.Size(80, 40); this.btnBgdTrans.TabIndex = 29; this.btnBgdTrans.Text = "S09"; this.btnBgdTrans.UseVisualStyleBackColor = true; this.btnBgdTrans.Click += new System.EventHandler(this.btnBgdTrans_Click); // // btnBgd // this.btnBgd.Location = new System.Drawing.Point(261, 290); this.btnBgd.Name = "btnBgd"; this.btnBgd.Size = new System.Drawing.Size(80, 40); this.btnBgd.TabIndex = 27; this.btnBgd.Text = "S08"; this.btnBgd.UseVisualStyleBackColor = true; this.btnBgd.Click += new System.EventHandler(this.btnBgd_Click); // // btnImport // this.btnImport.Location = new System.Drawing.Point(347, 471); this.btnImport.Name = "btnImport"; this.btnImport.Size = new System.Drawing.Size(80, 40); this.btnImport.TabIndex = 30; this.btnImport.Text = "S07"; this.btnImport.UseVisualStyleBackColor = true; this.btnImport.Click += new System.EventHandler(this.btnImport_Click); // // btnSetTrans // this.btnSetTrans.Location = new System.Drawing.Point(89, 290); this.btnSetTrans.Name = "btnSetTrans"; this.btnSetTrans.Size = new System.Drawing.Size(80, 40); this.btnSetTrans.TabIndex = 31; this.btnSetTrans.Text = "S0A"; this.btnSetTrans.UseVisualStyleBackColor = true; this.btnSetTrans.Click += new System.EventHandler(this.btnSetTrans_Click); // // groupBox1 // this.groupBox1.Controls.Add(this.checkSelectOAM); this.groupBox1.Controls.Add(this.checkCellBorder); this.groupBox1.Controls.Add(this.checkGrid); this.groupBox1.Controls.Add(this.checkNumber); this.groupBox1.Controls.Add(this.checkTransparency); this.groupBox1.Controls.Add(this.checkImage); this.groupBox1.Location = new System.Drawing.Point(6, 426); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(250, 83); this.groupBox1.TabIndex = 33; this.groupBox1.TabStop = false; this.groupBox1.Text = "S0B"; // // checkSelectOAM // this.checkSelectOAM.AutoSize = true; this.checkSelectOAM.Location = new System.Drawing.Point(147, 63); this.checkSelectOAM.Name = "checkSelectOAM"; this.checkSelectOAM.Size = new System.Drawing.Size(83, 17); this.checkSelectOAM.TabIndex = 11; this.checkSelectOAM.Text = "Select OAM"; this.checkSelectOAM.UseVisualStyleBackColor = true; this.checkSelectOAM.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // btnOAMeditor // this.btnOAMeditor.Location = new System.Drawing.Point(261, 425); this.btnOAMeditor.Name = "btnOAMeditor"; this.btnOAMeditor.Size = new System.Drawing.Size(80, 40); this.btnOAMeditor.TabIndex = 35; this.btnOAMeditor.Text = "S05"; this.btnOAMeditor.UseVisualStyleBackColor = true; this.btnOAMeditor.Click += new System.EventHandler(this.btnOAMeditor_Click); // // checkBatch // this.checkBatch.AutoSize = true; this.checkBatch.Location = new System.Drawing.Point(347, 315); this.checkBatch.Name = "checkBatch"; this.checkBatch.Size = new System.Drawing.Size(45, 17); this.checkBatch.TabIndex = 36; this.checkBatch.Text = "S04"; this.checkBatch.UseVisualStyleBackColor = true; this.checkBatch.CheckedChanged += new System.EventHandler(this.checkBatch_CheckedChanged); // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(344, 259); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(26, 13); this.label3.TabIndex = 37; this.label3.Text = "S03"; // // txtBatch // this.txtBatch.Enabled = false; this.txtBatch.Location = new System.Drawing.Point(347, 291); this.txtBatch.Name = "txtBatch"; this.txtBatch.Size = new System.Drawing.Size(159, 20); this.txtBatch.TabIndex = 38; // // radioOriginalPal // this.radioOriginalPal.AutoSize = true; this.radioOriginalPal.Location = new System.Drawing.Point(6, 39); this.radioOriginalPal.Name = "radioOriginalPal"; this.radioOriginalPal.Size = new System.Drawing.Size(44, 17); this.radioOriginalPal.TabIndex = 39; this.radioOriginalPal.Text = "S13"; this.radioOriginalPal.UseVisualStyleBackColor = true; // // radioReplacePal // this.radioReplacePal.AutoSize = true; this.radioReplacePal.Location = new System.Drawing.Point(6, 62); this.radioReplacePal.Name = "radioReplacePal"; this.radioReplacePal.Size = new System.Drawing.Size(44, 17); this.radioReplacePal.TabIndex = 40; this.radioReplacePal.Text = "S14"; this.radioReplacePal.UseVisualStyleBackColor = true; // // radioSwapPal // this.radioSwapPal.AutoSize = true; this.radioSwapPal.Checked = true; this.radioSwapPal.Location = new System.Drawing.Point(6, 16); this.radioSwapPal.Name = "radioSwapPal"; this.radioSwapPal.Size = new System.Drawing.Size(44, 17); this.radioSwapPal.TabIndex = 41; this.radioSwapPal.TabStop = true; this.radioSwapPal.Text = "S11"; this.radioSwapPal.UseVisualStyleBackColor = true; // // numThreshold // this.numThreshold.DecimalPlaces = 4; this.numThreshold.Increment = new decimal(new int[] { 5, 0, 0, 65536}); this.numThreshold.Location = new System.Drawing.Point(224, 16); this.numThreshold.Maximum = new decimal(new int[] { 442, 0, 0, 0}); this.numThreshold.Name = "numThreshold"; this.numThreshold.Size = new System.Drawing.Size(77, 20); this.numThreshold.TabIndex = 42; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(159, 18); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(26, 13); this.label2.TabIndex = 43; this.label2.Text = "S16"; // // radioImgAdd // this.radioImgAdd.AutoSize = true; this.radioImgAdd.Location = new System.Drawing.Point(6, 16); this.radioImgAdd.Name = "radioImgAdd"; this.radioImgAdd.Size = new System.Drawing.Size(44, 17); this.radioImgAdd.TabIndex = 44; this.radioImgAdd.Text = "S18"; this.radioImgAdd.UseVisualStyleBackColor = true; // // radioImgReplace // this.radioImgReplace.AutoSize = true; this.radioImgReplace.Checked = true; this.radioImgReplace.Location = new System.Drawing.Point(6, 38); this.radioImgReplace.Name = "radioImgReplace"; this.radioImgReplace.Size = new System.Drawing.Size(44, 17); this.radioImgReplace.TabIndex = 45; this.radioImgReplace.TabStop = true; this.radioImgReplace.Text = "S19"; this.radioImgReplace.UseVisualStyleBackColor = true; // // groupBox2 // this.groupBox2.Controls.Add(this.radioSwapPal); this.groupBox2.Controls.Add(this.radioOriginalPal); this.groupBox2.Controls.Add(this.radioReplacePal); this.groupBox2.Controls.Add(this.label2); this.groupBox2.Controls.Add(this.numThreshold); this.groupBox2.Location = new System.Drawing.Point(3, 334); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(334, 85); this.groupBox2.TabIndex = 46; this.groupBox2.TabStop = false; this.groupBox2.Text = "S15"; // // groupBox3 // this.groupBox3.Controls.Add(this.radioImgAdd); this.groupBox3.Controls.Add(this.radioImgReplace); this.groupBox3.Location = new System.Drawing.Point(347, 338); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(163, 59); this.groupBox3.TabIndex = 47; this.groupBox3.TabStop = false; this.groupBox3.Text = "S17"; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(261, 266); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(19, 13); this.label4.TabIndex = 48; this.label4.Text = "of "; // // checkListOAM // this.checkListOAM.CheckOnClick = true; this.checkListOAM.FormattingEnabled = true; this.checkListOAM.Items.AddRange(new object[] { "OAM 1", "OAM 2", "OAM 3", "OAM 4", "OAM 5"}); this.checkListOAM.Location = new System.Drawing.Point(432, 402); this.checkListOAM.Name = "checkListOAM"; this.checkListOAM.Size = new System.Drawing.Size(78, 109); this.checkListOAM.TabIndex = 49; this.checkListOAM.SelectedIndexChanged += new System.EventHandler(this.check_CheckedChanged); // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(344, 402); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(88, 26); this.label5.TabIndex = 50; this.label5.Text = "Check the OAMs\r\nto work with."; // // SpriteControl // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Transparent; this.Controls.Add(this.label5); this.Controls.Add(this.checkListOAM); this.Controls.Add(this.label4); this.Controls.Add(this.groupBox3); this.Controls.Add(this.groupBox2); this.Controls.Add(this.txtBatch); this.Controls.Add(this.label3); this.Controls.Add(this.checkBatch); this.Controls.Add(this.btnOAMeditor); this.Controls.Add(this.imgBox); this.Controls.Add(this.groupBox1); this.Controls.Add(this.btnSetTrans); this.Controls.Add(this.btnImport); this.Controls.Add(this.btnBgdTrans); this.Controls.Add(this.btnBgd); this.Controls.Add(this.btnExport); this.Controls.Add(this.btnShowAll); this.Controls.Add(this.comboBank); this.Controls.Add(this.label1); this.Name = "SpriteControl"; this.Size = new System.Drawing.Size(514, 514); ((System.ComponentModel.ISupportInitialize)(this.imgBox)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numThreshold)).EndInit(); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.PictureBox imgBox; private System.Windows.Forms.Label label1; private System.Windows.Forms.ComboBox comboBank; private System.Windows.Forms.Button btnShowAll; private System.Windows.Forms.Button btnExport; private System.Windows.Forms.CheckBox checkGrid; private System.Windows.Forms.CheckBox checkNumber; private System.Windows.Forms.CheckBox checkCellBorder; private System.Windows.Forms.CheckBox checkTransparency; private System.Windows.Forms.CheckBox checkImage; private System.Windows.Forms.Button btnBgdTrans; private System.Windows.Forms.Button btnBgd; private System.Windows.Forms.Button btnImport; private System.Windows.Forms.Button btnSetTrans; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button btnOAMeditor; private System.Windows.Forms.CheckBox checkBatch; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox txtBatch; private System.Windows.Forms.RadioButton radioOriginalPal; private System.Windows.Forms.RadioButton radioReplacePal; private System.Windows.Forms.RadioButton radioSwapPal; private System.Windows.Forms.NumericUpDown numThreshold; private System.Windows.Forms.Label label2; private System.Windows.Forms.RadioButton radioImgAdd; private System.Windows.Forms.RadioButton radioImgReplace; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.Label label4; private System.Windows.Forms.CheckedListBox checkListOAM; private System.Windows.Forms.CheckBox checkSelectOAM; private System.Windows.Forms.Label label5; } } ================================================ FILE: Ekona/Images/SpriteControl.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: Ekona/Licence.txt ================================================  GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. 'This License' refers to version 3 of the GNU General Public License. 'Copyright' also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. 'The Program' refers to any copyrightable work licensed under this License. Each licensee is addressed as 'you'. 'Licensees' and 'recipients' may be individuals or organizations. To 'modify' a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a 'modified version' of the earlier work or a work 'based on' the earlier work. A 'covered work' means either the unmodified Program or a work based on the Program. To 'propagate' a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To 'convey' a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays 'Appropriate Legal Notices' to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The 'source code' for a work means the preferred form of the work for making modifications to it. 'Object code' means any non-source form of a work. A 'Standard Interface' means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The 'System Libraries' of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A 'Major Component', in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The 'Corresponding Source' for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to 'keep intact all notices'. c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an 'aggregate' if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A 'User Product' is either (1) a 'consumer product', which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, 'normally used' refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. 'Installation Information' for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. 'Additional permissions' are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered 'further restrictions' within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An 'entity transaction' is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A 'contributor' is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's 'contributor version'. A contributor's 'essential patent claims' are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, 'control' includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a 'patent license' is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To 'grant' such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. 'Knowingly relying' means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is 'discriminatory' if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License 'or any later version' applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS ================================================ FILE: Ekona/Mathematics/NvMath.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace Ekona.Mathematics { internal static class NvMath { public const float NV_EPSILON = 0.0001f; public static float Saturate(float f) { return (float)Clamp(f, 0.0f, 1.0f); } /// Clamp between two values. public static double Clamp(double x, double a, double b) { return Math.Min(Math.Max(x, a), b); } /// Return the maximum of the three arguments. public static double Max3(double x, double a, double b) { return Math.Max(Math.Max(x, a), b); } /// Return the maximum of the three arguments. public static double Min3(double x, double a, double b) { return Math.Min(Math.Min(x, a), b); } public static void Swap(ref T o1, ref T o2) { var o3 = o1; o1 = o2; o2 = o3; } // Robust floating point comparisons: // http://realtimecollisiondetection.net/blog/?p=89 public static bool Equal(float f0, float f1, float epsilon = NV_EPSILON) { //return fabs(f0-f1) <= epsilon; return Math.Abs(f0 - f1) <= epsilon * Max3(1.0f, (float)Math.Abs(f0), (float)Math.Abs(f1)); } } } ================================================ FILE: Ekona/Mathematics/Vector3.cs ================================================ // ----------------------------------------------------------------------- // // // Copyright (C) 2016 MetLob // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // ----------------------------------------------------------------------- namespace Ekona.Mathematics { using System; using System.Collections.Generic; using System.Globalization; using System.Text; using System.Threading.Tasks; /// /// Vector 3D /// public struct Vector3 { #region Fields double x; double y; double z; #endregion #region Initialize /// /// Initialize the vector by coordinates /// /// Abscissa /// Ordinate /// Applicate public Vector3(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } /// /// Initialize the vector by coordinates /// /// Array of coodinates public Vector3(double[] coordinates) { this.x = coordinates[0]; this.y = coordinates[1]; this.z = coordinates[2]; } /// /// Initialize the vector as copy /// /// Source vector public Vector3(Vector3 vector) { x = vector.X; y = vector.Y; z = vector.Z; } #endregion #region Contants /// /// Null-vector /// public static Vector3 Zero { get { return new Vector3(0.0, 0.0, 0.0); } } /// /// X-axis /// public static Vector3 XAxis { get { return new Vector3(1.0, 0.0, 0.0); } } /// /// Y-axis /// public static Vector3 YAxis { get { return new Vector3(0.0, 1.0, 0.0); } } /// /// Z-axis /// public static Vector3 ZAxis { get { return new Vector3(0.0, 0.0, 1.0); } } #endregion #region Property /// /// Get or set the x coorinate (abscissa of the vector) /// /// The abscissa of the vector public double X { get { return x; } set { x = value; } } /// /// Get or set the x coorinate (ordinate of the vector) /// /// The ordinate of the vector public double Y { get { return y; } set { y = value; } } /// /// Get or set the x coorinate (applicate of the vector) /// /// The applicate of the vector public double Z { get { return z; } set { z = value; } } #endregion #region Static methods /// /// Addition of two vectors Vector3 /// /// First summand Vector3 /// Second summand Vector3 /// The result sum vector = v + w public static Vector3 Add(Vector3 v, Vector3 w) { return new Vector3(v.X + w.X, v.Y + w.Y, v.Z + w.Z); } /// /// Addition vector and scalar /// /// First summand Vector3 /// Second scalar summand double /// The result sum vector = v + s public static Vector3 Add(Vector3 v, double s) { return new Vector3(v.X + s, v.Y + s, v.Z + s); } /// /// The subtract of two vectors /// /// Reduces vector /// Subtracts the vector /// The subtract of two vectors /// /// result[i] = v[i] - w[i]. /// public static Vector3 Subtract(Vector3 v, Vector3 w) { return new Vector3(v.X - w.X, v.Y - w.Y, v.Z - w.Z); } /// /// Subtraction scalar from a vector /// /// Reduces vector /// Subtracts the scalar /// The difference vector and scalar /// /// result[i] = v[i] - s /// public static Vector3 Subtract(Vector3 v, double s) { return new Vector3(v.X - s, v.Y - s, v.Z - s); } /// /// Subtraction vector from a scalar /// /// Reduces the scalar (essentially vector (s,s,s)) /// Subtracts the vector /// The difference of the scalar and vector /// /// result[i] = s - v[i] /// public static Vector3 Subtract(double s, Vector3 v) { return new Vector3(s - v.X, s - v.Y, s - v.Z); } /// /// Dividing a vector to another vector /// /// Divisible vector /// Vector divider /// Quotient vector /// /// result[i] = u[i] / v[i]. /// public static Vector3 Divide(Vector3 u, Vector3 v) { return new Vector3(u.X / v.X, u.Y / v.Y, u.Z / v.Z); } /// /// The division of a vector by a scalar /// /// Divisible vector /// Divider - scalar /// Quotient vector /// /// result[i] = v[i] / s; /// public static Vector3 Divide(Vector3 v, double s) { return new Vector3(v.X / s, v.Y / s, v.Z / s); } /// /// Dividing a scalar to a vector /// /// Divisible scalar - Vector(s,s,s) /// Vector divider /// Quotient vector /// /// result[i] = s / v[i] /// public static Vector3 Divide(double s, Vector3 v) { return new Vector3(s / v.X, s / v.Y, s / v.Z); } /// /// Multiplication of a vector by a scalar /// /// Vector /// Scalar /// The vector containing the product public static Vector3 Multiply(Vector3 u, double s) { return new Vector3(u.X * s, u.Y * s, u.Z * s); } /// /// Calculating the scalar product /// /// Vector /// Vector /// Scalar containing the result of the scalar product public static double DotProduct(Vector3 u, Vector3 v) { return u.DotProduct(v); } /// /// Calculating the cross product of two vectors /// /// Vector /// Vector /// The vector containing the result of the cross product public static Vector3 CrossProduct(Vector3 u, Vector3 v) { return new Vector3( u.Y * v.Z - u.Z * v.Y, u.Z * v.X - u.X * v.Z, u.X * v.Y - u.Y * v.X); } /// /// The negate of the vector - an appeal of its component signs /// /// Source vector /// Inverted vector public static Vector3 Negate(Vector3 v) { return new Vector3(-v.X, -v.Y, -v.Z); } /// /// Testing for equivalence using the default tolerance /// /// Vector /// Vector /// True if the vector equivalent, otherwise false public static bool ApproxEqual(Vector3 v, Vector3 u) { return ApproxEqual(v, u, Double.Epsilon); } /// /// Testing for equivalence /// /// Vector /// Vector /// Tolerance (possible deviation) /// True if the vector equivalent, otherwise false public static bool ApproxEqual(Vector3 v, Vector3 u, double tolerance) { return ( (Math.Abs(v.X - u.X) <= tolerance) && (Math.Abs(v.Y - u.Y) <= tolerance) && (Math.Abs(v.Z - u.Z) <= tolerance) ); } /// /// Normalizing the vector /// /// Vector for normalization /// Normal vector public static Vector3 Normalize(Vector3 v) { v.Normalize(); return v; } /// /// Computation of the angle between the vectors /// /// Vector /// Vector /// Angle in radians public static double Angle(Vector3 vector1, Vector3 vector2) { return vector1.Angle(vector2); } /// /// Angle counterclockwise from the first vector to the second /// /// First vector /// Second vector /// Angle in radians public static double CounterclockwiseAngleBetween(Vector3 beginVector, Vector3 endVector) { // It defines a large or small angle double factor = beginVector.X * endVector.Y - endVector.X * beginVector.Y; // Arc angle double betweenAngle = Vector3.Angle(beginVector, endVector); // Adjust the angle betweenAngle = factor > 0 ? betweenAngle : 2.0 * Math.PI - betweenAngle; return betweenAngle; } /// /// Angle counterclockwise from the first vector to the second /// /// First vector /// Second vector /// The vector defines the direction of counterclockwise /// Угол public static double CounterclockwiseAngleBetween(Vector3 firstVector, Vector3 secondVector, Vector3 direction) { //Vector3d xVector = new Vector3d(firstVector); //xVector.Normalize(); //Vector3d zVector = directionAxe; //zVector.Normalize(); //Vector3d yVector = zVector.CrossProduct(xVector); //yVector.Normalize(); //// xVector, yVector, zVector образовали правую декартову систему координат //// нахожу координаты endvector в этой системе //double x = xVector.DotProduct(secondVector); //double y = yVector.DotProduct(secondVector); //double angle = Math.Acos(Math.Abs(x) / secondVector.Length()); //if (x > 0.0d) //{ // if (y < 0.0d) // angle = 2 * Math.PI - angle; //} //else // if (y > 0.0d) // angle = Math.PI - angle; // else // angle = Math.PI + angle; double angle = firstVector.Angle(secondVector); Vector3 z = Vector3.CrossProduct(firstVector, secondVector); double det = Vector3.DotProduct(z, direction); if (det < 0){ angle = 2 * Math.PI - angle; } return angle; } /// /// Get a geometric center of a array of vectors /// /// Array of points /// The geometric center public static Vector3 GetCenter(Vector3[] points) { Vector3 center = new Vector3(0, 0, 0); foreach (Vector3 point in points) center = center + point; return center / points.Length; } /// /// Changes y and z locations /// /// The vector whose coordinates change /// The vector with modified coordinates static public Vector3 SwapYZ(Vector3 vector) { return new Vector3(vector.X, vector.Z, vector.Y); } #endregion #region Methods of the vector /// /// Rotation vector (points around the origin) counterclockwise relative to the normal vector /// /// /// Angle of rotation /// /// /// The normal of the rotation plane /// /// /// Turned vector (point) /// public Vector3 Rotate(double angle, Vector3 normal) { // Switching to the normal plane coordinate system Vector3 axisZ = normal.Unit(); Vector3 axisX = axisZ.Orthogonal(); Vector3 axisY = Vector3.CrossProduct(axisZ, axisX); Vector3 thisVector = new Vector3( this.X * axisX.X + this.Y * axisX.Y + this.Z * axisX.Z, this.X * axisY.X + this.Y * axisY.Y + this.Z * axisY.Z, this.X * axisZ.X + this.Y * axisZ.Y + this.Z * axisZ.Z); // Rotating double c = Math.Cos(angle); double s = Math.Sin(angle); Vector3 rotated = new Vector3( c * thisVector.X - s * thisVector.Y, s * thisVector.X + c * thisVector.Y, thisVector.Z); // Translate rotated vector back into a common coordinate system return new Vector3( axisX.X * rotated.X + axisY.X * rotated.Y + axisZ.X * rotated.Z, axisX.Y * rotated.X + axisY.Y * rotated.Y + axisZ.Y * rotated.Z, axisX.Z * rotated.X + axisY.Z * rotated.Y + axisZ.Z * rotated.Z).Unit() * this.Length(); } /// /// Rotation point around a origin point counterclockwise relative to the normal vector /// /// /// Origin /// /// /// Angle of rotation /// /// /// The normal of the rotation plane /// /// /// Turned point /// public Vector3 Rotate(Vector3 origin, double angle, Vector3 normal) { return origin + (this - origin).Rotate(angle, normal); } /// /// Normalizing the vector (bringing it to the unit) /// /// /// It occurs when an attempt to normalize the zero vector /// public void Normalize() { double length = Length(); if (length == 0.0f) { throw new Exception("Trying to normalize a zero vector."); } x /= length; y /= length; z /= length; } /// /// Returns a unit vector drawn from this /// /// The new vector (normalized clone) /// /// It occurs when an attempt to normalize the zero vector /// public Vector3 Unit() { Vector3 result = new Vector3(this); if (result == Vector3.Zero){ return result; } result.Normalize(); return result; } /// /// Get An orthogonal vector /// /// The orthogonal vector public Vector3 Orthogonal() { Vector3 result = Vector3.Zero; int maxCoordIndex = 0; for (int i = 1; i < 3; i++) if (Math.Abs(this[i]) > Math.Abs(this[maxCoordIndex])) maxCoordIndex = i; result[(maxCoordIndex + 1) % 3] = 0; result[(maxCoordIndex + 2) % 3] = -this[maxCoordIndex]; result[maxCoordIndex] = this[(maxCoordIndex + 2) % 3]; return result.Unit() * this.Length(); } /// /// Get the length of the vector /// /// The length of the vector (Sqrt(X*X + Y*Y + Z*Z)) public double Length() { double lengthSquared = LengthSquared(); return lengthSquared == 1.0 ? 1.0 : (double)Math.Sqrt(lengthSquared); } /// /// Get the length squared of the vector /// /// The length squared (X*X + Y*Y + Z*Z) public double LengthSquared() { return (x * x + y * y + z * z); } /// /// Clamp the values of the vector at the origin using the given tolerance /// /// Tolerance public void ClampZero(double tolerance) { x = (tolerance > Math.Abs(x)) ? 0.0f : x; y = (tolerance > Math.Abs(y)) ? 0.0f : y; z = (tolerance > Math.Abs(z)) ? 0.0f : z; } /// /// Clamp the values of the vector at the origin using the default tolerance /// /// /// Tolerant value is Double.Epsilon. /// public void ClampZero() { ClampZero(Double.Epsilon); } /// /// Calculating the scalar product of vectors /// /// Second vector /// The scalar product public double DotProduct(Vector3 vector) { return this.x * vector.X + this.y * vector.Y + this.z * vector.Z; } /// /// Calculating the cross product of two vectors /// /// Second vector /// The vector containing the result of the cross product public Vector3 CrossProduct(Vector3 vector) { return new Vector3( this.Y * vector.Z - this.Z * vector.Y, this.Z * vector.X - this.X * vector.Z, this.X * vector.Y - this.Y * vector.X); } /// /// Computation of the angle between the vectors /// /// Vector /// Angle in radians public double Angle(Vector3 vector) { double cosResult = this.DotProduct(vector) / (this.Length() * vector.Length()); cosResult = (Math.Abs(cosResult) < 1.0) ? cosResult : (1.0 * Math.Sign(cosResult)); return Math.Acos(cosResult); } #endregion #region Overrided methods /// /// Returns HASP key for this property /// /// HASP 32-bit key public override int GetHashCode() { return x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode(); } /// /// Equivalence Checking with another object /// /// The object for comparison /// True if an equivalent object, false otherwise public override bool Equals(object obj) { if (obj is Vector3) { Vector3 v = (Vector3)obj; return (x == v.X) && (y == v.Y) && (z == v.Z); } return false; } /// /// Check with another vector equivalence /// /// The vector for comparison /// Tolerance /// True if an equivalent object, false otherwise public bool Equals(Vector3 vector, double tolerance) { return ((Math.Abs(x - vector.X) < tolerance) && (Math.Abs(y - vector.Y) < tolerance) && (Math.Abs(z - vector.Z) < tolerance)); } /// /// The string representation of a object /// /// String - representation of the object public override string ToString() { return string.Format(CultureInfo.InvariantCulture, "({0}; {1}; {2})", x, y, z); } #endregion #region Comparison operators /// /// Checks the equivalence of two vectors /// /// Left operand - vector /// The right operand - vector /// True if the two vectors are equal, false otherwise public static bool operator ==(Vector3 u, Vector3 v) { return u.Equals((object)v); } /// /// Checks for equality of two vectors /// /// The left operand - vector /// The right operand - vector /// True if the two vectors are different, false otherwise public static bool operator !=(Vector3 u, Vector3 v) { return !u.Equals((object)v); } public static bool operator >(Vector3 u, Vector3 v) { return ( (u.x > v.x) && (u.y > v.y) && (u.z > v.z)); } public static bool operator <(Vector3 u, Vector3 v) { return ( (u.x < v.x) && (u.y < v.y) && (u.z < v.z)); } public static bool operator >=(Vector3 u, Vector3 v) { return ( (u.x >= v.x) && (u.y >= v.y) && (u.z >= v.z)); } public static bool operator <=(Vector3 u, Vector3 v) { return ( (u.x <= v.x) && (u.y <= v.y) && (u.z <= v.z)); } #endregion #region Unary operators /// /// Inverting sign vector components /// /// Vector /// The new vector with inverted components public static Vector3 operator -(Vector3 v) { return Vector3.Negate(v); } #endregion #region Binary operators public static Vector3 operator +(Vector3 u, Vector3 v) { return Vector3.Add(u, v); } public static Vector3 operator +(Vector3 v, double s) { return Vector3.Add(v, s); } public static Vector3 operator +(double s, Vector3 v) { return Vector3.Add(v, s); } public static Vector3 operator -(Vector3 u, Vector3 v) { return Vector3.Subtract(u, v); } public static Vector3 operator -(Vector3 v, double s) { return Vector3.Subtract(v, s); } public static Vector3 operator -(double s, Vector3 v) { return Vector3.Subtract(s, v); } public static Vector3 operator *(Vector3 v, double s) { return Vector3.Multiply(v, s); } public static Vector3 operator *(Vector3 v1, Vector3 v2) { return new Vector3(v1.X * v2.X, v1.Y * v2.Y, v1.Z * v2.Z); } public static Vector3 operator *(double s, Vector3 v) { return Vector3.Multiply(v, s); } public static Vector3 operator /(Vector3 v, double s) { return Vector3.Divide(v, s); } public static Vector3 operator /(double s, Vector3 v) { return Vector3.Divide(s, v); } #endregion #region Operators access via indexes /// /// Get or set component by index ( [x, y] ). /// public double this[int index] { get { switch (index) { case 0: return x; case 1: return y; case 2: return z; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: x = value; break; case 1: y = value; break; case 2: z = value; break; default: throw new IndexOutOfRangeException(); } } } #endregion #region NvVector3 public static Vector3 Max(Vector3 a, Vector3 b) { return new Vector3(Math.Max(a.x, b.x), Math.Max(a.y, b.y), Math.Max(a.z, b.z)); } public static Vector3 Min(Vector3 a, Vector3 b) { return new Vector3(Math.Min(a.x, b.x), Math.Min(a.y, b.y), Math.Min(a.z, b.z)); } public static Vector3 Clamp(Vector3 v, float min, float max) { return new Vector3(NvMath.Clamp(v.x, min, max), NvMath.Clamp(v.y, min, max), NvMath.Clamp(v.z, min, max)); } public static Vector3 Saturate(Vector3 v) { return new Vector3(NvMath.Saturate((float)v.x), NvMath.Saturate((float)v.y), NvMath.Saturate((float)v.z)); } public static Vector3 Floor(Vector3 v) { return new Vector3(Math.Floor(v.x), Math.Floor(v.y), Math.Floor(v.z)); } public static Vector3 Ceil(Vector3 v) { return new Vector3(Math.Ceiling(v.x), Math.Ceiling(v.y), Math.Ceiling(v.z)); } public static Vector3 Lerp(Vector3 v1, Vector3 v2, float t) { float s = 1.0f - t; return new Vector3(v1.x * s + t * v2.x, v1.y * s + t * v2.y, v1.z * s + t * v2.z); } #endregion } } ================================================ FILE: Ekona/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Ekona")] [assembly: AssemblyDescription("Romhacking library")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Tinke")] [assembly: AssemblyCopyright("pleoNeX")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("fc9f854e-f2e4-4c11-af3f-ba0bd644b7c0")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("7.1.0.0")] [assembly: AssemblyFileVersion("7.1.0.0")] ================================================ FILE: Ekona/Properties/Resources.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace Ekona.Properties { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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() { } /// /// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe. /// [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("Ekona.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le /// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } } } ================================================ FILE: Ekona/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 ================================================ FILE: Ekona/Structures.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * by pleoNeX * */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace Ekona { public struct sFile { public UInt32 offset; // Offset where the files inside of the file in path public UInt32 size; // Length of the file public string name; // File name public UInt16 id; // Internal id public string path; // Path where the file is public Format format; // Format file public Object tag; // Extra information } public struct sFolder { public List files; // List of files public List folders; // List of folders public string name; // Folder name public UInt16 id; // Internal id public Object tag; // Extra information } public enum Format { Palette, Tile, Map, Cell, Animation, FullImage, Text, Video, Sound, Font, Compressed, Unknown, System, Script, Pack, Model3D, Texture } public enum FormatCompress // From DSDecmp { LZOVL, // keep this as the first one, as only the end of a file may be LZ-ovl-compressed (and overlay files are oftenly double-compressed) LZ10, LZ11, HUFF4, HUFF8, RLE, HUFF, NDS, GBA, Invalid } public struct NTFS // Nintedo Tile Format Screen { public byte nPalette; // The parameters (two bytes) is PPPP Y X NNNNNNNNNN public byte xFlip; public byte yFlip; public ushort nTile; } public struct NTFT // Nintendo Tile Format Tile { public byte[] tiles; public byte[] nPalette; // Number of the palette that this tile uses } public struct NitroHeader // Generic Header in Nitro formats { public char[] id; public UInt16 endianess; // 0xFFFE -> little endian public UInt16 constant; // Always 0x0100 public UInt32 file_size; public UInt16 header_size; // Always 0x10 public UInt16 nSection; // Number of sections } } ================================================ FILE: Images/Images/AnimationControl.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Drawing; using System.Windows.Forms; using Ekona; using Ekona.Images; namespace Images { public partial class AnimationControl : UserControl { IPluginHost pluginHost; PaletteBase palette; ImageBase image; SpriteBase sprite; NANR ani; Bitmap[] bitAni; bool isAni; // If there are animations int imgShow; public AnimationControl() { InitializeComponent(); Read_Language(); } public AnimationControl(Bitmap[] anis, int interval) { InitializeComponent(); Read_Language(); //groupBox1.Hide(); groupBox2.Hide(); btnNext.Hide(); btnPlay.Hide(); btnPrevious.Hide(); btnSave.Hide(); btnStop.Hide(); label1.Hide(); label2.Hide(); label3.Hide(); comboAni.Hide(); txtTime.Hide(); lblFullImage.Hide(); bitAni = anis; aniBox.Dock = DockStyle.Fill; aniBox.Image = bitAni[0]; tempo.Interval = interval; tempo.Enabled = true; tempo.Start(); } public AnimationControl(IPluginHost pluginHost, NANR ani) { InitializeComponent(); Read_Language(); this.pluginHost = pluginHost; this.palette = pluginHost.Get_Palette(); this.image = pluginHost.Get_Image(); this.sprite = pluginHost.Get_Sprite(); this.ani = ani; isAni = true; if (ani.Struct.abnk.nBanks == 0) { MessageBox.Show("No animations."); isAni = false; tempo.Enabled = false; comboAni.Enabled = false; btnNext.Enabled = false; btnPlay.Enabled = false; btnPrevious.Enabled = false; btnSave.Enabled = false; btnStop.Enabled = false; txtTime.Enabled = false; checkCeldas.Enabled = false; checkEntorno.Enabled = false; checkImage.Enabled = false; checkNumeros.Enabled = false; checkTransparencia.Enabled = false; } for (int i = 0; i < ani.Names.Length; i++) comboAni.Items.Add(ani.Names[i]); if (isAni) comboAni.SelectedIndex = 0; ShowInfo(); Get_Ani(); tempo.Stop(); tempo.Interval = Convert.ToInt32(txtTime.Text); if (isAni) aniBox.Image = bitAni[0]; } private void Read_Language() { Ekona.Helper.Translation.TranslateControls(this.Controls, "AnimationControl"); Ekona.Helper.Translation.TranslateControls(this.groupBox2.Controls, "AnimationControl"); } private void ShowInfo() { //listProp.Items[1].SubItems.Add(ani.Struct.abnk.nBanks.ToString()); //listProp.Items[2].SubItems.Add(ani.Struct.abnk.tFrames.ToString()); //listProp.Items[3].SubItems.Add("0x" + String.Format("{0:X}", ani.Struct.abnk.constant)); //listProp.Items[4].SubItems.Add("0x" + String.Format("{0:X}", ani.Struct.abnk.padding)); ShowInfo(0); } private void ShowInfo(int bnk) { //listProp.Items[6].SubItems[1].Text = bnk.ToString(); //listProp.Items[7].SubItems[1].Text = ani.Struct.abnk.anis[bnk].nFrames.ToString(); //listProp.Items[8].SubItems[1].Text = ani.Struct.abnk.anis[bnk].dataType.ToString(); //listProp.Items[9].SubItems[1].Text = "0x" + String.Format("{0:X}", ani.Struct.abnk.anis[bnk].unknown1); //listProp.Items[10].SubItems[1].Text = "0x" + String.Format("{0:X}", ani.Struct.abnk.anis[bnk].unknown2); //listProp.Items[11].SubItems[1].Text = "0x" + String.Format("{0:X}", ani.Struct.abnk.anis[bnk].unknown3); ShowInfo(0, 0); } private void ShowInfo(int bnk, int frame) { //listProp.Items[13].SubItems[1].Text = frame.ToString(); //listProp.Items[14].SubItems[1].Text = ani.Struct.abnk.anis[bnk].frames[frame].unknown1.ToString(); //listProp.Items[15].SubItems[1].Text = "0x" + String.Format("{0:X}", ani.Struct.abnk.anis[bnk].frames[frame].constant); //listProp.Items[17].SubItems[1].Text = ani.Struct.abnk.anis[bnk].frames[frame].data.nCell.ToString(); } private void Get_Ani() { if (!isAni) return; int id = comboAni.SelectedIndex; imgShow = 0; bitAni = new Bitmap[ani.Struct.abnk.anis[id].nFrames]; for (int i = 0; i < ani.Struct.abnk.anis[id].nFrames; i++) { bitAni[i] = (Bitmap)sprite.Get_Image(image, palette, ani.Struct.abnk.anis[id].frames[i].data.nCell, 512, 256, checkEntorno.Checked, checkCeldas.Checked, checkNumeros.Checked, checkTransparencia.Checked, checkImage.Checked); } } private void check_CheckedChanged(object sender, EventArgs e) { Get_Ani(); aniBox.Image = bitAni[imgShow]; } private void comboAni_SelectedIndexChanged(object sender, EventArgs e) { Get_Ani(); aniBox.Image = bitAni[imgShow]; ShowInfo(comboAni.SelectedIndex); } private void btnStop_Click(object sender, EventArgs e) { tempo.Stop(); btnPlay.Enabled = true; btnStop.Enabled = false; } private void btnPlay_Click(object sender, EventArgs e) { tempo.Start(); btnPlay.Enabled = false; btnStop.Enabled = true; } private void tempo_Tick(object sender, EventArgs e) { imgShow += 1; if (imgShow >= bitAni.Length) imgShow = 0; aniBox.Image = bitAni[imgShow]; } private void btnNext_Click(object sender, EventArgs e) { imgShow += 1; if (imgShow >= bitAni.Length) imgShow = 0; aniBox.Image = bitAni[imgShow]; ShowInfo(comboAni.SelectedIndex, imgShow); } private void btnPrevious_Click(object sender, EventArgs e) { imgShow -= 1; if (imgShow < 0) imgShow = bitAni.Length - 1; aniBox.Image = bitAni[imgShow]; ShowInfo(comboAni.SelectedIndex, imgShow); } private void txtTime_TextChanged(object sender, EventArgs e) { if (Convert.ToInt32(txtTime.Text) != 0) tempo.Interval = Convert.ToInt32(txtTime.Text); } private void btnSave_Click(object sender, EventArgs e) { SaveFileDialog o = new SaveFileDialog(); o.AddExtension = true; o.CheckPathExists = true; o.DefaultExt = ".png"; o.Filter = "Animation PNG (*.png)|*.png"; o.OverwritePrompt = true; if (o.ShowDialog() == DialogResult.OK) Ekona.Images.Formats.APNG.Create(bitAni, o.FileName, Convert.ToInt32(txtTime.Text) / 10, 0x00); } private void aniBox_DoubleClick(object sender, EventArgs e) { Form ventana = new Form(); ventana.FormBorderStyle = FormBorderStyle.FixedSingle; ventana.Size = new System.Drawing.Size(512, 512); //ventana.Text = Tools.Helper.GetTranslation("NANR", "S1D"); ventana.MaximizeBox = false; ventana.ShowIcon = false; ventana.BackColor = SystemColors.GradientInactiveCaption; int id = comboAni.SelectedIndex; Bitmap[] animations = new Bitmap[ani.Struct.abnk.anis[id].nFrames]; for (int i = 0; i < ani.Struct.abnk.anis[id].nFrames; i++) { animations[i] = (Bitmap)sprite.Get_Image(image, palette, ani.Struct.abnk.anis[id].frames[i].data.nCell, 512, 256, checkEntorno.Checked, checkCeldas.Checked, checkNumeros.Checked, checkTransparencia.Checked, checkImage.Checked); } AnimationControl control = new AnimationControl(animations, Convert.ToInt32(txtTime.Text)); control.Dock = DockStyle.Fill; ventana.Controls.Add(control); ventana.Show(); } } } ================================================ FILE: Images/Images/AnimationControl.designer.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ namespace Images { partial class AnimationControl { /// /// 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 Component 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(AnimationControl)); this.aniBox = new System.Windows.Forms.PictureBox(); this.tempo = new System.Windows.Forms.Timer(this.components); this.btnPlay = new System.Windows.Forms.Button(); this.imageMedia = new System.Windows.Forms.ImageList(this.components); this.comboAni = new System.Windows.Forms.ComboBox(); this.btnNext = new System.Windows.Forms.Button(); this.btnPrevious = new System.Windows.Forms.Button(); this.btnStop = new System.Windows.Forms.Button(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.checkImage = new System.Windows.Forms.CheckBox(); this.checkTransparencia = new System.Windows.Forms.CheckBox(); this.checkNumeros = new System.Windows.Forms.CheckBox(); this.checkCeldas = new System.Windows.Forms.CheckBox(); this.checkEntorno = new System.Windows.Forms.CheckBox(); this.btnSave = new System.Windows.Forms.Button(); this.txtTime = new System.Windows.Forms.MaskedTextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.lblFullImage = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.aniBox)).BeginInit(); this.groupBox2.SuspendLayout(); this.SuspendLayout(); // // aniBox // this.aniBox.Location = new System.Drawing.Point(0, 0); this.aniBox.Name = "aniBox"; this.aniBox.Size = new System.Drawing.Size(512, 256); this.aniBox.TabIndex = 0; this.aniBox.TabStop = false; this.aniBox.DoubleClick += new System.EventHandler(this.aniBox_DoubleClick); // // tempo // this.tempo.Enabled = true; this.tempo.Tick += new System.EventHandler(this.tempo_Tick); // // btnPlay // this.btnPlay.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.btnPlay.ImageIndex = 0; this.btnPlay.ImageList = this.imageMedia; this.btnPlay.Location = new System.Drawing.Point(104, 264); this.btnPlay.Name = "btnPlay"; this.btnPlay.Size = new System.Drawing.Size(25, 23); this.btnPlay.TabIndex = 2; this.btnPlay.UseVisualStyleBackColor = true; this.btnPlay.Click += new System.EventHandler(this.btnPlay_Click); // // imageMedia // this.imageMedia.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageMedia.ImageStream"))); this.imageMedia.TransparentColor = System.Drawing.Color.Transparent; this.imageMedia.Images.SetKeyName(0, "resultset_next.png"); this.imageMedia.Images.SetKeyName(1, "resultset_first.png"); this.imageMedia.Images.SetKeyName(2, "resultset_last.png"); this.imageMedia.Images.SetKeyName(3, "stop.png"); // // comboAni // this.comboAni.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboAni.FormattingEnabled = true; this.comboAni.Location = new System.Drawing.Point(359, 360); this.comboAni.Name = "comboAni"; this.comboAni.Size = new System.Drawing.Size(121, 21); this.comboAni.TabIndex = 3; this.comboAni.SelectedIndexChanged += new System.EventHandler(this.comboAni_SelectedIndexChanged); // // btnNext // this.btnNext.ImageIndex = 2; this.btnNext.ImageList = this.imageMedia; this.btnNext.Location = new System.Drawing.Point(135, 264); this.btnNext.Name = "btnNext"; this.btnNext.Size = new System.Drawing.Size(35, 23); this.btnNext.TabIndex = 4; this.btnNext.UseVisualStyleBackColor = true; this.btnNext.Click += new System.EventHandler(this.btnNext_Click); // // btnPrevious // this.btnPrevious.ImageIndex = 1; this.btnPrevious.ImageList = this.imageMedia; this.btnPrevious.Location = new System.Drawing.Point(32, 264); this.btnPrevious.Name = "btnPrevious"; this.btnPrevious.Size = new System.Drawing.Size(35, 23); this.btnPrevious.TabIndex = 5; this.btnPrevious.UseVisualStyleBackColor = true; this.btnPrevious.Click += new System.EventHandler(this.btnPrevious_Click); // // btnStop // this.btnStop.Enabled = false; this.btnStop.ImageIndex = 3; this.btnStop.ImageList = this.imageMedia; this.btnStop.Location = new System.Drawing.Point(73, 264); this.btnStop.Name = "btnStop"; this.btnStop.Size = new System.Drawing.Size(25, 23); this.btnStop.TabIndex = 6; this.btnStop.UseVisualStyleBackColor = true; this.btnStop.Click += new System.EventHandler(this.btnStop_Click); // // groupBox2 // this.groupBox2.Controls.Add(this.checkImage); this.groupBox2.Controls.Add(this.checkTransparencia); this.groupBox2.Controls.Add(this.checkNumeros); this.groupBox2.Controls.Add(this.checkCeldas); this.groupBox2.Controls.Add(this.checkEntorno); this.groupBox2.Location = new System.Drawing.Point(2, 344); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(258, 114); this.groupBox2.TabIndex = 7; this.groupBox2.TabStop = false; this.groupBox2.Text = "S03"; // // checkImage // this.checkImage.AutoSize = true; this.checkImage.Checked = true; this.checkImage.CheckState = System.Windows.Forms.CheckState.Checked; this.checkImage.Location = new System.Drawing.Point(7, 66); this.checkImage.Name = "checkImage"; this.checkImage.Size = new System.Drawing.Size(45, 17); this.checkImage.TabIndex = 4; this.checkImage.Text = "S06"; this.checkImage.UseVisualStyleBackColor = true; this.checkImage.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkTransparencia // this.checkTransparencia.AutoSize = true; this.checkTransparencia.Location = new System.Drawing.Point(141, 20); this.checkTransparencia.Name = "checkTransparencia"; this.checkTransparencia.Size = new System.Drawing.Size(45, 17); this.checkTransparencia.TabIndex = 3; this.checkTransparencia.Text = "S07"; this.checkTransparencia.UseVisualStyleBackColor = true; this.checkTransparencia.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkNumeros // this.checkNumeros.AutoSize = true; this.checkNumeros.Location = new System.Drawing.Point(141, 43); this.checkNumeros.Name = "checkNumeros"; this.checkNumeros.Size = new System.Drawing.Size(45, 17); this.checkNumeros.TabIndex = 2; this.checkNumeros.Text = "S08"; this.checkNumeros.UseVisualStyleBackColor = true; this.checkNumeros.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkCeldas // this.checkCeldas.AutoSize = true; this.checkCeldas.Location = new System.Drawing.Point(7, 43); this.checkCeldas.Name = "checkCeldas"; this.checkCeldas.Size = new System.Drawing.Size(45, 17); this.checkCeldas.TabIndex = 1; this.checkCeldas.Text = "S05"; this.checkCeldas.UseVisualStyleBackColor = true; this.checkCeldas.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // checkEntorno // this.checkEntorno.AutoSize = true; this.checkEntorno.Location = new System.Drawing.Point(7, 20); this.checkEntorno.Name = "checkEntorno"; this.checkEntorno.Size = new System.Drawing.Size(45, 17); this.checkEntorno.TabIndex = 0; this.checkEntorno.Text = "S04"; this.checkEntorno.UseVisualStyleBackColor = true; this.checkEntorno.CheckedChanged += new System.EventHandler(this.check_CheckedChanged); // // btnSave // this.btnSave.Location = new System.Drawing.Point(4, 473); this.btnSave.Name = "btnSave"; this.btnSave.Size = new System.Drawing.Size(75, 23); this.btnSave.TabIndex = 8; this.btnSave.Text = "S1C"; this.btnSave.UseVisualStyleBackColor = true; this.btnSave.Click += new System.EventHandler(this.btnSave_Click); // // txtTime // this.txtTime.BeepOnError = true; this.txtTime.Location = new System.Drawing.Point(76, 304); this.txtTime.Name = "txtTime"; this.txtTime.Size = new System.Drawing.Size(37, 20); this.txtTime.TabIndex = 9; this.txtTime.Text = "150"; this.txtTime.TextChanged += new System.EventHandler(this.txtTime_TextChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(119, 307); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(26, 13); this.label1.TabIndex = 10; this.label1.Text = "S02"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(16, 306); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(26, 13); this.label2.TabIndex = 11; this.label2.Text = "S01"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(297, 364); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(26, 13); this.label3.TabIndex = 12; this.label3.Text = "S11"; // // lblFullImage // this.lblFullImage.AutoSize = true; this.lblFullImage.Location = new System.Drawing.Point(110, 478); this.lblFullImage.Name = "lblFullImage"; this.lblFullImage.Size = new System.Drawing.Size(27, 13); this.lblFullImage.TabIndex = 13; this.lblFullImage.Text = "S1E"; // // AnimationControl // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Transparent; this.Controls.Add(this.lblFullImage); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.txtTime); this.Controls.Add(this.btnSave); this.Controls.Add(this.groupBox2); this.Controls.Add(this.btnStop); this.Controls.Add(this.btnPrevious); this.Controls.Add(this.btnNext); this.Controls.Add(this.comboAni); this.Controls.Add(this.btnPlay); this.Controls.Add(this.aniBox); this.Name = "AnimationControl"; this.Size = new System.Drawing.Size(512, 512); ((System.ComponentModel.ISupportInitialize)(this.aniBox)).EndInit(); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.PictureBox aniBox; private System.Windows.Forms.Timer tempo; private System.Windows.Forms.Button btnPlay; private System.Windows.Forms.ComboBox comboAni; private System.Windows.Forms.ImageList imageMedia; private System.Windows.Forms.Button btnNext; private System.Windows.Forms.Button btnPrevious; private System.Windows.Forms.Button btnStop; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.CheckBox checkImage; private System.Windows.Forms.CheckBox checkTransparencia; private System.Windows.Forms.CheckBox checkNumeros; private System.Windows.Forms.CheckBox checkCeldas; private System.Windows.Forms.CheckBox checkEntorno; private System.Windows.Forms.Button btnSave; private System.Windows.Forms.MaskedTextBox txtTime; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label lblFullImage; } } ================================================ FILE: Images/Images/AnimationControl.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 17, 17 104, 17 AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACO DgAAAk1TRnQBSQFMAgEBBAEAAXgBAAF4AQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wDrAAJFAUYBfQJF AUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJF AUYBfRgAAcABPwEHAf8BUAJPAZs0AAHIAVMBCwH/AcYBTQEKAf8BxAFGAQkB/wFZAlcBvxAAAVACTwGb AbYBKgEDAf8YAAHIAVMBCwH/AlABTwGbEAABWQJXAb8BuQEvAQUB/wG3ASsBBAH/AbYBKgEDAf8QAAJF AUYBfQFJAVEB2wH/AUkBUQHbAf8BSQFRAdsB/wFJAVEB2wH/AUkBUQHbAf8BSQFRAdsB/wFJAVEB2wH/ AUkBUQHbAf8BSQFRAdsB/wFJAVEB2wH/AUkBUQHbAf8BSQFRAdsB/wJFAUYBfRQAAcQBSgEJAf8BzAFi ASwB/wNRAaAwAAHNAVwBDwH/AeEBqAFsAf8B2AGRAU8B/wJZAVcBvwwAA1EBoAHGAVUBJAH/AbcBLQEE Af8YAAHNAVwBDwH/AdMBgQEzAf8DUQGgDAABWQJXAb8B0gGAAT8B/wHYAZQBTwH/AbcBLQEEAf8QAAJF AUYBfQFJAVEB2wH/AY8BoAL/AY8BoAL/AY8BoAL/AY8BoAL/AY8BoAL/AY8BoAL/AY8BoAL/AY8BoAL/ AY8BoAL/AY8BoAL/AUkBUQHbAf8CRQFGAX0UAAHJAVMBCwH/Ad8BowFmAf8BzwFlAS0B/wNRAaIsAAHP AWUBHQH/AeMBrAGDAf8B2wGXAVYB/wJZAVcBvwgAA1EBogHKAVwBKQH/AdoBlwFUAf8BuwEyAQUB/xgA Ac8BZQEdAf8B4wGsAYMB/wHTAYEBNQH/A1EBoggAAVkCVwG/AdQBhQFEAf8B2gGXAVQB/wG7ATIBBQH/ EAACRQFGAX0BSQFRAdsB/wGPAaAC/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9 Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BjwGgAv8BSQFRAdsB/wJFAUYBfRQAAc0BXwEUAf8B4QGo AW8B/wHgAaYBagH/AdABaAEuAf8DUgGpKAAB0gFsASoB/wHlAbEBigH/Ad4BnQFeAf8CWQFXAb8EAANS AakB0AFoAS4B/wHdAZ8BXwH/AdwBmwFbAf8BvQE7AQcB/xgAAdIBbAEqAf8B5QGxAYoB/wHkAa4BhgH/ AdYBhQE3Af8DUgGpBAACWQFXAb8B1gGLAUgB/wHcAZsBWwH/Ab0BOwEHAf8QAAJFAUYBfQFJAVEB2wH/ AY8BoAL/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9 Af8BJwFGAv8BjwGgAv8BSQFRAdsB/wJFAUYBfRQAAdIBaAEmAf8B5AGvAYcB/wHfAaEBYwH/AeEBqQFt Af8B0AFrATAB/wFUAlMBrAMDAQQgAAHYAYQBNgH/AegBtgGRAf8B4QGkAWgB/wJaAVgBwAJUAVMBrAHT AYEBNQH/AeABpwFrAf8B2gGXAVQB/wHeAZ8BYQH/AcABQwEIAf8YAAHYAYQBNgH/AegBtgGRAf8B4wGp AXAB/wHkAbEBiQH/AdYBhwE8Af8CVAFTAawCWgFYAcAB2QGSAU8B/wHeAZ8BYQH/AcABQwEIAf8QAAJF AUYBfQFJAVEB2wH/AY8BoAL/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEj AUEB/QH/ASMBQQH9Af8BIwFBAf0B/wGPAaAC/wFJAVEB2wH/AkUBRgF9FAAB1gGEATQB/wHnAbUBkAH/ AeABowFlAf8B4AGkAWgB/wHiAasBgQH/AdMBcAE0Af8DVgGzIAAB2QGLAUMB/wHpAbsBmAH/AeYBswGO Af8BbAFkAVkB7AHeAZ4BXgH/AeQBrgGGAf8B3wGhAWIB/wHbAZcBUwH/Ad8BowFnAf8BxgFKAQkB/xgA AdkBiwFDAf8B6QG7AZgB/wHjAaoBcAH/AeMBqwGCAf8B5QGyAYsB/wHdAZkBVwH/AWwBZAFZAewB3wGj AWUB/wHfAaMBZwH/AcYBSgEJAf8QAAJFAUYBfQFJAVEB2wH/AY8BoAL/ASMBQQH9Af8BIwFBAf0B/wEj AUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wGPAaAC/wFJAVEB2wH/ AkUBRgF9FAAB2wGOAUQB/wHqAbsBmQH/AeMBqgGAAf8B4wGrAYEB/wHkAbEBigH/AdYBiAE8Af8CYQFd AeIgAAHfAZIBTQH/AesBwAGeAf8B6QG7AZgB/wGWAXIBRAH4AeEBogFkAf8B5gGzAY4B/wHhAacBagH/ Ad0BnAFcAf8B4QGoAW8B/wHIAVMBCwH/GAAB3wGSAU0B/wHrAcABngH/AeYBsAGHAf8B5gGxAYkB/wHo AbcBkgH/Ad8BnQFfAf8BlAFcAT4B+AHiAasBgQH/AeEBqAFvAf8ByAFTAQsB/xAAAkUBRgF9AUkBUQHb Af8BjwGgAv8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFB Af0B/wEjAUEB/QH/AY8BoAL/AUkBUQHbAf8CRQFGAX0UAAHhAZcBUwH/AewBwQGhAf8B6AG3AZIB/wHp AbsBmQH/Ad0BlwFSAf8CUgFQAaQkAAHhAZsBVgH/Ae0BxAGlAf8B6AG0AY8B/wJZAVcBvwJSAVABpAHd AZcBVQH/AeYBtQGQAf8B4gGpAW8B/wHkAa0BhQH/Ac0BXAEPAf8YAAHhAZsBVgH/Ae0BxAGlAf8B6gG6 AZcB/wHqAb4BngH/Ad8BnQFaAf8CUgFQAaQCWQFXAb8B4AGiAWQB/wHkAa0BhQH/Ac0BXAEPAf8QAAJF AUYBfQFJAVEB2wH/AY8BoAL/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEj AUEB/QH/ASMBQQH9Af8BIwFBAf0B/wGPAaAC/wFJAVEB2wH/AkUBRgF9FAAB4gGgAV8B/wHuAccBqAH/ Ae0BwgGjAf8B4wGkAWYB/wNQAZ4oAAHiAaABYQH/Ae8ByAGrAf8B6gG5AZYB/wNZAb8EAANQAZ4B3wGa AVcB/wHnAbUBjwH/AeYBsgGNAf8BzwFlAR0B/xgAAeIBoAFhAf8B7wHIAasB/wHuAcMBpgH/AeUBpgFr Af8DUAGeBAACWQFXAb8B4wGoAWwB/wHmAbIBjQH/Ac8BZQEdAf8QAAJFAUYBfQFJAVEB2wH/AY8BoAL/ ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFB Af0B/wGPAaAC/wFJAVEB2wH/AkUBRgF9FAAB5gGnAWoB/wHvAcgBrQH/AegBsAGHAf8DSwGOLAAB5gGm AWgB/wHwAcsBsAH/AewBvgGdAf8DWQG/CAADSwGOAd8BnQFaAf8B5wG0AZAB/wHSAWwBKgH/GAAB5gGm AWgB/wHvAcgBrQH/AegBsAGIAf8DSwGOCAACWQFXAb8B5AGuAYQB/wHoAbcBlAH/AdIBbAEqAf8QAAJF AUYBfQFJAVEB2wH/AY8BoAL/ASMBQQH9Af8BIwFBAf0B/wEjAUEB/QH/ASMBQQH9Af8BIwFBAf0B/wEj AUEB/QH/ASMBQQH9Af8BIwFBAf0B/wGPAaAC/wFJAVEB2wH/AkUBRgF9FAAB6gGrAYAB/wHLAYwBfAH+ A0kBhzAAAegBqwGAAf8B8gHOAbQB/wHuAcEBogH/A1kBvwwAA0kBhwG8AX8BSgH+AdgBhAE2Af8YAAHo AasBgAH/AcsBigF7Af4DSQGHDAADWQG/AecBswGLAf8B6gG8AZoB/wHYAYQBNgH/EAACRQFGAX0BSQFR AdsB/wGPAaAC/wGPAaAC/wGPAaAC/wGPAaAC/wGPAaAC/wGPAaAC/wGPAaAC/wGPAaAC/wGPAaAC/wGP AaAC/wFJAVEB2wH/AkUBRgF9FAABgwF0AWUB9ANJAYc0AAHqAasBgAH/AeoBqwGAAf8B6AGpAW8B/wNZ Ab8QAANJAYcBfwFlAVIB9BgAAYMBdAFlAfQDSQGHEAADWQG/Ad8BlQFRAf8B3QGQAUoB/wHZAYsBQwH/ EAACRQFGAX0BSQFRAdsB/wFJAVEB2wH/AUkBUQHbAf8BSQFRAdsB/wFJAVEB2wH/AUkBUQHbAf8BSQFR AdsB/wFJAVEB2wH/AUkBUQHbAf8BSQFRAdsB/wFJAVEB2wH/AUkBUQHbAf8CRQFGAX3MAAJFAUYBfQJF AUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJFAUYBfQJF AUYBff8ACQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EADv8BwAEDAfMB/wHh AucBhwGAAQEB8QH/AeEBxwHjAYcBgAEBAfAB/wHhAYcB4QGHAYABAQHwAX8B4QEHAeABhwGAAQEB8AEf AeABBwHgAQcBgAEBAfABHwHgAQcB4AEHAYABAQHwAR8B4AEHAeABBwGAAQEB8AE/AeABBwHgAQcBgAEB AfABfwHhAQcB4AGHAYABAQHwAf8B4QGHAeEBhwGAAQEB8QH/AeEBxwHjAYcBgAEBAfMB/wHhAucBhwGA AQEG/wHAAQMI/ws= 51 ================================================ FILE: Images/Images/DSIG.cs ================================================ // ---------------------------------------------------------------------- // // Copyright (C) 2012 // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // pleoNeX // benito356@gmail.com // 06/07/2012 2:19:41 // ----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.IO; using Ekona; using Ekona.Images; namespace Images { public class DSIG : ImageBase { sDSIG dsig; PaletteBase palette; public DSIG(sFile file) : base(file.path, file.id, file.name) { } public DSIG(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string fileIn) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); dsig = new sDSIG(); dsig.id = br.ReadChars(4); dsig.type = br.ReadByte(); if (dsig.type != 0x02) dsig.unk4 = br.ReadByte(); dsig.num_colors = br.ReadByte(); // Number of palettes of 16 colors dsig.unk1 = br.ReadByte(); dsig.unk2 = br.ReadUInt16(); dsig.unk3 = br.ReadUInt16(); ColorFormat depth = (dsig.unk1 == 0 ? ColorFormat.colors16 : ColorFormat.colors256); if (dsig.unk1 != 0) System.Windows.Forms.MessageBox.Show("Found different depth!"); TileForm form = (dsig.unk4 == 0x10 ? TileForm.Horizontal : TileForm.Lineal); Color[] colors = Actions.BGR555ToColor(br.ReadBytes(dsig.num_colors * 2)); palette = new RawPalette(colors, false, depth, FileName); byte[] tiles = br.ReadBytes((int)(br.BaseStream.Length - br.BaseStream.Position)); Set_Tiles(tiles, 0x100, 0xc0, depth, form, false); br.Close(); } public override void Write(string fileOut, PaletteBase palette) { throw new NotImplementedException(); } public PaletteBase Palette { get { return palette; } } public struct sDSIG { public char[] id; public byte type; public byte unk4; public byte num_colors; public byte unk1; public ushort unk2; public ushort unk3; } } } ================================================ FILE: Images/Images/Images.csproj ================================================  {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B} Debug x86 Library Images Images v4.8 Properties OnBuildSuccess False False 4 false False False AnyCPU False Auto 4194304 4096 ..\..\..\Tinke\bin\Debug\Plugins\ true Full False True DEBUG;TRACE Project bin\Release\ False None True False TRACE true ..\..\..\Tinke\bin\Debug\Plugins\ DEBUG;TRACE false 4096 Full AnyCPU false false none bin\Release\ TRACE true 4096 none AnyCPU true bin\x64\Debug\ DEBUG;TRACE true 4096 Full x64 false false false bin\x64\Release\ TRACE true 4096 None x64 false false false False ..\..\..\..\..\..\Desktop\NDS\NDS Main Tools\Tinke FS Explorer\Tinke 0.9.2dev\Plugins\Images.dll 3.5 3.5 3.5 UserControl AnimationControl.cs True True Resources.resx AnimationControl.cs ResXFileCodeGenerator Resources.Designer.cs Always PreserveNewest {736010d3-f72f-4c56-b8d2-2edd1b8f3a87} Ekona ================================================ FILE: Images/Images/Images.xml ================================================  Interval: miliseconds Guides options Show guides Show cells Show image Transparency Show numbers Animation: Save Double-click to the animation to see it in full size Intervalo: milisegundos Opciones de entorno Mostrar entorno Mostrar celdas Mostrar imagen Transparencia Mostrar números Animación Guardar Haz doble click en la animación para verla a tamaño real. Intervalle : millisecondes Options de l'environnement Montrer environnement Montrer cellules Montrer image Transparence Montrer numéros Animation Enregistrer Double-cliquez sur l'image pour la voir en taille réelle. ================================================ FILE: Images/Images/ImagesLang.xml ================================================  Haga doble click en la imagen para verla a tamaño real. Propiedades Posición Campo Valor Desconocido Nº secciones ID Sección 1 Tamaño Tiles Y Tiles X Formato Desconocido Desconocido Tamaño píxels datos Desconocido Inicio: Ancho: Alto: Orden de tiles: Guardar Sin tiles Horizontal Vertical Imagen a tamaño real Zoom Color de fondo Quitar Transparencia Zoom Color de fondo Quitar Importar Seleccionar color transparente ¿Seleccionar color haciendo click en la imagen? Nº de paleta: de Mostrar todas las paletas Guardar Importar Byte de inicio: Profundidad: Visor de paletas Paleta Number of palette: of Show all palettes Save Import Offset: Depth: Palettes viewer Palette Double-click to see the full image. Properties Offset Property Content Unknown Number of sections ID Section 1 Lenght Tiles Y Tiles X Tile form Unknown Unknown Length of pixels data Unknown Offset: Width: Height: Image pattern: Save No tiled Horizontal Vertical Full size image Zoom Background colour Remove Transparency Zoom Background colour Remove Import Set transparent color Choose color doing click on the image? Numéro de palette : de Montrer toutes les palettes Sauvegarder Importer Octet de départ : Profondeur Visionneuse de palettes Palette Double-cliquez sur l'image pour la voir en taille réelle. Propriétés Position Champ Valeur Inconnu Nombre de sections ID Section 1 Taille Tuiles Y Tuiles X Format Inconnu Inconnu Taille données de pixels Inconnu Début : Longueur : Hauteur : Ordre des tuiles : Sauvegarder Aucune tuile Horizontal Vertical Image en taille réelle Zoom Couleur du fond Supprimer Transparence Zoom Couleur du fond Supprimer Importer Fixer la couleur transparente Choisir la couleur en fesant un clic sur l'image ? ================================================ FILE: Images/Images/Licence.txt ================================================  GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. 'This License' refers to version 3 of the GNU General Public License. 'Copyright' also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. 'The Program' refers to any copyrightable work licensed under this License. Each licensee is addressed as 'you'. 'Licensees' and 'recipients' may be individuals or organizations. To 'modify' a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a 'modified version' of the earlier work or a work 'based on' the earlier work. A 'covered work' means either the unmodified Program or a work based on the Program. To 'propagate' a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To 'convey' a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays 'Appropriate Legal Notices' to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The 'source code' for a work means the preferred form of the work for making modifications to it. 'Object code' means any non-source form of a work. A 'Standard Interface' means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The 'System Libraries' of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A 'Major Component', in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The 'Corresponding Source' for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to 'keep intact all notices'. c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an 'aggregate' if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A 'User Product' is either (1) a 'consumer product', which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, 'normally used' refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. 'Installation Information' for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. 'Additional permissions' are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered 'further restrictions' within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An 'entity transaction' is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A 'contributor' is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's 'contributor version'. A contributor's 'essential patent claims' are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, 'control' includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a 'patent license' is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To 'grant' such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. 'Knowingly relying' means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is 'discriminatory' if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License 'or any later version' applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS ================================================ FILE: Images/Images/Main.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Text; using System.IO; using System.Windows.Forms; using Ekona; using Ekona.Images; namespace Images { public class Main : IPlugin { IPluginHost pluginHost; NANR nanr; // TEMP public void Initialize(IPluginHost pluginHost) { this.pluginHost = pluginHost; } public Format Get_Format(sFile file, byte[] magic) { file.name = file.name.ToUpper(); string ext = ""; if (magic is Byte[]) ext = new String(System.Text.Encoding.ASCII.GetChars(magic)); // Palettes if (file.name.EndsWith(".NTFP") || file.name.EndsWith(".PLT")) return Format.Palette; if (ext == "NCLR" || ext == "RLCN") return Format.Palette; if (ext == "NCCL") return Format.Palette; if (file.name.EndsWith(".NBFP")) return Format.Palette; if (file.name.EndsWith(".NCL.L") && magic[0] != 0x10) return Format.Palette; // Tiles if (ext == "NCCG") return Format.Tile; if (ext == "RGCN" || ext == "RBCN") return Format.Tile; if (file.name.EndsWith(".NTFT") || file.name.EndsWith(".CHAR")) return Format.Tile; if (file.name.EndsWith(".NBFC")) return Format.Tile; if (file.name.EndsWith(".NCG.L") && magic[0] != 0x10) return Format.Tile; // Map if (ext == "NCSC") return Format.Map; if (ext == "RCSN") return Format.Map; if (file.name.EndsWith(".NBFS")) return Format.Map; if (file.name.EndsWith(".NSC.L") && magic[0] != 0x10) return Format.Map; // Sprites if (file.name.EndsWith(".NCE.L") && magic[0] != 0x10) return Format.Cell; if (ext == "RECN") return Format.Cell; if (ext == "NCOB") return Format.Cell; // Animations if (ext == "RNAN") return Format.Animation; return Format.Unknown; } public Control Show_Info(sFile file) { Format format = Read2(file); if (format == Format.Palette) return new PaletteControl(pluginHost, pluginHost.Get_Palette()); if (format == Format.Tile && pluginHost.Get_Palette().Loaded) return new ImageControl(pluginHost, pluginHost.Get_Image(), pluginHost.Get_Palette()); if (format == Format.Map && pluginHost.Get_Palette().Loaded && pluginHost.Get_Image().Loaded) return new ImageControl(pluginHost, pluginHost.Get_Image(), pluginHost.Get_Palette(), pluginHost.Get_Map()); if (format == Format.Cell && pluginHost.Get_Palette().Loaded && pluginHost.Get_Image().Loaded) return new SpriteControl(pluginHost, pluginHost.Get_Sprite()); if (format == Format.Animation && pluginHost.Get_Palette().Loaded && pluginHost.Get_Image().Loaded && pluginHost.Get_Sprite().Loaded) return new AnimationControl(pluginHost, nanr); return new Control(); } public void Read(sFile file) { Read2(file); } public Format Read2(sFile file) { string ext = ""; if (file.size >= 4) { using (BinaryReader br = new BinaryReader(File.OpenRead(file.path))) { ext = new String(Encoding.ASCII.GetChars(br.ReadBytes(4))); br.Close(); } } // Palette if (file.name.ToUpper().EndsWith(".NTFP") || file.name.ToUpper().EndsWith(".PLT")) { RawPalette palette = new RawPalette(file.path, file.id, true, 0, -1, file.name); pluginHost.Set_Palette(palette); return Format.Palette; } else if (ext == "RLCN") { PaletteBase palette = new NCLR(file.path, file.id, file.name); pluginHost.Set_Palette(palette); return Format.Palette; } else if (ext == "NCCL") { NCCL palette = new NCCL(file.path, file.id, file.name); pluginHost.Set_Palette(palette); return Format.Palette; } else if (file.name.ToUpper().EndsWith(".NBFP")) { RawPalette palette = new RawPalette(file.path, file.id, true, 0, -1, file.name); pluginHost.Set_Palette(palette); return Format.Palette; } else if (file.name.ToUpper().EndsWith(".NCL.L") && ext[0] != '\x10') { RawPalette palette = new RawPalette(file.path, file.id, true, 0, -1, file.name); pluginHost.Set_Palette(palette); return Format.Palette; } // Tile ColorFormat depth = ColorFormat.colors256; if (pluginHost.Get_Palette().Loaded) depth = pluginHost.Get_Palette().Depth; if (file.name.ToUpper().EndsWith(".NTFT")) { RawImage image = new RawImage(file.path, file.id, TileForm.Lineal, depth, true, 0, -1, file.name); pluginHost.Set_Image(image); return Format.Tile; } else if (ext == "RGCN" || ext == "RBCN") { NCGR ncgr = new NCGR(file.path, file.id, file.name); pluginHost.Set_Image(ncgr); return Format.Tile; } else if (ext == "NCCG") { NCCG image = new NCCG(file.path, file.id, file.name); pluginHost.Set_Image(image); return Format.Tile; } else if (file.name.ToUpper().EndsWith(".NBFC") || file.name.ToUpper().EndsWith(".CHAR")) { RawImage image = new RawImage(file.path, file.id, TileForm.Horizontal, depth, true, 0, -1, file.name); pluginHost.Set_Image(image); return Format.Tile; } else if (file.name.ToUpper().EndsWith(".NCG.L") && ext[0] != '\x10') { RawImage image = new RawImage(file.path, file.id, TileForm.Horizontal, depth, true, 0, -1, file.name); pluginHost.Set_Image(image); return Format.Tile; } // Map if (file.name.ToUpper().EndsWith(".NBFS")) { RawMap map = new RawMap(file.path, file.id, 0, -1, true, file.name); pluginHost.Set_Map(map); return Format.Map; } else if (ext == "RCSN") { NSCR nscr = new NSCR(file.path, file.id, file.name); pluginHost.Set_Map(nscr); return Format.Map; } else if (ext == "NCSC") { NCSC map = new NCSC(file.path, file.id, file.name); pluginHost.Set_Map(map); return Format.Map; } else if (file.name.ToUpper().EndsWith(".NSC.L") && ext[0] != '\x10') { RawMap map = new RawMap(file.path, file.id, 0, -1, true, file.name); pluginHost.Set_Map(map); return Format.Map; } // Sprite if (ext == "NCOB") { NCOB sprite = new NCOB(file.path, file.id, file.name); pluginHost.Set_Sprite(sprite); pluginHost.Set_Image(sprite.Image); return Format.Cell; } else if (ext == "RECN") { NCER ncer = new NCER(file.path, file.id, file.name); pluginHost.Set_Sprite(ncer); return Format.Cell; } // Animation if (ext == "RNAN") { nanr = new NANR(pluginHost, file.path, file.id); return Format.Animation; } return Format.Unknown; } public String Pack(ref sFolder unpacked, sFile file) { return null; } public sFolder Unpack(sFile file) { return new sFolder(); } } } ================================================ FILE: Images/Images/NANR.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Ekona; using Ekona.Images; namespace Images { public class NANR { IPluginHost pluginHost; string fileName; int id; sNANR nanr; public NANR(IPluginHost pluginHost, string file, int id) { this.pluginHost = pluginHost; fileName = Path.GetFileName(file); this.id = id; Read(file); } public void Read(string file) { BinaryReader br = new BinaryReader(File.OpenRead(file)); nanr = new sNANR(); // Generic header nanr.header.id = br.ReadChars(4); nanr.header.endianess = br.ReadUInt16(); if (nanr.header.endianess == 0xFFFE) nanr.header.id.Reverse(); nanr.header.constant = br.ReadUInt16(); nanr.header.file_size = br.ReadUInt32(); nanr.header.header_size = br.ReadUInt16(); nanr.header.nSection = br.ReadUInt16(); #region ABNK // ABNK (Animation BaNK) nanr.abnk.id = br.ReadChars(4); nanr.abnk.length = br.ReadUInt32(); nanr.abnk.nBanks = br.ReadUInt16(); nanr.abnk.tFrames = br.ReadUInt16(); nanr.abnk.constant = br.ReadUInt32(); nanr.abnk.offset1 = br.ReadUInt32(); nanr.abnk.offset2 = br.ReadUInt32(); nanr.abnk.padding = br.ReadUInt64(); nanr.abnk.anis = new sNANR.Animation[nanr.abnk.nBanks]; // Bank header for (int i = 0; i < nanr.abnk.nBanks; i++) { br.BaseStream.Position = 0x30 + i * 0x10; sNANR.Animation ani = new sNANR.Animation(); ani.nFrames = br.ReadUInt32(); ani.dataType = br.ReadUInt16(); ani.unknown1 = br.ReadUInt16(); ani.unknown2 = br.ReadUInt16(); ani.unknown3 = br.ReadUInt16(); ani.offset_frame = br.ReadUInt32(); ani.frames = new sNANR.Frame[ani.nFrames]; // Frame header for (int j = 0; j < ani.nFrames; j++) { br.BaseStream.Position = 0x18 + nanr.abnk.offset1 + j * 0x08 + ani.offset_frame; sNANR.Frame frame = new sNANR.Frame(); frame.offset_data = br.ReadUInt32(); frame.unknown1 = br.ReadUInt16(); frame.constant = br.ReadUInt16(); // Frame data br.BaseStream.Position = 0x18 + nanr.abnk.offset2 + frame.offset_data; frame.data.nCell = br.ReadUInt16(); ani.frames[j] = frame; } nanr.abnk.anis[i] = ani; } #endregion #region LABL br.BaseStream.Position = nanr.header.header_size + nanr.abnk.length; List offsets = new List(); List names = new List(); nanr.labl.names = new string[nanr.abnk.nBanks]; nanr.labl.id = br.ReadChars(4); if (new String(nanr.labl.id) != "LBAL") goto Tercera; nanr.labl.section_size = br.ReadUInt32(); // Offset for (int i = 0; i < nanr.abnk.nBanks; i++) { uint offset = br.ReadUInt32(); if (offset >= nanr.labl.section_size - 8) { br.BaseStream.Position -= 4; break; } offsets.Add(offset); } nanr.labl.offset = offsets.ToArray(); // Names for (int i = 0; i < nanr.labl.offset.Length; i++) { names.Add(""); byte c = br.ReadByte(); while (c != 0x00) { names[i] += (char)c; c = br.ReadByte(); } } Tercera: for (int i = 0; i < nanr.abnk.nBanks; i++) if (names.Count > i) nanr.labl.names[i] = names[i]; else nanr.labl.names[i] = i.ToString(); #endregion #region UEXT nanr.uext.id = br.ReadChars(4); if (new String(nanr.uext.id) != "TXEU") goto Fin; nanr.uext.section_size = br.ReadUInt32(); nanr.uext.unknown = br.ReadUInt32(); #endregion Fin: br.Close(); } public String[] Names { get { return nanr.labl.names; } } public sNANR Struct { get { return nanr; } } public struct sNANR { public NitroHeader header; public ABNK abnk; public LABL labl; public UEXT uext; public struct ABNK { public char[] id; public uint length; public ushort nBanks; public ushort tFrames; public uint constant; public uint offset1; public uint offset2; public ulong padding; public Animation[] anis; } public struct Animation { public uint nFrames; public ushort dataType; public ushort unknown1; public ushort unknown2; public ushort unknown3; public uint offset_frame; public Frame[] frames; } public struct Frame { public uint offset_data; public ushort unknown1; public ushort constant; public Frame_Data data; } public struct Frame_Data { public ushort nCell; // DataType 1 public ushort[] transform; // See http://nocash.emubase.de/gbatek.htm#lcdiobgrotationscaling public short xDisplacement; public short yDisplacement; //DataType 2 (the Displacement above) public ushort constant; // 0xBEEF } public struct LABL { public char[] id; public UInt32 section_size; public UInt32[] offset; public string[] names; } public struct UEXT { public char[] id; public UInt32 section_size; public UInt32 unknown; } } } } ================================================ FILE: Images/Images/NCCG.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using System.Windows.Forms; using Ekona; using Ekona.Images; namespace Images { public class NCCG : ImageBase { sNCCG nccg; public NCCG(string file, int id, string fileName) : base(file, id, fileName) { } public override void Read(string file) { // Image with: // Horizontal as tile form BinaryReader br = new BinaryReader(File.OpenRead(file)); nccg = new sNCCG(); // Nitro generic header nccg.generic.id = br.ReadChars(4); nccg.generic.endianess = br.ReadUInt16(); nccg.generic.constant = br.ReadUInt16(); nccg.generic.file_size = br.ReadUInt32(); nccg.generic.header_size = br.ReadUInt16(); nccg.generic.nSection = br.ReadUInt16(); // CHAR section nccg.charS.type = br.ReadChars(4); nccg.charS.size = br.ReadUInt32(); nccg.charS.width = br.ReadUInt32(); nccg.charS.height = br.ReadUInt32(); nccg.charS.depth = br.ReadUInt32(); byte[] tiles = br.ReadBytes((int)(nccg.charS.size - 0x14)); // ATTR section nccg.attr.type = br.ReadChars(4); nccg.attr.size = br.ReadUInt32(); nccg.attr.width = br.ReadUInt32(); nccg.attr.height = br.ReadUInt32(); nccg.attr.unknown = br.ReadBytes((int)nccg.attr.size - 0x10); // LINK section nccg.link.type = br.ReadChars(4); nccg.link.size = br.ReadUInt32(); nccg.link.link = new String(br.ReadChars((int)nccg.link.size - 0x08)); if (nccg.generic.nSection == 4) { // CMNT section nccg.cmnt.type = br.ReadChars(4); nccg.cmnt.size = br.ReadUInt32(); nccg.cmnt.unknown = br.ReadBytes((int)nccg.cmnt.size - 0x08); } br.Close(); Set_Tiles(tiles, (int)nccg.charS.width * 8, (int)nccg.charS.height * 8, (nccg.charS.depth == 0 ? ColorFormat.colors16 : ColorFormat.colors256), TileForm.Horizontal, false); } public override void Write(string fileOut, PaletteBase palette) { Console.WriteLine("Write Tiles - NCCG"); } public struct sNCCG { public NitroHeader generic; public CHAR charS; public ATTR attr; public LINK link; public CMNT cmnt; public struct CHAR { public char[] type; public uint size; public uint width; public uint height; public uint depth; } public struct ATTR { public char[] type; public uint size; public uint width; public uint height; public byte[] unknown; } public struct LINK { public char[] type; public uint size; public string link; } public struct CMNT { public char[] type; public uint size; public byte[] unknown; } } } } ================================================ FILE: Images/Images/NCCL.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using Ekona; using Ekona.Images; namespace Images { public class NCCL : PaletteBase { sNCCL nccl; public NCCL(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string file) { BinaryReader br = new BinaryReader(File.OpenRead(file)); nccl = new sNCCL(); // Generic header nccl.generic.id = br.ReadChars(4); // Should be NCCL nccl.generic.endianess = br.ReadUInt16(); nccl.generic.constant = br.ReadUInt16(); nccl.generic.file_size = br.ReadUInt32(); nccl.generic.header_size = br.ReadUInt16(); nccl.generic.nSection = br.ReadUInt16(); // PALT (PALeTte) section nccl.palt.type = br.ReadChars(4); // Should be PALT nccl.palt.size = br.ReadUInt32(); nccl.palt.num_colors = br.ReadUInt32(); // Number of colors per palette nccl.palt.num_palette = br.ReadUInt32(); Color[][] palette = new Color[nccl.palt.num_palette][]; for (int i = 0; i < nccl.palt.num_palette; i++) { // Each color is 2bytes (BGR555 encoding) palette[i] = Actions.BGR555ToColor(br.ReadBytes((int)nccl.palt.num_colors * 2)); } // CMNT section if (nccl.generic.nSection == 2) { nccl.cmnt.type = br.ReadChars(4); nccl.cmnt.size = br.ReadUInt32(); nccl.cmnt.unknown = br.ReadBytes((int)nccl.cmnt.size - 8); } br.Close(); Set_Palette(palette, false); this.fileName = Path.GetFileName(file); } public override void Write(string fileOut) { System.Windows.Forms.MessageBox.Show("Not supported"); } public struct sNCCL { public NitroHeader generic; // Generic header public PALT palt; public CMNT cmnt; public struct PALT { public char[] type; // Should be PALT public uint size; public uint num_colors; // Number of colors per palette public uint num_palette; } public struct CMNT { public char[] type; // Should be CMNT public uint size; // Should be 0x0C public byte[] unknown; } } } } ================================================ FILE: Images/Images/NCE.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using Ekona; namespace Images { public static class NCE { //public static NCER Read(string file, IPluginHost pluginHost) //{ // BinaryReader br = new BinaryReader(File.OpenRead(file)); // NCER nce = new NCER(); // br.BaseStream.Position += 4; // uint num_banks = br.ReadUInt32() / 0x08; // br.BaseStream.Position = 0; // nce.cebk.block_size = 0; // nce.cebk.nBanks = (ushort)num_banks; // nce.labl.names = new string[nce.cebk.nBanks]; // nce.cebk.banks = new Bank[num_banks]; // for (int i = 0; i < num_banks; i++) // { // nce.cebk.banks[i] = new Bank(); // nce.cebk.banks[i].nCells = br.ReadUInt16(); // nce.cebk.banks[i].unknown1 = br.ReadUInt16(); // nce.cebk.banks[i].cell_offset = br.ReadUInt32(); // long nextBank_pos = br.BaseStream.Position; // br.BaseStream.Position = nce.cebk.banks[i].cell_offset; // nce.cebk.banks[i].cells = new Cell[nce.cebk.banks[i].nCells]; // for (int c = 0; c < nce.cebk.banks[i].nCells; c++) // { // nce.cebk.banks[i].cells[c] = new Cell(); // nce.cebk.banks[i].cells[c].obj0.yOffset = br.ReadByte(); // nce.cebk.banks[i].cells[c].obj0.shape = (byte)(br.ReadByte() >> 6); // nce.cebk.banks[i].cells[c].obj1.xOffset = br.ReadByte(); // nce.cebk.banks[i].cells[c].obj1.size = (byte)(br.ReadByte() >> 6); // nce.cebk.banks[i].cells[c].obj2.tileOffset = br.ReadByte(); // nce.cebk.banks[i].cells[c].obj2.index_palette = (byte)(br.ReadByte() >> 4); // Size size = pluginHost.Size_NCER( // nce.cebk.banks[i].cells[c].obj0.shape, // nce.cebk.banks[i].cells[c].obj1.size); // nce.cebk.banks[i].cells[c].height = (ushort)size.Height; // nce.cebk.banks[i].cells[c].width = (ushort)size.Width; // } // br.BaseStream.Position = nextBank_pos; // nce.labl.names[i] = "Bank " + i.ToString(); // } // br.Close(); // return nce; //} } } ================================================ FILE: Images/Images/NCER.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using Ekona; using Ekona.Images; namespace Images { public class NCER : SpriteBase { sNCER ncer; public NCER(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string fileIn) { //System.Xml.Linq.XElement xml = Tools.Helper.GetTranslation("NCER"); //Console.WriteLine("NCER {0}
", Path.GetFileName(file));
            BinaryReader br = new BinaryReader(File.OpenRead(fileIn));
            ncer = new sNCER();

            // Generic header
            ncer.header.id = br.ReadChars(4);
            ncer.header.endianess = br.ReadUInt16();
            if (ncer.header.endianess == 0xFFFE)
                ncer.header.id.Reverse();
            ncer.header.constant = br.ReadUInt16(); // This is version of a nitro binary format
            ncer.header.file_size = br.ReadUInt32();
            ncer.header.header_size = br.ReadUInt16();
            ncer.header.nSection = br.ReadUInt16();

            // CEBK (CEll BanK)
            ncer.cebk.id = br.ReadChars(4);
            ncer.cebk.section_size = br.ReadUInt32();
            ncer.cebk.nBanks = br.ReadUInt16();
            ncer.cebk.tBank = br.ReadUInt16();
            ncer.cebk.bank_data_offset = br.ReadUInt32();
            ncer.cebk.block_size = br.ReadUInt32() & 0xFF;
            ncer.cebk.partition_data_offset = br.ReadUInt32();
            ncer.cebk.unused = br.ReadUInt64();
            ncer.cebk.banks = new sNCER.Bank[ncer.cebk.nBanks];

            #region Read partitions data

            if (ncer.cebk.partition_data_offset != 0)
            {
                br.BaseStream.Position = ncer.header.header_size + ncer.cebk.partition_data_offset + 8; // 8 is a CEBK general header size (magic and size)
                ncer.cebk.max_partition_size = br.ReadUInt32();
                ncer.cebk.first_partition_data_offset = br.ReadUInt32();
                br.BaseStream.Position += ncer.cebk.first_partition_data_offset - 8;
                for (int i = 0; i < ncer.cebk.nBanks; i++)
                {
                    ncer.cebk.banks[i].partition_offset = br.ReadUInt32();
                    ncer.cebk.banks[i].partition_size = br.ReadUInt32();
                }
            }

            #endregion

            //Console.WriteLine(xml.Element("S0B").Value + ": 0x{0:X}", ncer.cebk.block_size);
            //Console.WriteLine(xml.Element("S0C").Value + ": 0x{0:X}", ncer.cebk.unknown1);
            //Console.WriteLine(xml.Element("S09").Value + ": {0}", ncer.cebk.tBank.ToString());
            //Console.WriteLine(xml.Element("S08").Value + ": {0}", ncer.cebk.nBanks.ToString());

            br.BaseStream.Position = ncer.header.header_size + ncer.cebk.bank_data_offset + 8;

            #region Read banks
            for (int i = 0; i < ncer.cebk.nBanks; i++)
            {
                ncer.cebk.banks[i].nCells = br.ReadUInt16();
                ncer.cebk.banks[i].readOnlyCellInfo = br.ReadUInt16();
                ncer.cebk.banks[i].cell_offset = br.ReadUInt32();

                if (ncer.cebk.tBank == 0x01)
                {
                    ncer.cebk.banks[i].xMax = br.ReadInt16();
                    ncer.cebk.banks[i].yMax = br.ReadInt16();
                    ncer.cebk.banks[i].xMin = br.ReadInt16();
                    ncer.cebk.banks[i].yMin = br.ReadInt16();
                }

                long posicion = br.BaseStream.Position;

                if (ncer.cebk.tBank == 0x00)
                    br.BaseStream.Position += (ncer.cebk.nBanks - (i + 1)) * 8 + ncer.cebk.banks[i].cell_offset;
                else
                    br.BaseStream.Position += (ncer.cebk.nBanks - (i + 1)) * 0x10 + ncer.cebk.banks[i].cell_offset;

                //Console.WriteLine("
--------------"); //Console.WriteLine(xml.Element("S01").Value + " {0}:", i.ToString()); //Console.WriteLine("|_" + xml.Element("S19").Value + ": {0}", ncer.cebk.banks[i].nCells.ToString()); //Console.WriteLine("|_" + xml.Element("S1A").Value + ": {0}", ncer.cebk.banks[i].unknown1.ToString()); //Console.WriteLine("|_" + xml.Element("S1B").Value + ": {0}", ncer.cebk.banks[i].cell_offset.ToString()); ncer.cebk.banks[i].oams = new OAM[ncer.cebk.banks[i].nCells]; #region Read cells for (int j = 0; j < ncer.cebk.banks[i].nCells; j++) { ushort obj0 = br.ReadUInt16(); ushort obj1 = br.ReadUInt16(); ushort obj2 = br.ReadUInt16(); ncer.cebk.banks[i].oams[j] = Actions.OAMInfo(new ushort[] { obj0, obj1, obj2 }); ncer.cebk.banks[i].oams[j].num_cell = (ushort)j; // Calculate the size Size cellSize = Actions.Get_OAMSize(ncer.cebk.banks[i].oams[j].obj0.shape, ncer.cebk.banks[i].oams[j].obj1.size); ncer.cebk.banks[i].oams[j].height = (ushort)cellSize.Height; ncer.cebk.banks[i].oams[j].width = (ushort)cellSize.Width; //if (ncer.cebk.banks[i].oams[j].obj0.doubleSize == 1) //{ // ncer.cebk.banks[i].oams[j].width *= 2; // ncer.cebk.banks[i].oams[j].height *= 2; //} //Console.WriteLine("|_" + xml.Element("S1C").Value + " {0}:", j.ToString()); //Console.WriteLine(" " + xml.Element("S1D").Value + ": {0}", ncer.cebk.banks[i].cells[j].obj0.yOffset.ToString()); //Console.WriteLine(" " + xml.Element("S1E").Value + ": {0}", ncer.cebk.banks[i].cells[j].obj1.xOffset.ToString()); //Console.WriteLine(" " + xml.Element("S1F").Value + ": {0}", ncer.cebk.banks[i].cells[j].width.ToString()); //Console.WriteLine(" " + xml.Element("S20").Value + ": {0}", ncer.cebk.banks[i].cells[j].height.ToString()); //Console.WriteLine(" " + xml.Element("S21").Value + ": {0}", ncer.cebk.banks[i].cells[j].obj2.index_palette.ToString()); //Console.WriteLine(" " + xml.Element("S22").Value + ": {0}", (obj2 & 0x03FF).ToString()); //Console.WriteLine(" " + xml.Element("S23").Value + ": {0}", ncer.cebk.banks[i].cells[j].obj2.tileOffset.ToString()); //Console.WriteLine(" " + "Object priority" + ": {0}", ncer.cebk.banks[i].cells[j].obj2.priority.ToString()); } #endregion // Sort the oam using the priority value List oams = new List(); oams.AddRange(ncer.cebk.banks[i].oams); oams.Sort(Comparision_Cell); ncer.cebk.banks[i].oams = oams.ToArray(); br.BaseStream.Position = posicion; //Console.WriteLine("--------------"); } #endregion #region LABL br.BaseStream.Position = ncer.header.header_size + ncer.cebk.section_size; List offsets = new List(); List names = new List(); ncer.labl.names = new string[ncer.cebk.nBanks]; ncer.labl.id = br.ReadChars(4); if (new String(ncer.labl.id) != "LBAL") goto Tercera; ncer.labl.section_size = br.ReadUInt32(); // Name offset for (int i = 0; i < ncer.cebk.nBanks; i++) { uint offset = br.ReadUInt32(); if (offset >= ncer.labl.section_size - 8) { br.BaseStream.Position -= 4; break; } offsets.Add(offset); } ncer.labl.offset = offsets.ToArray(); // Names for (int i = 0; i < ncer.labl.offset.Length; i++) { names.Add(""); byte c = br.ReadByte(); while (c != 0x00) { names[i] += (char)c; c = br.ReadByte(); } } Tercera: for (int i = 0; i < ncer.cebk.nBanks; i++) if (names.Count > i) ncer.labl.names[i] = names[i]; else ncer.labl.names[i] = i.ToString(); #endregion #region UEXT ncer.uext.id = br.ReadChars(4); if (new String(ncer.uext.id) != "TXEU") goto Fin; ncer.uext.section_size = br.ReadUInt32(); ncer.uext.unknown = br.ReadUInt32(); #endregion Fin: br.Close(); //Console.WriteLine("
EOF"); Set_Banks(Convert_Banks(), ncer.cebk.block_size, true); } OAM Get_LastOAM(sNCER.Bank bank) { for (int i = 0; i < bank.oams.Length; i++) if (bank.oams[i].num_cell == bank.oams.Length - 1) return bank.oams[i]; return new OAM(); } int Comparision_Cell(OAM c1, OAM c2) { if (c1.obj2.priority < c2.obj2.priority) return 1; else if (c1.obj2.priority > c2.obj2.priority) return -1; else // Same priority { if (c1.num_cell < c2.num_cell) return 1; else if (c1.num_cell > c2.num_cell) return -1; else // Same cell return 0; } } int Comparision_Cell2(OAM c1, OAM c2) { if (c1.num_cell > c2.num_cell) return 1; else if (c1.num_cell < c2.num_cell) return -1; else return 0; } Bank[] Convert_Banks() { Bank[] banks = new Bank[ncer.cebk.banks.Length]; for (int i = 0; i < banks.Length; i++) { banks[i].height = 0; banks[i].width = 0; banks[i].oams = ncer.cebk.banks[i].oams; if (ncer.labl.names.Length > i) banks[i].name = ncer.labl.names[i]; banks[i].data_offset = ncer.cebk.banks[i].partition_offset; banks[i].data_size = ncer.cebk.banks[i].partition_size; } return banks; } public override void Write(string fileOut, ImageBase image, PaletteBase palette) { Update_Struct(); BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); // Generic header bw.Write(ncer.header.id); bw.Write(ncer.header.endianess); bw.Write(ncer.header.constant); bw.Write(ncer.header.file_size); bw.Write(ncer.header.header_size); bw.Write(ncer.header.nSection); // CEBK section (CEll BanK) bw.Write(ncer.cebk.id); bw.Write(ncer.cebk.section_size); bw.Write(ncer.cebk.nBanks); bw.Write(ncer.cebk.tBank); bw.Write(ncer.cebk.bank_data_offset); bw.Write(ncer.cebk.block_size); bw.Write(ncer.cebk.partition_data_offset); bw.Write(ncer.cebk.unused); // Banks for (int i = 0; i < ncer.cebk.banks.Length; i++) { bw.Write(ncer.cebk.banks[i].nCells); bw.Write(ncer.cebk.banks[i].readOnlyCellInfo); bw.Write(ncer.cebk.banks[i].cell_offset); if (ncer.cebk.tBank == 1) { bw.Write(ncer.cebk.banks[i].xMax); bw.Write(ncer.cebk.banks[i].yMax); bw.Write(ncer.cebk.banks[i].xMin); bw.Write(ncer.cebk.banks[i].yMin); } } // OAMs for (int i = 0; i < ncer.cebk.banks.Length; i++) { for (int j = 0; j < ncer.cebk.banks[i].nCells; j++) { OAM oam = ncer.cebk.banks[i].oams[j]; ushort[] obj = Actions.OAMInfo(oam); bw.Write(BitConverter.GetBytes(obj[0])); bw.Write(BitConverter.GetBytes(obj[1])); bw.Write(BitConverter.GetBytes(obj[2])); } } while (bw.BaseStream.Position % 4 != 0) bw.Write((byte)0x00); // Partition data if (ncer.cebk.partition_data_offset != 0) { bw.Write(ncer.cebk.max_partition_size); bw.Write(ncer.cebk.first_partition_data_offset); for (int i = 0; i < ncer.cebk.banks.Length; i++) { bw.Write(ncer.cebk.banks[i].partition_offset); bw.Write(ncer.cebk.banks[i].partition_size); } } // LBAL section if (new string(ncer.labl.id) == "LBAL" || new string(ncer.labl.id) == "LABL") { bw.Write(ncer.labl.id); bw.Write(ncer.labl.section_size); for (int i = 0; i < ncer.labl.offset.Length; i++) bw.Write(ncer.labl.offset[i]); for (int i = 0; i < ncer.labl.offset.Length; i++) bw.Write((ncer.labl.names[i] + '\0').ToCharArray()); } // UEXT section if (new string(ncer.uext.id) == "UEXT" || new string(ncer.uext.id) == "TXEU") { bw.Write(ncer.uext.id); bw.Write(ncer.uext.section_size); bw.Write(ncer.uext.unknown); } bw.Flush(); bw.Close(); } void Update_Struct() { // Update OAMs and LABL section uint offset_cells = 0; uint size = 0; uint max_partition_size = 0; for (int i = 0; i < Banks.Length; i++) { ncer.cebk.banks[i].nCells = (ushort)Banks[i].oams.Length; ncer.cebk.banks[i].cell_offset = offset_cells; offset_cells += (uint)(Banks[i].oams.Length * 6); size += (uint)(ncer.cebk.tBank == 0 ? 0x08 : 0x10); size += (uint)(6 * Banks[i].oams.Length); ncer.cebk.banks[i].oams = Banks[i].oams; List oams = new List(); oams.AddRange(ncer.cebk.banks[i].oams); oams.Sort(Comparision_Cell2); ncer.cebk.banks[i].oams = oams.ToArray(); if (ncer.cebk.partition_data_offset != 0) { ncer.cebk.banks[i].partition_offset = Banks[i].data_offset; ncer.cebk.banks[i].partition_size = Banks[i].data_size; if (ncer.cebk.banks[i].partition_size > max_partition_size){ max_partition_size = ncer.cebk.banks[i].partition_size; } } else { ncer.cebk.banks[i].partition_offset = 0; ncer.cebk.banks[i].partition_size = 0; } } // Update the rest ncer.cebk.block_size = BlockSize; ncer.cebk.nBanks = (ushort)Banks.Length; ncer.cebk.section_size = 0x20 + size; if (ncer.cebk.section_size % 4 != 0) ncer.cebk.section_size += (4 - (ncer.cebk.section_size % 4)); // Update partition data info if (ncer.cebk.partition_data_offset != 0) { ncer.cebk.partition_data_offset = ncer.cebk.section_size - 8; ncer.cebk.max_partition_size = max_partition_size; ncer.cebk.first_partition_data_offset = 8; ncer.cebk.section_size += (uint)(8 * (Banks.Length + 1)); } // Update the header ncer.header.file_size = 0x10 + ncer.cebk.section_size; if (new string(ncer.labl.id) == "LBAL" || new string(ncer.labl.id) == "LABL") ncer.header.file_size += ncer.labl.section_size; if (new string(ncer.uext.id) == "UEXT" || new string(ncer.uext.id) == "TXEU") ncer.header.file_size += ncer.uext.section_size; } public struct sNCER // Nintendo CEll Resource { public NitroHeader header; public CEBK cebk; public LABL labl; public UEXT uext; public struct CEBK { public char[] id; public UInt32 section_size; public UInt16 nBanks; public UInt16 tBank; // type of banks, 0 ó 1 public UInt32 bank_data_offset; public UInt32 block_size; public UInt32 partition_data_offset; public UInt64 unused; // Unused pointers to LABL and UEXT sections public Bank[] banks; public UInt32 max_partition_size; public UInt32 first_partition_data_offset; } public struct Bank { public UInt16 nCells; public UInt16 readOnlyCellInfo; public UInt32 cell_offset; public UInt32 partition_offset; public UInt32 partition_size; public OAM[] oams; // Extended mode public short xMax; public short yMax; public short xMin; public short yMin; } public struct LABL { public char[] id; public UInt32 section_size; public UInt32[] offset; public string[] names; } public struct UEXT { public char[] id; public UInt32 section_size; public UInt32 unknown; } } } } ================================================ FILE: Images/Images/NCGR.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using Ekona; using Ekona.Images; namespace Images { public class NCGR : ImageBase { sNCGR ncgr; public NCGR(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string fileIn) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); ncgr = new sNCGR(); // Read the common header ncgr.header.id = br.ReadChars(4); ncgr.header.endianess = br.ReadUInt16(); if (ncgr.header.endianess == 0xFFFE) ncgr.header.id.Reverse(); ncgr.header.constant = br.ReadUInt16(); ncgr.header.file_size = br.ReadUInt32(); ncgr.header.header_size = br.ReadUInt16(); ncgr.header.nSection = br.ReadUInt16(); // Read the first section: CHAR (CHARacter data) ncgr.rahc.id = br.ReadChars(4); ncgr.rahc.size_section = br.ReadUInt32(); ncgr.rahc.nTilesY = br.ReadUInt16(); ncgr.rahc.nTilesX = br.ReadUInt16(); ncgr.rahc.depth = (ColorFormat)br.ReadUInt32(); ncgr.rahc.unknown1 = br.ReadUInt16(); ncgr.rahc.unknown2 = br.ReadUInt16(); ncgr.rahc.tiledFlag = br.ReadUInt32(); if ((ncgr.rahc.tiledFlag & 0xFF) == 0x0) ncgr.order = TileForm.Horizontal; else ncgr.order = TileForm.Lineal; ncgr.rahc.size_tiledata = br.ReadUInt32(); ncgr.rahc.unknown3 = br.ReadUInt32(); ncgr.rahc.data = br.ReadBytes((int)ncgr.rahc.size_tiledata); if (ncgr.rahc.nTilesX != 0xFFFF) { ncgr.rahc.nTilesX *= 8; ncgr.rahc.nTilesY *= 8; } if (ncgr.header.nSection == 2 && br.BaseStream.Position < br.BaseStream.Length) // If there isn't SOPC section { // Read the second section: SOPC ncgr.sopc.id = br.ReadChars(4); ncgr.sopc.size_section = br.ReadUInt32(); ncgr.sopc.unknown1 = br.ReadUInt32(); ncgr.sopc.charSize = br.ReadUInt16(); ncgr.sopc.nChar = br.ReadUInt16(); } br.Close(); Set_Tiles(ncgr.rahc.data, ncgr.rahc.nTilesX, ncgr.rahc.nTilesY, ncgr.rahc.depth, ncgr.order, true); if (ncgr.rahc.nTilesX == 0xFFFF) { System.Drawing.Size size = Actions.Get_Size((int)ncgr.rahc.size_tiledata, BPP); ncgr.rahc.nTilesX = (ushort)size.Width; ncgr.rahc.nTilesY = (ushort)size.Height; Height = size.Height; Width = size.Width; } } public override void Write(string fileOut, PaletteBase palette) { Update_Struct(); BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); // Common header bw.Write(ncgr.header.id); bw.Write(ncgr.header.endianess); bw.Write(ncgr.header.constant); bw.Write(ncgr.header.file_size); bw.Write(ncgr.header.header_size); bw.Write(ncgr.header.nSection); // RAHC section bw.Write(ncgr.rahc.id); bw.Write(ncgr.rahc.size_section); bw.Write(ncgr.rahc.nTilesY); bw.Write(ncgr.rahc.nTilesX); bw.Write((uint)(ncgr.rahc.depth)); bw.Write(ncgr.rahc.unknown1); bw.Write(ncgr.rahc.unknown2); bw.Write(ncgr.rahc.tiledFlag); bw.Write(ncgr.rahc.size_tiledata); bw.Write(ncgr.rahc.unknown3); bw.Write(ncgr.rahc.data); // SOPC section if (ncgr.header.nSection == 2) { bw.Write(ncgr.sopc.id); bw.Write(ncgr.sopc.size_section); bw.Write(ncgr.sopc.unknown1); bw.Write(ncgr.sopc.charSize); bw.Write(ncgr.sopc.nChar); } bw.Flush(); bw.Close(); } private void Update_Struct() { ncgr.rahc.nTilesX = (ushort)(Width / 8); ncgr.rahc.nTilesY = (ushort)(Height / 8); ncgr.rahc.data = Tiles; if (this.FormTile == TileForm.Lineal && ncgr.order == TileForm.Horizontal) { ncgr.rahc.data = Actions.HorizontalToLineal(Tiles, ncgr.rahc.nTilesX, ncgr.rahc.nTilesY, BPP, TileSize); Set_Tiles(ncgr.rahc.data, this.Width, this.Height, this.FormatColor, ncgr.order, true); } ncgr.rahc.depth = FormatColor; ncgr.rahc.size_tiledata = (uint)ncgr.rahc.data.Length; ncgr.rahc.size_section = ncgr.rahc.size_tiledata + 0x24; ncgr.header.file_size = ncgr.rahc.size_section + 0x10; } public struct sNCGR // Nintendo Character Graphic Resource { public NitroHeader header; public RAHC rahc; public SOPC sopc; public TileForm order; public Object other; public UInt32 id; } public struct RAHC // CHARacter { public char[] id; // Always RAHC = 0x52414843 public UInt32 size_section; public UInt16 nTilesY; public UInt16 nTilesX; public ColorFormat depth; public UInt16 unknown1; public UInt16 unknown2; public UInt32 tiledFlag; public UInt32 size_tiledata; public UInt32 unknown3; // Always 0x18 (24) (data offset?) public byte[] data; // image data } public struct SOPC // Unknown section { public char[] id; public UInt32 size_section; public UInt32 unknown1; public UInt16 charSize; public UInt16 nChar; } } } ================================================ FILE: Images/Images/NCLR.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; using Ekona; using Ekona.Images; namespace Images { public class NCLR : PaletteBase { sNCLR nclr; public NCLR(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string fileIn) { nclr = new sNCLR(); BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); // Generic header nclr.header.id = br.ReadChars(4); nclr.header.endianess = br.ReadUInt16(); if (nclr.header.endianess == 0xFFFE) nclr.header.id.Reverse(); nclr.header.constant = br.ReadUInt16(); nclr.header.file_size = br.ReadUInt32(); nclr.header.header_size = br.ReadUInt16(); nclr.header.nSection = br.ReadUInt16(); // PLTT section TTLP pltt = new TTLP(); pltt.ID = br.ReadChars(4); pltt.length = br.ReadUInt32(); pltt.depth = (ColorFormat)br.ReadUInt16(); pltt.unknown1 = br.ReadUInt16(); pltt.unknown2 = br.ReadUInt32(); pltt.pal_length = br.ReadUInt32(); if (pltt.pal_length == 0 || pltt.pal_length > pltt.length) pltt.pal_length = pltt.length - 0x18; uint colors_startOffset = br.ReadUInt32(); pltt.num_colors = (uint)((pltt.depth == ColorFormat.colors16) ? 0x10 : 0x100); if (pltt.pal_length / 2 < pltt.num_colors) pltt.num_colors = pltt.pal_length / 2; pltt.palettes = new Color[pltt.pal_length / (pltt.num_colors * 2)][]; br.BaseStream.Position = 0x18 + colors_startOffset; for (int i = 0; i < pltt.palettes.Length; i++) pltt.palettes[i] = Actions.BGR555ToColor(br.ReadBytes((int)pltt.num_colors * 2)); nclr.pltt = pltt; // PMCP section if (nclr.header.nSection == 1 || br.BaseStream.Position >= br.BaseStream.Length) goto End; PMCP pmcp = new PMCP(); pmcp.ID = br.ReadChars(4); pmcp.blockSize = br.ReadUInt32(); pmcp.unknown1 = br.ReadUInt16(); pmcp.unknown2 = br.ReadUInt16(); pmcp.unknown3 = br.ReadUInt32(); pmcp.first_palette_num = br.ReadUInt16(); nclr.pmcp = pmcp; End: br.Close(); Set_Palette(pltt.palettes, pltt.depth, true); } public override void Write(string fileOut) { Update_Struct(); BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); bw.Write(nclr.header.id); bw.Write(nclr.header.endianess); bw.Write(nclr.header.constant); bw.Write(nclr.header.file_size); bw.Write(nclr.header.header_size); bw.Write(nclr.header.nSection); bw.Write(nclr.pltt.ID); bw.Write(nclr.pltt.length); bw.Write((ushort)(nclr.pltt.depth)); bw.Write(nclr.pltt.unknown1); bw.Write(nclr.pltt.unknown2); bw.Write(nclr.pltt.pal_length); bw.Write(0x10); // Colors start offset from 0x14 for (int i = 0; i < nclr.pltt.palettes.Length; i++) bw.Write(Actions.ColorToBGR555(nclr.pltt.palettes[i])); bw.Flush(); bw.Close(); } private void Update_Struct() { nclr.pltt.palettes = Palette; nclr.pltt.depth = Depth; nclr.pltt.pal_length = 0; for (int i = 0; i < nclr.pltt.palettes.Length; i++) nclr.pltt.pal_length += (uint)(nclr.pltt.palettes[i].Length * 2); nclr.pltt.length = nclr.pltt.pal_length + 0x18; nclr.header.file_size = nclr.pltt.length + 0x10; } public struct sNCLR // Nintendo CoLor Resource { public NitroHeader header; public TTLP pltt; public PMCP pmcp; } public struct TTLP // PaLeTTe { public char[] ID; public UInt32 length; public ColorFormat depth; public UInt16 unknown1; public UInt32 unknown2; // padding? public UInt32 pal_length; public UInt32 num_colors; // Number of colors public Color[][] palettes; } public struct PMCP { public char[] ID; public uint blockSize; public ushort unknown1; public ushort unknown2; // always BEEF? public uint unknown3; public ushort first_palette_num; } } } ================================================ FILE: Images/Images/NCOB.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Ekona; using Ekona.Images; namespace Images { public class NCOB : SpriteBase { sNCOB ncob; ImageBase img; public NCOB(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string fileIn) { ncob = new sNCOB(); BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); // Read the header ncob.generic.id = br.ReadChars(4); ncob.generic.endianess = br.ReadUInt16(); ncob.generic.constant = br.ReadUInt16(); ncob.generic.file_size = br.ReadUInt32(); ncob.generic.header_size = br.ReadUInt16(); ncob.generic.nSection = br.ReadUInt16(); for (int i = 0; i < ncob.generic.nSection; i++) { string type = new String(br.ReadChars(4)); switch (type) { case "CELL": ncob.cell.type = "CELL".ToCharArray(); ncob.cell.size = br.ReadUInt32(); ncob.cell.num_banks = br.ReadUInt32(); ncob.cell.banks = new Ekona.Images.Bank[ncob.cell.num_banks]; for (int b = 0; b < ncob.cell.num_banks; b++) { ncob.cell.banks[b] = new Ekona.Images.Bank(); ncob.cell.banks[b].oams = new OAM[br.ReadUInt32()]; for (int o = 0; o < ncob.cell.banks[b].oams.Length; o++) { OAM oam = new OAM(); oam.obj1.xOffset = br.ReadInt16(); oam.obj0.yOffset = br.ReadInt16(); ushort unk1 = br.ReadUInt16(); if (unk1 != 0) System.Windows.Forms.MessageBox.Show("Unk1 different to 0"); oam.obj1.flipX = br.ReadByte(); oam.obj1.flipY = br.ReadByte(); uint unk2 = br.ReadUInt32(); if (unk2 != 0) System.Windows.Forms.MessageBox.Show("Unk2 different to 0"); oam.obj0.shape = br.ReadByte(); oam.obj1.size = br.ReadByte(); oam.obj2.priority = br.ReadByte(); oam.obj2.index_palette = br.ReadByte(); oam.obj2.tileOffset = br.ReadUInt32(); oam.width = (ushort)Actions.Get_OAMSize(oam.obj0.shape, oam.obj1.size).Width; oam.height = (ushort)Actions.Get_OAMSize(oam.obj0.shape, oam.obj1.size).Height; oam.num_cell = (ushort)o; ncob.cell.banks[b].oams[o] = oam; } } break; case "CHAR": ncob.chars.type = "CHAR".ToCharArray(); ncob.chars.size = br.ReadUInt32(); ncob.chars.unknown = br.ReadUInt32(); ncob.chars.data_size = br.ReadUInt32(); ncob.chars.data = br.ReadBytes((int)ncob.chars.data_size); break; default: uint size = br.ReadUInt32(); br.BaseStream.Position += size - 8; break; } } br.Close(); img = new RawImage(ncob.chars.data, TileForm.Horizontal, ColorFormat.colors16, 0x20, ncob.chars.data.Length / 0x20, false); Set_Banks(ncob.cell.banks, 0, false); } public override void Write(string fileOut, ImageBase image, PaletteBase palette) { throw new NotImplementedException(); } public ImageBase Image { get { return img; } } public struct sNCOB { public NitroHeader generic; public CELL cell; public CHAR chars; public GRP grp; public ANIM anim; public ACTL actl; public MODE mode; public LABL labl; public CMNT cmnt; public CCMT ccmt; public ECMT ecmt; public FCMT fcmt; public CLBL clbl; public EXTR extr; public LINK link; public struct CELL { public char[] type; public uint size; public uint num_banks; public Ekona.Images.Bank[] banks; } public struct CHAR { public char[] type; public uint size; public uint unknown; public uint data_size; public byte[] data; } public struct GRP { public char[] type; public uint size; public uint num_element; public uint unknown; public ulong[] data; } public struct ANIM { public char[] type; public uint size; public byte[] unknown; } public struct ACTL { public char[] type; public uint size; public uint num_element; public byte[][] unknown; // 0x0C per block } public struct MODE { public char[] type; public uint size; public uint unknown1; public uint unknown2; } public struct LABL { public char[] type; public uint size; public uint num_element; public string[] names; // 0x40 per name } public struct CMNT { public char[] type; public uint size; public uint unknown; } public struct CCMT { public char[] type; public uint size; public uint num_element; public ulong[] unknown; } public struct ECMT { public char[] type; public uint size; public uint num_element; public uint[] size_e; public string[] name; // SJIS } public struct FCMT { public char[] type; public uint size; public byte[] data; } public struct CLBL { public char[] type; public uint size; public uint num_element; public uint[] data; } public struct EXTR { public char[] type; public uint size; public uint unknown; } public struct LINK { public char[] type; public uint size; public string link; } } } } ================================================ FILE: Images/Images/NCSC.cs ================================================ /* * Copyright (C) 2011 pleoNeX * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * By: pleoNeX * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Ekona; using Ekona.Images; namespace Images { public class NCSC : MapBase { public NCSC(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string file) { BinaryReader br = new BinaryReader(File.OpenRead(file)); sNCSC ncsc = new sNCSC(); // Nitro generic header ncsc.generic.id = br.ReadChars(4); ncsc.generic.endianess = br.ReadUInt16(); ncsc.generic.constant = br.ReadUInt16(); ncsc.generic.file_size = br.ReadUInt32(); ncsc.generic.header_size = br.ReadUInt16(); ncsc.generic.nSection = br.ReadUInt16(); // SCRN section ncsc.scrn.id = br.ReadChars(4); ncsc.scrn.size = br.ReadUInt32(); ncsc.scrn.width = br.ReadUInt32() * 8; ncsc.scrn.height = br.ReadUInt32() * 8; ncsc.scrn.unknown1 = br.ReadUInt32(); ncsc.scrn.unknown2 = br.ReadUInt32(); NTFS[] map = new NTFS[(ncsc.scrn.size - 0x18) / 2]; for (int i = 0; i < map.Length; i++) map[i] = Actions.MapInfo(br.ReadUInt16()); // Read other sections for (int n = 1; n < ncsc.generic.nSection; n++) { String type = new String(br.ReadChars(4)); switch (type) { case "ESCR": ncsc.escr.id = "ESCR".ToCharArray(); ncsc.escr.size = br.ReadUInt32(); ncsc.escr.width = br.ReadUInt32(); ncsc.escr.height = br.ReadUInt32(); ncsc.escr.unknown = br.ReadUInt32(); ncsc.escr.unknown2 = br.ReadUInt32(); ncsc.escr.unknownData = new uint[ncsc.escr.width * ncsc.escr.height]; for (int i = 0; i < ncsc.escr.unknownData.Length; i++) ncsc.escr.unknownData[i] = br.ReadUInt32(); break; case "CLRF": ncsc.clrf.id = "CLRF".ToCharArray(); ncsc.clrf.size = br.ReadUInt32(); ncsc.clrf.width = br.ReadUInt32(); ncsc.clrf.height = br.ReadUInt32(); ncsc.clrf.unknown = br.ReadBytes((int)ncsc.clrf.size - 0x10); break; case "CLRC": ncsc.clrc.id = "CLRC".ToCharArray(); ncsc.clrc.size = br.ReadUInt32(); ncsc.clrc.unknown = br.ReadBytes((int)ncsc.clrc.size - 0x08); break; case "GRID": ncsc.grid.id = "GRID".ToCharArray(); ncsc.grid.size = br.ReadUInt32(); ncsc.grid.unknown = br.ReadBytes((int)ncsc.grid.size - 0x08); break; case "LINK": ncsc.link.id = "LINK".ToCharArray(); ncsc.link.size = br.ReadUInt32(); ncsc.link.link = new string(br.ReadChars((int)ncsc.link.size - 0x08)); break; case "CMNT": ncsc.cmnt.id = "CMNT".ToCharArray(); ncsc.cmnt.size = br.ReadUInt32(); ncsc.cmnt.unknown = br.ReadBytes((int)ncsc.cmnt.size - 0x08); break; } } br.Close(); Set_Map(map, false, (int)ncsc.scrn.width, (int)ncsc.scrn.height); } public override void Write(string fileOut, ImageBase image, PaletteBase palette) { } public struct sNCSC { public NitroHeader generic; public SCRN scrn; public ESCR escr; public CLRF clrf; public CLRC clrc; public GRID grid; public LINK link; public CMNT cmnt; public struct SCRN { public char[] id; public uint size; public uint width; public uint height; public uint unknown1; public uint unknown2; } public struct ESCR { public char[] id; public uint size; public uint width; public uint height; public uint unknown; public uint unknown2; public uint[] unknownData; } public struct CLRF { public char[] id; public uint size; public uint width; public uint height; public byte[] unknown; } public struct CLRC { public char[] id; public uint size; public byte[] unknown; } public struct GRID { public char[] id; public uint size; public byte[] unknown; } public struct LINK { public char[] id; public uint size; public string link; } public struct CMNT { public char[] id; public uint size; public byte[] unknown; } } } } ================================================ FILE: Images/Images/NSCR.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Ekona; using Ekona.Images; namespace Images { public class NSCR : MapBase { sNSCR nscr; public NSCR(string file, int id, string fileName = "") : base(file, id, fileName) { } public override void Read(string fileIn) { BinaryReader br = new BinaryReader(File.OpenRead(fileIn)); nscr = new sNSCR(); // Generic header nscr.header.id = br.ReadChars(4); nscr.header.endianess = br.ReadUInt16(); if (nscr.header.endianess == 0xFFFE) nscr.header.id.Reverse(); nscr.header.constant = br.ReadUInt16(); nscr.header.file_size = br.ReadUInt32(); nscr.header.header_size = br.ReadUInt16(); nscr.header.nSection = br.ReadUInt16(); // Read section nscr.nrcs.id = br.ReadChars(4); nscr.nrcs.section_size = br.ReadUInt32(); nscr.nrcs.width = br.ReadUInt16(); nscr.nrcs.height = br.ReadUInt16(); nscr.nrcs.padding = br.ReadUInt32(); nscr.nrcs.data_size = br.ReadUInt32(); nscr.nrcs.mapData = new NTFS[nscr.nrcs.data_size / 2]; for (int i = 0; i < nscr.nrcs.mapData.Length; i++) nscr.nrcs.mapData[i] = Actions.MapInfo(br.ReadUInt16()); br.Close(); Set_Map(nscr.nrcs.mapData, true, nscr.nrcs.width, nscr.nrcs.height); } public override void Write(string fileOut, ImageBase image, PaletteBase palette) { Update_Struct(); BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut)); // Common header bw.Write(nscr.header.id); bw.Write(nscr.header.endianess); bw.Write(nscr.header.constant); bw.Write(nscr.header.file_size); bw.Write(nscr.header.header_size); bw.Write(nscr.header.nSection); // SCRN section bw.Write(nscr.nrcs.id); bw.Write(nscr.nrcs.section_size); bw.Write(nscr.nrcs.width); bw.Write(nscr.nrcs.height); bw.Write(nscr.nrcs.padding); bw.Write(nscr.nrcs.data_size); for (int i = 0; i < nscr.nrcs.mapData.Length; i++) { int npalette = nscr.nrcs.mapData[i].nPalette << 12; int yFlip = nscr.nrcs.mapData[i].yFlip << 11; int xFlip = nscr.nrcs.mapData[i].xFlip << 10; int data = npalette + yFlip + xFlip + nscr.nrcs.mapData[i].nTile; bw.Write((ushort)data); } bw.Flush(); bw.Close(); } private void Update_Struct() { nscr.nrcs.width = (ushort)Width; nscr.nrcs.height = (ushort)Height; nscr.nrcs.mapData = Map; nscr.nrcs.data_size = (uint)(Map.Length * 2); nscr.nrcs.section_size = nscr.nrcs.data_size + 0x14; nscr.header.file_size = nscr.nrcs.section_size + 0x10; } public struct sNSCR // Nintendo SCreen Resource { public NitroHeader header; public NRCS nrcs; public struct NRCS { public char[] id; // NRCS = 0x4E524353 public UInt32 section_size; public UInt16 width; public UInt16 height; public UInt32 padding; // Always 0x0 public UInt32 data_size; public NTFS[] mapData; } } } } ================================================ FILE: Images/Images/Properties/AssemblyInfo.cs ================================================ #region Using directives using System; using System.Reflection; using System.Runtime.InteropServices; #endregion // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Nitendo")] [assembly: AssemblyDescription("Image file formats")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Tinke")] [assembly: AssemblyCopyright("pleoNeX")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // This sets the default COM visibility of types in the assembly to invisible. // If you need to expose a type to COM, use [ComVisible(true)] on that type. [assembly: ComVisible(false)] // The assembly version has following format : // // Major.Minor.Build.Revision // // You can specify all the values or you can use the default the Revision and // Build Numbers by using the '*' as shown below: [assembly: AssemblyVersion("3.0.0.0")] [assembly: AssemblyFileVersionAttribute("3.0.0.0")] ================================================ FILE: Images/Images/Properties/Resources.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.235 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace Images.Properties { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder. // tramite uno strumento quale ResGen o Visual Studio. // Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen // con l'opzione /str oppure ricompilare il progetto 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() { } /// /// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe. /// [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("Images.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le /// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap picture_save { get { object obj = ResourceManager.GetObject("picture_save", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } } } ================================================ FILE: Images/Images/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\picture_save.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ================================================ FILE: Images/Images.sln ================================================  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual C# Express 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Images", "Images\Images.csproj", "{8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|Any CPU.Build.0 = Debug|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x64.ActiveCfg = Debug|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x64.Build.0 = Debug|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x86.ActiveCfg = Debug|x86 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Debug|x86.Build.0 = Debug|x86 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|Any CPU.ActiveCfg = Release|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|Any CPU.Build.0 = Release|Any CPU {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x64.ActiveCfg = Release|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x64.Build.0 = Release|x64 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x86.ActiveCfg = Release|x86 {8BB5DA4B-5B71-4993-8941-4F38D4E6C81B}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: README.md ================================================ # DS Pokemon Rom Editor Major overhaul of Nomura's DS Pokemon ROM Editor, with lots of new features and bugfixes. ![Screenshot](aDSPRE_1110.png) ![Screenshot](bDSPRE_1110.png) ![Screenshot](cDSPRE_1110.png) ## Misc changes to the original DSPRE - Significantly shorter load and save times. - New, faster Script Editor with syntax highlighting and built-in search features. - Fixed lots of problems with Japanese DP roms [either not loading or only partially functioning]. - Configurable top bar layouts. - User Prefs memorization. - New Advanced Header Search feature. - New NSBMD and NSBTX utilities. - NARC Packer/Unpacker utilities. - List based and Content based Batch Rename utilities. - Lots of new buttons and icons. - Color coding of numeric values. - Read extracted data from a directory, without loading a ROM. - ARM9 mismatch warning. - Added new ALT key shortcuts (Hold alt to see which shortcuts are available). - Fixed Encounter Editor unpacking HG encounters for SS ROMs. - Fixed Overworld sprite search algorithm for most (if not all) supported ROMs. - Fixed many Exceptions, which now show user-friendly messages. - Files used by each editor are easily locatable. - New ROM Toolbox. ### ROM Toolbox: Supported patches: - Expand ARM9 usable memory. - Dynamic Cameras. - Set Overlay1 as uncompressed. - Convert Pokémon names to Sentence Case. - Standardize item numbers. - Expand matrix 0. - Dynamic Headers. - Disable Texture Animations [HGSS]. ### Script Command Database: A handy window that shows all the available script commands and the parameters they require. - Many new commands have been identified and added. ### Spawn Settings Editor: Allows you to change the map where the adventure begins and the initial money. ### Wild Encounters Editor: - Added wrench button to fix broken encounter files [whenever possible]. - Added missing button functions (add and remove). - Wild Encounter Editor can now attempt to repair corrupted encounter files. - Editor now detects the selected header. ### Header Editor: - Added copy and paste buttons to every header category editor. - Added import and export buttons to header editor. - New basic search location feature. - Updated Header Fields for all games (added WorldMap Coordinates to HGSS header editor). - Added more HGSS weather effects. - Redone HGSS weather preview pics. - Fixed HGSS Camera settings. - Fixed header flag names. - Battle BG and Following Pokemon properties are now fully editable. - Editable Internal names. - Added text length label to Internal Names box (Header Editor). - Fixed a bug that prevented Internal Names from displaying correctly (String termination). - Fixed "Open Matrix" button not loading the correct textures and buildings, especially for interior maps. ### Matrix Editor: - Added support for custom color tables. - Fixed "Add Matrix" and "Remove Matrix" buttons GUI numbering mismatch. - Fixed wrong row/col indices when resizing matrices. - Fixed junk input detector. - The coordinates of the selected map appear in the status bar. - Matrix names now appear in the selector. ### Map Editor: - GUI redesign (now with a more straightforward GUI). - Support for DAE export [Apicula] - New BGS Section. - Expanded collisions database. - Buildings can now be placed and moved with the mouse. - Fixed buildings wrong scale transform pivot. - Map models can be exported with embedded textures. - Sound Plates can be cleared with a button click. - Added flood fill feature to Permissions tab. - Added Section size labels to 3D Model, Terrain and BGS Tabs (Map Editor). - Added support for broken BTX detection to Map Editor and NSBTX Editor. - Fixed map screen randomly becoming 3D, even with the collision tab open. - Added BDHCAM Support to the import/export menu. - Added Map BIN Import button. - Fixed BGS signature of maps being overwritten upon saving a map. - Added Export MAP BIN button. - Fixed type painters resetting after changing map. - Fixed type painters font size and value [updown] limit. - Added more type painter colors and collisions. - New 512x map screenshot button (for PDSMS' background image feature). ### NSBTX Editor: - GUI Redesign. - Added missing button functions (add and remove). - Created a palette match algorithm. ### Event Editor: - Added mouse support and warps navigation feature. - The Standardize Items patch is no longer necessary to edit/add Ground Items. - A blue box now appears under each Warp collision as a visual aid for placing Warp events. - Events can now be duplicated. - Events can be selectively imported from another Event file. - New editable fields (for Spawnables and Triggers). - Complete rewrite of the Sprite finder. ### Script Editor: - Replaced "Search Flag" with "Search any command". - Fixed Text Search and Replace (Results can be double-clicked). - Replaced Script Macro buttons with a Script Navigator. - You can now choose the preferred number format. - Level scripts can be cleared with a button click. - The Script Editor can identify and report syntax errors. - Fixed backward address jumps. - Improved search speed. - Fixed script export button. ### Text Editor: - Lines can be moved up and down - Fixed export button. - Added option to show row numbers as hex. - Fixed Text Search and Replace (Results can be double-clicked). - Improved search speed. - Added support for Chinese text. ### New Camera Editor: You can easily change the default camera position in game. ### New Trainer Editor: Change the Trainer Class, Party, Movesets, AIs and Items of any Trainer in the game. ### New Table Editor: - Conditional Music Table: allows you to pick a different Header music to play when a specific flag is set. [HGSS only] - Pre-Battle Effects: you can now associate many different VS. Sequences and Battle tracks to any Trainer Classes or Pokémon. ### New Personal Data Editor: Edit base stats, Learnable TMs, EVs yield, and more. ### New Learnset Editor: Edit the moves that a given Pokemon can learn by leveling up. ### New Evolutions Editor: Edit evolution methods and levels for all Pokemon.