OpenCores
URL https://opencores.org/ocsvn/thor/thor/trunk

Subversion Repositories thor

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /thor/trunk/software/emuThor
    from Rev 30 to Rev 32
    Reverse comparison

Rev 30 → Rev 32

/source/fmrFreeRun.resx
0,0 → 1,123
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
/source/fmrFreeRun.h
0,0 → 1,210
#pragma once
#include "stdafx.h"
 
extern clsSystem system1;
extern bool isRunning;
 
namespace emuThor {
 
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
 
/// <summary>
/// Summary for fmrFreeRun
/// </summary>
public ref class fmrFreeRun : public System::Windows::Forms::Form
{
public:
Mutex^ mut;
fmrFreeRun(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
//
InitializeBackgroundWorker();
}
 
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~fmrFreeRun()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Label^ label1;
protected:
private: System::Windows::Forms::NumericUpDown^ numSeconds;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::ProgressBar^ progressBar1;
private: System::ComponentModel::BackgroundWorker^ backgroundWorker1;
 
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->label1 = (gcnew System::Windows::Forms::Label());
this->numSeconds = (gcnew System::Windows::Forms::NumericUpDown());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->progressBar1 = (gcnew System::Windows::Forms::ProgressBar());
this->backgroundWorker1 = (gcnew System::ComponentModel::BackgroundWorker());
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numSeconds))->BeginInit();
this->SuspendLayout();
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(20, 20);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(86, 26);
this->label1->TabIndex = 0;
this->label1->Text = L"Number of Steps\r\n(1,000\'s)";
//
// numSeconds
//
this->numSeconds->Location = System::Drawing::Point(112, 18);
this->numSeconds->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) {100000000, 0, 0, 0});
this->numSeconds->Name = L"numSeconds";
this->numSeconds->Size = System::Drawing::Size(101, 20);
this->numSeconds->TabIndex = 1;
//
// button1
//
this->button1->Location = System::Drawing::Point(138, 101);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 2;
this->button1->Text = L"Start";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &fmrFreeRun::button1_Click);
//
// button2
//
this->button2->DialogResult = System::Windows::Forms::DialogResult::Cancel;
this->button2->Enabled = false;
this->button2->Location = System::Drawing::Point(23, 101);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 3;
this->button2->Text = L"Cancel";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &fmrFreeRun::button2_Click);
//
// progressBar1
//
this->progressBar1->Location = System::Drawing::Point(23, 59);
this->progressBar1->Name = L"progressBar1";
this->progressBar1->Size = System::Drawing::Size(190, 23);
this->progressBar1->TabIndex = 4;
//
// backgroundWorker1
//
this->backgroundWorker1->WorkerReportsProgress = true;
this->backgroundWorker1->WorkerSupportsCancellation = true;
//
// fmrFreeRun
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(234, 141);
this->Controls->Add(this->progressBar1);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->numSeconds);
this->Controls->Add(this->label1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"fmrFreeRun";
this->SizeGripStyle = System::Windows::Forms::SizeGripStyle::Hide;
this->Text = L"emuThor - Free Run";
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numSeconds))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
private: void InitializeBackgroundWorker() {
backgroundWorker1->DoWork += gcnew DoWorkEventHandler(this, &fmrFreeRun::backgroundWorker1_DoWork);
backgroundWorker1->RunWorkerCompleted += gcnew RunWorkerCompletedEventHandler(this, &fmrFreeRun::backgroundWorker1_RunWorkerCompleted);
backgroundWorker1->ProgressChanged += gcnew ProgressChangedEventHandler(this, &fmrFreeRun::backgroundWorker1_ProgressChanged);
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int xx;
int ticks = (int)this->numSeconds->Value * 1000;
 
this->button1->Enabled = false;
backgroundWorker1->RunWorkerAsync(ticks);
this->button2->Enabled = true;
progressBar1->Value = 0;
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
backgroundWorker1->CancelAsync();
this->button2->Enabled = false;
}
private: void backgroundWorker1_DoWork(Object^ sender, DoWorkEventArgs^ e) {
int xx;
BackgroundWorker^ worker = dynamic_cast<BackgroundWorker^>(sender);
int div = safe_cast<Int32>(e->Argument) / 100;
int percentComplete = 0;
 
mut->WaitOne();
isRunning = true;
mut->ReleaseMutex();
for (xx = 0; xx < safe_cast<Int32>(e->Argument) && isRunning; xx++) {
if (worker->CancellationPending) {
e->Cancel = true;
xx = safe_cast<Int32>(e->Argument);
}
if (xx % div == 0) {
worker->ReportProgress(percentComplete);
percentComplete++;
}
mut->WaitOne();
system1.Run();
mut->ReleaseMutex();
}
mut->WaitOne();
isRunning = false;
mut->ReleaseMutex();
e->Result = 0;
}
private: void backgroundWorker1_ProgressChanged(Object^ sender, ProgressChangedEventArgs^ e) {
this->progressBar1->Value = e->ProgressPercentage;
}
private: void backgroundWorker1_RunWorkerCompleted( Object^ , RunWorkerCompletedEventArgs^ e) {
if (e->Error != nullptr) {
MessageBox::Show(e->Error->Message);
}
else if (e->Cancelled) {
/* possibly display cancelled message in a label */
}
else {
/* possibly display result status */
}
this->button2->Enabled = false;
this->button1->Enabled = true;
this->progressBar1->Value = 0;
}
};
}
/source/clsPIC.h
1,17 → 1,18
#pragma once
#include "clsDevice.h"
#include "clsCPU.h"
#include "clsThor.h"
#include "stdafx.h"
 
extern clsThor cpu1;
extern clsSystem system1;
 
class clsPIC : public clsDevice
{
public:
bool enables[16];
public:
bool irq30Hz;
bool irq1024Hz;
bool irqKeyboard;
bool irqUart;
bool irq;
bool nmi;
unsigned int vecno;
clsPIC(void);
void Reset();
18,58 → 19,8
bool IsSelected(unsigned int ad) {
return ((ad & 0xFFFFFFC0)==0xFFDC0FC0);
};
unsigned int Read(unsigned int ad) {
int nn;
unsigned int dat;
switch((ad >> 2) & 15) {
case 0:
return vecno;
default:
dat = 0;
for (nn = 0; nn < 16; nn++)
dat |= (enables[nn] << nn);
return dat;
}
};
void Write(unsigned int ad, unsigned int dat, unsigned int mask) {
int nn;
switch((ad >> 2) & 15) {
case 1:
for (nn = 0; nn < 16; nn++)
enables[nn] = dat & (1 << nn);
break;
case 2:
enables[dat & 15] = false;
break;
case 3:
enables[dat & 15] = true;
break;
case 5:
if (dat==2)
irq1024Hz = false;
if (dat==3)
irq30Hz = false;
if (dat==15)
irqKeyboard = false;
break;
}
};
void Step(void) {
vecno = 448;
cpu1.irq = false;
if (enables[15] & irqKeyboard) {
cpu1.irq = true;
vecno = 448+15;
}
if (enables[3] & irq30Hz) {
cpu1.irq = true;
vecno = 448+3;
}
if (enables[2] & irq1024Hz) {
cpu1.irq = true;
vecno = 448+2;
}
cpu1.vecno = vecno;
};
unsigned int Read(unsigned int ad);
void Write(unsigned int ad, unsigned int dat, unsigned int mask);
void Step(void);
};
 
/source/frmMemory.h
16,6 → 16,7
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Runtime::InteropServices;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmMemory
23,8 → 24,10
public ref class frmMemory : public System::Windows::Forms::Form
{
public:
frmMemory(void)
Mutex^ mut;
frmMemory(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
123,7 → 126,9
sprintf(buf, "\r\n%06X ", nn);
str2 += buf;
}
mut->WaitOne();
sprintf(buf, "%02X ", (system1.Read(nn,0) >> ((nn & 7)<<3)) & 0xFF);
mut->ReleaseMutex();
str2 += buf;
}
this->textBoxMem->Text = gcnew String(str2.c_str());
/source/emuThor.cpp
4,15 → 4,8
#include "frmRegisters.h"
#include "frmMain.h"
#include "frmScreen.h"
#include "clsCPU.h"
#include "clsThor.h"
#include "clsSystem.h"
#include "clsKeyboard.h"
 
clsThor cpu1;
clsPIC pic1;
clsSystem system1;
clsKeyboard keybd;
volatile unsigned __int8 keybd_scancode;
volatile unsigned __int8 keybd_status;
volatile unsigned int interval1024;
23,10 → 16,10
unsigned int dataBreakpoints[30];
int numBreakpoints;
int numDataBreakpoints;
int runstop;
bool irq1024Hz;
bool irq30Hz;
bool irqKeyboard;
bool irqUart;
bool trigger30;
bool trigger1024;
 
/source/clsThor.h
1,12 → 1,32
#pragma once
#include "clsCPU.h"
 
extern clsSystem system1;
extern class clsSystem system1;
 
class clsThor : public clsCPU
{
bool StatusHWI;
bool StatusDBG;
__int16 StatusEXL;
__int64 string_pc;
unsigned __int64 imm;
bool imm_prefix;
unsigned __int64 ea;
unsigned int mode : 2;
 
void SetGP(int rg, __int64 val);
int GetMode();
void SetSpr(int Sprn, __int64 val);
__int64 GetSpr(int Sprn);
void dRn(int b1, int b2, int b3, int *Ra, int *Sg, __int64 *disp);
void ndx(int b1, int b2, int b3, int *Ra, int *Rb, int *Rt, int *Sg, int *Sc);
int WriteMask(int ad, int sz);
unsigned __int64 ReadByte(int ad);
unsigned __int64 ReadChar(int ad);
unsigned __int64 ReadHalf(int ad);
unsigned __int64 Read(int ad);
public:
__int64 pc;
unsigned __int32 pc;
__int64 gp[64]; // general purpose registers
__int64 ca[16]; // code address registers
__int8 pr[16]; // predicate registers
17,15 → 37,17
__int8 bir;
__int64 dbad0,dbad1,dbad2,dbad3;
__int64 dbctrl,dbstat;
unsigned __int64 imm;
bool imm_prefix;
unsigned __int64 ea;
bool im;
int imcd;
int pred;
__int64 GetGP(int rg);
bool IsKM();
void Reset();
void Step();
unsigned __int64 ReadByte(int ad) { return system1->ReadByte(ad); };
void dRn(int b1, int b2, int b3, int *Ra, int *Sg, __int64 *disp);
private:
inline bool IRQActive() { return !StatusHWI && irq && !im; };
int GetBit(__int64 a, int b);
void SetBit(__int64 *a, int b);
void ClearBit(__int64 *a, int b);
};
 
/source/frmUart.h
0,0 → 1,589
#pragma once
#include "stdafx.h"
extern clsSystem system1;
 
namespace emuThor {
 
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Runtime::InteropServices;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmUart
/// </summary>
public ref class frmUart : public System::Windows::Forms::Form
{
public:
Mutex^ mut;
frmUart(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
 
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~frmUart()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TextBox^ txtToUart;
protected:
 
protected:
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::TextBox^ txtFromUart;
 
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::TextBox^ txtCM0;
private: System::Windows::Forms::TextBox^ txtCM1;
 
 
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::TextBox^ txtCM2;
 
private: System::Windows::Forms::Label^ label5;
private: System::Windows::Forms::TextBox^ txtCM3;
 
private: System::Windows::Forms::Label^ label6;
private: System::Windows::Forms::Label^ label7;
private: System::Windows::Forms::TextBox^ txtTB;
private: System::Windows::Forms::TextBox^ txtLS;
 
 
private: System::Windows::Forms::Label^ label8;
private: System::Windows::Forms::TextBox^ txtMS;
 
private: System::Windows::Forms::Label^ label9;
private: System::Windows::Forms::TextBox^ txtIS;
 
 
private: System::Windows::Forms::Label^ label10;
private: System::Windows::Forms::TextBox^ txtIER;
private: System::Windows::Forms::Label^ label11;
private: System::Windows::Forms::TextBox^ txtFF;
 
private: System::Windows::Forms::Label^ label12;
private: System::Windows::Forms::TextBox^ txtMC;
 
private: System::Windows::Forms::Label^ label13;
private: System::Windows::Forms::TextBox^ txtCTRL;
 
private: System::Windows::Forms::Label^ label14;
private: System::Windows::Forms::TextBox^ txtFC;
 
private: System::Windows::Forms::Label^ label15;
private: System::Windows::Forms::Timer^ timer1;
private: System::Windows::Forms::CheckBox^ checkBox1;
private: System::Windows::Forms::CheckBox^ checkBox2;
private: System::Windows::Forms::CheckBox^ checkBox3;
private: System::Windows::Forms::TextBox^ txtRB;
 
private: System::Windows::Forms::Label^ label16;
private: System::ComponentModel::IContainer^ components;
 
private:
/// <summary>
/// Required designer variable.
/// </summary>
private: bool do_send;
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
this->txtToUart = (gcnew System::Windows::Forms::TextBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->txtFromUart = (gcnew System::Windows::Forms::TextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->label3 = (gcnew System::Windows::Forms::Label());
this->txtCM0 = (gcnew System::Windows::Forms::TextBox());
this->txtCM1 = (gcnew System::Windows::Forms::TextBox());
this->label4 = (gcnew System::Windows::Forms::Label());
this->txtCM2 = (gcnew System::Windows::Forms::TextBox());
this->label5 = (gcnew System::Windows::Forms::Label());
this->txtCM3 = (gcnew System::Windows::Forms::TextBox());
this->label6 = (gcnew System::Windows::Forms::Label());
this->label7 = (gcnew System::Windows::Forms::Label());
this->txtTB = (gcnew System::Windows::Forms::TextBox());
this->txtLS = (gcnew System::Windows::Forms::TextBox());
this->label8 = (gcnew System::Windows::Forms::Label());
this->txtMS = (gcnew System::Windows::Forms::TextBox());
this->label9 = (gcnew System::Windows::Forms::Label());
this->txtIS = (gcnew System::Windows::Forms::TextBox());
this->label10 = (gcnew System::Windows::Forms::Label());
this->txtIER = (gcnew System::Windows::Forms::TextBox());
this->label11 = (gcnew System::Windows::Forms::Label());
this->txtFF = (gcnew System::Windows::Forms::TextBox());
this->label12 = (gcnew System::Windows::Forms::Label());
this->txtMC = (gcnew System::Windows::Forms::TextBox());
this->label13 = (gcnew System::Windows::Forms::Label());
this->txtCTRL = (gcnew System::Windows::Forms::TextBox());
this->label14 = (gcnew System::Windows::Forms::Label());
this->txtFC = (gcnew System::Windows::Forms::TextBox());
this->label15 = (gcnew System::Windows::Forms::Label());
this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox2 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox3 = (gcnew System::Windows::Forms::CheckBox());
this->txtRB = (gcnew System::Windows::Forms::TextBox());
this->label16 = (gcnew System::Windows::Forms::Label());
this->SuspendLayout();
//
// txtToUart
//
this->txtToUart->Location = System::Drawing::Point(31, 27);
this->txtToUart->Multiline = true;
this->txtToUart->Name = L"txtToUart";
this->txtToUart->Size = System::Drawing::Size(318, 124);
this->txtToUart->TabIndex = 0;
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(28, 11);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(53, 13);
this->label1->TabIndex = 1;
this->label1->Text = L"To UART";
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(28, 169);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(95, 13);
this->label2->TabIndex = 2;
this->label2->Text = L"UART Transmitted";
//
// txtFromUart
//
this->txtFromUart->Location = System::Drawing::Point(31, 185);
this->txtFromUart->Multiline = true;
this->txtFromUart->Name = L"txtFromUart";
this->txtFromUart->Size = System::Drawing::Size(318, 124);
this->txtFromUart->TabIndex = 3;
//
// button1
//
this->button1->Location = System::Drawing::Point(474, 353);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 4;
this->button1->Text = L"OK";
this->button1->UseVisualStyleBackColor = true;
//
// button2
//
this->button2->Location = System::Drawing::Point(355, 25);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 5;
this->button2->Text = L"Send";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &frmUart::button2_Click);
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(475, 72);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(29, 13);
this->label3->TabIndex = 6;
this->label3->Text = L"CM0";
//
// txtCM0
//
this->txtCM0->Location = System::Drawing::Point(510, 69);
this->txtCM0->Name = L"txtCM0";
this->txtCM0->ReadOnly = true;
this->txtCM0->Size = System::Drawing::Size(39, 20);
this->txtCM0->TabIndex = 7;
this->txtCM0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtCM1
//
this->txtCM1->Location = System::Drawing::Point(510, 95);
this->txtCM1->Name = L"txtCM1";
this->txtCM1->ReadOnly = true;
this->txtCM1->Size = System::Drawing::Size(39, 20);
this->txtCM1->TabIndex = 9;
this->txtCM1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(475, 98);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(29, 13);
this->label4->TabIndex = 8;
this->label4->Text = L"CM1";
//
// txtCM2
//
this->txtCM2->Location = System::Drawing::Point(510, 121);
this->txtCM2->Name = L"txtCM2";
this->txtCM2->ReadOnly = true;
this->txtCM2->Size = System::Drawing::Size(39, 20);
this->txtCM2->TabIndex = 11;
this->txtCM2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label5
//
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(475, 124);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(29, 13);
this->label5->TabIndex = 10;
this->label5->Text = L"CM2";
//
// txtCM3
//
this->txtCM3->Location = System::Drawing::Point(510, 147);
this->txtCM3->Name = L"txtCM3";
this->txtCM3->ReadOnly = true;
this->txtCM3->Size = System::Drawing::Size(39, 20);
this->txtCM3->TabIndex = 13;
this->txtCM3->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(475, 150);
this->label6->Name = L"label6";
this->label6->Size = System::Drawing::Size(29, 13);
this->label6->TabIndex = 12;
this->label6->Text = L"CM3";
//
// label7
//
this->label7->AutoSize = true;
this->label7->Location = System::Drawing::Point(378, 72);
this->label7->Name = L"label7";
this->label7->Size = System::Drawing::Size(21, 13);
this->label7->TabIndex = 14;
this->label7->Text = L"TB";
//
// txtTB
//
this->txtTB->Location = System::Drawing::Point(413, 69);
this->txtTB->Name = L"txtTB";
this->txtTB->ReadOnly = true;
this->txtTB->Size = System::Drawing::Size(39, 20);
this->txtTB->TabIndex = 15;
this->txtTB->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtLS
//
this->txtLS->Location = System::Drawing::Point(413, 124);
this->txtLS->Name = L"txtLS";
this->txtLS->ReadOnly = true;
this->txtLS->Size = System::Drawing::Size(39, 20);
this->txtLS->TabIndex = 17;
this->txtLS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label8
//
this->label8->AutoSize = true;
this->label8->Location = System::Drawing::Point(378, 127);
this->label8->Name = L"label8";
this->label8->Size = System::Drawing::Size(20, 13);
this->label8->TabIndex = 16;
this->label8->Text = L"LS";
//
// txtMS
//
this->txtMS->Location = System::Drawing::Point(413, 150);
this->txtMS->Name = L"txtMS";
this->txtMS->ReadOnly = true;
this->txtMS->Size = System::Drawing::Size(39, 20);
this->txtMS->TabIndex = 19;
this->txtMS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label9
//
this->label9->AutoSize = true;
this->label9->Location = System::Drawing::Point(378, 153);
this->label9->Name = L"label9";
this->label9->Size = System::Drawing::Size(23, 13);
this->label9->TabIndex = 18;
this->label9->Text = L"MS";
//
// txtIS
//
this->txtIS->Location = System::Drawing::Point(413, 176);
this->txtIS->Name = L"txtIS";
this->txtIS->ReadOnly = true;
this->txtIS->Size = System::Drawing::Size(39, 20);
this->txtIS->TabIndex = 21;
this->txtIS->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label10
//
this->label10->AutoSize = true;
this->label10->Location = System::Drawing::Point(378, 179);
this->label10->Name = L"label10";
this->label10->Size = System::Drawing::Size(17, 13);
this->label10->TabIndex = 20;
this->label10->Text = L"IS";
//
// txtIER
//
this->txtIER->Location = System::Drawing::Point(413, 202);
this->txtIER->Name = L"txtIER";
this->txtIER->Size = System::Drawing::Size(39, 20);
this->txtIER->TabIndex = 23;
this->txtIER->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label11
//
this->label11->AutoSize = true;
this->label11->Location = System::Drawing::Point(378, 205);
this->label11->Name = L"label11";
this->label11->Size = System::Drawing::Size(25, 13);
this->label11->TabIndex = 22;
this->label11->Text = L"IER";
//
// txtFF
//
this->txtFF->Location = System::Drawing::Point(413, 228);
this->txtFF->Name = L"txtFF";
this->txtFF->Size = System::Drawing::Size(39, 20);
this->txtFF->TabIndex = 25;
this->txtFF->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label12
//
this->label12->AutoSize = true;
this->label12->Location = System::Drawing::Point(378, 231);
this->label12->Name = L"label12";
this->label12->Size = System::Drawing::Size(19, 13);
this->label12->TabIndex = 24;
this->label12->Text = L"FF";
//
// txtMC
//
this->txtMC->Location = System::Drawing::Point(413, 254);
this->txtMC->Name = L"txtMC";
this->txtMC->Size = System::Drawing::Size(39, 20);
this->txtMC->TabIndex = 27;
this->txtMC->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label13
//
this->label13->AutoSize = true;
this->label13->Location = System::Drawing::Point(378, 257);
this->label13->Name = L"label13";
this->label13->Size = System::Drawing::Size(23, 13);
this->label13->TabIndex = 26;
this->label13->Text = L"MC";
//
// txtCTRL
//
this->txtCTRL->Location = System::Drawing::Point(413, 280);
this->txtCTRL->Name = L"txtCTRL";
this->txtCTRL->Size = System::Drawing::Size(39, 20);
this->txtCTRL->TabIndex = 29;
this->txtCTRL->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label14
//
this->label14->AutoSize = true;
this->label14->Location = System::Drawing::Point(378, 283);
this->label14->Name = L"label14";
this->label14->Size = System::Drawing::Size(35, 13);
this->label14->TabIndex = 28;
this->label14->Text = L"CTRL";
//
// txtFC
//
this->txtFC->Location = System::Drawing::Point(510, 176);
this->txtFC->Name = L"txtFC";
this->txtFC->Size = System::Drawing::Size(39, 20);
this->txtFC->TabIndex = 31;
this->txtFC->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label15
//
this->label15->AutoSize = true;
this->label15->Location = System::Drawing::Point(475, 179);
this->label15->Name = L"label15";
this->label15->Size = System::Drawing::Size(20, 13);
this->label15->TabIndex = 30;
this->label15->Text = L"FC";
//
// timer1
//
this->timer1->Enabled = true;
this->timer1->Tick += gcnew System::EventHandler(this, &frmUart::timer1_Tick);
//
// checkBox1
//
this->checkBox1->AutoSize = true;
this->checkBox1->Checked = true;
this->checkBox1->CheckState = System::Windows::Forms::CheckState::Checked;
this->checkBox1->Location = System::Drawing::Point(31, 315);
this->checkBox1->Name = L"checkBox1";
this->checkBox1->Size = System::Drawing::Size(47, 17);
this->checkBox1->TabIndex = 32;
this->checkBox1->Text = L"CTS";
this->checkBox1->UseVisualStyleBackColor = true;
//
// checkBox2
//
this->checkBox2->AutoSize = true;
this->checkBox2->Checked = true;
this->checkBox2->CheckState = System::Windows::Forms::CheckState::Checked;
this->checkBox2->Location = System::Drawing::Point(31, 338);
this->checkBox2->Name = L"checkBox2";
this->checkBox2->Size = System::Drawing::Size(49, 17);
this->checkBox2->TabIndex = 33;
this->checkBox2->Text = L"DSR";
this->checkBox2->UseVisualStyleBackColor = true;
//
// checkBox3
//
this->checkBox3->AutoSize = true;
this->checkBox3->Checked = true;
this->checkBox3->CheckState = System::Windows::Forms::CheckState::Checked;
this->checkBox3->Location = System::Drawing::Point(31, 361);
this->checkBox3->Name = L"checkBox3";
this->checkBox3->Size = System::Drawing::Size(49, 17);
this->checkBox3->TabIndex = 34;
this->checkBox3->Text = L"DCD";
this->checkBox3->UseVisualStyleBackColor = true;
//
// txtRB
//
this->txtRB->Location = System::Drawing::Point(413, 95);
this->txtRB->Name = L"txtRB";
this->txtRB->ReadOnly = true;
this->txtRB->Size = System::Drawing::Size(39, 20);
this->txtRB->TabIndex = 36;
this->txtRB->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label16
//
this->label16->AutoSize = true;
this->label16->Location = System::Drawing::Point(378, 98);
this->label16->Name = L"label16";
this->label16->Size = System::Drawing::Size(22, 13);
this->label16->TabIndex = 35;
this->label16->Text = L"RB";
//
// frmUart
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(571, 388);
this->Controls->Add(this->txtRB);
this->Controls->Add(this->label16);
this->Controls->Add(this->checkBox3);
this->Controls->Add(this->checkBox2);
this->Controls->Add(this->checkBox1);
this->Controls->Add(this->txtFC);
this->Controls->Add(this->label15);
this->Controls->Add(this->txtCTRL);
this->Controls->Add(this->label14);
this->Controls->Add(this->txtMC);
this->Controls->Add(this->label13);
this->Controls->Add(this->txtFF);
this->Controls->Add(this->label12);
this->Controls->Add(this->txtIER);
this->Controls->Add(this->label11);
this->Controls->Add(this->txtIS);
this->Controls->Add(this->label10);
this->Controls->Add(this->txtMS);
this->Controls->Add(this->label9);
this->Controls->Add(this->txtLS);
this->Controls->Add(this->label8);
this->Controls->Add(this->txtTB);
this->Controls->Add(this->label7);
this->Controls->Add(this->txtCM3);
this->Controls->Add(this->label6);
this->Controls->Add(this->txtCM2);
this->Controls->Add(this->label5);
this->Controls->Add(this->txtCM1);
this->Controls->Add(this->label4);
this->Controls->Add(this->txtCM0);
this->Controls->Add(this->label3);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->txtFromUart);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->txtToUart);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->Name = L"frmUart";
this->Text = L"rtfSimpleUart Emulator";
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
do_send = true;
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
int dat;
char buf[5];
 
if (do_send && txtToUart->Text->Length > 0) {
char* str = (char*)(void*)Marshal::StringToHGlobalAnsi(txtToUart->Text->Substring(0,1));
txtToUart->Text = txtToUart->Text->Substring(1);
mut->WaitOne();
system1.uart1.RxPort(str[0]);
mut->ReleaseMutex();
}
if (txtToUart->Text->Length <= 0)
do_send = false;
mut->WaitOne();
dat = system1.uart1.TxPort() & 0xFF;
mut->ReleaseMutex();
buf[0] = dat;
buf[1] = '\0';
if (dat != 0xFF)
txtFromUart->Text = txtFromUart->Text + gcnew String(buf);
mut->WaitOne();
sprintf(buf, "%02X", system1.uart1.cm1);
txtCM1->Text = gcnew String(buf);
sprintf(buf, "%02X", system1.uart1.cm2);
txtCM2->Text = gcnew String(buf);
sprintf(buf, "%02X", system1.uart1.cm3);
txtCM3->Text = gcnew String(buf);
sprintf(buf, "%02X", system1.uart1.ls);
txtLS->Text = gcnew String(buf);
sprintf(buf, "%02X", system1.uart1.rb);
txtRB->Text = gcnew String(buf);
sprintf(buf, "%02X", system1.uart1.tb);
txtTB->Text = gcnew String(buf);
sprintf(buf, "%02X", system1.uart1.ier);
txtIER->Text = gcnew String(buf);
sprintf(buf, "%02X", system1.uart1.is);
mut->ReleaseMutex();
txtIS->Text = gcnew String(buf);
}
};
}
/source/clsSystem.cpp
1,6 → 1,16
#include "stdafx.h"
 
extern clsPIC pic1;
extern unsigned int breakpoints[30];
extern unsigned __int64 ibreakpoints[10];
extern bool ib_active[10];
extern bool isRunning;
extern bool stepout, stepover;
extern unsigned int step_depth, stepover_depth;
extern unsigned int stepoverBkpt;
extern unsigned int stepover_pc;
extern bool animate;
extern bool fullspeed;
extern bool runstop;
 
clsSystem::clsSystem() {
int nn;
8,6 → 18,7
for (nn = 0; nn < sizeof(memory); nn+=8) {
memory[nn>>3] = 0;
}
quit = false;
Reset();
};
void clsSystem::Reset()
23,8 → 34,11
leds = 0;
write_error = false;
runstop = false;
cpu1.system1 = this;
cpu2.system1 = this;
refscreen = true;
cpu2.Reset();
pic1.Reset();
uart1.Reset();
};
unsigned __int64 clsSystem::Read(unsigned int ad, int sr) {
__int64 rr;
74,6 → 88,12
rr = (rr << 48) | (rr << 32) | (rr << 16) | rr;
return rr;
}
else if (uart1.IsSelected(ad)) {
rr = uart1.Read(ad) & 0xFF;
rr = (rr << 56) | (rr << 48) || (rr << 40) | (rr << 32)
| (rr << 24) | (rr << 16) | (rr << 8) | rr;
return rr;
}
return 0;
};
int clsSystem::Write(unsigned int ad, unsigned __int64 dat, unsigned int mask, int cr) {
91,7 → 111,7
radr2 = 0x00000000;
}
if (ad < 134217728) {
if (ad >= 0x10000 && ad < 0x20000) {
if (ad >= 0xFFFC0000LL) {
write_error = true;
ret = true;
goto j1;
197,6 → 217,11
VideoMemDirty[(ad>>2)&0xfff] = true;
refscreen = true;
}
else if ((ad & 0xFFFF0000)==0xFFD10000) {
DBGVideoMem[(ad>>2)& 0xFFF] = dat;
DBGVideoMemDirty[(ad>>2)&0xfff] = true;
refscreen = true;
}
else if ((ad & 0xFFFC0000)==0xFFFC0000 && WriteROM) {
rom[(ad&0x3FFFF)>>3] = dat;
}
208,6 → 233,9
else if (pic1.IsSelected(ad)) {
pic1.Write(ad,dat,0x3);
}
else if (uart1.IsSelected(ad)) {
uart1.Write(ad,dat,0x1);
}
ret = true;
j1:
for (nn = 0; nn < numDataBreakpoints; nn++) {
227,3 → 255,91
unsigned __int64 dat = Read(ad);
return (dat >> ((ad & 7) * 8)) & 0xFFLL;
}
unsigned __int64 clsSystem::ReadChar(unsigned int ad) {
unsigned __int64 dat = Read(ad);
return (dat >> ((ad & 7) * 8)) & 0xFFFFLL;
}
unsigned __int64 clsSystem::ReadHalf(unsigned int ad) {
unsigned __int64 dat = Read(ad);
return (dat >> ((ad & 7) * 8)) & 0xFFFFFFFFLL;
}
 
 
void clsSystem::Step() {
uart1.Step();
keybd.Step();
pic1.Step();
cpu2.Step();
}
 
void clsSystem::Run() {
int nn,kk;
int xx;
 
do {
if (isRunning) {
// if (cpu2.pc > 134217727) {
if (cpu2.pc < 0xFFFC0000LL && cpu2.pc & 0x1000 != 0x1000) {
isRunning = false;
continue;
}
if (cpu2.pc == stepoverBkpt) {
stepoverBkpt = 0;
isRunning = false;
continue;
}
for (kk = 0; kk < 5; kk++) {
if (cpu2.pc == ibreakpoints[kk] && ib_active[kk]) {
isRunning = false;
continue;
}
}
if (system1.write_error==true) {
isRunning = false;
continue;
// this->lblWriteErr->Visible = true;
}
// Runstop becomes active when a data breakpoint is hit.
if (runstop) {
isRunning = false;
runstop = false;
continue;
}
cpu2.Step();
pic1.Step();
if (stepout) {
if (cpu2.sub_depth<step_depth) {
isRunning = false;
stepout = false;
continue;
}
}
if (stepover) {
if (cpu2.pc > stepover_pc && cpu2.sub_depth==stepover_depth) {
isRunning = false;
stepover = false;
continue;
}
}
/*
if (cpu2.pc == stepoverBkpt) {
stepoverBkpt = 0;
cpu2.isRunning = false;
UpdateListBox(cpu2.pc-32);
return;
}
for (kk = 0; kk < numBreakpoints; kk++) {
if (cpu2.pc == breakpoints[kk]) {
cpu2.isRunning = false;
UpdateListBox(cpu2.pc-32);
return;
}
}
cpu2.Step();
pic1.Step();
UpdateListBox(cpu2.pc-32);
*/
// UpdateListBox(cpu2.pc-32);
}
} while (false); // !quit
}
/source/frmBreakpoints.cpp
0,0 → 1,7
#include "StdAfx.h"
#include "frmBreakpoints.h"
 
unsigned __int64 ibreakpoints[10];
unsigned __int64 dbreakpoints[10];
bool ib_active[10];
bool db_active[10];
/source/frmInterrupts.h
0,0 → 1,867
#pragma once
extern bool irq1024Hz;
extern bool irq30Hz;
extern bool irqKeyboard;
extern bool irqUart;
extern bool trigger30;
extern bool trigger1024;
extern volatile unsigned int interval1024;
extern volatile unsigned int interval30;
 
namespace emuThor {
 
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmInterrupts
/// </summary>
public ref class frmInterrupts : public System::Windows::Forms::Form
{
public:
Mutex^ mut;
frmInterrupts(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
//
char buf[20];
 
mut->WaitOne();
system1.pic1.Step();
trigger30 = false;
trigger1024 = false;
checkBox0En->Checked = system1.pic1.enables[0];
checkBox1En->Checked = system1.pic1.enables[1];
checkBox2En->Checked = system1.pic1.enables[2];
checkBox3En->Checked = system1.pic1.enables[3];
checkBox7En->Checked = system1.pic1.enables[7];
checkBox1Act->Checked = system1.pic1.irq1024Hz;
checkBox2Act->Checked = system1.pic1.irq30Hz;
checkBox3Act->Checked = system1.pic1.irqKeyboard;
checkBox7Act->Checked = system1.pic1.irqUart;
checkBoxIRQOut->Checked = system1.pic1.irq;
sprintf(buf, "%d (%02X)", system1.pic1.vecno, system1.pic1.vecno);
mut->ReleaseMutex();
textBoxVecno->Text = gcnew String(buf);
}
frmInterrupts(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
char buf[20];
 
mut->WaitOne();
system1.pic1.Step();
trigger30 = false;
trigger1024 = false;
checkBox0En->Checked = system1.pic1.enables[0];
checkBox1En->Checked = system1.pic1.enables[1];
checkBox2En->Checked = system1.pic1.enables[2];
checkBox3En->Checked = system1.pic1.enables[3];
checkBox7En->Checked = system1.pic1.enables[7];
checkBox1Act->Checked = system1.pic1.irq1024Hz;
checkBox2Act->Checked = system1.pic1.irq30Hz;
checkBox3Act->Checked = system1.pic1.irqKeyboard;
checkBox7Act->Checked = system1.pic1.irqUart;
checkBoxIRQOut->Checked = system1.pic1.irq;
sprintf(buf, "%d (%02X)", system1.pic1.vecno, system1.pic1.vecno);
mut->ReleaseMutex();
textBoxVecno->Text = gcnew String(buf);
}
 
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~frmInterrupts()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ btnOK;
protected:
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Button^ btnTrigger30;
private: System::Windows::Forms::ComboBox^ comboBox30;
private: System::Windows::Forms::Button^ btnTrigger1024;
private: System::Windows::Forms::ComboBox^ comboBox1024;
private: System::Windows::Forms::CheckBox^ checkBox1024;
private: System::Windows::Forms::CheckBox^ checkBoxKeyboard;
private: System::Windows::Forms::CheckBox^ checkBox30;
private: System::Windows::Forms::CheckBox^ checkBoxUart;
private: System::Windows::Forms::GroupBox^ groupBox1;
private: System::Windows::Forms::Label^ label6;
private: System::Windows::Forms::Label^ label5;
private: System::Windows::Forms::TextBox^ textBoxVecno;
private: System::Windows::Forms::CheckBox^ checkBoxIRQOut;
 
 
private: System::Windows::Forms::CheckBox^ checkBoxNMIOut;
 
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::CheckBox^ checkBox17;
private: System::Windows::Forms::CheckBox^ checkBox18;
private: System::Windows::Forms::CheckBox^ checkBox19;
private: System::Windows::Forms::CheckBox^ checkBox20;
private: System::Windows::Forms::CheckBox^ checkBox21;
private: System::Windows::Forms::CheckBox^ checkBox22;
private: System::Windows::Forms::CheckBox^ checkBox23;
private: System::Windows::Forms::CheckBox^ checkBox24;
private: System::Windows::Forms::CheckBox^ checkBox7Act;
 
private: System::Windows::Forms::CheckBox^ checkBox26;
private: System::Windows::Forms::CheckBox^ checkBox27;
private: System::Windows::Forms::CheckBox^ checkBox28;
private: System::Windows::Forms::CheckBox^ checkBox3Act;
 
private: System::Windows::Forms::CheckBox^ checkBox2Act;
 
private: System::Windows::Forms::CheckBox^ checkBox1Act;
 
private: System::Windows::Forms::CheckBox^ checkBox0Act;
 
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::CheckBox^ checkBox16;
private: System::Windows::Forms::CheckBox^ checkBox15;
private: System::Windows::Forms::CheckBox^ checkBox14;
private: System::Windows::Forms::CheckBox^ checkBox13;
private: System::Windows::Forms::CheckBox^ checkBox12;
private: System::Windows::Forms::CheckBox^ checkBox11;
private: System::Windows::Forms::CheckBox^ checkBox10;
private: System::Windows::Forms::CheckBox^ checkBox9;
private: System::Windows::Forms::CheckBox^ checkBox7En;
 
private: System::Windows::Forms::CheckBox^ checkBox7;
private: System::Windows::Forms::CheckBox^ checkBox6;
private: System::Windows::Forms::CheckBox^ checkBox4En;
 
private: System::Windows::Forms::CheckBox^ checkBox3En;
 
private: System::Windows::Forms::CheckBox^ checkBox2En;
 
private: System::Windows::Forms::CheckBox^ checkBox1En;
 
private: System::Windows::Forms::CheckBox^ checkBox0En;
 
 
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->btnOK = (gcnew System::Windows::Forms::Button());
this->label2 = (gcnew System::Windows::Forms::Label());
this->label1 = (gcnew System::Windows::Forms::Label());
this->btnTrigger30 = (gcnew System::Windows::Forms::Button());
this->comboBox30 = (gcnew System::Windows::Forms::ComboBox());
this->btnTrigger1024 = (gcnew System::Windows::Forms::Button());
this->comboBox1024 = (gcnew System::Windows::Forms::ComboBox());
this->checkBox1024 = (gcnew System::Windows::Forms::CheckBox());
this->checkBoxKeyboard = (gcnew System::Windows::Forms::CheckBox());
this->checkBox30 = (gcnew System::Windows::Forms::CheckBox());
this->checkBoxUart = (gcnew System::Windows::Forms::CheckBox());
this->groupBox1 = (gcnew System::Windows::Forms::GroupBox());
this->label6 = (gcnew System::Windows::Forms::Label());
this->label5 = (gcnew System::Windows::Forms::Label());
this->textBoxVecno = (gcnew System::Windows::Forms::TextBox());
this->checkBoxIRQOut = (gcnew System::Windows::Forms::CheckBox());
this->checkBoxNMIOut = (gcnew System::Windows::Forms::CheckBox());
this->label4 = (gcnew System::Windows::Forms::Label());
this->checkBox17 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox18 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox19 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox20 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox21 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox22 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox23 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox24 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox7Act = (gcnew System::Windows::Forms::CheckBox());
this->checkBox26 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox27 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox28 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox3Act = (gcnew System::Windows::Forms::CheckBox());
this->checkBox2Act = (gcnew System::Windows::Forms::CheckBox());
this->checkBox1Act = (gcnew System::Windows::Forms::CheckBox());
this->checkBox0Act = (gcnew System::Windows::Forms::CheckBox());
this->label3 = (gcnew System::Windows::Forms::Label());
this->checkBox16 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox15 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox14 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox13 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox12 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox11 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox10 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox9 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox7En = (gcnew System::Windows::Forms::CheckBox());
this->checkBox7 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox6 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox4En = (gcnew System::Windows::Forms::CheckBox());
this->checkBox3En = (gcnew System::Windows::Forms::CheckBox());
this->checkBox2En = (gcnew System::Windows::Forms::CheckBox());
this->checkBox1En = (gcnew System::Windows::Forms::CheckBox());
this->checkBox0En = (gcnew System::Windows::Forms::CheckBox());
this->groupBox1->SuspendLayout();
this->SuspendLayout();
//
// btnOK
//
this->btnOK->DialogResult = System::Windows::Forms::DialogResult::OK;
this->btnOK->Location = System::Drawing::Point(247, 115);
this->btnOK->Name = L"btnOK";
this->btnOK->Size = System::Drawing::Size(75, 23);
this->btnOK->TabIndex = 19;
this->btnOK->Text = L"OK";
this->btnOK->UseVisualStyleBackColor = true;
this->btnOK->Click += gcnew System::EventHandler(this, &frmInterrupts::btnOK_Click);
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(107, 21);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(57, 13);
this->label2->TabIndex = 18;
this->label2->Text = L"Frequency";
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(10, 21);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(77, 13);
this->label1->TabIndex = 17;
this->label1->Text = L"Source Enable";
//
// btnTrigger30
//
this->btnTrigger30->Location = System::Drawing::Point(247, 70);
this->btnTrigger30->Name = L"btnTrigger30";
this->btnTrigger30->Size = System::Drawing::Size(75, 23);
this->btnTrigger30->TabIndex = 16;
this->btnTrigger30->Text = L"Trigger";
this->btnTrigger30->UseVisualStyleBackColor = true;
this->btnTrigger30->Click += gcnew System::EventHandler(this, &frmInterrupts::btnTrigger30_Click);
//
// comboBox30
//
this->comboBox30->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
this->comboBox30->FormattingEnabled = true;
this->comboBox30->Items->AddRange(gcnew cli::array< System::Object^ >(5) {L"30Hz", L"3 Hz", L"Every 3 seconds", L"Every 30 Seconds",
L"One shot"});
this->comboBox30->Location = System::Drawing::Point(110, 72);
this->comboBox30->Name = L"comboBox30";
this->comboBox30->Size = System::Drawing::Size(121, 21);
this->comboBox30->TabIndex = 15;
//
// btnTrigger1024
//
this->btnTrigger1024->Location = System::Drawing::Point(247, 41);
this->btnTrigger1024->Name = L"btnTrigger1024";
this->btnTrigger1024->Size = System::Drawing::Size(75, 23);
this->btnTrigger1024->TabIndex = 14;
this->btnTrigger1024->Text = L"Trigger";
this->btnTrigger1024->UseVisualStyleBackColor = true;
this->btnTrigger1024->Click += gcnew System::EventHandler(this, &frmInterrupts::btnTrigger1024_Click);
//
// comboBox1024
//
this->comboBox1024->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
this->comboBox1024->FormattingEnabled = true;
this->comboBox1024->Items->AddRange(gcnew cli::array< System::Object^ >(3) {L"102 Hz", L"1 Hz", L"One shot"});
this->comboBox1024->Location = System::Drawing::Point(110, 43);
this->comboBox1024->Name = L"comboBox1024";
this->comboBox1024->Size = System::Drawing::Size(121, 21);
this->comboBox1024->TabIndex = 13;
//
// checkBox1024
//
this->checkBox1024->AutoSize = true;
this->checkBox1024->Location = System::Drawing::Point(13, 47);
this->checkBox1024->Name = L"checkBox1024";
this->checkBox1024->Size = System::Drawing::Size(63, 17);
this->checkBox1024->TabIndex = 12;
this->checkBox1024->Text = L"1024Hz";
this->checkBox1024->UseVisualStyleBackColor = true;
//
// checkBoxKeyboard
//
this->checkBoxKeyboard->AutoSize = true;
this->checkBoxKeyboard->Enabled = false;
this->checkBoxKeyboard->Location = System::Drawing::Point(13, 93);
this->checkBoxKeyboard->Name = L"checkBoxKeyboard";
this->checkBoxKeyboard->Size = System::Drawing::Size(71, 17);
this->checkBoxKeyboard->TabIndex = 11;
this->checkBoxKeyboard->Text = L"Keyboard";
this->checkBoxKeyboard->UseVisualStyleBackColor = true;
//
// checkBox30
//
this->checkBox30->AutoSize = true;
this->checkBox30->Location = System::Drawing::Point(13, 70);
this->checkBox30->Name = L"checkBox30";
this->checkBox30->Size = System::Drawing::Size(51, 17);
this->checkBox30->TabIndex = 10;
this->checkBox30->Text = L"30Hz";
this->checkBox30->UseVisualStyleBackColor = true;
//
// checkBoxUart
//
this->checkBoxUart->AutoSize = true;
this->checkBoxUart->Enabled = false;
this->checkBoxUart->Location = System::Drawing::Point(13, 116);
this->checkBoxUart->Name = L"checkBoxUart";
this->checkBoxUart->Size = System::Drawing::Size(46, 17);
this->checkBoxUart->TabIndex = 20;
this->checkBoxUart->Text = L"Uart";
this->checkBoxUart->UseVisualStyleBackColor = true;
//
// groupBox1
//
this->groupBox1->Controls->Add(this->label6);
this->groupBox1->Controls->Add(this->label5);
this->groupBox1->Controls->Add(this->textBoxVecno);
this->groupBox1->Controls->Add(this->checkBoxIRQOut);
this->groupBox1->Controls->Add(this->checkBoxNMIOut);
this->groupBox1->Controls->Add(this->label4);
this->groupBox1->Controls->Add(this->checkBox17);
this->groupBox1->Controls->Add(this->checkBox18);
this->groupBox1->Controls->Add(this->checkBox19);
this->groupBox1->Controls->Add(this->checkBox20);
this->groupBox1->Controls->Add(this->checkBox21);
this->groupBox1->Controls->Add(this->checkBox22);
this->groupBox1->Controls->Add(this->checkBox23);
this->groupBox1->Controls->Add(this->checkBox24);
this->groupBox1->Controls->Add(this->checkBox7Act);
this->groupBox1->Controls->Add(this->checkBox26);
this->groupBox1->Controls->Add(this->checkBox27);
this->groupBox1->Controls->Add(this->checkBox28);
this->groupBox1->Controls->Add(this->checkBox3Act);
this->groupBox1->Controls->Add(this->checkBox2Act);
this->groupBox1->Controls->Add(this->checkBox1Act);
this->groupBox1->Controls->Add(this->checkBox0Act);
this->groupBox1->Controls->Add(this->label3);
this->groupBox1->Controls->Add(this->checkBox16);
this->groupBox1->Controls->Add(this->checkBox15);
this->groupBox1->Controls->Add(this->checkBox14);
this->groupBox1->Controls->Add(this->checkBox13);
this->groupBox1->Controls->Add(this->checkBox12);
this->groupBox1->Controls->Add(this->checkBox11);
this->groupBox1->Controls->Add(this->checkBox10);
this->groupBox1->Controls->Add(this->checkBox9);
this->groupBox1->Controls->Add(this->checkBox7En);
this->groupBox1->Controls->Add(this->checkBox7);
this->groupBox1->Controls->Add(this->checkBox6);
this->groupBox1->Controls->Add(this->checkBox4En);
this->groupBox1->Controls->Add(this->checkBox3En);
this->groupBox1->Controls->Add(this->checkBox2En);
this->groupBox1->Controls->Add(this->checkBox1En);
this->groupBox1->Controls->Add(this->checkBox0En);
this->groupBox1->Location = System::Drawing::Point(12, 144);
this->groupBox1->Name = L"groupBox1";
this->groupBox1->Size = System::Drawing::Size(310, 414);
this->groupBox1->TabIndex = 21;
this->groupBox1->TabStop = false;
this->groupBox1->Text = L"PIC State";
//
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(232, 26);
this->label6->Name = L"label6";
this->label6->Size = System::Drawing::Size(59, 13);
this->label6->TabIndex = 38;
this->label6->Text = L"PIC Output";
//
// label5
//
this->label5->AutoSize = true;
this->label5->Enabled = false;
this->label5->Location = System::Drawing::Point(232, 93);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(38, 13);
this->label5->TabIndex = 37;
this->label5->Text = L"Vecno";
//
// textBoxVecno
//
this->textBoxVecno->Enabled = false;
this->textBoxVecno->Location = System::Drawing::Point(235, 112);
this->textBoxVecno->Name = L"textBoxVecno";
this->textBoxVecno->Size = System::Drawing::Size(56, 20);
this->textBoxVecno->TabIndex = 36;
//
// checkBoxIRQOut
//
this->checkBoxIRQOut->AutoSize = true;
this->checkBoxIRQOut->Enabled = false;
this->checkBoxIRQOut->Location = System::Drawing::Point(235, 69);
this->checkBoxIRQOut->Name = L"checkBoxIRQOut";
this->checkBoxIRQOut->Size = System::Drawing::Size(45, 17);
this->checkBoxIRQOut->TabIndex = 35;
this->checkBoxIRQOut->Text = L"IRQ";
this->checkBoxIRQOut->UseVisualStyleBackColor = true;
//
// checkBoxNMIOut
//
this->checkBoxNMIOut->AutoSize = true;
this->checkBoxNMIOut->Enabled = false;
this->checkBoxNMIOut->Location = System::Drawing::Point(235, 46);
this->checkBoxNMIOut->Name = L"checkBoxNMIOut";
this->checkBoxNMIOut->Size = System::Drawing::Size(46, 17);
this->checkBoxNMIOut->TabIndex = 34;
this->checkBoxNMIOut->Text = L"NMI";
this->checkBoxNMIOut->UseVisualStyleBackColor = true;
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(119, 26);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(64, 13);
this->label4->TabIndex = 33;
this->label4->Text = L"Input Active";
//
// checkBox17
//
this->checkBox17->AutoSize = true;
this->checkBox17->Enabled = false;
this->checkBox17->Location = System::Drawing::Point(119, 390);
this->checkBox17->Name = L"checkBox17";
this->checkBox17->Size = System::Drawing::Size(97, 17);
this->checkBox17->TabIndex = 32;
this->checkBox17->Text = L"15 Unassigned";
this->checkBox17->UseVisualStyleBackColor = true;
//
// checkBox18
//
this->checkBox18->AutoSize = true;
this->checkBox18->Enabled = false;
this->checkBox18->Location = System::Drawing::Point(119, 367);
this->checkBox18->Name = L"checkBox18";
this->checkBox18->Size = System::Drawing::Size(97, 17);
this->checkBox18->TabIndex = 31;
this->checkBox18->Text = L"14 Unassigned";
this->checkBox18->UseVisualStyleBackColor = true;
//
// checkBox19
//
this->checkBox19->AutoSize = true;
this->checkBox19->Enabled = false;
this->checkBox19->Location = System::Drawing::Point(119, 344);
this->checkBox19->Name = L"checkBox19";
this->checkBox19->Size = System::Drawing::Size(97, 17);
this->checkBox19->TabIndex = 30;
this->checkBox19->Text = L"13 Unassigned";
this->checkBox19->UseVisualStyleBackColor = true;
//
// checkBox20
//
this->checkBox20->AutoSize = true;
this->checkBox20->Enabled = false;
this->checkBox20->Location = System::Drawing::Point(119, 321);
this->checkBox20->Name = L"checkBox20";
this->checkBox20->Size = System::Drawing::Size(97, 17);
this->checkBox20->TabIndex = 29;
this->checkBox20->Text = L"12 Unassigned";
this->checkBox20->UseVisualStyleBackColor = true;
//
// checkBox21
//
this->checkBox21->AutoSize = true;
this->checkBox21->Enabled = false;
this->checkBox21->Location = System::Drawing::Point(119, 299);
this->checkBox21->Name = L"checkBox21";
this->checkBox21->Size = System::Drawing::Size(97, 17);
this->checkBox21->TabIndex = 28;
this->checkBox21->Text = L"11 Unassigned";
this->checkBox21->UseVisualStyleBackColor = true;
//
// checkBox22
//
this->checkBox22->AutoSize = true;
this->checkBox22->Enabled = false;
this->checkBox22->Location = System::Drawing::Point(119, 276);
this->checkBox22->Name = L"checkBox22";
this->checkBox22->Size = System::Drawing::Size(97, 17);
this->checkBox22->TabIndex = 27;
this->checkBox22->Text = L"10 Unassigned";
this->checkBox22->UseVisualStyleBackColor = true;
//
// checkBox23
//
this->checkBox23->AutoSize = true;
this->checkBox23->Enabled = false;
this->checkBox23->Location = System::Drawing::Point(119, 253);
this->checkBox23->Name = L"checkBox23";
this->checkBox23->Size = System::Drawing::Size(91, 17);
this->checkBox23->TabIndex = 26;
this->checkBox23->Text = L"9 Unassigned";
this->checkBox23->UseVisualStyleBackColor = true;
//
// checkBox24
//
this->checkBox24->AutoSize = true;
this->checkBox24->Enabled = false;
this->checkBox24->Location = System::Drawing::Point(119, 230);
this->checkBox24->Name = L"checkBox24";
this->checkBox24->Size = System::Drawing::Size(91, 17);
this->checkBox24->TabIndex = 25;
this->checkBox24->Text = L"8 Unassigned";
this->checkBox24->UseVisualStyleBackColor = true;
//
// checkBox7Act
//
this->checkBox7Act->AutoSize = true;
this->checkBox7Act->Enabled = false;
this->checkBox7Act->Location = System::Drawing::Point(119, 207);
this->checkBox7Act->Name = L"checkBox7Act";
this->checkBox7Act->Size = System::Drawing::Size(55, 17);
this->checkBox7Act->TabIndex = 24;
this->checkBox7Act->Text = L"7 Uart";
this->checkBox7Act->UseVisualStyleBackColor = true;
//
// checkBox26
//
this->checkBox26->AutoSize = true;
this->checkBox26->Enabled = false;
this->checkBox26->Location = System::Drawing::Point(119, 184);
this->checkBox26->Name = L"checkBox26";
this->checkBox26->Size = System::Drawing::Size(91, 17);
this->checkBox26->TabIndex = 23;
this->checkBox26->Text = L"6 Unassigned";
this->checkBox26->UseVisualStyleBackColor = true;
//
// checkBox27
//
this->checkBox27->AutoSize = true;
this->checkBox27->Enabled = false;
this->checkBox27->Location = System::Drawing::Point(119, 161);
this->checkBox27->Name = L"checkBox27";
this->checkBox27->Size = System::Drawing::Size(91, 17);
this->checkBox27->TabIndex = 22;
this->checkBox27->Text = L"5 Unassigned";
this->checkBox27->UseVisualStyleBackColor = true;
//
// checkBox28
//
this->checkBox28->AutoSize = true;
this->checkBox28->Enabled = false;
this->checkBox28->Location = System::Drawing::Point(119, 138);
this->checkBox28->Name = L"checkBox28";
this->checkBox28->Size = System::Drawing::Size(91, 17);
this->checkBox28->TabIndex = 21;
this->checkBox28->Text = L"4 Unassigned";
this->checkBox28->UseVisualStyleBackColor = true;
//
// checkBox3Act
//
this->checkBox3Act->AutoSize = true;
this->checkBox3Act->Enabled = false;
this->checkBox3Act->Location = System::Drawing::Point(119, 115);
this->checkBox3Act->Name = L"checkBox3Act";
this->checkBox3Act->Size = System::Drawing::Size(80, 17);
this->checkBox3Act->TabIndex = 20;
this->checkBox3Act->Text = L"3 Keyboard";
this->checkBox3Act->UseVisualStyleBackColor = true;
//
// checkBox2Act
//
this->checkBox2Act->AutoSize = true;
this->checkBox2Act->Enabled = false;
this->checkBox2Act->Location = System::Drawing::Point(119, 92);
this->checkBox2Act->Name = L"checkBox2Act";
this->checkBox2Act->Size = System::Drawing::Size(60, 17);
this->checkBox2Act->TabIndex = 19;
this->checkBox2Act->Text = L"2 30Hz";
this->checkBox2Act->UseVisualStyleBackColor = true;
//
// checkBox1Act
//
this->checkBox1Act->AutoSize = true;
this->checkBox1Act->Enabled = false;
this->checkBox1Act->Location = System::Drawing::Point(119, 69);
this->checkBox1Act->Name = L"checkBox1Act";
this->checkBox1Act->Size = System::Drawing::Size(72, 17);
this->checkBox1Act->TabIndex = 18;
this->checkBox1Act->Text = L"1 1024Hz";
this->checkBox1Act->UseVisualStyleBackColor = true;
//
// checkBox0Act
//
this->checkBox0Act->AutoSize = true;
this->checkBox0Act->Enabled = false;
this->checkBox0Act->Location = System::Drawing::Point(119, 46);
this->checkBox0Act->Name = L"checkBox0Act";
this->checkBox0Act->Size = System::Drawing::Size(55, 17);
this->checkBox0Act->TabIndex = 17;
this->checkBox0Act->Text = L"0 NMI";
this->checkBox0Act->UseVisualStyleBackColor = true;
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(6, 26);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(46, 13);
this->label3->TabIndex = 16;
this->label3->Text = L"Enabled";
//
// checkBox16
//
this->checkBox16->AutoSize = true;
this->checkBox16->Enabled = false;
this->checkBox16->Location = System::Drawing::Point(6, 390);
this->checkBox16->Name = L"checkBox16";
this->checkBox16->Size = System::Drawing::Size(97, 17);
this->checkBox16->TabIndex = 15;
this->checkBox16->Text = L"15 Unassigned";
this->checkBox16->UseVisualStyleBackColor = true;
//
// checkBox15
//
this->checkBox15->AutoSize = true;
this->checkBox15->Enabled = false;
this->checkBox15->Location = System::Drawing::Point(6, 367);
this->checkBox15->Name = L"checkBox15";
this->checkBox15->Size = System::Drawing::Size(97, 17);
this->checkBox15->TabIndex = 14;
this->checkBox15->Text = L"14 Unassigned";
this->checkBox15->UseVisualStyleBackColor = true;
//
// checkBox14
//
this->checkBox14->AutoSize = true;
this->checkBox14->Enabled = false;
this->checkBox14->Location = System::Drawing::Point(6, 344);
this->checkBox14->Name = L"checkBox14";
this->checkBox14->Size = System::Drawing::Size(97, 17);
this->checkBox14->TabIndex = 13;
this->checkBox14->Text = L"13 Unassigned";
this->checkBox14->UseVisualStyleBackColor = true;
//
// checkBox13
//
this->checkBox13->AutoSize = true;
this->checkBox13->Enabled = false;
this->checkBox13->Location = System::Drawing::Point(6, 321);
this->checkBox13->Name = L"checkBox13";
this->checkBox13->Size = System::Drawing::Size(97, 17);
this->checkBox13->TabIndex = 12;
this->checkBox13->Text = L"12 Unassigned";
this->checkBox13->UseVisualStyleBackColor = true;
//
// checkBox12
//
this->checkBox12->AutoSize = true;
this->checkBox12->Enabled = false;
this->checkBox12->Location = System::Drawing::Point(6, 299);
this->checkBox12->Name = L"checkBox12";
this->checkBox12->Size = System::Drawing::Size(97, 17);
this->checkBox12->TabIndex = 11;
this->checkBox12->Text = L"11 Unassigned";
this->checkBox12->UseVisualStyleBackColor = true;
//
// checkBox11
//
this->checkBox11->AutoSize = true;
this->checkBox11->Enabled = false;
this->checkBox11->Location = System::Drawing::Point(6, 276);
this->checkBox11->Name = L"checkBox11";
this->checkBox11->Size = System::Drawing::Size(97, 17);
this->checkBox11->TabIndex = 10;
this->checkBox11->Text = L"10 Unassigned";
this->checkBox11->UseVisualStyleBackColor = true;
//
// checkBox10
//
this->checkBox10->AutoSize = true;
this->checkBox10->Enabled = false;
this->checkBox10->Location = System::Drawing::Point(6, 253);
this->checkBox10->Name = L"checkBox10";
this->checkBox10->Size = System::Drawing::Size(91, 17);
this->checkBox10->TabIndex = 9;
this->checkBox10->Text = L"9 Unassigned";
this->checkBox10->UseVisualStyleBackColor = true;
//
// checkBox9
//
this->checkBox9->AutoSize = true;
this->checkBox9->Enabled = false;
this->checkBox9->Location = System::Drawing::Point(6, 230);
this->checkBox9->Name = L"checkBox9";
this->checkBox9->Size = System::Drawing::Size(91, 17);
this->checkBox9->TabIndex = 8;
this->checkBox9->Text = L"8 Unassigned";
this->checkBox9->UseVisualStyleBackColor = true;
//
// checkBox7En
//
this->checkBox7En->AutoSize = true;
this->checkBox7En->Enabled = false;
this->checkBox7En->Location = System::Drawing::Point(6, 207);
this->checkBox7En->Name = L"checkBox7En";
this->checkBox7En->Size = System::Drawing::Size(55, 17);
this->checkBox7En->TabIndex = 7;
this->checkBox7En->Text = L"7 Uart";
this->checkBox7En->UseVisualStyleBackColor = true;
//
// checkBox7
//
this->checkBox7->AutoSize = true;
this->checkBox7->Enabled = false;
this->checkBox7->Location = System::Drawing::Point(6, 184);
this->checkBox7->Name = L"checkBox7";
this->checkBox7->Size = System::Drawing::Size(91, 17);
this->checkBox7->TabIndex = 6;
this->checkBox7->Text = L"6 Unassigned";
this->checkBox7->UseVisualStyleBackColor = true;
//
// checkBox6
//
this->checkBox6->AutoSize = true;
this->checkBox6->Enabled = false;
this->checkBox6->Location = System::Drawing::Point(6, 161);
this->checkBox6->Name = L"checkBox6";
this->checkBox6->Size = System::Drawing::Size(91, 17);
this->checkBox6->TabIndex = 5;
this->checkBox6->Text = L"5 Unassigned";
this->checkBox6->UseVisualStyleBackColor = true;
//
// checkBox4En
//
this->checkBox4En->AutoSize = true;
this->checkBox4En->Enabled = false;
this->checkBox4En->Location = System::Drawing::Point(6, 138);
this->checkBox4En->Name = L"checkBox4En";
this->checkBox4En->Size = System::Drawing::Size(91, 17);
this->checkBox4En->TabIndex = 4;
this->checkBox4En->Text = L"4 Unassigned";
this->checkBox4En->UseVisualStyleBackColor = true;
//
// checkBox3En
//
this->checkBox3En->AutoSize = true;
this->checkBox3En->Enabled = false;
this->checkBox3En->Location = System::Drawing::Point(6, 115);
this->checkBox3En->Name = L"checkBox3En";
this->checkBox3En->Size = System::Drawing::Size(80, 17);
this->checkBox3En->TabIndex = 3;
this->checkBox3En->Text = L"3 Keyboard";
this->checkBox3En->UseVisualStyleBackColor = true;
//
// checkBox2En
//
this->checkBox2En->AutoSize = true;
this->checkBox2En->Enabled = false;
this->checkBox2En->Location = System::Drawing::Point(6, 92);
this->checkBox2En->Name = L"checkBox2En";
this->checkBox2En->Size = System::Drawing::Size(60, 17);
this->checkBox2En->TabIndex = 2;
this->checkBox2En->Text = L"2 30Hz";
this->checkBox2En->UseVisualStyleBackColor = true;
//
// checkBox1En
//
this->checkBox1En->AutoSize = true;
this->checkBox1En->Enabled = false;
this->checkBox1En->Location = System::Drawing::Point(6, 69);
this->checkBox1En->Name = L"checkBox1En";
this->checkBox1En->Size = System::Drawing::Size(72, 17);
this->checkBox1En->TabIndex = 1;
this->checkBox1En->Text = L"1 1024Hz";
this->checkBox1En->UseVisualStyleBackColor = true;
//
// checkBox0En
//
this->checkBox0En->AutoSize = true;
this->checkBox0En->Enabled = false;
this->checkBox0En->Location = System::Drawing::Point(6, 46);
this->checkBox0En->Name = L"checkBox0En";
this->checkBox0En->Size = System::Drawing::Size(55, 17);
this->checkBox0En->TabIndex = 0;
this->checkBox0En->Text = L"0 NMI";
this->checkBox0En->UseVisualStyleBackColor = true;
//
// frmInterrupts
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(331, 568);
this->Controls->Add(this->groupBox1);
this->Controls->Add(this->checkBoxUart);
this->Controls->Add(this->btnOK);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->btnTrigger30);
this->Controls->Add(this->comboBox30);
this->Controls->Add(this->btnTrigger1024);
this->Controls->Add(this->comboBox1024);
this->Controls->Add(this->checkBox1024);
this->Controls->Add(this->checkBoxKeyboard);
this->Controls->Add(this->checkBox30);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"frmInterrupts";
this->SizeGripStyle = System::Windows::Forms::SizeGripStyle::Hide;
this->Text = L"emuThor - Interrupts";
this->Load += gcnew System::EventHandler(this, &frmInterrupts::frmInterrupts_Load);
this->groupBox1->ResumeLayout(false);
this->groupBox1->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
private: System::Void btnOK_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void btnTrigger1024_Click(System::Object^ sender, System::EventArgs^ e) {
if (this->checkBox1024->Checked) {
mut->WaitOne();
switch(this->comboBox30->SelectedIndex) {
case 0: interval1024 = 98; break;
case 1: interval1024 = 977; break;
case 2: interval1024 = -1; break;
}
trigger1024 = true;
mut->ReleaseMutex();
}
}
private: System::Void btnTrigger30_Click(System::Object^ sender, System::EventArgs^ e) {
if (this->checkBox30->Checked) {
mut->WaitOne();
switch(this->comboBox30->SelectedIndex) {
case 0: interval30 = 33; break;
case 1: interval30 = 333; break;
case 2: interval30 = 3333; break;
case 3: interval30 = 33333; break;
case 4: interval30 = -1; break;
}
trigger30 = true;
mut->ReleaseMutex();
}
}
private: System::Void frmInterrupts_Load(System::Object^ sender, System::EventArgs^ e) {
}
};
}
/source/frmMain.h
6,14 → 6,18
#include <string>
#include <vcclr.h>
#include <string.h>
#include <math.h>
#include "frmRegisters.h"
//#include "frmBreakpoint.h"
#include "frmBreakpoints.h"
#include "frmScreen.h"
#include "frmKeyboard.h"
#include "frmUart.h"
#include "fmrFreeRun.h"
#include "frmPCHistory.h"
#include "About.h"
//#include "fmrPCS.h"
//#include "frmInterrupts.h"
//#include "frmStack.h"
#include "frmInterrupts.h"
#include "frmStack.h"
#include "frmMemory.h"
//#include "Disassem.h"
#include "clsCPU.h"
21,10 → 25,19
#include "clsDisassem.h"
 
clsDisassem da;
extern clsThor cpu1;
extern clsPIC pic1;
extern clsSystem system1;
extern unsigned int breakpoints[30];
extern unsigned __int64 ibreakpoints[10];
extern bool ib_active[10];
bool isRunning;
bool quit;
bool stepout, stepover;
unsigned int step_depth, stepover_depth;
unsigned int stepoverBkpt;
unsigned int stepover_pc;
bool animate;
bool fullspeed;
bool runstop;
 
namespace emuThor {
 
49,10 → 62,32
//
//TODO: Add the constructor code here
//
frmKeyboard^ keyboardFrm = gcnew frmKeyboard();
fullspeed = false;
runstop = false;
stepout = false;
stepover = false;
animate = false;
isRunning = false;
mut = gcnew Mutex(false, "emuThor");
frmKeyboard^ keyboardFrm = gcnew frmKeyboard(mut);
keyboardFrm->Show();
frmScreen^ screenFrm = gcnew frmScreen();
frmScreen^ screenFrm = gcnew frmScreen(mut, "Main Screen");
screenFrm->pVidMem = &system1.VideoMem[0];
screenFrm->pVidDirty = &system1.VideoMemDirty[0];
screenFrm->Show();
frmScreen^ DBGScreenFrm = gcnew frmScreen(mut, "Debug Screen");
DBGScreenFrm->pVidMem = &system1.DBGVideoMem[0];
DBGScreenFrm->pVidDirty = &system1.DBGVideoMemDirty[0];
DBGScreenFrm->Show();
frmUart^ uartFrm = gcnew frmUart(mut);
uartFrm->Show();
uartFrm->WindowState = FormWindowState::Minimized;
// myThreadDelegate = gcnew ThreadStart(this, &frmMain::Run);
// myThread = gcnew Thread(myThreadDelegate);
// myThread->Start();
 
// this->SetStyle(ControlStyles::AllPaintingInWmPaint |
// ControlStyles::Opaque, true);
}
 
protected:
61,10 → 96,12
/// </summary>
~frmMain()
{
// this->backgroundWorker1->CancelAsync();
if (components)
{
delete components;
}
system1.quit = true;
}
private: System::Windows::Forms::MenuStrip^ menuStrip1;
protected:
92,13 → 129,31
private: System::Windows::Forms::ToolStripMenuItem^ stepToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ resetToolStripMenuItem;
private: System::Windows::Forms::Label^ lblLEDS;
private: System::Windows::Forms::ToolStripMenuItem^ breakpointsToolStripMenuItem;
private: ThreadStart^ myThreadDelegate;
private: Thread^ myThread;
private: System::Windows::Forms::ToolStripMenuItem^ fullSpeedToolStripMenuItem;
private: System::Windows::Forms::Timer^ timer1;
private: System::Windows::Forms::ToolStripMenuItem^ animateFastToolStripMenuItem;
private: System::Windows::Forms::TrackBar^ trackBar1;
private: System::Windows::Forms::ToolStripMenuItem^ freeRunToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ stackToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ interruptToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ pCHistoryToolStripMenuItem;
private: System::ComponentModel::BackgroundWorker^ backgroundWorker1;
private: Mutex^ mut;
private: System::Windows::Forms::ToolStripButton^ toolStripButton8;
private: System::Windows::Forms::ToolStripMenuItem^ keyboardToolStripMenuItem;
private: System::Windows::Forms::Timer^ timer30;
private: System::Windows::Forms::Timer^ timer1024;
 
private: System::ComponentModel::IContainer^ components;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
 
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
106,6 → 161,7
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(frmMain::typeid));
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
113,9 → 169,17
this->runToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->resetToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stepToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->fullSpeedToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->animateFastToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->freeRunToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->interruptToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->viewToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->registersToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->memoryToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->breakpointsToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stackToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->pCHistoryToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->keyboardToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->aboutToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->toolStrip1 = (gcnew System::Windows::Forms::ToolStrip());
this->toolStripButton1 = (gcnew System::Windows::Forms::ToolStripButton());
125,6 → 189,7
this->toolStripButton5 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton6 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton7 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton8 = (gcnew System::Windows::Forms::ToolStripButton());
this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
this->lblChecksumError = (gcnew System::Windows::Forms::Label());
this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
132,9 → 197,15
this->listBoxBytes = (gcnew System::Windows::Forms::ListBox());
this->listBoxCode = (gcnew System::Windows::Forms::ListBox());
this->lblLEDS = (gcnew System::Windows::Forms::Label());
this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
this->trackBar1 = (gcnew System::Windows::Forms::TrackBar());
this->backgroundWorker1 = (gcnew System::ComponentModel::BackgroundWorker());
this->timer30 = (gcnew System::Windows::Forms::Timer(this->components));
this->timer1024 = (gcnew System::Windows::Forms::Timer(this->components));
this->menuStrip1->SuspendLayout();
this->toolStrip1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->BeginInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->trackBar1))->BeginInit();
this->SuspendLayout();
//
// menuStrip1
163,8 → 234,9
//
// runToolStripMenuItem
//
this->runToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->resetToolStripMenuItem,
this->stepToolStripMenuItem});
this->runToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(6) {this->resetToolStripMenuItem,
this->stepToolStripMenuItem, this->fullSpeedToolStripMenuItem, this->animateFastToolStripMenuItem, this->freeRunToolStripMenuItem,
this->interruptToolStripMenuItem});
this->runToolStripMenuItem->Name = L"runToolStripMenuItem";
this->runToolStripMenuItem->Size = System::Drawing::Size(40, 20);
this->runToolStripMenuItem->Text = L"&Run";
172,7 → 244,7
// resetToolStripMenuItem
//
this->resetToolStripMenuItem->Name = L"resetToolStripMenuItem";
this->resetToolStripMenuItem->Size = System::Drawing::Size(152, 22);
this->resetToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->resetToolStripMenuItem->Text = L"&Reset";
this->resetToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::resetToolStripMenuItem_Click);
//
179,14 → 251,44
// stepToolStripMenuItem
//
this->stepToolStripMenuItem->Name = L"stepToolStripMenuItem";
this->stepToolStripMenuItem->Size = System::Drawing::Size(152, 22);
this->stepToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->stepToolStripMenuItem->Text = L"&Step";
this->stepToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::stepToolStripMenuItem_Click);
//
// fullSpeedToolStripMenuItem
//
this->fullSpeedToolStripMenuItem->Name = L"fullSpeedToolStripMenuItem";
this->fullSpeedToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->fullSpeedToolStripMenuItem->Text = L"&Full Speed";
this->fullSpeedToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::fullSpeedToolStripMenuItem_Click);
//
// animateFastToolStripMenuItem
//
this->animateFastToolStripMenuItem->Name = L"animateFastToolStripMenuItem";
this->animateFastToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->animateFastToolStripMenuItem->Text = L"&Animate Fast";
this->animateFastToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::animateFastToolStripMenuItem_Click);
//
// freeRunToolStripMenuItem
//
this->freeRunToolStripMenuItem->Name = L"freeRunToolStripMenuItem";
this->freeRunToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->freeRunToolStripMenuItem->Text = L"Free Run";
this->freeRunToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::freeRunToolStripMenuItem_Click);
//
// interruptToolStripMenuItem
//
this->interruptToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"interruptToolStripMenuItem.Image")));
this->interruptToolStripMenuItem->Name = L"interruptToolStripMenuItem";
this->interruptToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->interruptToolStripMenuItem->Text = L"&Interrupt";
this->interruptToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::interruptToolStripMenuItem_Click);
//
// viewToolStripMenuItem
//
this->viewToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->registersToolStripMenuItem,
this->memoryToolStripMenuItem});
this->viewToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(6) {this->registersToolStripMenuItem,
this->memoryToolStripMenuItem, this->breakpointsToolStripMenuItem, this->stackToolStripMenuItem, this->pCHistoryToolStripMenuItem,
this->keyboardToolStripMenuItem});
this->viewToolStripMenuItem->Name = L"viewToolStripMenuItem";
this->viewToolStripMenuItem->Size = System::Drawing::Size(44, 20);
this->viewToolStripMenuItem->Text = L"&View";
194,7 → 296,7
// registersToolStripMenuItem
//
this->registersToolStripMenuItem->Name = L"registersToolStripMenuItem";
this->registersToolStripMenuItem->Size = System::Drawing::Size(152, 22);
this->registersToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->registersToolStripMenuItem->Text = L"&Registers";
this->registersToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::registersToolStripMenuItem_Click);
//
201,10 → 303,38
// memoryToolStripMenuItem
//
this->memoryToolStripMenuItem->Name = L"memoryToolStripMenuItem";
this->memoryToolStripMenuItem->Size = System::Drawing::Size(152, 22);
this->memoryToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->memoryToolStripMenuItem->Text = L"&Memory";
this->memoryToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::memoryToolStripMenuItem_Click);
//
// breakpointsToolStripMenuItem
//
this->breakpointsToolStripMenuItem->Name = L"breakpointsToolStripMenuItem";
this->breakpointsToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->breakpointsToolStripMenuItem->Text = L"&Breakpoints";
this->breakpointsToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::breakpointsToolStripMenuItem_Click);
//
// stackToolStripMenuItem
//
this->stackToolStripMenuItem->Name = L"stackToolStripMenuItem";
this->stackToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->stackToolStripMenuItem->Text = L"&Stack";
this->stackToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::stackToolStripMenuItem_Click);
//
// pCHistoryToolStripMenuItem
//
this->pCHistoryToolStripMenuItem->Name = L"pCHistoryToolStripMenuItem";
this->pCHistoryToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->pCHistoryToolStripMenuItem->Text = L"&PC History";
this->pCHistoryToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::pCHistoryToolStripMenuItem_Click);
//
// keyboardToolStripMenuItem
//
this->keyboardToolStripMenuItem->Name = L"keyboardToolStripMenuItem";
this->keyboardToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->keyboardToolStripMenuItem->Text = L"&Keyboard";
this->keyboardToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::keyboardToolStripMenuItem_Click);
//
// aboutToolStripMenuItem
//
this->aboutToolStripMenuItem->Name = L"aboutToolStripMenuItem";
214,8 → 344,9
//
// toolStrip1
//
this->toolStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(7) {this->toolStripButton1,
this->toolStripButton2, this->toolStripButton3, this->toolStripButton4, this->toolStripButton5, this->toolStripButton6, this->toolStripButton7});
this->toolStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(8) {this->toolStripButton1,
this->toolStripButton2, this->toolStripButton3, this->toolStripButton4, this->toolStripButton5, this->toolStripButton6, this->toolStripButton7,
this->toolStripButton8});
this->toolStrip1->Location = System::Drawing::Point(0, 24);
this->toolStrip1->Name = L"toolStrip1";
this->toolStrip1->Size = System::Drawing::Size(684, 25);
240,6 → 371,7
this->toolStripButton2->Name = L"toolStripButton2";
this->toolStripButton2->Size = System::Drawing::Size(23, 22);
this->toolStripButton2->Text = L"Step Over (Bounce)";
this->toolStripButton2->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton2_Click);
//
// toolStripButton3
//
249,6 → 381,7
this->toolStripButton3->Name = L"toolStripButton3";
this->toolStripButton3->Size = System::Drawing::Size(23, 22);
this->toolStripButton3->Text = L"Step Out Of";
this->toolStripButton3->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton3_Click);
//
// toolStripButton4
//
258,6 → 391,7
this->toolStripButton4->Name = L"toolStripButton4";
this->toolStripButton4->Size = System::Drawing::Size(23, 22);
this->toolStripButton4->Text = L"Run";
this->toolStripButton4->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton4_Click);
//
// toolStripButton5
//
267,6 → 401,7
this->toolStripButton5->Name = L"toolStripButton5";
this->toolStripButton5->Size = System::Drawing::Size(23, 22);
this->toolStripButton5->Text = L"Stop";
this->toolStripButton5->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton5_Click);
//
// toolStripButton6
//
276,6 → 411,7
this->toolStripButton6->Name = L"toolStripButton6";
this->toolStripButton6->Size = System::Drawing::Size(23, 22);
this->toolStripButton6->Text = L"Interrupt";
this->toolStripButton6->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton6_Click);
//
// toolStripButton7
//
285,7 → 421,18
this->toolStripButton7->Name = L"toolStripButton7";
this->toolStripButton7->Size = System::Drawing::Size(23, 22);
this->toolStripButton7->Text = L"Breakpoints";
this->toolStripButton7->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton7_Click);
//
// toolStripButton8
//
this->toolStripButton8->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton8->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton8.Image")));
this->toolStripButton8->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton8->Name = L"toolStripButton8";
this->toolStripButton8->Size = System::Drawing::Size(23, 22);
this->toolStripButton8->Text = L"Reset Button";
this->toolStripButton8->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton8_Click);
//
// openFileDialog1
//
this->openFileDialog1->DefaultExt = L"hex";
297,7 → 444,7
//
this->lblChecksumError->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
this->lblChecksumError->AutoSize = true;
this->lblChecksumError->Location = System::Drawing::Point(75, 522);
this->lblChecksumError->Location = System::Drawing::Point(75, 557);
this->lblChecksumError->Name = L"lblChecksumError";
this->lblChecksumError->Size = System::Drawing::Size(35, 13);
this->lblChecksumError->TabIndex = 2;
306,7 → 453,7
// pictureBox1
//
this->pictureBox1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
this->pictureBox1->Location = System::Drawing::Point(12, 507);
this->pictureBox1->Location = System::Drawing::Point(12, 542);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(218, 12);
this->pictureBox1->TabIndex = 3;
317,7 → 464,7
// listBoxAdr
//
this->listBoxAdr->FormattingEnabled = true;
this->listBoxAdr->Location = System::Drawing::Point(12, 52);
this->listBoxAdr->Location = System::Drawing::Point(12, 83);
this->listBoxAdr->Name = L"listBoxAdr";
this->listBoxAdr->Size = System::Drawing::Size(71, 433);
this->listBoxAdr->TabIndex = 4;
325,7 → 472,7
// listBoxBytes
//
this->listBoxBytes->FormattingEnabled = true;
this->listBoxBytes->Location = System::Drawing::Point(89, 52);
this->listBoxBytes->Location = System::Drawing::Point(89, 83);
this->listBoxBytes->Name = L"listBoxBytes";
this->listBoxBytes->Size = System::Drawing::Size(141, 433);
this->listBoxBytes->TabIndex = 5;
333,7 → 480,7
// listBoxCode
//
this->listBoxCode->FormattingEnabled = true;
this->listBoxCode->Location = System::Drawing::Point(236, 52);
this->listBoxCode->Location = System::Drawing::Point(236, 83);
this->listBoxCode->Name = L"listBoxCode";
this->listBoxCode->Size = System::Drawing::Size(327, 433);
this->listBoxCode->TabIndex = 6;
341,17 → 488,43
// lblLEDS
//
this->lblLEDS->AutoSize = true;
this->lblLEDS->Location = System::Drawing::Point(275, 507);
this->lblLEDS->Location = System::Drawing::Point(271, 542);
this->lblLEDS->Name = L"lblLEDS";
this->lblLEDS->Size = System::Drawing::Size(40, 13);
this->lblLEDS->TabIndex = 7;
this->lblLEDS->Text = L"lblLeds";
//
// timer1
//
this->timer1->Enabled = true;
this->timer1->Tick += gcnew System::EventHandler(this, &frmMain::timer1_Tick);
//
// trackBar1
//
this->trackBar1->Location = System::Drawing::Point(426, 32);
this->trackBar1->Maximum = 999999;
this->trackBar1->Minimum = 3;
this->trackBar1->Name = L"trackBar1";
this->trackBar1->Size = System::Drawing::Size(137, 45);
this->trackBar1->TabIndex = 8;
this->trackBar1->TickStyle = System::Windows::Forms::TickStyle::TopLeft;
this->trackBar1->Value = 10000;
this->trackBar1->Scroll += gcnew System::EventHandler(this, &frmMain::trackBar1_Scroll);
//
// timer30
//
this->timer30->Tick += gcnew System::EventHandler(this, &frmMain::timer30_Tick);
//
// timer1024
//
this->timer1024->Tick += gcnew System::EventHandler(this, &frmMain::timer1024_Tick);
//
// frmMain
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(684, 548);
this->ClientSize = System::Drawing::Size(684, 583);
this->Controls->Add(this->trackBar1);
this->Controls->Add(this->lblLEDS);
this->Controls->Add(this->listBoxCode);
this->Controls->Add(this->listBoxBytes);
368,13 → 541,15
this->toolStrip1->ResumeLayout(false);
this->toolStrip1->PerformLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->trackBar1))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
 
private: System::Void registersToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmRegisters^ form = gcnew frmRegisters();
frmRegisters^ form = gcnew frmRegisters(mut);
form->Show();
}
private: System::Void loadINTELHexFIleToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
457,7 → 632,9
}
if (!firstAdr)
firstAdr = ad;
mut->WaitOne();
system1.Write(ad, dat, 0xFF, 0);
mut->ReleaseMutex();
//system1.memory[ad>>2] = dat;
//sprintf(buf2,"%06X", ad);
//str_ad = std::string(buf2);
481,7 → 658,7
System::Windows::Forms::Cursor::Current = System::Windows::Forms::Cursors::Default;
}
private: System::Void memoryToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmMemory^ form = gcnew frmMemory;
frmMemory^ form = gcnew frmMemory(mut);
form->Show();
}
private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {
491,8 → 668,13
int h = pictureBox1->ClientSize.Height;
int w = h;
int nn,kk;
int lds;
 
mut->WaitOne();
lds = system1.leds;
mut->ReleaseMutex();
for (kk= 15, nn = 0; nn < 16; nn++, kk--) {
if (system1.leds & (1 << kk))
if (lds & (1 << kk))
gr->FillEllipse(gcnew SolidBrush(Color::Green),System::Drawing::Rectangle(w*nn,0,w-1,h-1));
else
gr->FillEllipse(gcnew SolidBrush(Color::FromArgb(0xFF003000)),System::Drawing::Rectangle(w*nn,0,w-1,h-1));
505,6 → 687,7
std::string dstr;
std::string buf;
int adr[32];
int adf;
 
listBoxAdr->Items->Clear();
listBoxBytes->Items->Clear();
525,7 → 708,10
this->listBoxCode->Items->Add(gcnew String(dstr.c_str()));
}
for (nn = 0; nn < 32; nn++) {
if (adr[nn]==cpu1.pc) {
mut->WaitOne();
adf = system1.cpu2.pc;
mut->ReleaseMutex();
if (adr[nn]==adf) {
this->listBoxAdr->SetSelected(nn,true);
this->listBoxBytes->SetSelected(nn,true);
this->listBoxCode->SetSelected(nn,true);
538,10 → 724,12
Reset();
}
private: void Reset() {
int ad;
mut->WaitOne();
system1.Reset();
pic1.Reset();
cpu1.Reset();
UpdateListBoxes(PCIsInList(cpu1.pc-32));
ad = system1.cpu2.pc-32;
mut->ReleaseMutex();
UpdateListBoxes(PCIsInList(ad));
}
 
// Try and align the disassembled code with the current PC.
555,8 → 743,12
for (ad = as; ad > as-32; ad--) {
ae = ad;
for (nn = 0; nn < 64; nn++) {
if (ae==cpu1.pc)
mut->WaitOne();
if (ae==system1.cpu2.pc) {
mut->ReleaseMutex();
return ad;
}
mut->ReleaseMutex();
dstr = da.Disassem(ae,&nb);
ae += nb;
}
568,13 → 760,25
// animate = false;
// isRunning = false;
char buf[100];
cpu1.Step();
pic1.Step();
UpdateListBoxes(PCIsInList(cpu1.pc-32));
mut->WaitOne();
system1.Step();
mut->ReleaseMutex();
UpdateListBoxes(PCIsInList(system1.cpu2.pc-32));
sprintf(buf, "%04X", system1.leds);
lblLEDS->Text = gcnew String(buf);
pictureBox1->Refresh();
}
private: void DoStopButton() {
mut->WaitOne();
animate = false;
isRunning = false;
// cpu2.brk = true;
fullspeed = false;
mut->ReleaseMutex();
this->fullSpeedToolStripMenuItem->Checked = false;
this->animateFastToolStripMenuItem->Checked = false;
this->timer1->Interval = 100;
}
private: System::Void toolStripButton1_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepInto();
}
584,6 → 788,168
About^ form = gcnew About;
form->Show();
}
private: System::Void breakpointsToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmBreakpoints^ form = gcnew frmBreakpoints(mut);
form->ShowDialog();
}
private: System::Void fullSpeedToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
this->fullSpeedToolStripMenuItem->Checked = !this->fullSpeedToolStripMenuItem->Checked;
mut->WaitOne();
fullspeed = this->fullSpeedToolStripMenuItem->Checked;
mut->ReleaseMutex();
if (this->fullSpeedToolStripMenuItem->Checked)
this->timer1->Interval = 1000;
else {
this->timer1->Interval = (int)sqrt((float)1000000-trackBar1->Value);
}
this->animateFastToolStripMenuItem->Checked = false;
}
private: System::Void toolStripButton3_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
step_depth = system1.cpu2.sub_depth;
stepout = true;
animate = false;
fullspeed = true;
isRunning = true;
mut->ReleaseMutex();
this->fullSpeedToolStripMenuItem->Checked = true;
}
private: System::Void animateFastToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
isRunning = false;
animate = true;
mut->ReleaseMutex();
this->timer1->Interval = 1;
this->trackBar1->Value = 3;
this->fullSpeedToolStripMenuItem->Checked = false;
this->animateFastToolStripMenuItem->Checked = true;
}
private: System::Void toolStripButton5_Click(System::Object^ sender, System::EventArgs^ e) {
DoStopButton();
}
private: System::Void toolStripButton2_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
stepover_pc = system1.cpu2.pc;
stepover_depth = system1.cpu2.sub_depth;
stepover = true;
animate = false;
fullspeed = true;
isRunning = true;
mut->ReleaseMutex();
this->fullSpeedToolStripMenuItem->Checked = true;
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
static int tt = 0;
int xx;
 
if (this->timer1->Interval < 10)
tt += 1;
if (tt == 10 * this->timer1->Interval) {
tt = 0;
UpdateListBoxes(PCIsInList(system1.cpu2.pc-32));
}
else
UpdateListBoxes(PCIsInList(system1.cpu2.pc-32));
// if (fullspeed) {
// for (xx = 0; xx < 100000; xx++)
// RunCPU();
// }
mut->WaitOne();
if (!isRunning && animate) {
system1.Step();
}
mut->ReleaseMutex();
if (trigger30) {
trigger30 = false;
if (interval30==-1) {
mut->WaitOne();
system1.pic1.irq30Hz = true;
mut->ReleaseMutex();
}
else {
this->timer30->Interval = interval30;
this->timer30->Enabled = true;
}
}
if (trigger1024) {
trigger1024 = false;
if (interval1024==-1) {
mut->WaitOne();
system1.pic1.irq1024Hz = true;
mut->ReleaseMutex();
}
else {
this->timer1024->Interval = interval1024;
this->timer1024->Enabled = true;
}
}
 
}
private: System::Void toolStripButton4_Click(System::Object^ sender, System::EventArgs^ e) {
fmrFreeRun^ form = gcnew fmrFreeRun(mut);
form->Show();
/*
if (fullspeed) {
isRunning = true;
}
else {
isRunning = false;
animate = true;
this->timer1->Interval = (int)(sqrt((float)1000000-trackBar1->Value));
}
*/
}
private: System::Void toolStripButton7_Click(System::Object^ sender, System::EventArgs^ e) {
frmBreakpoints^ form = gcnew frmBreakpoints(mut);
form->ShowDialog();
}
private: System::Void trackBar1_Scroll(System::Object^ sender, System::EventArgs^ e) {
animate = true;
isRunning = false;
// cpu2.brk = true;
fullspeed = false;
this->fullSpeedToolStripMenuItem->Checked = false;
// this->animateFastToolStripMenuItem->Checked = false;
this->timer1->Interval = (int)(sqrt((float)1000000-trackBar1->Value));
}
private: System::Void freeRunToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
fmrFreeRun^ form = gcnew fmrFreeRun(mut);
form->Show();
}
private: System::Void stackToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmStack^ form = gcnew frmStack(mut);
form->Show();
}
private: System::Void interruptToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmInterrupts^ form = gcnew frmInterrupts(mut);
form->ShowDialog();
}
private: System::Void toolStripButton6_Click(System::Object^ sender, System::EventArgs^ e) {
frmInterrupts^ form = gcnew frmInterrupts(mut);
form->ShowDialog();
}
private: System::Void pCHistoryToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmPCHistory^ form = gcnew frmPCHistory(mut);
form->Show();
}
private: System::Void toolStripButton8_Click(System::Object^ sender, System::EventArgs^ e) {
Reset();
}
private: System::Void keyboardToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmKeyboard^ keyboardFrm = gcnew frmKeyboard(mut);
keyboardFrm->Show();
}
private: System::Void timer30_Tick(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.pic1.irq30Hz = true;
mut->ReleaseMutex();
}
private: System::Void timer1024_Tick(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.pic1.irq1024Hz = true;
mut->ReleaseMutex();
}
};
}
 
/source/frmStack.cpp
0,0 → 1,3
#include "StdAfx.h"
#include "frmStack.h"
 
/source/frmKeyboard.h
2,8 → 2,6
#include "stdafx.h"
#include "clsKeyboard.h"
 
extern clsKeyboard keybd;
extern clsPIC pic1;
extern volatile unsigned __int8 keybd_status;
extern volatile unsigned __int8 keybd_scancode;
 
15,6 → 13,7
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmKeyboard
23,8 → 22,10
{
 
public:
frmKeyboard(void)
Mutex^ mut;
frmKeyboard(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
1152,537 → 1153,541
}
#pragma endregion
private: System::Void btnQuest_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x4A);
keybd.Put(0xF0);
keybd.Put(0x4A);
mut->WaitOne();
system1.keybd.Put(0x4A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4A);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnEnter_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x5A);
keybd.Put(0xF0);
keybd.Put(0x5A);
system1.keybd.Put(0x5A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x5A);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnRshift_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
 
if (sh!=0)
keybd.Put(0xF0);
keybd.Put(0x59);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x59);
sh = !sh;
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn1_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x16);
keybd.Put(0xF0);
keybd.Put(0x16);
system1.keybd.Put(0x16);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x16);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnD_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x23);
keybd.Put(0xF0);
keybd.Put(0x23);
mut->WaitOne();
system1.keybd.Put(0x23);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x23);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnB_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x32);
keybd.Put(0xF0);
keybd.Put(0x32);
system1.keybd.Put(0x32);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x32);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnG_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x34);
keybd.Put(0xF0);
keybd.Put(0x34);
system1.keybd.Put(0x34);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x34);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnQ_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x15);
keybd.Put(0xF0);
keybd.Put(0x15);
system1.keybd.Put(0x15);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x15);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnT_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x2C);
keybd.Put(0xF0);
keybd.Put(0x2C);
system1.keybd.Put(0x2C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2C);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnS_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x1B);
keybd.Put(0xF0);
keybd.Put(0x1B);
system1.keybd.Put(0x1B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1B);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnM_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x3A);
keybd.Put(0xF0);
keybd.Put(0x3A);
system1.keybd.Put(0x3A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3A);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnMinus_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x4E);
keybd.Put(0xF0);
keybd.Put(0x4E);
system1.keybd.Put(0x4E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4E);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnBackspace_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x66);
keybd.Put(0xF0);
keybd.Put(0x66);
system1.keybd.Put(0x66);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x66);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button14_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x71);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x71);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x71);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x71);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnJ_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x3B);
keybd.Put(0xF0);
keybd.Put(0x3B);
system1.keybd.Put(0x3B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3B);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnSpace_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x29);
keybd.Put(0xF0);
keybd.Put(0x29);
system1.keybd.Put(0x29);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x29);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button10_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x6B);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x6B);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x6B);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x6B);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn2_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x1E);
keybd.Put(0xF0);
keybd.Put(0x1E);
system1.keybd.Put(0x1E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1E);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn3_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x26);
keybd.Put(0xF0);
keybd.Put(0x26);
system1.keybd.Put(0x26);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x26);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn4_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x25);
keybd.Put(0xF0);
keybd.Put(0x25);
system1.keybd.Put(0x25);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x25);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn5_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x2E);
keybd.Put(0xF0);
keybd.Put(0x2E);
system1.keybd.Put(0x2E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2E);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn6_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x36);
keybd.Put(0xF0);
keybd.Put(0x36);
system1.keybd.Put(0x36);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x36);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn7_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x3D);
keybd.Put(0xF0);
keybd.Put(0x3D);
system1.keybd.Put(0x3D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3D);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn8_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x3E);
keybd.Put(0xF0);
keybd.Put(0x3E);
system1.keybd.Put(0x3E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3E);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn9_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x46);
keybd.Put(0xF0);
keybd.Put(0x46);
system1.keybd.Put(0x46);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x46);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btn0_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x45);
keybd.Put(0xF0);
keybd.Put(0x45);
system1.keybd.Put(0x45);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x45);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnA_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x1C);
keybd.Put(0xF0);
keybd.Put(0x1C);
system1.keybd.Put(0x1C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1C);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnC_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x21);
keybd.Put(0xF0);
keybd.Put(0x21);
system1.keybd.Put(0x21);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x21);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnE_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x24);
keybd.Put(0xF0);
keybd.Put(0x24);
system1.keybd.Put(0x24);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x24);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnF_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x2B);
keybd.Put(0xF0);
keybd.Put(0x2B);
system1.keybd.Put(0x2B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2B);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnX_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x22);
keybd.Put(0xF0);
keybd.Put(0x22);
system1.keybd.Put(0x22);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x22);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnRctrl_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
keybd.Put(0xE0);
system1.keybd.Put(0xE0);
if (sh!=0)
keybd.Put(0xF0);
keybd.Put(0x14);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x14);
sh = !sh;
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button9_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x55);
keybd.Put(0xF0);
keybd.Put(0x55);
system1.keybd.Put(0x55);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x55);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x0E);
keybd.Put(0xF0);
keybd.Put(0x0E);
system1.keybd.Put(0x0E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x0E);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnW_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x1D);
system1.keybd.Put(0x1D);
keybd_status = 0x80;
keybd.Put(0xF0);
keybd.Put(0x1D);
pic1.irqKeyboard = true;
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1D);
system1.pic1.irqKeyboard = true;
}
private: System::Void btnR_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x2D);
keybd.Put(0xF0);
keybd.Put(0x2D);
system1.keybd.Put(0x2D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2D);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnY_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x35);
keybd.Put(0xF0);
keybd.Put(0x35);
system1.keybd.Put(0x35);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x35);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnU_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x3C);
keybd.Put(0xF0);
keybd.Put(0x3C);
system1.keybd.Put(0x3C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3C);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnI_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x43);
keybd.Put(0xF0);
keybd.Put(0x43);
system1.keybd.Put(0x43);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x43);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnO_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x44);
keybd.Put(0xF0);
keybd.Put(0x44);
system1.keybd.Put(0x44);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x44);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnP_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x4D);
keybd.Put(0xF0);
keybd.Put(0x4D);
system1.keybd.Put(0x4D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4D);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnH_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x33);
keybd.Put(0xF0);
keybd.Put(0x33);
system1.keybd.Put(0x33);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x33);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnK_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x42);
keybd.Put(0xF0);
keybd.Put(0x42);
system1.keybd.Put(0x42);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x42);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnL_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x4B);
keybd.Put(0xF0);
keybd.Put(0x4B);
system1.keybd.Put(0x4B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4B);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x4C);
keybd.Put(0xF0);
keybd.Put(0x4C);
system1.keybd.Put(0x4C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4C);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x52);
keybd.Put(0xF0);
keybd.Put(0x52);
system1.keybd.Put(0x52);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x52);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnZ_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x1A);
keybd.Put(0xF0);
keybd.Put(0x1A);
system1.keybd.Put(0x1A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1A);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnV_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x2A);
keybd.Put(0xF0);
keybd.Put(0x2A);
system1.keybd.Put(0x2A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2A);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnN_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x31);
keybd.Put(0xF0);
keybd.Put(0x31);
system1.keybd.Put(0x31);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x31);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x41);
keybd.Put(0xF0);
keybd.Put(0x41);
system1.keybd.Put(0x41);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x41);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x49);
keybd.Put(0xF0);
keybd.Put(0x49);
system1.keybd.Put(0x49);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x49);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x5D);
keybd.Put(0xF0);
keybd.Put(0x5D);
system1.keybd.Put(0x5D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x5D);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void btnLalt_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
if (sh!=0)
keybd.Put(0xF0);
keybd.Put(0x11);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x11);
sh = !sh;
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// Alt
private: System::Void button20_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
keybd.Put(0xE0);
system1.keybd.Put(0xE0);
if (sh!=0)
keybd.Put(0xF0);
keybd.Put(0x11);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x11);
sh = !sh;
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void buttonLctrl_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
if (sh!=0)
keybd.Put(0xF0);
keybd.Put(0x14);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x14);
sh = !sh;
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x70);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x70);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x70);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x70);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// Home
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x6C);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x6C);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x6C);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x6C);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// End
private: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x69);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x69);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x69);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x69);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// Cursor down
private: System::Void button11_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x72);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x72);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x72);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x72);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// Cursor Up
private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x75);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x75);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x75);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x75);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// Cursor right
private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x74);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x74);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x74);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x74);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// page up
private: System::Void button19_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x7D);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x7D);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x7D);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x7D);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
// page down
private: System::Void button18_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0xE0);
keybd.Put(0x7A);
keybd.Put(0xE0);
keybd.Put(0xF0);
keybd.Put(0x7A);
system1.keybd.Put(0xE0);
system1.keybd.Put(0x7A);
system1.keybd.Put(0xE0);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x7A);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x54);
keybd.Put(0xF0);
keybd.Put(0x54);
system1.keybd.Put(0x54);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x54);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x5B);
keybd.Put(0xF0);
keybd.Put(0x5B);
system1.keybd.Put(0x5B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x5B);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void buttonEsc_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x76);
keybd.Put(0xF0);
keybd.Put(0x76);
system1.keybd.Put(0x76);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x76);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void buttonF1_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x05);
keybd.Put(0xF0);
keybd.Put(0x05);
system1.keybd.Put(0x05);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x05);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void buttonF2_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x06);
keybd.Put(0xF0);
keybd.Put(0x06);
system1.keybd.Put(0x06);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x06);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
private: System::Void buttonCapslock_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x58);
system1.keybd.Put(0x58);
keybd_status = 0x80;
keybd.Put(0xF0);
keybd.Put(0x58);
pic1.irqKeyboard = true;
system1.keybd.Put(0xF0);
system1.keybd.Put(0x58);
system1.pic1.irqKeyboard = true;
}
private: System::Void frmKeyboard_MouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
}
private: System::Void buttonTab_Click(System::Object^ sender, System::EventArgs^ e) {
keybd.Put(0x0D);
keybd.Put(0xF0);
keybd.Put(0x0D);
system1.keybd.Put(0x0D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x0D);
keybd_status = 0x80;
pic1.irqKeyboard = true;
system1.pic1.irqKeyboard = true;
}
};
}
/source/fmrFreeRun.cpp
0,0 → 1,3
#include "StdAfx.h"
#include "fmrFreeRun.h"
 
/source/clsPIC.cpp
18,3 → 18,67
irq1024Hz = false;
irqKeyboard = false;
}
 
unsigned int clsPIC::Read(unsigned int ad) {
int nn;
unsigned int dat;
switch((ad >> 3) & 7) {
case 0:
return vecno;
default:
dat = 0;
for (nn = 0; nn < 16; nn++)
dat |= (enables[nn] << nn);
return dat;
}
}
 
void clsPIC::Write(unsigned int ad, unsigned int dat, unsigned int mask) {
int nn;
switch((ad >> 3) & 7) {
case 1:
for (nn = 0; nn < 16; nn++)
enables[nn] = (dat & (1 << nn)) != 0;
break;
case 2:
enables[dat & 15] = false;
break;
case 3:
enables[dat & 15] = true;
break;
case 5:
if (dat==1)
irq1024Hz = false;
if (dat==2)
irq30Hz = false;
if (dat==7)
irqUart = false;
if (dat==3)
irqKeyboard = false;
break;
}
}
 
void clsPIC::Step(void) {
vecno = 192;
irq = system1.cpu2.irq = false;
if (enables[7] & irqUart) {
irq = system1.cpu2.irq = true;
vecno = 192+7;
}
if (enables[3] & irqKeyboard) {
irq = system1.cpu2.irq = true;
vecno = 192+3;
}
if (enables[2] & irq30Hz) {
irq = system1.cpu2.irq = true;
vecno = 192+2;
}
if (enables[1] & irq1024Hz) {
irq = system1.cpu2.irq = true;
vecno = 192+1;
}
system1.cpu2.vecno = vecno;
}
 
 
/source/About.h
67,7 → 67,7
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(61, 31);
this->label1->Location = System::Drawing::Point(74, 31);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(179, 13);
this->label1->TabIndex = 0;
76,7 → 76,7
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(89, 56);
this->label2->Location = System::Drawing::Point(103, 57);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(111, 13);
this->label2->TabIndex = 1;
85,7 → 85,7
// linkLabel1
//
this->linkLabel1->AutoSize = true;
this->linkLabel1->Location = System::Drawing::Point(89, 83);
this->linkLabel1->Location = System::Drawing::Point(103, 83);
this->linkLabel1->Name = L"linkLabel1";
this->linkLabel1->Size = System::Drawing::Size(111, 13);
this->linkLabel1->TabIndex = 2;
108,7 → 108,7
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(12, 141);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(297, 52);
this->label4->Size = System::Drawing::Size(347, 65);
this->label4->TabIndex = 4;
this->label4->Text = resources->GetString(L"label4.Text");
//
117,17 → 117,15
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(12, 208);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(267, 65);
this->label5->Size = System::Drawing::Size(267, 78);
this->label5->TabIndex = 5;
this->label5->Text = L"For an example:\r\n\r\nLoad a hex file (boot.hex) using the file menu.\r\nGoto the run "
L"menu and select reset to reset the system.\r\nThen single step via the single step"
L" toolbar button.";
this->label5->Text = resources->GetString(L"label5.Text");
//
// About
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(316, 291);
this->ClientSize = System::Drawing::Size(369, 321);
this->Controls->Add(this->label5);
this->Controls->Add(this->label4);
this->Controls->Add(this->label3);
134,6 → 132,7
this->Controls->Add(this->linkLabel1);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedDialog;
this->MaximizeBox = false;
this->Name = L"About";
this->Text = L"About";
/source/frmRegisters.h
8,6 → 8,7
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmRegisters
15,39 → 16,132
public ref class frmRegisters : public System::Windows::Forms::Form
{
public:
frmRegisters(void)
Mutex^ mut;
frmRegisters(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
//
char buf[100];
sprintf(buf, "%016I64X", cpu1.gp[1]);
mut->WaitOne();
sprintf(buf, "%016I64X", system1.cpu2.gp[1]);
txtR1->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.gp[2]);
sprintf(buf, "%016I64X", system1.cpu2.gp[2]);
txtR2->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.gp[3]);
sprintf(buf, "%016I64X", system1.cpu2.gp[3]);
txtR3->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.gp[4]);
sprintf(buf, "%016I64X", system1.cpu2.gp[4]);
txtR4->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.gp[5]);
sprintf(buf, "%016I64X", system1.cpu2.gp[5]);
txtR5->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.gp[6]);
sprintf(buf, "%016I64X", system1.cpu2.gp[6]);
txtR6->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.gp[7]);
sprintf(buf, "%016I64X", system1.cpu2.gp[7]);
txtR7->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.gp[8]);
sprintf(buf, "%016I64X", system1.cpu2.gp[8]);
txtR8->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.ca[1]);
sprintf(buf, "%016I64X", system1.cpu2.gp[9]);
txtR9->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[10]);
txtR10->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[11]);
txtR11->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[12]);
txtR12->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[13]);
txtR13->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[14]);
txtR14->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[15]);
txtR15->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[16]);
txtR16->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[17]);
txtR17->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[18]);
txtR18->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[19]);
txtR19->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[26]);
txtR26->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[27]);
txtR27->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[28]);
txtR28->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[29]);
txtR29->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[30]);
txtR30->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[31]);
txtR31->Text = gcnew String(buf);
 
// Predicate Registers
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[0],
system1.cpu2.pr[0] & 4 ? '<' : ' ',
system1.cpu2.pr[0] & 2 ? '<' : ' ',
system1.cpu2.pr[0] & 1 ? '=' : ' '
);
txtP0->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[1],
system1.cpu2.pr[1] & 4 ? '<' : ' ',
system1.cpu2.pr[1] & 2 ? '<' : ' ',
system1.cpu2.pr[1] & 1 ? '=' : ' '
);
txtP1->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[2],
system1.cpu2.pr[2] & 4 ? '<' : ' ',
system1.cpu2.pr[2] & 2 ? '<' : ' ',
system1.cpu2.pr[2] & 1 ? '=' : ' '
);
txtP2->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[3],
system1.cpu2.pr[3] & 4 ? '<' : ' ',
system1.cpu2.pr[3] & 2 ? '<' : ' ',
system1.cpu2.pr[3] & 1 ? '=' : ' '
);
txtP3->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[4],
system1.cpu2.pr[4] & 4 ? '<' : ' ',
system1.cpu2.pr[4] & 2 ? '<' : ' ',
system1.cpu2.pr[4] & 1 ? '=' : ' '
);
txtP4->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[5],
system1.cpu2.pr[5] & 4 ? '<' : ' ',
system1.cpu2.pr[5] & 2 ? '<' : ' ',
system1.cpu2.pr[5] & 1 ? '=' : ' '
);
txtP5->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[6],
system1.cpu2.pr[6] & 4 ? '<' : ' ',
system1.cpu2.pr[6] & 2 ? '<' : ' ',
system1.cpu2.pr[6] & 1 ? '=' : ' '
);
txtP6->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[7],
system1.cpu2.pr[7] & 4 ? '<' : ' ',
system1.cpu2.pr[7] & 2 ? '<' : ' ',
system1.cpu2.pr[7] & 1 ? '=' : ' '
);
txtP7->Text = gcnew String(buf);
 
// Code address registers
sprintf(buf, "%016I64X", system1.cpu2.ca[1]);
txtCa1->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.ca[12]);
sprintf(buf, "%016I64X", system1.cpu2.ca[12]);
txtCa12->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.pc);
sprintf(buf, "%016I64X", system1.cpu2.ca[14]);
txtCa14->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.pc);
txtCa15->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.tick);
 
sprintf(buf, "%016I64X", system1.cpu2.tick);
txtTick->Text = gcnew String(buf);
sprintf(buf, "%016I64X", cpu1.lc);
sprintf(buf, "%016I64X", system1.cpu2.lc);
txtLC->Text = gcnew String(buf);
mut->ReleaseMutex();
}
 
protected:
127,21 → 221,29
private: System::Windows::Forms::Label^ label43;
private: System::Windows::Forms::TextBox^ textBox44;
private: System::Windows::Forms::Label^ label44;
private: System::Windows::Forms::TextBox^ textBox45;
private: System::Windows::Forms::TextBox^ txtR35;
 
private: System::Windows::Forms::Label^ label45;
private: System::Windows::Forms::TextBox^ textBox46;
private: System::Windows::Forms::TextBox^ txtR34;
 
private: System::Windows::Forms::Label^ label46;
private: System::Windows::Forms::TextBox^ textBox47;
private: System::Windows::Forms::TextBox^ txtR33;
 
private: System::Windows::Forms::Label^ label47;
private: System::Windows::Forms::TextBox^ textBox48;
private: System::Windows::Forms::TextBox^ txtR32;
 
private: System::Windows::Forms::Label^ label48;
private: System::Windows::Forms::TextBox^ textBox17;
private: System::Windows::Forms::TextBox^ txtR31;
 
private: System::Windows::Forms::Label^ label17;
private: System::Windows::Forms::TextBox^ textBox18;
private: System::Windows::Forms::TextBox^ txtR30;
 
private: System::Windows::Forms::Label^ label18;
private: System::Windows::Forms::TextBox^ textBox19;
private: System::Windows::Forms::TextBox^ txtR29;
 
private: System::Windows::Forms::Label^ label19;
private: System::Windows::Forms::TextBox^ textBox20;
private: System::Windows::Forms::TextBox^ txtR28;
 
private: System::Windows::Forms::Label^ label20;
private: System::Windows::Forms::TextBox^ txtR27;
 
230,7 → 332,8
private: System::Windows::Forms::TextBox^ txtCs;
 
private: System::Windows::Forms::Label^ label104;
private: System::Windows::Forms::TextBox^ textBox92;
private: System::Windows::Forms::TextBox^ txtSSLmt;
 
private: System::Windows::Forms::TextBox^ txtSs;
 
private: System::Windows::Forms::Label^ label103;
254,7 → 357,8
private: System::Windows::Forms::TextBox^ txtDs;
 
private: System::Windows::Forms::Label^ label98;
private: System::Windows::Forms::TextBox^ textBox81;
private: System::Windows::Forms::TextBox^ txtZSLmt;
 
private: System::Windows::Forms::TextBox^ txtZs;
 
private: System::Windows::Forms::Label^ label97;
305,21 → 409,29
private: System::Windows::Forms::Label^ label82;
private: System::Windows::Forms::TextBox^ textBox16;
private: System::Windows::Forms::Label^ label81;
private: System::Windows::Forms::TextBox^ textBox15;
private: System::Windows::Forms::TextBox^ txtP14;
 
private: System::Windows::Forms::Label^ label80;
private: System::Windows::Forms::TextBox^ textBox14;
private: System::Windows::Forms::TextBox^ txtP13;
 
private: System::Windows::Forms::Label^ label79;
private: System::Windows::Forms::TextBox^ textBox13;
private: System::Windows::Forms::TextBox^ txtP12;
 
private: System::Windows::Forms::Label^ label78;
private: System::Windows::Forms::TextBox^ textBox12;
private: System::Windows::Forms::TextBox^ txtP11;
 
private: System::Windows::Forms::Label^ label77;
private: System::Windows::Forms::TextBox^ textBox11;
private: System::Windows::Forms::TextBox^ txtP15;
 
private: System::Windows::Forms::Label^ label76;
private: System::Windows::Forms::TextBox^ textBox10;
private: System::Windows::Forms::TextBox^ txtP10;
 
private: System::Windows::Forms::Label^ label75;
private: System::Windows::Forms::TextBox^ textBox9;
private: System::Windows::Forms::TextBox^ txtP9;
 
private: System::Windows::Forms::Label^ label74;
private: System::Windows::Forms::TextBox^ textBox8;
private: System::Windows::Forms::TextBox^ txtP8;
 
private: System::Windows::Forms::Label^ label73;
private: System::Windows::Forms::TextBox^ txtP7;
 
355,7 → 467,8
private: System::Windows::Forms::Label^ label112;
private: System::Windows::Forms::TextBox^ textBox97;
private: System::Windows::Forms::Label^ label111;
private: System::Windows::Forms::TextBox^ textBox96;
private: System::Windows::Forms::TextBox^ txtDBAD0;
 
private: System::Windows::Forms::Label^ label110;
private: System::Windows::Forms::TextBox^ txtTick;
private: System::Windows::Forms::Label^ label118;
563,21 → 676,21
this->label43 = (gcnew System::Windows::Forms::Label());
this->textBox44 = (gcnew System::Windows::Forms::TextBox());
this->label44 = (gcnew System::Windows::Forms::Label());
this->textBox45 = (gcnew System::Windows::Forms::TextBox());
this->txtR35 = (gcnew System::Windows::Forms::TextBox());
this->label45 = (gcnew System::Windows::Forms::Label());
this->textBox46 = (gcnew System::Windows::Forms::TextBox());
this->txtR34 = (gcnew System::Windows::Forms::TextBox());
this->label46 = (gcnew System::Windows::Forms::Label());
this->textBox47 = (gcnew System::Windows::Forms::TextBox());
this->txtR33 = (gcnew System::Windows::Forms::TextBox());
this->label47 = (gcnew System::Windows::Forms::Label());
this->textBox48 = (gcnew System::Windows::Forms::TextBox());
this->txtR32 = (gcnew System::Windows::Forms::TextBox());
this->label48 = (gcnew System::Windows::Forms::Label());
this->textBox17 = (gcnew System::Windows::Forms::TextBox());
this->txtR31 = (gcnew System::Windows::Forms::TextBox());
this->label17 = (gcnew System::Windows::Forms::Label());
this->textBox18 = (gcnew System::Windows::Forms::TextBox());
this->txtR30 = (gcnew System::Windows::Forms::TextBox());
this->label18 = (gcnew System::Windows::Forms::Label());
this->textBox19 = (gcnew System::Windows::Forms::TextBox());
this->txtR29 = (gcnew System::Windows::Forms::TextBox());
this->label19 = (gcnew System::Windows::Forms::Label());
this->textBox20 = (gcnew System::Windows::Forms::TextBox());
this->txtR28 = (gcnew System::Windows::Forms::TextBox());
this->label20 = (gcnew System::Windows::Forms::Label());
this->txtR27 = (gcnew System::Windows::Forms::TextBox());
this->label21 = (gcnew System::Windows::Forms::Label());
651,7 → 764,7
this->label112 = (gcnew System::Windows::Forms::Label());
this->textBox97 = (gcnew System::Windows::Forms::TextBox());
this->label111 = (gcnew System::Windows::Forms::Label());
this->textBox96 = (gcnew System::Windows::Forms::TextBox());
this->txtDBAD0 = (gcnew System::Windows::Forms::TextBox());
this->label110 = (gcnew System::Windows::Forms::Label());
this->label109 = (gcnew System::Windows::Forms::Label());
this->label108 = (gcnew System::Windows::Forms::Label());
661,7 → 774,7
this->textBox94 = (gcnew System::Windows::Forms::TextBox());
this->txtCs = (gcnew System::Windows::Forms::TextBox());
this->label104 = (gcnew System::Windows::Forms::Label());
this->textBox92 = (gcnew System::Windows::Forms::TextBox());
this->txtSSLmt = (gcnew System::Windows::Forms::TextBox());
this->txtSs = (gcnew System::Windows::Forms::TextBox());
this->label103 = (gcnew System::Windows::Forms::Label());
this->textBox90 = (gcnew System::Windows::Forms::TextBox());
679,7 → 792,7
this->textBox82 = (gcnew System::Windows::Forms::TextBox());
this->txtDs = (gcnew System::Windows::Forms::TextBox());
this->label98 = (gcnew System::Windows::Forms::Label());
this->textBox81 = (gcnew System::Windows::Forms::TextBox());
this->txtZSLmt = (gcnew System::Windows::Forms::TextBox());
this->txtZs = (gcnew System::Windows::Forms::TextBox());
this->label97 = (gcnew System::Windows::Forms::Label());
this->txtCa15 = (gcnew System::Windows::Forms::TextBox());
714,21 → 827,21
this->label82 = (gcnew System::Windows::Forms::Label());
this->textBox16 = (gcnew System::Windows::Forms::TextBox());
this->label81 = (gcnew System::Windows::Forms::Label());
this->textBox15 = (gcnew System::Windows::Forms::TextBox());
this->txtP14 = (gcnew System::Windows::Forms::TextBox());
this->label80 = (gcnew System::Windows::Forms::Label());
this->textBox14 = (gcnew System::Windows::Forms::TextBox());
this->txtP13 = (gcnew System::Windows::Forms::TextBox());
this->label79 = (gcnew System::Windows::Forms::Label());
this->textBox13 = (gcnew System::Windows::Forms::TextBox());
this->txtP12 = (gcnew System::Windows::Forms::TextBox());
this->label78 = (gcnew System::Windows::Forms::Label());
this->textBox12 = (gcnew System::Windows::Forms::TextBox());
this->txtP11 = (gcnew System::Windows::Forms::TextBox());
this->label77 = (gcnew System::Windows::Forms::Label());
this->textBox11 = (gcnew System::Windows::Forms::TextBox());
this->txtP15 = (gcnew System::Windows::Forms::TextBox());
this->label76 = (gcnew System::Windows::Forms::Label());
this->textBox10 = (gcnew System::Windows::Forms::TextBox());
this->txtP10 = (gcnew System::Windows::Forms::TextBox());
this->label75 = (gcnew System::Windows::Forms::Label());
this->textBox9 = (gcnew System::Windows::Forms::TextBox());
this->txtP9 = (gcnew System::Windows::Forms::TextBox());
this->label74 = (gcnew System::Windows::Forms::Label());
this->textBox8 = (gcnew System::Windows::Forms::TextBox());
this->txtP8 = (gcnew System::Windows::Forms::TextBox());
this->label73 = (gcnew System::Windows::Forms::Label());
this->txtP7 = (gcnew System::Windows::Forms::TextBox());
this->label72 = (gcnew System::Windows::Forms::Label());
819,21 → 932,21
this->tabPage1->Controls->Add(this->label43);
this->tabPage1->Controls->Add(this->textBox44);
this->tabPage1->Controls->Add(this->label44);
this->tabPage1->Controls->Add(this->textBox45);
this->tabPage1->Controls->Add(this->txtR35);
this->tabPage1->Controls->Add(this->label45);
this->tabPage1->Controls->Add(this->textBox46);
this->tabPage1->Controls->Add(this->txtR34);
this->tabPage1->Controls->Add(this->label46);
this->tabPage1->Controls->Add(this->textBox47);
this->tabPage1->Controls->Add(this->txtR33);
this->tabPage1->Controls->Add(this->label47);
this->tabPage1->Controls->Add(this->textBox48);
this->tabPage1->Controls->Add(this->txtR32);
this->tabPage1->Controls->Add(this->label48);
this->tabPage1->Controls->Add(this->textBox17);
this->tabPage1->Controls->Add(this->txtR31);
this->tabPage1->Controls->Add(this->label17);
this->tabPage1->Controls->Add(this->textBox18);
this->tabPage1->Controls->Add(this->txtR30);
this->tabPage1->Controls->Add(this->label18);
this->tabPage1->Controls->Add(this->textBox19);
this->tabPage1->Controls->Add(this->txtR29);
this->tabPage1->Controls->Add(this->label19);
this->tabPage1->Controls->Add(this->textBox20);
this->tabPage1->Controls->Add(this->txtR28);
this->tabPage1->Controls->Add(this->label20);
this->tabPage1->Controls->Add(this->txtR27);
this->tabPage1->Controls->Add(this->label21);
1375,13 → 1488,13
this->label44->TabIndex = 72;
this->label44->Text = L"R36";
//
// textBox45
// txtR35
//
this->textBox45->Location = System::Drawing::Point(354, 91);
this->textBox45->Name = L"textBox45";
this->textBox45->Size = System::Drawing::Size(121, 20);
this->textBox45->TabIndex = 71;
this->textBox45->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR35->Location = System::Drawing::Point(354, 91);
this->txtR35->Name = L"txtR35";
this->txtR35->Size = System::Drawing::Size(121, 20);
this->txtR35->TabIndex = 71;
this->txtR35->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label45
//
1392,13 → 1505,13
this->label45->TabIndex = 70;
this->label45->Text = L"R35";
//
// textBox46
// txtR34
//
this->textBox46->Location = System::Drawing::Point(354, 65);
this->textBox46->Name = L"textBox46";
this->textBox46->Size = System::Drawing::Size(121, 20);
this->textBox46->TabIndex = 69;
this->textBox46->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR34->Location = System::Drawing::Point(354, 65);
this->txtR34->Name = L"txtR34";
this->txtR34->Size = System::Drawing::Size(121, 20);
this->txtR34->TabIndex = 69;
this->txtR34->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label46
//
1409,13 → 1522,13
this->label46->TabIndex = 68;
this->label46->Text = L"R34";
//
// textBox47
// txtR33
//
this->textBox47->Location = System::Drawing::Point(354, 39);
this->textBox47->Name = L"textBox47";
this->textBox47->Size = System::Drawing::Size(121, 20);
this->textBox47->TabIndex = 67;
this->textBox47->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR33->Location = System::Drawing::Point(354, 39);
this->txtR33->Name = L"txtR33";
this->txtR33->Size = System::Drawing::Size(121, 20);
this->txtR33->TabIndex = 67;
this->txtR33->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label47
//
1426,13 → 1539,13
this->label47->TabIndex = 66;
this->label47->Text = L"R33";
//
// textBox48
// txtR32
//
this->textBox48->Location = System::Drawing::Point(354, 13);
this->textBox48->Name = L"textBox48";
this->textBox48->Size = System::Drawing::Size(121, 20);
this->textBox48->TabIndex = 65;
this->textBox48->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR32->Location = System::Drawing::Point(354, 13);
this->txtR32->Name = L"txtR32";
this->txtR32->Size = System::Drawing::Size(121, 20);
this->txtR32->TabIndex = 65;
this->txtR32->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label48
//
1443,13 → 1556,13
this->label48->TabIndex = 64;
this->label48->Text = L"R32";
//
// textBox17
// txtR31
//
this->textBox17->Location = System::Drawing::Point(192, 403);
this->textBox17->Name = L"textBox17";
this->textBox17->Size = System::Drawing::Size(121, 20);
this->textBox17->TabIndex = 63;
this->textBox17->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR31->Location = System::Drawing::Point(192, 403);
this->txtR31->Name = L"txtR31";
this->txtR31->Size = System::Drawing::Size(121, 20);
this->txtR31->TabIndex = 63;
this->txtR31->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label17
//
1460,13 → 1573,13
this->label17->TabIndex = 62;
this->label17->Text = L"R31";
//
// textBox18
// txtR30
//
this->textBox18->Location = System::Drawing::Point(192, 377);
this->textBox18->Name = L"textBox18";
this->textBox18->Size = System::Drawing::Size(121, 20);
this->textBox18->TabIndex = 61;
this->textBox18->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR30->Location = System::Drawing::Point(192, 377);
this->txtR30->Name = L"txtR30";
this->txtR30->Size = System::Drawing::Size(121, 20);
this->txtR30->TabIndex = 61;
this->txtR30->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label18
//
1477,13 → 1590,13
this->label18->TabIndex = 60;
this->label18->Text = L"R30";
//
// textBox19
// txtR29
//
this->textBox19->Location = System::Drawing::Point(192, 351);
this->textBox19->Name = L"textBox19";
this->textBox19->Size = System::Drawing::Size(121, 20);
this->textBox19->TabIndex = 59;
this->textBox19->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR29->Location = System::Drawing::Point(192, 351);
this->txtR29->Name = L"txtR29";
this->txtR29->Size = System::Drawing::Size(121, 20);
this->txtR29->TabIndex = 59;
this->txtR29->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label19
//
1494,13 → 1607,13
this->label19->TabIndex = 58;
this->label19->Text = L"R29";
//
// textBox20
// txtR28
//
this->textBox20->Location = System::Drawing::Point(192, 325);
this->textBox20->Name = L"textBox20";
this->textBox20->Size = System::Drawing::Size(121, 20);
this->textBox20->TabIndex = 57;
this->textBox20->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR28->Location = System::Drawing::Point(192, 325);
this->txtR28->Name = L"txtR28";
this->txtR28->Size = System::Drawing::Size(121, 20);
this->txtR28->TabIndex = 57;
this->txtR28->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label20
//
2008,7 → 2121,7
this->tabPage2->Controls->Add(this->label112);
this->tabPage2->Controls->Add(this->textBox97);
this->tabPage2->Controls->Add(this->label111);
this->tabPage2->Controls->Add(this->textBox96);
this->tabPage2->Controls->Add(this->txtDBAD0);
this->tabPage2->Controls->Add(this->label110);
this->tabPage2->Controls->Add(this->label109);
this->tabPage2->Controls->Add(this->label108);
2018,7 → 2131,7
this->tabPage2->Controls->Add(this->textBox94);
this->tabPage2->Controls->Add(this->txtCs);
this->tabPage2->Controls->Add(this->label104);
this->tabPage2->Controls->Add(this->textBox92);
this->tabPage2->Controls->Add(this->txtSSLmt);
this->tabPage2->Controls->Add(this->txtSs);
this->tabPage2->Controls->Add(this->label103);
this->tabPage2->Controls->Add(this->textBox90);
2036,7 → 2149,7
this->tabPage2->Controls->Add(this->textBox82);
this->tabPage2->Controls->Add(this->txtDs);
this->tabPage2->Controls->Add(this->label98);
this->tabPage2->Controls->Add(this->textBox81);
this->tabPage2->Controls->Add(this->txtZSLmt);
this->tabPage2->Controls->Add(this->txtZs);
this->tabPage2->Controls->Add(this->label97);
this->tabPage2->Controls->Add(this->txtCa15);
2071,21 → 2184,21
this->tabPage2->Controls->Add(this->label82);
this->tabPage2->Controls->Add(this->textBox16);
this->tabPage2->Controls->Add(this->label81);
this->tabPage2->Controls->Add(this->textBox15);
this->tabPage2->Controls->Add(this->txtP14);
this->tabPage2->Controls->Add(this->label80);
this->tabPage2->Controls->Add(this->textBox14);
this->tabPage2->Controls->Add(this->txtP13);
this->tabPage2->Controls->Add(this->label79);
this->tabPage2->Controls->Add(this->textBox13);
this->tabPage2->Controls->Add(this->txtP12);
this->tabPage2->Controls->Add(this->label78);
this->tabPage2->Controls->Add(this->textBox12);
this->tabPage2->Controls->Add(this->txtP11);
this->tabPage2->Controls->Add(this->label77);
this->tabPage2->Controls->Add(this->textBox11);
this->tabPage2->Controls->Add(this->txtP15);
this->tabPage2->Controls->Add(this->label76);
this->tabPage2->Controls->Add(this->textBox10);
this->tabPage2->Controls->Add(this->txtP10);
this->tabPage2->Controls->Add(this->label75);
this->tabPage2->Controls->Add(this->textBox9);
this->tabPage2->Controls->Add(this->txtP9);
this->tabPage2->Controls->Add(this->label74);
this->tabPage2->Controls->Add(this->textBox8);
this->tabPage2->Controls->Add(this->txtP8);
this->tabPage2->Controls->Add(this->label73);
this->tabPage2->Controls->Add(this->txtP7);
this->tabPage2->Controls->Add(this->label72);
2240,13 → 2353,13
this->label111->TabIndex = 93;
this->label111->Text = L"DBAD1";
//
// textBox96
// txtDBAD0
//
this->textBox96->Location = System::Drawing::Point(353, 296);
this->textBox96->Name = L"textBox96";
this->textBox96->Size = System::Drawing::Size(118, 20);
this->textBox96->TabIndex = 92;
this->textBox96->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtDBAD0->Location = System::Drawing::Point(353, 296);
this->txtDBAD0->Name = L"txtDBAD0";
this->txtDBAD0->Size = System::Drawing::Size(118, 20);
this->txtDBAD0->TabIndex = 92;
this->txtDBAD0->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label110
//
2327,13 → 2440,13
this->label104->TabIndex = 83;
this->label104->Text = L"CS";
//
// textBox92
// txtSSLmt
//
this->textBox92->Location = System::Drawing::Point(471, 218);
this->textBox92->Name = L"textBox92";
this->textBox92->Size = System::Drawing::Size(118, 20);
this->textBox92->TabIndex = 82;
this->textBox92->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtSSLmt->Location = System::Drawing::Point(471, 218);
this->txtSSLmt->Name = L"txtSSLmt";
this->txtSSLmt->Size = System::Drawing::Size(118, 20);
this->txtSSLmt->TabIndex = 82;
this->txtSSLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtSs
//
2477,13 → 2590,13
this->label98->TabIndex = 65;
this->label98->Text = L"DS";
//
// textBox81
// txtZSLmt
//
this->textBox81->Location = System::Drawing::Point(471, 62);
this->textBox81->Name = L"textBox81";
this->textBox81->Size = System::Drawing::Size(118, 20);
this->textBox81->TabIndex = 64;
this->textBox81->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtZSLmt->Location = System::Drawing::Point(471, 62);
this->txtZSLmt->Name = L"txtZSLmt";
this->txtZSLmt->Size = System::Drawing::Size(118, 20);
this->txtZSLmt->TabIndex = 64;
this->txtZSLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtZs
//
2777,13 → 2890,13
this->label81->TabIndex = 30;
this->label81->Text = L"C0";
//
// textBox15
// txtP14
//
this->textBox15->Location = System::Drawing::Point(36, 400);
this->textBox15->Name = L"textBox15";
this->textBox15->Size = System::Drawing::Size(54, 20);
this->textBox15->TabIndex = 29;
this->textBox15->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP14->Location = System::Drawing::Point(36, 400);
this->txtP14->Name = L"txtP14";
this->txtP14->Size = System::Drawing::Size(54, 20);
this->txtP14->TabIndex = 29;
this->txtP14->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label80
//
2794,13 → 2907,13
this->label80->TabIndex = 28;
this->label80->Text = L"P14";
//
// textBox14
// txtP13
//
this->textBox14->Location = System::Drawing::Point(36, 374);
this->textBox14->Name = L"textBox14";
this->textBox14->Size = System::Drawing::Size(54, 20);
this->textBox14->TabIndex = 27;
this->textBox14->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP13->Location = System::Drawing::Point(36, 374);
this->txtP13->Name = L"txtP13";
this->txtP13->Size = System::Drawing::Size(54, 20);
this->txtP13->TabIndex = 27;
this->txtP13->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label79
//
2811,13 → 2924,13
this->label79->TabIndex = 26;
this->label79->Text = L"P13";
//
// textBox13
// txtP12
//
this->textBox13->Location = System::Drawing::Point(36, 348);
this->textBox13->Name = L"textBox13";
this->textBox13->Size = System::Drawing::Size(54, 20);
this->textBox13->TabIndex = 25;
this->textBox13->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP12->Location = System::Drawing::Point(36, 348);
this->txtP12->Name = L"txtP12";
this->txtP12->Size = System::Drawing::Size(54, 20);
this->txtP12->TabIndex = 25;
this->txtP12->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label78
//
2828,13 → 2941,13
this->label78->TabIndex = 24;
this->label78->Text = L"P12";
//
// textBox12
// txtP11
//
this->textBox12->Location = System::Drawing::Point(36, 322);
this->textBox12->Name = L"textBox12";
this->textBox12->Size = System::Drawing::Size(54, 20);
this->textBox12->TabIndex = 23;
this->textBox12->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP11->Location = System::Drawing::Point(36, 322);
this->txtP11->Name = L"txtP11";
this->txtP11->Size = System::Drawing::Size(54, 20);
this->txtP11->TabIndex = 23;
this->txtP11->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label77
//
2845,13 → 2958,13
this->label77->TabIndex = 22;
this->label77->Text = L"P11";
//
// textBox11
// txtP15
//
this->textBox11->Location = System::Drawing::Point(36, 426);
this->textBox11->Name = L"textBox11";
this->textBox11->Size = System::Drawing::Size(54, 20);
this->textBox11->TabIndex = 23;
this->textBox11->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP15->Location = System::Drawing::Point(36, 426);
this->txtP15->Name = L"txtP15";
this->txtP15->Size = System::Drawing::Size(54, 20);
this->txtP15->TabIndex = 23;
this->txtP15->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label76
//
2862,13 → 2975,13
this->label76->TabIndex = 22;
this->label76->Text = L"P15";
//
// textBox10
// txtP10
//
this->textBox10->Location = System::Drawing::Point(36, 296);
this->textBox10->Name = L"textBox10";
this->textBox10->Size = System::Drawing::Size(54, 20);
this->textBox10->TabIndex = 21;
this->textBox10->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP10->Location = System::Drawing::Point(36, 296);
this->txtP10->Name = L"txtP10";
this->txtP10->Size = System::Drawing::Size(54, 20);
this->txtP10->TabIndex = 21;
this->txtP10->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label75
//
2879,13 → 2992,13
this->label75->TabIndex = 20;
this->label75->Text = L"P10";
//
// textBox9
// txtP9
//
this->textBox9->Location = System::Drawing::Point(36, 270);
this->textBox9->Name = L"textBox9";
this->textBox9->Size = System::Drawing::Size(54, 20);
this->textBox9->TabIndex = 19;
this->textBox9->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP9->Location = System::Drawing::Point(36, 270);
this->txtP9->Name = L"txtP9";
this->txtP9->Size = System::Drawing::Size(54, 20);
this->txtP9->TabIndex = 19;
this->txtP9->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label74
//
2896,13 → 3009,13
this->label74->TabIndex = 18;
this->label74->Text = L"P9";
//
// textBox8
// txtP8
//
this->textBox8->Location = System::Drawing::Point(36, 244);
this->textBox8->Name = L"textBox8";
this->textBox8->Size = System::Drawing::Size(54, 20);
this->textBox8->TabIndex = 17;
this->textBox8->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtP8->Location = System::Drawing::Point(36, 244);
this->txtP8->Name = L"txtP8";
this->txtP8->Size = System::Drawing::Size(54, 20);
this->txtP8->TabIndex = 17;
this->txtP8->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label73
//
/source/frmMain.resX
120,10 → 120,18
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="interruptToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk3uAAAAAAAAAHYAAAAoAAAAEAAAAA8AAAABAAQAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4iI
iIiIiIiIiIiIiMyIiIiIiIiMzMiIiIiIiIzMyIiIiIiIiMyIiIiIiIiIiIiIiIiIiIjMiIiIiIiIiMyI
iIiIiIiIzIiIiIiIiIzMyIiIiIiIjMzIiIiIiIiMzMiIiIiIiIjMiIiIiIiIiIiIiIiIiIiIiIiIiA==
</value>
</data>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
178,7 → 186,27
LMT/UBs+mycAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton8.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABRSURBVDhPtYwBCgAgCAP7/6ctyoWJgloFV7bhtXHokjWM
K8UhQJjlr4DLCTIN935pzZL/AoBMw71fytciJNCzJCyw/shcQYR3gooEe1tQo1EHdyOQfvPaXr4AAAAA
SUVORK5CYII=
</value>
</data>
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>377, 17</value>
</metadata>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>464, 17</value>
</metadata>
<metadata name="timer30.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>628, 17</value>
</metadata>
<metadata name="timer1024.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>721, 17</value>
</metadata>
</root>
/source/frmScreen.h
13,6 → 13,7
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmScreen
21,12 → 22,15
{
System::Drawing::Rectangle ur;
public:
frmScreen(void)
Mutex^ mut;
frmScreen(Mutex^ m, String^ tbs)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
//
this->Text = L"emuFISA64 Test System Screen - " + tbs;
}
 
protected:
40,6 → 44,8
delete components;
}
}
public: unsigned long *pVidMem;
public: bool *pVidDirty;
private: System::Windows::Forms::Timer^ timer1;
private: System::Windows::Forms::PictureBox^ pictureBox1;
protected:
74,7 → 80,7
this->pictureBox1->BackgroundImageLayout = System::Windows::Forms::ImageLayout::None;
this->pictureBox1->Location = System::Drawing::Point(2, 0);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(681, 266);
this->pictureBox1->Size = System::Drawing::Size(681, 328);
this->pictureBox1->TabIndex = 0;
this->pictureBox1->TabStop = false;
this->pictureBox1->Click += gcnew System::EventHandler(this, &frmScreen::pictureBox1_Click);
85,7 → 91,7
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->BackgroundImageLayout = System::Windows::Forms::ImageLayout::None;
this->ClientSize = System::Drawing::Size(684, 262);
this->ClientSize = System::Drawing::Size(684, 332);
this->Controls->Add(this->pictureBox1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedDialog;
this->MaximizeBox = false;
121,19 → 127,23
minx = 1000; miny = 1000;
if (refscreen) {
for (nn = 0; nn < 4096; nn++) {
if (system1.VideoMemDirty[nn]) {
xx = nn % 84;
yy = nn / 84;
maxx = max(xx,maxx);
maxy = max(yy,maxy);
minx = min(xx,minx);
miny = min(yy,miny);
if (pVidDirty) {
mut->WaitOne();
if (pVidDirty[nn]) {
xx = nn % 84;
yy = nn / 84;
maxx = max(xx,maxx);
maxy = max(yy,maxy);
minx = min(xx,minx);
miny = min(yy,miny);
}
mut->ReleaseMutex();
}
}
ur.X = minx<<3;
ur.Y = miny<<3;
ur.Y = miny * 10;
ur.Width = (maxx - minx)<<3;
ur.Height = (maxy - miny)<<3;
ur.Height = (maxy - miny) * 10;
this->pictureBox1->Invalidate(ur);
refscreen = false;
// this->Refresh();
158,23 → 168,31
fgbr = gcnew System::Drawing::SolidBrush(System::Drawing::Color::White);
int xx, yy;
for (xx = ur.X; xx < ur.X + ur.Width; xx += 8) {
for (yy = ur.Y; yy < ur.Y + ur.Height; yy += 8) {
ndx = (xx/8 + yy/8 * 84);
for (yy = ur.Y; yy < ur.Y + ur.Height; yy += 10) {
ndx = (xx/8 + yy/10 * 84);
// if (system1.VideoMemDirty[ndx]) {
v = system1.VideoMem[ndx];
r = ((((v >> 10) >> 9) >> 6) & 7) << 5;
g = ((((v >> 10) >> 9) >> 3) & 7) << 5;
b = ((((v >> 10) >> 9) >> 0) & 7) << 5;
bkbr->Color = col->FromArgb(255,r,g,b);
gr->FillRectangle(bkbr,xx,yy,8,8);
r = ((((v >> 10)) >> 6) & 7) << 5;
g = ((((v >> 10)) >> 3) & 7)<< 5;
b = ((((v >> 10)) >> 0) & 7)<< 5;
fgbr->Color = col->FromArgb(255,r,g,b);
sprintf(buf,"%c",ScreenToAscii(system1.VideoMem[ndx]&0xff));
str = std::string(buf);
gr->DrawString(gcnew String(str.c_str()),myfont,fgbr,xx,yy);
system1.VideoMemDirty[ndx] = false;
if (pVidMem) {
mut->WaitOne();
v = pVidMem[ndx];
mut->ReleaseMutex();
r = ((((v >> 10) >> 9) >> 6) & 7) << 5;
g = ((((v >> 10) >> 9) >> 3) & 7) << 5;
b = ((((v >> 10) >> 9) >> 0) & 7) << 5;
bkbr->Color = col->FromArgb(255,r,g,b);
gr->FillRectangle(bkbr,xx,yy,8,10);
r = ((((v >> 10)) >> 6) & 7) << 5;
g = ((((v >> 10)) >> 3) & 7)<< 5;
b = ((((v >> 10)) >> 0) & 7)<< 5;
fgbr->Color = col->FromArgb(255,r,g,b);
sprintf(buf,"%c",ScreenToAscii(v&0xff));
str = std::string(buf);
gr->DrawString(gcnew String(str.c_str()),myfont,fgbr,xx,yy);
if (pVidDirty) {
mut->WaitOne();
pVidDirty[ndx] = false;
mut->ReleaseMutex();
}
}
// }
}
}
/source/ExecToolbar8.bmp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
source/ExecToolbar8.bmp Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: source/frmBreakpoints.h =================================================================== --- source/frmBreakpoints.h (nonexistent) +++ source/frmBreakpoints.h (revision 32) @@ -0,0 +1,453 @@ +#pragma once +#include + +extern unsigned __int64 ibreakpoints[10]; +extern unsigned __int64 dbreakpoints[10]; +extern bool ib_active[10]; +extern bool db_active[10]; + +namespace emuThor { + + using namespace System; + using namespace System::ComponentModel; + using namespace System::Collections; + using namespace System::Windows::Forms; + using namespace System::Data; + using namespace System::Drawing; + using namespace System::Runtime::InteropServices; + using namespace System::Threading; + + /// + /// Summary for frmBreakpoints + /// + public ref class frmBreakpoints : public System::Windows::Forms::Form + { + public: + frmBreakpoints(Mutex^ m) + { + mut = m; + InitializeComponent(); + // + //TODO: Add the constructor code here + // + char buf[100]; + mut->WaitOne(); + checkBox1->Checked = ib_active[0]; + checkBox2->Checked = ib_active[1]; + checkBox3->Checked = ib_active[2]; + checkBox4->Checked = ib_active[3]; + checkBox6->Checked = ib_active[4]; + sprintf(buf,"%016I64X", ibreakpoints[0]); + textBox1->Text = gcnew String(buf); + sprintf(buf,"%016I64X", ibreakpoints[1]); + textBox2->Text = gcnew String(buf); + sprintf(buf,"%016I64X", ibreakpoints[2]); + textBox3->Text = gcnew String(buf); + sprintf(buf,"%016I64X", ibreakpoints[3]); + textBox4->Text = gcnew String(buf); + sprintf(buf,"%016I64X", ibreakpoints[4]); + textBox5->Text = gcnew String(buf); + mut->ReleaseMutex(); + } + + protected: + /// + /// Clean up any resources being used. + /// + ~frmBreakpoints() + { + if (components) + { + delete components; + } + } + private: System::Windows::Forms::Label^ label1; + protected: + private: System::Windows::Forms::TextBox^ textBox1; + private: System::Windows::Forms::TextBox^ textBox2; + private: System::Windows::Forms::TextBox^ textBox3; + private: System::Windows::Forms::TextBox^ textBox4; + private: System::Windows::Forms::TextBox^ textBox5; + private: System::Windows::Forms::TextBox^ textBox6; + private: System::Windows::Forms::TextBox^ textBox7; + private: System::Windows::Forms::TextBox^ textBox8; + private: System::Windows::Forms::TextBox^ textBox9; + private: System::Windows::Forms::TextBox^ textBox10; + private: System::Windows::Forms::Label^ label2; + public: Mutex^ mut; + + + + + + + + + + + + + + + + + + + + + + + + + private: System::Windows::Forms::Button^ button25; + private: System::Windows::Forms::Button^ button26; + private: System::Windows::Forms::CheckBox^ checkBox1; + 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::Label^ label3; + + private: + /// + /// Required designer variable. + /// + System::ComponentModel::Container ^components; + +#pragma region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + void InitializeComponent(void) + { + this->label1 = (gcnew System::Windows::Forms::Label()); + this->textBox1 = (gcnew System::Windows::Forms::TextBox()); + this->textBox2 = (gcnew System::Windows::Forms::TextBox()); + this->textBox3 = (gcnew System::Windows::Forms::TextBox()); + this->textBox4 = (gcnew System::Windows::Forms::TextBox()); + this->textBox5 = (gcnew System::Windows::Forms::TextBox()); + this->textBox6 = (gcnew System::Windows::Forms::TextBox()); + this->textBox7 = (gcnew System::Windows::Forms::TextBox()); + this->textBox8 = (gcnew System::Windows::Forms::TextBox()); + this->textBox9 = (gcnew System::Windows::Forms::TextBox()); + this->textBox10 = (gcnew System::Windows::Forms::TextBox()); + this->label2 = (gcnew System::Windows::Forms::Label()); + this->button25 = (gcnew System::Windows::Forms::Button()); + this->button26 = (gcnew System::Windows::Forms::Button()); + this->checkBox1 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox2 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox3 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox4 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox5 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox6 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox7 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox8 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox9 = (gcnew System::Windows::Forms::CheckBox()); + this->checkBox10 = (gcnew System::Windows::Forms::CheckBox()); + this->label3 = (gcnew System::Windows::Forms::Label()); + this->SuspendLayout(); + // + // label1 + // + this->label1->AutoSize = true; + this->label1->Location = System::Drawing::Point(54, 29); + this->label1->Name = L"label1"; + this->label1->Size = System::Drawing::Size(56, 13); + this->label1->TabIndex = 0; + this->label1->Text = L"Instruction"; + // + // textBox1 + // + this->textBox1->Location = System::Drawing::Point(57, 56); + this->textBox1->Name = L"textBox1"; + this->textBox1->Size = System::Drawing::Size(120, 20); + this->textBox1->TabIndex = 1; + // + // textBox2 + // + this->textBox2->Location = System::Drawing::Point(57, 82); + this->textBox2->Name = L"textBox2"; + this->textBox2->Size = System::Drawing::Size(120, 20); + this->textBox2->TabIndex = 2; + // + // textBox3 + // + this->textBox3->Location = System::Drawing::Point(57, 108); + this->textBox3->Name = L"textBox3"; + this->textBox3->Size = System::Drawing::Size(120, 20); + this->textBox3->TabIndex = 3; + // + // textBox4 + // + this->textBox4->Location = System::Drawing::Point(57, 134); + this->textBox4->Name = L"textBox4"; + this->textBox4->Size = System::Drawing::Size(120, 20); + this->textBox4->TabIndex = 4; + // + // textBox5 + // + this->textBox5->Location = System::Drawing::Point(57, 160); + this->textBox5->Name = L"textBox5"; + this->textBox5->Size = System::Drawing::Size(120, 20); + this->textBox5->TabIndex = 5; + // + // textBox6 + // + this->textBox6->Enabled = false; + this->textBox6->Location = System::Drawing::Point(244, 160); + this->textBox6->Name = L"textBox6"; + this->textBox6->Size = System::Drawing::Size(125, 20); + this->textBox6->TabIndex = 11; + // + // textBox7 + // + this->textBox7->Enabled = false; + this->textBox7->Location = System::Drawing::Point(244, 134); + this->textBox7->Name = L"textBox7"; + this->textBox7->Size = System::Drawing::Size(125, 20); + this->textBox7->TabIndex = 10; + // + // textBox8 + // + this->textBox8->Enabled = false; + this->textBox8->Location = System::Drawing::Point(244, 108); + this->textBox8->Name = L"textBox8"; + this->textBox8->Size = System::Drawing::Size(125, 20); + this->textBox8->TabIndex = 9; + // + // textBox9 + // + this->textBox9->Enabled = false; + this->textBox9->Location = System::Drawing::Point(244, 82); + this->textBox9->Name = L"textBox9"; + this->textBox9->Size = System::Drawing::Size(125, 20); + this->textBox9->TabIndex = 8; + // + // textBox10 + // + this->textBox10->Enabled = false; + this->textBox10->Location = System::Drawing::Point(244, 56); + this->textBox10->Name = L"textBox10"; + this->textBox10->Size = System::Drawing::Size(125, 20); + this->textBox10->TabIndex = 7; + // + // label2 + // + this->label2->AutoSize = true; + this->label2->Enabled = false; + this->label2->Location = System::Drawing::Point(241, 29); + this->label2->Name = L"label2"; + this->label2->Size = System::Drawing::Size(30, 13); + this->label2->TabIndex = 6; + this->label2->Text = L"Data"; + // + // button25 + // + this->button25->DialogResult = System::Windows::Forms::DialogResult::OK; + this->button25->Location = System::Drawing::Point(294, 205); + this->button25->Name = L"button25"; + this->button25->Size = System::Drawing::Size(75, 23); + this->button25->TabIndex = 35; + this->button25->Text = L"OK"; + this->button25->UseVisualStyleBackColor = true; + this->button25->Click += gcnew System::EventHandler(this, &frmBreakpoints::button25_Click); + // + // button26 + // + this->button26->DialogResult = System::Windows::Forms::DialogResult::Cancel; + this->button26->Location = System::Drawing::Point(181, 205); + this->button26->Name = L"button26"; + this->button26->Size = System::Drawing::Size(75, 23); + this->button26->TabIndex = 36; + this->button26->Text = L"Cancel"; + this->button26->UseVisualStyleBackColor = true; + // + // checkBox1 + // + this->checkBox1->AutoSize = true; + this->checkBox1->Location = System::Drawing::Point(21, 56); + this->checkBox1->Name = L"checkBox1"; + this->checkBox1->Size = System::Drawing::Size(15, 14); + this->checkBox1->TabIndex = 37; + this->checkBox1->UseVisualStyleBackColor = true; + this->checkBox1->CheckedChanged += gcnew System::EventHandler(this, &frmBreakpoints::checkBox1_CheckedChanged); + // + // checkBox2 + // + this->checkBox2->AutoSize = true; + this->checkBox2->Location = System::Drawing::Point(21, 82); + this->checkBox2->Name = L"checkBox2"; + this->checkBox2->Size = System::Drawing::Size(15, 14); + this->checkBox2->TabIndex = 38; + this->checkBox2->UseVisualStyleBackColor = true; + // + // checkBox3 + // + this->checkBox3->AutoSize = true; + this->checkBox3->Location = System::Drawing::Point(21, 108); + this->checkBox3->Name = L"checkBox3"; + this->checkBox3->Size = System::Drawing::Size(15, 14); + this->checkBox3->TabIndex = 39; + this->checkBox3->UseVisualStyleBackColor = true; + // + // checkBox4 + // + this->checkBox4->AutoSize = true; + this->checkBox4->Location = System::Drawing::Point(21, 134); + this->checkBox4->Name = L"checkBox4"; + this->checkBox4->Size = System::Drawing::Size(15, 14); + this->checkBox4->TabIndex = 40; + this->checkBox4->UseVisualStyleBackColor = true; + // + // checkBox5 + // + this->checkBox5->AutoSize = true; + this->checkBox5->Enabled = false; + this->checkBox5->Location = System::Drawing::Point(210, 82); + this->checkBox5->Name = L"checkBox5"; + this->checkBox5->Size = System::Drawing::Size(15, 14); + this->checkBox5->TabIndex = 41; + this->checkBox5->UseVisualStyleBackColor = true; + // + // checkBox6 + // + this->checkBox6->AutoSize = true; + this->checkBox6->Location = System::Drawing::Point(21, 160); + this->checkBox6->Name = L"checkBox6"; + this->checkBox6->Size = System::Drawing::Size(15, 14); + this->checkBox6->TabIndex = 41; + this->checkBox6->UseVisualStyleBackColor = true; + // + // checkBox7 + // + this->checkBox7->AutoSize = true; + this->checkBox7->Enabled = false; + this->checkBox7->Location = System::Drawing::Point(210, 56); + this->checkBox7->Name = L"checkBox7"; + this->checkBox7->Size = System::Drawing::Size(15, 14); + this->checkBox7->TabIndex = 42; + this->checkBox7->UseVisualStyleBackColor = true; + // + // checkBox8 + // + this->checkBox8->AutoSize = true; + this->checkBox8->Enabled = false; + this->checkBox8->Location = System::Drawing::Point(210, 108); + this->checkBox8->Name = L"checkBox8"; + this->checkBox8->Size = System::Drawing::Size(15, 14); + this->checkBox8->TabIndex = 43; + this->checkBox8->UseVisualStyleBackColor = true; + // + // checkBox9 + // + this->checkBox9->AutoSize = true; + this->checkBox9->Enabled = false; + this->checkBox9->Location = System::Drawing::Point(210, 134); + this->checkBox9->Name = L"checkBox9"; + this->checkBox9->Size = System::Drawing::Size(15, 14); + this->checkBox9->TabIndex = 44; + this->checkBox9->UseVisualStyleBackColor = true; + // + // checkBox10 + // + this->checkBox10->AutoSize = true; + this->checkBox10->Enabled = false; + this->checkBox10->Location = System::Drawing::Point(210, 160); + this->checkBox10->Name = L"checkBox10"; + this->checkBox10->Size = System::Drawing::Size(15, 14); + this->checkBox10->TabIndex = 45; + this->checkBox10->UseVisualStyleBackColor = true; + // + // label3 + // + this->label3->AutoSize = true; + this->label3->ForeColor = System::Drawing::Color::FromArgb(static_cast(static_cast(255)), static_cast(static_cast(128)), + static_cast(static_cast(0))); + this->label3->Location = System::Drawing::Point(241, 9); + this->label3->Name = L"label3"; + this->label3->Size = System::Drawing::Size(158, 13); + this->label3->TabIndex = 46; + this->label3->Text = L"Data Breakpoints don\'t work yet"; + // + // frmBreakpoints + // + this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); + this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; + this->ClientSize = System::Drawing::Size(403, 249); + this->Controls->Add(this->label3); + this->Controls->Add(this->checkBox10); + this->Controls->Add(this->checkBox9); + this->Controls->Add(this->checkBox8); + this->Controls->Add(this->checkBox7); + this->Controls->Add(this->checkBox6); + this->Controls->Add(this->checkBox5); + this->Controls->Add(this->checkBox4); + this->Controls->Add(this->checkBox3); + this->Controls->Add(this->checkBox2); + this->Controls->Add(this->checkBox1); + this->Controls->Add(this->button26); + this->Controls->Add(this->button25); + this->Controls->Add(this->textBox6); + this->Controls->Add(this->textBox7); + this->Controls->Add(this->textBox8); + this->Controls->Add(this->textBox9); + this->Controls->Add(this->textBox10); + this->Controls->Add(this->label2); + this->Controls->Add(this->textBox5); + this->Controls->Add(this->textBox4); + this->Controls->Add(this->textBox3); + this->Controls->Add(this->textBox2); + this->Controls->Add(this->textBox1); + this->Controls->Add(this->label1); + this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle; + this->MaximizeBox = false; + this->Name = L"frmBreakpoints"; + this->Text = L"emuThor - Breakpoints"; + this->ResumeLayout(false); + this->PerformLayout(); + + } +#pragma endregion + private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) { + } +private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) { + } +private: System::Void checkBox1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) { + } +private: System::Void button25_Click(System::Object^ sender, System::EventArgs^ e) { + char *str; + char buf1[20]; + char buf2[20]; + char *ep; + + mut->WaitOne(); + ib_active[0] = checkBox1->Checked; + ib_active[1] = checkBox2->Checked; + ib_active[2] = checkBox3->Checked; + ib_active[3] = checkBox4->Checked; + ib_active[4] = checkBox6->Checked; + db_active[0] = checkBox7->Checked; + db_active[1] = checkBox5->Checked; + db_active[2] = checkBox8->Checked; + db_active[3] = checkBox9->Checked; + db_active[4] = checkBox10->Checked; + str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->textBox1->Text); + ibreakpoints[0] = _strtoui64(str, &ep, 16); + str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->textBox2->Text); + ibreakpoints[1] = _strtoui64(str, &ep, 16); + str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->textBox3->Text); + ibreakpoints[2] = _strtoui64(str, &ep, 16); + str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->textBox4->Text); + ibreakpoints[3] = _strtoui64(str, &ep, 16); + str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->textBox5->Text); + ibreakpoints[4] = _strtoui64(str, &ep, 16); + mut->ReleaseMutex(); + } +}; +} Index: source/clsSystem.h =================================================================== --- source/clsSystem.h (revision 30) +++ source/clsSystem.h (revision 32) @@ -1,12 +1,10 @@ #pragma once -#include "stdafx.h" -#include "clsKeyboard.h" +#include "clsThor.h" extern char refscreen; extern unsigned int dataBreakpoints[30]; extern int numDataBreakpoints; -extern int runstop; -extern clsKeyboard keybd; +extern bool runstop; extern volatile unsigned __int8 keybd_status; extern volatile unsigned __int8 keybd_scancode; @@ -17,6 +15,8 @@ unsigned __int64 rom[32768]; unsigned long VideoMem[4096]; bool VideoMemDirty[4096]; + unsigned long DBGVideoMem[4096]; + bool DBGVideoMemDirty[4096]; unsigned int leds; int m_z; int m_w; @@ -24,11 +24,20 @@ unsigned int radr1; unsigned int radr2; bool WriteROM; + bool quit; + clsThor cpu2; + clsPIC pic1; + clsUart uart1; + clsKeyboard keybd; clsSystem(); void Reset(); unsigned __int64 Read(unsigned int ad, int sr=0); unsigned __int64 ReadByte(unsigned int ad); + unsigned __int64 ReadChar(unsigned int ad); + unsigned __int64 ReadHalf(unsigned int ad); int Write(unsigned int ad, unsigned __int64 dat, unsigned int mask, int cr=0); int random(); + void Run(); + void Step(); };
/source/frmPCHistory.h
0,0 → 1,107
#pragma once
 
namespace emuThor {
 
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmPCHistory
/// </summary>
public ref class frmPCHistory : public System::Windows::Forms::Form
{
public:
frmPCHistory(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
//
char buf[4000];
int xx;
buf[0] = '\0';
for (xx = 0; xx < 40; xx++) {
mut->WaitOne();
sprintf(&buf[strlen(buf)], "%08I64X\r\n", system1.cpu2.pcs[xx]);
mut->ReleaseMutex();
}
textBox1->Text = gcnew String(buf);
}
frmPCHistory(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
char buf[4000];
int xx;
buf[0] = '\0';
for (xx = 0; xx < 40; xx++) {
mut->WaitOne();
sprintf(&buf[strlen(buf)], "%08I64X\r\n", system1.cpu2.pcs[xx]);
mut->ReleaseMutex();
}
textBox1->Text = gcnew String(buf);
}
 
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~frmPCHistory()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TextBox^ textBox1;
public: Mutex^ mut;
protected:
 
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->SuspendLayout();
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(12, 22);
this->textBox1->Multiline = true;
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(162, 385);
this->textBox1->TabIndex = 0;
//
// frmPCHistory
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(193, 438);
this->Controls->Add(this->textBox1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->Name = L"frmPCHistory";
this->Text = L"PCHistory";
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
};
}
/source/clsCPU.h
1,6 → 1,7
#pragma once
#include "clsSystem.h"
 
extern class clsSystem;
 
class clsCPU
{
public:
9,6 → 10,8
unsigned __int64 pcs[40];
clsSystem *system1;
public:
bool isRunning;
unsigned int sub_depth;
virtual void Reset() {};
virtual void Step() {};
};
/source/stdafx.h
5,7 → 5,12
 
// TODO: reference additional headers your program requires here
#include <string>
#include "clsDevice.h"
#include "clsCPU.h"
#include "clsPIC.h"
#include "clsKeyboard.h"
#include "clsUart.h"
#include "clsThor.h"
#include "clsSystem.h"
 
enum {
/source/About.resx
118,9 → 118,18
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="label4.Text" xml:space="preserve">
<value>Most instructions haven't been implemented yet.
<value>Most instructions have been implemented. Exceptional conditions
(divide by zero / overflow / segment limit) haven't been implemented yet.
Only the HEX file produced by the assembler is accepted.
Most of the GUI doesn't work yet.
But it works enough to run the first few lines of the boot ROM.</value>
Some of the GUI doesn't work yet.
It works well enough to see the BIOS startup menu.</value>
</data>
<data name="label5.Text" xml:space="preserve">
<value>For an example:
 
Load a hex file (boot.hex) using the file menu.
Goto the run menu and select reset to reset the system.
Then single step via the single step toolbar button.
Use the green run button to run multiple steps.</value>
</data>
</root>
/source/clsDisassem.cpp
1,6 → 1,5
#include "stdafx.h"
#include "insn.h"
#include "clsSystem.h"
#include "clsDisassem.h"
 
extern clsSystem system1;
14,7 → 13,7
sprintf(buf, "p%d", rg);
else if (rg < 32)
sprintf(buf, "c%d", rg-16);
else if (rg < 48) {
else if (rg < 64) {
switch(rg) {
case 32: sprintf(buf, "zs"); break;
case 33: sprintf(buf, "ds"); break;
32,6 → 31,11
case 45: sprintf(buf, "hs.lmt"); break;
case 46: sprintf(buf, "ss.lmt"); break;
case 47: sprintf(buf, "cs.lmt"); break;
case 50: sprintf(buf, "tick"); break;
case 51: sprintf(buf, "lc"); break;
case 52: sprintf(buf, "pregs"); break;
case 60: sprintf(buf, "bir"); break;
default: sprintf(buf, "???"); break;
}
}
return std::string(buf);
56,6 → 60,51
}
}
 
int clsDisassem::DefaultSeg(int rg)
{
switch(rg) {
case 27:
case 28:
case 29:
case 30:
case 31: return 6;
default: return 1;
}
}
 
std::string clsDisassem::SegName(int sg)
{
switch(sg) {
case 0: return "zs";
case 1: return "ds";
case 2: return "es";
case 3: return "fs";
case 4: return "gs";
case 5: return "hs";
case 6: return "ss";
case 7: return "cs";
default: return "<err>";
}
}
 
std::string clsDisassem::TLBRegName(int rg)
{
switch(rg) {
case 0: return "Wired";
case 1: return "Index";
case 2: return "Random";
case 3: return "PageSize";
case 4: return "VirtPage";
case 5: return "PhysPage";
case 6: return "ASID";
case 7: return "DMA";
case 8: return "IMA";
case 9: return "PTA";
case 10: return "PTC";
default: return "???";
}
}
 
// Compute d[Rn] address info
std::string clsDisassem::dRn(int b1, int b2, int b3, int *Ra, int *Sg, __int64 *disp)
{
72,10 → 121,81
*disp &= 0xFF;
*disp |= imm;
}
sprintf(buf, "$%I64X[r%d]", *disp, *Ra);
if (*Sg != DefaultSeg(*Ra))
sprintf(buf, "%s:$%I64X[r%d]", SegName(*Sg).c_str(), *disp, *Ra);
else
sprintf(buf, "$%I64X[r%d]", *disp, *Ra);
return std::string(buf);
}
 
// Compute d[Rn] address info
std::string clsDisassem::ndx(int b1, int b2, int b3, int *Ra, int *Rb, int *Rt, int *Sg, int *Sc)
{
char buf[100];
 
if (!Ra || !Rb || !Rt || !Sg)
return "<error>";
*Ra = b1 & 0x3f;
*Rb = (b1 >> 6) | ((b2 & 0x0f) << 2);
*Rt = ((b2 & 0xF0) >> 4) | ((b3 & 3) << 4);
*Sg = (b3 >> 5) & 7;
*Sc = (b3 >> 2) & 3;
if (*Sg != DefaultSeg(*Ra))
sprintf(buf, "%s:[r%d+r%d", SegName(*Sg).c_str(), *Ra, *Rb);
else
sprintf(buf, "[r%d+r%d", *Ra, *Rb);
if (*Sc != 1)
sprintf(&buf[strlen(buf)], "*%d]", (1 << *Sc));
else
sprintf(&buf[strlen(buf)], "]");
return std::string(buf);
}
 
std::string clsDisassem::mem(std::string mne, int ad, int *nb)
{
int b1, b2, b3;
int Ra,Rt,Sg;
__int64 disp;
std::string str;
char buf[100];
 
buf[0] = '\0';
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
b3 = ReadByte(ad);
ad++;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
str = dRn(b1,b2,b3,&Ra,&Sg,&disp);
sprintf(&buf[strlen(buf)]," %s r%d,%s", mne.c_str(), Rt, str.c_str());
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
}
 
std::string clsDisassem::memndx(std::string mne, int ad, int *nb)
{
int b1, b2, b3;
int Ra,Rb,Rt,Sg,Sc;
__int64 disp;
std::string str;
char buf[100];
 
buf[0] = '\0';
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
b3 = ReadByte(ad);
ad++;
str = ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
sprintf(&buf[strlen(buf)]," %s r%d,%s", mne.c_str(), Rt, str.c_str());
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
}
 
std::string clsDisassem::Disassem(int ad, int *nb)
{
int byt;
84,8 → 204,8
__int64 val, disp;
int rv;
int b1, b2, b3, b4;
int Ra,Rb,Rc,Rt,Sprn,Sg;
int Cr,Ct;
int Ra,Rb,Rc,Rt,Sprn,Sg,Sc,Sz;
int Cr,Ct,Tn;
int Pn;
char buf[100];
std::string str;
234,6 → 354,23
imm_prefix = false;
return std::string(buf);
}
if ((opcode & 0xF0)==0x10) {
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rb = ((b2 << 2) | (b1 >> 6)) & 0x3f;
Pn = opcode & 0x0f;
switch(b2 >> 4) {
case 0: sprintf(&buf[strlen(buf)], " CMP p%d,r%d,r%d", Pn, Ra, Rb); break;
case 1: sprintf(&buf[strlen(buf)], " FCMP.S p%d,r%d,r%d", Pn, Ra, Rb); break;
case 2: sprintf(&buf[strlen(buf)], " FCMP.D p%d,r%d,r%d", Pn, Ra, Rb); break;
}
if (nb) *nb = 4;
imm_prefix = false;
return std::string(buf);
}
if ((opcode & 0xF0)==0x20) {
b1 = system1.ReadByte(ad);
ad++;
259,7 → 396,7
disp = (b1 << 4) | (opcode & 0xF);
if (disp & 0x800)
disp |= 0xFFFFFFFFFFFFF000LL;
sprintf(&buf[strlen(buf)], " BR $%LLX", disp + cpu1.pc);
sprintf(&buf[strlen(buf)], " BR $%LLX", disp + ad);
if (nb) *nb = 3;
imm_prefix = false;
return std::string(buf);
267,6 → 404,66
 
switch(opcode) {
 
case _2ADDUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " _2ADDUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case _4ADDUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " _4ADDUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case _8ADDUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " _8ADDUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case _16ADDUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " _16ADDUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case ADDUI:
b1 = system1.ReadByte(ad);
ad++;
277,7 → 474,7
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " ADDUI r%d,r%d,#$%08LLX", Rt, Ra, val);
sprintf(&buf[strlen(buf)], " ADDUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
290,11 → 487,92
Ra = b1 & 0x3f;
Rt = Ra;
val = (b2 << 2) | (b1 >> 6);
sprintf(&buf[strlen(buf)], " ADDUI r%d,r%d,#$%08LLX", Rt, Ra, val);
sprintf(&buf[strlen(buf)], " ADDUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 4;
imm_prefix = false;
return std::string(buf);
 
case ANDI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " ANDI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case BITI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Pn = ((b2 & 0x3) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " BITI p%d,r%d,#$%I64X", Pn, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case CLI:
sprintf(&buf[strlen(buf)], " CLI");
if (nb) *nb = 2;
imm_prefix = false;
return std::string(buf);
 
case DIVI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " DIVI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case DIVUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " DIVUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case EORI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " EORI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case JSR:
b1 = system1.ReadByte(ad);
ad++;
315,9 → 593,38
}
if (nb) *nb = 6;
imm_prefix = false;
sprintf(&buf[strlen(buf)], " JSR c%d,$%LLX[c%d]", Ct, disp, Cr);
sprintf(&buf[strlen(buf)], " JSR c%d,$%I64X[c%d]", Ct, disp, Cr);
if (Cr==15)
sprintf(&buf[strlen(buf)], " ($%I64X)", ad-6 + disp);
return std::string(buf);
 
case JSRI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Ct = (b1 >> 6) | (b2 << 2) & 0xc0;
Sz = (b2 >> 2) & 3;
Sg = b3 >> 5;
disp = ((b3 & 0x1f) << 4) | (b2 >> 4);
if (disp & 0x800LL)
disp |= 0xFFFFFFFFFFFFFE00LL;
if (imm_prefix) {
disp &= 0xFFLL;
disp = imm | disp;
}
if (nb) *nb = 5;
imm_prefix = false;
switch(Sz) {
case 1: sprintf(&buf[strlen(buf)], " JCI c%d,%s:$%I64X[r%d]", Ct, SegName(Sg).c_str(), disp, Ra); break;
case 2: sprintf(&buf[strlen(buf)], " JHI c%d,%s:$%I64X[r%d]", Ct, SegName(Sg).c_str(), disp, Ra); break;
case 3: sprintf(&buf[strlen(buf)], " JWI c%d,%s:$%I64X[r%d]", Ct, SegName(Sg).c_str(), disp, Ra); break;
}
return std::string(buf);
 
case JSRS:
b1 = system1.ReadByte(ad);
ad++;
338,11 → 645,21
imm_prefix = false;
sprintf(&buf[strlen(buf)], " JSR c%d,$%LLX", Ct, disp);
if (Cr==15)
sprintf(&buf[strlen(buf)], "[c%d] ($%LLX)", Cr, cpu1.pc + disp);
sprintf(&buf[strlen(buf)], "[c%d] ($%LLX)", Cr, ad-5 + disp);
else
sprintf(&buf[strlen(buf)], "[c%d]", Cr);
return std::string(buf);
 
case JSRR:
b1 = system1.ReadByte(ad);
ad++;
Cr = b1 >> 4;
Ct = b1 & 0xF;
if (nb) *nb = 3;
imm_prefix = false;
sprintf(&buf[strlen(buf)], " JSR c%d,[c%d]", Ct, Cr);
return std::string(buf);
 
case LDI:
b1 = system1.ReadByte(ad);
ad++;
379,19 → 696,25
imm_prefix = false;
return std::string(buf);
 
case LH:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
b3 = ReadByte(ad);
ad++;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
str = dRn(b1,b2,b3,&Ra,&Sg,&disp);
sprintf(&buf[strlen(buf)]," LH r%d,%s", Rt, str.c_str());
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
case LB: return mem("LB", ad, nb);
case LBX: return memndx("LBX", ad, nb);
case LBUX: return memndx("LBUX", ad, nb);
case LVB: return mem("LVB", ad, nb);
case LBU: return mem("LBU", ad, nb);
case LC: return mem("LC", ad, nb);
case LCX: return memndx("LCX", ad, nb);
case LCUX: return memndx("LCUX", ad, nb);
case LVC: return mem("LVC", ad, nb);
case LCU: return mem("LCU", ad, nb);
case LH: return mem("LH", ad, nb);
case LHX: return memndx("LHX", ad, nb);
case LHUX: return memndx("LHUX", ad, nb);
case LVH: return mem("LVH", ad, nb);
case LHU: return mem("LHU", ad, nb);
case LW: return mem("LW", ad, nb);
case LWX: return memndx("LWX", ad, nb);
case LVW: return mem("LVW", ad, nb);
case LVWAR: return mem("LVWAR", ad, nb);
 
case LLA:
b1 = ReadByte(ad);
419,9 → 742,12
Rt = ((b3 & 3) << 4) | (b2 >> 4);
func = b3 >> 2;
switch(func) {
case OR:
sprintf(&buf[strlen(buf)], " OR r%d,r%d,r%d", Rt, Ra, Rb);
break;
case AND: sprintf(&buf[strlen(buf)], " AND r%d,r%d,r%d", Rt, Ra, Rb); break;
case OR: sprintf(&buf[strlen(buf)], " OR r%d,r%d,r%d", Rt, Ra, Rb); break;
case EOR: sprintf(&buf[strlen(buf)], " EOR r%d,r%d,r%d", Rt, Ra, Rb); break;
case NAND: sprintf(&buf[strlen(buf)], " NAND r%d,r%d,r%d", Rt, Ra, Rb); break;
case NOR: sprintf(&buf[strlen(buf)], " NOR r%d,r%d,r%d", Rt, Ra, Rb); break;
case ENOR: sprintf(&buf[strlen(buf)], " ENOR r%d,r%d,r%d", Rt, Ra, Rb); break;
}
if (nb) *nb = 5;
imm_prefix = false;
437,6 → 763,32
imm_prefix = false;
return std::string(buf);
 
case LWS:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
b3 = ReadByte(ad);
ad++;
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
str = dRn(b1,b2,b3,&Ra,&Sg,&disp);
sprintf(&buf[strlen(buf)]," LWS %s,%s", SprName(Rb).c_str(), str.c_str());
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case MEMSB:
sprintf(&buf[strlen(buf)], " MEMSB");
if (nb) *nb = 2;
imm_prefix = false;
return std::string(buf);
 
case MEMDB:
sprintf(&buf[strlen(buf)], " MEMDB");
if (nb) *nb = 2;
imm_prefix = false;
return std::string(buf);
 
case MFSPR:
b1 = system1.ReadByte(ad);
ad++;
449,7 → 801,37
imm_prefix = false;
return std::string(buf);
 
case MOV:
case MODI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " MODI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case MODUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " MODUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case GRPA7:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
456,7 → 838,15
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (b1 >> 6);
sprintf(&buf[strlen(buf)]," MOV r%d,r%d", Rt, Ra);
switch(b2>>4) {
case MOV: sprintf(&buf[strlen(buf)]," MOV r%d,r%d", Rt, Ra); break;
case SXB: sprintf(&buf[strlen(buf)]," SXB r%d,r%d", Rt, Ra); break;
case SXC: sprintf(&buf[strlen(buf)]," SXC r%d,r%d", Rt, Ra); break;
case SXH: sprintf(&buf[strlen(buf)]," SXH r%d,r%d", Rt, Ra); break;
case ZXB: sprintf(&buf[strlen(buf)]," ZXB r%d,r%d", Rt, Ra); break;
case ZXC: sprintf(&buf[strlen(buf)]," ZXC r%d,r%d", Rt, Ra); break;
case ZXH: sprintf(&buf[strlen(buf)]," ZXH r%d,r%d", Rt, Ra); break;
}
if (nb) *nb = 4;
imm_prefix = false;
return std::string(buf);
473,6 → 863,51
imm_prefix = false;
return std::string(buf);
 
case MULI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " MULI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case MULUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " MULUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case ORI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " ORI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case RR:
b1 = system1.ReadByte(ad);
ad++;
485,6 → 920,24
Rt = ((b3 & 3) << 4) | (b2 >> 4);
func = b3 >> 2;
switch(func) {
case ADD:
sprintf(&buf[strlen(buf)], " ADD r%d,r%d,r%d", Rt, Ra, Rb);
break;
case ADDU:
sprintf(&buf[strlen(buf)], " ADDU r%d,r%d,r%d", Rt, Ra, Rb);
break;
case DIV:
sprintf(&buf[strlen(buf)], " DIV r%d,r%d,r%d", Rt, Ra, Rb);
break;
case DIVU:
sprintf(&buf[strlen(buf)], " DIVU r%d,r%d,r%d", Rt, Ra, Rb);
break;
case MUL:
sprintf(&buf[strlen(buf)], " MUL r%d,r%d,r%d", Rt, Ra, Rb);
break;
case MULU:
sprintf(&buf[strlen(buf)], " MULU r%d,r%d,r%d", Rt, Ra, Rb);
break;
case _2ADDU:
sprintf(&buf[strlen(buf)], " _2ADDU r%d,r%d,r%d", Rt, Ra, Rb);
break;
497,11 → 950,41
case _16ADDU:
sprintf(&buf[strlen(buf)], " _16ADDU r%d,r%d,r%d", Rt, Ra, Rb);
break;
case MOD:
sprintf(&buf[strlen(buf)], " MOD r%d,r%d,r%d", Rt, Ra, Rb);
break;
case MODU:
sprintf(&buf[strlen(buf)], " MODU r%d,r%d,r%d", Rt, Ra, Rb);
break;
case SUB:
sprintf(&buf[strlen(buf)], " SUB r%d,r%d,r%d", Rt, Ra, Rb);
break;
case SUBU:
sprintf(&buf[strlen(buf)], " SUBU r%d,r%d,r%d", Rt, Ra, Rb);
break;
}
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case RTD:
sprintf(&buf[strlen(buf)], " RTD");
if (nb) *nb = 2;
imm_prefix = false;
return std::string(buf);
 
case RTE:
sprintf(&buf[strlen(buf)], " RTE");
if (nb) *nb = 2;
imm_prefix = false;
return std::string(buf);
 
case RTI:
sprintf(&buf[strlen(buf)], " RTI");
if (nb) *nb = 2;
imm_prefix = false;
return std::string(buf);
 
case RTS:
b1 = system1.ReadByte(ad);
ad++;
531,6 → 1014,11
imm_prefix = false;
return std::string(buf);
 
case SBX: return memndx("SBX", ad, nb);
case SCX: return memndx("SCX", ad, nb);
case SHX: return memndx("SHX", ad, nb);
case SWX: return memndx("SWX", ad, nb);
 
case SC:
b1 = ReadByte(ad);
ad++;
574,9 → 1062,39
case SHL:
sprintf(&buf[strlen(buf)], " SHL r%d,r%d,r%d", Rt, Ra, Rb);
break;
case SHR:
sprintf(&buf[strlen(buf)], " SHR r%d,r%d,r%d", Rt, Ra, Rb);
break;
case SHLU:
sprintf(&buf[strlen(buf)], " SHLU r%d,r%d,r%d", Rt, Ra, Rb);
break;
case SHRU:
sprintf(&buf[strlen(buf)], " SHRU r%d,r%d,r%d", Rt, Ra, Rb);
break;
case SHLI:
sprintf(&buf[strlen(buf)], " SHLI r%d,r%d,#$%X", Rt, Ra, Rb);
break;
case SHRI:
sprintf(&buf[strlen(buf)], " SHRI r%d,r%d,#$%X", Rt, Ra, Rb);
break;
case SHLUI:
sprintf(&buf[strlen(buf)], " SHLUI r%d,r%d,#$%X", Rt, Ra, Rb);
break;
case SHRUI:
sprintf(&buf[strlen(buf)], " SHRUI r%d,r%d,#$%X", Rt, Ra, Rb);
break;
case ROL:
sprintf(&buf[strlen(buf)], " ROL r%d,r%d,r%d", Rt, Ra, Rb);
break;
case ROR:
sprintf(&buf[strlen(buf)], " ROR r%d,r%d,r%d", Rt, Ra, Rb);
break;
case ROLI:
sprintf(&buf[strlen(buf)], " ROLI r%d,r%d,#$%X", Rt, Ra, Rb);
break;
case RORI:
sprintf(&buf[strlen(buf)], " RORI r%d,r%d,#$%X", Rt, Ra, Rb);
break;
}
if (nb) *nb = 5;
imm_prefix = false;
592,6 → 1110,45
imm_prefix = false;
return std::string(buf);
 
case STSET:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
b3 = ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
Sg = b3 >> 5;
switch((b3 >> 2) & 7) {
case 0: sprintf(&buf[strlen(buf)]," STSET.BI r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
case 1: sprintf(&buf[strlen(buf)]," STSET.CI r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
case 2: sprintf(&buf[strlen(buf)]," STSET.HI r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
case 3: sprintf(&buf[strlen(buf)]," STSET.WI r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
case 4: sprintf(&buf[strlen(buf)]," STSET.BD r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
case 5: sprintf(&buf[strlen(buf)]," STSET.CD r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
case 6: sprintf(&buf[strlen(buf)]," STSET.HD r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
case 7: sprintf(&buf[strlen(buf)]," STSET.WD r%d,%s:[r%d]", Rb, SegName(Sg).c_str(), Ra);
}
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case SUBUI:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Rt = ((b2 & 0xf) << 2) | (b1 >> 6);
val = (b3 << 4) | (b2 >> 4);
sprintf(&buf[strlen(buf)], " SUBUI r%d,r%d,#$%I64X", Rt, Ra, val);
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case SW:
b1 = ReadByte(ad);
ad++;
606,6 → 1163,99
imm_prefix = false;
return std::string(buf);
 
case SWCR:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
b3 = ReadByte(ad);
ad++;
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
str = dRn(b1,b2,b3,&Ra,&Sg,&disp);
sprintf(&buf[strlen(buf)]," SWCR r%d,%s", Rb, str.c_str());
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case SWS:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
b3 = ReadByte(ad);
ad++;
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
str = dRn(b1,b2,b3,&Ra,&Sg,&disp);
sprintf(&buf[strlen(buf)]," SWS %s,%s", SprName(Rb).c_str(), str.c_str());
if (nb) *nb = 5;
imm_prefix = false;
return std::string(buf);
 
case SYNC:
sprintf(&buf[strlen(buf)], " SYNC");
if (nb) *nb = 2;
imm_prefix = false;
return std::string(buf);
 
case SYS:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
Cr = b1 >> 4;
Ct = b1 & 0xF;
sprintf(&buf[strlen(buf)], " SYS c%d,c%d,#%X", Ct, Cr, b2);
if (nb) *nb = 4;
imm_prefix = false;
return std::string(buf);
 
case TLB:
b1 = ReadByte(ad);
ad++;
b2 = ReadByte(ad);
ad++;
Tn = b1 >> 4;
Rt = b2 & 0x3f;
Ra = Rt;
str = "TLB";
switch(b1 & 0xF) {
case 0:
str += "NOP";
sprintf(&buf[strlen(buf)]," %s", str.c_str());
break;
case 1:
str += "PB";
sprintf(&buf[strlen(buf)]," %s r%d", str.c_str(), Ra);
break;
case 2:
str += "RD";
sprintf(&buf[strlen(buf)]," %s r%d,%s", str.c_str(), Rt, TLBRegName(Tn));
break;
case 3:
str += "WR";
sprintf(&buf[strlen(buf)]," %s %s,r%d", str.c_str(), TLBRegName(Tn), Rt);
break;
case 4:
str += "WI";
sprintf(&buf[strlen(buf)]," %s %s,r%d", str.c_str(), TLBRegName(Tn), Rt);
break;
case 5:
str += "EN";
sprintf(&buf[strlen(buf)]," %s", str.c_str());
break;
case 6:
str += "DIS";
sprintf(&buf[strlen(buf)]," %s", str.c_str());
break;
default:
str += "???";
sprintf(&buf[strlen(buf)]," %s", str.c_str());
break;
}
if (nb) *nb = 4;
imm_prefix = false;
return std::string(buf);
 
}
*nb = 1;
return std::string("");
/source/insn.h
1,30 → 1,145
// 0x0x = TST
// 0x1x = CMP
// 0x2x = CMPI
// 0x3x = BR
#define RR 0x40
#define ADD 0x00
#define SUB 0x01
#define MUL 0x02
#define DIV 0x03
#define ADDU 0x04
#define SUBU 0x05
#define MULU 0x06
#define DIVU 0x07
#define _2ADDU 0x08
#define _4ADDU 0x09
#define _8ADDU 0x0A
#define _16ADDU 0x0B
#define MOD 0x13
#define MODU 0x17
#define R1 0x41
#define CPUID 0x00
#define REDOR 0x01
#define REDAND 0x02
#define PAR 0x03
#define P1 0x42
#define PAND 0x00
#define POR 0x01
#define PEOR 0x02
#define PNAND 0x03
#define PNOR 0x04
#define PENOR 0x05
#define PANDC 0x06
#define PORC 0x07
#define BITI 0x46
#define ADDUIS 0x47
#define ADDI 0x48
#define SUBI 0x49
#define MULI 0x4A
#define DIVI 0x4B
#define ADDUI 0x4C
#define SUBUI 0x4D
#define MULUI 0x4E
#define DIVUI 0x4F
#define LOGIC 0x50
#define AND 0x00
#define OR 0x01
#define EOR 0x02
#define NAND 0x03
#define NOR 0x04
#define ENOR 0x05
#define ANDC 0x06
#define ORC 0x07
#define ANDI 0x53
#define ORI 0x54
#define EORI 0x55
#define SHIFT 0x58
#define MODI 0x5B
#define MODUI 0x5F
#define SHL 0x00
#define SHR 0x01
#define SHLU 0x02
#define SHRU 0x03
#define ROL 0x04
#define ROR 0x05
#define SHLI 0x10
#define SHRI 0x11
#define SHLUI 0x12
#define SHRUI 0x13
#define ROLI 0x14
#define RORI 0x15
#define LLA 0x6A
#define _2ADDUI 0x6B
#define _4ADDUI 0x6C
#define _8ADDUI 0x6D
#define _16ADDUI 0x6E
#define LDI 0x6F
#define LB 0x80
#define LBU 0x81
#define LC 0x82
#define LCU 0x83
#define LH 0x84
#define LHU 0x85
#define LW 0x86
#define LVWAR 0x8B
#define SWCR 0x8C
#define JSRI 0x8D
#define LWS 0x8E
#define SB 0x90
#define SC 0x91
#define SH 0x92
#define SW 0x93
#define STSET 0x98
#define LDIS 0x9D
#define SWS 0x9E
#define JSRR 0xA0
#define JSRS 0xA1
#define JSR 0xA2
#define RTS 0xA3
#define LOOP 0xA4
#define MOV 0xA7
#define SYS 0xA5
#define INT 0xA6
#define GRPA7 0xA7
#define MOV 0x00
#define NEG 0x01
#define NOT 0x02
#define ABS 0x03
#define SGN 0x04
#define CNTLZ 0x05
#define CNTLO 0x06
#define CNTPOP 0x07
#define SXB 0x08
#define SXC 0x09
#define SXH 0x0A
#define COM 0x0B
#define ZXB 0x0C
#define ZXC 0x0D
#define ZXH 0x0E
#define MFSPR 0xA8
#define MTSPR 0xA9
#define LVB 0xAC
#define LVC 0xAD
#define LVH 0xAE
#define LVW 0xAF
#define LBX 0xB0
#define LBUX 0xB1
#define LCX 0xB2
#define LCUX 0xB3
#define LHX 0xB4
#define LHUX 0xB5
#define LWX 0xB6
#define SBX 0xC0
#define SCX 0xC1
#define SHX 0xC2
#define SWX 0xC3
#define TLB 0xF0
#define RTSQ 0xF2
#define RTE 0xF3
#define RTI 0xF4
#define STP 0xF6
#define SYNC 0xF7
#define MEMSB 0xF8
#define MEMDB 0xF9
#define CLI 0xFA
#define SEI 0xFB
#define RTD 0xFC
/source/frmStack.h
0,0 → 1,139
#pragma once
#include "stdafx.h"
 
extern clsSystem system1;
 
namespace emuThor {
 
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
 
/// <summary>
/// Summary for frmStack
/// </summary>
public ref class frmStack : public System::Windows::Forms::Form
{
public:
Mutex^ mut;
frmStack(Mutex^ m)
{
mut = m;
InitializeComponent();
//
//TODO: Add the constructor code here
//
int xx;
char buf[4000];
buf[0] = '\0';
mut->WaitOne();
for (xx = -128; xx < 128; xx+=8) {
sprintf(&buf[strlen(buf)], "%c %08I64X: %016I64X\r\n", xx==0 ? '>' : ' ',
system1.cpu2.GetGP(27)+xx, system1.Read(system1.cpu2.GetGP(27)+xx));
}
textBox1->Text = gcnew String(buf);
buf[0] = '\0';
for (xx = -128; xx < 128; xx+=8) {
sprintf(&buf[strlen(buf)], "%c %08I64X: %016I64X\r\n", xx==0 ? '>' : ' ',
system1.cpu2.GetGP(26)+xx, system1.Read(system1.cpu2.GetGP(26)+xx));
}
mut->ReleaseMutex();
textBox2->Text = gcnew String(buf);
}
 
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~frmStack()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label2;
protected:
 
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->SuspendLayout();
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(12, 32);
this->textBox1->Multiline = true;
this->textBox1->Name = L"textBox1";
this->textBox1->ScrollBars = System::Windows::Forms::ScrollBars::Vertical;
this->textBox1->Size = System::Drawing::Size(228, 241);
this->textBox1->TabIndex = 0;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(254, 32);
this->textBox2->Multiline = true;
this->textBox2->Name = L"textBox2";
this->textBox2->ScrollBars = System::Windows::Forms::ScrollBars::Vertical;
this->textBox2->Size = System::Drawing::Size(228, 241);
this->textBox2->TabIndex = 1;
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(12, 16);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(61, 13);
this->label1->TabIndex = 2;
this->label1->Text = L"Stack View";
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(251, 16);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(93, 13);
this->label2->TabIndex = 3;
this->label2->Text = L"Base Pointer View";
//
// frmStack
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(506, 306);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"frmStack";
this->Text = L"emuThor - Stack View";
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
};
}
/source/clsUart.h
0,0 → 1,28
#pragma once
 
#include "clsDevice.h"
 
class clsUart : public clsDevice
{
public:
__int8 tb;
__int8 rb;
__int8 is;
__int8 ier;
__int8 ls;
__int8 ms;
__int8 mc;
__int8 ctrl;
__int8 cm0,cm1,cm2,cm3;
__int8 ff;
__int8 fc;
bool irq;
public:
void Reset();
bool IsSelected(unsigned int ad);
unsigned int Read(unsigned int ad);
int Write(unsigned int ad, unsigned int dat, unsigned int mask=1);
void RxPort(unsigned int dat);
int TxPort();
void Step(void) {};
};
/source/frmBreakpoints.resx
0,0 → 1,120
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
/source/frmPCHistory.cpp
0,0 → 1,3
#include "StdAfx.h"
#include "frmPCHistory.h"
 
/source/emuThor.vcxproj
93,11 → 93,18
<ClCompile Include="clsPIC.cpp" />
<ClCompile Include="clsSystem.cpp" />
<ClCompile Include="clsThor.cpp" />
<ClCompile Include="clsUart.cpp" />
<ClCompile Include="emuThor.cpp" />
<ClCompile Include="fmrFreeRun.cpp" />
<ClCompile Include="frmBreakpoints.cpp" />
<ClCompile Include="frmInterrupts.cpp" />
<ClCompile Include="frmKeyboard.cpp" />
<ClCompile Include="frmMemory.cpp" />
<ClCompile Include="frmPCHistory.cpp" />
<ClCompile Include="frmRegisters.cpp" />
<ClCompile Include="frmScreen.cpp" />
<ClCompile Include="frmStack.cpp" />
<ClCompile Include="frmUart.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
114,15 → 121,34
<ClInclude Include="clsPIC.h" />
<ClInclude Include="clsSystem.h" />
<ClInclude Include="clsThor.h" />
<ClInclude Include="clsUart.h" />
<ClInclude Include="fmrFreeRun.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmBreakpoints.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmInterrupts.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmMain.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmKeyboard.h" />
<ClInclude Include="frmMemory.h" />
<ClInclude Include="frmPCHistory.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmRegisters.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmScreen.h" />
<ClInclude Include="frmStack.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmUart.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="insn.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="stdafx.h" />
134,6 → 160,15
<EmbeddedResource Include="About.resx">
<DependentUpon>About.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="fmrFreeRun.resx">
<DependentUpon>fmrFreeRun.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmBreakpoints.resx">
<DependentUpon>frmBreakpoints.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmInterrupts.resx">
<DependentUpon>frmInterrupts.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmMain.resX">
<DependentUpon>frmMain.h</DependentUpon>
<SubType>Designer</SubType>
140,10 → 175,19
</EmbeddedResource>
<EmbeddedResource Include="frmKeyboard.resx" />
<EmbeddedResource Include="frmMemory.resx" />
<EmbeddedResource Include="frmPCHistory.resx">
<DependentUpon>frmPCHistory.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmRegisters.resx">
<DependentUpon>frmRegisters.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmScreen.resx" />
<EmbeddedResource Include="frmStack.resx">
<DependentUpon>frmStack.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmUart.resx">
<DependentUpon>frmUart.h</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
/source/emuThor.vcxproj.filters
60,6 → 60,27
<ClCompile Include="About.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmBreakpoints.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmUart.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="clsUart.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="fmrFreeRun.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmStack.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmInterrupts.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmPCHistory.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
110,6 → 131,27
<ClInclude Include="About.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmBreakpoints.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmUart.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="clsUart.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="fmrFreeRun.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmStack.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmInterrupts.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmPCHistory.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="app.rc">
117,9 → 159,6
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmKeyboard.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmScreen.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
132,5 → 171,23
<EmbeddedResource Include="frmMemory.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="About.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmBreakpoints.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmKeyboard.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmUart.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="fmrFreeRun.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmStack.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
</ItemGroup>
</Project>
/source/clsKeyboard.h
1,5 → 1,7
#pragma once
class clsKeyboard
#include "clsDevice.h"
 
class clsKeyboard : public clsDevice
{
unsigned __int8 buffer[32];
int head;
/source/frmStack.resx
0,0 → 1,120
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
/source/clsUart.cpp
0,0 → 1,70
#include "stdafx.h"
#include "clsUart.h"
 
void clsUart::Reset()
{
ls = 0x60;
}
bool clsUart::IsSelected(unsigned int ad)
{
return (ad & 0xFFFFFFF0LL)==0xFFFDC0A00;
}
 
unsigned int clsUart::Read(unsigned int ad)
{
if (IsSelected(ad)) {
switch(ad & 0xF) {
case 0: ls &= 0xFE; return rb;
case 1: return ls;
case 2: return ms;
case 3: return is;
default: return 0x00;
}
}
else
return 0;
}
 
int clsUart::Write(unsigned int ad, unsigned int dat, unsigned int mask)
{
if (IsSelected(ad)) {
switch(ad & 0xF) {
case 0: tb = dat; ls &= 0x9F; break;
case 4: ier = dat; break;
case 6: mc = dat; break;
case 7: ctrl = dat; break;
case 9: cm1 = dat; break;
case 10: cm2 = dat; break;
case 11: cm3 = dat; break;
case 12: fc = dat; break;
}
}
return 0;
}
 
int clsUart::TxPort()
{
int d;
 
if ((ls & 0x60)==0x60)
d = 0xff;
else
d = tb;
ls |= 0x60;
if (ier & 2) {
irq = true;
system1.pic1.irqUart = true;
}
return d;
}
 
void clsUart::RxPort(unsigned int dat)
{
if (ls & 1)
ls |= 2;
ls |= 1;
if (ier & 1) {
irq = true;
system1.pic1.irqUart = true;
}
}
/source/clsThor.cpp
10,8 → 10,63
tick = 0;
gp[0] = 0;
ca[0] = 0;
StatusHWI = true;
StatusDBG = false;
StatusEXL = 0;
string_pc = 0;
}
 
bool clsThor::IsKM()
{
return StatusHWI || (StatusEXL > 0) || StatusDBG;
}
 
unsigned __int64 clsThor::ReadByte(int ad) { return system1->ReadByte(ad); };
unsigned __int64 clsThor::ReadChar(int ad) { return system1->ReadChar(ad); };
unsigned __int64 clsThor::ReadHalf(int ad) { return system1->ReadHalf(ad); };
unsigned __int64 clsThor::Read(int ad) { return system1->Read(ad); };
 
 
int clsThor::GetMode()
{
if (StatusHWI)
return mode = 1;
if (StatusDBG)
return mode = 3;
if (StatusEXL)
return mode = 2;
return mode = 0;
}
 
__int64 clsThor::GetGP(int rg)
{
if (rg < 0 || rg > 63)
return 0xDEADEADDEADDEAD;
switch(rg) {
case 0: return 0; // ignore update to r0.
case 27:
rg = rg + GetMode();
// Fall through
default:
return gp[rg];
}
}
 
 
void clsThor::SetGP(int rg, __int64 val)
{
if (rg < 0 || rg > 63)
return;
switch(rg) {
case 0: ; // ignore update to r0.
case 27:
rg = rg + GetMode();
// Fall through
default:
gp[rg] = val;
}
}
 
// Compute d[Rn] address info
void clsThor::dRn(int b1, int b2, int b3, int *Ra, int *Sg, __int64 *disp)
{
26,6 → 81,124
}
}
 
// Compute [Rn+Rn*Sc] address info
void clsThor::ndx(int b1, int b2, int b3, int *Ra, int *Rb, int *Rt, int *Sg, int *Sc)
{
if (Ra) *Ra = b1 & 0x3f;
if (Rb) *Rb = (b1 >> 6) | ((b2 & 0xf) << 2);
if (Rt) *Rt = ((b2 & 0xF0) >> 4) | (( b3 & 3) << 4);
if (Sg) *Sg = (b3 >> 5) & 7;
if (Sc) *Sc = 1 << ((b3 >> 2) & 3);
}
 
int clsThor::WriteMask(int ad, int sz)
{
switch(sz) {
case 0: return 1 << (ad & 7);
case 1: return 3 << (ad & 6);
case 2: return (ad & 4) ? 0xF0 : 0x0F;
case 3: return 0xFF;
}
}
 
__int64 clsThor::GetSpr(int Sprn)
{
__int64 tmp;
int nn;
 
if (Sprn < 16) {
return pr[Sprn];
}
else if (Sprn < 32) {
Sprn -= 16;
return ca[Sprn];
}
else if (Sprn < 40) {
return seg_base[Sprn-32];
}
else if (Sprn < 48) {
return seg_limit[Sprn-32];
}
else {
switch(Sprn) {
case 50: return tick; break;
case 51: return lc; break;
case 52:
tmp = 0;
for (nn = 0; nn < 16; nn++) {
tmp |= pr[nn] << (nn * 4);
}
return tmp;
case 60: return bir; break;
case 61:
switch(bir) {
case 0: return dbad0; break;
case 1: return dbad1; break;
case 2: return dbad2; break;
case 3: return dbad3; break;
case 4: return dbctrl; break;
case 5: return dbstat; break;
}
}
}
return 0xDEADDEADDEADDEAD;
}
 
void clsThor::SetSpr(int Sprn, __int64 val)
{
int nn;
 
if (Sprn < 16)
pr[Sprn] = val;
else if (Sprn < 32) {
Sprn -= 16;
ca[Sprn] = val;
ca[0] = 0;
ca[15] = pc;
}
else if (Sprn < 40) {
seg_base[Sprn-32] = val & 0xFFFFFFFFFFFFF000LL;
}
else if (Sprn < 48) {
seg_limit[Sprn-32] = val & 0xFFFFFFFFFFFFF000LL;
}
else {
switch(Sprn) {
case 51: lc = val; break;
case 52:
for (nn = 0; nn < 16; nn++) {
pr[nn] = (val >> (nn * 4)) & 0xF;
}
break;
case 60: bir = val & 0xFFLL; break;
case 61:
switch(bir) {
case 0: dbad0 = val; break;
case 1: dbad1 = val; break;
case 2: dbad2 = val; break;
case 3: dbad3 = val; break;
case 4: dbctrl = val; break;
case 5: dbstat = val; break;
}
}
}
}
 
int clsThor::GetBit(__int64 a, int b)
{
return (a >> b) & 1;
}
 
void clsThor::SetBit(__int64 *a, int b)
{
*a |= (1 << b);
}
 
void clsThor::ClearBit(__int64 *a, int b)
{
*a &= ~(1 << b);
}
 
void clsThor::Step()
{
bool ex = true; // execute instruction
32,11 → 205,26
unsigned int opcode, func;
__int64 disp;
int Ra,Rb,Rc,Rt,Pn,Cr,Ct;
int Sprn,Sg;
int Sprn,Sg,Sc;
int b1, b2, b3, b4;
int nn;
__int64 dat;
unsigned __int64 overflow;
unsigned __int64 carry;
unsigned __int64 a,b,res;
 
for (nn = 39; nn >= 0; nn--)
pcs[nn] = pcs[nn-1];
pcs[0] = pc;
if (IRQActive()) {
StatusHWI = true;
if (string_pc)
ca[14] = string_pc;
else
ca[14] = pc;
pc = ca[12] + (vecno << 4);
ca[15] = pc;
}
gp[0] = 0;
ca[0] = 0;
if (imcd > 0) {
47,11 → 235,9
tick = tick + 1;
pred = ReadByte(pc);
pc++;
for (nn = 39; nn >= 0; nn--)
pcs[nn] = pcs[nn-1];
pcs[0] = pc;
switch (pred) {
case 0x00: // BRK instruction
isRunning = false;
return;
case 0x10: // NOP
return;
174,15 → 360,15
Ra = b1 & 0x3f;
Pn = opcode & 0x0f;
pr[Pn] = 0;
if (gp[Ra]==0)
if (GetGP(Ra)==0)
pr[Pn] |= 1;
if ((signed)gp[Ra] < (signed)0)
if ((signed)GetGP(Ra) < (signed)0)
pr[Pn] |= 2;
}
imm_prefix = false;
return;
}
else if ((opcode & 0xF0)==0x10) { // CMP
if ((opcode & 0xF0)==0x10) { // CMP
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
192,17 → 378,17
Rb = ((b1 & 0xC0) >> 6) | ((b2 & 0x0f)<<2);
Pn = opcode & 0x0f;
pr[Pn] = 0;
if (gp[Ra]==gp[Rb])
if (GetGP(Ra)==GetGP(Rb))
pr[Pn] |= 1;
if ((signed)gp[Ra] < (signed)gp[Rb])
if (GetGP(Ra) < GetGP(Rb))
pr[Pn] |= 2;
if (gp[Ra] < gp[Rb])
if ((unsigned __int64)GetGP(Ra) < (unsigned __int64)GetGP(Rb))
pr[Pn] |= 4;
}
imm_prefix = false;
return;
}
else if ((opcode & 0xF0)==0x20) { // CMPI
if ((opcode & 0xF0)==0x20) { // CMPI
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
219,17 → 405,17
}
Pn = opcode & 0x0f;
pr[Pn] = 0;
if (gp[Ra]==imm)
if (GetGP(Ra)==imm)
pr[Pn] |= 1;
if ((signed)gp[Ra] < (signed)imm)
if (GetGP(Ra) < (signed)imm)
pr[Pn] |= 2;
if (gp[Ra] < imm)
if ((unsigned __int64)GetGP(Ra) < (unsigned __int64)imm)
pr[Pn] |= 4;
}
imm_prefix = false;
return;
}
else if ((opcode & 0xF0)==0x30) { // BR
if ((opcode & 0xF0)==0x30) { // BR
disp = ReadByte(pc);
pc++;
if (ex) {
241,537 → 427,1817
imm_prefix = false;
return;
}
else {
switch(opcode) {
case ADDUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
gp[Rt] = gp[Ra] + imm;
gp[0] = 0;
switch(opcode) {
 
case _2ADDUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = false;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,(GetGP(Ra)<<1) + imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case ADDUIS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = Ra;
if (imm_prefix) {
imm |= ((b2 << 2)&0xFC) | ((b1 >> 6) & 0x3);
}
else {
imm = ((b2 << 2)&0x3FC) | ((b1 >> 6) & 0x3);
if (imm & 0x200)
imm |= 0xFFFFFFFFFFFFFE00LL;
}
gp[Rt] = gp[Ra] + imm;
gp[0] = 0;
case _4ADDUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = false;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,(GetGP(Ra)<<2) + imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case JSR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
b4 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0x0F;
Cr = (b1 & 0xF0) >> 4;
if (Ct != 0)
ca[Ct] = pc;
disp = (b3 << 16) | (b2 << 8) | b1;
if (disp & 0x800000)
disp |= 0xFFFFFFFFFF000000LL;
if (imm_prefix) {
disp &= 0xFF;
disp |= imm;
}
ca[15] = pc;
case _8ADDUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,(GetGP(Ra)<<3) + imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case _16ADDUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,(GetGP(Ra)<<4) + imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
/* ToDo: add overflow exception */
case ADDI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
a = GetGP(Ra);
b = imm;
res = a + b;
// overflow =
SetGP(Rt,res);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case ADDUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) + imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case ADDUIS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = Ra;
if (imm_prefix) {
imm |= ((b2 << 2)&0xFC) | ((b1 >> 6) & 0x3);
}
else {
imm = ((b2 << 2)&0x3FC) | ((b1 >> 6) & 0x3);
if (imm & 0x200)
imm |= 0xFFFFFFFFFFFFFE00LL;
}
SetGP(Rt,GetGP(Ra) + imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case ANDI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) & imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case BITI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
unsigned __int64 res;
Ra = b1 & 0x3f;
Pn = ((b2 & 0x3) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
res = GetGP(Ra) & imm;
pr[Pn] = 0;
if (res == 0)
pr[Pn] |= 1;
if (res & 0x8000000000000000LL)
pr[Pn] |= 2;
if (res & 1)
pr[Pn] |= 4;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case CLI:
if (ex) {
imcd = 3;
}
ca[15] = pc;
imm_prefix = false;
break;
 
case DIVI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) / imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case DIVUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,(unsigned __int64)GetGP(Ra) / (unsigned __int64)imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case EORI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) ^ imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case INT:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0xF;
Cr = b1 >> 4;
// Normal INT stores the address of the interrupted instruction.
// However if the target register indicates a system call or
// debug interrupt, then the address of the following
// instruction is stored.
if (!(Ct==11 || Ct==13))
pc -= 4;
ca[Ct] = pc;
ca[0] = 0;
pc = (b2 << 4) + ca[Cr];
if (Ct==11)
StatusDBG = true;
else if (Ct==13) {
if (StatusEXL < 255)
StatusEXL++;
}
else
StatusHWI = true;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case JSR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
b4 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0x0F;
Cr = (b1 & 0xF0) >> 4;
if (Ct != 0)
ca[Ct] = pc;
disp = (b4 << 16) | (b3 << 8) | b2;
if (disp & 0x800000)
disp |= 0xFFFFFFFFFF000000LL;
if (imm_prefix) {
disp &= 0xFF;
disp |= imm;
}
if (Cr==15)
pc = disp + pc - 6;
else
pc = disp + ca[Cr];
}
ca[15] = pc;
imm_prefix = false;
return;
 
case JSRI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
int Sz;
unsigned __int64 dat;
Ra = b1 & 0x3f;
Ct = (b1 >> 6) | ((b2 << 2) & 0xf);
Sz = (b2 & 0xC) >> 2;
Sg = (b3 >> 5);
if (Ct != 0)
ca[Ct] = pc;
disp = ((b3 & 0x1f) << 4) | (b2 >> 4);
if (disp & 0x100)
disp |= 0xFFFFFFFFFFFFFE00LL;
if (imm_prefix) {
disp &= 0xFF;
disp |= imm;
}
imm_prefix = false;
return;
switch(Sz) {
case 1:
dat = ReadChar(disp + seg_base[Sg] + GetGP(Ra)*2);
dat &= 0xFFFFLL;
pc = pc & 0xFFFF0000;
pc |= dat;
break;
case 2:
dat = ReadHalf(disp + seg_base[Sg] + GetGP(Ra)*4);
dat &= 0xFFFFFFFFLL;
pc = dat;
break;
case 3:
dat = Read(disp + seg_base[Sg] + GetGP(Ra)*8);
pc = dat;
break;
}
}
ca[15] = pc;
imm_prefix = false;
return;
 
case JSRS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0x0F;
Cr = (b1 & 0xF0) >> 4;
case JSRS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0x0F;
Cr = (b1 & 0xF0) >> 4;
ca[Ct] = pc;
ca[0] = 0;
disp = (b3 << 8) | b2;
if (disp & 0x8000)
disp |= 0xFFFFFFFFFFFF0000LL;
if (imm_prefix) {
disp &= 0xFFLL;
disp |= imm;
}
if (Cr==15)
pc = disp + pc - 5;
else
pc = disp + ca[Cr];
if (Ct != 0)
sub_depth++;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case JSRR:
b1 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0x0F;
Cr = (b1 & 0xF0) >> 4;
if (Ct != 0)
ca[Ct] = pc;
ca[0] = 0;
disp = (b3 << 8) | b2;
if (disp & 0x8000)
disp |= 0xFFFFFFFFFFFF0000LL;
if (imm_prefix) {
disp &= 0xFFLL;
disp |= imm;
}
ca[15] = pc;
pc = disp + ca[Cr] - 5;
disp = 0;
if (imm_prefix) {
disp &= 0xFF;
disp |= imm;
}
imm_prefix = false;
return;
pc = disp + ca[Cr];
if (Ct != 0)
sub_depth++;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case JSRR:
b1 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0x0F;
Cr = (b1 & 0xF0) >> 4;
if (Ct != 0)
ca[Ct] = pc;
disp = 0;
if (imm_prefix) {
disp &= 0xFF;
disp |= imm;
}
case LB:
case LVB:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
if (ea & 1)
dat = (dat >> 8);
dat &= 0xFFLL;
if (dat & 0x80LL)
dat |= 0xFFFFFFFFFFFFFF00LL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LBU:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
if (ea & 1)
dat = (dat >> 8);
dat &= 0xFFLL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LBX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
if (ea & 1)
dat = (dat >> 8);
dat &= 0xFFLL;
if (dat & 0x80LL)
dat |= 0xFFFFFFFFFFFFFF00LL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LBUX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
if (ea & 1)
dat = (dat >> 8);
dat &= 0xFFLL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LC:
case LVC:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
dat &= 0xFFFF;
if (dat & 0x8000LL)
dat |= 0xFFFFFFFFFFFF0000LL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LCX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
dat &= 0xFFFF;
if (dat & 0x8000LL)
dat |= 0xFFFFFFFFFFFF0000LL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LCU:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
dat &= 0xFFFFLL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LCUX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
dat &= 0xFFFF;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LDIS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Sprn = b1 & 0x3f;
if (imm_prefix) {
imm |= ((b2 << 2) & 0xFF) | ((b1 >> 6) & 3);
}
else {
imm = ((b2 << 2) & 0x3FF) | ((b1 >> 6) & 3);
if (imm & 0x200)
imm |= 0xFFFFFFFFFFFFFE00LL;
}
if (Sprn < 16) {
pr[Sprn] = imm & 0xF;
}
else if (Sprn < 32) {
ca[Sprn-16] = imm;
ca[0] = 0;
ca[15] = pc;
pc = disp + ca[Cr];
}
imm_prefix = false;
return;
 
case LDIS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Sprn = b1 & 0x3f;
if (imm_prefix) {
imm |= ((b2 << 2) & 0xFF) | ((b1 >> 6) & 3);
}
else {
imm = ((b2 << 2) & 0x3FF) | ((b1 >> 6) & 3);
if (imm & 0x200)
imm |= 0xFFFFFFFFFFFFFE00LL;
}
if (Sprn < 16) {
pr[Sprn] = imm & 0xF;
}
else if (Sprn < 32) {
ca[Sprn-16] = imm;
ca[0] = 0;
ca[15] = pc;
}
else if (Sprn < 40) {
seg_base[Sprn-32] = imm & 0xFFFFFFFFFFFFF000LL;
}
else if (Sprn < 48) {
seg_limit[Sprn-40] = imm & 0xFFFFFFFFFFFFF000LL;
}
else {
switch(Sprn) {
case 51: lc = imm; break;
case 52:
for (nn = 0; nn < 16; nn++) {
pr[nn] = (imm >> (nn * 4)) & 0xF;
}
break;
case 60: bir = imm & 0xFFLL; break;
case 61:
switch(bir) {
case 0: dbad0 = imm; break;
case 1: dbad1 = imm; break;
case 2: dbad2 = imm; break;
case 3: dbad3 = imm; break;
case 4: dbctrl = imm; break;
case 5: dbstat = imm; break;
}
else if (Sprn < 40) {
seg_base[Sprn-32] = imm & 0xFFFFFFFFFFFFF000LL;
}
else if (Sprn < 48) {
seg_limit[Sprn-40] = imm & 0xFFFFFFFFFFFFF000LL;
}
else {
switch(Sprn) {
case 51: lc = imm; break;
case 52:
for (nn = 0; nn < 16; nn++) {
pr[nn] = (imm >> (nn * 4)) & 0xF;
}
break;
case 60: bir = imm & 0xFFLL; break;
case 61:
switch(bir) {
case 0: dbad0 = imm; break;
case 1: dbad1 = imm; break;
case 2: dbad2 = imm; break;
case 3: dbad3 = imm; break;
case 4: dbctrl = imm; break;
case 5: dbstat = imm; break;
}
}
}
imm_prefix = false;
return;
}
imm_prefix = false;
ca[15] = pc;
return;
 
case LDI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Rt = b1 & 0x3f;
if (imm_prefix) {
imm |= ((b2 << 2) & 0xFF) | ((b1 >> 6) & 3);
}
else {
imm = ((b2 << 2) & 0x3FF) | ((b1 >> 6) & 3);
if (imm & 0x200)
imm |= 0xFFFFFFFFFFFFFE00LL;
}
gp[Rt] = imm;
case LDI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Rt = b1 & 0x3f;
if (imm_prefix) {
imm |= ((b2 << 2) & 0xFF) | ((b1 >> 6) & 3);
}
imm_prefix = false;
return;
else {
imm = ((b2 << 2) & 0x3FF) | ((b1 >> 6) & 3);
if (imm & 0x200)
imm |= 0xFFFFFFFFFFFFFE00LL;
}
SetGP(Rt,imm);
}
imm_prefix = false;
ca[15] = pc;
return;
 
case LH:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + gp[Ra];
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
dat &= 0xFFFF;
if (dat & 0x8000LL)
dat |= 0xFFFFFFFFFFFF0000LL;
gp[Rt] = dat;
gp[0] = 0;
case LH:
case LVH:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
dat &= 0xFFFFFFFFLL;
if (dat & 0x80000000LL)
dat |= 0xFFFFFFFF00000000LL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LHX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
dat &= 0xFFFFFFFFLL;
if (dat & 0x80000000LL)
dat |= 0xFFFFFFFF00000000LL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LHU:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
dat &= 0xFFFFFFFFLL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LHUX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
dat = system1->Read(ea);
if (ea & 4)
dat = (dat >> 32);
dat &= 0xFFFFFFFFLL;
SetGP(Rt,dat);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LLA:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
SetGP(Rt,ea);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LOGIC:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rb = ((b2 << 2) & 0x3c) | (b1 >> 6);
Rt = (b2 >> 4) | ((b3 & 0x3) << 4);
func = b3 >> 2;
switch(func) {
case AND:
SetGP(Rt, GetGP(Ra) & GetGP(Rb));
break;
case OR:
SetGP(Rt, GetGP(Ra) | GetGP(Rb));
break;
case EOR:
SetGP(Rt, GetGP(Ra) ^ GetGP(Rb));
break;
case NAND:
SetGP(Rt, ~(GetGP(Ra) & GetGP(Rb)));
break;
case NOR:
SetGP(Rt, ~(GetGP(Ra) | GetGP(Rb)));
break;
case ENOR:
SetGP(Rt, ~(GetGP(Ra) ^ GetGP(Rb)));
break;
case ANDC:
SetGP(Rt, GetGP(Ra) & ~GetGP(Rb));
break;
case ORC:
SetGP(Rt, GetGP(Ra) | ~GetGP(Rb));
break;
}
imm_prefix = false;
return;
}
ca[15] = pc;
imm_prefix = 0;
return;
 
case LLA:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + gp[Ra];
gp[Rt] = ea;
gp[0] = 0;
case LOOP:
disp = ReadByte(pc);
pc++;
if (ex) {
if (disp & 0x80LL)
disp |= 0xFFFFFFFFFFFFFF00LL;
if (lc > 0) {
lc--;
pc = pc + disp;
}
imm_prefix = false;
return;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LOGIC:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rb = ((b2 << 2) & 0x3c) | (b1 >> 6);
Rt = (b2 >> 4) | ((b3 & 0x3) << 4);
func = b3 >> 2;
switch(func) {
case OR:
gp[Rt] = gp[Ra] | gp[Rb];
gp[0] = 0;
break;
}
case LW:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
/*
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
*/
SetGP(Rt,dat);
}
imm_prefix = false;
ca[15] = pc;
return;
 
case LVWAR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea,1);
/*
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
*/
SetGP(Rt,dat);
}
imm_prefix = false;
ca[15] = pc;
return;
 
case LWS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
dat = system1->Read(ea);
/*
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
if (ea & 1)
dat = (dat >> 8);
*/
SetSpr(Rt, dat);
}
imm_prefix = false;
ca[15] = pc;
return;
 
case LWX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
dat = system1->Read(ea);
/*
if (ea & 4)
dat = (dat >> 32);
if (ea & 2)
dat = (dat >> 16);
*/
SetGP(Rt,dat);
}
imm_prefix = false;
ca[15] = pc;
return;
 
// Memory synchronization primitives are not useful to the software ISA
// emulator. They are treated like NOP's.
case MEMSB:
ca[15] = pc;
imm_prefix = false;
break;
 
case MEMDB:
ca[15] = pc;
imm_prefix = false;
break;
 
case MFSPR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Sprn = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | ((b1 >> 6) & 3);
SetGP(Rt,GetSpr(Sprn));
}
ca[15] = pc;
imm_prefix = false;
return;
 
case MODI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = 0;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) % imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case LOOP:
disp = ReadByte(pc);
pc++;
if (ex) {
if (disp & 0x80LL)
disp |= 0xFFFFFFFFFFFFFF00LL;
if (lc > 0) {
lc--;
pc = pc + disp;
}
case MODUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = false;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,(unsigned __int64) GetGP(Ra) % (unsigned __int64)imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case MFSPR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Sprn = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | ((b1 >> 6) & 3);
if (Sprn < 16) {
gp[Rt] = pr[Sprn];
gp[0] = 0;
}
else if (Sprn < 32) {
Sprn -= 16;
gp[Rt] = ca[Sprn];
gp[0] = 0;
}
else if (Sprn < 40) {
gp[Rt] = seg_base[Sprn-32];
gp[0] = 0;
}
else if (Sprn < 48) {
gp[Rt] = seg_limit[Sprn-32];
gp[0] = 0;
}
else {
switch(Sprn) {
case 50: gp[Rt] = tick; gp[0] = 0; break;
case 51: gp[Rt] = lc; gp[0] = 0; break;
case 52:
gp[Rt] = 0;
for (nn = 0; nn < 16; nn++) {
gp[Rt] |= pr[nn] << (nn * 4);
}
gp[0] = 0;
break;
case 60: gp[Rt] = bir; gp[0] = 0; break;
case 61:
switch(bir) {
case 0: gp[Rt] = dbad0; gp[0] = 0; break;
case 1: gp[Rt] = dbad1; gp[0] = 0; break;
case 2: gp[Rt] = dbad2; gp[0] = 0; break;
case 3: gp[Rt] = dbad3; gp[0] = 0; break;
case 4: gp[Rt] = dbctrl; gp[0] = 0; break;
case 5: gp[Rt] = dbstat; gp[0] = 0; break;
}
}
}
case GRPA7:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
switch(b2 >> 4) {
case ABS:
SetGP(Rt, GetGP(Ra) < 0 ? -GetGP(Ra) : GetGP(Ra));
break;
case COM:
SetGP(Rt, ~GetGP(Ra));
break;
case MOV:
SetGP(Rt, GetGP(Ra));
break;
case NEG:
SetGP(Rt, -GetGP(Ra));
break;
case NOT:
SetGP(Rt, !GetGP(Ra));
break;
case SGN:
SetGP(Rt, (GetGP(Ra) == 0) ? 0 : (GetGP(Ra) < 0) ? -1 : 1);
break;
case SXB:
dat = GetGP(Ra);
if (dat & 0x80LL)
dat |= 0xFFFFFFFFFFFFFF80LL;
SetGP(Rt,dat);
break;
case SXC:
dat = GetGP(Ra);
if (dat & 0x8000LL)
dat |= 0xFFFFFFFFFFFF8000LL;
SetGP(Rt,dat);
break;
case SXH:
dat = GetGP(Ra);
if (dat & 0x80000000LL)
dat |= 0xFFFFFFFF80000000LL;
SetGP(Rt,dat);
break;
case ZXB:
dat = GetGP(Ra);
dat &= 0xFFLL;
SetGP(Rt,dat);
break;
case ZXC:
dat = GetGP(Ra);
dat &= 0xFFFFLL;
SetGP(Rt,dat);
break;
case ZXH:
dat = GetGP(Ra);
dat &= 0xFFFFFFFFLL;
SetGP(Rt,dat);
break;
}
imm_prefix = false;
return;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case MOV:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
gp[Rt] = gp[Ra];
gp[0] = 0;
case MTSPR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Sprn = ((b2 & 0xF) << 2) | ((b1 >> 6) & 3);
SetSpr(Sprn, GetGP(Ra));
}
ca[15] = pc;
imm_prefix = false;
return;
 
case MULI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = false;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) * imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case MTSPR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Sprn = ((b2 & 0xF) << 2) | ((b1 >> 6) & 3);
if (Sprn < 16)
pr[Sprn] = gp[Ra];
else if (Sprn < 32) {
Sprn -= 16;
ca[Sprn] = gp[Ra];
ca[0] = 0;
ca[15] = pc;
}
else if (Sprn < 40) {
seg_base[Sprn-32] = gp[Ra] & 0xFFFFFFFFFFFFF000LL;
}
else if (Sprn < 48) {
seg_limit[Sprn-32] = gp[Ra] & 0xFFFFFFFFFFFFF000LL;
}
else {
switch(Sprn) {
case 51: lc = gp[Ra]; break;
case 52:
for (nn = 0; nn < 16; nn++) {
pr[nn] = (gp[Ra] >> (nn * 4)) & 0xF;
}
break;
case 60: bir = gp[Ra] & 0xFFLL; break;
case 61:
switch(bir) {
case 0: dbad0 = gp[Ra]; break;
case 1: dbad1 = gp[Ra]; break;
case 2: dbad2 = gp[Ra]; break;
case 3: dbad3 = gp[Ra]; break;
case 4: dbctrl = gp[Ra]; break;
case 5: dbstat = gp[Ra]; break;
}
}
}
case MULUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = false;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,(unsigned __int64)GetGP(Ra) * (unsigned __int64)imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case RR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rb = ((b2 << 2) & 0x3c) | (b1 >> 6);
Rt = (b2 >> 4) | ((b3 & 0x3) << 4);
func = b3 >> 2;
switch(func) {
case _2ADDU:
gp[Rt] = (gp[Ra] << 1) + gp[Rb];
gp[0] = 0;
break;
case _4ADDU:
gp[Rt] = (gp[Ra] << 2) + gp[Rb];
gp[0] = 0;
break;
case _8ADDU:
gp[Rt] = (gp[Ra] << 3) + gp[Rb];
gp[0] = 0;
break;
case _16ADDU:
gp[Rt] = (gp[Ra] << 4) + gp[Rb];
gp[0] = 0;
break;
case ORI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) | imm);
gp[0] = 0;
}
ca[15] = pc;
imm_prefix = false;
return;
case R1:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
switch(b2 >> 4) {
case CPUID:
switch(Ra) {
case 0: SetGP(Rt,0x0002LL); break; // Processor ID
case 2: SetGP(Rt,0x4e4F5254494E4966LL); break; // "Finitron"
case 3: SetGP(Rt,0x00LL); break;
case 4: SetGP(Rt,0x36346249547373LL); break; // 64BitSS
case 5: SetGP(Rt,0x00LL); break;
case 6: SetGP(Rt,0x524F4A74LL); break; // "Thor"
case 7: SetGP(Rt, 0x00LL); break;
case 8: SetGP(Rt, 0x316ELL); break; // "M1"
case 9: SetGP(Rt, 0x1235LL); break;
case 10: SetGP(Rt,0x00LL); break;
case 11: SetGP(Rt,0x0000400000008000LL); break; // 16k,32k cache size
default: SetGP(Rt,0x00LL); break;
}
case REDOR: SetGP(Rt, GetGP(Ra) != 0); break;
case REDAND: SetGP(Rt, GetGP(Ra)==0xFFFFFFFFFFFFFFFFLL); break;
case PAR: break; /* ToDo */
}
imm_prefix = 0;
return;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case RTS:
b1 = ReadByte(pc);
pc++;
if (ex) {
Cr = (b1 & 0xF0) >> 4;
pc = ca[Cr] + (b1 & 0x0F);
case P1:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
int bita,bitb,bitt;
Ra = (b1 & 0x3f) >> 2;
bita = b1 & 3;
a = GetBit(pr[Ra],bita);
Rb = (b2 & 0xf);
bitb = b1 >> 6;
b = GetBit(pr[Rb],bitb);
Rt = (b2 >> 6) | ((b3 & 3) << 2);
bitt = (b2 >> 4) & 3;
switch(b3 >> 2) {
case PAND:
res = a & b;
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
case POR:
res = a | b;
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
case PEOR:
res = a ^ b;
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
case PNAND:
res = !(a & b);
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
case PNOR:
res = !(a | b);
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
case PENOR:
res = !(a ^ b);
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
case PANDC:
res = a & !b;
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
case PORC:
res = a | !b;
if (res) SetBit((__int64 *)&pr[Rt],bitt); else ClearBit((__int64 *)&pr[Rt],bitt);
break;
}
imm_prefix = 0;
return;
}
ca[15] = pc;
imm_prefix = 0;
return;
 
case RTSQ:
if (ex) {
pc = ca[1];
case RR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rb = ((b2 << 2) & 0x3c) | (b1 >> 6);
Rt = (b2 >> 4) | ((b3 & 0x3) << 4);
func = b3 >> 2;
switch(func) {
case ADD:
case ADDU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) + (unsigned __int64)GetGP(Rb));
break;
case SUB:
case SUBU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) - (unsigned __int64)GetGP(Rb));
break;
case MUL:
SetGP(Rt,GetGP(Ra) * GetGP(Rb));
break;
case DIV:
SetGP(Rt,GetGP(Ra) / GetGP(Rb));
break;
case MOD:
SetGP(Rt,GetGP(Ra) % GetGP(Rb));
break;
case MULU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) * (unsigned __int64)GetGP(Rb));
break;
case DIVU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) / (unsigned __int64)GetGP(Rb));
break;
case MODU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) % (unsigned __int64)GetGP(Rb));
break;
case _2ADDU:
SetGP(Rt,(GetGP(Ra) << 1) + GetGP(Rb));
break;
case _4ADDU:
SetGP(Rt,(GetGP(Ra) << 2) + GetGP(Rb));
break;
case _8ADDU:
SetGP(Rt,(GetGP(Ra) << 3) + GetGP(Rb));
break;
case _16ADDU:
SetGP(Rt,(GetGP(Ra) << 4) + GetGP(Rb));
break;
}
imm_prefix = 0;
return;
}
ca[15] = pc;
imm_prefix = 0;
return;
 
case SB:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + gp[Ra];
system1->Write(ea,gp[Rb],(0x1 << (ea & 7)) & 0xFF);
}
imm_prefix = false;
return;
case RTD:
if (ex) {
StatusDBG = false;
pc = ca[11];
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SC:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + gp[Ra];
system1->Write(ea,gp[Rb],(0x3 << (ea & 7)) & 0xFF);
}
imm_prefix = false;
return;
case RTE:
if (ex) {
if (StatusEXL > 0)
StatusEXL--;
pc = ca[13];
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SH:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + gp[Ra];
system1->Write(ea,gp[Rb],(0xF << (ea & 7)) & 0xFF);
case RTI:
if (ex) {
im = 0;
StatusHWI = false;
pc = ca[14];
}
ca[15] = pc;
imm_prefix = false;
return;
 
case RTS:
b1 = ReadByte(pc);
pc++;
if (ex) {
Cr = (b1 & 0xF0) >> 4;
pc = ca[Cr] + (b1 & 0x0F);
if (sub_depth > 0) sub_depth--;
}
ca[15] = pc;
imm_prefix = 0;
return;
 
case RTSQ:
if (ex) {
pc = ca[1];
if (sub_depth > 0) sub_depth--;
}
ca[15] = pc;
imm_prefix = 0;
return;
 
case SB:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
system1->Write(ea,GetGP(Rb),(0x1 << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SBX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
system1->Write(ea,GetGP(Rt),(0x1 << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SC:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
system1->Write(ea,GetGP(Rb),(0x3 << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SCX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
system1->Write(ea,GetGP(Rt),(0x3 << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SEI:
if (ex) {
im = 1;
}
ca[15] = pc;
imm_prefix = false;
break;
 
case SH:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
system1->Write(ea,GetGP(Rb),(0xF << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SHX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
system1->Write(ea,GetGP(Rt),(0xF << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SHIFT:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
unsigned __int64 a,b;
Ra = b1 & 0x3f;
Rb = ((b2 << 2) & 0x3c) | (b1 >> 6);
Rt = (b2 >> 4) | ((b3 & 0x3) << 4);
func = b3 >> 2;
switch(func) {
case SHL:
case SHLU:
SetGP(Rt, GetGP(Ra) << (GetGP(Rb) & 0x3f));
break;
case SHR:
SetGP(Rt, GetGP(Ra) >> (GetGP(Rb) & 0x3f));
break;
case ROL:
a = (unsigned __int64)GetGP(Ra) << (GetGP(Rb) & 0x3f);
b = (unsigned __int64)GetGP(Ra) >> (64-(GetGP(Rb) & 0x3f));
SetGP(Rt, (unsigned __int64)a|b);
break;
case ROR:
a = (unsigned __int64)GetGP(Ra) >> (GetGP(Rb) & 0x3f);
b = (unsigned __int64)GetGP(Ra) << (64-(GetGP(Rb) & 0x3f));
SetGP(Rt, (unsigned __int64)a|b);
break;
case SHLI:
case SHLUI:
SetGP(Rt, GetGP(Ra) << Rb);
break;
case SHRI:
SetGP(Rt, GetGP(Ra) >> Rb);
break;
case SHRUI:
SetGP(Rt, (unsigned __int64)GetGP(Ra) >> Rb);
break;
case ROLI:
a = (unsigned __int64)GetGP(Ra) << Rb;
b = (unsigned __int64)GetGP(Ra) >> (64-Rb);
SetGP(Rt, (unsigned __int64)a|b);
break;
case RORI:
a = (unsigned __int64)GetGP(Ra) >> Rb;
b = (unsigned __int64)GetGP(Ra) << (64-Rb);
SetGP(Rt, (unsigned __int64)a|b);
break;
}
imm_prefix = false;
return;
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SHIFT:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rb = ((b2 << 2) & 0x3c) | (b1 >> 6);
Rt = (b2 >> 4) | ((b3 & 0x3) << 4);
func = b3 >> 2;
switch(func) {
case SHL:
gp[Rt] = (gp[Ra] << (gp[Rb] & 0x3f));
gp[0] = 0;
// The stop instruction controls the clock rate. It's just about useless
// to try to emulate as the emulation rate is controlled by the user.
// So for now, it's a NOP.
case STP:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
ca[15] = pc;
imm_prefix = false;
return;
 
case STSET:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
string_pc = pc - 5; // address of the string instruction
Ra = b1 & 0x3f;
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
do {
Sg = b3 >> 5;
ea = GetGP(Ra) + seg_base[Sg];
switch((b3 >> 2) & 3) {
case 0:
dat = GetGP(Rb) & 0xFFLL;
dat = (dat << 56) | (dat << 48) | (dat << 40) | (dat << 32)
| (dat << 24) | (dat << 16) | (dat << 8) | dat;
SetGP(Ra,GetGP(Ra) + ((b3&16) ? -1 : 1));
system1->Write(ea,dat,WriteMask(ea,0),0);
break;
case SHLI:
gp[Rt] = (gp[Ra] << Rb);
gp[0] = 0;
case 1:
dat = GetGP(Rb) & 0xFFFFLL;
dat = (dat << 48) | (dat << 32)
| (dat << 16) | dat;
SetGP(Ra,GetGP(Ra) + ((b3&16) ? -2 : 2));
system1->Write(ea,dat,WriteMask(ea,1),0);
break;
case 2:
dat = GetGP(Rb) & 0xFFFFFFFFLL;
dat = (dat << 32) | dat;
SetGP(Ra,GetGP(Ra) + ((b3&16) ? -4 : 4));
system1->Write(ea,dat,WriteMask(ea,2),0);
break;
case 3:
dat = GetGP(Rb);
SetGP(Ra,GetGP(Ra) + ((b3&16) ? -8 : 8));
system1->Write(ea,dat,WriteMask(ea,3),0);
break;
}
if (lc==0) {
string_pc = 0;
break;
}
lc--;
} while (!IRQActive());
}
ca[15] = pc;
imm_prefix = false;
return;
 
/* ToDo: cause overflow exception */
case SUBI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = false;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) - imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case STP:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
imm_prefix = false;
return;
 
case SW:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + gp[Ra];
system1->Write(ea,gp[Rb],(0xFF << (ea & 7)) & 0xFF);
case SUBUI:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Ra = b1 & 0x3f;
Rt = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
if (imm_prefix) {
imm |= ((b3 << 4)&0xF0) | ((b2 >> 4) & 0xF);
}
imm_prefix = false;
return;
else {
imm = (b3 << 4) | ((b2 >> 4) & 0xF);
if (imm & 0x800)
imm |= 0xFFFFFFFFFFFFF000LL;
}
SetGP(Rt,GetGP(Ra) - imm);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SW:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
system1->Write(ea,GetGP(Rb),(0xFF << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SWCR:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
system1->Write(ea,GetGP(Rb),(0xFF << (ea & 7)) & 0xFF,1);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SWS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
Rb = ((b2 & 0xF) << 2) | (( b1 >> 6) & 3);
dRn(b1,b2,b3,&Ra,&Sg,&disp);
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
system1->Write(ea,GetSpr(Rb),(0xFF << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
case SWX:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
if (ex) {
ndx(b1,b2,b3,&Ra,&Rb,&Rt,&Sg,&Sc);
ea = (unsigned __int64) seg_base[Sg] + GetGP(Ra) + GetGP(Rb) * Sc;
system1->Write(ea,GetGP(Rt),(0xFF << (ea & 7)) & 0xFF);
}
ca[15] = pc;
imm_prefix = false;
return;
 
// The SYNC instruction is a pipeline control. The pipeline is
// not emulated by this emulator. So it's treated as a NOP.
case SYNC:
ca[15] = pc;
imm_prefix = false;
break;
 
case SYS:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
Ct = b1 & 0xF;
Cr = b1 >> 4;
ca[Ct] = pc;
ca[0] = 0;
pc = (b2 << 4) + ca[Cr];
if (Ct==11)
StatusDBG = true;
else if (StatusEXL < 255)
StatusEXL++;
}
ca[15] = pc;
imm_prefix = false;
return;
 
// The TLB isn't implemented yet. the boot rom currently just
// sets up the TLB registers and then leaves it disabled.
case TLB:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
if (ex) {
;
}
ca[15] = pc;
imm_prefix = false;
return;
 
}
}
/source/frmUart.resx
0,0 → 1,123
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
/source/clsDisassem.h
5,9 → 5,16
{
bool imm_prefix;
unsigned __int64 imm;
int DefaultSeg(int rg);
std::string SegName(int sg);
std::string PredCond(int cnd);
std::string SprName(int rg);
std::string TLBRegName(int rg);
std::string dRn(int b1, int b2, int b3, int *Ra, int *Sg, __int64 *disp);
std::string ndx(int b1, int b2, int b3, int *Ra, int *Rb, int *Rt, int *Sg, int *Sc);
std::string mem(std::string mne, int ad, int *nb);
std::string memndx(std::string mne, int ad, int *nb);
__int64 GetSpr(int Sprn);
unsigned __int64 ReadByte(int ad) { return system1.ReadByte(ad); };
public:
std::string Disassem(int ad, int *nb);
/source/frmUart.cpp
0,0 → 1,3
#include "StdAfx.h"
#include "frmUart.h"
 
/source/frmInterrupts.resx
0,0 → 1,120
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
/source/frmInterrupts.cpp
0,0 → 1,3
#include "StdAfx.h"
#include "frmInterrupts.h"
 
/source/frmPCHistory.resx
0,0 → 1,120
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
/test files/boot.hex
12,5959 → 12,5959
:0800500009019DEEFF01F6FF1E
:08005800FF2010019D1C0001B6
:08006000A70001019DF33F50D0
:08006800DAFCFF00016F0198B2
:0800700001A7840001A1F10EBB
:08006800E2FCFF00016F019AA8
:0800700001A7840001A1F10DBC
:08007800060147440001A4E762
:0800800050DAFCFF00016A40A8
:0800880000E4016F020001A178
:08009000F1F40550DAFCFF0059
:08009800016A4080E4016F825F
:0800A0000001A1F1E10550DAB5
:0800A800FCFF00016A4080EA40
:0800B000016FC20001A1F1CEB5
:0800B8000550DAFCFF00016AAB
:0800C0004000E7016F8202011C
:0800C800A1F1BB0550DAFCFFB9
:0800D00000016A4080E5016FA8
:0800D800823F01A1F1A80550CF
:0800E000DAFCFF00016A400098
:0800800050E2FCFF00016A40A0
:0800880080E4016F020001A1F8
:08009000F1F30550E2FCFF0052
:08009800016A4000E5016F82DE
:0800A0000001A1F1E00550E2AE
:0800A800FCFF00016A4000EBBF
:0800B000016FC20001A1F1CDB6
:0800B8000550E2FCFF00016AA3
:0800C0004080E7016F8202019C
:0800C800A1F1BA0550E2FCFFB2
:0800D00000016A4000E6016F27
:0800D800823F01A1F1A70550D0
:0800E000E2FCFF00016A408010
:0800E800E8016F822F01A1F174
:0800F000950550DAFCFF000148
:0800F8006A4080E8016FC22F8D
:0801000001A1F1820550DAFCB7
:08010800FF00016A4000E9015B
:080110006F023001A1F16F053F
:0800F000940550E2FCFF000141
:0800F8006A4000E9016FC22F0C
:0801000001A1F1810550E2FCB0
:08010800FF00016A4080E901DB
:080110006F023001A1F16E0540
:080118004000C00001920080CC
:080120002050DAFCFF00016A27
:080128004000E5016F423001C7
:08013000A1F1530550DAFCFFB8
:0801380000016A4080E9016F3B
:08014000023201A1F14005505B
:08014800DAFCFF00016A40002F
:080120002050E2FCFF00016A1F
:080128004080E5016F42300147
:08013000A1F1520550E2FCFFB1
:0801380000016A4000EA016FBA
:08014000023201A1F13F05505C
:08014800E2FCFF00016A4080A7
:08015000EA016F423D01A1F13B
:080158002D0550DAFCFF000147
:080160006A4080E7016FC23E16
:0801680001A1F11A0501A2F149
:08017000ECB00001A2F1FFA4B4
:080178000001A2F1D3C8004010
:0801800000D100016F010040F5
:0801880001C0000193400012C8
:0801900040F00A0101934080D8
:08019800024000C100016F01EB
:0801A000004001C00001934082
:0801A800801140F00A010190F2
:0801B00000000501A7C00730A3
:0801B800FF00016F81FF30061A
:0801C0000C01914000A050E287
:0801C800FCFF00016F029440EE
:0801D000000001016F030001B2
:0801D800844200200192430063
:0801E000200147020101470361
:0801E800015042FDFF0001205F
:0801F0000290073FE230FF001E
:0801F800016F41FF30060C010C
:08020000914000A001A2015091
:0802080022FC30FF00016F0130
:08021000FF30060C01914000D3
:08021800A0016FC101300F0CC1
:0802200001924000BE016FC114
:0802280001300F0C019240802F
:08023000BC5088888800016FB2
:0802380001224000C000019208
:080240004000214077777701AF
:080248006FC1DD4000C00001A0
:080250009240402101A740008B
:0802580001A7800001A7C0000E
:0802600001A7000101A7400104
:08026800016F410030060C019A
:08027000914000A001F088009C
:0802780001F09800016F810004
:0802800001F00801016F81008B
:0802880001F038015001008073
:0802900000016F414001F0780C
:080298000130FF00016FC1FFFE
:0802A00001F0480101F05801D2
:0802A80001F0280001F0040040
:0802B0005001008000016F41C4
:0802B8004001F0780101F0485B
:0802C0000001F05800016F017C
:0802C8000201F0280101F0041D
:0802D0000001FA5002FCFF00DE
:0802D800019D1EB801F701F4BD
:080158002C0550E2FCFF000140
:080160006A4000E8016FC23E95
:0801680001A1F1190501A2F14A
:0801700010B20001A2F11FA66C
:08017800004000D100016F01FD
:08018000004001C000019340A2
:08018800001240F00A0101938E
:080190004080024000C10001A3
:080198006F01004001C00001ED
:0801A0009340801140F00A01B8
:0801A800019000000501A7C051
:0801B0000730FF00016F81FF21
:0801B80030060C01914000A08B
:0801C00050F2FCFF00016F0288
:0801C8009440000001016F03E7
:0801D0000001844200200192AD
:0801D800430020014702010170
:0801E0004703015052FDFF002E
:0801E80001200290073FE23004
:0801F000FF00016F41FF300622
:0801F8000C01914000A001A2DE
:08020000011023FC30FF000196
:080208006F01FF30060C0191AB
:080210004000A0016FC10130A4
:080218000F0C01924000BE0131
:080220006FC103300F0C0192C5
:080228004080BC50888888006A
:08023000016F01224000C00033
:0802380001924000214077779C
:0802400077016FC1DD4000C031
:0802480000019240402101A7D2
:08025000400001A7800001A796
:08025800C00001A7000101A78D
:080260004001016F410030066E
:080268000C01914000A001F01F
:08027000880001F09800016F05
:08027800810001F00801016F93
:08028000810001F0380150017A
:08028800008000016F414001FC
:08029000F0780130FF00016F5E
:08029800C1FF01F0480101F073
:0802A000580101F0280001F0F3
:0802A800040050010080000178
:0802B0006F414001F0780101EB
:0802B800F0480001F0580001BC
:0802C0006F010201F0280101A9
:0802C800F0040001FA5002FCF1
:0802D000FF00019D9EB601F73D
:0802D80001F4203E016F1BBE82
:0802E000016F810030060C01E2
:0802E800914000A04000C0009D
:0802F000019000402D01A2F174
:0802F80049B0005005FCFF00B5
:08030000016F026D019DB307BE
:0803080001A2F1D8AE0001A230
:08031000F137A300016FC100E9
:0802F80069B1005005FCFF0094
:08030000016FC26C019DB307FF
:0803080001A2F1FCAF0001A20B
:08031000F157A400016FC100C8
:0803180030060C01914000A029
:0803200001A7400001A78000C5
:08032800016F860001A5CD0A5A
:08033000016F810130060C0190
:08033800914000A001A1F1FEBB
:08033800914000A001A1F1FDBC
:08034000025005FCFF00016AF8
:080348004040FB016F060501B6
:080348004030FB016F060501C6
:08035000A5CD0A5005FCFF00D9
:08035800016A4030FD01A2F131
:0803600096A600016F410301A4
:08036800A2F188A900016F81D8
:080370000201A2F17EA90001C7
:080378006F010901A2F174A953
:080380000001A2F18DA30001B0
:08038800A2F1BBFD0301A2F18B
:0803900062A9000120410303F2
:080398003FED01A2F1B1A30049
:0803A0004000C0000183402071
:0803A8002C4000C0000183C0DD
:0803B000812D01A9C70C0140D9
:0803B800C1A11801400AA024B4
:0803C00001A1F18E00012001F2
:0803C80009023FF401200119B4
:0803D00002A2F130B800023F67
:0803D8008A0120C11902A1F104
:0803E000A000023F7E01200194
:0803E8001D02A1F13A00022000
:0803F000011E02A1F1C100028F
:0803F8003F690110C1FF02A1E1
:08040000F15901023F5D0120EA
:08040800C11802A2F13BA200A1
:0804100002A7400002A78000D2
:08041800026F860002A5CD0A67
:08042000013F4001471FFE01EE
:080428009E5F040001854A00FB
:08043000A0015341F03F01A2BD
:08043800F192A50001470A0141
:0804400001A400018E5F04001D
:0804480001471F0201F2014708
:080450001FFE019E5F04000184
:08045800854A00A0015341F0A8
:080460003F01A2F167A50001B4
:08046800470A01012001080808
:08047000A4E5018E5F04000108
:08047800471F0201F24000C021
:08048000000185C0C02C016FD2
:0804880001014000C0000191D8
:0804900040602D01924340A0E1
:08049800016F013C019243C019
:0804A000A001A7400001A780A4
:0804A80000016F860001A5CDE3
:0804B0000A01F24000C0000146
:0804B80085C0C02C016FC107D3
:0804C0004000C0000191406002
:0804C8002D01924340A0016FD9
:0804D0004104019243C0A001A8
:0804D800A7400001A78000010C
:0804E0006F860001A5CD0A01A1
:0804E800F201471FFE01939F82
:0804F00000004000C00001857E
:0804F800404021309000014E4C
:08050000819006015801144C22
:0805080001404220104000C038
:0805100000019280402140002F
:08051800C00001854000212014
:0805200046014E8100650158FF
:0805280001144C0140422010B7
:080530004000C00001928000B0
:08053800214000C000018540D4
:080540004021015801144001A3
:080548004081101001869F00A4
:080550000001471F0201F20146
:08055800471FFE019E5F040035
:0805600001A7000101A1F185D2
:08056800FF30A002015F8100D9
:08057000005000A0FF00016B28
:0805780082000001A1F16EFFF9
:080580002010015FC100000121
:0805880091C20000014744008C
:08059000200F015304F1FF01EB
:080598000104133FC701A2F1A9
:0805A000B8FB03010101173F44
:0805A800AE018E5F0400014763
:0805B0001F0201F254686F7292
:0805B80020546573742053798F
:0805C0007374656D2053746132
:0805C8007274696E672E2E2E7D
:0805D0000D0A000D0A64202051
:0805D8002D2072756E20646590
:0805E0006275676765720D0A80
:0805E8006720202D20677261DD
:0805F0007068696373206D6FF0
:0805F80064650D0A7478202DE2
:080600002074657874206D6F11
:0806080064650D0A7220202D2B
:080610002072616E646F6D2021
:08061800646F74730D0A000108
:080620006F811001A2F15FA33C
:080628000040FC0706015441EB
:0806300000C001924000A1018D
:080638003FFD01471BFE019E7E
:080640005B04C0016F451001CD
:080648006F0300019D73060120
:08065000A7450001A2F12FA350
:08065800004000C00001858094
:08066000802C015081100401FF
:08066800924300A00147450088
:080670000147030101A4D801B8
:080678008E5B04C001471B0268
:0806800001F201A8DC000140B9
:08068800C2202C0184C1000016
:08069000306F3F012043C0025E
:08069800588254400250433126
:0806A000040192C20000018474
:0806A800C140000192C24000B4
:0806B0000184C180000192C227
:0806B80080000184C1C00001B3
:0806C00092C2C00001F200002B
:0806C80000000000000000002A
:0806D0005022FCFFF01BFCFFAF
:0806D800861BFCFF2019FCFF4A
:0806E0000321FCFF1920FCFFBF
:0806E8007C34FCFF2D36FCFF01
:0806F0001D3EFCFF5E3AFCFF19
:0806F800EA41FCFF8A47FCFF08
:0807000001471BF801939B0661
:08070800C0019E1B8CC101A77A
:080710009B06016F0108300691
:080718000C01914000A001A7B3
:08072000DA0601869B06C00108
:080728008E1B8CC101471B0868
:0807300001F201471BF80193DF
:080738009B06C0019E1B8CC151
:08074000019E9B86C0019E5B37
:0807480004C15007FCFF000191
:080750009DDAE601A79B0601FA
:08075800471BFC0186DA00C218
:080760000193DB80C05000DCB6
:08076800FF00016F0320019363
:08077000DB00C001A201D0A5CD
:08077800FC01471B0401A7DA94
:080780000601869B06C0018EF4
:080788009B86C0018E5B04C1D9
:08079000018E1B8CC101471B07
:080798000801F2018E5A84C031
:0807A000019E5A04C1013FD57E
:0807A80001A84C0001F2200140
:0807B00001844080B4014741BF
:0807B80000200101924080B411
:0807C00001471BF8019E1B8C90
:0807C800C101471BFC01931B5A
:0807D00001C001935B81C0012F
:0807D800581F534040C01701F7
:0807E00001470500200801811A
:0807E80045F1260158C542400D
:0807F0004018C000014C440058
:0807F8008001861B01C001868F
:080800005B81C001471B0401EC
:080808008E1B8CC101471B0887
:0808100001F2000000000000ED
:080818000000000000000000D8
:0808200001471BF801939B0640
:08082800C0019E1B8CC1019E62
:080830009B86C0019E5B04C120
:08083800500AFCFF00019D5A6B
:080840008B01A79B0601471B79
:08084800F4014DDB860301936E
:08085000DB02C001931B83C011
:0808580001935B03C101939BB6
:0808600083C10193DB03C20117
:08086800931B84C201935B04A1
:08087000C340C01701016F0F26
:0808780000400F00010180C0E7
:08088000003601474300400F60
:0808880000010190C0003640A0
:080890000F00010180C00036D9
:080898000153C3F001400F0001
:0808A000010190C00036400F79
:0808A80000010180C0003601CF
:0808B000A7C38050E0FCFF002B
:0808B8000180C3002001A7C369
:0808C0008001A7030301530CA2
:0808C8007300016F1100012013
:0808D000110206310601584C2B
:0808D800304040C027010182FD
:0808E000C3002101A74303013D
:0808E800210D001730DD012194
:0808F0000D401630D601580D31
:0808F80043400140C43310012C
:08090000A70304016F0E0001C2
:08090800A201514AFC01A7C144
:080910000001A7C3900112CD04
:080918000023A7D002233015D3
:080920002008018250012001B2
:08092800580543400140C433AF
:080930001001A7C30220080119
:08093800800BD1260153C4809D
:080940000001030333305820CD
:08094800080180CBE02601A7A5
:08095000C380014DDB860001AC
:0809580093DB00C001A2014085
:08096000A5FC0186DB00C001CB
:08096800471B0201A701010178
:08097000140301433029015872
:080978004C30400140CB531448
:08098000015805434C40C0275B
:0809880001019103012101406E
:08099000CB4314015804334C61
:0809980001A7430001304D20CE
:0809A0000801824B01200158FF
:0809A8000543400140C4331077
:0809B00001A7C302014CCE10A7
:0809B8000001A7830301120BEB
:0809C0000422300701220E4061
:0809C800273F6A01474C0001C2
:0809D000530C730001475100B4
:0809D800013EF301A201514AA6
:0809E000FC01A7C10001A743BF
:0809E8000001300001865B04F0
:0809F000C301861B84C20186CD
:0809F800DB03C201869B83C1F1
:080A000001865B03C101861BA6
:080A080083C00186DB02C0017E
:080A1000A7DA0601869B06C06F
:080A1800018E9B86C0018E5B7C
:080A200004C1018E1B8CC10111
:080A2800471B0801F2018E5A80
:080A300084C0019E5A04C101BB
:080A38003FB201F701939F009A
:080A4000010193DF8001019325
:080A48001F010201935F81020E
:080A500001939F01030193DFF4
:080A5800810301931F02040158
:080A6000935F820401939F02E1
:080A6800050193DF82050193F3
:080A70001F030601935F8306DA
:080A780001939F03070193DFC6
:080A8000830701931F04080124
:080A8800935F840801939F04B1
:080A9000090193DF84090193C1
:080A98001F050A01935F850AA6
:080AA00001939F050B0193DF98
:080AA800850B01931F060C01F0
:080AB000935F860C01939F0681
:080AB8000D0193DF860D200201
:080AC000019E5F88082002017D
:080AC8009E9F08092002019E17
:080AD000DF88092002019E1FCE
:080AD800090A2002019E5F895A
:080AE0000A2002019E9F090B90
:080AE8002002019EDF890B20B2
:080AF00002019E5F8A0C200246
:080AF800019E9F0A0D2002017E
:080B00009EDF8A0D2002019E18
:080B08001F0B0E2002019E5F8D
:080B10008B0E2002019E9F0BD9
:080B18000F2002019EDF8B0F8C
:080B20002002019E5F84002009
:080B280002019E9F040120025E
:080B3000019EDF840120020197
:080B38009E1F05022002019E30
:080B40005F85022002019E9F67
:080B480005032002019EDF8578
:080B5000032002019E1F0604B0
:080B58002002019E5F860420CB
:080B600002019E9F0605200220
:080B6800019EDF860520020159
:080B70009E5F87062002019E32
:080B78009F07072003019E1FE7
:080B80000C1040CFC100016F11
:080B88001BFE01A98009019D7B
:080B9000EEFF01A94008019DE0
:080B9800E9FF01A89D010181A4
:080BA000C601200147460001D7
:080BA800A946072002019E5F2F
:080BB000870601200705096F0B
:080BB800410009302701471B31
:080BC000F601935B00C00193F4
:080BC8009B80C00193DB00C11A
:080BD00001931B81C101935B3D
:080BD80001C25006FCFF000100
:080BE0008D4708ED01869F001E
:080BE800010186DF8001018696
:080BF0001F010201865F810272
:080BF80001869F01030186DF65
:080C0000810301861F020401BB
:080C0800865F820401869F0251
:080C1000050186DF8205018663
:080C18001F030601865F83063D
:080C200001869F03070186DF36
:080C2800830701861F04080187
:080C3000865F840801869F0421
:080C3800090186DF8409018631
:080C40001F050A01865F850A09
:080C480001869F050B0186DF08
:080C5000850B01861F060C0153
:080C5800865F860C01869F06F1
:080C60000D0186DF860D200264
:080C6800018E5F8808200201E3
:080C70008E9F08092002018E8D
:080C7800DF88092002018E1F34
:080C8000090A2002018E5F89C0
:080C88000A2002018E9F090BF6
:080C90002002018EDF890B2018
:080C980002018E5F8A0C2002AC
:080CA000018E9F0A0D200201E4
:080CA8008EDF8A0D2002018E8F
:080CB0001F0B0E2002018E5FF4
:080CB8008B0E2002018E9F0B40
:080CC0000F2002018EDF8B0FF3
:080CC8002002018E5F84002070
:080CD00002018E9F04012002C5
:080CD800018EDF8401200201FE
:080CE0008E1F05022002018EA7
:080CE8005F85022002018E9FCE
:080CF00005032002018EDF85DF
:080CF800032002018E1F060417
:080D00002002018E5F86042031
:080D080002018E9F0605200286
:080D1000018EDF8605200201BF
:080D18008E5F87062002018EA8
:080D20009F07072003018E1F4D
:080D28000C1001F701F301F7C3
:080D3000200301935F00112074
:080D38000301939F80112003C9
:080D40000193DF001220030102
:080D4800931F811220030193A7
:080D50005F0113200301939FD2
:080D5800811320030193DF0168
:080D600014200301931F82140B
:080D6800200301935F02152036
:080D70000301939F821520038B
:080D78000193DF0216200301C4
:080D8000931F83162003019369
:080D88005F0317200301939F94
:080D9000831720030193DF0328
:080D980018200301931F8418C9
:080DA000200301935F041920F8
:080DA8000301939F841920034D
:080DB0000193DF041A20030186
:080DB800931F851A200301932B
:080DC0005F051B200301939F56
:080DC800851B20030193DF05E8
:080DD0001C200301931F861C87
:080DD800200301935F061D20BA
:080DE0000301939F861D20030F
:080DE8000193DF061E20050146
:080DF0009E5F08192005019E19
:080DF8009F88192005019EDF10
:080E0000081A2005019E1F895C
:080E08001A2005019E5F091B81
:080E10002005019E9F891B20B3
:080E180005019EDF091C200505
:080E2000019E5F0A1D2005017F
:080E28009E9F8A1D2005019E1A
:080E3000DF0A1E2005019E1FD0
:080E38008B1E2005019E5F0BDB
:080E40001F2005019E9F8B1F7E
:080E48002006019EDF0B0020D3
:080E500005019E5F041120055D
:080E5800019E9F841120050199
:080E60009EDF04122005019E33
:080E68001F85122005019E5FA9
:080E700005132005019E9F857A
:080E7800132005019EDF0514A3
:080E80002005019E1F861420CD
:080E880005019E5F061520051F
:080E9000019E9F86152005015B
:080E98009EDF06162005019EF5
:080EA0005F07172005019E9F6A
:080EA80087172006019E1F8C34
:080EB000004016C000016F1B99
:080EB8008E01A98009019DEEE5
:080EC000FF01A94008019DE9B2
:080EC800FF5000D0FF00019D66
:080ED0002500300010019D2DEA
:080ED80000016F8100300F0CD6
:080EE00001924080BE01471B96
:080EE800F801939B06C0019E76
:080EF0001B8CC1019E9B86C012
:080EF800019E5B04C15012FCD5
:080F0000FF00019DDABD01A70D
:080F08009B0601471BFE014D91
:080F1000DB06030193DB02C0C4
:080F180001931B83C001935BF0
:080F200003C101939B83C10191
:080F280093DB03C201931B845B
:080F3000C2014DDB8600019EA9
:080F38001B06C040C0270101A7
:080F40006F0C022008016F0D87
:080F48002240F00A01016F0EC6
:080F5000202008016F0F08408A
:080F5800C01701016F100050E9
:080F60004AFCFF00019DD8923C
:080F680001A201AE07FC0147E4
:080F70001BFC016F83020193D9
:080F7800DB80C040F00A01011A
:080F80006F031A0193DB00C0AE
:080F880001A201007EFC01A79B
:080F9000C10001000302313F22
:080F980001A08101A7C10001C5
:080FA000A7C302200801860B23
:080FA8000128200801868B815D
:080FB0002720080186CB012770
:080FB8000140C6511401404440
:080FC000311020080193CB0061
:080FC8002820080180CBC0269F
:080FD000012103001230D801D9
:080FD8006F030120080190CB1A
:080FE000D0260182CC002001A3
:080FE80022030027308501827D
:080FF000CC0020012203402681
:080FF800307901824C01200157
:0810000058054340014004348F
:081008001001B6CF30200123D6
:08101000030035301C01471BF1
:08101800FE01A2016D51FC0173
:08102000A7C1000193DB00C031
:0810280001A201A04AFC013005
:081030003F01824C0120015830
:0810380005434001400434109F
:0810400001820C022001580896
:08104800734001400764100130
:08105000B68F61200186CE017C
:08105800200140C65114014DB6
:0810600005110001C3CF40207F
:0810680001930E00200130038A
:08107000013F6F20080180CB55
:08107800C02601228300243090
:081080001901471BFE01A2014A
:081088002008FC01A7C10001D2
:0810900093DB00C001A2016125
:081098004AFC01A08101A7C17F
:0810A00000016F0402200801A9
:0810A8009003D12601300E0176
:0810B00086CE00200147430039
:0810B8000193CE002001471B4B
:0810C000FE40F00A01016F037C
:0810C8001A0193DB00C001A234
:0810D00001707EFC01300E01ED
:0810D80086CE00200147430011
:0810E0000193CE002001A08164
:0810E80001A7C10001A7C3022A
:0810F00001B6CD32200100031E
:0810F80002303820050186CB0F
:08110000003620050193CB002D
:081108003120050186CB003601
:0811100020050193CB0037011B
:08111800B6CD32202003019343
:08112000CB003101C3CD022018
:08112800016F0306200301938F
:08113000CB8031018E1B06C0CB
:0811380001471B0201861B8424
:08114000C20186DB03C2018637
:081148009B83C101865B03C11A
:0811500001861B83C00186DB50
:0811580002C001A7DA060186BE
:081160009B06C0018E9B86C0B6
:08116800018E5B04C1018E1B26
:081170008CC1200301865F0021
:0811780011200301869F801184
:0811800020030186DF001220AC
:081188000301861F8112200300
:0811900001865F011320030139
:08119800869F811320030186EC
:0811A000DF0114200301861F8A
:0811A8008214200301865F029E
:0811B00015200301869F821542
:0811B80020030186DF0216206E
:0811C0000301861F83162003C2
:0811C80001865F0317200301FB
:0811D000869F831720030186AE
:0811D800DF0318200301861F4C
:0811E0008418200301865F045E
:0811E80019200301869F841900
:0811F00020030186DF041A2030
:0811F8000301861F851A200384
:0812000001865F051B200301BC
:08120800869F851B200301866F
:08121000DF051C200301861F0D
:08121800861C200301865F061D
:081220001D200301869F861DBD
:0812280020030186DF061E20F1
:0812300005018E5F081920057D
:08123800018E9F8819200501B9
:081240008EDF081A2005018E63
:081248001F891A2005018E5FC9
:08125000091B2005018E9F8996
:081258001B2005018EDF091CBB
:081260002005018E5F0A1D202C
:0812680005018E9F8A1D20057F
:08127000018EDF0A1E200501BA
:081278008E1F8B1E2005018E64
:081280005F0B1F2005018E9F8A
:081288008B1F2006018EDF0B15
:08129000002005018E5F04112E
:081298002005018E9F84112046
:0812A00005018EDF0412200598
:0812A800018E1F8512200501D3
:0812B0008E5F05132005018E7D
:0812B8009F85132005018EDF64
:0812C00005142005018E1F86B4
:0812C800142005018E5F0615DC
:0812D0002005018E9F86152008
:0812D80005018EDF061620055A
:0812E000018E5F0717200501D4
:0812E8008E9F87172006018E7E
:0812F0001F8C0001F701F4015D
:0812F8008E5A84C0019E5A04C5
:08130000C1013E2F01F720039B
:0813080001935F0011200301B5
:08131000939F8011200301935B
:08131800DF0012200301931F06
:081320008112200301935F011B
:0813280013200301939F8113C0
:0813300020030193DF011420EA
:081338000301931F821420033E
:0813400001935F021520030177
:08134800939F8215200301931D
:08135000DF0216200301931FC8
:081358008316200301935F03DB
:0813600017200301939F83177E
:0813680020030193DF031820AC
:081370000301931F8418200300
:0813780001935F041920030139
:08138000939F841920030193DF
:08138800DF041A200301931F8A
:08139000851A200301935F059B
:081398001B200301939F851B3C
:0813A00020030193DF051C206E
:0813A8000301931F861C2003C2
:0813B00001935F061D200301FB
:0813B800939F861D20030193A1
:0813C000DF061E2005019E5FFF
:0813C80008192005019E9F8811
:0813D000192005019EDF081A37
:0813D8002005019E1F891A2067
:0813E00005019E5F091B2005B9
:0813E800019E9F891B200501F5
:0813F0009EDF091C2005019E8F
:0813F8005F0A1D2005019E9F04
:081400008A1D2005019EDF0A90
:081408001E2005019E1F8B1E32
:081410002005019E5F0B1F2067
:0814180005019E9F8B1F2006B9
:08142000019EDF0B0020050115
:081428009E5F04112005019EE6
:081430009F84112005019EDFDD
:0814380004122005019E1F852E
:08144000122005019E5F051357
:081448002005019E9F85132081
:0814500005019EDF05142005D3
:08145800019E1F86142005010E
:081460009E5F06152005019EA8
:081468009F86152005019EDF9F
:0814700006162005019E5F072E
:08147800172005019E9F871754
:081480002006019E1F8C0040B4
:0814880016C000016F1B8E016C
:08149000A98009019DEEFF0196
:08149800A94008019DE9FF5085
:0814A00000D0FF00019D2500B2
:0814A800300010019D2D000130
:0814B0006F8100300F0C019266
:0814B8004080BE01471BF80152
:0814C000939B06C0019E1B8CEA
:0814C800C1019E9B86C0019E3C
:0814D0005B04C15017FCFF0092
:0814D800019D9AD801A79B06B3
:0814E00001471BFE014DDB0674
:0814E800010193DB02C0019336
:0814F0001B83C02008016F0CF2
:0814F8002220050186CB80379C
:081500000147030120050193DE
:08150800CB803701A2014B4A20
:08151000FC01A7C10001A7C303
:0815180002200801860B0128E6
:08152000200801868B812720C1
:08152800080186CB01270140F8
:08153000C651140140443110C2
:0815380020080193CB002801FB
:081540006F030820080190CBA5
:08154800D02601471BFE01A2A1
:08155000012008FC01A7C10005
:081558000193DB00C001A201B8
:08156000614AFC01A2014B4AA3
:08156800FC01A7C10001A7C3AB
:0815700002016F0302200801D3
:0815780090CBD02601B6CC3265
:081580002001000302303420B9
:08158800020186CB8025200240
:081590000193CB802020020131
:0815980086CB8025200201939F
:0815A000CB802601B6CC3220FD
:0815A8000193CB802001C3CCAC
:0815B0000220016F0306019304
:0815B800CB002101861B83C05A
:0815C0000186DB02C001A7DA7D
:0815C8000601869B06C0018E9E
:0815D0009B86C0018E5B04C183
:0815D800018E1B8CC1200301F0
:0815E000865F00112003018663
:0815E8009F801120030186DF42
:0815F0000012200301861F8197
:0815F80012200301865F0113BC
:08160000200301869F811320E5
:08160800030186DF0114200339
:0816100001861F821420030172
:08161800865F02152003018624
:081620009F821520030186DF03
:081628000216200301861F8356
:0816300016200301865F031779
:08163800200301869F831720A7
:08164000030186DF03182003FB
:0816480001861F841820030134
:08165000865F041920030186E6
:081658009F841920030186DFC5
:08166000041A200301861F8516
:081668001A200301865F051B37
:08167000200301869F851B2069
:08167800030186DF051C2003BD
:0816800001861F861C200301F6
:08168800865F061D20030186A8
:081690009F861D20030186DF87
:08169800061E2005018E5F080B
:0816A000192005018E9F881935
:0816A8002005018EDF081A2065
:0816B00005018E1F891A2005B7
:0816B800018E5F091B200501F2
:0816C0008E9F891B2005018E9D
:0816C800DF091C2005018E5F03
:0816D0000A1D2005018E9F8A0E
:0816D8001D2005018EDF0A1E32
:0816E0002005018E1F8B1E2066
:0816E80005018E5F0B1F2005B8
:0816F000018E9F8B1F200601F3
:0816F8008EDF0B002005018EBE
:081700005F04112005018E9F1A
:0817080084112005018EDF04AD
:08171000122005018E1F851255
:081718002005018E5F0513207E
:0817200005018E9F85132005D1
:08172800018EDF05142005010C
:081730008E1F86142005018EB6
:081738005F06152005018E9FDC
:0817400086152005018EDF066D
:08174800162005018E5F071752
:081750002005018E9F87172080
:0817580006018E1F8C0001F751
:0817600001F4018E5A84C0015E
:081768009E5A04C1013E4C0130
:08177000471BF801939B06C022
:08177800019E1B8CC1019E9B28
:0817800086C0019E5B04C1500C
:0817880017FCFF00019D9AF41B
:0817900001A79B0601471BFCA9
:08179800016F03150193DB80D2
:0817A000C00186DA00C20193CA
:0817A800DB00C001A201209347
:0817B000FC013FFD01A7DA0670
:0817B80001869B06C0018E9B17
:0817C00086C0018E5B04C1012B
:0817C8008E1B8CC101471B08B8
:0817D00001F2018E5A84C001F0
:0817D8009E5A04C1013FD50037
:0817E00001471BF801939B0671
:0817E800C0019E1B8CC1019E93
:0817F0009B86C0019E5B04C151
:0817F8005019FCFF00019D9A4D
:081800004101A79B0601471BF3
:08180800FC5000D0FF00016F4D
:0818100003000193DA00DF5030
:0818180018FCFF00019D9A1C61
:081820000186DA80DF01474375
:08182800000193DA80DF01A248
:081830000140A5FC01A7C10065
:08183800012003000330300120
:08184000471BFC0186DA80DF82
:081848000193DB80C0016F0574
:0818500001014E05110501869E
:081858005A01DF014044311088
:081860000193DB00C001A201AD
:08186800D0A5FC01471B04019F
:08187000306A0120420603303A
:0818780053400F0001019340F1
:081880000037400F0001018652
:0818880000013750FFFFFF00D3
:08189000016FC5FF20020127D2
:08189800C580736F4500726FFB
:0818A000050001504431000174
:0818A800000302301F01471B81
:0818B000FE50E0FCFF00016F97
:0818B800031C0193DB00C001D9
:0818C000A201FF94FC01471B8B
:0818C80002013010400F000185
:0818D0000186400037016F4260
:0818D8000601302A5019FCFF43
:0818E00000019D9A41013F2F18
:0818E80001A7DA0601869B0648
:0818F000C0018E9B86C0018E31
:0818F8005B04C1018E1B8CC1D1
:0819000001471B0801F2018EF2
:081908005A84C0019E5A04C17B
:08191000013FD50000000000BA
:081918000000000000000000C7
:0819200001471BF801939B062F
:08192800C0019E1B8CC1019E51
:081930009B86C0019E5B04C10F
:08193800501BFCFF00019D5A49
:08194000DE01A79B0601471B15
:08194800FA014DDB06030193D7
:08195000DB02C001931B83C000
:0819580001935B03C101939BA5
:0819600083C10193DB03C20106
:08196800931B84C22006016FED
:081970000DAD2008016F0F18F6
:0819780040C01701016F1000CF
:0819800001A84C0001861A03C6
:08198800C201471BFC016FC303
:08199000FF0193DB80C040F071
:081998000A01016F031A01931B
:0819A000DB00C001A201007E82
:0819A800FC01A7C100010003CE
:0819B00002318A01471BFE0110
:0819B800931B03C001A2019F73
:0819C0004CFC01471BFE0193E2
:0819C8001B03C001A2012E5017
:0819D000FC016F0B0001210B6B
:0819D8000116309201584B305A
:0819E0004001580C6340014076
:0819E8000654100140C5431034
:0819F00001B2C4302001220302
:0819F8000027306B01584B3051
:081A00004001580C6340014055
:081A08000654100140C5431013
:081A100001B2C43020200401E2
:081A18002203002630490147BA
:081A20001BFE01584B40400180
:081A2800580C63400140065414
:081A300010014044311001B225
:081A3800C333200193DB00C061
:081A400001A2012D36FC014753
:081A48001B0201584B40400154
:081A5000580C634001400654EC
:081A5800100140443110016F40
:081A6000C4FF01C1C3432001D2
:081A6800474B00013F670158E4
:081A70000C6340014006541014
:081A78002008018045F1260160
:081A8000A745810158C5424051
:081A88004018C000014CC4002D
:081A90008001A78303016F0B25
:081A98000001210B02163030A1
:081AA00001584B304001404E9B
:081AA800431001B2C43020011B
:081AB000120303233013015857
:081AB8004B4040014084331053
:081AC000016FC4FF01C14343A3
:081AC8002001474B00013FC95A
:081AD000016F0B0001210B0264
:081AD80016301D01584B30408F
:081AE00001404E431001B2C4A5
:081AE80030200122C3FF23306E
:081AF0000701474B00013FDC38
:081AF80001210B02133027400D
:081B0000F00A010180C0002180
:081B080020060190CE402C40A4
:081B100018C000014D0E018018
:081B18000158C4324C40F00AF0
:081B2000010190C00021014702
:081B28001BFE40F00A01016FF1
:081B3000031A0193DB00C00160
:081B3800A201707EFC01861B76
:081B400084C20186DB03C2012F
:081B4800869B83C101865B034B
:081B5000C101861B83C0018660
:081B5800DB02C001A7DA06015F
:081B6000869B06C0018E9B86E6
:081B6800C0018E5B04C1018E77
:081B70001B8CC101471B080199
:081B7800F2018E5A84C0019EA7
:081B80005A04C1013FB70147FF
:081B88001BF8019E1B8CC1013A
:081B90009E9B86C0019E5B04D0
:081B9800C1501BFCFF00019D80
:081BA0009AF701A84C0001476F
:081BA8001BFE01A201514AFCE1
:081BB00001A7C1000193DB0055
:081BB800C001A101000001477A
:081BC0001B0201A6CE02013F49
:081BC800FD018E9B86C0018E19
:081BD0005B04C1018E1B8CC1F6
:081BD80001471B0801F2018E18
:081BE0005A84C0019E5A04C1A1
:081BE800013FDE0000000000D7
:081BF00001471BF801939B065D
:081BF800C0019E1B8CC1019E7F
:081C00009B86C0019E5B04C13C
:081C08005020FCFF00019D1AB1
:081C10000301A79B0601471B1D
:081C1800FA501FFCFF00019DC2
:081C2000DAE6016F81103006C5
:081C28000C01914000A001A88D
:081C30004C00016F010F3006AA
:081C38000C01914000A00147DE
:081C40001BFC016F440001A729
:081C4800C4100193DB80C040D1
:081C5000F00A01016F031A0103
:081C580093DB00C001A20100B2
:081C60007EFC01A7C100010098
:081C68000302304E40C02701C9
:081C70000182C000200191DA9D
:081C7800E0DF01825AE1DF0107
:081C8000A745912010014E055B
:081C8800010040C01701014CEE
:081C9000C400002008018203DA
:081C9800012040C02701019169
:081CA00000012001471BFE407A
:081CA800F00A01016F031A01AB
:081CB00093DB00C001A20170EA
:081CB8007EFC016F410F3006B4
:081CC0000C01914000A001821B
:081CC8005AE1DF01A74591205C
:081CD00010014E05010040C0A7
:081CD8001701014CC4000001DA
:081CE00093DA00DF0186DA004F
:081CE800DF01861A81C2200809
:081CF000019003E1260186DAF0
:081CF80000DF01861A01C22081
:081D000008019003C1260186D1
:081D0800DA00DF01801A01C4BA
:081D10002008019003F12601F7
:081D1800931A80DE0186DA80D7
:081D2000DE0120030206307A07
:081D280001861A81DE014EC4A0
:081D300020000180DA01C4016A
:081D3800A7C7812008014E87B6
:081D400001804018C000014CB5
:081D4800460180014C05416BCE
:081D500001B2C430200121039F
:081D58000016303501861A81E6
:081D6000DE014EC420000180E9
:081D6800DA01C401A7C78120C4
:081D700008014E8701804018B4
:081D7800C000014C460180018E
:081D80004C05416B01825AE1A0
:081D8800DF01C1C4502001304D
:081D9000110186DA80DE014733
:081D980043000193DA80DE0133
:081DA0003F7A016F810F30064C
:081DA8000C01914000A001862E
:081DB000DA80DE0120030203CA
:081DB800308301471BFC016FA1
:081DC000440001A7C4100193C7
:081DC800DB80C040F00A0101BC
:081DD0006F031A0193DB00C050
:081DD80001A201007EFC01A73D
:081DE000C10001010312304EA5
:081DE80001825AE1DF01A74569
:081DF000912010014E050100D5
:081DF80040C01701014CC400BA
:081E00000040C027010182002F
:081E08000120200801910301F3
:081E1000200182DAE0DF40C08E
:081E180027010191C000200127
:081E2000471BFE40F00A01011E
:081E28006F031A0193DB00C0F7
:081E300001A201707EFC016FAC
:081E380041110131B1016FC13C
:081E40000F30060C0191400077
:081E4800A0016F0402014EC469
:081E5000100001865A01DF01B8
:081E58004C05813001865A811E
:081E6000C301C3C45020016F4F
:081E68000402014EC410000148
:081E7000865A01DF014C0581D7
:081E780050501BFCFF00016F3C
:081E800085E101C3C4502001FB
:081E88006F0402014EC4B00119
:081E900001865A01DF014C0537
:081E9800813001869A01DF2070
:081EA000080186868121016F13
:081EA8000802014AC8F13F01E4
:081EB00040C6511001C3C450EB
:081EB80020016F0402014EC479
:081EC000D00001865A01DF0188
:081EC8004C05815001865A010E
:081ED000C301C3C45020016FDF
:081ED8000402014EC4E0000108
:081EE000865A01DF014C058167
:081EE8005001865A01C301C339
:081EF000C450200186DA00DF76
:081EF8002008019303002701FB
:081F000086DA00DF20080193DE
:081F08000380270186DA00DFE7
:081F10002008019303002801E1
:081F180086DA00DF20080193C6
:081F2000038028016F0110305D
:081F2800060C01914000A0012C
:081F3000471BFC016F44000196
:081F3800A7C4100193DB80C077
:081F400040F00A01016F031AD1
:081F48000193DB00C001A201BE
:081F5000007EFC01A7C10001A5
:081F5800000302302F01471BBA
:081F6000FE0182DAE0DF01A7B7
:081F6800C3900193DB00C001EE
:081F7000A201A04AFC01471B7D
:081F7800FE40F00A01016F03B5
:081F80001A0193DB00C001A26D
:081F880001707EFC016F4110A5
:081F900030060C01914000A095
:081F98000130460120020103A3
:081FA000303F400F00010193E6
:081FA800400038016FC1103048
:081FB000060C01914000A001A4
:081FB800471BFC400F00010172
:081FC00086C000380193DB80AC
:081FC800C050E0FCFF00016FB6
:081FD00003110193DB00C001C5
:081FD800A201FF94FC01471B6C
:081FE000045020FCFF00019DEC
:081FE8001A03016F010001A7BB
:081FF000DA0601869B06C00120
:081FF8008E9B86C0018E5B0484
:08200000C1018E1B8CC10147D8
:082008001B0801F2018E5A844D
:08201000C0019E5A04C1013F0A
:08201800D501471BF801939B61
:0820200006C0019E1B8CC101EA
:082028009E9B86C0019E5B0433
:08203000C15020FCFF00019DDE
:082038009A3D01A79B06014738
:082040001BFE014DDB860001CF
:0820480093DB02C001A84C006B
:0820500001471BFC016FC3FFF7
:082058000193DB80C040F00A97
:0820600001016F031A0193DB7B
:0820680000C001A201007EFC92
:0820700001A7C10001000302F9
:08207800305101A201514AFCA4
:0820800001A7C10001A7C390F4
:0820880001A7C30201471BFE82
:082090000193DB02C001A20173
:082098009F4CFC01471BFC01F9
:0820A00086DA00C20193DB8027
:0820A800C00193DB02C001A29C
:0820B000015E4EFC01471BFE1E
:0820B80040F00A01016F031A58
:0820C0000193DB00C001A20145
:0820C800707EFC01A6CE0201AE
:0820D0006F01000186DB02C074
:0820D80001A7DA0601869B0650
:0820E000C0018E9B86C0018E39
:0820E8005B04C1018E1B8CC1D9
:0820F00001471B0801F2018EFB
:0820F8005A84C0019E5A04C184
:08210000013FD001471BF8016B
:08210800939B06C0019E1B8C95
:08211000C1019E9B86C0019EE7
:082118005B04C15022FCFF0032
:08212000019D1A8D01A79B0629
:0821280001471BFE014DDB869F
:08213000010193DB02C00193E1
:082138001B83C001935B03C18E
:082140000186DA80C201A70349
:08214800030182DA00C201A7C5
:08215000C39001A7430301A89D
:082158004C000120CC0F053002
:082160000701200C0006300706
:08216800016F410101309801F3
:08217000471BFC016FC3FF01D6
:0821780093DB80C040F00A0176
:08218000016F031A0193DB005B
:08218800C001A201007EFC0170
:08219000A7C1000100030230A9
:082198006A01580D434040C0EC
:0821A0001701014CC40000010D
:0821A800A7C302200801800B0F
:0821B000D1260153C480010196
:0821B800010312302801471B4E
:0821C000FE01935B03C001A2C4
:0821C800019F4CFC200801906E
:0821D0000BC32601471BFE01B1
:0821D800935B03C001A201A00A
:0821E0004AFC01300720080150
:0821E800900BC32601471BFE0A
:0821F00040F00A01016F031A1F
:0821F8000193DB00C001A2010C
:08220000707EFC016F0100017A
:08220800865B03C101861B8304
:08221000C00186DB02C001A73A
:08221800DA0601869B06C001F5
:082220008E9B86C0018E5B0459
:08222800C1018E1B8CC10147AE
:082230001B0801F2018E5A8423
:08223800C0019E5A04C1013FE0
:08224000C600000000000000D0
:0822480000000000000000008E
:0822500001471BF801939B06F6
:08225800C0019E1B8CC1019E18
:082260009B86C0019E5B04C1D6
:08226800502EFCFF00019DDA7D
:082270008701A79B0601471B33
:08227800FC01A84C00502DFCF4
:08228000FF00019D5A740147A3
:082288001BFE016F0305019329
:08229000DB00C001A201000700
:08229800FC01471B02016F036A
:0822A0000001A7C3D040F00AC1
:0822A800010191C0802740F004
:0822B0000A010193000028015E
:0822B8006F0402014EC4000096
:0822C00040F00A010193030044
:0822C80023016F030040F00A3E
:0822D000010193C0802240F0DF
:0822D8000A0101930000250139
:0822E000471BFE016F03000122
:0822E80093DB00C001A20161BB
:0822F0004AFC2010016F0500FB
:0822F800014E05010040C01772
:0823000001014CC4000020089B
:08230800019003F02601471BC0
:08231000FE40F00A01016F0319
:082318001A0193DB00C001A2D1
:0823200001707EFC01471BFE69
:0823280040F00A01016F0318E7
:082330000193DB00C001A201D2
:08233800707EFC01471BFE4012
:08234000460001016F03960144
:0823480093DB00C001A201704B
:082350007EFC01931A80DF01FD
:0823580086DA80DF204001203D
:08236000030006303701865A24
:0823680081DF014E0501024076
:08237000F00201014CC4000061
:0823780001865A81DF014C05CA
:08238000110001A704D1019135
:082388000301200186DA80DF69
:08239000014743000193DA80CC
:08239800DF013FBB2040016F93
:0823A0000600014D4611000189
:0823A8004E05010240F00201A4
:0823B000014CC40000016F455F
:0823B8000001A7051101A704B3
:0823C000D1019103012040F05E
:0823C8000A01019100802101CE
:0823D000471BFE016F830701AA
:0823D80093DB00C001A201002B
:0823E00007FC01471B020193F9
:0823E8001A80DF0186DA80DFB4
:0823F0000120C30C06335E015D
:0823F800865A81DF2008014E26
:082400000501804018C0000135
:082408004CC4008001861A811A
:08241000DF2006019003212BDF
:0824180001931A00DF0186DACE
:0824200000DF01210302163068
:082428004201861A01DF014E9A
:08243000C420000186DA81DFFF
:082438002008014E87018040DD
:0824400018C000014C460180A8
:08244800014C05416B016F46D8
:082450000001A7461101C1C4FF
:0824580050200186DA00DF01CB
:082460004743000193DA00DF9D
:08246800013FB20186DA80DFBA
:08247000012103001330E80113
:08247800865A81DF2008014EA5
:082480000501804018C00001B5
:082488004CC400805000D0FF9D
:0824900000016F0400200601A9
:082498009303012501865A811E
:0824A000DF2008014E05018058
:0824A8004018C000014CC40003
:0824B0008040F00A01016F05F4
:0824B8002201861A82DF204098
:0824C000014EC80100016F0983
:0824C80001014E090200014070
:0824D000076210014085411074
:0824D800200601930381250198
:0824E000865A81DF2008014E3D
:0824E8000501804018C000014D
:0824F0004CC4008040FC07060B
:0824F800016F040001A704E1DB
:0825000020060192038126016F
:08250800471BFE016FC3070130
:0825100093DB00C001A20100F1
:0825180007FC01471B0201470B
:082520001BFE2008016F0500FD
:08252800014E0501004018C03E
:0825300000014CC4008001937E
:08253800DB00C001A2012A58DA
:08254000FC01471B0201471BCF
:08254800FE016F83080193DB23
:0825500000C001A2010007FC1C
:0825580001471B020130AE0136
:08256000865A81DF2008014EBC
:082568000501804018C00001CC
:082570004CC4008040F00A0198
:08257800016F052201861A82A1
:08258000DF2040014EC80100FC
:08258800016F0901014E090277
:08259000000140076210014048
:082598008541102006019303A8
:0825A000012501865A81DF20AC
:0825A80008014E0501804018F6
:0825B000C000014CC400804092
:0825B800F00A01016F05220188
:0825C000861A82DF2040014E63
:0825C800C80100016F090101C7
:0825D0004E0902000140076200
:0825D8001001408541102006AE
:0825E000019303812501865AD5
:0825E80081DF2008014E05010E
:0825F000804018C000014CC43A
:0825F800008040FC0706016FA2
:08260000040001A704E120061B
:08260800019203812601471B2A
:08261000FE016FC3080193DB1A
:0826180000C001A2010007FC53
:0826200001471B0201865A81EB
:08262800DF2008014E050180CE
:082630004018C000014CC40079
:0826380080016FC40701A70433
:08264000D120060191030126DF
:0826480001865A81DF20080120
:082650004E0501804018C00096
:08265800014CC40080016F0475
:082660001501A704D1200601B9
:082668009103212601865A812D
:08267000DF2008014E05018086
:082678004018C000014CC40031
:0826800080016F040001A704B2
:08268800D12006019103412657
:0826900001865A81DF200801D8
:082698004E0501804018C0004E
:0826A000014CC40080016F042D
:0826A8000001A704D120060186
:0826B0009103612601865A81A5
:0826B800DF2008014E0501803E
:0826C0004018C000014CC400E9
:0826C800802006019003F026BA
:0826D00001865A81DF20080198
:0826D8004E0501804018C0000E
:0826E000014CC400802006013A
:0826E8009003002701865A81CE
:0826F000DF2008014E05018006
:0826F8004018C000014CC400B1
:08270000802006019003C026B1
:08035800016A4020FD01A2F141
:08036000BAA700016F4103017F
:08036800A2F1ACAA00016F81B3
:080370000201A2F1A2AA0001A2
:080378006F010901A2F198AA2E
:080380000001A2F1ADA400018F
:08038800A1F1647901A2F187E3
:08039000AA0001204103033F14
:08039800EE01A2F1D2A4004025
:0803A00000C000018340202C85
:0803A8004000C0000183C08188
:0803B0002D01A9C70C0140C199
:0803B800A11801400AA0240174
:0803C000A1F18E0001200109EA
:0803C800023FF40120011902BB
:0803D000A2F131C000023F8BD5
:0803D8000120C11902A1F1A0EE
:0803E00000023F7F0120011D16
:0803E80002A1F13A000220011C
:0803F0001E02A1F1C100023F51
:0803F8006A0110C1FF02A1F12E
:080400005901023F5E0120C119
:080408001802A2F15CA300023E
:08041000A7400002A7800002D2
:080418006F860002A5CD0A0168
:080420003F4101471FFE019E50
:080428005F040001854A00A0F9
:08043000015341F03F01A2F16C
:08043800B7A60001470A01010B
:08044000A400018E5F0400011D
:08044800471F0201F201471FEA
:08045000FE019E5F040001851E
:080458004A00A0015341F03FEE
:0804600001A2F18CA600014786
:080468000A010120010808A4AB
:08047000E5018E5F0400014765
:080478001F0201F24000C00068
:080480000185C0C02C016F01D1
:08048800014000C00001914099
:08049000602D01924340A00120
:080498006F013C019243C0A07A
:0804A00001A7400001A7800044
:0804A800016F860001A5CD0AD9
:0804B00001F24000C0000185CB
:0804B800C0C02C016FC1074018
:0804C00000C000019140602D15
:0804C80001924340A0016F41C5
:0804D00004019243C0A001A742
:0804D800400001A78000016F44
:0804E000860001A5CD0A01F21E
:0804E80001471FFE01939F0074
:0804F000004000C0000185403E
:0804F8004021309000014E810B
:080500009006015801144C01A2
:08050800404220104000C00039
:0805100001928040214000C06F
:0805180000018540002120468E
:08052000014E81006501580144
:08052800144C01404220104078
:0805300000C0000192800021CF
:080538004000C00001854040B5
:080540002101580114400140A3
:0805480081101001869F0000E4
:0805500001471F0201F20147FF
:080558001FFE019E5F0400017B
:08056000A7000101A1F185FFD4
:0805680030A002015F810000D8
:080570005000A0FF00016B82A6
:08057800000001A1F16EFF205B
:0805800010015FC100000191B0
:08058800C200000147440020FD
:080590000F015304F1FF01010A
:0805980004133FC701A2F18C1E
:0805A000B800010101173FAE94
:0805A800018E5F040001471FF2
:0805B0000201F254686F722091
:0805B80054657374205379733C
:0805C00074656D205374617233
:0805C80074696E672E2E2E0DE2
:0805D0000A000D0A6420202D31
:0805D8002072756E206465625B
:0805E00075676765720D0A677B
:0805E80020202D2067726170D4
:0805F00068696373206D6F64FC
:0805F800650D0A7478202D2026
:0806000074657874206D6F64CD
:08060800650D0A7220202D206F
:0806100072616E646F6D2064DD
:080618006F74730D0A00016FFD
:08062000811001A2F184A40085
:0806280040FC070601544100EB
:08063000C001924000A1013F4E
:08063800FD01471BFE019E5B62
:0806400004C0016F4510016FB9
:080648000300019D730601A7E8
:08065000450001A2F154A400D1
:080658004000C0000185808014
:080660002C01508110040192ED
:080668004300A0014745000119
:0806700047030101A4D8018E2B
:080678005B04C001471B0201F5
:08068000F201A8DC000140C2F8
:08068800202C0181C1300001AA
:080690005803324001814121B1
:08069800000150433104015838
:0806A000033240018141110009
:0806A800015043310401580325
:0806B00032400181410100010B
:0806B80050433104306F3F0193
:0806C0002043C002588254409F
:0806C80002504331040192C20B
:0806D00000000181C17000016E
:0806D800580332400181416129
:0806E0000001504331040158F0
:0806E800033240018141510081
:0806F0000150433104015803DD
:0806F800324001814141000183
:08070000504331040192C24094
:08070800000181C1B00001589D
:08071000033240018141A10008
:080718000150433104015803B4
:0807200032400181419100010A
:08072800504331040158033273
:080730004001814181000150EC
:080738004331040192C280006C
:080740000181C1F00001580322
:080748003240018141E1000192
:0807500050433104015803324B
:0807580040018141D100015074
:0807600043310401580332404B
:08076800018141C10001504371
:0807700031040192C2C0000136
:08077800F20000000000000087
:080780001023FCFFB01CFCFF7C
:08078800461CFCFFE019FCFF18
:08079000C321FCFFD920FCFF8E
:080798004C35FCFFFD36FCFFAF
:0807A000ED3EFCFF2E3BFCFFC7
:0807A800BA42FCFF5A48FCFFB5
:0807B00001A200FA0AFC01A2FB
:0807B80000C413FC01A200EED5
:0807C0000DFC01A200A070FC79
:0807C80001471BF801939B0699
:0807D000C0019E1B8CC101A7B2
:0807D8009B06016F01083006C9
:0807E0000C01914000A001A7EB
:0807E800DA0601869B06C00140
:0807F0008E1B8CC101471B08A0
:0807F80001F201471BF8019317
:080800009B06C0019E1B8CC188
:08080800019E9B86C0019E5B6E
:0808100004C15008FCFF0001C7
:080818009DDA1801A79B0601FF
:08082000471BFC0186DA00C24F
:080828000193DB80C05000DCED
:08083000FF00016F032001939A
:08083800DB00C001A201F0A6E3
:08084000FC01471B0401A7DACB
:080848000601869B06C0018E2B
:080850009B86C0018E5B04C110
:08085800018E1B8CC101471B3E
:080860000801F2018E5A84C068
:08086800019E5A04C1013FD5B5
:0808700001A84C0001F2200177
:0808780001844080B4014741F6
:0808800000200101924080B448
:0808880001471BF8019E1B8CC7
:08089000C101471BFC01931B91
:0808980001C001935B81C00166
:0808A000581F534040C017012E
:0808A800014705002008018151
:0808B00045F1260158C5424044
:0808B8004018C000014C44008F
:0808C0008001861B01C00186C6
:0808C8005B81C001471B040124
:0808D0008E1B8CC101471B08BF
:0808D80001F200000000000025
:0808E00001471BF801939B0680
:0808E800C0019E1B8CC1019EA2
:0808F0009B86C0019E5B04C160
:0808F800500AFCFF00019D5AAB
:08090000BB01A79B0601471B88
:08090800F4014DDB86030193AD
:08091000DB02C001931B83C050
:0809180001935B03C101939BF5
:0809200083C10193DB03C20156
:08092800931B84C201935B04E0
:08093000C340C01701016F0F65
:0809380000400F00010180C026
:08094000003601474300400F9F
:0809480000010190C0003640DF
:080950000F00010180C0003618
:080958000153C3F001400F0040
:08096000010190C00036400FB8
:0809680000010180C00036010E
:08097000A7C38050F0FCFF005A
:080978000180C3002001A7C3A8
:080980008001A7030301530CE1
:080988007300016F1100012052
:08099000110206310601584C6A
:08099800304040C0270101823C
:0809A000C3002101A74303017C
:0809A800210D001730DD0121D3
:0809B0000D401630D601580D70
:0809B80043400140C43310016B
:0809C000A70304016F0E000102
:0809C800A201214BFC01A7C1B3
:0809D0000001A7C3900112CD44
:0809D8000023A7D00223301513
:0809E0002008018250012001F2
:0809E800580543400140C433EF
:0809F0001001A7C30220080159
:0809F800800BD1260153C480DD
:080A000000010303333058200C
:080A0800080180CBE02601A7E4
:080A1000C380014DDB860001EB
:080A180093DB00C001A20160A4
:080A2000A6FC0186DB00C00109
:080A2800471B0201A7010101B7
:080A30001403014330290158B1
:080A38004C30400140CB531487
:080A4000015805434C40C0279A
:080A48000101910301210140AD
:080A5000CB4314015804334CA0
:080A580001A7430001304D200D
:080A60000801824B012001583E
:080A68000543400140C43310B6
:080A700001A7C302014CCE10E6
:080A78000001A7830301120B2A
:080A80000422300701220E40A0
:080A8800273F6A01474C000101
:080A9000530C730001475100F3
:080A9800013EF301A201214B14
:080AA000FC01A7C10001A743FE
:080AA8000001300001865B042F
:080AB000C301861B84C201860C
:080AB800DB03C201869B83C130
:080AC00001865B03C101861BE6
:080AC80083C00186DB02C001BE
:080AD000A7DA0601869B06C0AF
:080AD800018E9B86C0018E5BBC
:080AE00004C1018E1B8CC10151
:080AE800471B0801F2018E5AC0
:080AF00084C0019E5A04C101FB
:080AF8003FB201F701939F00DA
:080B0000010193DF8001019364
:080B08001F010201935F81024D
:080B100001939F01030193DF33
:080B1800810301931F02040197
:080B2000935F820401939F0220
:080B2800050193DF8205019332
:080B30001F030601935F830619
:080B380001939F03070193DF05
:080B4000830701931F04080163
:080B4800935F840801939F04F0
:080B5000090193DF8409019300
:080B58001F050A01935F850AE5
:080B600001939F050B0193DFD7
:080B6800850B01931F060C012F
:080B7000935F860C01939F06C0
:080B78000D0193DF860D200240
:080B8000019E5F8808200201BC
:080B88009E9F08092002019E56
:080B9000DF88092002019E1F0D
:080B9800090A2002019E5F8999
:080BA0000A2002019E9F090BCF
:080BA8002002019EDF890B20F1
:080BB00002019E5F8A0C200285
:080BB800019E9F0A0D200201BD
:080BC0009EDF8A0D2002019E58
:080BC8001F0B0E2002019E5FCD
:080BD0008B0E2002019E9F0B19
:080BD8000F2002019EDF8B0FCC
:080BE0002002019E5F84002049
:080BE80002019E9F040120029E
:080BF000019EDF8401200201D7
:080BF8009E1F05022002019E70
:080C00005F85022002019E9FA6
:080C080005032002019EDF85B7
:080C1000032002019E1F0604EF
:080C18002002019E5F8604200A
:080C200002019E9F060520025F
:080C2800019EDF860520020198
:080C30009E5F87062002019E71
:080C38009F07072003019E1F26
:080C40000C1040CFC100016F50
:080C48001BFE01A98009019DBA
:080C5000EEFF01A94008019D1F
:080C5800E9FF01A89D010181E3
:080C6000C60120014746000116
:080C6800A946072002019E5F6E
:080C7000870601200705096F4A
:080C7800410009302701471B70
:080C8000F601935B00C0019333
:080C88009B80C00193DB00C159
:080C900001931B81C101935B7C
:080C980001C25007FCFF00013E
:080CA0008D4708F801869F0052
:080CA800010186DF80010186D5
:080CB0001F010201865F8102B1
:080CB80001869F01030186DFA4
:080CC000810301861F020401FB
:080CC800865F820401869F0291
:080CD000050186DF82050186A3
:080CD8001F030601865F83067D
:080CE00001869F03070186DF76
:080CE800830701861F040801C7
:080CF000865F840801869F0461
:080CF800090186DF8409018671
:080D00001F050A01865F850A48
:080D080001869F050B0186DF47
:080D1000850B01861F060C0192
:080D1800865F860C01869F0630
:080D20000D0186DF860D2002A3
:080D2800018E5F880820020122
:080D30008E9F08092002018ECC
:080D3800DF88092002018E1F73
:080D4000090A2002018E5F89FF
:080D48000A2002018E9F090B35
:080D50002002018EDF890B2057
:080D580002018E5F8A0C2002EB
:080D6000018E9F0A0D20020123
:080D68008EDF8A0D2002018ECE
:080D70001F0B0E2002018E5F33
:080D78008B0E2002018E9F0B7F
:080D80000F2002018EDF8B0F32
:080D88002002018E5F840020AF
:080D900002018E9F0401200204
:080D9800018EDF84012002013D
:080DA0008E1F05022002018EE6
:080DA8005F85022002018E9F0D
:080DB00005032002018EDF851E
:080DB800032002018E1F060456
:080DC0002002018E5F86042071
:080DC80002018E9F06052002C6
:080DD000018EDF8605200201FF
:080DD8008E5F87062002018EE8
:080DE0009F07072003018E1F8D
:080DE8000C1001F701F301F703
:080DF000200301935F001120B4
:080DF8000301939F8011200309
:080E00000193DF001220030141
:080E0800931F811220030193E6
:080E10005F0113200301939F11
:080E1800811320030193DF01A7
:080E200014200301931F82144A
:080E2800200301935F02152075
:080E30000301939F82152003CA
:080E38000193DF021620030103
:080E4000931F831620030193A8
:080E48005F0317200301939FD3
:080E5000831720030193DF0367
:080E580018200301931F841808
:080E6000200301935F04192037
:080E68000301939F841920038C
:080E70000193DF041A200301C5
:080E7800931F851A200301936A
:080E80005F051B200301939F95
:080E8800851B20030193DF0527
:080E90001C200301931F861CC6
:080E9800200301935F061D20F9
:080EA0000301939F861D20034E
:080EA8000193DF061E20050185
:080EB0009E5F08192005019E58
:080EB8009F88192005019EDF4F
:080EC000081A2005019E1F899C
:080EC8001A2005019E5F091BC1
:080ED0002005019E9F891B20F3
:080ED80005019EDF091C200545
:080EE000019E5F0A1D200501BF
:080EE8009E9F8A1D2005019E5A
:080EF000DF0A1E2005019E1F10
:080EF8008B1E2005019E5F0B1B
:080F00001F2005019E9F8B1FBD
:080F08002006019EDF0B002012
:080F100005019E5F041120059C
:080F1800019E9F8411200501D8
:080F20009EDF04122005019E72
:080F28001F85122005019E5FE8
:080F300005132005019E9F85B9
:080F3800132005019EDF0514E2
:080F40002005019E1F8614200C
:080F480005019E5F061520055E
:080F5000019E9F86152005019A
:080F58009EDF06162005019E34
:080F60005F07172005019E9FA9
:080F680087172006019E1F8C73
:080F7000004016C000016F1BD8
:080F78008E01A98009019DEE24
:080F8000FF01A94008019DE9F1
:080F8800FF5000D0FF00019DA5
:080F90002500300010019D2D29
:080F980000016F8100300F0C15
:080FA00001924080BE01471BD5
:080FA800F801939B06C0019EB5
:080FB0001B8CC1019E9B86C051
:080FB800019E5B04C15013FC13
:080FC000FF00019DDAED01A71D
:080FC8009B0601471BFE014DD1
:080FD000DB06030193DB02C004
:080FD80001931B83C001935B30
:080FE00003C101939B83C101D1
:080FE80093DB03C201931B849B
:080FF000C2014DDB8600019EE9
:080FF8001B06C040C0270101E7
:081000006F0C022008016F0DC6
:081008002240F00A01016F0E05
:08101000202008016F0F0840C9
:08101800C01701016F10005028
:081020004BFCFF00019DD8C646
:0810280001A2017608FC01475A
:081030001BFC016F8302019318
:08103800DB80C040F00A010159
:081040006F031A0193DB00C0ED
:0810480001A201207FFC01A7B9
:08105000C10001000302313F61
:0810580001A08101A7C1000104
:08106000A7C302200801860B62
:081068000128200801868B819C
:081070002720080186CB0127AF
:081078000140C651140140447F
:08108000311020080193CB00A0
:081088002820080180CBC026DE
:08109000012103001230D80118
:081098006F030120080190CB59
:0810A000D0260182CC002001E2
:0810A8002203002730850182BC
:0810B000CC00200122034026C0
:0810B800307901824C01200196
:0810C0005805434001400434CF
:0810C8001001B6CF3020012316
:0810D000030035301C01471B31
:0810D800FE01A2018B52FC0194
:0810E000A7C1000193DB00C071
:0810E80001A201704BFC013074
:0810F0003F01824C0120015870
:0810F8000543400140043410DF
:0811000001820C0220015808D5
:0811080073400140076410016F
:08111000B68F61200186CE01BB
:08111800200140C65114014DF5
:0811200005110001C3CF4020BE
:0811280001930E0020013003C9
:08113000013F6F20080180CB94
:08113800C026012283002430CF
:081140001901471BFE01A20189
:08114800E008FC01A7C1000151
:0811500093DB00C001A2013194
:081158004BFC01A08101A7C1BD
:0811600000016F0402200801E8
:081168009003D12601300E01B5
:0811700086CE00200147430078
:081178000193CE002001471B8A
:08118000FE40F00A01016F03BB
:081188001A0193DB00C001A273
:0811900001907FFC01300E010B
:0811980086CE00200147430050
:0811A0000193CE002001A081A3
:0811A80001A7C10001A7C30269
:0811B00001B6CD32200100035D
:0811B80002303820050186CB4E
:0811C000003620050193CB006D
:0811C8003120050186CB003641
:0811D00020050193CB0037015B
:0811D800B6CD32202003019383
:0811E000CB003101C3CD022058
:0811E800016F030620030193CF
:0811F000CB8031018E1B06C00B
:0811F80001471B0201861B8464
:08120000C20186DB03C2018676
:081208009B83C101865B03C159
:0812100001861B83C00186DB8F
:0812180002C001A7DA060186FD
:081220009B06C0018E9B86C0F5
:08122800018E5B04C1018E1B65
:081230008CC1200301865F0060
:0812380011200301869F8011C3
:0812400020030186DF001220EB
:081248000301861F811220033F
:0812500001865F011320030178
:08125800869F8113200301862B
:08126000DF0114200301861FC9
:081268008214200301865F02DD
:0812700015200301869F821581
:0812780020030186DF021620AD
:081280000301861F8316200301
:0812880001865F03172003013A
:08129000869F831720030186ED
:08129800DF0318200301861F8B
:0812A0008418200301865F049D
:0812A80019200301869F84193F
:0812B00020030186DF041A206F
:0812B8000301861F851A2003C3
:0812C00001865F051B200301FC
:0812C800869F851B20030186AF
:0812D000DF051C200301861F4D
:0812D800861C200301865F065D
:0812E0001D200301869F861DFD
:0812E80020030186DF061E2031
:0812F00005018E5F08192005BD
:0812F800018E9F8819200501F9
:081300008EDF081A2005018EA2
:081308001F891A2005018E5F08
:08131000091B2005018E9F89D5
:081318001B2005018EDF091CFA
:081320002005018E5F0A1D206B
:0813280005018E9F8A1D2005BE
:08133000018EDF0A1E200501F9
:081338008E1F8B1E2005018EA3
:081340005F0B1F2005018E9FC9
:081348008B1F2006018EDF0B54
:08135000002005018E5F04116D
:081358002005018E9F84112085
:0813600005018EDF04122005D7
:08136800018E1F851220050112
:081370008E5F05132005018EBC
:081378009F85132005018EDFA3
:0813800005142005018E1F86F3
:08138800142005018E5F06151B
:081390002005018E9F86152047
:0813980005018EDF0616200599
:0813A000018E5F071720050113
:0813A8008E9F87172006018EBD
:0813B0001F8C0001F701F4019C
:0813B8008E5A84C0019E5A0404
:0813C000C1013E2F01F72003DB
:0813C80001935F0011200301F5
:0813D000939F8011200301939B
:0813D800DF0012200301931F46
:0813E0008112200301935F015B
:0813E80013200301939F811300
:0813F00020030193DF0114202A
:0813F8000301931F821420037E
:0814000001935F0215200301B6
:08140800939F8215200301935C
:08141000DF0216200301931F07
:081418008316200301935F031A
:0814200017200301939F8317BD
:0814280020030193DF031820EB
:081430000301931F841820033F
:0814380001935F041920030178
:08144000939F8419200301931E
:08144800DF041A200301931FC9
:08145000851A200301935F05DA
:081458001B200301939F851B7B
:0814600020030193DF051C20AD
:081468000301931F861C200301
:0814700001935F061D2003013A
:08147800939F861D20030193E0
:08148000DF061E2005019E5F3E
:0814880008192005019E9F8850
:08149000192005019EDF081A76
:081498002005019E1F891A20A6
:0814A00005019E5F091B2005F8
:0814A800019E9F891B20050134
:0814B0009EDF091C2005019ECE
:0814B8005F0A1D2005019E9F43
:0814C0008A1D2005019EDF0AD0
:0814C8001E2005019E1F8B1E72
:0814D0002005019E5F0B1F20A7
:0814D80005019E9F8B1F2006F9
:0814E000019EDF0B0020050155
:0814E8009E5F04112005019E26
:0814F0009F84112005019EDF1D
:0814F80004122005019E1F856E
:08150000122005019E5F051396
:081508002005019E9F851320C0
:0815100005019EDF0514200512
:08151800019E1F86142005014D
:081520009E5F06152005019EE7
:081528009F86152005019EDFDE
:0815300006162005019E5F076D
:08153800172005019E9F871793
:081540002006019E1F8C0040F3
:0815480016C000016F1B8E01AB
:08155000A98009019DEEFF01D5
:08155800A94008019DE9FF50C4
:0815600000D0FF00019D2500F1
:08156800300010019D2D00016F
:081570006F8100300F0C0192A5
:081578004080BE01471BF80191
:08158000939B06C0019E1B8C29
:08158800C1019E9B86C0019E7B
:081590005B04C15018FCFF00D0
:08159800019D9A0801A79B06C2
:0815A00001471BFE014DDB06B3
:0815A800010193DB02C0019375
:0815B0001B83C02008016F0C31
:0815B8002220050186CB8037DB
:0815C00001470301200501931E
:0815C800CB803701A2011B4B8F
:0815D000FC01A7C10001A7C343
:0815D80002200801860B012826
:0815E000200801868B81272001
:0815E800080186CB0127014038
:0815F000C65114014044311002
:0815F80020080193CB0028013B
:081600006F030820080190CBE4
:08160800D02601471BFE01A2E0
:0816100001E008FC01A7C10084
:081618000193DB00C001A201F7
:08162000314BFC01A2011B4B40
:08162800FC01A7C10001A7C3EA
:0816300002016F030220080112
:0816380090CBD02601B6CC32A4
:081640002001000302303420F8
:08164800020186CB802520027F
:081650000193CB802020020170
:0816580086CB802520020193DE
:08166000CB802601B6CC32203C
:081668000193CB802001C3CCEB
:081670000220016F0306019343
:08167800CB002101861B83C099
:081680000186DB02C001A7DABC
:081688000601869B06C0018EDD
:081690009B86C0018E5B04C1C2
:08169800018E1B8CC12003012F
:0816A000865F001120030186A2
:0816A8009F801120030186DF81
:0816B0000012200301861F81D6
:0816B80012200301865F0113FB
:0816C000200301869F81132025
:0816C800030186DF0114200379
:0816D00001861F8214200301B2
:0816D800865F02152003018664
:0816E0009F821520030186DF43
:0816E8000216200301861F8396
:0816F00016200301865F0317B9
:0816F800200301869F831720E7
:08170000030186DF031820033A
:0817080001861F841820030173
:08171000865F04192003018625
:081718009F841920030186DF04
:08172000041A200301861F8555
:081728001A200301865F051B76
:08173000200301869F851B20A8
:08173800030186DF051C2003FC
:0817400001861F861C20030135
:08174800865F061D20030186E7
:081750009F861D20030186DFC6
:08175800061E2005018E5F084A
:08176000192005018E9F881974
:081768002005018EDF081A20A4
:0817700005018E1F891A2005F6
:08177800018E5F091B20050131
:081780008E9F891B2005018EDC
:08178800DF091C2005018E5F42
:081790000A1D2005018E9F8A4D
:081798001D2005018EDF0A1E71
:0817A0002005018E1F8B1E20A5
:0817A80005018E5F0B1F2005F7
:0817B000018E9F8B1F20060132
:0817B8008EDF0B002005018EFD
:0817C0005F04112005018E9F5A
:0817C80084112005018EDF04ED
:0817D000122005018E1F851295
:0817D8002005018E5F051320BE
:0817E00005018E9F8513200511
:0817E800018EDF05142005014C
:0817F0008E1F86142005018EF6
:0817F8005F06152005018E9F1C
:0818000086152005018EDF06AC
:08180800162005018E5F071791
:081810002005018E9F871720BF
:0818180006018E1F8C0001F790
:0818200001F4018E5A84C0019D
:081828009E5A04C1013E4C016F
:08183000471BF801939B06C061
:08183800019E1B8CC1019E9B67
:0818400086C0019E5B04C1504B
:0818480018FCFF00019D9A2429
:0818500001A79B0601471BFCE8
:08185800016F03150193DB8011
:08186000C00186DA00C2019309
:08186800DB00C001A201409465
:08187000FC013FFD01A7DA06AF
:0818780001869B06C0018E9B56
:0818800086C0018E5B04C1016A
:081888008E1B8CC101471B08F7
:0818900001F2018E5A84C0012F
:081898009E5A04C1013FD50076
:0818A00001471BF801939B06B0
:0818A800C0019E1B8CC1019ED2
:0818B0009B86C0019E5B04C190
:0818B8005019FCFF00019D9A8C
:0818C0007101A79B0601471B03
:0818C800FC5000D0FF00016F8D
:0818D00003000193DA00DF5070
:0818D80019FCFF00019D9A4C70
:0818E0000186DA80DF014743B5
:0818E800000193DA80DF01A288
:0818F0000160A6FC01A7C10084
:0818F800012003000330300160
:08190000471BFC0186DA80DFC1
:081908000193DB80C0016F05B3
:0819100001014E0511050186DD
:081918005A01DF0140443110C7
:081920000193DB00C001A201EC
:08192800F0A6FC01471B0401BD
:08193000306A01204206033079
:0819380053400F000101934030
:081940000037400F0001018691
:0819480000013750FFFFFF0012
:08195000016FC5FF2002012711
:08195800C580736F4500726F3A
:081960000500015044310001B3
:08196800000302301F01471BC0
:08197000FE50F0FCFF00016FC6
:08197800031C0193DB00C00118
:08198000A2011F96FC01471BA8
:0819880002013010400F0001C4
:081990000186400037016F429F
:081998000601302A5019FCFF82
:0819A00000019D9A71013F2F27
:0819A80001A7DA0601869B0687
:0819B000C0018E9B86C0018E70
:0819B8005B04C1018E1B8CC110
:0819C00001471B0801F2018E32
:0819C8005A84C0019E5A04C1BB
:0819D000013FD50000000000FA
:0819D800000000000000000007
:0819E00001471BF801939B066F
:0819E800C0019E1B8CC1019E91
:0819F0009B86C0019E5B04C14F
:0819F800501CFCFF00019D5A88
:081A00000E01A79B0601471B24
:081A0800FA014DDB0603019316
:081A1000DB02C001931B83C03F
:081A180001935B03C101939BE4
:081A200083C10193DB03C20145
:081A2800931B84C22006016F2C
:081A30000DAD2008016F0F1835
:081A380040C01701016F10000E
:081A400001A84C0001861A0305
:081A4800C201471BFC016FC342
:081A5000FF0193DB80C040F0B0
:081A58000A01016F031A01935A
:081A6000DB00C001A201207FA0
:081A6800FC01A7C1000100030D
:081A700002318A01471BFE014F
:081A7800931B03C001A2016FE2
:081A80004DFC01471BFE019320
:081A88001B03C001A2014C5137
:081A9000FC016F0B0001210BAA
:081A98000116309201584B3099
:081AA0004001580C63400140B5
:081AA8000654100140C5431073
:081AB00001B2C4302001220341
:081AB8000027306B01584B3090
:081AC0004001580C6340014095
:081AC8000654100140C5431053
:081AD00001B2C4302020040122
:081AD8002203002630490147FA
:081AE0001BFE01584B404001C0
:081AE800580C63400140065454
:081AF00010014044311001B265
:081AF800C333200193DB00C0A1
:081B000001A201FD36FC0147C2
:081B08001B0201584B40400193
:081B1000580C6340014006542B
:081B1800100140443110016F7F
:081B2000C4FF01C1C343200111
:081B2800474B00013F67015823
:081B30000C6340014006541053
:081B38002008018045F126019F
:081B4000A745810158C5424090
:081B48004018C000014CC4006C
:081B50008001A78303016F0B64
:081B58000001210B02163030E0
:081B600001584B304001404EDA
:081B6800431001B2C43020015A
:081B7000120303233013015896
:081B78004B4040014084331092
:081B8000016FC4FF01C14343E2
:081B88002001474B00013FC999
:081B9000016F0B0001210B02A3
:081B980016301D01584B3040CE
:081BA00001404E431001B2C4E4
:081BA80030200122C3FF2330AD
:081BB0000701474B00013FDC77
:081BB80001210B02133027404C
:081BC000F00A010180C00021C0
:081BC80020060190CE402C40E4
:081BD00018C000014D0E018058
:081BD8000158C4324C40F00A30
:081BE000010190C00021014742
:081BE8001BFE40F00A01016F31
:081BF000031A0193DB00C001A0
:081BF800A201907FFC01861B95
:081C000084C20186DB03C2016E
:081C0800869B83C101865B038A
:081C1000C101861B83C001869F
:081C1800DB02C001A7DA06019E
:081C2000869B06C0018E9B8625
:081C2800C0018E5B04C1018EB6
:081C30001B8CC101471B0801D8
:081C3800F2018E5A84C0019EE6
:081C40005A04C1013FB701473E
:081C48001BF8019E1B8CC10179
:081C50009E9B86C0019E5B040F
:081C5800C1501CFCFF00019DBE
:081C60009A2701A84C0001477E
:081C68001BFE01A201214BFC4F
:081C700001A7C1000193DB0094
:081C7800C001A10100000147B9
:081C80001B0201A6CE02013F88
:081C8800FD018E9B86C0018E58
:081C90005B04C1018E1B8CC135
:081C980001471B0801F2018E57
:081CA0005A84C0019E5A04C1E0
:081CA800013FDE000000000016
:081CB00001471BF801939B069C
:081CB800C0019E1B8CC1019EBE
:081CC0009B86C0019E5B04C17C
:081CC8005020FCFF00019D1AF1
:081CD0003301A79B0601471B2D
:081CD800FA5020FCFF00019D01
:081CE000DA16016F81103006D5
:081CE8000C01914000A001A8CD
:081CF0004C00016F010F3006EA
:081CF8000C01914000A001471E
:081D00001BFC016F440001A768
:081D0800C4100193DB80C04010
:081D1000F00A01016F031A0142
:081D180093DB00C001A20120D1
:081D20007FFC01A7C1000100D6
:081D28000302304E40C0270108
:081D30000182C000200191DADC
:081D3800E0DF01825AE1DF0146
:081D4000A745912010014E059A
:081D4800010040C01701014C2D
:081D5000C40000200801820319
:081D5800012040C027010191A8
:081D600000012001471BFE40B9
:081D6800F00A01016F031A01EA
:081D700093DB00C001A2019009
:081D78007FFC016F410F3006F2
:081D80000C01914000A001825A
:081D88005AE1DF01A74591209B
:081D900010014E05010040C0E6
:081D98001701014CC400000119
:081DA00093DA00DF0186DA008E
:081DA800DF01861A81C2200848
:081DB000019003E1260186DA2F
:081DB80000DF01861A01C220C0
:081DC00008019003C126018611
:081DC800DA00DF01801A01C4FA
:081DD0002008019003F1260137
:081DD800931A80DE0186DA8017
:081DE000DE0120030206307A47
:081DE80001861A81DE014EC4E0
:081DF00020000180DA01C401AA
:081DF800A7C7812008014E87F6
:081E000001804018C000014CF4
:081E0800460180014C05416B0D
:081E100001B2C43020012103DE
:081E18000016303501861A8125
:081E2000DE014EC42000018028
:081E2800DA01C401A7C7812003
:081E300008014E8701804018F3
:081E3800C000014C46018001CD
:081E40004C05416B01825AE1DF
:081E4800DF01C1C4502001308C
:081E5000110186DA80DE014772
:081E580043000193DA80DE0172
:081E60003F7A016F810F30068B
:081E68000C01914000A001866D
:081E7000DA80DE012003020309
:081E7800308301471BFC016FE0
:081E8000440001A7C410019306
:081E8800DB80C040F00A0101FB
:081E90006F031A0193DB00C08F
:081E980001A201207FFC01A75B
:081EA000C10001010312304EE4
:081EA80001825AE1DF01A745A8
:081EB000912010014E05010014
:081EB80040C01701014CC400F9
:081EC0000040C027010182006F
:081EC800012020080191030133
:081ED000200182DAE0DF40C0CE
:081ED80027010191C000200167
:081EE000471BFE40F00A01015E
:081EE8006F031A0193DB00C037
:081EF00001A201907FFC016FCB
:081EF80041110131B1016FC17C
:081F00000F30060C01914000B6
:081F0800A0016F0402014EC4A8
:081F1000100001865A01DF01F7
:081F18004C05813001865A815D
:081F2000C301C3C45020016F8E
:081F28000402014EC410000187
:081F3000865A01DF014C058116
:081F380050501CFCFF00016F7A
:081F4000851101C3C45020010A
:081F48006F0402014EC4B00158
:081F500001865A01DF014C0576
:081F5800813001869A01DF20AF
:081F6000080186868121016F52
:081F68000802014AC8F13F0123
:081F700040C6511001C3C4502A
:081F780020016F0402014EC4B8
:081F8000D00001865A01DF01C7
:081F88004C05815001865A014D
:081F9000C301C3C45020016F1E
:081F98000402014EC4E0000147
:081FA000865A01DF014C0581A6
:081FA8005001865A01C301C378
:081FB000C450200186DA00DFB5
:081FB80020080193030027013A
:081FC00086DA00DF200801931E
:081FC8000380270186DA00DF27
:081FD000200801930300280121
:081FD80086DA00DF2008019306
:081FE000038028016F0110309D
:081FE800060C01914000A0016C
:081FF000471BFC016F440001D6
:081FF800A7C4100193DB80C0B7
:0820000040F00A01016F031A10
:082008000193DB00C001A201FD
:08201000207FFC01A7C10001C3
:08201800000302302F01471BF9
:08202000FE0182DAE0DF01A7F6
:08202800C3900193DB00C0012D
:08203000A201704BFC01471BEB
:08203800FE40F00A01016F03F4
:082040001A0193DB00C001A2AC
:0820480001907FFC016F4110C3
:0820500030060C01914000A0D4
:082058000130460120020103E2
:08206000303F400F0001019325
:08206800400038016FC1103087
:08207000060C01914000A001E3
:08207800471BFC400F000101B1
:0820800086C000380193DB80EB
:08208800C050F0FCFF00016FE5
:0820900003110193DB00C00104
:08209800A2011F96FC01471B89
:0820A000045020FCFF00019D2B
:0820A8001A33016F010001A7CA
:0820B000DA0601869B06C0015F
:0820B8008E9B86C0018E5B04C3
:0820C000C1018E1B8CC1014718
:0820C8001B0801F2018E5A848D
:0820D000C0019E5A04C1013F4A
:0820D800D501471BF801939BA1
:0820E00006C0019E1B8CC1012A
:0820E8009E9B86C0019E5B0473
:0820F000C15021FCFF00019D1D
:0820F8009A6D01A79B06014748
:082100001BFE014DDB8600010E
:0821080093DB02C001A84C00AA
:0821100001471BFC016FC3FF36
:082118000193DB80C040F00AD6
:0821200001016F031A0193DBBA
:0821280000C001A201207FFCB0
:0821300001A7C1000100030238
:08213800305101A201214BFC12
:0821400001A7C10001A7C39033
:0821480001A7C30201471BFEC1
:082150000193DB02C001A201B2
:082158006F4DFC01471BFC0167
:0821600086DA00C20193DB8066
:08216800C00193DB02C001A2DB
:08217000012E4FFC01471BFE8C
:0821780040F00A01016F031A97
:082180000193DB00C001A20184
:08218800907FFC01A6CE0201CC
:082190006F01000186DB02C0B3
:0821980001A7DA0601869B068F
:0821A000C0018E9B86C0018E78
:0821A8005B04C1018E1B8CC118
:0821B00001471B0801F2018E3A
:0821B8005A84C0019E5A04C1C3
:0821C000013FD001471BF801AB
:0821C800939B06C0019E1B8CD5
:0821D000C1019E9B86C0019E27
:0821D8005B04C15022FCFF0072
:0821E000019D1ABD01A79B0639
:0821E80001471BFE014DDB86DF
:0821F000010193DB02C0019321
:0821F8001B83C001935B03C1CE
:082200000186DA80C201A70388
:08220800030182DA00C201A704
:08221000C39001A7430301A8DC
:082218004C000120CC0F053041
:082220000701200C0006300745
:08222800016F41010130980132
:08223000471BFC016FC3FF0115
:0822380093DB80C040F00A01B5
:08224000016F031A0193DB009A
:08224800C001A201207FFC018E
:08225000A7C1000100030230E8
:082258006A01580D434040C02B
:082260001701014CC40000014C
:08226800A7C302200801800B4E
:08227000D1260153C4800101D5
:08227800010312302801471B8D
:08228000FE01935B03C001A203
:08228800016F4DFC20080190DC
:082290000BC32601471BFE01F0
:08229800935B03C001A2017079
:0822A0004BFC0130072008018E
:0822A800900BC32601471BFE49
:0822B00040F00A01016F031A5E
:0822B8000193DB00C001A2014B
:0822C000907FFC016F01000199
:0822C800865B03C101861B8344
:0822D000C00186DB02C001A77A
:0822D800DA0601869B06C00135
:0822E0008E9B86C0018E5B0499
:0822E800C1018E1B8CC10147EE
:0822F0001B0801F2018E5A8463
:0822F800C0019E5A04C1013F20
:08230000C6000000000000000F
:082308000000000000000000CD
:0823100001471BF801939B0635
:08231800C0019E1B8CC1019E57
:082320009B86C0019E5B04C115
:08232800502EFCFF00019DDABC
:08233000BA01A79B0601471B3F
:08233800FC01A84C00502EFC32
:08234000FF00019D5AA70147AF
:082348001BFE016F0305019368
:08235000DB00C001A201C80777
:08235800FC01471B02016F03A9
:082360000001A7C3D040F00A00
:08236800010191C0802740F043
:082370000A010193000028019D
:082378006F0402014EC40000D5
:0823800040F00A010193030083
:0823880023016F030040F00A7D
:08239000010193C0802240F01E
:082398000A0101930000250178
:0823A000471BFE016F03000161
:0823A80093DB00C001A201312A
:0823B0004BFC2010016F050039
:0823B800014E05010040C017B1
:0823C00001014CC400002008DB
:0823C800019003F02601471B00
:0823D000FE40F00A01016F0359
:0823D8001A0193DB00C001A211
:0823E00001907FFC01471BFE88
:0823E80040F00A01016F031827
:0823F0000193DB00C001A20112
:0823F800907FFC01471BFE4031
:08240000460001016F03960183
:0824080093DB00C001A201906A
:082410007FFC01931A80DF013B
:0824180086DA80DF204001207C
:08242000030006303701865A63
:0824280081DF014E05010240B5
:08243000F00201014CC40000A0
:0824380001865A81DF014C0509
:08244000110001A704D1019174
:082448000301200186DA80DFA8
:08245000014743000193DA800B
:08245800DF013FBB2040016FD2
:082460000600014D46110001C8
:082468004E05010240F00201E3
:08247000014CC40000016F459E
:082478000001A7051101A704F2
:08248000D1019103012040F09D
:082488000A010191008021010D
:08249000471BFE016F830701E9
:0824980093DB00C001A201C8A2
:0824A00007FC01471B02019338
:0824A8001A80DF0186DA80DFF3
:0824B0000120C30C06335E019C
:0824B800865A81DF2008014E65
:0824C0000501804018C0000175
:0824C8004CC4008001861A815A
:0824D000DF2006019003212B1F
:0824D80001931A00DF0186DA0E
:0824E00000DF012103021630A8
:0824E8004201861A01DF014EDA
:0824F000C420000186DA81DF3F
:0824F8002008014E870180401D
:0825000018C000014C460180E7
:08250800014C05416B016F4617
:082510000001A7461101C1C43E
:0825180050200186DA00DF010A
:082520004743000193DA00DFDC
:08252800013FB20186DA80DFF9
:08253000012103001330E80152
:08253800865A81DF2008014EE4
:082540000501804018C00001F4
:082548004CC400805000D0FFDC
:0825500000016F0400200601E8
:082558009303012501865A815D
:08256000DF2008014E05018097
:082568004018C000014CC40042
:082570008040F00A01016F0533
:082578002201861A82DF2040D7
:08258000014EC80100016F09C2
:0825880001014E0902000140AF
:082590000762100140854110B3
:082598002006019303812501D7
:0825A000865A81DF2008014E7C
:0825A8000501804018C000018C
:0825B0004CC4008040FC07064A
:0825B800016F040001A704E11A
:0825C0002006019203812601AF
:0825C800471BFE016FC3070170
:0825D00093DB00C001A201C869
:0825D80007FC01471B0201474B
:0825E0001BFE2008016F05003D
:0825E800014E0501004018C07E
:0825F00000014CC400800193BE
:0825F800DB00C001A2014A59F9
:08260000FC01471B0201471B0E
:08260800FE016F83080193DB62
:0826100000C001A201C807FC93
:0826180001471B020130AE0175
:08262000865A81DF2008014EFB
:082628000501804018C000010B
:082630004CC4008040F00A01D7
:08263800016F052201861A82E0
:08264000DF2040014EC801003B
:08264800016F0901014E0902B6
:08265000000140076210014087
:082658008541102006019303E7
:08266000012501865A81DF20EB
:0826680008014E050180401835
:08267000C000014CC4008040D1
:08267800F00A01016F052201C7
:08268000861A82DF2040014EA2
:08268800C80100016F09010106
:082690004E090200014007623F
:082698001001408541102006ED
:0826A000019303812501865A14
:0826A80081DF2008014E05014D
:0826B000804018C000014CC479
:0826B800008040FC0706016FE1
:0826C000040001A704E120065B
:0826C800019203812601471B6A
:0826D000FE016FC3080193DB5A
:0826D80000C001A201C807FCCB
:0826E00001471B0201865A812B
:0826E800DF2008014E0501800E
:0826F0004018C000014CC400B9
:0826F80080016FC40701A70473
:08270000D1200601910301261E
:0827080001865A81DF2008015F
:082710004E0501804018C000D5
:08271800014CC4008020060101
:082720009003D02601865A81C6
:08272800DF2008014E050180CD
:082730004018C000014CC40078
:0827380080016F04102006016E
:08274000900311270186DA80E5
:08274800DF014743000193DAB1
:0827500080DF013C9601471BEC
:08275800FE016F03090193DB90
:0827600000C001A2010007FC0A
:0827680001471B0201A2016000
:0827700064FC01A201E662FC19
:0827780001471BFE50E0FCFFCD
:0827800000016F03080193DB67
:0827880000C001A201FF94FC56
:0827900001471B02016F010A61
:0827980030060C01914000A085
:0827A00001931A80DF0186DAC3
:0827A80080DF0120030206306E
:0827B0002C01861A81DF014EA5
:0827B800C42000016F4500017F
:0827C000A7051140C02701012B
:0827C800910301210186DA8072
:0827D000DF014743000193DA29
:0827D80080DF013FC801931AE4
:0827E00080DF0186DA80DF01D1
:0827E80020034006337A01864C
:0827F0005A81DF2010014E05A3
:0827F800010040C01701014C73
:08280000C4000001861A81DF0B
:082808002008019103A1260143
:08281000865A81DF2010014E01
:0828180005010040C017010199
:082820004CC4000001865A813E
:08282800DF014C05110020083E
:08283000019103012001865A09
:0828380081DF2010014E0501B3
:082840000040C01701014CC467
:082848000000016F450001A72B
:0828500005112008019103218C
:0828580020016F410A30060C5B
:0828600001914000A001865A1D
:0828680081DF2010014E050183
:082870000040C01701014CC437
:0828780000002008019003D0CC
:082880002601865A81DF2010B9
:08288800014E05010040C017DC
:0828900001014CC40000016FBE
:08289800040E2008019003C1A9
:0828A0002601865A81DF201099
:0828A800014E05010040C017BC
:0828B00001014CC400002008E6
:0828B800019003E026016F818D
:0828C0000B30060C01914000F1
:0828C800A001865A81DF2010F7
:0828D000014E05010040C01794
:0828D80001014CC4000040D0D6
:0828E000E100016F0600018612
:0828E8005A82DF2010014E09A5
:0828F0000200016F0A02014E13
:0828F8004A0200014048721081
:082900000140C65110016FC730
:082908007F014E8781000140B0
:0829100085411020080193032A
:08291800812001865A81DF20B5
:0829200010014E05010040C04A
:082928001701014CC40000403E
:08293000D0F100016F06000167
:08293800865A82DF2010014ED7
:08294000090200016F0A020107
:082948004E4A020001404872F2
:08295000100140C65110016F97
:08295800C77F014E87810001D9
:0829600040854110200801939D
:08296800030121016F810A3017
:08297000060C01914000A001DA
:08297800865A81DF2010014E98
:0829800005010040C017010130
:082988004CC4000040D0C10066
:08299000016F060001865A8266
:08299800DF2020014E090200BE
:0829A000016F0A02014E4A0218
:0829A8000001404872100140DB
:0829B000C651102003016FC79E
:0829B800FF014E878100014080
:0829C00085411020080193037A
:0829C800812101865A81DF2004
:0829D00010014E05010040C09A
:0829D8001701014CC4000020AE
:0829E00008019003F0260186B6
:0829E8005A81DF2010014E05A9
:0829F000010040C01701014C79
:0829F800C40000200801930354
:082A00000022016FC10A30063B
:082A08000C01914000A0016FD8
:082A10008400014EC400000126
:082A180086DA81DF2010014E77
:082A200087010040C01701010D
:082A28004C4601002008014C9E
:082A3000050186016F4600015B
:082A3800A7461101C1C45020A2
:082A4000016F8400014EC41077
:082A4800000186DA81DF201095
:082A5000014E87010040C01790
:082A580001014C4601002008B9
:082A6000014C050186016F46DF
:082A68000001A7461101C1C4E1
:082A70005020016F8400014EAB
:082A7800C420000186DA81DFB1
:082A80002010014E8701004007
:082A8800C01701014C460100DA
:082A90002008014C050186013C
:082A98006F460001A746110181
:082AA000C1C45020016F840045
:082AA800014EC430000186DA82
:082AB00081DF2010014E8701B7
:082AB8000040C01701014C466B
:082AC00001002008014C050192
:082AC80086016F460001A746DC
:082AD0001101C1C45020016F87
:082AD800010B30060C019140D6
:082AE00000A00186DA80DF018D
:082AE800218300163041018634
:082AF0005A81DF2010014E05A0
:082AF800010040C01701014C70
:082B0000C4000001861A81DF08
:082B08002008019003E1260101
:082B1000865A81DF2010014EFE
:082B180005010040C017010196
:082B20004CC40000016F040623
:082B28002008019003C1260101
:082B3000865A81DF2010014EDE
:082B380005010040C017010176
:082B40004CC4000020080193C1
:082B4800038028016FC10B306E
:082B5000060C01914000A001F8
:082B580086DA80DF014743002B
:082B60000193DA80DF013C7AE9
:082B6800016F0640014D46110A
:082B7000002010014E050100D8
:082B780040C01701014CC4002C
:082B800000016F450001A705EB
:082B8800112008019103012056
:082B9000016F830040C0270122
:082B98000191C00020016F0152
:082BA0000C30060C019140000D
:082BA800A001471BFE016F03B1
:082BB000000193DB00C001A24B
:082BB80001A04AFC01471BFECD
:082BC000016F43000193DB00EB
:082BC800C001A201A04AFC209B
:082BD00010016F0500014E0524
:082BD800010040C01701014C8F
:082BE000C40000016F04022093
:082BE80008019003D126201022
:082BF000016F0500014E051103
:082BF8000040C01701014CC4AC
:082C00000000016F040220082E
:082C0800019003D126016F4188
:082C10000C30060C019140009C
:082C1800A001471BFE016F0340
:082C2000000193DB00C001A2DA
:082C280001614AFC016F440048
:082C300001A7C41040C02701F8
:082C38000191C0802001471B3F
:082C4000FC500AFCFF00016FCB
:082C4800838E0193DB80C001C3
:082C50006F03010193DB00C0DA
:082C580001A201F87CFC014718
:082C60001BFC5013FCFF0001F6
:082C68006F03C10193DB80C082
:082C7000016F83000193DB00FA
:082C7800C001A201F87CFC017F
:082C8000471BFC500DFCFF0096
:082C8800016F834B0193DB8017
:082C9000C0016F83300193DBEA
:082C980000C001A201F87CFC60
:082CA00001471BFC506FFCFF13
:082CA80000016F03E00193DB62
:082CB00080C0016FC3300193E5
:082CB800DB00C001A201F87C61
:082CC000FC016F810C30060CD1
:082CC80001914000A001471B2F
:082CD000F6016F03000193DB24
:082CD80000C2016F030001932B
:082CE000DB80C15055FCFF0030
:082CE800016F034C0193DB00B6
:082CF000C1016F03000193DB39
:082CF80080C0016F0306019387
:082D0000DB00C001A201F01B81
:082D0800FC01471B0A016FC129
:082D10000D30060C019140009A
:082D1800A001471BF6016F4307
:082D2000000193DB00C2016F0A
:082D280003000193DB80C150A0
:082D300085FCFF00016FC37D6B
:082D38000193DB00C1016F03F0
:082D4000000193DB80C0016F6C
:082D4800C3060193DB00C0018A
:082D5000A201F01BFC01471B6E
:082D58000A016F010D30060CA9
:082D600001914000A001471B96
:082D6800F6016F03000193DB8B
:082D700000C2016F0300019392
:082D7800DB80C15017FCFF00D5
:082D8000016F03F80193DB0071
:082D8800C1016F03000193DBA0
:082D900080C0016FC30F019325
:082D9800DB00C001A201F01BE9
:082DA000FC01471B0A016F4111
:082DA8000D30060C0191400002
:082DB000A040563412016F032C
:082DB8009E4016C0000193C00B
:082DC0008024016F010E3006B2
:082DC8000C01914000A0013054
:082DD00027012002010330205D
:082DD800400F0001019340804F
:082DE0003801471BFE016F835F
:082DE800160193DB00C001A2FB
:082DF000010007FC01471B0272
:082DF800502EFCFF00019DDAE2
:082E00008701A7DA0601869B99
:082E080006C0018E9B86C0018B
:082E10008E5B04C1018E1B8CD6
:082E1800C101471B0801F20192
:082E20008E5A84C0019E5A0481
:082E2800C1013FD500000000CC
:082E300001471BF801939B060A
:082E3800C0019E1B8CC1019E2C
:082E40009B86C0019E5B04C1EA
:082E48005031FCFF00019D9ACE
:082E50006B01A79B0601471B63
:082E5800FA014DDB8603019332
:082E6000DB02C001931B83C0DB
:082E680001935B03C101939B80
:082E700083C10193DB03C201E1
:082E7800931B84C201935B046B
:082E8000C30186DA00C201A7BC
:082E8800C3020186DA80C201D9
:082E9000A7030340F00A010151
:082E98006F0E0040F00A010179
:082EA0006F0F0640F002010172
:082EA8006F1100016F10000121
:082EB000471BFC016FC3FF0189
:082EB80093DB80C040F00A0129
:082EC000016F031A0193DB000E
:082EC800C001A201007EFC0123
:082ED000A7C10001000302325A
:082ED800900186CB00220147A6
:082EE00043000193CB00220125
:082EE80082CBC0200121030090
:082EF0001230110121830012D0
:082EF800300D012143001230EE
:082F0000AC0131F70131F401CD
:082F080086CB002201860B813B
:082F1000210112030128309297
:082F180001820B8120015844E5
:082F2000314001B2D130200163
:082F280091DA60DF01825A61B9
:082F3000DF01A745910158459E
:082F3800414001404434100146
:082F4000A7430301820B81206D
:082F4800015844314001820FE1
:082F5000012001A704D101C119
:082F5800D140200182CB802052
:082F60000191CF00200186CE93
:082F6800002001474300019322
:082F7000CE00200186CB0022F7
:082F7800014DC310000193CBD1
:082F800000220182DA60DF018A
:082F880091CB80200186CB8073
:082F9000220123C3FF3B86CBA5
:082F980080223B4743003B93FC
:082FA000CB8022016FD001017A
:082FA8003F5D01314E0186CBB3
:082FB000002201860B812101C2
:082FB8001203012830550182CB
:082FC000CF002001A7C3D001DE
:082FC80091CC002001404C44B3
:082FD00014015844314C019139
:082FD800CF00200186CE00208D
:082FE000014743000193CE00FC
:082FE800200186CB80220123A9
:082FF000C3FF3B86CB80223BAE
:082FF8004743003B93CB80220C
:08300000016FD0010186CB0035
:0830080022014DC310000193E9
:08301000CB00220186CB002257
:0830180001860B812101120366
:08302000012830B201824B814E
:08302800200158454140014020
:0830300044341001A743030121
:08303800404D441401584431DD
:083040004C01820BA12030FFBE
:0830480000015304F1FF011324
:08305000030132301A01A70D43
:083058000301824D0120015823
:083060004541400140443410D9
:0830680001A74303013FC80169
:08307000404C441401584431A6
:083078004C0191CBA020018264
:08308000CF002001A7C3D0011D
:0830880091CD002001404D44F0
:0830900014015844314C019178
:08309800CF00200186CE0020CC
:0830A000014743000193CE003B
:0830A800200186CB80220123E8
:0830B000C3FF3B86CB80223BED
:0830B8004743003B93CB80224B
:0830C0000186CB0022014DC383
:0830C80010000193CB0022016E
:0830D0006FD001013F3D012218
:0830D800D00123301E01471B4B
:0830E000FE40F00A01016F033C
:0830E8001A0193DB00C001A2F4
:0830F00001707EFC01A75000F5
:0830F8000130720182CBA0201F
:0831000001210300173020013A
:08310800820BA12001584431A3
:083110004001404C5414015829
:0831180045414C01A704D1015F
:08312000C1D1402001300F0174
:08312800404C441401584431ED
:083130004C0191CB802001400D
:083138004C4414015844314CD1
:083140000191CBA020016FC337
:08314800FF01A7C3D00191CCE7
:08315000002001471BFE40F0C6
:083158000A01016F031A019343
:08316000DB00C001A201707E3A
:08316800FC01A7500001865B89
:0831700004C301861B84C201A7
:0831780086DB03C201869B8384
:08318000C101865B03C1018659
:083188001B83C00186DB02C0BD
:0831900001A7DA0601869B0687
:08319800C0018E9B86C0018E70
:0831A0005B04C1018E1B8CC110
:0831A80001471B0C01F2018E2E
:0831B0005A84C0019E5A04C1BB
:0831B800013FB201471BF801C1
:0831C000939B06C0019E1B8CCD
:0831C800C101A79B0601471B92
:0831D000FC014DDB86010193B7
:0831D800DB02C001931B83C060
:0831E00001935B03C10186DAD3
:0831E80000C201A7C302016F40
:0831F000030001A7030301869F
:0831F800CB00220100030230AC
:083200005A0186CB0022014DAA
:08320800C310000193CB00226A
:083210000182CB802001A743DD
:083218000301210D0017303BFA
:0832200001584D414040F0024D
:0832280001014CC4000001A7E4
:0832300003030182CC00200120
:0832380091CB80200182CB80C4
:083240002001220300276FC3E7
:08324800FF2791CBA02001A794
:083250004D9301A74DD301913C
:083258004C032001A74C00010A
:08326000865B03C101861B839C
:08326800C00186DB02C001A7D2
:08327000DA0601869B06C0018D
:083278008E1B8CC101471B0AEB
:0832800001F201471BF8019364
:083288009B06C0019E1B8CC1D6
:08329000019E9B86C0019E5BBC
:0832980004C15034FCFF0001E9
:0832A0009DDA1B01A79B06014A
:0832A8004DDB06020193DB027D
:0832B000C001931B83C00193D0
:0832B8005B03C101939B83C17C
:0832C0000186DA00C201A7C378
:0832C800020186DA80C201A7B1
:0832D000030340C01701016F68
:0832D8000D0040F00A01016F36
:0832E0000E1A01200C0002305F
:0832E8000701200B0003300771
:0832F000016F410101314601AB
:0832F800471BFC016FC3FF013D
:0833000093DB80C001939B03E5
:08330800C001A201007EFC01DE
:08331000A7C100010003023017
:08331800AA0182CB4020012133
:08332000C3FF13301F01471B1E
:08332800FE01939B03C001A20A
:0833300001707EFC016F030037
:083338000193CC0020016F019C
:08334000020130F90186CB0007
:0833480021014DC310000193A7
:08335000CB002101824B41205A
:08335800015805434001404407
:0833600033100193CC002001A1
:08336800824B4120015805438E
:08337000400140443310200825
:08337800018203412001910BC9
:0833800041200182CB40200135
:0833880021030014301D018235
:083390004B41200158054340A8
:083398000140443310016FC431
:0833A000FF20080191036120E8
:0833A800013009016FC3FF01B0
:0833B00091CB602001471BFED8
:0833B80001939B03C001A20177
:0833C000707EFC01860C012067
:0833C8002008018004D1260158
:0833D00053C4100001000302C8
:0833D800301401471BFE0186C1
:0833E000CC00200193DB00C0CA
:0833E80001A2012E50FC018638
:0833F000CC002001860C012035
:0833F800016FC5FF20080191DF
:08340000444120200801824430
:083408004120200801914361FD
:08341000200186CC0020016FB1
:08341800C4FF200801910381AB
:08342000260186CC00202008E3
:08342800018003D126015304C9
:08343000D1FF2008019003D137
:0834380026016F010001869BD3
:0834400083C101865B03C10199
:08344800861B83C00186DB0234
:08345000C001A7DA0601869B0A
:0834580006C0018E9B86C00135
:083460008E5B04C1018E1B8C80
:08346800C101471B0801F2013C
:083470008E5A84C0019E5A042B
:08347800C1013FC101471BF82F
:0834800001939B06C0019E1B95
:083488008CC1019E9B86C0016E
:083490009E5B04C15036FCFFF5
:0834980000019D1A8801A79BA9
:0834A0000601471BFE014DDB94
:0834A80006020193DB02C001E2
:0834B000931B83C001935B0331
:0834B800C101939B83C140F0A8
:0834C0000A01016F0C080186EE
:0834C800DA00C201A743034032
:0834D000F00A01016F0E1A0160
:0834D800A84C0001200D0002C8
:0834E0006F41010231080147B0
:0834E8001BFC016FC3FF0193FF
:0834F000DB80C001939B03C0C7
:0834F80001A201007EFC01A706
:08350000C10001000302307755
:083508000182CC002001210327
:083510000017300E0182CC000F
:0835180020200401210300172B
:08352000301601471BFE019368
:083528009B03C001A201707EAB
:08353000FC016F01100130B62F
:0835380001824C0120015885BD
:08354000414040F00101014C83
:08354800C4000001A7C3020149
:0835500082CB00200191CC00A8
:083558002040F00A010186C0C9
:083560008020014DC310004062
:08356800F00A010193C080206C
:0835700001471BFE01939B03C0
:08357800C001A201707EFC40BD
:08358000F00101014D0B0100F7
:08358800015884314C0191CD82
:08359000002001A201C007FCAC
:0835980001A7C1000190CB2046
:0835A00020016FC3FF0191CB74
:0835A8004020016FC3FF0191F7
:0835B000CB6020016FC3FF0195
:0835B80091CB8020016FC3FFDD
:0835C0000191CBA02001930B47
:0835C800002101930B00220118
:0835D000930B8022016F03023E
:0835D8000193CB8021016F83F8
:0835E0000001A7C3D00191CB4B
:0835E800C020016F0100018603
:0835F0009B83C101865B03C14E
:0835F80001861B83C00186DB84
:0836000002C001A7DA060186F1
:083608009B06C0018E9B86C0E9
:08361000018E5B04C1018E1B59
:083618008CC101471B0801F2FF
:08362000018E5A84C0019E5A7C
:0836280004C1013FC101471B71
:08363000F801939B06C0019E06
:083638001B8CC1019E9B86C0A2
:08364000019E5B04C15038FC3F
:08364800FF00019D9A3601A765
:083650009B0601471BFA014D26
:08365800DB86020193DB02C0D6
:0836600001931B83C001935B81
:0836680003C101939B83C10122
:0836700093DB03C2014CDA8078
:08367800DE01A7C3020182DAA2
:0836800000C201A7C39001A7DD
:08368800830340F00A01016F09
:083690000F1A01A84C000120F3
:083698000E00073009200401B7
:0836A000200E00073007016F46
:0836A80041000131F601588ECA
:0836B000414040F00101014C12
:0836B800C4000001A743030157
:0836C000471BFC016FC3FF0171
:0836C80093DB80C00193DB03DA
:0836D000C001A201007EFC0113
:0836D800A7C10001000302314B
:0836E000BE0180CD202001A7EE
:0836E800C380014DDB860001E7
:0836F00093DB00C001A201C040
:0836F80007FC0186DB00C001A4
:08370000471B0201A7010101B2
:0837080011030112302B01A294
:0837100001C007FC01A7C10084
:083718004018C000012103006C
:0837200012301601471BFE01E7
:0837280093DB03C001A2017054
:083730007EFC016F4103013131
:083738006A01471BFE01935BCF
:0837400003C001A201BB31FC32
:0837480001A7C10001A7030362
:0837500001010C123069016F48
:08375800430001A7C3D0019159
:08376000CC6020016FC3FF01E2
:08376800A7C3D00191CC202081
:08377000016FC3FF01A7C3D0E4
:083778000191CC402040F00A51
:08378000010182C0802101A7B4
:08378800C3D00191CC002040E8
:08379000F00201014D0C0100E3
:08379800015844314C40F00AD5
:0837A000010191C0802140F0FD
:0837A8000A010186C0002001A6
:0837B00047430040F00A01014B
:0837B80093C00020013F7A01DB
:0837C000471BFC0193DB82C0F2
:0837C80001935B03C001A201A3
:0837D0008232FC01471B0401D9
:0837D80086CB00200121030053
:0837E0001230720186CB0020BB
:0837E800016F040001A704D1E8
:0837F00020080191036124018E
:0837F800860B0120200801806E
:0838000004D1260153C410009D
:08380800010103123022014707
:083810001BFE01864B01204064
:08381800C01701014D0501007C
:08382000015804334C0193DB55
:0838280000C001A2012E50FCBA
:0838300001471BFE01864B015C
:083838002040C01701014D05FD
:083840000100015804334C01A2
:0838480093DB00C001A201A006
:083850004AFC013F6A40F00A46
:08385800010182C00022019170
:08386000CD002040F001010140
:083868004D0D010001588431EF
:083870004C40F00A010191C077
:08387800002240F00A01018664
:08388000C08020014743004015
:08388800F00A010193C0802049
:0838900001471BFE0193DB035D
:08389800C001A201707EFC01D9
:0838A0006F01000186DB03C289
:0838A80001869B83C101865BD0
:0838B00003C101861B83C00166
:0838B80086DB02C001A7DA065D
:0838C00001869B06C0018E9BEE
:0838C80086C0018E5B04C10102
:0838D0008E1B8CC101471B088F
:0838D80001F2018E5A84C001C7
:0838E0009E5A04C1013FBC0126
:0838E800471BF801939B06C089
:0838F000019E1B8CC1019E9B8F
:0838F80086C0019E5B04C15073
:083900003AFCFF00019D5A94FE
:0839080001A79B0601471BFE0D
:08391000014DDB06020193DB0F
:0839180002C001931B83C001F2
:08392000935B03C101939B833B
:08392800C10182DA00C201A70F
:08393000C39001A7030340F05E
:083938000A01016F0D1A01865E
:08394000DA80C201A783030134
:08394800A84C0001200C00074F
:083950003009200401200C00E5
:08395800073007016F41000177
:0839600030BD01208E00056F4F
:0839680041010530B201588C49
:08397000414040F00101014C4F
:08397800C4000001A7C3020115
:08398000471BFC016FC3FF01AE
:0839880093DB80C001935B0397
:08399000C001A201007EFC0150
:08399800A7C100010003023089
:0839A0007A0180CB202001A771
:0839A800C380014DDB86000124
:0839B00093DB00C001A201C07D
:0839B80007FC0186DB00C001E1
:0839C000471B0201A7010101F0
:0839C80011030112302B01A2D2
:0839D00001C007FC01A7C100C2
:0839D8004018C00001210300AA
:0839E00012301601471BFE0125
:0839E800935B03C001A2017012
:0839F0007EFC016F4103013070
:0839F8002601A78ED301918B7B
:083A0000C3200186DA00C301B6
:083A080093CB802101471BFE56
:083A100001935B03C001A20158
:083A1800707EFC016F0100014A
:083A2000869B83C101865B0354
:083A2800C101861B83C0018669
:083A3000DB02C001A7DA060168
:083A3800869B06C0018E9B86EF
:083A4000C0018E5B04C1018E80
:083A48001B8CC101471B0801A2
:083A5000F2018E5A84C0019EB0
:083A58005A04C1013FC10147FE
:083A60001BF801939B06C00155
:083A68009E1B8CC1019E9B8690
:083A7000C0019E5B04C1503E41
:083A7800FCFF00019D1A84010E
:083A8000A79B0601471BFA0198
:083A88004DDB06030193DB0294
:083A9000C001931B83C00193E8
:083A98005B03C101939B83C194
:083AA0000193DB03C201931B3B
:083AA80084C2014DDB86000120
:083AB0009E1B06C0014CDA80E8
:083AB800DE01A7C3020182DA5E
:083AC00000C201A7C39001A799
:083AC800830340F00A01016FC5
:083AD0000F06507EFCFF00010F
:083AD8009D189C40F00A010159
:083AE0006F101A01A84C00014F
:083AE800200E00073009200444
:083AF00001200E000730070160
:083AF8006F41000132CD0158BD
:083B00008E414040F00101017B
:083B08004CC4000001A74303B7
:083B100001471BFC016FC3FF1C
:083B18000193DB80C001931B47
:083B200004C001A201007EFCBB
:083B280001A7C1000100030226
:083B300031330180CD2020019A
:083B380021030017300C01808D
:083B4000CD20200121C30C1768
:083B4800301301471BFE01933D
:083B50001B04C001A081016FFC
:083B5800410201326E0182CF2F
:083B60000020012103001730D1
:083B68000E0182CF0020204075
:083B70000121030017301301CD
:083B7800471BFE01931B04C072
:083B800001A081016F41100159
:083B8800324101824F012001CE
:083B90005845414040F00201DC
:083B9800014CC4000001A70369
:083BA000030182CC0020019119
:083BA800CF002040F00A0101EA
:083BB00086C00020014DC31086
:083BB8000040F00A010193C076
:083BC0000020014DDB8600012D
:083BC80093DB00C0014DDB8618
:083BD0000001931B01C001A2DA
:083BD80001C007FC01861B017E
:083BE000C001471B020186DB56
:083BE80000C001471B0201A708
:083BF00041014018C000014D25
:083BF8000501800158C4324CA4
:083C000001A7C3D00191CC2003
:083C08002001A78E9301A78E95
:083C1000D301918C4320016FE8
:083C1800830001A7C3D0019154
:083C2000CC60200186DA80C2AD
:083C28000193CC80200186DA33
:083C300000C30193CC00210147
:083C380086DA80C30193CC8001
:083C40002101471BFC0193DB8D
:083C480082C001935B03C0017F
:083C5000A2018232FC01471BB6
:083C58000401471BFE01931B50
:083C600004C001A0810186CB24
:083C68000020012003000330DD
:083C70001F01471BFC01931B1F
:083C780083C001935B03C0014E
:083C8000A201302EFC01A7C1D6
:083C88000001A7430001313BDC
:083C900001471BFC016FC3FF9B
:083C98000193DB80C001931BC6
:083CA00004C001A201007EFC3A
:083CA80001A7C10001000302A5
:083CB00031150186CB00200153
:083CB800820C2120200801917B
:083CC0000321240186CB002042
:083CC80001820C4120200801DB
:083CD000910341240186CB00A1
:083CD8002001820C612020088C
:083CE00001910361240186CB70
:083CE800002001860C81202060
:083CF000080193038124018601
:083CF800CB002001860C012124
:083D00002008019303012501D5
:083D080086CB002001860C812E
:083D1000212008019303812525
:083D1800016F430001A7C3D0B5
:083D20000191CC6020016FC38A
:083D2800FF01A7C3D00191CCFB
:083D30002020016FC3FF01A771
:083D3800C3D00191CC40200131
:083D400082CF002001A7C3D0CF
:083D48000191CC002040F002C3
:083D500001014D0C01000158B6
:083D580044314C0191CF002021
:083D600001860B01202008017F
:083D68008004D1260153C410B0
:083D70000001010312302201E1
:083D7800471BFE01864B0120F0
:083D800040C01701014D0501CF
:083D880000015804334C0193C3
:083D9000DB00C001A2012E506E
:083D9800FC01471BFE01864BF4
:083DA000012040C01701014D94
:083DA800050100015804334C31
:083DB0000193DB00C001A20138
:083DB800A04AFC01471BFE01BB
:083DC000931B04C001A0810166
:083DC8006F0100018E1B06C013
:083DD00001471B0201861B8460
:083DD800C20186DB03C2018673
:083DE0009B83C101865B03C156
:083DE80001861B83C00186DB8C
:083DF00002C001A7DA060186FA
:083DF8009B06C0018E9B86C0F2
:083E0000018E5B04C1018E1B61
:083E08008CC101471B0801F207
:083E1000018E5A84C0019E5A84
:083E180004C1013FAE01471B8C
:083E2000F801939B06C0019E0E
:083E28001B8CC1019E9B86C0AA
:083E3000019E5B04C15041FC3E
:083E3800FF00019D5A7701A76C
:083E40009B0601471BF8014D30
:083E4800DB86030193DB02C0DD
:083E500001931B83C001935B89
:083E580003C101939B83C1012A
:083E600093DB03C201931B84F4
:083E6800C201935B04C3014D8C
:083E7000DB8600019E1B06C069
:083E7800014CDA80DE01A7C352
:083E8000020182DA00C201A771
:083E8800C39001A7C30340F041
:083E90000A01016F1006507ECB
:083E9800FCFF00019D189C4095
:083EA000F00A01016F111A0183
:083EA800A84C0001200F0007E7
:083EB0003009200401200F007D
:083EB800073007016F41000112
:083EC00032D101588F4140404E
:083EC800F00101014CC40000EF
:083ED00001A7830301471BFC5D
:083ED800016FC3FF0193DB80C1
:083EE000C001935B04C001A2C4
:083EE80001007EFC01A7C100EE
:083EF0000100030231330180DF
:083EF800CE2020012103001778
:083F0000300C0180CE202001ED
:083F080021C30C17301301471F
:083F10001BFE01935B04C001DC
:083F1800A081016F410201329A
:083F2000720182D00020012192
:083F2800030017300E0182D0E6
:083F30000020204001210300E4
:083F380017301301471BFE01C5
:083F4000935B04C001A08101A4
:083F48006F41100132450182B6
:083F50005001200158454140D9
:083F580040F00201014CC4001D
:083F60000001A703030182CC5C
:083F680000200191D00020406F
:083F7000F00A010186C00020E7
:083F7800014DC3100040F00AE6
:083F8000010193C00020014D76
:083F8800DB86000193DB00C0A1
:083F9000014DDB860001931BCB
:083F980001C001A201C007FCF9
:083FA00001861B01C001471B53
:083FA800020186DB00C00147A5
:083FB0001B0201A741014018AA
:083FB800C000014D050180016C
:083FC00058C4324C01A7C3D024
:083FC8000191CC202001A7CFDC
:083FD0009301A7CFD30191CCAE
:083FD8004320016F830001A7E3
:083FE000C3D00191CC60200167
:083FE80086DA80C20193CC804F
:083FF000200186DA00C30193F1
:083FF800CC00210186DA80C330
:084000000193CC802101471B54
:08400800FC0193DB82C001936F
:084010009B03C001A2018232F2
:08401800FC01471B0401471BDA
:08402000FE01935B04C001A046
:08402800810186CB002001207C
:08403000030003302301471BCC
:08403800FC01931B83C00193FE
:084040009B03C001A201302E18
:08404800FC01A7C10001A74320
:084050000301A74D0001313B03
:0840580001471BFC016FC3FFCF
:084060000193DB80C001935BBA
:0840680004C001A201007EFC6E
:0840700001A7C10001000302D9
:0840780031150186CB00200187
:08408000820C212020080191AF
:084088000321240186CB002076
:0840900001820C41202008010F
:08409800910341240186CB00D5
:0840A0002001820C61202008C0
:0840A80001910361240186CBA4
:0840B000002001860C81202094
:0840B800080193038124018635
:0840C000CB002001860C012158
:0840C80020080193030125010A
:0840D00086CB002001860C8163
:0840D80021200801930381255A
:0840E000016F430001A7C3D0EA
:0840E8000191CC6020016FC3BF
:0840F000FF01A7C3D00191CC30
:0840F8002020016FC3FF01A7A6
:08410000C3D00191CC40200165
:0841080082D0002001A7C3D002
:084110000191CC002040F002F7
:0841180001014D0C01000158EA
:0841200044314C0191D0002054
:0841280001860B0120200801B3
:084130008004D1260153C410E4
:08413800000101031230220115
:08414000471BFE01864B012024
:0841480040C01701014D050103
:0841500000015804334C0193F7
:08415800DB00C001A2012E50A2
:08416000FC01471BFE01864B28
:08416800012040C01701014DC8
:08417000050100015804334C65
:084178000193DB00C001A2016C
:08418000A04AFC01471BFE01EF
:08418800935B04C001A081015A
:084190006F0100018E1B06C047
:0841980001471B0201865B04D4
:0841A000C301861B84C20186E5
:0841A800DB03C201869B83C109
:0841B00001865B03C101861BBF
:0841B80083C00186DB02C00197
:0841C000A7DA0601869B06C088
:0841C800018E9B86C0018E5B95
:0841D00004C1018E1B8CC1012A
:0841D800471B0801F2018E5A99
:0841E00084C0019E5A04C101D4
:0841E8003FA901471BF80193F8
:0841F0009B06C0019E1B8CC15F
:0841F800019E9B86C0019E5B45
:0842000004C15046FCFF00015F
:084208009DDAB901A79B060134
:08421000471BF8014DDB86039A
:084218000193DB02C001931BBE
:0842200083C001935B03C1019F
:08422800939B83C10193DB03AA
:08423000C201931B84C201933B
:084238005B04C3014DDB06012C
:08424000019E1B06C0019E5BFC
:0842480086C00186DA80C30183
:08425000A743030186DA00C355
:0842580001A783030186DA804F
:08426000C201A7C3030186DAC5
:0842680000C401A74304507ECD
:08427000FCFF00019D189C50A9
:084278007EFCFF00019D19808E
:0842800001A84C000182DA00E4
:08428800C20120030007300E03
:084290000182DA00C2200401E2
:08429800200300073007016F4D
:0842A00041000133F301825AD1
:0842A80001C201A74591015874
:0842B00085414040F0010101CD
:0842B8004CC4000001A7030340
:0842C00001471BFC016FC3FF65
:0842C8000193DB80C040F00A05
:0842D00001016F031A0193DBE9
:0842D80000C001A09101A7C183
:0842E0000001000302305F0140
:0842E80080CC2020012103001D
:0842F00017300C0180CC2020E6
:0842F8000121C30C17301B016A
:08430000471BFE40F00A010119
:084308006F031A0193DB00C0F2
:0843100001A081016F410201CF
:08431800337E01471BFE0193F7
:084320001B03C001A201BB3127
:08432800FC01A7C1000193DABA
:0843300000DF01471BFE40F015
:084338000A01016F031A019351
:08434000DB00C001A081018631
:08434800DA00DF01200300038D
:08435000325201471BFC016F12
:08435800C3FF0193DB80C040AC
:08436000F00A01016F031A01CC
:0843680093DB00C001A09101EC
:08437000A7C100010103123096
:084378003F01A2014B4AFC01C8
:08438000A7C10001A7C302015F
:08438800471BFE40C0170101B4
:084390004D0B0100015804333C
:084398004C0193DB00C001A2FF
:0843A000019F4CFC01471BFECC
:0843A80040F00A01016F031A45
:0843B0000193DB00C001A081B4
:0843B80020080180CBD0260192
:0843C00054C320002008019005
:0843C800CBD0260182DA00C20D
:0843D00020080191CB802601B9
:0843D8006FC3FF20080191CB27
:0843E000402001471BFC016FA6
:0843E800C3FF0193DB80C0401C
:0843F000F00A01016F031A013C
:0843F80093DB00C001A091015C
:08440000A7C100010103123005
:08440800B20182CC4020012228
:08441000030026303D016FC3DB
:08441800FF20080191CB602098
:0844200040C01701014D0B0122
:0844280000015804334C01911E
:08443000CC402040C01701013F
:084438004D0B01000158043393
:084440004C0191CC6020016FDA
:0844480043000193CC002101A7
:0844500030550182CC602020F0
:08445800080191CB60200182F4
:084460004C61200158054340A6
:0844680040C01701014CC40023
:084470000040C01701014D4B93
:084478000100015805434C202E
:0844800008019103412040C036
:084488001701014D0B010001B9
:084490005804334C0191CC608B
:08449800200186CC0021014740
:0844A00043000193CC0021014F
:0844A800471BFE40F00A010170
:0844B0006F031A0193DB00C049
:0844B80001A081010111123085
:0844C0005D01471BFC016FC305
:0844C800FF0193DB80C040F00E
:0844D0000A01016F031A0193B8
:0844D800DB00C001A09101A767
:0844E000C10001020322303685
:0844E80001471BFC01935B84FA
:0844F000C040C01701014D0B93
:0844F8000100015804334C01DE
:0845000093DB00C001A2015E83
:084508004EFC01471BFE40F0D0
:084510000A01016F031A019377
:08451800DB00C001A08101A23B
:08452000014B4AFC01A7C10098
:0845280001A703042008014C67
:08453000D000840182C3602069
:0845380001210300126F810252
:08454000123155016F03000167
:08454800A7C3D020080191D0A7
:084550006024016FC3FF01A705
:08455800C3D020080191D040FE
:0845600024016FC3FF01A7C392
:08456800D020080191D02024AD
:0845700001010F20081386D0A1
:0845780080241393CF00200101
:08458000010E20081386D00093
:08458800251393CE0020010170
:084590000D20081386D08025E0
:084598001393CD0020016F0117
:0845A000000130F401000F03DB
:0845A80086DA00DF03860381BF
:0845B0002003930F012001001C
:0845B8000E0386DA00DF038622
:0845C00003012103930E012009
:0845C80001000D0386DA00DF9B
:0845D000038603812103930D12
:0845D800012001471BFC016FEB
:0845E000C3FF0193DB80C04022
:0845E800F00A01016F031A0142
:0845F00093DB00C001A0910162
:0845F800A7C10001000302301D
:08460000930186DA00DF016F6F
:08460800440001A704D1019157
:084610000361200186DA00DFDE
:08461800016FC4FF01A704D1EA
:0846200001910321200186DA5B
:0846280000DF016FC4FF01A7D0
:0846300004D1019103412001B6
:0846380086DA00DF40F00A0100
:08464000018200812101A704A1
:08464800D1019103012001865C
:084650005A01DF40F0020101F4
:084658004D0501000158443139
:084660004C40F00A010191C079
:08466800802140F00A010186E7
:08467000C00020014743004097
:08467800F00A010193C00020CB
:0846800001471BFE40F00A0196
:08468800016F031A0193DB002E
:08469000C001A081016F0100CF
:08469800018E5B86C0018E1B40
:0846A00006C001471B0401865E
:0846A8005B04C301861B84C200
:0846B0000186DB03C201869BB9
:0846B80083C101865B03C1010F
:0846C000861B83C00186DB02AA
:0846C800C001A7DA0601869B80
:0846D00006C0018E9B86C001AB
:0846D8008E5B04C1018E1B8CF6
:0846E000C101471B0801F201B2
:0846E8008E5A84C0019E5A04A1
:0846F000C1013FA401471BF8C2
:0846F80001939B06C0019E1B0B
:084700008CC1019E9B86C001E3
:084708009E5B04C15047FCFF59
:0847100000019D5ADF01A79B87
:084718000601471BF6016F03C7
:08472000000193DB00C20186D9
:08472800DA80C30193DB80C1BC
:084730000186DA00C30193DBEE
:0847380000C10186DA80C20114
:0847400093DB80C00186DA0062
:08474800C20193DB00C001A1D6
:0847500001000001471B0A01F2
:08475800A7C10001A743000105
:08476000A7DA0601869B06C0E2
:08476800018E9B86C0018E5BEF
:0847700004C1018E1B8CC10184
:08477800471B0801F2018E5AF3
:0847800084C0019E5A04C1012E
:084788003FD501471BF8019326
:084790009B06C0019E1B8CC1B9
:08479800019E9B86C0019E5B9F
:0847A00004C1504AFCFF0001B6
:0847A8009D9A8301A79B060105
:0847B000471BFC014DDB8603F1
:0847B8000193DB02C001931B19
:0847C00083C001935B03C101FA
:0847C800939B83C10193DB0305
:0847D000C201931B84C2019396
:0847D8005B04C3014DDB860008
:0847E000019E1B06C00186DAF0
:0847E80080C301A74303018611
:0847F000DA00C301A7830301F5
:0847F80086DA80C201A7C303A9
:084800000182DA00C201A7C326
:084808009001A703040186DA08
:0848100000C401A74304507E1F
:08481800FCFF00019D189C014A
:08482000A84C00012010000764
:084828003009200401201000FA
:08483000073007016F41000190
:08483800318A01589041404013
:08484000F00101014CC400006D
:0848480001A7030301471BFC5B
:08485000016FC3FF0193DB803F
:08485800C040F00A01016F03EA
:084860001A0193DB00C001A264
:0848680001007EFC01A7C10064
:0848700001000302306D01801C
:08487800CC20200121030013F4
:08488000301B01471BFE40F054
:084888000A01016F031A0193FC
:08489000DB00C001A081016FF3
:08489800410201312701215109
:0848A0000013301A01471BFE52
:0848A80001931B03C001A201F2
:0848B000BB31FC01A7C10001AE
:0848B800A7C3020130110182C7
:0848C000CC802030FF00015301
:0848C800C3F0FF01A7C30201C8
:0848D000471BFE40F00A010144
:0848D8006F031A0193DB00C01D
:0848E00001A08101200B000280
:0848E8006F81020230D60100CD
:0848F0000F0386CB8020039327
:0848F800CF002001000E038631
:08490000CB00210393CE00203F
:0849080001000D0386CB8021A4
:084910000393CD0020012051AA
:08491800000330A401471BFC61
:08271800014CC40080016F04B4
:082720001501A704D1200601F8
:082728009103212601865A816C
:08273000DF2008014E050180C5
:082738004018C000014CC40070
:0827400080016F040001A704F1
:08274800D12006019103412696
:0827500001865A81DF20080117
:082758004E0501804018C0008D
:08276000014CC40080016F046C
:082768000001A704D1200601C5
:082770009103612601865A81E4
:08277800DF2008014E0501807D
:082780004018C000014CC40028
:08278800802006019003F026F9
:0827900001865A81DF200801D7
:082798004E0501804018C0004D
:0827A000014CC4008020060179
:0827A8009003002701865A810D
:0827B000DF2008014E05018045
:0827B8004018C000014CC400F0
:0827C000802006019003C026F1
:0827C80001865A81DF2008019F
:0827D0004E0501804018C00015
:0827D800014CC4008020060141
:0827E0009003D02601865A8106
:0827E800DF2008014E0501800D
:0827F0004018C000014CC400B8
:0827F80080016F0410200601AE
:08280000900311270186DA8024
:08280800DF014743000193DAF0
:0828100080DF013C9601471B2B
:08281800FE016F03090193DBCF
:0828200000C001A201C807FC81
:0828280001471B0201A201801F
:0828300065FC01A2010664FC35
:0828380001471BFE50F0FCFFFC
:0828400000016F03080193DBA6
:0828480000C001A2011F96FC73
:0828500001471B02016F010AA0
:0828580030060C01914000A0C4
:0828600001931A80DF0186DA02
:0828680080DF012003020630AD
:082870002C01861A81DF014EE4
:08287800C42000016F450001BE
:08288000A7051140C02701016A
:08288800910301210186DA80B1
:08289000DF014743000193DA68
:0828980080DF013FC801931A23
:0828A00080DF0186DA80DF0110
:0828A80020034006337A01868B
:0828B0005A81DF2010014E05E2
:0828B800010040C01701014CB2
:0828C000C4000001861A81DF4B
:0828C8002008019103A1260183
:0828D000865A81DF2010014E41
:0828D80005010040C0170101D9
:0828E0004CC4000001865A817E
:0828E800DF014C05110020087E
:0828F000019103012001865A49
:0828F80081DF2010014E0501F3
:082900000040C01701014CC4A6
:082908000000016F450001A76A
:082910000511200801910321CB
:0829180020016F410A30060C9A
:0829200001914000A001865A5C
:0829280081DF2010014E0501C2
:082930000040C01701014CC476
:0829380000002008019003D00B
:082940002601865A81DF2010F8
:08294800014E05010040C0171B
:0829500001014CC40000016FFD
:08295800040E2008019003C1E8
:082960002601865A81DF2010D8
:08296800014E05010040C017FB
:0829700001014CC40000200825
:08297800019003E026016F81CC
:082980000B30060C0191400030
:08298800A001865A81DF201036
:08299000014E05010040C017D3
:0829980001014CC4000040D015
:0829A000E100016F0600018651
:0829A8005A82DF2010014E09E4
:0829B0000200016F0A02014E52
:0829B8004A02000140487210C0
:0829C0000140C65110016FC770
:0829C8007F014E8781000140F0
:0829D00085411020080193036A
:0829D800812001865A81DF20F5
:0829E00010014E05010040C08A
:0829E8001701014CC40000407E
:0829F000D0F100016F060001A7
:0829F800865A82DF2010014E17
:082A0000090200016F0A020146
:082A08004E4A02000140487231
:082A1000100140C65110016FD6
:082A1800C77F014E8781000118
:082A20004085411020080193DC
:082A2800030121016F810A3056
:082A3000060C01914000A00119
:082A3800865A81DF2010014ED7
:082A400005010040C01701016F
:082A48004CC4000040D0C100A5
:082A5000016F060001865A82A5
:082A5800DF2020014E090200FD
:082A6000016F0A02014E4A0257
:082A680000014048721001401A
:082A7000C651102003016FC7DD
:082A7800FF014E8781000140BF
:082A80008541102008019303B9
:082A8800812101865A81DF2043
:082A900010014E05010040C0D9
:082A98001701014CC4000020ED
:082AA00008019003F0260186F5
:082AA8005A81DF2010014E05E8
:082AB000010040C01701014CB8
:082AB800C40000200801930393
:082AC0000022016FC10A30067B
:082AC8000C01914000A0016F18
:082AD0008400014EC400000166
:082AD80086DA81DF2010014EB7
:082AE00087010040C01701014D
:082AE8004C4601002008014CDE
:082AF000050186016F4600019B
:082AF800A7461101C1C45020E2
:082B0000016F8400014EC410B6
:082B0800000186DA81DF2010D4
:082B1000014E87010040C017CF
:082B180001014C4601002008F8
:082B2000014C050186016F461E
:082B28000001A7461101C1C420
:082B30005020016F8400014EEA
:082B3800C420000186DA81DFF0
:082B40002010014E8701004046
:082B4800C01701014C46010019
:082B50002008014C050186017B
:082B58006F460001A7461101C0
:082B6000C1C45020016F840084
:082B6800014EC430000186DAC1
:082B700081DF2010014E8701F6
:082B78000040C01701014C46AA
:082B800001002008014C0501D1
:082B880086016F460001A7461B
:082B90001101C1C45020016FC6
:082B9800010B30060C01914015
:082BA00000A00186DA80DF01CC
:082BA800218300163041018673
:082BB0005A81DF2010014E05DF
:082BB800010040C01701014CAF
:082BC000C4000001861A81DF48
:082BC8002008019003E1260141
:082BD000865A81DF2010014E3E
:082BD80005010040C0170101D6
:082BE0004CC40000016F040663
:082BE8002008019003C1260141
:082BF000865A81DF2010014E1E
:082BF80005010040C0170101B6
:082C00004CC400002008019300
:082C0800038028016FC10B30AD
:082C1000060C01914000A00137
:082C180086DA80DF014743006A
:082C20000193DA80DF013C7A28
:082C2800016F0640014D461149
:082C3000002010014E05010017
:082C380040C01701014CC4006B
:082C400000016F450001A7052A
:082C4800112008019103012095
:082C5000016F830040C0270161
:082C58000191C00020016F0191
:082C60000C30060C019140004C
:082C6800A001471BFE016F03F0
:082C7000000193DB00C001A28A
:082C780001704BFC01471BFE3B
:082C8000016F43000193DB002A
:082C8800C001A201704BFC2009
:082C900010016F0500014E0563
:082C9800010040C01701014CCE
:082CA000C40000016F040220D2
:082CA80008019003D126201061
:082CB000016F0500014E051142
:082CB8000040C01701014CC4EB
:082CC0000000016F040220086E
:082CC800019003D126016F41C8
:082CD0000C30060C01914000DC
:082CD800A001471BFE016F0380
:082CE000000193DB00C001A21A
:082CE80001314BFC016F4400B7
:082CF00001A7C41040C0270138
:082CF8000191C0802001471B7F
:082D0000FC5007FCFF00016F0D
:082D080003EC0193DB80C00124
:082D10006F03010193DB00C019
:082D180001A201187EFC014735
:082D20001BFC5007FCFF000141
:082D28006F83ED0193DB80C015
:082D3000016F83000193DB0039
:082D3800C001A201187EFC019C
:082D4000471BFC5007FCFF00DB
:082D4800016F03EF0193DB8032
:082D5000C0016F83300193DB29
:082D580000C001A201187EFC7D
:082D600001471BFC5007FCFFBA
:082D680000016F83F00193DB11
:082D700080C0016FC330019324
:082D7800DB00C001A201187E7E
:082D8000FC016F810C30060C10
:082D880001914000A0016FC1A0
:082D900000300F0C019140809E
:082D9800BD01471BF6016F03AA
:082DA000000193DB00C2016F8A
:082DA80003000193DB80C15020
:082DB00056FCFF00016F0394C3
:082DB8000193DB00C1016F0370
:082DC000000193DB80C0016FEC
:082DC80003060193DB00C001CA
:082DD000A201B01CFC01471B2D
:082DD8000A016FC10D30060C69
:082DE00001914000A001471B16
:082DE800F6016F43000193DBCB
:082DF00000C2016F0300019312
:082DF800DB80C15087FCFF00E5
:082E0000016FC3C50193DB0063
:082E0800C1016F03000193DB1F
:082E100080C0016FC3060193AD
:082E1800DB00C001A201B01CA7
:082E2000FC01471B0A016F01D0
:082E28000D30060C0191400081
:082E3000A001471BF6016F032E
:082E3800000193DB00C2016FF1
:082E400003000193DB80C15087
:082E480018FCFF00016F0328D4
:082E50000193DB00C1016F03D7
:082E5800000193DB80C0016F53
:082E6000C30F0193DB00C00168
:082E6800A201B01CFC01471B94
:082E70000A016F410D30060C50
:082E780001914000A040563416
:082E800012016F039E4016C011
:082E8800000193C08024016FDA
:082E9000010E30060C01914017
:082E980000A001302701200217
:082EA00001033020400F000186
:082EA800019340803801471B33
:082EB000FE016F83160193DBA4
:082EB80000C001A201C807FCE3
:082EC00001471B02502EFCFF2C
:082EC80000019DDABA01A7DA4E
:082ED0000601869B06C0018E7D
:082ED8009B86C0018E5B04C162
:082EE000018E1B8CC101471B90
:082EE8000801F2018E5A84C0BA
:082EF000019E5A04C1013FD507
:082EF8000000000000000000D2
:082F000001471BF801939B0639
:082F0800C0019E1B8CC1019E5B
:082F10009B86C0019E5B04C119
:082F18005032FCFF00019D9AFC
:082F20009F01A79B0601471B5E
:082F2800FA014DDB8603019361
:082F3000DB02C001931B83C00A
:082F380001935B03C101939BAF
:082F400083C10193DB03C20110
:082F4800931B84C201935B049A
:082F5000C30186DA00C201A7EB
:082F5800C3020186DA80C20108
:082F6000A7030340F00A010180
:082F68006F0E0040F00A0101A8
:082F70006F0F0640F0020101A1
:082F78006F1100016F10000150
:082F8000471BFC016FC3FF01B8
:082F880093DB80C040F00A0158
:082F9000016F031A0193DB003D
:082F9800C001A201207FFC0131
:082FA000A7C100010003023289
:082FA800900186CB00220147D5
:082FB00043000193CB00220154
:082FB80082CBC02001210300BF
:082FC0001230110121830012FF
:082FC800300D0121430012301D
:082FD000AC0131F70131F401FD
:082FD80086CB002201860B816B
:082FE0002101120301283092C7
:082FE80001820B812001584415
:082FF000314001B2D130200193
:082FF80091DA60DF01825A61E9
:08300000DF01A74591015845CD
:08300800414001404434100175
:08301000A7430301820B81209C
:08301800015844314001820F10
:08302000012001A704D101C148
:08302800D140200182CB802081
:083030000191CF00200186CEC2
:08303800002001474300019351
:08304000CE00200186CB002226
:08304800014DC310000193CB00
:0830500000220182DA60DF01B9
:0830580091CB80200186CB80A2
:08306000220123C3FF3B86CBD4
:0830680080223B4743003B932B
:08307000CB8022016FD00101A9
:083078003F5D01314E0186CBE2
:08308000002201860B812101F1
:083088001203012830550182FA
:08309000CF002001A7C3D0010D
:0830980091CC002001404C44E2
:0830A00014015844314C019168
:0830A800CF00200186CE0020BC
:0830B000014743000193CE002B
:0830B800200186CB80220123D8
:0830C000C3FF3B86CB80223BDD
:0830C8004743003B93CB80223B
:0830D000016FD0010186CB0065
:0830D80022014DC31000019319
:0830E000CB00220186CB002287
:0830E80001860B812101120396
:0830F000012830B201824B817E
:0830F800200158454140014050
:0831000044341001A743030150
:08310800404D4414015844310C
:083110004C01820BA12030FFED
:0831180000015304F1FF011353
:08312000030132301A01A70D72
:083128000301824D0120015852
:08313000454140014044341008
:0831380001A74303013FC80198
:08314000404C441401584431D5
:083148004C0191CBA020018293
:08315000CF002001A7C3D0014C
:0831580091CD002001404D441F
:0831600014015844314C0191A7
:08316800CF00200186CE0020FB
:08317000014743000193CE006A
:08317800200186CB8022012317
:08318000C3FF3B86CB80223B1C
:083188004743003B93CB80227A
:083190000186CB0022014DC3B2
:0831980010000193CB0022019D
:0831A0006FD001013F3D012247
:0831A800D00123301E01471B7A
:0831B000FE40F00A01016F036B
:0831B8001A0193DB00C001A223
:0831C00001907FFC01A7500003
:0831C8000130720182CBA0204E
:0831D00001210300173020016A
:0831D800820BA12001584431D3
:0831E0004001404C5414015859
:0831E80045414C01A704D1018F
:0831F000C1D1402001300F01A4
:0831F800404C4414015844311D
:083200004C0191CB802001403C
:083208004C4414015844314C00
:083210000191CBA020016FC366
:08321800FF01A7C3D00191CC16
:08322000002001471BFE40F0F5
:083228000A01016F031A019372
:08323000DB00C001A201907F48
:08323800FC01A7500001865BB8
:0832400004C301861B84C201D6
:0832480086DB03C201869B83B3
:08325000C101865B03C1018688
:083258001B83C00186DB02C0EC
:0832600001A7DA0601869B06B6
:08326800C0018E9B86C0018E9F
:083270005B04C1018E1B8CC13F
:0832780001471B0C01F2018E5D
:083280005A84C0019E5A04C1EA
:08328800013FB201471BF801F0
:08329000939B06C0019E1B8CFC
:08329800C101A79B0601471BC1
:0832A000FC014DDB86010193E6
:0832A800DB02C001931B83C08F
:0832B00001935B03C10186DA02
:0832B80000C201A7C302016F6F
:0832C000030001A703030186CE
:0832C800CB00220100030230DB
:0832D0005A0186CB0022014DDA
:0832D800C310000193CB00229A
:0832E0000182CB802001A7430D
:0832E8000301210D0017303B2A
:0832F00001584D414040F0027D
:0832F80001014CC4000001A714
:0833000003030182CC0020014F
:0833080091CB80200182CB80F3
:083310002001220300276FC316
:08331800FF2791CBA02001A7C3
:083320004D9301A74DD301916B
:083328004C032001A74C000139
:08333000865B03C101861B83CB
:08333800C00186DB02C001A701
:08334000DA0601869B06C001BC
:083348008E1B8CC101471B0A1A
:0833500001F201471BF8019393
:083358009B06C0019E1B8CC105
:08336000019E9B86C0019E5BEB
:0833680004C15035FCFF000117
:083370009DDA4F01A79B060145
:083378004DDB06020193DB02AC
:08338000C001931B83C00193FF
:083388005B03C101939B83C1AB
:083390000186DA00C201A7C3A7
:08339800020186DA80C201A7E0
:0833A000030340C01701016F97
:0833A8000D0040F00A01016F65
:0833B0000E1A01200C0002308E
:0833B8000701200B00033007A0
:0833C000016F410101314601DA
:0833C800471BFC016FC3FF016C
:0833D00093DB80C001939B0315
:0833D800C001A201207FFC01ED
:0833E000A7C100010003023047
:0833E800AA0182CB4020012163
:0833F000C3FF13301F01471B4E
:0833F800FE01939B03C001A23A
:0834000001907FFC016F030045
:083408000193CC0020016F01CB
:08341000020130F90186CB0036
:0834180021014DC310000193D6
:08342000CB002101824B412089
:08342800015805434001404436
:0834300033100193CC002001D0
:08343800824B412001580543BD
:08344000400140443310200854
:08344800018203412001910BF8
:0834500041200182CB40200164
:0834580021030014301D018264
:083460004B41200158054340D7
:083468000140443310016FC460
:08347000FF2008019103612017
:08347800013009016FC3FF01DF
:0834800091CB602001471BFE07
:0834880001939B03C001A201A6
:08349000907FFC01860C012075
:083498002008018004D1260187
:0834A00053C4100001000302F7
:0834A800301401471BFE0186F0
:0834B000CC00200193DB00C0F9
:0834B80001A2014C51FC018648
:0834C000CC002001860C012064
:0834C800016FC5FF200801910E
:0834D000444120200801824460
:0834D80041202008019143612D
:0834E000200186CC0020016FE1
:0834E800C4FF200801910381DB
:0834F000260186CC0020200813
:0834F800018003D126015304F9
:08350000D1FF2008019003D166
:0835080026016F010001869B02
:0835100083C101865B03C101C8
:08351800861B83C00186DB0263
:08352000C001A7DA0601869B39
:0835280006C0018E9B86C00164
:083530008E5B04C1018E1B8CAF
:08353800C101471B0801F2016B
:083540008E5A84C0019E5A045A
:08354800C1013FC101471BF85E
:0835500001939B06C0019E1BC4
:083558008CC1019E9B86C0019D
:083560009E5B04C15036FCFF24
:0835680000019D1ABC01A79BA4
:083570000601471BFE014DDBC3
:0835780006020193DB02C00111
:08358000931B83C001935B0360
:08358800C101939B83C140F0D7
:083590000A01016F0C0801861D
:08359800DA00C201A743034061
:0835A000F00A01016F0E1A018F
:0835A800A84C0001200D0002F7
:0835B0006F41010231080147DF
:0835B8001BFC016FC3FF01932E
:0835C000DB80C001939B03C0F6
:0835C80001A201207FFC01A714
:0835D000C10001000302307785
:0835D8000182CC002001210357
:0835E0000017300E0182CC003F
:0835E80020200401210300175B
:0835F000301601471BFE019398
:0835F8009B03C001A201907FBA
:08360000FC016F01100130B65E
:0836080001824C0120015885EC
:08361000414040F00101014CB2
:08361800C4000001A7C3020178
:0836200082CB00200191CC00D7
:083628002040F00A010186C0F8
:083630008020014DC310004091
:08363800F00A010193C080209B
:0836400001471BFE01939B03EF
:08364800C001A201907FFC40CB
:08365000F00101014D0B010026
:08365800015884314C0191CDB1
:08366000002001A2018808FC12
:0836680001A7C1000190CB2075
:0836700020016FC3FF0191CBA3
:083678004020016FC3FF019126
:08368000CB6020016FC3FF01C4
:0836880091CB8020016FC3FF0C
:083690000191CBA02001930B76
:08369800002101930B00220147
:0836A000930B8022016F03026D
:0836A8000193CB8021016F8327
:0836B0000001A7C3D00191CB7A
:0836B800C020016F0100018632
:0836C0009B83C101865B03C17D
:0836C80001861B83C00186DBB3
:0836D00002C001A7DA06018621
:0836D8009B06C0018E9B86C019
:0836E000018E5B04C1018E1B89
:0836E8008CC101471B0801F22F
:0836F000018E5A84C0019E5AAC
:0836F80004C1013FC101471BA1
:08370000F801939B06C0019E35
:083708001B8CC1019E9B86C0D1
:08371000019E5B04C15039FC6D
:08371800FF00019D9A6A01A760
:083720009B0601471BFA014D55
:08372800DB86020193DB02C005
:0837300001931B83C001935BB0
:0837380003C101939B83C10151
:0837400093DB03C2014CDA80A7
:08374800DE01A7C3020182DAD1
:0837500000C201A7C39001A70C
:08375800830340F00A01016F38
:083760000F1A01A84C00012022
:083768000E00073009200401E6
:08377000200E00073007016F75
:0837780041000131F601588EF9
:08378000414040F00101014C41
:08378800C4000001A743030186
:08379000471BFC016FC3FF01A0
:0837980093DB80C00193DB0309
:0837A000C001A201207FFC0121
:0837A800A7C10001000302317A
:0837B000BE0180CD202001A71D
:0837B800C380014DDB86000116
:0837C00093DB00C001A20188A7
:0837C80008FC0186DB00C001D2
:0837D000471B0201A7010101E2
:0837D80011030112302B01A2C4
:0837E000018808FC01A7C100EB
:0837E8004018C000012103009C
:0837F00012301601471BFE0117
:0837F80093DB03C001A2019064
:083800007FFC016F410301315F
:083808006A01471BFE01935BFE
:0838100003C001A2018B32FC90
:0838180001A7C10001A7030391
:0838200001010C123069016F77
:08382800430001A7C3D0019188
:08383000CC6020016FC3FF0111
:08383800A7C3D00191CC2020B0
:08384000016FC3FF01A7C3D013
:083848000191CC402040F00A80
:08385000010182C0802101A7E3
:08385800C3D00191CC00204017
:08386000F00201014D0C010012
:08386800015844314C40F00A04
:08387000010191C0802140F02C
:083878000A010186C0002001D5
:0838800047430040F00A01017A
:0838880093C00020013F7A010A
:08389000471BFC0193DB82C021
:0838980001935B03C001A201D2
:0838A0005233FC01471B040137
:0838A80086CB00200121030082
:0838B0001230720186CB0020EA
:0838B800016F040001A704D117
:0838C0002008019103612401BD
:0838C800860B0120200801809D
:0838D00004D1260153C41000CD
:0838D800010103123022014737
:0838E0001BFE01864B01204094
:0838E800C01701014D050100AC
:0838F000015804334C0193DB85
:0838F80000C001A2014C51FCCB
:0839000001471BFE01864B018B
:083908002040C01701014D052C
:083910000100015804334C01D1
:0839180093DB00C001A2017065
:083920004BFC013F6A40F00A74
:08392800010182C0002201919F
:08393000CD002040F00101016F
:083938004D0D0100015884311E
:083940004C40F00A010191C0A6
:08394800002240F00A01018693
:08395000C08020014743004044
:08395800F00A010193C0802078
:0839600001471BFE0193DB038C
:08396800C001A201907FFC01E7
:083970006F01000186DB03C2B8
:0839780001869B83C101865BFF
:0839800003C101861B83C00195
:0839880086DB02C001A7DA068C
:0839900001869B06C0018E9B1D
:0839980086C0018E5B04C10131
:0839A0008E1B8CC101471B08BE
:0839A80001F2018E5A84C001F6
:0839B0009E5A04C1013FBC0155
:0839B800471BF801939B06C0B8
:0839C000019E1B8CC1019E9BBE
:0839C80086C0019E5B04C150A2
:0839D0003BFCFF00019D5AC8F9
:0839D80001A79B0601471BFE3D
:0839E000014DDB06020193DB3F
:0839E80002C001931B83C00122
:0839F000935B03C101939B836B
:0839F800C10182DA00C201A73F
:083A0000C39001A7030340F08D
:083A08000A01016F0D1A01868D
:083A1000DA80C201A783030163
:083A1800A84C0001200C00077E
:083A20003009200401200C0014
:083A2800073007016F410001A6
:083A300030BD01208E00056F7E
:083A380041010530B201588C78
:083A4000414040F00101014C7E
:083A4800C4000001A7C3020144
:083A5000471BFC016FC3FF01DD
:083A580093DB80C001935B03C6
:083A6000C001A201207FFC015E
:083A6800A7C1000100030230B8
:083A70007A0180CB202001A7A0
:083A7800C380014DDB86000153
:083A800093DB00C001A20188E4
:083A880008FC0186DB00C0010F
:083A9000471B0201A70101011F
:083A980011030112302B01A201
:083AA000018808FC01A7C10028
:083AA8004018C00001210300D9
:083AB00012301601471BFE0154
:083AB800935B03C001A2019021
:083AC0007FFC016F410301309E
:083AC8002601A78ED301918BAA
:083AD000C3200186DA00C301E6
:083AD80093CB802101471BFE86
:083AE00001935B03C001A20188
:083AE800907FFC016F01000159
:083AF000869B83C101865B0384
:083AF800C101861B83C0018699
:083B0000DB02C001A7DA060197
:083B0800869B06C0018E9B861E
:083B1000C0018E5B04C1018EAF
:083B18001B8CC101471B0801D1
:083B2000F2018E5A84C0019EDF
:083B28005A04C1013FC101472D
:083B30001BF801939B06C00184
:083B38009E1B8CC1019E9B86BF
:083B4000C0019E5B04C1503E70
:083B4800FCFF00019D1AB80109
:083B5000A79B0601471BFA01C7
:083B58004DDB06030193DB02C3
:083B6000C001931B83C0019317
:083B68005B03C101939B83C1C3
:083B70000193DB03C201931B6A
:083B780084C2014DDB8600014F
:083B80009E1B06C0014CDA8017
:083B8800DE01A7C3020182DA8D
:083B900000C201A7C39001A7C8
:083B9800830340F00A01016FF4
:083BA0000F06507FFCFF00013D
:083BA8009D18E440F00A010140
:083BB0006F101A01A84C00017E
:083BB800200E00073009200473
:083BC00001200E00073007018F
:083BC8006F41000132CD0158EC
:083BD0008E414040F0010101AB
:083BD8004CC4000001A74303E7
:083BE00001471BFC016FC3FF4C
:083BE8000193DB80C001931B77
:083BF00004C001A201207FFCCA
:083BF80001A7C1000100030256
:083C000031330180CD202001C9
:083C080021030017300C0180BC
:083C1000CD20200121C30C1797
:083C1800301301471BFE01936C
:083C20001B04C001A081016F2B
:083C2800410201326E0182CF5E
:083C3000002001210300173000
:083C38000E0182CF00202040A4
:083C40000121030017301301FC
:083C4800471BFE01931B04C0A1
:083C500001A081016F41100188
:083C5800324101824F012001FD
:083C60005845414040F002010B
:083C6800014CC4000001A70398
:083C7000030182CC0020019148
:083C7800CF002040F00A010119
:083C800086C00020014DC310B5
:083C88000040F00A010193C0A5
:083C90000020014DDB8600015C
:083C980093DB00C0014DDB8647
:083CA0000001931B01C001A209
:083CA800018808FC01861B01E4
:083CB000C001471B020186DB85
:083CB80000C001471B0201A737
:083CC00041014018C000014D54
:083CC8000501800158C4324CD3
:083CD00001A7C3D00191CC2033
:083CD8002001A78E9301A78EC5
:083CE000D301918C4320016F18
:083CE800830001A7C3D0019184
:083CF000CC60200186DA80C2DD
:083CF8000193CC80200186DA63
:083D000000C30193CC00210176
:083D080086DA80C30193CC8030
:083D10002101471BFC0193DBBC
:083D180082C001935B03C001AE
:083D2000A2015233FC01471B14
:083D28000401471BFE01931B7F
:083D300004C001A0810186CB53
:083D380000200120030003300C
:083D40001F01471BFC01931B4E
:083D480083C001935B03C0017D
:083D5000A201002FFC01A7C134
:083D58000001A7430001313B0B
:083D600001471BFC016FC3FFCA
:083D68000193DB80C001931BF5
:083D700004C001A201207FFC48
:083D780001A7C10001000302D4
:083D800031150186CB00200182
:083D8800820C212020080191AA
:083D90000321240186CB002071
:083D980001820C41202008010A
:083DA000910341240186CB00D0
:083DA8002001820C61202008BB
:083DB00001910361240186CB9F
:083DB800002001860C8120208F
:083DC000080193038124018630
:083DC800CB002001860C012153
:083DD000200801930301250105
:083DD80086CB002001860C815E
:083DE000212008019303812555
:083DE800016F430001A7C3D0E5
:083DF0000191CC6020016FC3BA
:083DF800FF01A7C3D00191CC2B
:083E00002020016FC3FF01A7A0
:083E0800C3D00191CC40200160
:083E100082CF002001A7C3D0FE
:083E18000191CC002040F002F2
:083E200001014D0C01000158E5
:083E280044314C0191CF002050
:083E300001860B0120200801AE
:083E38008004D1260153C410DF
:083E4000000101031230220110
:083E4800471BFE01864B01201F
:083E500040C01701014D0501FE
:083E580000015804334C0193F2
:083E6000DB00C001A2014C517E
:083E6800FC01471BFE01864B23
:083E7000012040C01701014DC3
:083E7800050100015804334C60
:083E80000193DB00C001A20167
:083E8800704BFC01471BFE0119
:083E9000931B04C001A0810195
:083E98006F0100018E1B06C042
:083EA00001471B0201861B848F
:083EA800C20186DB03C20186A2
:083EB0009B83C101865B03C185
:083EB80001861B83C00186DBBB
:083EC00002C001A7DA06018629
:083EC8009B06C0018E9B86C021
:083ED000018E5B04C1018E1B91
:083ED8008CC101471B0801F237
:083EE000018E5A84C0019E5AB4
:083EE80004C1013FAE01471BBC
:083EF000F801939B06C0019E3E
:083EF8001B8CC1019E9B86C0DA
:083F0000019E5B04C15042FC6C
:083F0800FF00019D5AAB01A767
:083F10009B0601471BF8014D5F
:083F1800DB86030193DB02C00C
:083F200001931B83C001935BB8
:083F280003C101939B83C10159
:083F300093DB03C201931B8423
:083F3800C201935B04C3014DBB
:083F4000DB8600019E1B06C098
:083F4800014CDA80DE01A7C381
:083F5000020182DA00C201A7A0
:083F5800C39001A7C30340F070
:083F60000A01016F1006507FF9
:083F6800FCFF00019D18E4407C
:083F7000F00A01016F111A01B2
:083F7800A84C0001200F000716
:083F80003009200401200F00AC
:083F8800073007016F41000141
:083F900032D101588F4140407D
:083F9800F00101014CC400001E
:083FA00001A7830301471BFC8C
:083FA800016FC3FF0193DB80F0
:083FB000C001935B04C001A2F3
:083FB80001207FFC01A7C100FC
:083FC00001000302313301800E
:083FC800CE20200121030017A7
:083FD000300C0180CE2020011D
:083FD80021C30C17301301474F
:083FE0001BFE01935B04C0010C
:083FE800A081016F41020132CA
:083FF000720182D000200121C2
:083FF800030017300E0182D016
:08400000002020400121030013
:0840080017301301471BFE01F4
:08401000935B04C001A08101D3
:084018006F41100132450182E5
:08402000500120015845414008
:0840280040F00201014CC4004C
:084030000001A703030182CC8B
:0840380000200191D00020409E
:08404000F00A010186C0002016
:08404800014DC3100040F00A15
:08405000010193C00020014DA5
:08405800DB86000193DB00C0D0
:08406000014DDB860001931BFA
:0840680001C001A2018808FC5F
:0840700001861B01C001471B82
:08407800020186DB00C00147D4
:084080001B0201A741014018D9
:08408800C000014D050180019B
:0840900058C4324C01A7C3D053
:084098000191CC202001A7CF0B
:0840A0009301A7CFD30191CCDD
:0840A8004320016F830001A712
:0840B000C3D00191CC60200196
:0840B80086DA80C20193CC807E
:0840C000200186DA00C3019320
:0840C800CC00210186DA80C35F
:0840D0000193CC802101471B84
:0840D800FC0193DB82C001939F
:0840E0009B03C001A201523351
:0840E800FC01471B0401471B0A
:0840F000FE01935B04C001A076
:0840F800810186CB00200120AC
:08410000030003302301471BFB
:08410800FC01931B83C001932D
:084110009B03C001A201002F76
:08411800FC01A7C10001A7434F
:084120000301A74D0001313B32
:0841280001471BFC016FC3FFFE
:084130000193DB80C001935BE9
:0841380004C001A201207FFC7C
:0841400001A7C1000100030208
:0841480031150186CB002001B6
:08415000820C212020080191DE
:084158000321240186CB0020A5
:0841600001820C41202008013E
:08416800910341240186CB0004
:084170002001820C61202008EF
:0841780001910361240186CBD3
:08418000002001860C812020C3
:08418800080193038124018664
:08419000CB002001860C012187
:08419800200801930301250139
:0841A00086CB002001860C8192
:0841A800212008019303812589
:0841B000016F430001A7C3D019
:0841B8000191CC6020016FC3EE
:0841C000FF01A7C3D00191CC5F
:0841C8002020016FC3FF01A7D5
:0841D000C3D00191CC40200195
:0841D80082D0002001A7C3D032
:0841E0000191CC002040F00227
:0841E80001014D0C010001581A
:0841F00044314C0191D0002084
:0841F80001860B0120200801E3
:084200008004D1260153C41013
:08420800000101031230220144
:08421000471BFE01864B012053
:0842180040C01701014D050132
:0842200000015804334C019326
:08422800DB00C001A2014C51B2
:08423000FC01471BFE01864B57
:08423800012040C01701014DF7
:08424000050100015804334C94
:084248000193DB00C001A2019B
:08425000704BFC01471BFE014D
:08425800935B04C001A0810189
:084260006F0100018E1B06C076
:0842680001471B0201865B0403
:08427000C301861B84C2018614
:08427800DB03C201869B83C138
:0842800001865B03C101861BEE
:0842880083C00186DB02C001C6
:08429000A7DA0601869B06C0B7
:08429800018E9B86C0018E5BC4
:0842A00004C1018E1B8CC10159
:0842A800471B0801F2018E5AC8
:0842B00084C0019E5A04C10103
:0842B8003FA901471BF8019327
:0842C0009B06C0019E1B8CC18E
:0842C800019E9B86C0019E5B74
:0842D00004C15047FCFF00018E
:0842D8009DDAED01A79B060130
:0842E000471BF8014DDB8603CA
:0842E8000193DB02C001931BEE
:0842F00083C001935B03C101CF
:0842F800939B83C10193DB03DA
:08430000C201931B84C201936A
:084308005B04C3014DDB06015B
:08431000019E1B06C0019E5B2B
:0843180086C00186DA80C301B2
:08432000A743030186DA00C384
:0843280001A783030186DA807E
:08433000C201A7C3030186DAF4
:0843380000C401A74304507FFB
:08434000FCFF00019D18E45090
:084348007FFCFF00019D19C874
:0843500001A84C000182DA0013
:08435800C20120030007300E32
:084360000182DA00C220040111
:08436800200300073007016F7C
:0843700041000133F301825A00
:0843780001C201A745910158A3
:0843800085414040F0010101FC
:084388004CC4000001A703036F
:0843900001471BFC016FC3FF94
:084398000193DB80C040F00A34
:0843A00001016F031A0193DB18
:0843A80000C001A09101A7C1B2
:0843B0000001000302305F016F
:0843B80080CC2020012103004C
:0843C00017300C0180CC202015
:0843C8000121C30C17301B0199
:0843D000471BFE40F00A010149
:0843D8006F031A0193DB00C022
:0843E00001A081016F410201FF
:0843E800337E01471BFE019327
:0843F0001B03C001A2018B3286
:0843F800FC01A7C1000193DAEA
:0844000000DF01471BFE40F044
:084408000A01016F031A019380
:08441000DB00C001A081018660
:08441800DA00DF0120030003BC
:08442000325201471BFC016F41
:08442800C3FF0193DB80C040DB
:08443000F00A01016F031A01FB
:0844380093DB00C001A091011B
:08444000A7C1000101031230C5
:084448003F01A2011B4BFC0126
:08445000A7C10001A7C302018E
:08445800471BFE40C0170101E3
:084460004D0B0100015804336B
:084468004C0193DB00C001A22E
:08447000016F4DFC01471BFE2A
:0844780040F00A01016F031A74
:084480000193DB00C001A081E3
:0844880020080180CBD02601C1
:0844900054C320002008019034
:08449800CBD0260182DA00C23C
:0844A00020080191CB802601E8
:0844A8006FC3FF20080191CB56
:0844B000402001471BFC016FD5
:0844B800C3FF0193DB80C0404B
:0844C000F00A01016F031A016B
:0844C80093DB00C001A091018B
:0844D000A7C100010103123035
:0844D800B20182CC4020012258
:0844E000030026303D016FC30B
:0844E800FF20080191CB6020C8
:0844F00040C01701014D0B0152
:0844F80000015804334C01914E
:08450000CC402040C01701016E
:084508004D0B010001580433C2
:084510004C0191CC6020016F09
:0845180043000193CC002101D6
:0845200030550182CC6020201F
:08452800080191CB6020018223
:084530004C61200158054340D5
:0845380040C01701014CC40052
:084540000040C01701014D4BC2
:084548000100015805434C205D
:0845500008019103412040C065
:084558001701014D0B010001E8
:084560005804334C0191CC60BA
:08456800200186CC002101476F
:0845700043000193CC0021017E
:08457800471BFE40F00A01019F
:084580006F031A0193DB00C078
:0845880001A0810101111230B4
:084590005D01471BFC016FC334
:08459800FF0193DB80C040F03D
:0845A0000A01016F031A0193E7
:0845A800DB00C001A09101A796
:0845B000C100010203223036B4
:0845B80001471BFC01935B8429
:0845C000C040C01701014D0BC2
:0845C8000100015804334C010D
:0845D00093DB00C001A2012EE3
:0845D8004FFC01471BFE40F0FF
:0845E0000A01016F031A0193A7
:0845E800DB00C001A08101A26B
:0845F000011B4BFC01A7C100F7
:0845F80001A703042008014C97
:08460000D000840182C3602098
:0846080001210300126F810281
:08461000123155016F03000196
:08461800A7C3D020080191D0D6
:084620006024016FC3FF01A734
:08462800C3D020080191D0402D
:0846300024016FC3FF01A7C3C1
:08463800D020080191D02024DC
:0846400001010F20081386D0D0
:0846480080241393CF00200130
:08465000010E20081386D000C2
:08465800251393CE002001019F
:084660000D20081386D080250F
:084668001393CD0020016F0146
:08467000000130F401000F030A
:0846780086DA00DF03860381EE
:084680002003930F012001004B
:084688000E0386DA00DF038651
:0846900003012103930E012038
:0846980001000D0386DA00DFCA
:0846A000038603812103930D41
:0846A800012001471BFC016F1A
:0846B000C3FF0193DB80C04051
:0846B800F00A01016F031A0171
:0846C00093DB00C001A0910191
:0846C800A7C10001000302304C
:0846D000930186DA00DF016F9F
:0846D800440001A704D1019187
:0846E0000361200186DA00DF0E
:0846E800016FC4FF01A704D11A
:0846F00001910321200186DA8B
:0846F80000DF016FC4FF01A700
:0847000004D1019103412001E5
:0847080086DA00DF40F00A012F
:08471000018200812101A704D0
:08471800D1019103012001868B
:084720005A01DF40F002010123
:084728004D0501000158443168
:084730004C40F00A010191C0A8
:08473800802140F00A01018616
:08474000C000200147430040C6
:08474800F00A010193C00020FA
:0847500001471BFE40F00A01C5
:08475800016F031A0193DB005D
:08476000C001A081016F0100FE
:08476800018E5B86C0018E1B6F
:0847700006C001471B0401868D
:084778005B04C301861B84C22F
:084780000186DB03C201869BE8
:0847880083C101865B03C1013E
:08479000861B83C00186DB02D9
:08479800C001A7DA0601869BAF
:0847A00006C0018E9B86C001DA
:0847A8008E5B04C1018E1B8C25
:0847B000C101471B0801F201E1
:0847B8008E5A84C0019E5A04D0
:0847C000C1013FA401471BF8F1
:0847C80001939B06C0019E1B3A
:0847D0008CC1019E9B86C00113
:0847D8009E5B04C15048FCFF88
:0847E00000019D5A1301A79B83
:0847E8000601471BF6016F03F7
:0847F000000193DB00C2018609
:0847F800DA80C30193DB80C1EC
:084800000186DA00C30193DB1D
:0848080000C10186DA80C20143
:0848100093DB80C00186DA0091
:08481800C20193DB00C001A105
:0848200001000001471B0A0121
:08482800A7C10001A743000134
:08483000A7DA0601869B06C011
:08483800018E9B86C0018E5B1E
:0848400004C1018E1B8CC101B3
:08484800471B0801F2018E5A22
:0848500084C0019E5A04C1015D
:084858003FD501471BF8019355
:084860009B06C0019E1B8CC1E8
:08486800019E9B86C0019E5BCE
:0848700004C1504AFCFF0001E5
:084878009D9AB701A79B060100
:08488000471BFC014DDB860320
:084888000193DB02C001931B48
:0848900083C001935B03C10129
:08489800939B83C10193DB0334
:0848A000C201931B84C20193C5
:0848A8005B04C3014DDB860037
:0848B000019E1B06C00186DA1F
:0848B80080C301A74303018640
:0848C000DA00C301A783030124
:0848C80086DA80C201A7C303D8
:0848D0000182DA00C201A7C356
:0848D8009001A703040186DA38
:0848E00000C401A74304507F4E
:0848E800FCFF00019D18E40132
:0848F000A84C00012010000794
:0848F80030092004012010002A
:08490000073007016F410001BF
:08490800318A01589041404042
:08491000F00101014CC400009C
:0849180001A7030301471BFC8A
:08492000016FC3FF0193DB806E
:08492800C040F00A01016F0319
:084930001A0193DB00C001A293
:0849380001007EFC01A7C10093
:0849400001010312307A016F3E
:08494800430001A7C3D0019157
:08495000CB6020016FC3FF01E1
:08495800A7C3D00191CB202080
:08496000016FC3FF01A7C3D0E2
:084968000191CB402040F00A50
:08497000010182C0802101A7B2
:08497800C3D00191CB002040E7
:08498000F00201014D0B0100E2
:08498800015844314C40F00AD3
:08499000010191C0802140F0FB
:084998000A010186C0002001A4
:0849A00047430040F00A010149
:0849A80093C0002001471BFE33
:0849B00040F00A01016F031A37
:0849B8000193DB00C001A081A6
:0849C000016F0100018E1B06CE
:0849C800C001471B0201865BE0
:0849D00004C301861B84C2012F
:0849D80086DB03C201869B830C
:0849E000C101865B03C10186E1
:0849E8001B83C00186DB02C045
:0849F00001A7DA0601869B060F
:0849F800C0018E9B86C0018EF8
:084A00005B04C1018E1B8CC197
:084A080001471B0801F2018EB9
:084A10005A84C0019E5A04C142
:084A1800013FA90000000000AD
:084A200001471BF801939B06FE
:084A2800C0019E1B8CC101A717
:084A30009B0601865A00C20139
:084A3800A7DA0601869B06C007
:084A4000018E1B8CC101471B14
:084A48000A01F201A75F000161
:084A5000F240C01701014D5FA7
:084A58000000015801134C019C
:084A6000F201471BF801939BD2
:084A680006C0019E1B8CC10178
:084A7000A79B060186DA07C2CC
:084A780001581FF34140C01773
:084A80000101471F0001A7DA44
:084A88000601869B06C0018EA9
:084A90001B8CC101471B0A0148
:084A9800F20000000000000024
:084AA00001471BF801939B067E
:084AA800C0019E1B8CC101A797
:084AB0009B0601471BFA014DB2
:084AB800DB86030193DB02C061
:084AC00001931B83C001935B0D
:084AC80003C101939B83C101AE
:084AD00093DB03C201931B8478
:084AD800C201935B04C30182DB
:084AE000DA00C201A7C3900136
:084AE800A703032008016F8EF3
:084AF000002008016F0F0020F7
:084AF80008016F111B016F8121
:084B00001130060C0191400088
:084B0800A001200C000730079A
:084B100001200C4007300B01ED
:084B18006F4100016F02010171
:084B2000317201580C434040C2
:084B2800C01701014CC400009C
:084B300001A7C30201B0D1325C
:084B3800200120C30F05300C21
:084B400001B0D1322001200375
:084B48000006300B016FC100F3
:084B5000016F020101313D017A
:084B58006FC11130060C019140
:084B60004000A001B0D1322099
:084B68000120C3000630290101
:084B70006F440001B0D1522096
:084B780001A7458101584431F9
:084B80000040F00A010182006F
:084B880081270150C4400440E4
:084B9000F00A010191008127E8
:084B9800016F030420080190E5
:084BA000CBD02601B0D1522058
:084BA80001A745810158C54039
:084BB00044015844304040C0AC
:084BB80027010182C300210165
:084BC000A70304016F0112308C
:084BC800060C01914000A00160
:084BD00020100006302D01C188
:084BD800CFC22001C1CEC220B2
:084BE00001B0D1522001A745EC
:084BE800810158C54044015849
:084BF00044304040C0270101E0
:084BF80091030321016F01008C
:084C000001305A016FC11230AE
:084C0800060C01914000A0011F
:084C10005810434040C0170199
:084C1800014CC4000001A74398
:084C20000301C1CF022101B222
:084C28004E332001C1CE322001
:084C300001B24E5320015805AA
:084C3800434040C01701014C8C
:084C4000C4000001C1CFC02037
:084C480001C14EC320016F41C0
:084C50001330060C0191400035
:084C5800A0016F010001865B61
:084C600004C301861B84C2019C
:084C680086DB03C201869B8379
:084C7000C101865B03C101864E
:084C78001B83C00186DB02C0B2
:084C800001A7DA0601869B067C
:084C8800C0018E1B8CC1014725
:084C90001B0A01F201A8DA0081
:084C980001A94304013FBE0124
:084CA000471BF801939B06C0BD
:084CA800019E1B8CC101A79BBA
:084CB0000601471BFE014DDB6C
:084CB80086030193DB02C00139
:084CC000931B83C001935B0309
:084CC800C101939B83C101931C
:084CD000DB03C201931B84C247
:084CD80001935B04C30182DAC1
:084CE00000C201A7C39001A767
:084CE80003032008016F8D0099
:084CF0002008016F0E0040C016
:084CF8002701016F0F042008E1
:084D0000016F101B40C01701F8
:084D0800016F110001200C00F5
:084D100007300701200C4007E9
:084D1800300B016F4100016F37
:084D2000020101312E01580CC3
:084D2800434001404434100136
:084D3000A7C30201B0D032203C
:084D38000120C30F05300C013E
:084D4000B0D032200120030075
:084D480006300B016FC10001F0
:084D50006F02010130FD01B00A
:084D5800D0522001A7458101A2
:084D600058C5404401584430DD
:084D68004001B2CF3020011020
:084D7000CC0003301D01B0D09E
:084D7800522001A745810158FA
:084D8000C540440158443040D5
:084D880001B2CE422001C1CFAF
:084D9000402001B0D0522001C7
:084D9800A745810158C5404404
:084DA000015844304001B2CF7C
:084DA80030200110CC000330A3
:084DB0001C01B0D0522001A744
:084DB80045810158C54044018A
:084DC00058443040016FC4FFAC
:084DC80001C1CF402001B2CE71
:084DD000522001580543400187
:084DD8004044341001B2CD4249
:084DE0002001C1CD402001B209
:084DE800CD52200158054340A3
:084DF000014044341001B2CE71
:084DF800422001C1CE40200160
:084E00006FC3FF01C1CE322097
:084E0800016FC3FF01C1CD32AF
:084E100020200801900BD026C0
:084E1800016F010001865B043B
:084E2000C301861B84C2018658
:084E2800DB03C201869B83C17C
:084E300001865B03C101861B32
:084E380083C00186DB02C0010A
:084E4000A7DA0601869B06C0FB
:084E4800018E1B8CC101471B08
:084E50000A01F201A8DA0001D9
:084E5800A94304013FBE01471C
:084E60001BF801939B06C00141
:084E68009E1B8CC101A79B06F3
:084E700001471BFA014DDB862E
:084E7800030193DB02C001936A
:084E80001B83C001935B03C119
:084E880001939B83C10193DB40
:084E900003C201931B84C2015F
:084E9800935B04C30182DA0000
:084EA000C201A7C39001A74362
:084EA800032008016F8F0020B8
:084EB00008016F10000186DA11
:084EB80080C201A743040120A0
:084EC0000D0007300701200D71
:084EC8004007300B016F4100AF
:084ED000016F020101314C01E8
:084ED800580D434040C01701D2
:084EE000014CC4000001A7030E
:084EE8000340C027010182C054
:084EF0008020012003000630C0
:084EF80029200801934C04225B
:084F000040C02701019140832C
:084F080020016FC3FF01C1107D
:084F10003320016FC3FF01C152
:084F18000F3320016F010001BD
:084F200030CA016F030001A774
:084F2800830340C02701018250
:084F30004081200158054340B7
:084F380040C01701014CC40048
:084F40000001A7C302200801D3
:084F480086CB00220110D1000C
:084F500004302A20080186CB81
:084F580000220140D1101501F7
:084F6000A78B0301B2D052201F
:084F6800015805434040C01749
:084F700001014CC4000001A77F
:084F7800C302013FC840C0174D
:084F800001014D0B0100015875
:084F880004334C01C110332079
:084F900040C01701014D0E01A4
:084F980000015804334C01C173
:084FA0000F332001000B023069
:084FA8001820080186CB00224D
:084FB000014043341420080104
:084FB80093CB002201C1CFD20E
:084FC0002001000E03C190D393
:084FC8002003300940C027015D
:084FD00001914083202008013B
:084FD80080CCD0260154C31067
:084FE0000020080190CCD0264E
:084FE800016F010001865B046A
:084FF000C301861B84C2018687
:084FF800DB03C201869B83C1AB
:0850000001865B03C101861B60
:0850080083C00186DB02C00138
:08501000A7DA0601869B06C029
:08501800018E1B8CC101471B36
:085020000C01F201A8DA000105
:08502800A94304013FBE01474A
:085030001BF801939B06C0016F
:085038009E1B8CC101A79B0621
:0850400001471BFE014DDB8658
:08504800020193DB02C0019399
:085050001B83C001935B03C147
:0850580001939B83C10193DB6E
:0850600003C22008016F0C00DF
:085068002008016F8D00018298
:08507000DA00C201A7C39001A0
:08507800A7830340C0170101EA
:085080006F0F0001200E000774
:08508800300701200E40073043
:085090000B016F4100016F02EA
:08509800010130C601580E436E
:0850A000400140C4331001A7D8
:0850A800C30201B2CC32200169
:0850B000000302304201B2CC02
:0850B80052200158054340019C
:0850C00040C4331001B2CD42DF
:0850C8002001C1CD402001B21E
:0850D000CC52200158054340B9
:0850D8000140C433102008015F
:0850E000860B01222008018665
:0850E8004301220140055110B3
:0850F000200801934301220195
:0850F800B2CD322001200300BB
:0851000007301901B2CD522065
:0851080001580543400140C4B9
:08511000331001B2CC42200172
:08511800C1CC402020080190E9
:085120000BD026016FC3FF0153
:08512800C1CC3220016FC3FF6E
:0851300001C1CD32200186DB34
:0851380003C201869B83C10143
:08514000865B03C101861B839D
:08514800C00186DB02C001A7D3
:08515000DA0601869B06C0018E
:085158008E1B8CC101471B0AEC
:0851600001F201A8DA0001A927
:085168004304013FC801471B8D
:08517000F801939B06C0019EAB
:085178001B8CC101A79B06017D
:08518000471BFC014DDB060199
:085188000193DB02C001931B3F
:0851900083C040C02701016F3C
:085198000B020182CB00200193
:0851A000A703030182CB0020EC
:0851A800012003000730610142
:0851B00082CB00200120034026
:0851B80006305501824B012075
:0851C000015805434040C017EF
:0851C80001014CC400002008A5
:0851D000018203012001910B93
:0851D80001200182CB0020013F
:0851E00021030017302A0182AF
:0851E800CB0020012103401659
:0851F000301E01824B01200179
:0851F8005805434040C01701B7
:08520000014CC40000016FC461
:08520800FF20080191032120A1
:0852100001A74C0001861B837D
:08521800C00186DB02C001A702
:08522000DA0601869B06C001BD
:085228008E1B8CC101471B081D
:0852300001F201471BF8019394
:085238009B06C0019E1B8CC106
:08524000019E9B86C0019E5BEC
:0852480004C15055FCFF0001F8
:085250009D5A4601A79B0601CF
:08525800471BF6014DDB860344
:085260000193DB02C001931B66
:0852680083C001935B03C10147
:08527000939B83C10193DB0352
:08527800C201931B84C20193E3
:085280005B04C3014DDB860055
:08528800019E1B06C020080175
:085290006F0D0040C017010181
:085298006F11005094FCFF00AF
:0852A000019DD83F01471BFEF0
:0852A80050E1FCFF00016F035F
:0852B0006A0193DB00C001A0BC
:0852B8008101471B02016F1088
:0852C000000120100206312854
:0852C800015850304040C0279E
:0852D000010182C3002101A7C6
:0852D800030301210C00173152
:0852E0000801210C4016310108
:0852E80001580C434001404451
:0852F00034100193DA00DF0124
:0852F80086DA02DF016F0F00EE
:0853000001404B441401580464
:08530800334C01A783030147A8
:085310001BEE20080186CB0012
:08531800280193DB00C420080A
:085320000186CB00220193DBA2
:0853280080C301B2CD32200167
:0853300093DB00C32008018299
:08533800CB20200193DB80C2B1
:0853400001A78E9301939B036A
:08534800C220080180CBD02631
:0853500001A7C3800193DB807B
:08535800C120080180CBC02632
:0853600001A7C3800193DB00EB
:08536800C120080180CBE02602
:0853700001A7C3800193DB805B
:08537800C050E1FCFF00016FD1
:0853800003550193DB00C0019D
:08538800A08101471B1201B2D4
:08539000CD3220012303003798
:08539800300C01B2CD322001FE
:0853A000230340373003013004
:0853A8004001B2CD5220015872
:0853B0000543400140443410A4
:0853B80001A7C30201A20132AA
:0853C00094FC01A7C1000123C8
:0853C800C300323102014CCF99
:0853D000100001A7C3030186D0
:0853D800DA00DF0112CB002214
:0853E000300701228F02273F74
:0853E8001701475000013ED1FE
:0853F00001471BFE50E1FCFF28
:0853F80000016F034D0193DB7E
:0854000000C001A08101471B5F
:085408000240C027010182C02F
:08541000802001A70303012025
:085418000C000730B201200C6A
:08542000400630AB01580C43BB
:0854280040014044341001A7CB
:08543000C30201471BEE200836
:085438000186CB00280193DB83
:0854400000C420080186CB0026
:08544800220193DB80C301B2D5
:08545000CD32200193DB00C303
:0854580020080182CB20200195
:0854600093DB80C201A78E93CB
:0854680001939B03C22008011F
:0854700080CBD02601A7C38008
:085478000193DB80C120080153
:0854800080CBC02601A7C38008
:085488000193DB00C1200801C3
:0854900080CBE02601A7C380D8
:085498000193DB80C050E0FC31
:0854A000FF00016F03380193C6
:0854A800DB00C001A0810147F7
:0854B0001B1201B2CD322001F4
:0854B800A7030301A2013294D5
:0854C000FC01A7C1000121C39A
:0854C80000123003013F47010F
:0854D0008E1B06C001471B0200
:0854D80001865B04C301861B81
:0854E00084C20186DB03C20156
:0854E800869B83C101865B0372
:0854F000C101861B83C0018687
:0854F800DB02C001A7DA060186
:08550000869B06C0018E9B860C
:08550800C0018E5B04C1018E9D
:085510001B8CC101471B0801BF
:08551800F2018E5A84C0019ECD
:085520005A04C1013FA900007B
:0855280000000000000000007B
:0855300001471BF801939B06E3
:08553800C0019E1B8CC1019E05
:085540009B86C0019E5B04C1C3
:085548005056FCFF00019D1A02
:085550008201A79B0601471B25
:08555800FA014DDB860001930E
:085560001B00C04036000101F0
:085568008000002A010000028E
:085570003024403600010190D7
:0855780000002A01471BFE4060
:08558000360001016F03A601D2
:0855880093DB00C001A2017CCD
:0855900034FC01471B02014736
:085598001BF680FFFFFFFFFF7F
:0855A000FF7F016FC3FF0193BF
:0855A800DB00C2014CDA80DED9
:0855B0000193DB80C1014CDA1C
:0855B80000DF0193DB00C101DB
:0855C0004CDA80DF0193DB806F
:0855C800C0403600010182C061
:0855D00080290193DB00C001FA
:0855D800A201EA41FC01471B9E
:0855E0000A01A2011457FC01AD
:0855E8003FAC01A7DA060186C1
:0855F0009B06C0018E9B86C0E2
:0855F800018E5B04C1018E1B52
:085600008CC101471B0801F2F7
:08560800018E5A84C0019E5A74
:0856100004C1013FD501471B55
:08561800F801939B06C0019EFE
:085620001B8CC1019E9B86C09A
:08562800019E5B04C15057FC18
:08563000FF00019DDAC101A792
:085638009B06014DDB86000119
:0856400093DB02C00186DA00D1
:08564800C201A7C30201471BC8
:08565000FE0193DB02C001A280
:08565800012A58FC01471B0266
:0856600001471BFC016FC3FFB1
:085668000193DB80C040F00A51
:0856700001016F03180193DB37
:0856780000C001A201007EFC4C
:0856800001A7C10001000302B3
:08568800305A40F00A010186CE
:08569000C080220111CB0012C1
:08569800303301A201805CFC2B
:0856A00020060186CB802520C5
:0856A800060193CB002540F040
:0856B0000A010193C08222509F
:0856B80000D0FF00016F0300A8
:0856C00020060193CB00250137
:0856C800A2015D5BFC01471B20
:0856D000FE40F00A01016F0326
:0856D800180193DB00C001A2E0
:0856E00001707EFC0186DB0273
:0856E800C001A7DA0601869B50
:0856F00006C0018E9B86C0017B
:0856F8008E5B04C1018E1B8CC6
:08570000C101471B0801F20181
:085708008E5A84C0019E5A0470
:08571000C1013FD001471BF865
:0857180001939B06C0019E1BDA
:085720008CC1019E9B86C001B3
:085728009E5B04C15058FCFF18
:0857300000019D5A0701A79B2F
:085738000601471BFC014DDBDB
:0857400086010193DB02C001A8
:08574800931B83C001935B0376
:08575000C140F00A01016F0DD8
:085758000A01471BFC016FC3AD
:08576000FF0193DB80C040F063
:085768000A01016F031801930F
:08577000DB00C001A201007E74
:08577800FC01A7C100010003C0
:0857800002306D01860D0320CB
:0857880001010C12304B0186F7
:08579000CD00200186C30220B8
:085798000186CD00200112CBB7
:0857A0000022303501030B3239
:0857A800302F01A201805CFC1E
:0857B00020060186CC802520B3
:0857B800060193CC00250193CA
:0857C000CD02205000D0FF00D3
:0857C800016F030020060193AC
:0857D000CB002501A2015D5B85
:0857D800FC01471BFE40F00A32
:0857E00001016F03180193DBC6
:0857E80000C001A201707EFC6B
:0857F00001865B03C101861B69
:0857F80083C00186DB02C00141
:08580000A7DA0601869B06C031
:08580800018E9B86C0018E5B3E
:0858100004C1018E1B8CC101D3
:08581800471B0801F2018E5A42
:0858200084C0019E5A04C1017D
:085828003FC601471BF8019384
:085830009B06C0019E1B8CC108
:08583800019E9B86C0019E5BEE
:0858400004C15059FCFF0001F6
:085848009D1A6301A79B0601F4
:08585000471BFC014DDB0602C1
:085858000193DB02C001931B68
:0858600083C001935B03C10149
:08586800939B83C10186DA0065
:08587000C201A7C30240F00AC7
:0858780001016F0C0A2006017A
:0858800080CB202B01A7C3809F
:0858880001A7430301471BFCCB
:08589000016FC3FF0193DB80EF
:08589800C040F00A01016F039A
:0858A000180193DB00C001A216
:0858A80001007EFC01A7C10014
:0858B0000100030230A440F0E6
:0858B8000A01018640012301F1
:0858C000584543040153C410D4
:0858C8000001A7830301010E9A
:0858D0001330700186CC0020AA
:0858D80001220300233012013C
:0858E00093CC02200193CB02DE
:0858E800200193CB8220013066
:0858F000320186CC0020018684
:0858F80003812001930B8120C4
:085900000186CC00200193CBCD
:0859080000200186CC00200103
:0859100086C380200193C3024D
:08591800200186CC0020019360
:08592000C38220016F44000165
:085928005844330040F00A016D
:0859300001860001230150C4AF
:08593800400440F00A01019354
:0859400000012301471BFE409A
:08594800F00A01016F031801D0
:0859500093DB00C001A201700D
:085958007EFC01869B83C10166
:08596000865B03C101861B8375
:08596800C00186DB02C001A7AB
:08597000DA0601869B06C00166
:085978008E9B86C0018E5B04CA
:08598000C1018E1B8CC101471F
:085988001B0801F2018E5A8494
:08599000C0019E5A04C1013F51
:08599800C101471BF8019E1B31
:0859A0008CC1019E9B86C00131
:0859A8009E5B04C15059FCFF95
:0859B00000019DDA7901471B9B
:0859B800FE01A201C007FC0181
:0859C000A7C1000193DB00C048
:0859C80001A201F459FC0147A2
:0859D0001B02018E9B86C00141
:0859D8008E5B04C1018E1B8CE3
:0859E000C101471B0801F2019F
:0859E8008E5A84C0019E5A048E
:0859F000C1013FDE01471BF875
:0859F80001939B06C0019E1BF8
:085A00008CC1019E9B86C001D0
:085A08009E5B04C1505BFCFF32
:085A100000019D1AD401A79BBF
:085A18000601471BFE014DDBF6
:085A200006010193DB02C00145
:085A2800931B83C00186DA0024
:085A3000C201A7C30201471BDC
:085A3800FC016FC3FF0193DBC9
:085A400080C040F00A01016F73
:085A480003180193DB00C0010B
:085A5000A201007EFC01A7C1C8
:085A5800000100030230C94007
:085A6000F00A01018600012398
:085A6800016F460020060180D9
:085A7000CB212B01A7C7810126
:085A780058C6510001504431F1
:085A80000001010312308A014C
:085A88006F4500200601808B30
:085A9000212B01A786810158BA
:085A980085410001A7C4B040E4
:085AA000F00A01018600012358
:085AA8000150C4400040F00A67
:085AB00001019300012340F005
:085AB8000A010186C0802201F1
:085AC00012CB0022A2011457D1
:085AC800FC01860B0320010222
:085AD0000C22303D0113CC0251
:085AD8003230170186CB80205B
:085AE0000193CC80200186CB6C
:085AE80080200193030320015B
:085AF000300D016F030040F0CE
:085AF8000A010193C0802201A4
:085B00006F03000193CB0020AC
:085B0800016F03000193CB8043
:085B10002001471BFE40F00AD2
:085B180001016F03180193DB8A
:085B200000C001A201707EFC2F
:085B280001861B83C00186DB2E
:085B300002C001A7DA0601869C
:085B38009B06C0018E9B86C094
:085B4000018E5B04C1018E1B04
:085B48008CC101471B0801F2AA
:085B5000018E5A84C0019E5A27
:085B580004C1013FCB01471B12
:085B6000F801939B06C0019EB1
:085B68001B8CC1019E9B86C04D
:085B7000019E5B04C1505CFCC6
:085B7800FF00019DDA1C01A7EA
:085B80009B0601471BF6014DD5
:085B8800DB86020193DB02C081
:085B900001931B83C001935B2C
:085B980003C101939B83C101CD
:085BA00093DB03C240F00A018F
:085BA8000186C08222200601E3
:085BB00086CB032520060186C7
:085BB8008B8325200601820BFE
:085BC0000126200601824B21A1
:085BC80026014044311801A739
:085BD000C39001A703030120AB
:085BD8000C0007301C01588C81
:085BE000304001588C404001E7
:085BE800B40E512001C2CF50A0
:085BF00020014D0C1300013FE0
:085BF800DD200601824B41266D
:085C0000200601828B21260120
:085C08004085411820060182CD
:085C10004B61260140443110F4
:085C180001A7C39001A743039B
:085C200001471BFC01935B83AB
:085C2800C0016FC3020193DB10
:085C300000C001A201425EFC6C
:085C380001471B040186DB0398
:085C4000C201869B83C10186AD
:085C48005B03C101861B83C050
:085C50000186DB02C001A7DAA6
:085C58000601869B06C0018EC7
:085C60009B86C0018E5B04C1AC
:085C6800018E1B8CC101471BDA
:085C70000801F2018E5A84C004
:085C7800019E5A04C1013FBC6A
:085C800001471BF801939B068C
:085C8800C0019E1B8CC101A7A5
:085C90009B0601471BF8014DC2
:085C9800DB06020193DB02C0F0
:085CA00001931B83C001935B1B
:085CA80003C101939B83C1407D
:085CB000F00A010186008322C5
:085CB800200601868C03252063
:085CC0000601864C8325200635
:085CC80001820C0126200601F7
:085CD000824C21260140443101
:085CD8001801A7C39001A7C346
:085CE0000201200B0007301C3B
:085CE80001588B304001588B7C
:085CF000404001B40E512001F7
:085CF800C2CD5020014DCB127A
:085D000000013FDD01869B83D9
:085D0800C101865B03C10186A5
:085D10001B83C00186DB02C009
:085D180001A7DA0601869B06D3
:085D2000C0018E1B8CC101477C
:085D28001B0801F2000000005D
:085D300001471BF8019E1B8CCA
:085D3800C1019E9B86C0019E83
:085D40005B04C1505DFCFF0093
:085D4800019D9A5C01A201C05B
:085D500007FC01A7C1002006B9
:085D58000186430025018E9B2A
:085D600086C0018E5B04C10145
:085D68008E1B8CC101471B08D2
:085D700001F2018E5A84C0010A
:085D78009E5A04C1013FDE0147
:085D8000471BF8019E1B8CC1BA
:085D8800019E9B86C0019E5B99
:085D900004C1505DFCFF00019D
:085D98009D5A7001A201C00731
:085DA000FC01A7C1002006016F
:085DA80086438026018E9B86D4
:085DB000C0018E5B04C1018EED
:085DB8001B8CC101471B08010F
:085DC000F2018E5A84C0019E1D
:085DC8005A04C1013FDE01474E
:085DD0001BF801939B06C001C2
:085DD8009E1B8CC1019E9B86FD
:085DE000C0019E5B04C1505E8E
:085DE800FCFF00019D5A8D0132
:085DF000A79B0601A201C007F8
:085DF800FC01A7C10001845A5F
:085E000001C250FCFFFF00018C
:085E0800530501C001A704E1EC
:085E1000200601920381260126
:085E1800A7DA0601869B06C013
:085E2000018E9B86C0018E5B20
:085E280004C1018E1B8CC101B5
:085E3000471B0801F2018E5A24
:085E380084C0019E5A04C1015F
:085E40003FD501471BF8019357
:085E48009B06C0019E1B8CC1EA
:085E5000019E9B86C0019E5BD0
:085E580004C1505EFCFF0001D3
:085E60009D1ABA01A79B06017F
:085E68004DDB86000193DB0213
:085E7000C00186DA00C201A79F
:085E7800C30201200B000730FA
:085E8000070120CB02043024CD
:085E880001471BFC0193DB82C2
:085E9000C050E2FCFF00016FAD
:085E980003800193DB00C0014F
:085EA000A201FF94FC01471B65
:085EA8000401301901865A00C3
:085EB000C201869A80C201586C
:085EB8008110405000DAFF00E8
:085EC00001928100000186DB64
:085EC80002C001A7DA06018601
:085ED0009B06C0018E9B86C0F9
:085ED800018E5B04C1018E1B69
:085EE0008CC101471B0C01F20B
:085EE800018E5A84C0019E5A8C
:085EF00004C1013FD001471B72
:085EF800F801939B06C0019E16
:085F00001B8CC1019E9B86C0B1
:085F0800019E5B04C1505FFC27
:085F1000FF00019DDADF01A78B
:085F18009B0601471BFE014D31
:085F2000DB86000193DB02C0E7
:085F280001A201C007FC01A762
:085F3000C10001A7C3020186B4
:085F3800DA80C201A7C3D020EA
:085F4000060191CB60260186E9
:085F4800DA00C201A7C3D0205A
:085F5000060191CB402601A2DD
:085F5800012C62FC0186DB0252
:085F6000C001A7DA0601869BCF
:085F680006C0018E9B86C001FA
:085F70008E5B04C1018E1B8C45
:085F7800C101471B0801F20101
:085F80008E5A84C0019E5A04F0
:085F8800C1013FD001471BF8E5
:085F900001939B06C0019E1B5A
:085F98008CC1019E9B86C00133
:085FA0009E5B04C15060FCFF90
:085FA80000019D9A0101A79B75
:085FB0000601471BFE014DDB59
:085FB80086000193DB02C00129
:085FC000A201C007FC01A7C10A
:085FC8000001A7C3020186DA03
:085FD00000C201A7C3D02006A6
:085FD8000191CB602601A2013A
:085FE0002C62FC0186DB02C00B
:085FE80001A7DA0601869B0601
:085FF000C0018E9B86C0018EEA
:085FF8005B04C1018E1B8CC18A
:0860000001471B0801F2018EAB
:086008005A84C0019E5A04C134
:08601000013FD001471BF8011C
:08601800939B06C0019E1B8C46
:08602000C1019E9B86C0019E98
:086028005B04C15060FCFF00A5
:08603000019DDA2401A79B0683
:0860380001471BFE014DDB8650
:08604000000193DB02C001A284
:0860480001C007FC01A7C10023
:0860500001A7C3022006018232
:086058000B6126200601828B7A
:086060004126015806524001DF
:086068005044310401A743007C
:086070000186DB02C001A7DA82
:086078000601869B06C0018EA3
:086080009B86C0018E5B04C188
:08608800018E1B8CC101471BB6
:086090000801F2018E5A84C0E0
:08609800019E5A04C1013FD032
:0860A00001471BF8019E1B8C57
:0860A800C1019E9B86C0019E10
:0860B0005B04C15060FCFF001D
:0860B800019D9A3801A201C00C
:0860C00007FC01A7C100200646
:0860C8000186432026018E9B96
:0860D00086C0018E5B04C101D2
:0860D8008E1B8CC101471B085F
:0860E00001F2018E5A84C00197
:0860E8009E5A04C1013FDE01D4
:0860F000471BF8019E1B8CC147
:0860F800019E9B86C0019E5B26
:0861000004C15061FCFF000125
:086108009D5A4C01A201C007E1
:08611000FC01A7C100200601FB
:0861180086430026018E9B86E0
:08612000C0018E5B04C1018E79
:086128001B8CC101471B08019B
:08613000F2018E5A84C0019EA9
:086138005A04C1013FDE0147DA
:086140001BF801939B06C0014E
:086148009E1B8CC101A79B0600
:08615000014DDB86000193DB29
:0861580002C00182DA00C2015D
:08616000A7C3020120CB1602C7
:086168006FC106023040012066
:086170004B17026F41070230DA
:08617800350153CBF20F015475
:08618000CB02100153CB000219
:0861880001000302A74B000215
:08619000301C0153CB00040197
:08619800000302A74B000230D6
:0861A0000D0153CBF01901A71A
:0861A800C30201A74B000186B0
:0861B000DB02C001A7DA0601C1
:0861B800869B06C0018E1B8CC2
:0861C000C101471B0801F201B7
:0861C800471BF801939B06C080
:0861D000019E1B8CC101A79B7D
:0861D80006014DDB8600019376
:0861E000DB02C00182DA00C2FB
:0861E80001A7C3020153CBF231
:0861F0000F0120CB06026FC174
:0861F8001602301701204B07CD
:08620000026F411702300C018E
:0862080020CB060B470B180127
:08621000A74B000186DB02C070
:0862180001A7DA0601869B06CE
:08622000C0018E1B8CC1014777
:086228001B0801F201471BF8FD
:0862300001939B06C0019E1BB7
:086238008CC1019E9B86C00190
:086240009E5B04C15062FCFFEB
:0862480000019D5AB601A79B5D
:086250000601471BFC014DDBB8
:0862580006010193DB02C00105
:08626000931B83C001A201C0E1
:0862680007FC01A7C10001A71A
:08627000C302200601824B412C
:0862780026200601828B21267D
:086280000140854118200601D0
:08628800824B61260140443104
:086290001001A7C39001A70350
:086298000301471BFC01931BED
:0862A00083C0016FC3020193EA
:0862A800DB00C001A201425E0F
:0862B000FC01861B83C001867E
:0862B800DB02C001A7DA0601B8
:0862C000869B06C0018E9B863F
:0862C800C0018E5B04C1018ED0
:0862D0001B8CC101471B0801F2
:0862D800F2018E5A84C0019E00
:0862E0005A04C1013FCB014744
:0862E8001BF801939B06C001A5
:0862F0009E1B8CC1019E9B86E0
:0862F800C0019E5B04C150636C
:08630000FCFF00019D9ADB0186
:08630800A79B0601471BFE01E3
:086310004DDB86000193DB0266
:08631800C001A201C007FC0155
:08632000A7C10001A7C302019F
:086328006F030001A7C3D020A0
:08633000060191CB6026016F0C
:08633800030001A7C3D02006F9
:086340000191CB402601A201EE
:086348002C62FC0186DB02C09F
:0863500001A7DA0601869B0695
:08635800C0018E9B86C0018E7E
:086360005B04C1018E1B8CC11E
:0863680001471B0801F2018E40
:086370005A84C0019E5A04C1C9
:08637800013FD001471BF801B1
:08638000939B06C0019E1B8CDB
:08638800C1019E9B86C0019E2D
:086390005B04C15064FCFF0036
:08639800019DDA1401A79B0628
:0863A00001471BFC014DDB0667
:0863A800010193DB02C0019327
:0863B0001B83C001A201C0071C
:0863B800FC01A7C10001A7C30D
:0863C00002200601824B412678
:0863C800200601828B21260151
:0863D0004085411820060182FE
:0863D8004B6126014044311025
:0863E00001A7C39001A703030C
:0863E80001471BFC01931B831C
:0863F000C0016FC3020193DB41
:0863F80000C001A201425EFC9D
:08640000014DDB86000193DB76
:0864080000C001A201305DFC9F
:086410000186DB00C001471BFF
:086418000201A7010101588CEB
:0864200050400140443110011D
:08642800A7430001861B83C09D
:086430000186DB02C001A7DABE
:086438000601869B06C0018EDF
:086440009B86C0018E5B04C1C4
:08644800018E1B8CC101471BF2
:086450000801F2018E5A84C01C
:08645800019E5A04C1013FCB73
:0864600001471BF801939B06A4
:08646800C0019E1B8CC1019EC6
:086470009B86C0019E5B04C184
:086478005065FCFF00019DDAF4
:086480006301A79B0601471B05
:08648800F6014DDB0602019351
:08649000DB02C001931B83C075
:0864980001935B03C101939B1A
:0864A00083C101A201C007FC49
:0864A80001A7C10001A7C30216
:0864B00001A201305DFC01A70F
:0864B800C10001A783032006C7
:0864C00001820B0126200601F8
:0864C800824B21260140443102
:0864D0000801A74303014DDBA5
:0864D80086000193DB00C00106
:0864E000A2017F5DFC0186DBD7
:0864E80000C001471B0201A7DF
:0864F0000101014DDB860001F2
:0864F80093DB00C0014DDB86BF
:086500000001931B01C00147DB
:086508001BFE016F0508019361
:086510005B01C001A2013E6124
:08651800FC01471B0201861B78
:0865200001C001471B020186C6
:08652800DB00C001471B02016A
:08653000A7410101A7459101FB
:086538005044310401A70303E4
:0865400001471BFA01935B0304
:08654800C101931B83C0019304
:086550009B03C001A201EAA0B7
:08655800FC01471B0601869BB4
:0865600083C101865B03C10148
:08656800861B83C00186DB02E3
:08657000C001A7DA0601869BB9
:0865780006C0018E9B86C001E4
:086580008E5B04C1018E1B8C2F
:08658800C101471B0801F201EB
:086590008E5A84C0019E5A04DA
:08659800C1013FC101471BF8DE
:0865A000019E1B8CC1019E9BB2
:0865A80086C0019E5B04C15096
:0865B00065FCFF00019D1A7F4C
:0865B80001471BFA3000080145
:0865C0006F03000193DB00C131
:0865C800016F03000193DB8069
:0865D000C0300040016F030020
:0865D8000193DB00C001A201E8
:0865E00038A1FC01471B060174
:0865E8008E9B86C0018E5B044E
:0865F000C1018E1B8CC10147A3
:0865F8001B0801F2018E5A8418
:08660000C0019E5A04C1013FD4
:08660800DE01471BF801939B22
:0866100006C0019E1B8CC101B4
:086618009E9B86C0019E5B04FD
:08662000C15067FCFF00019D61
:086628005ACF01A79B060147B0
:086630001BF6014DDB860101A0
:0866380093DB02C001931B83F8
:08664000C001935B03C101A23C
:0866480001C007FC01A7C1001D
:0866500001A7030301A20130C0
:086658005DFC01A7C10001A7D0
:08666000C302200601828C2117
:08666800260186DA01C201409F
:08667000C651080158854040A5
:0866780001400B311001A7C322
:0866800002014DDB86000193CD
:08668800DB00C001A2017F5DEF
:08669000FC0186DB00C001479C
:086698001B0201A70101014DE5
:0866A000DB86000193DB00C062
:0866A800014DDB860001931B8C
:0866B00001C001471BFE016F50
:0866B800050801935B01C0011C
:0866C000A2013E61FC01471B31
:0866C8000201861B01C001471D
:0866D0001B020186DB00C00182
:0866D800471B0201A74101016B
:0866E000A7459101504431046B
:0866E80001A7430301471BFA5F
:0866F00020060182CC202601E6
:0866F80093DB00C101935B83F9
:08670000C00193DB02C001A2FD
:0867080001EAA0FC01471B0699
:0867100001865B03C101861B39
:0867180083C00186DB02C00111
:08672000A7DA0601869B06C002
:08672800018E9B86C0018E5B0F
:0867300004C1018E1B8CC101A4
:08673800471B0801F2018E5A13
:0867400084C0019E5A04C1014E
:086748003FC601471BFE019E44
:086750005B04C001A1F13B3F15
:08675800018E5B04C001471B28
:086760000201F201471BF801E0
:08676800939B06C0019E1B8CEF
:08677000C1019E9B86C0019E41
:086778005B04C15068FCFF0046
:08678000019D5A0601A79B06CA
:0867880001471BFE014DDB0679
:08679000010193DB02C001933B
:086798001B83C02006016F0CF9
:0867A0009901A201C007FC01F0
:0867A800A7C10001A7C3020113
:0867B000B2CC32200147430086
:0867B80001C1CC322001B2CC7A
:0867C0003220200601820B01CA
:0867C80026011003010BA201E0
:0867D0002C62FC0B301B01B22E
:0867D800CC3220014DC310007A
:0867E00001C1CC322001A2012D
:0867E8002C62FC01A2014A67CA
:0867F000FC01861B83C0018639
:0867F800DB02C001A7DA060173
:08680000869B06C0018E9B86F9
:08680800C0018E5B04C1018E8A
:086810001B8CC101471B0801AC
:08681800F2018E5A84C0019EBA
:086820005A04C1013FCB0147FE
:086828001BF801939B06C0015F
:086830009E1B8CC1019E9B869A
:08683800C0019E5B04C1506821
:08684000FCFF00019D1A350167
:08684800A79B0601471BFE019E
:086850004DDB06010193DB02A0
:08685800C001931B83C0200660
:08686000016F8C9901A201C037
:0868680007FC01A7C10001A714
:08687000C30201B2CC32200189
:0868780047430001C1CC3220AE
:0868800001B2CC322020060118
:08688800820B2126011003011F
:086890000BA2012C62FC0B308D
:0868980013016F030001A7C307
:0868A000D001C1CC322001A29D
:0868A800016367FC01861B83FC
:0868B000C00186DB02C001A754
:0868B800DA0601869B06C0010F
:0868C0008E9B86C0018E5B0473
:0868C800C1018E1B8CC10147C8
:0868D0001B0801F2018E5A843D
:0868D800C0019E5A04C1013FFA
:0868E000CB01471BF801939B5B
:0868E80006C0019E1B8CC101DA
:0868F0009E9B86C0019E5B0423
:0868F800C1506DFCFF00019D81
:086900009A7E01A79B060147E6
:086908001BFA014DDB860301BF
:0869100093DB02C001931B831D
:08691800C001935B03C1019370
:086920009B83C10193DB03C25C
:0869280001931B84C201935B83
:0869300004C3014DDB06010167
:086938009E1B06C0019E5B8658
:08694000C05068FCFF00019D3E
:0869480058385061FCFF00010A
:086950009D994F2006016F8E96
:08695800992006016F0F992040
:0869600006016F90980182DA34
:0869680000C201A7430401A2D3
:0869700001C007FC01A7C100F2
:0869780001A7C3020120510335
:086980000230490120910202DE
:086988003058012051240230B7
:086990005A012011240230809D
:086998000120D12402309D0111
:0869A0002091240230BA01200D
:0869A80011250230E20120512B
:0869B00026023107012011024B
:0869B8000231FD012011030270
:0869C000330E012051020233E5
:0869C80016013366016F0300A4
:0869D00001A7C3D001C1CE32C2
:0869D8002001A2012C62FC0168
:0869E00033C901A2016367FC49
:0869E8000133C001B2CE3220E0
:0869F00001B2D05220014D0557
:0869F8001100011103011A3026
:086A00001401B2CE322001475F
:086A0800430001C1CE32200160
:086A1000A2012C62FC0133938A
:086A180001B2CF32200121037D
:086A20000018301501B2CF325D
:086A280020014DC3100001C163
:086A3000CF322001A2012C620B
:086A3800FC01336F01B2CE3204
:086A40002001210300183015AC
:086A480001B2CE3220014DC362
:086A5000100001C1CE3220014B
:086A5800A2012C62FC01334B8A
:086A600001B2CF322020060133
:086A6800824B0126014D0511CE
:086A700000011103011A3014AA
:086A780001B2CF3220014743B7
:086A80000001C1CF322001A288
:086A8800012C62FC01331C012A
:086A9000B2CE32200121030007
:086A9800126F030012A7C3D026
:086AA00012C1CF3220016F0387
:086AA8000001A7C3D001C1CE1B
:086AB000322001A2012C62FC5E
:086AB8000132F001A2017B6331
:086AC000FC01A7C10001A7437E
:086AC8000301B2CE322001A748
:086AD000030301B2D0422001D2
:086AD8004DC410000111CC00B7
:086AE00016303401B2CE522041
:086AE80001404C4114015884E7
:086AF000304001B2CE7220011A
:086AF80040CC611401588650E6
:086B00004001404543100184EF
:086B080044412001C2CD5020E0
:086B100001474C00013FBB01ED
:086B1800B2CE522001404C41B5
:086B2000140158843040014DBE
:086B2800DB86000193DB00C0D5
:086B3000014DDB860001931BFF
:086B380001C001A2017F5DFC18
:086B400001861B01C001471B87
:086B4800020186DB00C00147D9
:086B50001B0201A74101014DE8
:086B5800DB86000193DB00C0A5
:086B6000014DDB860001931BCF
:086B680001C0014DDB860001B4
:086B7000935B01C001471BFE0D
:086B7800016F060801939B0167
:086B8000C001A09101471B02B6
:086B880001865B01C001471BFF
:086B90000201861B01C0014750
:086B98001B020186DB00C001B5
:086BA000471B0201A78101015E
:086BA800A7869101508541040C
:086BB00001C2CD40200131F3C8
:086BB80001B2CE3220012103DD
:086BC0000018310901B2CE32C8
:086BC80020014DC3100001C1C2
:086BD000CE322001A2017B631B
:086BD800FC01A7C10001A74365
:086BE0000301B2CE322001A72F
:086BE800030301B2D0422001B9
:086BF0004DC410000112CC009D
:086BF80026303401B2CE522018
:086C000001404C4114015884CD
:086C0800304001B2CE72200100
:086C100040CC611401588650CC
:086C18004001404543100184D6
:086C200044412001C2CD5020C7
:086C280001474C00013FBB01D4
:086C3000B2CE522001404C419C
:086C3800140158843040014DA5
:086C4000DB86000193DB00C0BC
:086C4800014DDB860001931BE6
:086C500001C001A2017F5DFCFF
:086C580001861B01C001471B6E
:086C6000020186DB00C00147C0
:086C68001B0201A74101014DCF
:086C7000DB86000193DB00C08C
:086C7800014DDB860001931BB6
:086C800001C0014DDB8600019B
:086C8800935B01C001471BFEF4
:086C9000016F060801939B014E
:086C9800C001A09101471B029D
:086CA00001865B01C001471BE6
:086CA8000201861B01C0014737
:086CB0001B020186DB00C0019C
:086CB800471B0201A781010145
:086CC000A786910150854104F3
:086CC80001C2CD40200130DBC8
:086CD00001A2016064FC01A2B5
:086CD80001E662FC0130CC0171
:086CE000471BFE016F030801D0
:086CE80093DB00C001A0810153
:086CF000471B0201471BFE01D6
:086CF8006F03080193DB00C0EB
:086D000001A08101471B020103
:086D0800471BFE016F030801A7
:086D100093DB00C001A081012A
:086D1800471B0201471BFE01AD
:086D20006F03080193DB00C0C2
:086D280001A08101471B0201DB
:086D3000307901A2017B63FC34
:086D380001A7C10001A74303FC
:086D4000014DDB86000193DB2D
:086D480000C001A2017F5DFC07
:086D50000186DB00C001471BB6
:086D58000201A70101014DDB5E
:086D600086000193DB00C00175
:086D68004DDB860001931B01C5
:086D7000C001471BFE01935B0B
:086D780004C001A09101471BBA
:086D80000201861B01C001475E
:086D88001B020186DB00C001C3
:086D9000471B0201A7410101AC
:086D9800A745910150443104AC
:086DA0000192CD002001A201C7
:086DA8002668FC018E5B86C029
:086DB000018E1B06C001471B08
:086DB8000401865B04C301869F
:086DC0001B84C20186DB03C243
:086DC80001869B83C101865B7B
:086DD00003C101861B83C00111
:086DD80086DB02C001A7DA0608
:086DE00001869B06C0018E9B99
:086DE80086C0018E5B04C101AD
:086DF0008E1B8CC101471B083A
:086DF80001F2018E5A84C00172
:086E00009E5A04C1013FA401E8
:086E0800471BF8019E1B8CC121
:086E1000019E9B86C0019E5B00
:086E180004C1506EFCFF0001F3
:086E20009D9A9901471BFE0138
:086E28006F43030193DB00C07E
:086E300001A201E168FC014729
:086E38001B0201471BFE016F64
:086E400083020193DB00C00195
:086E4800A201E168FC01471BF7
:086E500002018E9B86C0018E39
:086E58005B04C1018E1B8CC11B
:086E600001471B0801F2018E3D
:086E68005A84C0019E5A04C1C6
:086E7000013FDE01471BF801A0
:086E7800939B06C0019E1B8CD8
:086E8000C1019E9B86C0019E2A
:086E88005B04C1506EFCFF0029
:086E9000019D1ABE01A79B063B
:086E9800014DDB86000193DBD4
:086EA00002C00186DA00C20104
:086EA800A7C3020182CB002008
:086EB00001000302301F01473D
:086EB8001BFE0182CB0020014A
:086EC00093DB00C001A201E117
:086EC80068FC01471B020147B1
:086ED0008B00013FD60186DBB7
:086ED80002C001A7DA060186E1
:086EE0009B06C0018E9B86C0D9
:086EE800018E5B04C1018E1B49
:086EF0008CC101471B0801F2EF
:086EF800018E5A84C0019E5A6C
:086F000004C1013FD001471B51
:086F0800F801939B06C0019EF5
:086F10001B8CC1019E9B86C091
:086F1800019E5B04C1506FFCF7
:086F2000FF00019D9AD901A7B1
:086F28009B0601471BFE0186D8
:086F3000DA00C20193DB00C08E
:086F380001A201736EFC014788
:086F40001B0201A201076EFC17
:086F480001A7DA0601869B0691
:086F5000C0018E9B86C0018E7A
:086F58005B04C1018E1B8CC11A
:086F600001471B0801F2018E3C
:086F68005A84C0019E5A04C1C5
:086F7000013FD5000000000004
:086F7800000000000000000011
:086F800001F7200301935F00FB
:086F880011200301939F801109
:086F900020030193DF00122031
:086F98000301931F8112200385
:086FA00001935F0113200301BE
:086FA800939F81132003019364
:086FB000DF0114200301931F0F
:086FB8008214200301935F0223
:086FC00015200301939F8215C7
:086FC80020030193DF021620F3
:086FD0000301931F8316200347
:086FD80001935F031720030180
:086FE000939F83172003019326
:086FE800DF0318200301931FD1
:086FF0008418200301935F04E3
:086FF80019200301939F841985
:0870000020030193DF041A20B4
:087008000301931F851A200308
:0870100001935F051B20030141
:08701800939F851B20030193E7
:08702000DF051C200301931F92
:08702800861C200301935F06A2
:087030001D200301939F861D42
:0870380020030193DF061E2076
:0870400005019E5F08192005FF
:08704800019E9F88192005013B
:087050009EDF081A2005019ED5
:087058001F891A2005019E5F4B
:08706000091B2005019E9F8918
:087068001B2005019EDF091C3D
:087070002005019E5F0A1D20AE
:0870780005019E9F8A1D200501
:08708000019EDF0A1E2005013C
:087088009E1F8B1E2005019ED6
:087090005F0B1F2005019E9F0C
:087098008B1F2006019EDF0B97
:0870A000002005019E5F0411B0
:0870A8002005019E9F841120C8
:0870B00005019EDF041220051A
:0870B800019E1F851220050155
:0870C0009E5F05132005019EEF
:0870C8009F85132005019EDFE6
:0870D00005142005019E1F8636
:0870D800142005019E5F06155E
:0870E0002005019E9F8615208A
:0870E80005019EDF06162005DC
:0870F000019E5F071720050156
:0870F8009E9F87172006019EF0
:087100001F8C004016C00001C5
:087108006F1B8E01A980090133
:087110009DEEFF01A9400801FA
:087118009DE9FF5000D0FF00CB
:08712000019D25003000100163
:087128009D2D0001471BF80139
:08713000939B06C0019E1B8C1D
:08713800C1019E9B86C0019E6F
:087140005B04C15075FCFF0067
:08714800019D1A7C01A79B06C2
:0871500001471BF8014DDB06AD
:08715800030193DB02C0019367
:087160001B83C001935B03C116
:0871680001939B83C10193DB3D
:0871700003C201931B84C2015C
:08717800A201C5BBFC01A7C187
:0871800000012003000632ADFE
:0871880001A201DDBBFC01A71F
:08719000C10001A7C38001A7A3
:08719800030301A201D1BBFCBD
:0871A00040F00A010186C082E3
:0871A8002201010B12323C012F
:0871B000471BFC016F033201D3
:0871B80093DB80C0404600019A
:0871C000016F03960193DB004F
:0871C800C001A201007EFC01E0
:0871D000A7C1000102032230F7
:0871D8006E20060180CBF026B9
:0871E00001A7C38001A703040D
:0871E80020060180CB00270105
:0871F000A7C38001A7C303013E
:0871F80047500020060180CB86
:08720000102701A7C380011350
:08720800D000366F10000113E5
:08721000D00332301B200601FF
:08721800900BF4260140D03276
:087220001001A70C8301A70C6B
:08722800C32006019003232797
:0872300001471BFE404600016E
:08723800016F03960193DB00D6
:08724000C001A201707EFC01F7
:0872480022CC012330362006A0
:087250000180CBC026010703F9
:08725800736F0300726F430025
:0872600001A7C3800102032312
:08726800A8480001A9810C01F6
:08727000A87600015441100052
:0872780030FFFC015341F0FF5F
:0872800001A9810D2006018027
:087288000BD1260153C44000A4
:087290000102032230F5012385
:087298004C0833305B016F0E5E
:0872A0000001240E0246304DEE
:0872A80001584E3040014C0B6F
:0872B000416B01B2C430200162
:0872B80025C3FF5230370158D5
:0872C0004E60400140C652106F
:0872C8002006018245412B0163
:0872D0005805434040C01701BE
:0872D800014CC4000001A743B2
:0872E000032002016FC38020AE
:0872E800080193CD8028014745
:0872F0004E00013FAC01309398
:0872F80001240C0B42300701D8
:08730000248C06433085202097
:08730800016F040040C01701F1
:08731000014CC4000001A74379
:08731800032002016F05800152
:08732000260C0B626F060562EA
:087328003008016F870601A780
:087330008701014085411001B5
:087338004DDB86000193DB0030
:08734000C0014DDB8600019342
:087348001B01C0014DDB8600B2
:0873500001935B01C001A201E1
:08735800514AFC01865B01C0F3
:0873600001471B0201861B011D
:08736800C001471B020186DB96
:0873700000C001471B0201A748
:08737800810101580658400193
:08738000504431042008019380
:08738800CD8028200601800BD6
:08739000D1260153C4200001C5
:08739800020322304E01224CD9
:0873A0000323304740360001D1
:0873A8000182C08029012303CA
:0873B0000037303701471BF8DC
:0873B800016FC3FF0193DB80AC
:0873C000C1016FC3FF0193DB63
:0873C80000C1016FC3FF019336
:0873D000DB80C0403600010122
:0873D80082C080290193DB0053
:0873E000C001A2011D3EFC01E9
:0873E800471B084046000101AB
:0873F00082C000260121030008
:0873F80017303701471BF801B3
:087400006FC3FF0193DB80C1A3
:08740800016FC3FF0193DB00DB
:08741000C1016FC3FF0193DB12
:0874180080C040460001018222
:08742000C000260193DB00C04F
:0874280001A2011D3EFC014719
:087430001B08013D4201861B0F
:0874380084C20186DB03C201DE
:08744000869B83C101865B03FA
:08744800C101861B83C001860F
:08745000DB02C001A7DA06010E
:08745800869B06C0018E9B8695
:08746000C0018E5B04C1018E26
:087468001B8CC1200301865FAB
:087470000011200301869F803A
:087478001120030186DF001260
:08748000200301861F81122088
:087488000301865F01132003DC
:0874900001869F811320030116
:0874980086DF011420030186C8
:0874A0001F8214200301865F26
:0874A8000215200301869F82FA
:0874B0001520030186DF02161E
:0874B800200301861F8316204A
:0874C0000301865F031720039E
:0874C80001869F8317200301D8
:0874D00086DF0318200301868A
:0874D8001F8418200301865FE8
:0874E0000419200301869F84BA
:0874E8001920030186DF041ADC
:0874F000200301861F851A200C
:0874F8000301865F051B200360
:0875000001869F851B20030199
:0875080086DF051C200301864B
:087510001F861C200301865FA9
:08751800061D200301869F8679
:087520001D20030186DF061E99
:087528002005018E5F08192007
:0875300005018E9F881920055A
:08753800018EDF081A20050195
:087540008E1F891A2005018E3F
:087548005F091B2005018E9F65
:08755000891B2005018EDF09F3
:087558001C2005018E5F0A1DD5
:087560002005018E9F8A1D2009
:0875680005018EDF0A1E20055B
:08757000018E1F8B1E20050196
:087578008E5F0B1F2005018E40
:087580009F8B1F2006018EDF26
:087588000B002005018E5F04D9
:08759000112005018E9F8411FA
:087598002005018EDF04122022
:0875A00005018E1F8512200574
:0875A800018E5F0513200501AF
:0875B0008E9F85132005018E5A
:0875B800DF05142005018E1F00
:0875C00086142005018E5F0610
:0875C800152005018E9F8615B8
:0875D0002005018EDF061620E4
:0875D80005018E5F0717200575
:0875E000018E9F8717200601B0
:0875E8008E1F8C0001F701F475
:0875F000018E5A84C0019E5A6D
:0875F80004C1013E3801471BEC
:08760000F801939B06C0019EF6
:087608001B8CC1019E9B86C092
:08761000019E5B04C15076FCF1
:08761800FF00019DDABA01A791
:087620009B0601471BFC014D14
:08762800DB86010193DB02C0C7
:0876300001931B83C001935B71
:0876380003C1016F0C0001A762
:087640004C0301A201C007FC8C
:0876480001A7C10001A7C30264
:0876500001471BFC016F03322E
:087658000193DB80C0404600F5
:0876600001016F03960193DBA9
:0876680000C001A201007EFC3C
:0876700001A7C10001000302A3
:08767800303520060180CBF043
:087680002601A7C38001A74306
:087688000320060180CB00275E
:0876900001A7C38001A7030359
:0876980001471BFE4046000102
:0876A000016F03960193DB006A
:0876A800C001A201707EFC018B
:0876B000100D03036FC1FF037D
:0876B8003004016F010001869E
:0876C0005B03C101861B83C0BE
:0876C8000186DB02C001A7DA14
:0876D0000601869B06C0018E35
:0876D8009B86C0018E5B04C11A
:0876E000018E1B8CC101471B48
:0876E8000801F2018E5A84C072
:0876F000019E5A04C1013FC6CE
:0876F80001471BF801939B06FA
:08770000C0019E1B8CC1019E1B
:087708009B86C0019E5B04C1D9
:087710005078FCFF00019D1AF6
:087718000601A79B0601471BB7
:08772000FC014DDB06020193A0
:08772800DB02C001931B83C0CA
:0877300001935B03C101939B6F
:0877380083C101A201C007FC9E
:0877400001A7C10001A703032A
:08774800016F0D0001471BFC5D
:08775000016F03320193DB809D
:08775800C040460001016F036F
:08776000960193DB00C001A2B9
:0877680001007EFC01A7C10035
:0877700001000302306C200649
:087778000180CCF02601A7C33B
:087780008001A783032006012C
:0877880080CC002701A7C3809B
:0877900001A7C3020111CE02A2
:08779800123030014CCC2067D7
:0877A00001B0C3322001A7C3B0
:0877A8008001A7430301474BD8
:0877B0000020060180CC102727
:0877B80001A7C3800112CB0000
:0877C000266F0B00200601906A
:0877C800CC022701471BFE4023
:0877D000460001016F03960160
:0877D80093DB00C001A2017067
:0877E0007EFC01A74D000186AB
:0877E8009B83C101865B03C114
:0877F00001861B83C00186DB4A
:0877F80002C001A7DA060186B8
:087800009B06C0018E9B86C0AF
:08780800018E5B04C1018E1B1F
:087810008CC101471B0801F2C5
:08781800018E5A84C0019E5A42
:0878200004C1013FC10000009A
:08782800000000000000000058
:0878300001471BF801939B06C0
:08783800C0019E1B8CC1019EE2
:087840009B86C0019E5B04C1A0
:08784800507BFCFF00019D9A3A
:08785000EF01A79B0601471B95
:08785800F6014DDB86020193ED
:08786000DB02C001931B83C091
:0878680001935B03C101939B36
:0878700083C10193DB03C22078
:0878780006016F4D9B20060183
:087880006F0F9B40460001015F
:0878880086C000270100030384
:08789000302801471BFE4046B1
:087898000001016F0398019348
:0878A000DB00C001A2017C34F1
:0878A800FC01471B02016F43C4
:0878B00000404600010193C0F5
:0878B800002701A201C007FC3A
:0878C00001A7C10001A7C302EA
:0878C80001A201FD75FC01A7FE
:0878D000C10001200300073094
:0878D8006020060180CBE026D0
:0878E00001210300126FC1FF3A
:0878E80012329C01471BF680DF
:0878F000FFFFFFFFFFFF7F0116
:0878F8006FC3FF0193DB00C226
:08790000014CDA80DD0193DB8C
:0879080080C1014CDA00DE0130
:0879100093DB00C1014CDA8099
:08791800DE0193DB80C0404654
:0879200000010182C0002601F4
:0879280093DB00C001A201EA9B
:0879300041FC01471B0A013F65
:087938008F01A201F876FC01A9
:08794000A7C1000153C3F00FC1
:087948000153C3F00F01A783F6
:087950000301200E3C0230345B
:0879580001200E380230390154
:08796000200E0502304D01204C
:087968004E1602307B0120CE17
:087970001D0230A901200E16D2
:087978000230B401208E1F0251
:0879800030BF01204E0402306B
:08798800CA0130FC016FC3FFCE
:0879900001C0CF32200131ECEF
:0879980001B0CD32200154C3FF
:0879A000000801C0CD322001F6
:0879A800B0CD322001A7C3801D
:0879B0000131D101B0CF3220FA
:0879B800012103001730120148
:0879C000B0CD32200154C34098
:0879C8000001C0CD32200130A6
:0879D0000F01B0CD322001537C
:0879D800C3B0FF01C0CD322055
:0879E00001C0CF022001319C1F
:0879E80001B0CF3220012103A0
:0879F0000017301201B0CD3286
:0879F800200154C3100001C07E
:087A0000CD322001300F01B06E
:087A0800CD32200153C3E0FF61
:087A100001C0CD322001C0CFFE
:087A1800022001316701B0CD2D
:087A200032200155C3000101F1
:087A2800C0CD322001315501EF
:087A3000B0CD32200155C30066
:087A38000201C0CD3220013132
:087A40004301B0CD32200155D5
:087A4800C3000401C0CD32208F
:087A500001313101B0CF3220F9
:087A58000121030017301201A7
:087A6000B0CD32200154C32017
:087A68000001C0CD3220013005
:087A70000F01B0CD32200153DB
:087A7800C3D0FF01C0CD322094
:087A800001C0CF02200130FC1F
:087A880001214E03133035010A
:087A9000B0CD42200153C420D7
:087A9800000101031230250179
:087AA000B0CF322001210300E8
:087AA80013301940F00A01013E
:087AB00086C0002501474300D8
:087AB80040F00A010193C00037
:087AC000250130C001B0CF32F6
:087AC8002001020323C0CF02DC
:087AD000202330B001B0CD42CB
:087AD8002001A704810153C441
:087AE0000008010303323031FC
:087AE80001B0CD32200153C3AF
:087AF000F0F701C0CD322001C6
:087AF800B0CD322001A7C380CC
:087B000050BBFCFF000180CE28
:087B0800503401A7C38001A75E
:087B1000030301A74C00013042
:087B18006E01B0CD42200153C3
:087B2000C440000104034230DF
:087B28001950BAFCFF000180B6
:087B3000CE502C01A7C3800117
:087B3800A7030301A74C0001A3
:087B4000304501B0CD422001E7
:087B480053C4100001050352B3
:087B5000301950B9FCFF0001DF
:087B580080CE503C01A7C38060
:087B600001A7030301A74C007B
:087B680001301C50B8FCFF00C5
:087B70000180CE502C01A7C3D7
:087B78008001A7030301A74CE3
:087B800000013003013D410149
:087B880086DB03C201869B832A
:087B9000C101865B03C10186FF
:087B98001B83C00186DB02C063
:087BA00001A7DA0601869B062D
:087BA800C0018E9B86C0018E16
:087BB0005B04C1018E1B8CC1B6
:087BB80001471B0801F2018ED8
:087BC0005A84C0019E5A04C161
:087BC800013FBC01471BF8015D
:087BD000939B06C0019E1B8C73
:087BD800C1019E9B86C0019EC5
:087BE0005B04C1507CFCFF00B6
:087BE800019D1A1201A79B0682
:087BF00001471BFE014DDB867D
:087BF800000193DB02C001A2B1
:087C000001C007FC01A7C1004F
:087C080001A7C302016F430054
:087C100020060190CBE02601E3
:087C1800A2013078FC01A7C1B4
:087C20000001A743000186DB0F
:087C280002C001A7DA06018683
:087C30009B06C0018E9B86C07B
:087C3800018E5B04C1018E1BEB
:087C40008CC101471B0801F291
:087C4800018E5A84C0019E5A0E
:087C500004C1013FD001471BF4
:087C5800F801939B06C0019E98
:087C60001B8CC1019E9B86C034
:087C6800019E5B04C1507CFC8D
:087C7000FF00019D9A3301A7FA
:087C78009B0601471BFE014DB4
:087C8000DB86000193DB02C06A
:087C880001A201C007FC01A7E5
:087C9000C10001A7C302200698
:087C980001900BE02601A2019E
:087CA0003078FC01A7C10001CE
:087CA800A743000186DB02C0C6
:087CB00001A7DA0601869B061C
:087CB800C0018E9B86C0018E05
:087CC0005B04C1018E1B8CC1A5
:087CC80001471B0801F2018EC7
:087CD0005A84C0019E5A04C150
:087CD800013FD0000000000094
:087CE00001471BF8019E1B8CFB
:087CE800C101A85C00018E1B24
:087CF0008CC101471B0801F2E1
:087CF80001471BF801939B06F4
:087D0000C0019E1B8CC1019E15
:087D08009B86C0019E5B04C1D3
:087D1000507DFCFF00019DDA2B
:087D18005801A79B060186DA61
:087D200000C20120C33F09303D
:087D28001C0186DA80C2012073
:087D3000030002301001869AE5
:087D380000C201865A80C2015D
:087D4000A2018206FC01A7DA92
:087D48000601869B06C0018EB6
:087D50009B86C0018E5B04C19B
:087D5800018E1B8CC101471BC9
:087D60000C01F2018E5A84C0EF
:087D6800019E5A04C1013FD540
:087D700001471BF8019E1B8C6A
:087D7800C1019E9B86C0019E23
:087D80005B04C1507DFCFF0013
:087D8800019DDA7A01471BFCA2
:087D9000016FC3010193DB80C8
:087D9800C0500FDCFF00016F79
:087DA00003F80193DB00C001B0
:087DA800A201D0A5FC01471B5C
:087DB0000401471BFC016FC335
:087DB800030193DB80C0500FB2
:087DC000DCFF00016F03F2017A
:087DC80093DB00C001A201D011
:087DD000A5FC01471B04018E14
:087DD8009B86C0018E5B04C113
:087DE000018E1B8CC101471B41
:087DE8000801F2018E5A84C06B
:087DF000019E5A04C1013FDEAF
:087DF800000000000000000083
:087E000001471BF801939B06EA
:087E0800C0019E1B8CC101A703
:087E10009B06016F41000130E7
:087E18003701865A00C2018601
:087E20009A80C201000202A7D2
:087E28004000023023014D82ED
:087E30001000018BC1002001CC
:087E380000030730070110C32D
:087E400007023008018CC107A4
:087E480020033FD7016F410048
:087E500001A7DA0601869B067A
:087E5800C0018E1B8CC1014723
:087E60001B0C01F20000000000
:087E6800000000000000000012
:087E700001471BF801939B067A
:087E7800C0019E1B8CC101A793
:087E80009B0601865A00C201B5
:087E88006FC2FF01938100208D
:087E900001A7DA0601869B063A
:087E9800C0018E1B8CC10147E3
:087EA0001B0A01F200000000C2
:087EA8000000000000000000D2
:087EB00001471BF801939B063A
:087EB800C0019E1B8CC101A753
:087EC0009B0601471BFE014D6A
:087EC800DB06010193DB02C09F
:087ED00001931B83C040C82789
:087ED80001016F0C08016FC3EA
:087EE000FF01A7C3020186CCDB
:087EE800002001200315063003
:087EF0002101860C012001585C
:087EF80044304040C82701019D
:087F000086C382220186CC0039
:087F080020014743000193CC66
:087F1000002001A74B000186CF
:087F18001B83C00186DB02C0DF
:087F200001A7DA0601869B06A9
:087F2800C0018E1B8CC1014752
:087F30001B0801F201471BF8D8
:087F380001939B06C0019E1B92
:087F40008CC1019E9B86C0016B
:087F48009E5B04C1507FFCFFA9
:087F500000019D1AF201A79B3C
:087F58000601471BFE014DDB91
:087F600086000193DB02C04022
:087F6800C827010186C00022B8
:087F70000120031506302A016F
:087F7800A201B07EFC01A7C1CB
:087F80000001A7C39001A7C393
:087F88000201210B0813300770
:087F90000121CBFF13300701B2
:087F9800A74B00013007013F77
:087FA000C6016FC1FF0186DB81
:087FA80002C001A7DA06018600
:087FB0009B06C0018E9B86C0F8
:087FB800018E5B04C1018E1B68
:087FC0008CC101471B0801F20E
:087FC800018E5A84C0019E5A8B
:087FD00004C1013FD0000000D4
:087FD8000000000000000000A1
:087FE00001471BF801939B0609
:087FE800C0019E1B8CC1019E2B
:087FF0009B86C0019E5B04C1E9
:087FF8005081FCFF00019D1AFD
:088000004501A79B0601471B87
:08800800FA014DDB8601019332
:08801000DB02C001931B83C0D9
:0880180001935B03C1016F0C31
:0880200000016F0D0001A20137
:08802800347FFC40C827010170
:0880300086C00022014DC310BF
:088038000040C827010193C0BC
:088040000022016F4300010062
:088048000302309B01A201B00C
:088050007EFC01A7C10001A79D
:08805800C39001A7C30201213E
:088060000B0C1B301D01214B2C
:088068000E19301601580C41FD
:0880700040014D4B01030150DA
:0880780044310401A7030301D8
:08808000305901224B102B3096
:088088001D01228B11293016A5
:0880900001580C4140014C4B6A
:0880980091FC01504431040188
:0880A000A703030130350123A1
:0880A8004B183B301D01238B36
:0880B0001939301601580C418A
:0880B80040014C4B91FA01500C
:0880C00044310401A703030190
:0880C80030110186DA00C2014B
:0880D0009303032001A74D00FA
:0880D80001300C014CCD100039
:0880E00001A74303013F5B010E
:0880E800865B03C101861B83C6
:0880F000C00186DB02C001A7FC
:0880F800DA0601869B06C001B7
:088100008E9B86C0018E5B041A
:08810800C1018E1B8CC101476F
:088110001B0A01F2018E5A84E2
:08811800C0019E5A04C1013FA1
:08812000C60000000000000091
:0881280000000000000000004F
:0881300001471BF801939B06B7
:08813800C0019E1B8CC1019ED9
:088140009B86C0019E5B04C197
:088148005082FCFF00019D5A6A
:088150008B01A79B0601471BF0
:08815800FA014DDB0602019360
:08816000DB02C001931B83C088
:0881680001935B03C101939B2D
:0881700083C10186DA00C2019F
:08817800A7830301200E0002A1
:088180006F0100023075016F70
:088188000B00016F0C00014720
:088190001BFE01A201B07EFC00
:0881980001A7C10001A7C3907B
:0881A00001A7430301935B03F7
:0881A800C001A2018899FC014D
:0881B000471B0201A7C10001F9
:0881B800000302301E016F04F8
:0881C000F4014A8BA10001400B
:0881C800465310014044311040
:0881D00001A7C30201474C00A6
:0881D800013FB340C82701017B
:0881E00086C00022014DC3100E
:0881E8000040C827010193C00B
:0881F00000220193CE022001E0
:0881F800A74C0001869B83C126
:0882000001865B03C101861B2E
:0882080083C00186DB02C00106
:08821000A7DA0601869B06C0F7
:08821800018E9B86C0018E5B04
:0882200004C1018E1B8CC10199
:08822800471B0A01F2018E5A06
:0882300084C0019E5A04C10143
:088238003FC10000000000003E
:0882400001471BF801939B06A6
:08824800C0019E1B8CC1019EC8
:088250009B86C0019E5B04C186
:088258005085FCFF00019D9A16
:088260004001A79B0601471B2A
:08826800F0014DDB86010193DA
:08827000DB02C001931B83C077
:0882780001935B03C1014DDB22
:088280000601019E1B06C0016E
:088288009E5B86C0014CDA0088
:08829000DE01A74303507FFC4F
:08829800FF00019D18F8507E63
:0882A000FCFF00019D19AC0177
:0882A800A09101A7C10001A78C
:0882B000C39001A703030120A4
:0882B8000C1902301F01200C1B
:0882C0001D0230560120CC1A0A
:0882C80002305C01208C1A0257
:0882D00030D30120CC1C023068
:0882D800F30131E701471BF639
:0882E000016F03000193DB00B4
:0882E800C2016F03000193DBEA
:0882F00080C1016F030001933E
:0882F800DB00C1016F0300016E
:0883000093DB80C0016F03084C
:088308000193DB00C001A2019A
:08831000F01BFC01471B0A01F0
:0883180031A901A2013252FC5F
:08832000016F01000131A00111
:08832800A09101A7C10001A70B
:08833000C39001A70303012122
:088338004C1A13302901A09139
:0883400001A7C10001A7C390D1
:0883480001A7030301220C1B35
:0883500023301301A09101A7E5
:08835800C10001A7C39001A7B9
:08836000030301230C1B01477C
:088368001BFE014CDA80DE016E
:0883700093DB00C001A08101B4
:08837800A7C10001A7C3020127
:08838000210B00143018014725
:088388001BFE0186DA80DE0114
:0883900093DB00C001A20120F3
:0883980019FC01471B02016FF3
:0883A000010001312201471B1D
:0883A800FE01935B03C001A07C
:0883B0008101A7C10001A7C370
:0883B8000201210B001586CD26
:0883C000002015A9C30415A05B
:0883C800310130F701A0910121
:0883D000A7C10001A7C3900141
:0883D800A7030301210C1D1392
:0883E00030E101471BFE014CD6
:0883E800DA80DD0193DB00C027
:0883F00001A2013081FC01A78C
:0883F800C10001A7C30201222C
:088400000B002430BE01471BF4
:08840800FE014CDA00DD0193D6
:08841000DB00C001A201308174
:08841800FC01A7C10001A7C38C
:088420000201220B0024309B35
:0884280001471BFE01935B03F9
:08843000C001A08101A7C100F9
:0884380001A7C30201220B00A1
:0884400024308001471BFE01FE
:088448004CDA80DC0193DB003B
:08845000C001A08101A7C100D9
:0884580001A7C30201220B0081
:0884600024306001471BFE01FE
:088468004CDA00DC0193DB009B
:08847000C001A08101A7C100B9
:0884780001A7C30201220B0061
:0884800024304001471BF60106
:0884880086DA00DC0193DB0041
:08849000C20186DA80DC0193D1
:08849800DB80C10186CD00204C
:0884A0000193DB00C10186DA43
:0884A80000DD0193DB80C0013F
:0884B00086DA80DD0193DB0098
:0884B800C001A201F01BFC0150
:0884C000471B0A016F010001D6
:0884C8008E5B86C0018E1B06CD
:0884D000C001471B0401865B9B
:0884D80003C101861B83C001F2
:0884E00086DB02C001A7DA06E9
:0884E80001869B06C0018E9B7A
:0884F00086C0018E5B04C1018E
:0884F8008E1B8CC101471B081B
:0885000001F2018E5A84C00152
:088508009E5A04C1013FB801B5
:08851000471BF8019E1B8CC102
:08851800019E9B86C0019E5BE1
:0885200004C15085FCFF0001BD
:088528009D5A6140C8270101C2
:088530009300002240C827015E
:088538000182C0802201200332
:088540000903301E40C82701A9
:08854800016F030A0182C32048
:08855000200120830F026F835C
:088558000040C827010293C096
:08856000002201A2014082FC8F
:0885680001A7C10001A74300B7
:08857000018E9B86C0018E5BA9
:0885780004C1018E1B8CC1013E
:08858000471B0801F2018E5AAD
:0885880084C0019E5A04C101E8
:088590003FDE01471BF8019ECC
:088598001B8CC101471BFE0111
:0885A000939B01C0016FC600AE
:0885A80001A5CD0A01580112E2
:0885B0004C01869B01C001474C
:0885B8001B02018E1B8CC101A6
:0885C000471B0801F201471BF3
:0885C800F8019E1B8CC1014764
:0885D0001BFE01939B01C00199
:0885D8006FC60001A5CD0A01E8
:0885E000A741C001869B01C008
:0885E80001471B02018E1B8CF0
:0885F000C101471B0801F20163
:0885F800471BF801939B06C02C
:08860000019E1B8CC1019E9B31
:0886080086C0019E5B04C15015
:0886100087FCFF00019DDAE781
:0886180001A79B0601471BF6B8
:08862000014DDB06020193DBB2
:0886280002C001931B83C00195
:08863000935B03C101939B83DE
:08863800C15000D0FF00016FEA
:08864000030001A783030147B9
:088648001BFE2008016F040075
:088650004018C000014CC400F9
:08865800800193DB00C001A2C8
:08866000012A58FC01471B022E
:0886680001471BFE50E2FCFF7C
:0886700000016F038F0193DB91
:0886780000C001A201FF94FC07
:0886800001471B0201A2017E6B
:0886880094FC01A7C10001A749
:08869000C39001A703030120C0
:088698004C0302301201471BE4
:0886A000FE01931B03C001A2BF
:0886A80001208FFC013FD50108
:0886B000A2019285FC01A7C1A3
:0886B8000001A7C38001A743E4
:0886C0000301A201C585FC01C4
:0886C800A7C10001A7C3800156
:0886D00093DA00DE016F0B00DC
:0886D80001200B1506305C01C6
:0886E000584B3040014DDB86D0
:0886E800000193DB00C0014713
:0886F0001BFE014ACD4105010A
:0886F80040C7621001588650D2
:088700004001B44E5120015369
:0887080005F13F01931B01C0C4
:0887100001A2017804000186BA
:08871800DB00C001471B020158
:08872000A7010101A70491016A
:08872800A704D140C82701019C
:088730009103812201474B0077
:08873800013F9D01471BFC40BD
:08874000C82701016F030A01C3
:0887480093DB80C050E2FCFF4E
:0887500000016F038C0193DBB3
:0887580000C001A201FF94FC26
:0887600001471B0401A2010FF7
:0887680085FC013EFB01869B2C
:0887700083C101865B03C10116
:08877800861B83C00186DB02B1
:08878000C001A7DA0601869B87
:0887880006C0018E9B86C001B2
:088790008E5B04C1018E1B8CFD
:08879800C101471B0801F201B9
:0887A0008E5A84C0019E5A04A8
:0887A800C1013FC10000000007
:0887B00001471BF801939B0631
:0887B800C0019E1B8CC101A74A
:0887C0009B0601865A80C101ED
:0887C800869A00C201A9010A12
:0887D00001A9420A01A7DA0623
:0887D80001869B06C0018E1B07
:0887E0008CC101471B0C01F2E2
:0887E80001471BF801939B06F9
:0887F000C0019E1B8CC101A712
:0887F8009B0601471BFC014D2B
:08880000DB86010193DB02C0DD
:0888080001931B83C001935B87
:0888100003C10186DA00C20178
:08881800A703030153CCF0019A
:0888200001A7430301584C417C
:0888280044015844304001A74F
:08883000C3020158CB50404087
:088838004E00010186450125F7
:0888400001584D60400158850C
:0888480041040153C43000019A
:08885000A7430001865B03C190
:0888580001861B83C00186DBD1
:0888600002C001A7DA0601863F
:088868009B06C0018E1B8CC1B0
:0888700001471B0801F201475A
:088878001BF801939B06C001EF
:088880009E1B8CC1019E9B862A
:08888800C0019E5B04C1508990
:08889000FCFF00019DDA670105
:08889800A79B0601471BFC0130
:0888A0004DDB86010193DB02B0
:0888A800C001931B83C0019382
:0888B0005B03C10186DA00C27E
:0888B80001A703030153CCF0FA
:0888C0000101A7430301584C1C
:0888C800414401584430400115
:0888D000A7C3020158CB3040A0
:0888D800016FC60001584D704C
:0888E000400158C6510001A738
:0888E80005B1404E00010186BC
:0888F000430125015005510070
:0888F800404E00010193430111
:08890000250158CB304001862F
:088908009A81C20153463100BF
:0889100001584D60400158853B
:088918004100404E0001018600
:0889200043012501500551043B
:08892800404E000101934301E0
:088930002501471BFC0186DA5A
:0889380001C3015387F13F0167
:088940005886514001861A829D
:08894800C30153C8710001587E
:08895000C7604001508541049D
:088958000154C460000193DB2F
:0889600080C001580C344001F5
:0889680093DB00C001A201B085
:0889700087FC01865B03C101D5
:08897800861B83C00186DB02AF
:08898000C001A7DA0601869B85
:0889880006C0018E9B86C001B0
:088990008E5B04C1018E1B8CFB
:08899800C101471B0801F201B7
:0889A0008E5A84C0019E5A04A6
:0889A800C1013FC601471BF8A5
:0889B00001939B06C0019E1B10
:0889B8008CC1019E9B86C001E9
:0889C0009E5B04C1508AFCFF1C
:0889C80000019D5A9701A79BD5
:0889D00006014DDB06010193D5
:0889D800DB02C001931B83C008
:0889E0000186DA00C201A7C301
:0889E800020186DA00C301A7B9
:0889F000030301200C00083014
:0889F8003C01471BF80186DA7F
:088A000000C40193DB80C101F9
:088A080086DA80C30193DB0054
:088A1000C10186DA80C2019366
:088A1800DB80C00193DB02C00A
:088A200001A101000001471B48
:088A280008014D0C1300014789
:088A30004B00013FBD01861B54
:088A380083C00186DB02C001CE
:088A4000A7DA0601869B06C0BF
:088A4800018E9B86C0018E5BCC
:088A500004C1018E1B8CC10161
:088A5800471B1201F2018E5AC6
:088A600084C0019E5A04C1010B
:088A68003FCB01471BF801930D
:088A70009B06C0019E1B8CC196
:088A7800019E9B86C0019E5B7C
:088A800004C1508BFCFF000152
:088A88009D5ADC01A79B0601C9
:088A9000471BFA014DDB060251
:088A98000193DB02C001931BF6
:088AA00083C001935B03C101D7
:088AA800939B83C12008016FBC
:088AB0000E00405E000101868A
:088AB800C0022501108B030A26
:088AC000307901471BFE019310
:088AC800DB02C001A201E887F6
:088AD000FC01471B0201A7C1D4
:088AD8000001210300133054DA
:088AE00001861A03C201A74B35
:088AE8000301471BFE0193DBB3
:088AF00002C001A201E887FCAD
:088AF80001471B0201A7C100A8
:088B00000122030023301701DC
:088B0800220C002830100112BC
:088B10008B032B474B002B4D9A
:088B18000C13002B3FCB0122DE
:088B20000C0028A74D002830CD
:088B28001601128B032A6F01F4
:088B3000002A300B01474B0045
:088B3800013F80016F01000103
:088B4000869B83C101865B03E3
:088B4800C101861B83C00186F8
:088B5000DB02C001A7DA0601F7
:088B5800869B06C0018E9B867E
:088B6000C0018E5B04C1018E0F
:088B68001B8CC101471B080131
:088B7000F2018E5A84C0019E3F
:088B78005A04C1013FC101478D
:088B80001BF801939B06C001E4
:088B88009E1B8CC101A79B0696
:088B9000014DDB86000193DBBF
:088B980002C00186DA00C201EF
:088BA000A7C30230FF000147EA
:088BA800CBFF3000FF0153CBAD
:088BB000020001A74B00018641
:088BB800DB02C001A7DA06018F
:088BC000869B06C0018E1B8C90
:088BC800C101471B0A01F20084
:088BD00001471BF801939B060D
:088BD800C0019E1B8CC1019E2F
:088BE0009B86C0019E5B04C1ED
:088BE800508DFCFF00019D9A75
:088BF0007801A79B0601471B59
:088BF800F6014DDB8603019339
:088C0000DB02C001931B83C0DD
:088C080001935B03C101939B82
:088C100083C10193DB03C201E3
:088C1800931B84C201935B046D
:088C2000C30186DA80C201A73E
:088C280043030186DA00C301D9
:088C3000A783030186DA00C2EC
:088C380001A70304405E0001E6
:088C40000180C0802501000342
:088C48000230A2405E000101B0
:088C50009000802501471BFA8A
:088C58002010016F03000193DD
:088C6000DB00C1016F030001FC
:088C680093DB80C0404E0001C7
:088C7000016F03940193DB0086
:088C7800C001A2019CA0FC0157
:088C8000471B06016F03000110
:088C8800A7430401471BFE0194
:088C9000935B04C001A2017E08
:088C98008BFC01A7C10001A73C
:088CA000430401581144440192
:088CA8004CC4800001A7030386
:088CB000200801200C000A302D
:088CB8003401931A80DE0186ED
:088CC000DA80DE011103031646
:088CC80030110186DA80DE01A3
:088CD0004743000193DA80DE46
:088CD800013FE3405E000101D1
:088CE0009300032540C82701A1
:088CE800019300032F01471B5B
:088CF000FE01931B04C001A268
:088CF800017E8BFC01A7C10005
:088D000001A70304012010008B
:088D0800026F0100023092012C
:088D10005810344401A7C3030D
:088D180001471BFE0193DB0380
:088D2000C001A2016A8AFC01F6
:088D2800471B0201A7C1000175
:088D3000A7C30201200B0002A1
:088D38006F01000230630147E6
:088D40001BF601939B03C20125
:088D4800935B83C10193DB037F
:088D5000C1016F43000193DB38
:088D580080C00193DB02C001A1
:088D6000A101000001471B0AFC
:088D680001471BF801939B83F6
:088D7000C101935B03C1016F17
:088D780083000193DB80C001C0
:088D800040CB4310014DC4106B
:088D8800000193DB00C001A211
:088D9000017688FC01471B0875
:088D980001580B344001A74310
:088DA0000001865B04C301869B
:088DA8001B84C20186DB03C23B
:088DB00001869B83C101865B73
:088DB80003C101861B83C00109
:088DC00086DB02C001A7DA0600
:088DC80001869B06C0018E9B91
:088DD00086C0018E5B04C101A5
:088DD8008E1B8CC101471B0E2C
:088DE00001F2018E5A84C0016A
:088DE8009E5A04C1013FB201D3
:088DF000471BF801939B06C02C
:088DF800019E1B8CC1019E9B32
:088E000086C0019E5B04C15015
:088E08008FFCFF00019D1AC35D
:088E100001A79B0601471BFCB2
:088E1800014DDB86010193DB33
:088E200002C001931B83C00195
:088E2800935B03C10186DA002F
:088E3000C201A7430330FF005B
:088E38000153CDF0FF012003FE
:088E40000003309B01580D34C2
:088E48004401A7C302405E00D3
:088E5000010186C0002501109C
:088E5800CB000B3009200801DA
:088E6000200B000B3003013070
:088E68007601471BFE0193DBBC
:088E700002C001A201E887FC29
:088E780001471B0201A7C10024
:088E800001A7030301214C00CE
:088E880012300701218C0013D8
:088E9000301C01471BFC016FBF
:088E980003000193DB80C0011F
:088EA00093DB02C001A2017680
:088EA80088FC01471B0401478F
:088EB0001BFC016F030001939C
:088EB800DB80C001580B3440BF
:088EC0000193DB00C001A201D7
:088EC800B087FC01474B0001DB
:088ED000204C000330092008CA
:088ED80001200B000B3F8A0191
:088EE000865B03C101861B83C0
:088EE800C00186DB02C001A7F6
:088EF000DA0601869B06C001B1
:088EF8008E9B86C0018E5B0415
:088F0000C1018E1B8CC1014769
:088F08001B0A01F2018E5A84DC
:088F1000C0019E5A04C1013F9B
:088F1800C6000000000000008B
:088F200001471BF801939B06B9
:088F2800C0019E1B8CC101A7D2
:088F30009B0601471BFE0193A3
:088F38009B01C001865A00C232
:088F4000016F860301A5CD0AB3
:088F480001869B01C001471BDB
:088F50000201A7DA0601869B6D
:088F580006C0018E1B8CC10153
:088F6000471B0A01F2000000AA
:088F6800000000000000000001
:088F700001471BF801939B0669
:088F7800C0019E1B8CC1019E8B
:088F80009B86C0019E5B04C149
:088F88005091FCFF00019DDA8D
:088F90005001A79B0601471BDD
:088F9800FA014DDB8603019391
:088FA000DB02C001931B83C03A
:088FA80001935B03C101939BDF
:088FB00083C10193DB03C20140
:088FB800931B84C201935B04CA
:088FC000C30186DA00C201A71B
:088FC8000303405E0001016F8C
:088FD0000E980182DA00C301D2
:088FD800A7C3030186DA80C281
:088FE00001A70304016F011455
:088FE80030060C01914000A0CD
:088FF000012010000730070109
:088FF800201032043004016F67
:08900000100001210C00176FA4
:08900800430B173008016FC48F
:089010000A01A7C40001A743F7
:089018000401200C0007A7CCA5
:089020001007A70303016F0B09
:08902800000153CB30000121CF
:08903000C30013301501A7CFA6
:089038009301010F13584B30A6
:089040004013C1CEF0201347DC
:089048004B00015BCCA000010C
:08905000A7430301584B304017
:08905800014C0D010301A70406
:08906000D101C1CE4020014BFB
:08906800CCA00001A7030301E5
:08907000474B0001200C000237
:08907800300701208B04043FC6
:08908000A80120510B02584B1E
:08908800304002C1CE102102AC
:08909000474B00016F0116308F
:08909800060C01914000A0014B
:0890A000100B0406301C01470F
:0890A8001BFE0182DA80C30106
:0890B00093DB00C001A20120C6
:0890B8008FFC014D10140001B2
:0890C0003FDD016F411630068F
:0890C8000C01914000A0012001
:0890D0000B00043021014DCB1F
:0890D800120001471BFE0158C4
:0890E0004B304001B2CE3020FC
:0890E8000193DB00C001A201AD
:0890F000208FFC013FD8016F45
:0890F800811630060C019140C5
:0891000000A001865B04C3011D
:08910800861B84C20186DB0313
:08911000C201869B83C10186A8
:089118005B03C101861B83C04B
:089120000186DB02C001A7DAA1
:089128000601869B06C0018EC2
:089130009B86C0018E5B04C1A7
:08913800018E1B8CC101471BD5
:089140001001F2018E5A84C0F7
:08914800019E5A04C1013FB26F
:0891500001471BF801939B0687
:08915800C0019E1B8CC1019EA9
:089160009B86C0019E5B04C167
:089168005093FCFF00019DDAA9
:08917000C401A79B0601471B87
:0891780096014DDB0603019393
:08918000DB02C001931B83C058
:0891880001935B03C101939BFD
:0891900083C10193DB03C2015E
:08919800931B84C20186DA007A
:0891A000C201A7030320FE0138
:0891A8004CDAE0C501A7430306
:0891B0000186DA80C201A7C3A9
:0891B8000301200F000730073E
:0891C00001200F32043004010C
:0891C8006F0F00016F0B0001A5
:0891D000210C00176F430B177F
:0891D8003008016FC40A01A771
:0891E000C40001A703040120F3
:0891E8000C0007A7CC1007A73B
:0891F00003030153CCF0000160
:0891F800A7830301218E02167A
:08920000301601584B3040010B
:089208004C0E010301A704D183
:0892100001C1CD402001303402
:089218000186DA00C301020324
:0892200022301601584B3040CA
:08922800014D0E91FC01A704A9
:08923000D101C1CD4020013045
:089238001301584B3040014DB9
:089240000E91FA01A704D1010F
:08924800C1CD402001580C319A
:089250004401A7030301474B91
:089258000001200C00023007A8
:0892600001208B04073F8B0184
:0892680020500B02584B30406E
:0892700002C1CD002102474BB1
:08927800000110CB0306302FAA
:0892800001471BFE0122500B07
:08928800226F030822300D01E2
:08929000821A81C301A70491B9
:0892980001A7C4000193DB00F3
:0892A000C001A201208FFC01B6
:0892A8004DCF1300013FCA0184
:0892B000200B00043021014DE8
:0892B800CB120001471BFE016F
:0892C000584B304001B2CD30E3
:0892C800200193DB00C001A2AC
:0892D00001208FFC013FD801D1
:0892D800861B84C20186DB0342
:0892E000C201869B83C10186D7
:0892E8005B03C101861B83C07A
:0892F0000186DB02C001A7DAD0
:0892F8000601869B06C0018EF1
:089300009B86C0018E5B04C1D5
:08930800018E1B8CC101471B03
:089310001001F2018E5A84C025
:08931800019E5A04C1013FB798
:0893200001471BF801939B06B5
:08932800C0019E1B8CC1019ED7
:089330009B86C0019E5B04C195
:089338005093FCFF00019D1A97
:08934000F801A79B0601471B81
:08934800FE014DDB86010193DB
:08935000DB02C001931B83C086
:0893580001935B03C10186DAF9
:0893600000C201A7C30201864F
:08936800DA80C201A703030132
:08937000A74B030182CB002092
:0893780001000302302701206F
:089380000C0004302001471B22
:08938800FE0182CB00200193DD
:08939000DB00C001A201208FE7
:08939800FC01478B00014D0CA4
:0893A0001300013FCE01404B18
:0893A8004314015844304C014C
:0893B000A7430001865B03C125
:0893B80001861B83C00186DB66
:0893C00002C001A7DA060186D4
:0893C8009B06C0018E9B86C0CC
:0893D000018E5B04C1018E1B3C
:0893D8008CC101471B0C01F2DE
:0893E000018E5A84C0019E5A5F
:0893E80004C1013FC601471B4F
:0893F000F801939B06C0019EE9
:0893F8001B8CC101A79B0601BB
:08940000471BFE01939B01C014
:0894080001865A80C1016FC604
:089410000601A5CD0A01869BAF
:0894180001C001471B0201A77E
:08942000DA0601869B06C0017B
:089428008E1B8CC101471B0AD9
:0894300001F201471BF8019E47
:089438001B8CC1019E9B86C044
:08944000019E5B04C15094FC85
:08944800FF00019D5A1C01A266
:0894500001557CFC01A7C100DD
:0894580001A74300018E9B8671
:08946000C0018E5B04C1018E06
:089468001B8CC101471B080128
:08947000F2018E5A84C0019E36
:089478005A04C1013FDE014767
:089480001BF801939B06C001DB
:089488009E1B8CC1019E9B8616
:08949000C0019E5B04C1509471
:08949800FCFF00019D9A3C015C
:0894A000A79B0601471BFE011A
:0894A8004DDB86000193DB029D
:0894B000C001A2013294FC018D
:0894B800A7C10001A7C30201D6
:0894C00020CBFF023FEB01533A
:0894C800CBF00F01A7430001E6
:0894D00086DB02C001A7DA06E9
:0894D80001869B06C0018E9B7A
:0894E00086C0018E5B04C1018E
:0894E8008E1B8CC101471B081B
:0894F00001F2018E5A84C00153
:0894F8009E5A04C1013FD0019E
:08950000471BF801939B06C014
:08950800019E1B8CC1019E9B1A
:0895100086C0019E5B04C150FE
:0895180098FCFF00019D9A3F41
:0895200001A79B0601471BF4A3
:08952800014DDB86020193DB1B
:0895300002C001931B83C0017E
:08953800935B03C101939B83C7
:08954000C10193DB03C2014DE0
:08954800DB0601019E1B06C0B9
:08955000019E5B86C0014CDAAC
:0895580000C201A7C3025099F3
:08956000FCFF00019D186250A0
:089568008FFCFF00019D19C8F2
:0895700001A70B030186CB00EB
:08957800200182C30020010064
:0895800003023335016F0308FB
:0895880001A7C3030186CB001B
:08959000200182C3002001212B
:0895980043091332F5016F0EC7
:0895A0000030FF00016FCDFF58
:0895A8000186CB00200147837E
:0895B000000193CB00200186AD
:0895B800CB00200182C300205A
:0895C000012243092230810160
:0895C80022C31822308D01229C
:0895D000031922309E01224321
:0895D800192230C501224311E4
:0895E0002230BE0122031E220D
:0895E80030F4012203162231C8
:0895F0001B0122C31C223142C1
:0895F8000122030C2231640181
:0896000022430E223165012214
:08960800030E22315E0122C3B2
:089610000D2231570122830DE8
:089618002231500122430D2212
:0896200031490122030D223142
:08962800420122C30C22313B78
:089630000122830C22313401F8
:0896380022430C22312D012216
:08964000830B2231A601324721
:0896480001471BFE016F4309FD
:089650000193DB00C001A091B1
:0896580001323401470C02014C
:08966000471BFE0186CC00202F
:089668000193DB00C001A09199
:0896700001321C01470C02014C
:08967800471BF80193DB83C1DD
:08968000016F03000193DB0000
:08968800C101939B83C0018620
:08969000CC00200193DB00C0B7
:0896980001A201708FFC0131F9
:0896A000EE01470C020186CC2B
:0896A80000200193DA80DD01CE
:0896B000471BF80186CB0020E6
:0896B8000182C300200193DBD5
:0896C00080C101935B03C101AD
:0896C800939B83C00186DA8048
:0896D000DD0193DB00C001A1E4
:0896D8000100000131B101475E
:0896E0000C0201471BF8019385
:0896E800DB83C1016F030001E7
:0896F00093DB00C101939B8391
:0896F800C00186CC00200193A3
:08970000DB00C001A201509141
:08970800FC01318301470C0252
:0897100001471BF80193DB8304
:08971800C1016F43000193DB66
:0897200000C101939B83C0010D
:0897280086CC00200193DB0058
:08973000C001A2015091FC01EF
:08973800315501470C02014705
:089740001BFC01935B83C001D7
:0897480086CC00200193DB0038
:08975000C001A2012093FC01FD
:08975800A7C1000193DA00DE55
:0897600001312C016F030C0123
:08976800A7C30301860B0120D9
:089770000182040120014DC437
:08977800000301A78303018631
:08978000CB002001478300012A
:0897880093CB002001471BFEFA
:089790000186CB00200182C319
:0897980000200193DB00C00179
:0897A000A08101471B0201A793
:0897A800C10001030332302A65
:0897B000014A8EA30001860BA3
:0897B8000120018204012001DF
:0897C0004DC400030140CEE09E
:0897C800100186CB00200147CF
:0897D00083000193CB0020018E
:0897D8003FB20186CB00200125
:0897E00082C300200123830B6A
:0897E800333DCB0186CB0020CC
:0897F000014783000193CB0047
:0897F8002001471BFE0186CB96
:0898000000200182C3002001D9
:0898080093DB00C001A0810107
:08981000471B0201A7C1000182
:089818000303323D9901860BA8
:08982000012001820401200176
:089828004DC4000301A7430336
:089830000186CB0020014783F3
:08983800000193CB0020014761
:089840001BFE0186CB00200194
:0898480082C300200193DB0044
:08985000C001A08101471B02C9
:0898580001A7C1000103033266
:08986000302A014A4DA300016A
:08986800860B012001820401BE
:0898700020014DC4000301407A
:08987800CDD0100186CB0020C9
:08988000014783000193CB00B6
:0898880020013FB2013D270160
:08989000301601471BFE0186A2
:08989800CB00200182C3002077
:0898A0000193DB00C001A0915F
:0898A8000186CB00200147837B
:0898B000000193CB0020013CF4
:0898B800BB018E5B86C0018E2E
:0898C0001B06C001471B040157
:0898C80086DB03C201869B83CD
:0898D000C101865B03C10186A2
:0898D8001B83C00186DB02C006
:0898E00001A7DA0601869B06D0
:0898E800C0018E9B86C0018EB9
:0898F0005B04C1018E1B8CC159
:0898F80001471B0801F2018E7B
:089900005A84C0019E5A04C103
:08990800013FAE000000000069
:0899100001471BF801939B06BF
:08991800C0019E1B8CC101A7D8
:089920009B06014DDB860001EE
:0899280093DB02C00182DA00AA
:08993000C201A7C30201204B94
:08993800100B300B01208B1114
:08994000086F41000830280106
:08994800204B180B300B01202D
:089950008B19086F410008307B
:089958001601200B0C0B300B73
:0899600001204B0E086F4100CD
:08996800083004016F01000149
:0899700086DB02C001A7DA0644
:0899780001869B06C0018E1B55
:089980008CC101471B0801F234
:0899880001471BF801939B0647
:08999000C0019E1B8CC101A760
:089998009B06014DDB86000176
:0899A00093DB02C00182DA0032
:0899A800C201A7C30201200B5C
:0899B0000C0B300B01204B0EE3
:0899B800086F410008300401B2
:0899C0006F01000186DB02C00B
:0899C80001A7DA0601869B06E7
:0899D000C0018E1B8CC1014790
:0899D8001B0801F201471BF816
:0899E00001939B06C0019E1BD0
:0899E8008CC101A79B06014D93
:0899F000DB86000193DB02C0DD
:0899F8000182DA00C201A7C3DD
:089A00000201204B180B300B92
:089A080001208B1E086F4100D4
:089A100008301601204B100B79
:089A1800300B01208B16086FD2
:089A20004100083004016F0150
:089A2800000186DB02C001A76A
:089A3000DA0601869B06C00165
:089A38008E1B8CC101471B08C5
:089A400001F201471BF801933C
:089A48009B06C0019E1B8CC1AE
:089A500001A79B06014DDB8616
:089A5800000193DB02C0018252
:089A6000DA00C201A7C30201F4
:089A6800200B0C0B300B012058
:089A70004B0E086F41000830A5
:089A78002801204B180B300BF4
:089A800001208B1E086F41005C
:089A880008301601204B100B01
:089A9000300B01208B16086F5A
:089A98004100083004016F01D8
:089AA000000186DB02C001A7F2
:089AA800DA0601869B06C001ED
:089AB0008E1B8CC101471B084D
:089AB80001F201471BF80193C4
:089AC0009B06C0019E1B8CC136
:089AC80001A79B06014DDB869E
:089AD000000193DB02C00182DA
:089AD800DA00C201A7C302017C
:089AE000200B08026F41000297
:089AE800303001204B02026F37
:089AF000410002302501208B2A
:089AF80002026F410002301A66
:089B000001204B03026F41003C
:089B080002300F01200B0302E3
:089B10006F4100023004016FF7
:089B180001000186DB02C0011F
:089B2000A7DA0601869B06C0CE
:089B2800018E1B8CC101471BDB
:089B30000801F201471BF801D6
:089B3800939B06C0019E1B8CEB
:089B4000C101A79B06014DDBEA
:089B480086000193DB02C0015D
:089B500082DA00C201A7C30282
:089B580001204B100B300D0140
:089B6000208B16084CCB00021B
:089B680008A7C30201A74B008E
:089B70000186DB02C001A7DA47
:089B78000601869B06C0018E68
:089B80001B8CC101471B080109
:089B8800F201471BF801939B59
:089B900006C0019E1B8CC101FF
:089B9800A79B06014DDB8600CE
:089BA0000193DB02C00182DA2F
:089BA80000C201A7C302012065
:089BB0004B180B300D01204B96
:089BB80018084CCB00FE08A7C1
:089BC000C30201A74B0001865E
:089BC800DB02C001A7DA06016F
:089BD000869B06C0018E1B8C70
:089BD800C101471B0801F20165
:089BE000471BF801939B06C02E
:089BE800019E1B8CC101A79B2B
:089BF00006014DDB8600019324
:089BF800DB02C00182DA00C2A9
:089C000001A7C30201274B106C
:089C0800736F4400726F040049
:089C100001278B16736F45005C
:089C1800726F05000150443198
:089C200000010703736F43000C
:089C2800726F030001A7430065
:089C30000186DB02C001A7DA86
:089C38000601869B06C0018EA7
:089C40001B8CC101471B080148
:089C4800F201471BF801939B98
:089C500006C0019E1B8CC1013E
:089C5800A79B06014DDB86000D
:089C60000193DB02C00182DA6E
:089C680000C201A7C30201279D
:089C70004B18736F4400726F82
:089C7800040001278B1E736F2D
:089C80004500726F0500015060
:089C8800443100010703736F72
:089C90004300726F030001A7FD
:089C980043000186DB02C0015C
:089CA000A7DA0601869B06C04D
:089CA800018E1B8CC101471B5A
:089CB0000801F201471BF80155
:089CB800939B06C0019E1B8C6A
:089CC000C101A79B060182DA35
:089CC80000C2012083170230E5
:089CD000A10120830E02309A6D
:089CD8000120C30B02309301CF
:089CE00020830B02308C0120EF
:089CE800430B0230850120034B
:089CF0000B02307E0120C30AC3
:089CF8000230770120830A020B
:089D000030700120431702300E
:089D080069012003170230621B
:089D10000120C31602305B01C3
:089D180020C30F0230540120AA
:089D2000830F02304D012043C6
:089D28000F0230460120030F79
:089D300002303F0120C30E02C6
:089D380030380120430A02301B
:089D4000310120030A02302A60
:089D48000120C30902302301D0
:089D500020830902301C0120F0
:089D580043090230150120C38C
:089D60000802300E0120830807
:089D680002300701204308034B
:089D70003007016F41000130D2
:089D780007016F01000130003A
:089D800001A7DA0601869B062B
:089D8800C0018E1B8CC10147D4
:089D90001B0801F201471BF85A
:089D980001939B06C0019E1B14
:089DA0008CC1019E9B86C001ED
:089DA8009E5B04C1509EFCFF0C
:089DB00000019D9A9A01A79B96
:089DB80006014DDB860001935A
:089DC000DB02C00182DA00C2DF
:089DC80001A7C302014DDB8677
:089DD000000193DB00C0014714
:089DD8001BFE0193DB02C00138
:089DE000A201B39CFC01471B2A
:089DE800020186DB00C0014707
:089DF0001B0201A70101014D56
:089DF800DB86000193DB00C0D3
:089E0000014DDB860001931BFC
:089E080001C001471BFE01939C
:089E1000DB02C001A201429A2D
:089E1800FC01471B0201861B3F
:089E200001C001471B0201868D
:089E2800DB00C001471B020131
:089E3000A74101015044310477
:089E3800010703736F43007280
:089E40006F030001A7430001BC
:089E480086DB02C001A7DA0667
:089E500001869B06C0018E9BF8
:089E580086C0018E5B04C1010C
:089E60008E1B8CC101471B0899
:089E680001F2018E5A84C001D1
:089E70009E5A04C1013FD0011C
:089E7800471BF801939B06C093
:089E8000019E1B8CC1019E9B99
:089E880086C0019E5B04C1507D
:089E90009FFCFF00019D1AC7B1
:089E980001A79B06014DDB86CA
:089EA000000193DB02C0018206
:089EA800DA00C201A7C30201A8
:089EB0004DDB86000193DB008D
:089EB800C001471BFE0193DB12
:089EC00002C001A201949DFC07
:089EC80001471B020186DB00CB
:089ED000C001471B0201A701BC
:089ED8000101270B08736F451F
:089EE00000726F0500015044FF
:089EE8003104010703736F430D
:089EF00000726F030001A7439B
:089EF800000186DB02C001A796
:089F0000DA0601869B06C00190
:089F08008E9B86C0018E5B04F4
:089F1000C1018E1B8CC1014749
:089F18001B0801F2018E5A84BE
:089F2000C0019E5A04C1013F7B
:089F2800D001471BF801939BD7
:089F300006C0019E1B8CC1015B
:089F3800A79B060182DA00C2BA
:089F40000120C30102302301DE
:089F480020030202301C01207D
:089F50008302023015012043D9
:089F58000302300E0120030397
:089F6000023007012043020357
:089F68003007016F41000130D8
:089F700007016F010001300040
:089F780001A7DA0601869B0631
:089F8000C0018E1B8CC10147DA
:089F88001B0801F200000000BB
:089F900001471BF801939B0639
:089F9800C0019E1B8CC101A752
:089FA0009B0601865A80C201F4
:089FA800869A00C20186DA006E
:089FB000C301000302301E0191
:089FB8004DC3100001A9C30C08
:089FC000018001012001900263
:089FC80001200147410001479F
:089FD000420001A4EB01865AD6
:089FD80000C201A7DA060186B0
:089FE0009B06C0018E1B8CC121
:089FE80001471B0801F20147CB
:089FF0001BF801939B06C00160
:089FF8009E1B8CC101A79B0612
:08A0000001865A80C201869A14
:08A0080000C20186DA00C30169
:08A0100084010120019202010C
:08A0180020014701010147028C
:08A0200001014DC31000010015
:08A0280003053FE301865A0025
:08A03000C201A7DA0601869BBC
:08A0380006C0018E1B8CC10162
:08A04000471B0801F201471B58
:08A04800F801939B06C0019E84
:08A050001B8CC101A79B060156
:08A05800865A80C201869A00BD
:08A06000C20186DA00C301868B
:08A06800010120019302012017
:08A07000014701020147020251
:08A07800014DC31000010003BB
:08A08000053FE301865A00C20E
:08A0880001A7DA0601869B0620
:08A09000C0018E1B8CC10147C9
:08A098001B0801F201471BF84F
:08A0A00001939B06C0019E1B09
:08A0A8008CC101A79B06018693
:08A0B0005A00C201869A80C229
:08A0B8000186DA00C30190816A
:08A0C000002001474100014DA1
:08A0C800C31000010003053F75
:08A0D000EC01865A00C201A751
:08A0D800DA0601869B06C001B7
:08A0E0008E1B8CC101471B0817
:08A0E80001F201471BF801938E
:08A0F0009B06C0019E1B8CC100
:08A0F80001A79B0601865A0036
:08A10000C201869A80C20186AB
:08A10800DA00C301928100207E
:08A1100001470101014DC310DC
:08A1180000010003053FEC010A
:08A12000865A00C201A7DA060D
:08A1280001869B06C0018E1B9D
:08A130008CC101471B0801F27C
:08A1380001471BF801939B068F
:08A14000C0019E1B8CC101A7A8
:08A148009B0601865A00C201CA
:08A15000869A80C20186DA0044
:08A15800C301938100200147BF
:08A160000102014DC3100001D2
:08A168000003053FEC01865ADB
:08A1700000C201A7DA06018616
:08A178009B06C0018E1B8CC187
:08A1800001471B0801F2014731
:08A188001BF801939B06C001C6
:08A190009E1B8CC101A79B0678
:08A1980001471BFE014DDB062F
:08A1A000010193DB02C00193F1
:08A1A8001B83C00186DA00C32D
:08A1B00001A703030186DA0296
:08A1B800C201200C000430215B
:08A1C0000180CB002001801A90
:08A1C80081C20111030112A77D
:08A1D0004B0012301001474B57
:08A1D80000014D0C1300013FD2
:08A1E000D8016F010001861B8C
:08A1E80083C00186DB02C00107
:08A1F000A7DA0601869B06C0F8
:08A1F800018E1B8CC101471B05
:08A200000801F201471BF801FF
:08A20800939B06C0019E1B8C14
:08A21000C101A79B0601471BD9
:08A21800FE014DDB060101937C
:08A22000DB02C001931B83C0A7
:08A228000186DA00C201A70360
:08A230000301200C00026F0184
:08A238000002301F016F0B0052
:08A2400001584B304001B2CC83
:08A24800302001000302300781
:08A2500001474B00013FE90149
:08A25800A74B0001861B83C027
:08A260000186DB02C001A7DA50
:08A268000601869B06C0018E71
:08A270001B8CC101471B080112
:08A27800F201471BF801939B62
:08A2800006C0019E1B8CC10108
:08A28800A79B0601471BFE0124
:08A290004DDB86010193DB02A6
:08A29800C001931B83C0019378
:08A2A0005B03C10186DA00C274
:08A2A80001A703030186DA801F
:08A2B000C201A74303016F0B7B
:08A2B8000001584B304001B2D7
:08A2C000CD3020010003023043
:08A2C8001B01584B3040015806
:08A2D0004B404001B20D51208A
:08A2D80001C1CC502001474BED
:08A2E00000013FD501584B308D
:08A2E80040016F040001A7040E
:08A2F000D101C1CC402001A7FF
:08A2F8004C0001865B03C1016B
:08A30000861B83C00186DB020D
:08A30800C001A7DA0601869BE3
:08A3100006C0018E1B8CC10187
:08A31800471B0801F201471B7D
:08A32000F801939B06C0019EA9
:08A328001B8CC101A79B06017B
:08A33000471BFE014DDB060294
:08A338000193DB02C001931B3D
:08A3400083C001935B03C1011E
:08A34800939B83C10186DA003A
:08A35000C201A703030186DA34
:08A3580080C201A74303018646
:08A36000DA00C301A783030129
:08A368006F0B0001108B0306CE
:08A37000302C01584B30400174
:08A37800584B404001B20D51A9
:08A380002001C1CC502001585E
:08A388004B304001B2CD302042
:08A39000012103001230070156
:08A39800474B00013FCD01100D
:08A3A0008B0306301901584B34
:08A3A8003040016F040001A721
:08A3B00004D101C1CC402001E1
:08A3B800474B00013FE001A743
:08A3C0004C0001869B83C101E2
:08A3C800865B03C101861B83C3
:08A3D000C00186DB02C001A7F9
:08A3D800DA0601869B06C001B4
:08A3E0008E1B8CC101471B0814
:08A3E80001F201471BF801938B
:08A3F0009B06C0019E1B8CC1FD
:08A3F80001A79B0601471BFCB5
:08A40000014DDB86010193DB35
:08A4080002C001931B83C00197
:08A41000935B03C10186DA0031
:08A41800C301A743030186DA2A
:08A4200002C201861A83C20189
:08A42800100B03026F0100029A
:08A43000306001200D00043032
:08A43800550182CB00200182D6
:08A440000C01200111030112BF
:08A4480030240182CB00200149
:08A45000820C0120011303013D
:08A458003B6FC3FF3B3008011C
:08A460006F440001A7C40001D4
:08A46800A7430001302401822A
:08A47000CB00200122030022B1
:08A478006F01002230140147BE
:08A480008B0001478C00014D27
:08A488004D1300013FA4016F18
:08A49000010001865B03C1011C
:08A49800861B83C00186DB0274
:08A4A000C001A7DA0601869B4A
:08A4A80006C0018E1B8CC101EE
:08A4B000471B0801F201471BE4
:08A4B800F801939B06C0019E10
:08A4C0001B8CC101A79B0601E2
:08A4C800471BFE014DDB0601FC
:08A4D0000193DB02C001931BA4
:08A4D80083C00186DA00C30114
:08A4E000A703030186DA02C2A2
:08A4E80001200C0004302101E9
:08A4F00082CB002001821A81D9
:08A4F800C20111030112A74B80
:08A500000012301001478B002E
:08A50800014D0C1300013FD8C6
:08A51000016F010001861B83AD
:08A51800C00186DB02C001A7AF
:08A52000DA0601869B06C0016A
:08A528008E1B8CC101471B08CA
:08A5300001F200000000000030
:08A5380000000000000000001B
:08A540000201F200000000001E
:08A5480000000000000000000B
:08A5500001471BF801939B0673
:08A55800C0019E1B8CC101A78C
:08A560009B0601865A00C201AE
:08A56800869A80C20190810077
:08A570000001A7DA0601869B39
:08A5780006C0018E1B8CC1011D
:08A58000471B0801F200000076
:08A588000000000000000000CB
:08A5900001471BF801939B0633
:08A59800C0019E1B8CC101A74C
:08A5A0009B0601865A00C2016E
:08A5A800869A80C20191810036
:08A5B0000001A7DA0601869BF9
:08A5B80006C0018E1B8CC101DD
:08A5C000471B0801F200000036
:08A5C80000000000000000008B
:08A5D00001471BF801939B06F3
:08A5D800C0019E1B8CC101A70C
:08A5E0009B0601865A00C2012E
:08A5E800869A80C201928100F5
:08A5F0000001A7DA0601869BB9
:08A5F80006C0018E1B8CC1019D
:08A60000471B0801F2000000F5
:08A6080000000000000000004A
:08A6100001471BF801939B06B2
:08A61800C0019E1B8CC101A7CB
:08A620009B0601865A00C201ED
:08A62800869A80C201938100B3
:08A630000001A7DA0601869B78
:08A6380006C0018E1B8CC1015C
:08A64000471B0801F2016F0144
:08A64800084000C000018480FD
:08A65000802C01538200C001BF
:08A6580050422004200A019D7C
:08A66000F38A4000C0000184F0
:08A6680040002D01988100A8BB
:08A6700001F2200A019DF38AAA
:08A6780040FCC700016F02085D
:08A68000300001016F0100012F
:08A68800988100A801F20147CE
:08A690001BFE019E5B04C001EA
:08A69800A7400001A78000406B
:08A6A00000C0000183C0802D01
:08A6A8004000C00001830061C5
:08A6B0002D016F450001A1F12D
:08A6B8006A05014C44F0FF01AA
:08A6C000A1F11000018E5B0402
:08A6C800C001471B0201F24032
:08A6D00000C000018380802D11
:08A6D80001408110180140014E
:08A6E00030244000C000018499
:08A6E80040802C0154410002E6
:08A6F0004000C00001840001DC
:08A6F8002D01C2C4102001472E
:08A7000003010147C2FF010043
:08A7080002033FED01F20147DD
:08A710001BFC01935B800001BA
:08A71800939B00004000C0000B
:08A72000018480C02C016F01CF
:08A728001001924200A2016F32
:08A73000C10701924240A201A1
:08A73800869B000001865B8096
:08A740000001471B0401A78082
:08A748000101F201471BFC01B5
:08A75000935B800001939B0064
:08A75800004000C000018480F4
:08A76000C02C016F01080192F9
:08A768004200A201A74000011C
:08A77000924240A201869B0009
:08A778000001865B800001472F
:08A780001B0401A7800101F296
:08A788004000C000018480C004
:08A790002C01AD4200A04000C5
:08A79800C000019140802D0179
:08A7A000AD4240A04000C000E2
:08A7A800019140602D01F24017
:08A7B00000C000019100002C23
:08A7B8004000C00001910020E7
:08A7C0002C01471BF801935B1B
:08A7C80000C101939B80C00158
:08A7D00093DB00C0019E5B89D0
:08A7D800C15000D0FF00019DFB
:08A7E0002500016F4101300664
:08A7E8000C01914000A04000AB
:08A7F000C000018280202C4012
:08A7F80000C0000182C0802DA9
:08A800000140C210184000C025
:08A8080000018280002C0140D8
:08A810008110104000C000019E
:08A818009140402C4000C000FB
:08A820000184C0C02C01924329
:08A82800C0A2018E5B89C10191
:08A8300086DB00C001869B805D
:08A83800C001865B00C101476D
:08A840001B0801F2D8A8D8A8FA
:08A84800DEA80DA9D8A8D8A8CC
:08A850001FACD8A8D8A8D8A8B5
:08A8580034A9D8A8D8A8D8A89B
:08A86000EFACD8A8D8A8D8A8D5
:08A86800D8A8D8A8F3A923AB7E
:08A87000D8A84AAA72AA9AAA0C
:08A87800C2AAD8A8D8A8D8A8EC
:08A88000D8A8D8A882A9C8A934
:08A8880045A625A90EA74BA768
:08A8900001581FB34140DFE154
:08A898000001471BFE019E5B5D
:08A8A00004C0019E5B89C05059
:08A8A80000D0FF00019D250016
:08A8B0000120460906301A5090
:08A8B800A8FCFF00018D4644DD
:08A8C000E4018E5B04C0018E6F
:08A8C8005B89C001471B04017C
:08A8D000F3016F4200013FE9B2
:08A8D800016FC20001F201470B
:08A8E0001BFE019E5B04C04059
:08A8E80000C000019140202C8A
:08A8F0004000C000019180004E
:08A8F8002C01A1F1C8FE01A72B
:08A900008001018E5B04C0011F
:08A90800471B0201F24000C0F0
:08A9100000018340202C4000EF
:08A91800C000018380002C0146
:08A92000A7800101F24000C014
:08A9280000019240802C01A700
:08A93000800101F201471BFE4A
:08A93800019E5B04C001000256
:08A9400002303001471BFC014D
:08A948009E5B0400019EDB8C04
:08A95000000147C2FF01A9C28A
:08A958000C0147420001A1F1CE
:08A96000920301A4F8018EDB53
:08A968008C00018E5B0400016C
:08A97000471B04018E5B04C0CB
:08A9780001471B0201A7800149
:08A9800001F201A741C0012012
:08A98800010804544100100411
:08A9900030250120C116023040
:08A99800240120411702301DCB
:08A9A0000154410010014601C1
:08A9A800000202300A01460121
:08A9B0000004035341F01901FA
:08A9B800A7800101F2015341E7
:08A9C000F0FB01A7800101F288
:08A9C80001A741C00120C106F6
:08A9D0000230150120410702CD
:08A9D800300E0120C106044706
:08A9E000011801A7800101F23A
:08A9E800015441000401A780A5
:08A9F0000101F201471BF8010F
:08A9F8009E5B04C0019EDB8C94
:08AA0000C001939B00C1019EFF
:08AA08001B80C1200F019DF32A
:08AA1000FF01A7810001814252
:08AA1800000001000102300CF6
:08AA200001A1F1CF0201474240
:08AA28000001A4E9018E5B04AA
:08AA3000C0018EDB8CC0018621
:08AA38009B00C1018E1B80C1CF
:08AA400001471B0801A780017A
:08AA480001F201471BFE019E13
:08AA50005B04C001580118501D
:08AA580001A1F11A00015801EF
:08AA6000185001A1F1100001E2
:08AA68008E5B04C001471B02D4
:08AA700001F201471BFE019EEB
:08AA78005B04C00158011454F5
:08AA800001A1F11A00015801C7
:08AA8800145001A1F1100001BE
:08AA90008E5B04C001471B02AC
:08AA980001F201471BFE019EC3
:08AAA0005B04C00158011254CF
:08AAA80001A1F11A000158019F
:08AAB000125001A1F110000198
:08AAB8008E5B04C001471B0284
:08AAC00001F201471BFE019E9B
:08AAC8005B04C00158011154A8
:08AAD00001A1F11A0001580177
:08AAD800115001A1F110000171
:08AAE0008E5B04C001471B025C
:08AAE80001F201471BFC019E75
:08AAF0005B04C001935B80C010
:08AAF800015341F0000120812F
:08AB0000020647C101015441A6
:08AB0800000301A1F1E50101C8
:08AB10008E5B04C001865B802E
:08AB1800C001471B0401A780E6
:08AB20000101F201471BF401E1
:08AB28009E5B04000193DB8039
:08AB30000001935B0101019398
:08AB38009B81010193DB010286
:08AB400001861B81024005C0E3
:08AB480000016F477E01A781A7
:08AB50000101A742010100010F
:08AB580007404010140747C537
:08AB6000FF016F8302014FC1E8
:08AB6800A000014E03A1000151
:08AB70004001211401A743007C
:08AB78000147020C0190870067
:08AB800020014747000147C511
:08AB8800FF010001033FD601AB
:08AB9000000504300D016F0106
:08AB98000801A7850001A1F1ED
:08ABA00097FD010006063009D3
:08ABA800016F410B01A1F14313
:08ABB00001014DC711000180F5
:08ABB80047002001A1F1340166
:08ABC0004005C0000120477EA2
:08ABC800053FE6018E5B04006D
:08ABD0000186DB800001865BB9
:08ABD800010101869B810101CE
:08ABE00086DB010201861B81E6
:08ABE8000201471B0C01A780CC
:08ABF0000101F24000C0000168
:08ABF80083C0802D0140C11053
:08AC00001801588110400140C9
:08AC08004210244000C00001CD
:08AC100085C0002D01B54310C1
:08AC18002001A7800101F201F7
:08AC2000471BE801935B00C033
:08AC280001939B80C00193DB46
:08AC300000C101931B81C10169
:08AC3800935B01C20193DB01F3
:08AC4000C301935B82C3019381
:08AC48009B02C40193DB82C4EE
:08AC500001931B03C501935B96
:08AC580083C501A7C10101A79A
:08AC600082014000C0000185E3
:08AC6800C0022D4000C00001F4
:08AC70008340832D0140429353
:08AC780018014009902401407D
:08AC800041922401404DA1188E
:08AC880001404AA22401B58B32
:08AC9000C22001C24BC22001E9
:08AC98004741000110C1000258
:08ACA000A74700024742000132
:08ACA800100201033FC6018602
:08ACB0005B00C001869B80C01F
:08ACB8000186DB00C101861BCF
:08ACC00081C101865B01C201A4
:08ACC80086DB01C301865B82FB
:08ACD000C301869B02C401864A
:08ACD800DB82C401861B03C5E9
:08ACE00001865B83C501471BDF
:08ACE8001801A7800101F2012F
:08ACF000471BF2019E5B04C04A
:08ACF800019E1B8CC001935B5F
:08AD000000C101939B80C10119
:08AD080093DB00C201931B81E3
:08AD1000C2019E5B09C3500063
:08AD1800D0FF00019D250001A0
:08AD2000A741C04000C0000182
:08AD28008080402D01000207AC
:08AD300031670120C10102336B
:08AD3800070120412402341838
:08AD40000120C12402343F018F
:08AD480020012402344E012019
:08AD5000812402345D01204161
:08AD58002602336901204103CA
:08AD60000230F2012081020221
:08AD680030FC0120012502333B
:08AD7000C70120C10603303ABF
:08AD7800016F41004000C00022
:08AD8000019040402D018E5BA3
:08AD880004C0018E1B8CC00108
:08AD9000865B00C101869B8077
:08AD9800C10186DB00C2018647
:08ADA0001B81C2018E5B09C397
:08ADA80001471B0E01A7800109
:08ADB00001F2015341F007011B
:08ADB800A1F1CBFB4000C0003B
:08ADC000018580802C01538203
:08ADC80000C00150811004409D
:08ADD00000C0000183C0402C0B
:08ADD8004000C000018580006D
:08ADE0002D01C2C210A84000C1
:08ADE800C000018340002C01B2
:08ADF0004741004000C00001D2
:08ADF8008380802D0110810011
:08AE00000B30414000C00001CD
:08AE08009100002C4000C00085
:08AE1000018340202C014741A1
:08AE1800004000C0000183802E
:08AE2000602D011081004000CB
:08AE2800C0000B9140202C0B2F
:08AE3000A1F192F90B3F4E0164
:08AE3800A1F18AF901A1F15218
:08AE4000F8013F414000C00091
:08AE4800019140002C01A1F171
:08AE500074F9013F304000C01D
:08AE580000019100002C01A192
:08AE6000F163F9013F1F4000FE
:08AE6800C000018340202C0111
:08AE70004741004000C0000151
:08AE78008380602D01118100AF
:08AE800016A1F10EF8163EFDCB
:08AE88004000C00001914020D0
:08AE90002C01A1F130F9013E93
:08AE9800EC016F840530060C8B
:08AEA00001910001A04000C077
:08AEA80000018080402D012013
:08AEB000C2FF0330A8012001DC
:08AEB8001503305D4000C000ED
:08AEC0000183C0402C4000C0DA
:08AEC80000018380002C01470A
:08AED00042004000C0000183B4
:08AED80040802D01104200062C
:08AEE000302B016F0108400056
:08AEE800C000018500812C016E
:08AEF000500111044000C000F4
:08AEF800018500012D01C2C417
:08AF000010A8014742000147BF
:08AF08004300013FC54000C0F9
:08AF100000019000402D013EFC
:08AF18006C0120C1154000C0CE
:08AF200000029000402D0231F7
:08AF28009C01200118026F8159
:08AF3000FF4000C00002904048
:08AF3800402D023E48012001FA
:08AF40000A026F41FF4000C04E
:08AF480000029040402D023E82
:08AF5000344000C00001900034
:08AF5800402D013E280120827A
:08AF6000FF0330214000C00096
:08AF6800019000402D01204181
:08AF70000C02A1F19DF7023E65
:08AF78000C0120010C02A1F103
:08AF8000CEF7013E0001204262
:08AF8800FF0330170120C10690
:08AF9000033FBE016F01FF4009
:08AF980000C000019040402DB3
:08AFA000013DE2012002FF0364
:08AFA80030170120C111033F25
:08AFB000A0016FC1FE4000C0CA
:08AFB80000019040402D013D15
:08AFC000C40120C2FE033F8919
:08AFC8004000C00001900040B0
:08AFD0002D0120010D033039B1
:08AFD8004000C000018540802B
:08AFE0002C01A781000158417A
:08AFE80012404000F80F015374
:08AFF000410000015842224C0F
:08AFF80030FC0701538200C088
:08B0000001508110044000C062
:08B0080000019240802C013D83
:08B01000740120010C0330144F
:08B01800406C4B02016F0100C6
:08B020004000C00001924080D5
:08B028002C013D59406C4B0264
:08B03000016F01004000C000A7
:08B03800019240802C013D450E
:08B04000016FC40530060C018C
:08B04800910001A04000C000CE
:08B05000018280002C010002C6
:08B05800023D2A4000C0000186
:08B0600083C0402C4000C00039
:08B06800018400012D01B4C4B4
:08B0700010A80147C3FF01C253
:08B07800C410A8014783004049
:08B0800000C000018200812DD7
:08B08800014742000110020122
:08B09000033FD1016F010840EC
:08B0980000C000018400812CBE
:08B0A00001500111044000C041
:08B0A80000018400012D01C22A
:08B0B000C410A84000C000011B
:08B0B800C7C0002CFF01A1F14B
:08B0C00004F7013CC04000C090
:08B0C80000018280002C400011
:08B0D000C0000184C0402C0106
:08B0D8004742004000C00001E6
:08B0E0008200812D0110020124
:08B0E80006302A0147C2FF01F6
:08B0F0004743004000C00001CD
:08B0F8008400012D01B4C41015
:08B10000A80147C3FF01C2C40E
:08B1080010A8014743000147B4
:08B110004200013FC2016F0182
:08B11800084000C00001858021
:08B12000802C01508110044055
:08B1280000C000018500012DAB
:08B1300001C2C410A8013C4D4E
:08B138004000C000018340004B
:08B140002C01000102308840DF
:08B1480000C000019100002C81
:08B1500001A1F171F6013C2D93
:08B158004000C000018340002B
:08B160002C014741004000C032
:08B1680000018380802D01101D
:08B170008100063C104000C004
:08B1780000019140002C01A12F
:08B18000F143F6013BFF400022
:08B18800C000018340002C010E
:08B190000001023BF00147C180
:08B19800FF013FD94000C00097
:08B1A000018340202C01000195
:08B1A800023BDA0147C1FF017F
:08B1B000301D4000C0000183C6
:08B1B80040202C01474100403A
:08B1C00000C000018380602D36
:08B1C80001108100063BB640B6
:08B1D00000C000019140202C99
:08B1D80001A1F1E9F5013BA51D
:08B1E000016F01154000C000E1
:08B1E800019140802D016FC1AF
:08B1F000074000C0000191407E
:08B1F800602D40FC0706016F09
:08B2000001004000C0000192B2
:08B2080040802C30000A016FA8
:08B2100001004000C0000192A2
:08B2180040C02C016F01004051
:08B2200000C000019240002D66
:08B2280050B2FCFF00016F02AF
:08B23000B5019DF3024000C0CE
:08B23800000185C0C02C01AE2D
:08B240004200E001924300A06E
:08B24800014702010147030167
:08B2500001A4EB01A78001013C
:08B25800F2016F01154000C076
:08B2600000019140802D016FF7
:08B26800C1074000C000019184
:08B2700040602D40FCC7000105
:08B278006F01004000C000015D
:08B280009240802C30000A010D
:08B288006F01104000C000013D
:08B290009240C02C30000101C6
:08B298006F01004000C000013D
:08B2A0009240002D50B3FCFFA9
:08B2A80000016F02C1019DF3DA
:08B2B0000230000A016F0310D7
:08B2B80001AE4200E0019243E7
:08B2C00000A001470201014753
:08B2C800030101A4EB01A780C2
:08B2D0000101F200540003002B
:08B2D8001F00000054000000FB
:08B2E00011000000070000004E
:08B2E80021000000000000003D
:08B2F000FF0100004000000016
:08B2F8001F000000000000002F
:08B300000000000054000300EE
:08B308001F000000A402000078
:08B310004000000007000000EE
:08B3180010000000000000001D
:08B32000FF01000040000000E5
:08B328001F00000000000000FE
:08B33000000000000000000015
:08B3380001A200F8B6FC014778
:08B340001BFE019E5B04C050DE
:08B3480000D0FF00019D25006B
:08B35000300010019D2D0040AA
:08B3580053C900016FC1E601B9
:08B360005801124C300A0C01E7
:08B36800904090A00158011271
:08B370004C300A0C019040A0D2
:08B37800A0015801124C300A3B
:08B380000C019040B0A0300A5E
:08B388000C01900070A04003CD
:08B39000C000019100A03E4045
:08B3980003C000019100C03E5A
:08B3A000016F017C4003C000B5
:08B3A800019140203F016F01FB
:08B3B000044003C000019140BC
:08B3B800403F016F4100300A23
:08B3C0000C01904040A0400385
:08B3C800C000019000F03E40BE
:08B3D00003C000019000603F82
:08B3D8004003C0000190007069
:08B3E0003F4003C00001900092
:08B3E800003F016F410040032A
:08B3F000C000019040803F0104
:08B3F8006F410050B3FCFF009F
:08B40000016A4080F3016FC2F4
:08B408003101A2F17952FF01AC
:08B410008E5B04C001471B0222
:08B4180001F2300A0C01AC4006
:08B4200010A00146011000021A
:08B428003FF0300A0C01AC40BA
:08B4300000A001F2300A0C013A
:08B43800AC4010A001534110CB
:08B440000001F201471BF401B9
:08B44800939B00C00193DB801F
:08B45000C001931B01C101932F
:08B458005B81C1019E1B00C2D3
:08B46000019EDB8CC2300A0CD6
:08B4680001AC8060A0015482D8
:08B470003000300A0C0190804D
:08B4780060A04003C000018048
:08B4800080603F010002023070
:08B48800394000C000018600FC
:08B4900081202003019DF3F966
:08B49800300A0C01AC8020A079
:08B4A000014602000103301A0D
:08B4A8004000C0000186408154
:08B4B0002001104401023FE0FD
:08B4B80001A7050101A4D9015F
:08B4C00030B74003C000018019
:08B4C80080703F010002023018
:08B4D000394000C000018600B4
:08B4D80081202003019DF3F91E
:08B4E000300A0C01AC8020A031
:08B4E800014602000203301AC4
:08B4F0004000C000018640810C
:08B4F8002001104401023FE0B5
:08B5000001A7050101A4D90116
:08B50800306F4003C000018018
:08B5100080803F0100020230BF
:08B518001F4003C00001808008
:08B52000903E01000202301010
:08B52800300A0C01AC0021A067
:08B530000146040008033FE19D
:08B538004000C0000186008103
:08B54000202003019DF3F93006
:08B548000A0C01AC8010A00107
:08B550004602000203301A401C
:08B5580000C0000186408120C3
:08B5600001104401023FE0016B
:08B56800A7050101A4D901307F
:08B5700008300A0C01904000B4
:08B57800A001869B00C00186C2
:08B58000DB80C001861B01C144
:08B5880001865B81C1018E1BED
:08B5900000C2018EDB8CC20138
:08B59800471B0A01F24003C049
:08B5A00000018300A13E4003FD
:08B5A800C0000183C0C03E0198
:08B5B00040C440140100040531
:08B5B80030192002016F04802C
:08B5C0000140C440104003C02B
:08B5C800000183C0A03E014018
:08B5D000C4401401F201471B05
:08B5D800F601939B00C00193F2
:08B5E000DB80C001931B01C1D7
:08B5E80001935B81C1019E5B30
:08B5F00004C24003C000018306
:08B5F800C0A03E4003C00001A9
:08B600008380C03E0110C2006E
:08B608000230CA4003C000013A
:08B610008142903F0147420016
:08B61800015382F01F4003C042
:08B6200000019180C03E4003CF
:08B62800C000018080E03E013A
:08B6300000020230814003C05A
:08B63800000183C0403F01A1A5
:08B64000F15FFF0110C40005D9
:08B64800306C4003C0000190CA
:08B6500000E03E4003C00001D0
:08B658008000F13E0100040234
:08B660003015300A0C018000D6
:08B6680061A00154042100302F
:08B670000A0C01900061A040EA
:08B6780003C000018000013F46
:08B68000010004023015300A3C
:08B688000C01800061A00154D7
:08B69000041100300A0C0190C6
:08B698000061A04003C00001A5
:08B6A0008000113F01000402CB
:08B6A800300C016F4404300A6C
:08B6B0000C01900001A00186CD
:08B6B8009B00C00186DB80C08D
:08B6C00001861B01C101865B3C
:08B6C80081C1018E5B04C20187
:08B6D000471B0A01F2016FC1E2
:08B6D800FF01869B00C0018602
:08B6E000DB80C001861B01C1E3
:08B6E80001865B81C1018E5B4C
:08B6F00004C201471B0A01F22C
:08B6F80001F74016C000016FCC
:08B700001B8E01471BF00193B1
:08B708005B00C001939B80C0AF
:08B7100001931B01C1019E1B06
:08B7180080C10193DB00C201B6
:08B720009E5B84C2019E5B09DF
:08B72800C3019E5B8BC35000BE
:08B73000D0FF00019D2500304F
:08B738000010019D2D00300AF4
:08B740000C01804030A0010063
:08B748000105301D015341F021
:08B7500007014601400003302F
:08B7580057014601C000033057
:08B760004C0146010001033019
:08B768003001865B00C0018680
:08B770009B80C001861B01C192
:08B77800018E1B80C10186DB7C
:08B7800000C2018E5B84C201CE
:08B788008E5B09C3018E5B8B8F
:08B79000C301471B1001F70182
:08B79800F4300A0C018140208D
:08B7A000A04003C0000190402D
:08B7A800803E013FBC013FB9E6
:08B7B000300A0C01814000A0E9
:08B7B8004003C0000181C080C4
:08B7C0003F01000302302A01E1
:08B7C80020C104033010016FE1
:08B7D00041004003C00001909C
:08B7D80040903E0130400120C9
:08B7E000410403300C4003C0DA
:08B7E80000019000903E0130C9
:08B7F0002D4003C00001900090
:08B7F800903E4003C0000183F4
:08B8000000A13E4003C000015D
:08B808009044903F0147440009
:08B81000015304F11F4003C0C5
:08B8180000019100A13E300A7D
:08B820000C01804010A001465C
:08B82800011000033F82400300
:08B83000C000018040E03E0170
:08B83800000103308501A1F1BC
:08B8400060FD4003C00001801F
:08B8480040203F0110440007FD
:08B850003070016F410040035C
:08B85800C000019040E03E40F9
:08B8600003C000018040F03E2E
:08B86800010001023015300A55
:08B870000C01804060A00153AF
:08B8780041D00F300A0C0190D1
:08B880004060A04003C000017C
:08B888008040003F01000102B5
:08B890003015300A0C01804064
:08B8980060A0015341E00F30F4
:08B8A0000A0C01904060A04079
:08B8A80003C000018040103FC5
:08B8B00001000102300C016FE0
:08B8B800C104300A0C019040AC
:08B8C00000A0013EA42EA92EF8
:08B8C800A5A3A1A2AC2EAAA8C1
:08B8D000A6A409602E2E2E2E05
:08B8D8002E2E71312E2E2E7A66
:08B8E000736177322E2E6378AC
:08B8E800646534332E2E207636
:08B8F000667472352E2E6E62A3
:08B8F800686779362E2E2E6DD3
:08B900006A7537382E2E2C6BFE
:08B90800696F30392E2E2E2F3D
:08B910006C3B702D2E2E2E273A
:08B918002E5B3D2E2EAD2E0D1D
:08B920005D2E5C2E2E2E2E2E52
:08B928002E2E2E082E2E952E66
:08B9300093942E2E2E987F92B5
:08B938002E91901BAFAB2E977E
:08B940002E2E96AE2E2E2E2EA7
:08B94800A72E2E2E2E2E2E2E0E
:08B950002E2E2E2E2E2E2E2E7F
:08B958002E2E2E2E2E2E2E2E77
:08B960002E2E2E2E2E2E2E2E6F
:08B968002E2E2E2E2E2E2E2E67
:08B970002E2E2E2E2E2E2E2E5F
:08B978002E2E2E2E2E2E2E2E57
:08B980002E2E2E2E2E2E2E2E4F
:08B988002E2E2E2E2E2E2E2E47
:08B990002E2E2E2E2E2E2E2E3F
:08B998002E2E2E2E2E2E2E2E37
:08B9A0002E2E2E2E2E2E2E2E2F
:08B9A8002E2E2E2E2E2E2E2E27
:08B9B0002E2E2E2E2E2E2E2E1F
:08B9B8002E2E2E2E2E2E2EFA4B
:08B9C0002E2E2E2E2E2E2E2E0F
:08B9C8002E2E2E2E2E2E2E2E07
:08B9D0002E2E097E2E2E2E2ED4
:08B9D8002E2E51212E2E2E5AB5
:08B9E000534157402E2E43583D
:08B9E800444524232E2E2056B5
:08B9F000465452252E2E4E4252
:08B9F8004847595E2E2E2E4D2A
:08BA00004A55262A2E2E3C4B6C
:08BA0800494F29282E2E3E3F74
:08BA10004C3A505F2E2E2E224D
:08BA18002E7B2B2E2E2E2E0D8D
:08BA20007D2E7C2E2E2E2E2E11
:08BA28002E2E2E082E2E2E2ECC
:08BA30002E2E2E2E2E2E7F2E4D
:08BA38002E2E2E1B2E2E2E2EA9
:08BA40002E2E2E2E2E2E2E2E8E
:08BA48002E2E2E2E2E2E2E2E86
:08BA50002E2E2E2E2E2E2E2E7E
:08BA58002E2E2E2E2E2E2E2E76
:08BA60002E2E2E2E2E2E2E2E6E
:08BA68002E2E2E2E2E2E2E2E66
:0849380001207FFC01A7C10072
:0849400001000302306D01804B
:08494800CC2020012103001323
:08495000301B01471BFE40F083
:084958000A01016F031A01932B
:08496000DB00C001A081016F22
:08496800410201312701215138
:084970000013301A01471BFE81
:0849780001931B03C001A20121
:084980008B32FC01A7C100010C
:08498800A7C3020130110182F6
:08499000CC802030FF00015330
:08499800C3F0FF01A7C30201F7
:0849A000471BFE40F00A010173
:0849A8006F031A0193DB00C04C
:0849B00001A08101200B0002AF
:0849B8006F81020230D60100FC
:0849C0000F0386CB8020039356
:0849C800CF002001000E038660
:0849D000CB00210393CE00206F
:0849D80001000D0386CB8021D4
:0849E0000393CD0020012051DA
:0849E800000330A401471BFC91
:0849F000016FC3FF0193DB809E
:0849F800C040F00A01016F0349
:084A00001A0193DB00C001A2C2
:084A080001207FFC01A7C100A1
:084A100001010312307A016F6D
:084A1800430001A7C3D0019186
:084A2000CB6020016FC3FF0110
:084A2800A7C3D00191CB2020AF
:084A3000016FC3FF01A7C3D011
:084A38000191CB402040F00A7F
:084A4000010182C0802101A7E1
:084A4800C3D00191CB00204016
:084A5000F00201014D0B010011
:084A5800015844314C40F00A02
:084A6000010191C0802140F02A
:084A68000A010186C0002001D3
:084A700047430040F00A010178
:084A780093C0002001471BFE62
:084A800040F00A01016F031A66
:084A88000193DB00C001A081D5
:084A9000016F0100018E1B06FD
:084A9800C001471B0201865B0F
:084AA00004C301861B84C2015E
:084AA80086DB03C201869B833B
:084AB000C101865B03C1018610
:084AB8001B83C00186DB02C074
:084AC00001A7DA0601869B063E
:084AC800C0018E9B86C0018E27
:084AD0005B04C1018E1B8CC1C7
:084AD80001471B0801F2018EE9
:084AE0005A84C0019E5A04C172
:084AE800013FA90000000000DD
:084AF00001471BF801939B062E
:084AF800C0019E1B8CC101A747
:084B00009B0601865A00C20168
:084B0800A7DA0601869B06C036
:084B1000018E1B8CC101471B43
:084B18000A01F201A75F000190
:084B2000F240C01701014D5FD6
:084B28000000015801134C01CB
:084B3000F201471BF801939B01
:084B380006C0019E1B8CC101A7
:084B4000A79B060186DA07C2FB
:084B480001581FF34140C017A2
:084B50000101471F0001A7DA73
:084B58000601869B06C0018ED8
:084B60001B8CC101471B0A0177
:084B6800F20000000000000053
:084B700001471BF801939B06AD
:084B7800C0019E1B8CC101A7C6
:084B80009B0601471BFA014DE1
:084B8800DB86030193DB02C090
:084B900001931B83C001935B3C
:084B980003C101939B83C101DD
:084BA00093DB03C201931B84A7
:084BA800C201935B04C301820A
:084BB000DA00C201A7C3900165
:084BB800A703032008016F8E22
:084BC000002008016F0F002026
:084BC80008016F111B016F8150
:084BD0001130060C01914000B8
:084BD800A001200C00073007CA
:084BE00001200C4007300B011D
:084BE8006F4100016F020101A1
:084BF000317201580C434040F2
:084BF800C01701014CC40000CC
:084C000001A7C30201B0D1328B
:084C0800200120C30F05300C50
:084C100001B0D13220012003A4
:084C18000006300B016FC10022
:084C2000016F020101313D01A9
:084C28006FC11130060C01916F
:084C30004000A001B0D13220C8
:084C38000120C3000630290130
:084C40006F440001B0D15220C5
:084C480001A745810158443128
:084C50000040F00A010182009E
:084C580081270150C440044013
:084C6000F00A01019100812717
:084C6800016F03042008019014
:084C7000CBD02601B0D1522087
:084C780001A745810158C54068
:084C800044015844304040C0DB
:084C880027010182C300210194
:084C9000A70304016F011230BB
:084C9800060C01914000A0018F
:084CA00020100006302D01C1B7
:084CA800CFC22001C1CEC220E1
:084CB00001B0D1522001A7451B
:084CB800810158C54044015878
:084CC00044304040C02701010F
:084CC80091030321016F0100BB
:084CD00001305A016FC11230DE
:084CD800060C01914000A0014F
:084CE0005810434040C01701C9
:084CE800014CC4000001A743C8
:084CF0000301C1CF022101B252
:084CF8004E332001C1CE322031
:084D000001B24E5320015805D9
:084D0800434040C01701014CBB
:084D1000C4000001C1CFC02066
:084D180001C14EC320016F41EF
:084D20001330060C0191400064
:084D2800A0016F010001865B90
:084D300004C301861B84C201CB
:084D380086DB03C201869B83A8
:084D4000C101865B03C101867D
:084D48001B83C00186DB02C0E1
:084D500001A7DA0601869B06AB
:084D5800C0018E1B8CC1014754
:084D60001B0A01F201A8DA00B0
:084D680001A94304013FBE0153
:084D7000471BF801939B06C0EC
:084D7800019E1B8CC101A79BE9
:084D80000601471BFE014DDB9B
:084D880086030193DB02C00168
:084D9000931B83C001935B0338
:084D9800C101939B83C101934B
:084DA000DB03C201931B84C276
:084DA80001935B04C30182DAF0
:084DB00000C201A7C39001A796
:084DB80003032008016F8D00C8
:084DC0002008016F0E0040C045
:084DC8002701016F0F04200810
:084DD000016F101B40C0170128
:084DD800016F110001200C0025
:084DE00007300701200C400719
:084DE800300B016F4100016F67
:084DF000020101312E01580CF3
:084DF800434001404434100166
:084E0000A7C30201B0D032206B
:084E08000120C30F05300C016D
:084E1000B0D0322001200300A4
:084E180006300B016FC100011F
:084E20006F02010130FD01B039
:084E2800D0522001A7458101D1
:084E300058C54044015844300C
:084E38004001B2CF302001104F
:084E4000CC0003301D01B0D0CD
:084E4800522001A74581015829
:084E5000C54044015844304004
:084E580001B2CE422001C1CFDE
:084E6000402001B0D0522001F6
:084E6800A745810158C5404433
:084E7000015844304001B2CFAB
:084E780030200110CC000330D2
:084E80001C01B0D0522001A773
:084E880045810158C5404401B9
:084E900058443040016FC4FFDB
:084E980001C1CF402001B2CEA0
:084EA0005220015805434001B6
:084EA8004044341001B2CD4278
:084EB0002001C1CD402001B238
:084EB800CD52200158054340D2
:084EC000014044341001B2CEA0
:084EC800422001C1CE4020018F
:084ED0006FC3FF01C1CE3220C7
:084ED800016FC3FF01C1CD32DF
:084EE00020200801900BD026F0
:084EE800016F010001865B046B
:084EF000C301861B84C2018688
:084EF800DB03C201869B83C1AC
:084F000001865B03C101861B61
:084F080083C00186DB02C00139
:084F1000A7DA0601869B06C02A
:084F1800018E1B8CC101471B37
:084F20000A01F201A8DA000108
:084F2800A94304013FBE01474B
:084F30001BF801939B06C00170
:084F38009E1B8CC101A79B0622
:084F400001471BFA014DDB865D
:084F4800030193DB02C0019399
:084F50001B83C001935B03C148
:084F580001939B83C10193DB6F
:084F600003C201931B84C2018E
:084F6800935B04C30182DA002F
:084F7000C201A7C39001A74391
:084F7800032008016F8F0020E7
:084F800008016F10000186DA40
:084F880080C201A743040120CF
:084F90000D0007300701200DA0
:084F98004007300B016F4100DE
:084FA000016F020101319A01C9
:084FA800580D434040C0170101
:084FB000014CC4000001A7033D
:084FB8000340C027010182C083
:084FC0008020012003000630EF
:084FC80029200801934C04228A
:084FD00040C02701019140835C
:084FD80020016FC3FF01C110AD
:084FE0003320016FC3FF01C182
:084FE8000F3320016F010001ED
:084FF0003118016F030001A755
:084FF800830340C02701018280
:085000004081200158054340E6
:0850080040C01701014CC40077
:085010000001A7C30220080102
:0850180086CB00220110D1003B
:0850200004307820080186CB62
:0850280000220140D110150126
:08503000A78B0301B2D032206E
:085038000121030016304201C2
:08504000C1D0D22040C01701CD
:08504800014D0B0100015804A9
:08505000334C01C10F332001B4
:085058006FC3FF01C1103320FA
:08506000200801934C042220FA
:08506800080180CCD0260154A0
:08507000C3100020080190CCE0
:08507800D026016F0100013098
:085080008901B2D05220015851
:0850880005434040C01701017F
:085090004CC4000001A7C3029B
:08509800013F7A40C01701013D
:0850A0004D0B0100015804331F
:0850A8004C01C110332040C08F
:0850B0001701014D0E01000182
:0850B8005804334C01C10F3311
:0850C0002001000B0230182052
:0850C800080186CB0022014023
:0850D00043341420080193CBC6
:0850D800002201C1CFD220012A
:0850E000000E03C190D3200370
:0850E800300940C027010191CD
:0850F00040832020080180CC60
:0850F800D0260154C310002072
:08510000080190CCD026016FDC
:08510800010001865B04C301F4
:08511000861B84C20186DB034B
:08511800C201869B83C10186E0
:085120005B03C101861B83C083
:085128000186DB02C001A7DAD9
:085130000601869B06C0018EFA
:085138001B8CC101471B0C0197
:08514000F201A8DA0001A94305
:0851480004013FBE01471BF802
:0851500001939B06C0019E1BA8
:085158008CC101A79B06014771
:085160001BFE014DDB8602017C
:0851680093DB02C001931B83DD
:08517000C001935B03C1019330
:085178009B83C10193DB03C21C
:085180002008016F0C0020085B
:08518800016F8D000182DA00C5
:08519000C201A7C39001A7832F
:085198000340C01701016F0F75
:0851A0000001200E000730079A
:0851A80001200E4007300B014D
:0851B0006F4100016F020101D3
:0851B80030C601580E4340010E
:0851C00040C4331001A7C30233
:0851C80001B2CC32200100030A
:0851D00002304201B2CC522072
:0851D80001580543400140C4E9
:0851E000331001B2CD422001A1
:0851E800C1CD402001B2CC5200
:0851F000200158054340014075
:0851F800C43310200801860BEE
:08520000012220080186430190
:085208002201400551102008AD
:08521000019343012201B2CD1C
:085218003220012003000730E1
:085220001901B2CD5220015822
:085228000543400140C43310AE
:0852300001B2CC422001C1CC07
:085238004020200801900BD07A
:0852400026016FC3FF01C1CC80
:085248003220016FC3FF01C118
:08525000CD32200186DB03C210
:0852580001869B83C101865B06
:0852600003C101861B83C0019C
:0852680086DB02C001A7DA0693
:0852700001869B06C0018E1BA4
:085278008CC101471B0A01F281
:0852800001A8DA0001A94304B2
:08528800013FC801471BF801BA
:08529000939B06C0019E1B8CDC
:08529800C101A79B0601471BA1
:0852A000FC014DDB0601019346
:0852A800DB02C001931B83C06F
:0852B00040C02701016F0B0251
:0852B8000182CB002001A703D5
:0852C000030182CB0020012054
:0852C80003000730610182CBF5
:0852D00000200120034006301C
:0852D8005501824B0120015831
:0852E00005434040C017010125
:0852E8004CC400002008018203
:0852F00003012001910B0120D4
:0852F8000182CB00200121031B
:085300000017302A0182CB00E6
:08530800200121034016301EB4
:0853100001824B012001580548
:08531800434040C01701014CA5
:08532000C40000016FC4FF206E
:0853280008019103212001A7F7
:085330004C0001861B83C00143
:0853380086DB02C001A7DA06C2
:0853400001869B06C0018E1BD3
:085348008CC101471B0801F2B2
:0853500001471BF801939B06C5
:08535800C0019E1B8CC1019EE7
:085360009B86C0019E5B04C1A5
:085368005056FCFF00019DDA24
:085370008D01A79B0601471BFC
:08537800F6014DDB86030193F1
:08538000DB02C001931B83C096
:0853880001935B03C101939B3B
:0853900083C10193DB03C2019C
:08539800931B84C201935B0426
:0853A000C3014DDB8600019EF4
:0853A8001B06C02008016F0D77
:0853B0000040C01701016F115C
:0853B800005096FCFF00019D6E
:0853C000D88701471BFE50F1E4
:0853C800FCFF00016F036A0104
:0853D00093DB00C001A0810184
:0853D800471B02016F100001E8
:0853E0002010020631280158DB
:0853E80050304040C0270101D4
:0853F00082C3002101A70303A1
:0853F80001210C00173108012E
:08540000210C40163101015896
:085408000C4340014044341044
:085410000193DA00DF0186DAE6
:0854180002DF016F0F000140EB
:085420004B4414015804334C05
:0854280001A7830301471BEEFD
:0854300020080186CB002801D1
:0854380093DB00C4200801868B
:08544000CB00220193DB80C3C5
:0854480001B2CD32200193DB1B
:0854500000C320080182CB20FB
:08545800200193DB80C201A7D3
:085460008E9301939B03C2200F
:08546800080180CBD02601A74A
:08547000C3800193DB80C12021
:08547800080180CBC02601A74A
:08548000C3800193DB00C12091
:08548800080180CBE02601A71A
:08549000C3800193DB80C050D2
:08549800F1FCFF00016F035558
:0854A0000193DB00C001A081B3
:0854A80001471B1201B2CD32D5
:0854B000200123030037300C3A
:0854B80001B2CD3220012303F3
:0854C0004037300301304001C8
:0854C800B2CD5220015805434A
:0854D00040014044341001A723
:0854D800C30201A2015295FC80
:0854E00001A7C1000123C30074
:0854E800323102014CCF10002B
:0854F00001A7C3030186DA00E5
:0854F800DF0112CB0022300796
:0855000001228F02273F170171
:08550800475000013ED10147AC
:085510001BFE50F1FCFF00013D
:085518006F034D0193DB00C09D
:0855200001A08101471B0240BC
:08552800C027010182C08020B0
:0855300001A7030301200C0098
:085538000730B201200C40060F
:0855400030AB01580C4340019F
:085548004044341001A7C30226
:0855500001471BEE2008018653
:08555800CB00280193DB00C425
:0855600020080186CB002201A6
:0855680093DB80C301B2CD32D8
:08557000200193DB00C32008B9
:085578000182CB20200193DB2E
:0855800080C201A78E93019384
:085588009B03C220080180CB47
:08559000D02601A7C38001939E
:08559800DB80C120080180CB7B
:0855A000C02601A7C38001939E
:0855A800DB00C120080180CBEB
:0855B000E02601A7C38001936E
:0855B800DB80C050F0FCFF0095
:0855C000016F03380193DB00C9
:0855C800C001A08101471B1284
:0855D00001B2CD322001A70356
:0855D8000301A2015295FC0140
:0855E000A7C1000121C3001264
:0855E8003003013F47018E1B57
:0855F00006C001471B02018601
:0855F8005B04C301861B84C2A1
:085600000186DB03C201869B59
:0856080083C101865B03C101AF
:08561000861B83C00186DB024A
:08561800C001A7DA0601869B20
:0856200006C0018E9B86C0014B
:085628008E5B04C1018E1B8C96
:08563000C101471B0801F20152
:085638008E5A84C0019E5A0441
:08564000C1013FA900000000B8
:0856480000000000000000005A
:0856500001471BF801939B06C2
:08565800C0019E1B8CC1019EE4
:085660009B86C0019E5B04C1A2
:085668005057FCFF00019D1AE0
:08567000CA01A79B0601471BBC
:08567800FA014DDB86000193ED
:085680001B00C04036000101CF
:085688008000002A010000026D
:085690003024403600010190B6
:0856980000002A01471BFE403F
:0856A000360001016F03A601B1
:0856A80093DB00C001A2014CDC
:0856B00035FC01471B02014714
:0856B8001BF680FFFFFFFFFF5E
:0856C000FF7F016FC3FF01939E
:0856C800DB00C2014CDA80DEB8
:0856D0000193DB80C1014CDAFB
:0856D80000DF0193DB00C101BA
:0856E0004CDA80DF0193DB804E
:0856E800C0403600010182C040
:0856F00080290193DB00C001D9
:0856F800A201BA42FC01471BAC
:085700000A01A2013458FC016A
:085708003FAC01A7DA0601869F
:085710009B06C0018E9B86C0C0
:08571800018E5B04C1018E1B30
:085720008CC101471B0801F2D6
:08572800018E5A84C0019E5A53
:0857300004C1013FD501471B34
:08573800F801939B06C0019EDD
:085740001B8CC1019E9B86C079
:08574800019E5B04C15058FCF6
:08575000FF00019DDA0901A729
:085758009B06014DDB860001F8
:0857600093DB02C00186DA00B0
:08576800C201A7C30201471BA7
:08577000FE0193DB02C001A25F
:08577800014A59FC01471B0224
:0857800001471BFC016FC3FF90
:085788000193DB80C040F00A30
:0857900001016F03180193DB16
:0857980000C001A201207FFC0A
:0857A00001A7C1000100030292
:0857A800305A40F00A010186AD
:0857B000C080220111CB0012A0
:0857B800303301A201A05DFCE9
:0857C00020060186CB802520A4
:0857C800060193CB002540F01F
:0857D0000A010193C08222507E
:0857D80000D0FF00016F030087
:0857E00020060193CB00250116
:0857E800A2017D5CFC01471BDE
:0857F000FE40F00A01016F0305
:0857F800180193DB00C001A2BF
:0858000001907FFC0186DB0230
:08580800C001A7DA0601869B2E
:0858100006C0018E9B86C00159
:085818008E5B04C1018E1B8CA4
:08582000C101471B0801F20160
:085828008E5A84C0019E5A044F
:08583000C1013FD001471BF844
:0858380001939B06C0019E1BB9
:085840008CC1019E9B86C00192
:085848009E5B04C15059FCFFF6
:0858500000019D5A4F01A79BC6
:085858000601471BFC014DDBBA
:0858600086010193DB02C00187
:08586800931B83C001935B0355
:08587000C140F00A01016F0DB7
:085878000A01471BFC016FC38C
:08588000FF0193DB80C040F042
:085888000A01016F03180193EE
:08589000DB00C001A201207F32
:08589800FC01A7C1000100039F
:0858A00002306D01860D0320AA
:0858A80001010C12304B0186D6
:0858B000CD00200186C3022097
:0858B8000186CD00200112CB96
:0858C0000022303501030B3218
:0858C800302F01A201A05DFCDC
:0858D00020060186CC80252092
:0858D800060193CC00250193A9
:0858E000CD02205000D0FF00B2
:0858E800016F0300200601938B
:0858F000CB002501A2017D5C43
:0858F800FC01471BFE40F00A11
:0859000001016F03180193DBA4
:0859080000C001A201907FFC28
:0859100001865B03C101861B47
:0859180083C00186DB02C0011F
:08592000A7DA0601869B06C010
:08592800018E9B86C0018E5B1D
:0859300004C1018E1B8CC101B2
:08593800471B0801F2018E5A21
:0859400084C0019E5A04C1015C
:085948003FC601471BF8019363
:085950009B06C0019E1B8CC1E7
:08595800019E9B86C0019E5BCD
:0859600004C1505AFCFF0001D4
:085968009D1AAB01A79B06018B
:08597000471BFC014DDB0602A0
:085978000193DB02C001931B47
:0859800083C001935B03C10128
:08598800939B83C10186DA0044
:08599000C201A7C30240F00AA6
:0859980001016F0C0A20060159
:0859A00080CB202B01A7C3807E
:0859A80001A7430301471BFCAA
:0859B000016FC3FF0193DB80CE
:0859B800C040F00A01016F0379
:0859C000180193DB00C001A2F5
:0859C80001207FFC01A7C100D2
:0859D0000100030230A440F0C5
:0859D8000A01018640012301D0
:0859E000584543040153C410B3
:0859E8000001A7830301010E79
:0859F0001330700186CC002089
:0859F80001220300233012011B
:085A000093CC02200193CB02BC
:085A0800200193CB8220013044
:085A1000320186CC0020018662
:085A180003812001930B8120A2
:085A20000186CC00200193CBAC
:085A280000200186CC002001E2
:085A300086C380200193C3022C
:085A3800200186CC002001933F
:085A4000C38220016F44000144
:085A48005844330040F00A014C
:085A500001860001230150C48E
:085A5800400440F00A01019333
:085A600000012301471BFE4079
:085A6800F00A01016F031801AF
:085A700093DB00C001A20190CC
:085A78007FFC01869B83C10144
:085A8000865B03C101861B8354
:085A8800C00186DB02C001A78A
:085A9000DA0601869B06C00145
:085A98008E9B86C0018E5B04A9
:085AA000C1018E1B8CC10147FE
:085AA8001B0801F2018E5A8473
:085AB000C0019E5A04C1013F30
:085AB800C101471BF8019E1B10
:085AC0008CC1019E9B86C00110
:085AC8009E5B04C1505BFCFF72
:085AD00000019DDAC101471B32
:085AD800FE01A2018808FC0197
:085AE000A7C1000193DB00C027
:085AE80001A201145BFC01475F
:085AF0001B02018E9B86C00120
:085AF8008E5B04C1018E1B8CC2
:085B0000C101471B0801F2017D
:085B08008E5A84C0019E5A046C
:085B1000C1013FDE01471BF853
:085B180001939B06C0019E1BD6
:085B20008CC1019E9B86C001AF
:085B28009E5B04C1505CFCFF10
:085B300000019D1A1C01A79B56
:085B38000601471BFE014DDBD5
:085B400006010193DB02C00124
:085B4800931B83C00186DA0003
:085B5000C201A7C30201471BBB
:085B5800FC016FC3FF0193DBA8
:085B600080C040F00A01016F52
:085B680003180193DB00C001EA
:085B7000A201207FFC01A7C186
:085B7800000100030230C940E6
:085B8000F00A01018600012377
:085B8800016F460020060180B8
:085B9000CB212B01A7C7810105
:085B980058C6510001504431D0
:085BA0000001010312308A012B
:085BA8006F4500200601808B0F
:085BB000212B01A78681015899
:085BB80085410001A7C4B040C3
:085BC000F00A01018600012337
:085BC8000150C4400040F00A46
:085BD00001019300012340F0E4
:085BD8000A010186C0802201D0
:085BE00012CB0022A20134588F
:085BE800FC01860B0320010201
:085BF0000C22303D0113CC0230
:085BF8003230170186CB80203A
:085C00000193CC80200186CB4A
:085C0800802001930303200139
:085C1000300D016F030040F0AC
:085C18000A010193C080220182
:085C20006F03000193CB00208B
:085C2800016F03000193CB8022
:085C30002001471BFE40F00AB1
:085C380001016F03180193DB69
:085C400000C001A201907FFCED
:085C480001861B83C00186DB0D
:085C500002C001A7DA0601867B
:085C58009B06C0018E9B86C073
:085C6000018E5B04C1018E1BE3
:085C68008CC101471B0801F289
:085C7000018E5A84C0019E5A06
:085C780004C1013FCB01471BF1
:085C8000F801939B06C0019E90
:085C88001B8CC1019E9B86C02C
:085C9000019E5B04C1505DFCA4
:085C9800FF00019DDA6401A781
:085CA0009B0601471BF6014DB4
:085CA800DB86020193DB02C060
:085CB00001931B83C001935B0B
:085CB80003C101939B83C101AC
:085CC00093DB03C240F00A016E
:085CC8000186C08222200601C2
:085CD00086CB032520060186A6
:085CD8008B8325200601820BDD
:085CE0000126200601824B2180
:085CE80026014044311801A718
:085CF000C39001A7030301208A
:085CF8000C0007301C01588C60
:085D0000304001588C404001C5
:085D0800B40E512001C2CF507E
:085D100020014D0C1300013FBE
:085D1800DD200601824B41264B
:085D2000200601828B212601FF
:085D28004085411820060182AC
:085D30004B61260140443110D3
:085D380001A7C39001A743037A
:085D400001471BFC01935B838A
:085D4800C0016FC3020193DBEF
:085D500000C001A201625FFC2A
:085D580001471B040186DB0377
:085D6000C201869B83C101868C
:085D68005B03C101861B83C02F
:085D70000186DB02C001A7DA85
:085D78000601869B06C0018EA6
:085D80009B86C0018E5B04C18B
:085D8800018E1B8CC101471BB9
:085D90000801F2018E5A84C0E3
:085D9800019E5A04C1013FBC49
:085DA00001471BF801939B066B
:085DA800C0019E1B8CC101A784
:085DB0009B0601471BF8014DA1
:085DB800DB06020193DB02C0CF
:085DC00001931B83C001935BFA
:085DC80003C101939B83C1405C
:085DD000F00A010186008322A4
:085DD800200601868C03252042
:085DE0000601864C8325200614
:085DE80001820C0126200601D6
:085DF000824C212601404431E0
:085DF8001801A7C39001A7C325
:085E00000201200B0007301C19
:085E080001588B304001588B5A
:085E1000404001B40E512001D5
:085E1800C2CD5020014DCB1258
:085E200000013FDD01869B83B8
:085E2800C101865B03C1018684
:085E30001B83C00186DB02C0E8
:085E380001A7DA0601869B06B2
:085E4000C0018E1B8CC101475B
:085E48001B0801F2000000003C
:085E500001471BF8019E1B8CA9
:085E5800C1019E9B86C0019E62
:085E60005B04C1505EFCFF0071
:085E6800019D9AA401A201882A
:085E700008FC01A7C100200697
:085E78000186430025018E9B09
:085E800086C0018E5B04C10124
:085E88008E1B8CC101471B08B1
:085E900001F2018E5A84C001E9
:085E98009E5A04C1013FDE0126
:085EA000471BF8019E1B8CC199
:085EA800019E9B86C0019E5B78
:085EB00004C1505EFCFF00017B
:085EB8009D5AB801A2018808FF
:085EC000FC01A7C1002006014E
:085EC80086438026018E9B86B3
:085ED000C0018E5B04C1018ECC
:085ED8001B8CC101471B0801EE
:085EE000F2018E5A84C0019EFC
:085EE8005A04C1013FDE01472D
:085EF0001BF801939B06C001A1
:085EF8009E1B8CC1019E9B86DC
:085F0000C0019E5B04C1505F6B
:085F0800FCFF00019D5AD501C8
:085F1000A79B0601A20188080D
:085F1800FC01A7C10001845A3D
:085F200001C250FCFFFF00016B
:085F2800530501C001A704E1CB
:085F3000200601920381260105
:085F3800A7DA0601869B06C0F2
:085F4000018E9B86C0018E5BFF
:085F480004C1018E1B8CC10194
:085F5000471B0801F2018E5A03
:085F580084C0019E5A04C1013E
:085F60003FD501471BF8019336
:085F68009B06C0019E1B8CC1C9
:085F7000019E9B86C0019E5BAF
:085F780004C15060FCFF0001B0
:085F80009D1A0201A79B060116
:085F88004DDB86000193DB02F2
:085F9000C00186DA00C201A77E
:085F9800C30201200B000730D9
:085FA000070120CB02043024AC
:085FA80001471BFC0193DB82A1
:085FB000C050F2FCFF00016F7C
:085FB80003800193DB00C0012E
:085FC000A2011F96FC01471B22
:085FC8000401301901865A00A2
:085FD000C201869A80C201584B
:085FD8008110405000DAFF00C7
:085FE00001928100000186DB43
:085FE80002C001A7DA060186E0
:085FF0009B06C0018E9B86C0D8
:085FF800018E5B04C1018E1B48
:086000008CC101471B0C01F2E9
:08600800018E5A84C0019E5A6A
:0860100004C1013FD001471B50
:08601800F801939B06C0019EF4
:086020001B8CC1019E9B86C090
:08602800019E5B04C15060FC05
:08603000FF00019DDA2701A722
:086038009B0601471BFE014D10
:08604000DB86000193DB02C0C6
:0860480001A2018808FC01A778
:08605000C10001A7C302018693
:08605800DA80C201A7C3D020C9
:08606000060191CB60260186C8
:08606800DA00C201A7C3D02039
:08607000060191CB402601A2BC
:08607800014C63FC0186DB0210
:08608000C001A7DA0601869BAE
:0860880006C0018E9B86C001D9
:086090008E5B04C1018E1B8C24
:08609800C101471B0801F201E0
:0860A0008E5A84C0019E5A04CF
:0860A800C1013FD001471BF8C4
:0860B00001939B06C0019E1B39
:0860B8008CC1019E9B86C00112
:0860C0009E5B04C15061FCFF6E
:0860C80000019D9A4901A79B0C
:0860D0000601471BFE014DDB38
:0860D80086000193DB02C00108
:0860E000A2018808FC01A7C120
:0860E8000001A7C3020186DAE2
:0860F00000C201A7C3D0200685
:0860F8000191CB602601A20119
:086100004C63FC0186DB02C0C8
:0861080001A7DA0601869B06DF
:08611000C0018E9B86C0018EC8
:086118005B04C1018E1B8CC168
:0861200001471B0801F2018E8A
:086128005A84C0019E5A04C113
:08613000013FD001471BF801FB
:08613800939B06C0019E1B8C25
:08614000C1019E9B86C0019E77
:086148005B04C15061FCFF0083
:08615000019DDA6C01A79B061A
:0861580001471BFE014DDB862F
:08616000000193DB02C001A263
:08616800018808FC01A7C10039
:0861700001A7C3022006018211
:086178000B6126200601828B59
:086180004126015806524001BE
:086188005044310401A743005B
:086190000186DB02C001A7DA61
:086198000601869B06C0018E82
:0861A0009B86C0018E5B04C167
:0861A800018E1B8CC101471B95
:0861B0000801F2018E5A84C0BF
:0861B800019E5A04C1013FD011
:0861C00001471BF8019E1B8C36
:0861C800C1019E9B86C0019EEF
:0861D0005B04C15062FCFF00FA
:0861D800019D9A8001A20188DB
:0861E00008FC01A7C100200624
:0861E8000186432026018E9B75
:0861F00086C0018E5B04C101B1
:0861F8008E1B8CC101471B083E
:0862000001F2018E5A84C00175
:086208009E5A04C1013FDE01B2
:08621000471BF8019E1B8CC125
:08621800019E9B86C0019E5B04
:0862200004C15062FCFF000103
:086228009D5A9401A2018808AF
:08623000FC01A7C100200601DA
:0862380086430026018E9B86BF
:08624000C0018E5B04C1018E58
:086248001B8CC101471B08017A
:08625000F2018E5A84C0019E88
:086258005A04C1013FDE0147B9
:086260001BF801939B06C0012D
:086268009E1B8CC101A79B06DF
:08627000014DDB86000193DB08
:0862780002C00182DA00C2013C
:08628000A7C3020120CB1602A6
:086288006FC106023040012045
:086290004B17026F41070230B9
:08629800350153CBF20F015454
:0862A000CB02100153CB0002F8
:0862A80001000302A74B0002F4
:0862B000301C0153CB00040176
:0862B800000302A74B000230B5
:0862C0000D0153CBF01901A7F9
:0862C800C30201A74B0001868F
:0862D000DB02C001A7DA0601A0
:0862D800869B06C0018E1B8CA1
:0862E000C101471B0801F20196
:0862E800471BF801939B06C05F
:0862F000019E1B8CC101A79B5C
:0862F80006014DDB8600019355
:08630000DB02C00182DA00C2D9
:0863080001A7C3020153CBF20F
:086310000F0120CB06026FC152
:086318001602301701204B07AB
:08632000026F411702300C016D
:0863280020CB060B470B180106
:08633000A74B000186DB02C04F
:0863380001A7DA0601869B06AD
:08634000C0018E1B8CC1014756
:086348001B0801F201471BF8DC
:0863500001939B06C0019E1B96
:086358008CC1019E9B86C0016F
:086360009E5B04C15063FCFFC9
:0863680000019D5AFE01A79BF4
:086370000601471BFC014DDB97
:0863780006010193DB02C001E4
:08638000931B83C001A20188F8
:0863880008FC01A7C10001A7F8
:08639000C302200601824B410B
:0863980026200601828B21265C
:0863A0000140854118200601AF
:0863A800824B612601404431E3
:0863B0001001A7C39001A7032F
:0863B8000301471BFC01931BCC
:0863C00083C0016FC3020193C9
:0863C800DB00C001A201625FCD
:0863D000FC01861B83C001865D
:0863D800DB02C001A7DA060197
:0863E000869B06C0018E9B861E
:0863E800C0018E5B04C1018EAF
:0863F0001B8CC101471B0801D1
:0863F800F2018E5A84C0019EDF
:086400005A04C1013FCB014722
:086408001BF801939B06C00183
:086410009E1B8CC1019E9B86BE
:08641800C0019E5B04C1506449
:08642000FCFF00019D9A23011D
:08642800A79B0601471BFE01C2
:086430004DDB86000193DB0245
:08643800C001A2018808FC016B
:08644000A7C10001A7C302017E
:086448006F030001A7C3D0207F
:08645000060191CB6026016FEB
:08645800030001A7C3D02006D8
:086460000191CB402601A201CD
:086468004C63FC0186DB02C05D
:0864700001A7DA0601869B0674
:08647800C0018E9B86C0018E5D
:086480005B04C1018E1B8CC1FD
:0864880001471B0801F2018E1F
:086490005A84C0019E5A04C1A8
:08649800013FD001471BF80190
:0864A000939B06C0019E1B8CBA
:0864A800C1019E9B86C0019E0C
:0864B0005B04C15065FCFF0014
:0864B800019DDA5C01A79B06BF
:0864C00001471BFC014DDB0646
:0864C800010193DB02C0019306
:0864D0001B83C001A201880832
:0864D800FC01A7C10001A7C3EC
:0864E00002200601824B412657
:0864E800200601828B21260130
:0864F0004085411820060182DD
:0864F8004B6126014044311004
:0865000001A7C39001A70303EA
:0865080001471BFC01931B83FA
:08651000C0016FC3020193DB1F
:0865180000C001A201625FFC5A
:08652000014DDB86000193DB55
:0865280000C001A201505EFC5D
:086530000186DB00C001471BDE
:086538000201A7010101588CCA
:086540005040014044311001FC
:08654800A7430001861B83C07C
:086550000186DB02C001A7DA9D
:086558000601869B06C0018EBE
:086560009B86C0018E5B04C1A3
:08656800018E1B8CC101471BD1
:086570000801F2018E5A84C0FB
:08657800019E5A04C1013FCB52
:0865800001471BF801939B0683
:08658800C0019E1B8CC1019EA5
:086590009B86C0019E5B04C163
:086598005066FCFF00019DDAD2
:0865A000AB01A79B0601471B9C
:0865A800F6014DDB0602019330
:0865B000DB02C001931B83C054
:0865B80001935B03C101939BF9
:0865C00083C101A2018808FC5F
:0865C80001A7C10001A7C302F5
:0865D00001A201505EFC01A7CD
:0865D800C10001A783032006A6
:0865E00001820B0126200601D7
:0865E800824B212601404431E1
:0865F0000801A74303014DDB84
:0865F80086000193DB00C001E5
:08660000A2019F5EFC0186DB94
:0866080000C001471B0201A7BD
:086610000101014DDB860001D0
:0866180093DB00C0014DDB869D
:086620000001931B01C00147BA
:086628001BFE016F0508019340
:086630005B01C001A2015E62E2
:08663800FC01471B0201861B57
:0866400001C001471B020186A5
:08664800DB00C001471B020149
:08665000A7410101A7459101DA
:086658005044310401A70303C3
:0866600001471BFA01935B03E3
:08666800C101931B83C00193E3
:086670009B03C001A2010AA274
:08667800FC01471B0601869B93
:0866800083C101865B03C10127
:08668800861B83C00186DB02C2
:08669000C001A7DA0601869B98
:0866980006C0018E9B86C001C3
:0866A0008E5B04C1018E1B8C0E
:0866A800C101471B0801F201CA
:0866B0008E5A84C0019E5A04B9
:0866B800C1013FC101471BF8BD
:0866C000019E1B8CC1019E9B91
:0866C80086C0019E5B04C15075
:0866D00067FCFF00019D1AC7E1
:0866D80001471BFA3000080124
:0866E0006F03000193DB00C110
:0866E800016F03000193DB8048
:0866F000C0300040016F0300FF
:0866F8000193DB00C001A201C7
:0867000058A2FC01471B060131
:086708008E9B86C0018E5B042C
:08671000C1018E1B8CC1014781
:086718001B0801F2018E5A84F6
:08672000C0019E5A04C1013FB3
:08672800DE01471BF801939B01
:0867300006C0019E1B8CC10193
:086738009E9B86C0019E5B04DC
:08674000C15068FCFF00019D3F
:086748005A1701A79B06014747
:086750001BF6014DDB8601017F
:0867580093DB02C001931B83D7
:08676000C001935B03C101A21B
:08676800018808FC01A7C10033
:0867700001A7030301A201507F
:086778005EFC01A7C10001A7AE
:08678000C302200601828C21F6
:08678800260186DA01C201407E
:08679000C65108015885404084
:0867980001400B311001A7C301
:0867A00002014DDB86000193AC
:0867A800DB00C001A2019F5EAD
:0867B000FC0186DB00C001477B
:0867B8001B0201A70101014DC4
:0867C000DB86000193DB00C041
:0867C800014DDB860001931B6B
:0867D00001C001471BFE016F2F
:0867D800050801935B01C001FB
:0867E000A2015E62FC01471BEF
:0867E8000201861B01C00147FC
:0867F0001B020186DB00C00161
:0867F800471B0201A74101014A
:08680000A74591015044310449
:0868080001A7430301471BFA3D
:0868100020060182CC202601C4
:0868180093DB00C101935B83D7
:08682000C00193DB02C001A2DC
:08682800010AA2FC01471B0656
:0868300001865B03C101861B18
:0868380083C00186DB02C001F0
:08684000A7DA0601869B06C0E1
:08684800018E9B86C0018E5BEE
:0868500004C1018E1B8CC10183
:08685800471B0801F2018E5AF2
:0868600084C0019E5A04C1012D
:086868003FC601471BFE019E23
:086870005B04C001A1F13B3FF4
:08687800018E5B04C001471B07
:086880000201F201471BF801BF
:08688800939B06C0019E1B8CCE
:08689000C1019E9B86C0019E20
:086898005B04C15069FCFF0024
:0868A000019D5A4E01A79B0661
:0868A80001471BFE014DDB0658
:0868B000010193DB02C001931A
:0868B8001B83C02006016F0CD8
:0868C0009901A2018808FC0106
:0868C800A7C10001A7C30201F2
:0868D000B2CC32200147430065
:0868D80001C1CC322001B2CC59
:0868E0003220200601820B01A9
:0868E80026011003010BA201BF
:0868F0004C63FC0B301B01B2EC
:0868F800CC3220014DC3100059
:0869000001C1CC322001A2010B
:086908004C63FC01A2016A6866
:08691000FC01861B83C0018617
:08691800DB02C001A7DA060151
:08692000869B06C0018E9B86D8
:08692800C0018E5B04C1018E69
:086930001B8CC101471B08018B
:08693800F2018E5A84C0019E99
:086940005A04C1013FCB0147DD
:086948001BF801939B06C0013E
:086950009E1B8CC1019E9B8679
:08695800C0019E5B04C15069FF
:08696000FCFF00019D1A7D01FE
:08696800A79B0601471BFE017D
:086970004DDB06010193DB027F
:08697800C001931B83C020063F
:08698000016F8C9901A201884E
:0869880008FC01A7C10001A7F2
:08699000C30201B2CC32200168
:0869980047430001C1CC32208D
:0869A00001B2CC3220200601F7
:0869A800820B212601100301FE
:0869B0000BA2014C63FC0B304B
:0869B80013016F030001A7C3E6
:0869C000D001C1CC322001A27C
:0869C800018368FC01861B83BA
:0869D000C00186DB02C001A733
:0869D800DA0601869B06C001EE
:0869E0008E9B86C0018E5B0452
:0869E800C1018E1B8CC10147A7
:0869F0001B0801F2018E5A841C
:0869F800C0019E5A04C1013FD9
:086A0000CB01471BF801939B39
:086A080006C0019E1B8CC101B8
:086A10009E9B86C0019E5B0401
:086A1800C1506FFCFF00019D5D
:086A20009AC601A79B0601477D
:086A28001BFA014DDB8603019E
:086A300093DB02C001931B83FC
:086A3800C001935B03C101934F
:086A40009B83C10193DB03C23B
:086A480001931B84C201935B62
:086A500004C3014DDB06010146
:086A58009E1B06C0019E5B8637
:086A6000C0506AFCFF00019D1B
:086A680058805062FCFF0001A0
:086A70009D99972006016F8E2D
:086A7800992006016F0F99201F
:086A800006016F90980182DA13
:086A880000C201A7430401A2B2
:086A9000018808FC01A7C10008
:086A980001A7C3020120510314
:086AA0000230490120910202BD
:086AA800305801205124023096
:086AB0005A012011240230807C
:086AB8000120D12402309D01F0
:086AC0002091240230BA0120EC
:086AC80011250230E20120510A
:086AD00026023107012011022A
:086AD8000231FD01201103024F
:086AE000330E012051020233C4
:086AE80016013366016F030083
:086AF00001A7C3D001C1CE32A1
:086AF8002001A2014C63FC0126
:086B000033C901A2018368FC06
:086B08000133C001B2CE3220BE
:086B100001B2D05220014D0535
:086B18001100011103011A3004
:086B20001401B2CE322001473E
:086B2800430001C1CE3220013F
:086B3000A2014C63FC01339348
:086B380001B2CF32200121035C
:086B40000018301501B2CF323C
:086B480020014DC3100001C142
:086B5000CF322001A2014C63C9
:086B5800FC01336F01B2CE32E3
:086B600020012103001830158B
:086B680001B2CE3220014DC341
:086B7000100001C1CE3220012A
:086B7800A2014C63FC01334B48
:086B800001B2CF322020060112
:086B8800824B0126014D0511AD
:086B900000011103011A301489
:086B980001B2CF322001474396
:086BA0000001C1CF322001A267
:086BA800014C63FC01331C01E8
:086BB000B2CE322001210300E6
:086BB800126F030012A7C3D005
:086BC00012C1CF3220016F0366
:086BC8000001A7C3D001C1CEFA
:086BD000322001A2014C63FC1C
:086BD8000132F001A2019B64EF
:086BE000FC01A7C10001A7435D
:086BE8000301B2CE322001A727
:086BF000030301B2D0422001B1
:086BF8004DC410000111CC0096
:086C000016303401B2CE52201F
:086C080001404C4114015884C5
:086C1000304001B2CE722001F8
:086C180040CC611401588650C4
:086C20004001404543100184CE
:086C280044412001C2CD5020BF
:086C300001474C00013FBB01CC
:086C3800B2CE522001404C4194
:086C4000140158843040014D9D
:086C4800DB86000193DB00C0B4
:086C5000014DDB860001931BDE
:086C580001C001A2019F5EFCD6
:086C600001861B01C001471B66
:086C6800020186DB00C00147B8
:086C70001B0201A74101014DC7
:086C7800DB86000193DB00C084
:086C8000014DDB860001931BAE
:086C880001C0014DDB86000193
:086C9000935B01C001471BFEEC
:086C9800016F060801939B0146
:086CA000C001A09101471B0295
:086CA80001865B01C001471BDE
:086CB0000201861B01C001472F
:086CB8001B020186DB00C00194
:086CC000471B0201A78101013D
:086CC800A786910150854104EB
:086CD00001C2CD40200131F3A7
:086CD80001B2CE3220012103BC
:086CE0000018310901B2CE32A7
:086CE80020014DC3100001C1A1
:086CF000CE322001A2019B64D9
:086CF800FC01A7C10001A74344
:086D00000301B2CE322001A70D
:086D0800030301B2D042200197
:086D10004DC410000112CC007B
:086D180026303401B2CE5220F6
:086D200001404C4114015884AC
:086D2800304001B2CE722001DF
:086D300040CC611401588650AB
:086D38004001404543100184B5
:086D400044412001C2CD5020A6
:086D480001474C00013FBB01B3
:086D5000B2CE522001404C417B
:086D5800140158843040014D84
:086D6000DB86000193DB00C09B
:086D6800014DDB860001931BC5
:086D700001C001A2019F5EFCBD
:086D780001861B01C001471B4D
:086D8000020186DB00C001479F
:086D88001B0201A74101014DAE
:086D9000DB86000193DB00C06B
:086D9800014DDB860001931B95
:086DA00001C0014DDB8600017A
:086DA800935B01C001471BFED3
:086DB000016F060801939B012D
:086DB800C001A09101471B027C
:086DC00001865B01C001471BC5
:086DC8000201861B01C0014716
:086DD0001B020186DB00C0017B
:086DD800471B0201A781010124
:086DE000A786910150854104D2
:086DE80001C2CD40200130DBA7
:086DF00001A2018065FC01A273
:086DF800010664FC0130CC012E
:086E0000471BFE016F030801AE
:086E080093DB00C001A0810131
:086E1000471B0201471BFE01B4
:086E18006F03080193DB00C0C9
:086E200001A08101471B0201E2
:086E2800471BFE016F03080186
:086E300093DB00C001A0810109
:086E3800471B0201471BFE018C
:086E40006F03080193DB00C0A1
:086E480001A08101471B0201BA
:086E5000307901A2019B64FCF2
:086E580001A7C10001A74303DB
:086E6000014DDB86000193DB0C
:086E680000C001A2019F5EFCC5
:086E70000186DB00C001471B95
:086E78000201A70101014DDB3D
:086E800086000193DB00C00154
:086E88004DDB860001931B01A4
:086E9000C001471BFE01935BEA
:086E980004C001A09101471B99
:086EA0000201861B01C001473D
:086EA8001B020186DB00C001A2
:086EB000471B0201A74101018B
:086EB800A7459101504431048B
:086EC0000192CD002001A201A6
:086EC8004669FC018E5B86C0E7
:086ED000018E1B06C001471BE7
:086ED8000401865B04C301867E
:086EE0001B84C20186DB03C222
:086EE80001869B83C101865B5A
:086EF00003C101861B83C001F0
:086EF80086DB02C001A7DA06E7
:086F000001869B06C0018E9B77
:086F080086C0018E5B04C1018B
:086F10008E1B8CC101471B0818
:086F180001F2018E5A84C00150
:086F20009E5A04C1013FA401C7
:086F2800471BF8019E1B8CC100
:086F3000019E9B86C0019E5BDF
:086F380004C1506FFCFF0001D1
:086F40009D9AE101471BFE01CF
:086F48006F43030193DB00C05D
:086F500001A201016AFC0147E6
:086F58001B0201471BFE016F43
:086F600083020193DB00C00174
:086F6800A201016AFC01471BB4
:086F700002018E9B86C0018E18
:086F78005B04C1018E1B8CC1FA
:086F800001471B0801F2018E1C
:086F88005A84C0019E5A04C1A5
:086F9000013FDE01471BF8017F
:086F9800939B06C0019E1B8CB7
:086FA000C1019E9B86C0019E09
:086FA8005B04C15070FCFF0006
:086FB000019D1A0601A79B06D2
:086FB800014DDB86000193DBB3
:086FC00002C00186DA00C201E3
:086FC800A7C3020182CB0020E7
:086FD00001000302301F01471C
:086FD8001BFE0182CB00200129
:086FE00093DB00C001A20101D6
:086FE8006AFC01471B0201478E
:086FF0008B00013FD60186DB96
:086FF80002C001A7DA060186C0
:087000009B06C0018E9B86C0B7
:08700800018E5B04C1018E1B27
:087010008CC101471B0801F2CD
:08701800018E5A84C0019E5A4A
:0870200004C1013FD001471B30
:08702800F801939B06C0019ED4
:087030001B8CC1019E9B86C070
:08703800019E5B04C15070FCD5
:08704000FF00019D9A2101A748
:087048009B0601471BFE0186B7
:08705000DA00C20193DB00C06D
:0870580001A201936FFC014746
:087060001B0201A201276FFCD5
:0870680001A7DA0601869B0670
:08707000C0018E9B86C0018E59
:087078005B04C1018E1B8CC1F9
:0870800001471B0801F2018E1B
:087088005A84C0019E5A04C1A4
:08709000013FD50000000000E3
:087098000000000000000000F0
:0870A00001F7200301935F00DA
:0870A80011200301939F8011E8
:0870B00020030193DF00122010
:0870B8000301931F8112200364
:0870C00001935F01132003019D
:0870C800939F81132003019343
:0870D000DF0114200301931FEE
:0870D8008214200301935F0202
:0870E00015200301939F8215A6
:0870E80020030193DF021620D2
:0870F0000301931F8316200326
:0870F80001935F03172003015F
:08710000939F83172003019304
:08710800DF0318200301931FAF
:087110008418200301935F04C1
:0871180019200301939F841963
:0871200020030193DF041A2093
:087128000301931F851A2003E7
:0871300001935F051B20030120
:08713800939F851B20030193C6
:08714000DF051C200301931F71
:08714800861C200301935F0681
:087150001D200301939F861D21
:0871580020030193DF061E2055
:0871600005019E5F08192005DE
:08716800019E9F88192005011A
:087170009EDF081A2005019EB4
:087178001F891A2005019E5F2A
:08718000091B2005019E9F89F7
:087188001B2005019EDF091C1C
:087190002005019E5F0A1D208D
:0871980005019E9F8A1D2005E0
:0871A000019EDF0A1E2005011B
:0871A8009E1F8B1E2005019EB5
:0871B0005F0B1F2005019E9FEB
:0871B8008B1F2006019EDF0B76
:0871C000002005019E5F04118F
:0871C8002005019E9F841120A7
:0871D00005019EDF04122005F9
:0871D800019E1F851220050134
:0871E0009E5F05132005019ECE
:0871E8009F85132005019EDFC5
:0871F00005142005019E1F8615
:0871F800142005019E5F06153D
:087200002005019E9F86152068
:0872080005019EDF06162005BA
:08721000019E5F071720050134
:087218009E9F87172006019ECE
:087220001F8C004016C00001A4
:087228006F1B8E01A980090112
:087230009DEEFF01A9400801D9
:087238009DE9FF5000D0FF00AA
:08724000019D25003000100142
:087248009D2D0001471BF80118
:08725000939B06C0019E1B8CFC
:08725800C1019E9B86C0019E4E
:087260005B04C15077FCFF0044
:08726800019D1AC401A79B0659
:0872700001471BF8014DDB068C
:08727800030193DB02C0019346
:087280001B83C001935B03C1F5
:0872880001939B83C10193DB1C
:0872900003C201931B84C2013B
:08729800A201E5BCFC01A7C145
:0872A00000012003000632ADDD
:0872A80001A201FDBCFC01A7DD
:0872B000C10001A7C38001A782
:0872B800030301A201F1BCFC7B
:0872C00040F00A010186C082C2
:0872C8002201010B12323C010E
:0872D000471BFC016F033201B2
:0872D80093DB80C04046000179
:0872E000016F03960193DB002E
:0872E800C001A201207FFC019E
:0872F000A7C1000102032230D6
:0872F8006E20060180CBF02698
:0873000001A7C38001A70304EB
:0873080020060180CB002701E3
:08731000A7C38001A7C303011C
:0873180047500020060180CB64
:08732000102701A7C38001132F
:08732800D000366F10000113C4
:08733000D00332301B200601DE
:08733800900BF4260140D03255
:087340001001A70C8301A70C4A
:08734800C32006019003232776
:0873500001471BFE404600014D
:08735800016F03960193DB00B5
:08736000C001A201907FFC01B5
:0873680022CC0123303620067F
:087370000180CBC026010703D8
:08737800736F0300726F430004
:0873800001A7C38001020323F1
:08738800A8480001A9810C01D5
:08739000A87600015441100031
:0873980030FFFC015341F0FF3E
:0873A00001A9810D2006018006
:0873A8000BD1260153C4400083
:0873B0000102032230F5012364
:0873B8004C0833305B016F0E3D
:0873C0000001240E0246304DCD
:0873C80001584E3040014C0B4E
:0873D000416B01B2C430200141
:0873D80025C3FF5230370158B4
:0873E0004E60400140C652104E
:0873E8002006018245412B0142
:0873F0005805434040C017019D
:0873F800014CC4000001A74391
:08740000032002016FC380208C
:08740800080193CD8028014723
:087410004E00013FAC01309376
:0874180001240C0B42300701B6
:08742000248C06433085202076
:08742800016F040040C01701D0
:08743000014CC4000001A74358
:08743800032002016F05800131
:08744000260C0B626F060562C9
:087448003008016F870601A75F
:08745000870101408541100194
:087458004DDB86000193DB000F
:08746000C0014DDB8600019321
:087468001B01C0014DDB860091
:0874700001935B01C001A201C0
:08747800214BFC01865B01C001
:0874800001471B0201861B01FC
:08748800C001471B020186DB75
:0874900000C001471B0201A727
:08749800810101580658400172
:0874A00050443104200801935F
:0874A800CD8028200601800BB5
:0874B000D1260153C4200001A4
:0874B800020322304E01224CB8
:0874C0000323304740360001B0
:0874C8000182C08029012303A9
:0874D0000037303701471BF8BB
:0874D800016FC3FF0193DB808B
:0874E000C1016FC3FF0193DB42
:0874E80000C1016FC3FF019315
:0874F000DB80C0403600010101
:0874F80082C080290193DB0032
:08750000C001A201ED3EFC01F7
:08750800471B08404600010189
:0875100082C0002601210300E6
:0875180017303701471BF80191
:087520006FC3FF0193DB80C182
:08752800016FC3FF0193DB00BA
:08753000C1016FC3FF0193DBF1
:0875380080C040460001018201
:08754000C000260193DB00C02E
:0875480001A201ED3EFC014728
:087550001B08013D4201861BEE
:0875580084C20186DB03C201BD
:08756000869B83C101865B03D9
:08756800C101861B83C00186EE
:08757000DB02C001A7DA0601ED
:08757800869B06C0018E9B8674
:08758000C0018E5B04C1018E05
:087588001B8CC1200301865F8A
:087590000011200301869F8019
:087598001120030186DF00123F
:0875A000200301861F81122067
:0875A8000301865F01132003BB
:0875B00001869F8113200301F5
:0875B80086DF011420030186A7
:0875C0001F8214200301865F05
:0875C8000215200301869F82D9
:0875D0001520030186DF0216FD
:0875D800200301861F83162029
:0875E0000301865F031720037D
:0875E80001869F8317200301B7
:0875F00086DF03182003018669
:0875F8001F8418200301865FC7
:087600000419200301869F8498
:087608001920030186DF041ABA
:08761000200301861F851A20EA
:087618000301865F051B20033E
:0876200001869F851B20030178
:0876280086DF051C200301862A
:087630001F861C200301865F88
:08763800061D200301869F8658
:087640001D20030186DF061E78
:087648002005018E5F081920E6
:0876500005018E9F8819200539
:08765800018EDF081A20050174
:087660008E1F891A2005018E1E
:087668005F091B2005018E9F44
:08767000891B2005018EDF09D2
:087678001C2005018E5F0A1DB4
:087680002005018E9F8A1D20E8
:0876880005018EDF0A1E20053A
:08769000018E1F8B1E20050175
:087698008E5F0B1F2005018E1F
:0876A0009F8B1F2006018EDF05
:0876A8000B002005018E5F04B8
:0876B000112005018E9F8411D9
:0876B8002005018EDF04122001
:0876C00005018E1F8512200553
:0876C800018E5F05132005018E
:0876D0008E9F85132005018E39
:0876D800DF05142005018E1FDF
:0876E00086142005018E5F06EF
:0876E800152005018E9F861597
:0876F0002005018EDF061620C3
:0876F80005018E5F0717200554
:08770000018E9F87172006018E
:087708008E1F8C0001F701F453
:08771000018E5A84C0019E5A4B
:0877180004C1013E3801471BCA
:08772000F801939B06C0019ED5
:087728001B8CC1019E9B86C071
:08773000019E5B04C15078FCCE
:08773800FF00019DDA0201A728
:087740009B0601471BFC014DF3
:08774800DB86010193DB02C0A6
:0877500001931B83C001935B50
:0877580003C1016F0C0001A741
:087760004C0301A2018808FCA2
:0877680001A7C10001A7C30243
:0877700001471BFC016F03320D
:087778000193DB80C0404600D4
:0877800001016F03960193DB88
:0877880000C001A201207FFCFA
:0877900001A7C1000100030282
:08779800303520060180CBF022
:0877A0002601A7C38001A743E5
:0877A8000320060180CB00273D
:0877B00001A7C38001A7030338
:0877B80001471BFE40460001E1
:0877C000016F03960193DB0049
:0877C800C001A201907FFC0149
:0877D000100D03036FC1FF035C
:0877D8003004016F010001867D
:0877E0005B03C101861B83C09D
:0877E8000186DB02C001A7DAF3
:0877F0000601869B06C0018E14
:0877F8009B86C0018E5B04C1F9
:08780000018E1B8CC101471B26
:087808000801F2018E5A84C050
:08781000019E5A04C1013FC6AC
:0878180001471BF801939B06D8
:08782000C0019E1B8CC1019EFA
:087828009B86C0019E5B04C1B8
:087830005079FCFF00019D1AD4
:087838004E01A79B0601471B4E
:08784000FC014DDB060201937F
:08784800DB02C001931B83C0A9
:0878500001935B03C101939B4E
:0878580083C101A2018808FCB4
:0878600001A7C10001A7030309
:08786800016F0D0001471BFC3C
:08787000016F03320193DB807C
:08787800C040460001016F034E
:08788000960193DB00C001A298
:0878880001207FFC01A7C100F3
:0878900001000302306C200628
:087898000180CCF02601A7C31A
:0878A0008001A783032006010B
:0878A80080CC002701A7C3807A
:0878B00001A7C3020111CE0281
:0878B800123030014CCC2067B6
:0878C00001B0C3322001A7C38F
:0878C8008001A7430301474BB7
:0878D0000020060180CC102706
:0878D80001A7C3800112CB00DF
:0878E000266F0B002006019049
:0878E800CC022701471BFE4002
:0878F000460001016F0396013F
:0878F80093DB00C001A2019026
:087900007FFC01A74D00018688
:087908009B83C101865B03C1F2
:0879100001861B83C00186DB28
:0879180002C001A7DA06018696
:087920009B06C0018E9B86C08E
:08792800018E5B04C1018E1BFE
:087930008CC101471B0801F2A4
:08793800018E5A84C0019E5A21
:0879400004C1013FC100000079
:08794800000000000000000037
:0879500001471BF801939B069F
:08795800C0019E1B8CC1019EC1
:087960009B86C0019E5B04C17F
:08796800507CFCFF00019D9A18
:087970003701A79B0601471B2C
:08797800F6014DDB86020193CC
:08798000DB02C001931B83C070
:0879880001935B03C101939B15
:0879900083C10193DB03C22057
:0879980006016F4D9B20060162
:0879A0006F0F9B40460001013E
:0879A80086C000270100030363
:0879B000302801471BFE404690
:0879B8000001016F0398019327
:0879C000DB00C001A2014C35FF
:0879C800FC01471B02016F43A3
:0879D00000404600010193C0D4
:0879D800002701A2018808FC50
:0879E00001A7C10001A7C302C9
:0879E80001A2011D77FC01A7BB
:0879F000C10001200300073073
:0879F8006020060180CBE026AF
:087A000001210300126FC1FF18
:087A080012329C01471BF680BD
:087A1000FFFFFFFFFFFF7F01F4
:087A18006FC3FF0193DB00C204
:087A2000014CDA80DD0193DB6B
:087A280080C1014CDA00DE010F
:087A300093DB00C1014CDA8078
:087A3800DE0193DB80C0404633
:087A400000010182C0002601D3
:087A480093DB00C001A201BAAA
:087A500042FC01471B0A013F43
:087A58008F01A2011878FC0166
:087A6000A7C1000153C3F00FA0
:087A68000153C3F00F01A783D5
:087A70000301200E3C0230343A
:087A780001200E380230390133
:087A8000200E0502304D01202B
:087A88004E1602307B0120CEF6
:087A90001D0230A901200E16B1
:087A98000230B401208E1F0230
:087AA00030BF01204E0402304A
:087AA800CA0130FC016FC3FFAD
:087AB00001C0CF32200131ECCE
:087AB80001B0CD32200154C3DE
:087AC000000801C0CD322001D5
:087AC800B0CD322001A7C380FC
:087AD0000131D101B0CF3220D9
:087AD800012103001730120127
:087AE000B0CD32200154C34077
:087AE8000001C0CD3220013085
:087AF0000F01B0CD322001535B
:087AF800C3B0FF01C0CD322034
:087B000001C0CF022001319CFD
:087B080001B0CF32200121037E
:087B10000017301201B0CD3264
:087B1800200154C3100001C05C
:087B2000CD322001300F01B04D
:087B2800CD32200153C3E0FF40
:087B300001C0CD322001C0CFDD
:087B3800022001316701B0CD0C
:087B400032200155C3000101D0
:087B4800C0CD322001315501CE
:087B5000B0CD32200155C30045
:087B58000201C0CD3220013111
:087B60004301B0CD32200155B4
:087B6800C3000401C0CD32206E
:087B700001313101B0CF3220D8
:087B7800012103001730120186
:087B8000B0CD32200154C320F6
:087B88000001C0CD32200130E4
:087B90000F01B0CD32200153BA
:087B9800C3D0FF01C0CD322073
:087BA00001C0CF02200130FCFE
:087BA80001214E0313303501E9
:087BB000B0CD42200153C420B6
:087BB800000101031230250158
:087BC000B0CF322001210300C7
:087BC80013301940F00A01011D
:087BD00086C0002501474300B7
:087BD80040F00A010193C00016
:087BE000250130C001B0CF32D5
:087BE8002001020323C0CF02BB
:087BF000202330B001B0CD42AA
:087BF8002001A704810153C420
:087C00000008010303323031DA
:087C080001B0CD32200153C38D
:087C1000F0F701C0CD322001A4
:087C1800B0CD322001A7C380AA
:087C200050BCFCFF000180CE06
:087C2800502601A7C38001A74B
:087C3000030301A74C00013021
:087C38006E01B0CD42200153A2
:087C4000C440000104034230BE
:087C48001950BBFCFF00018094
:087C5000CE503E01A7C38001E4
:087C5800A7030301A74C000182
:087C6000304501B0CD422001C6
:087C680053C410000105035292
:087C7000301950BAFCFF0001BD
:087C780080CE502E01A7C3804D
:087C800001A7030301A74C005A
:087C880001301C50B9FCFF00A3
:087C90000180CE503E01A7C3A4
:087C98008001A7030301A74CC2
:087CA00000013003013D410128
:087CA80086DB03C201869B8309
:087CB000C101865B03C10186DE
:087CB8001B83C00186DB02C042
:087CC00001A7DA0601869B060C
:087CC800C0018E9B86C0018EF5
:087CD0005B04C1018E1B8CC195
:087CD80001471B0801F2018EB7
:087CE0005A84C0019E5A04C140
:087CE800013FBC01471BF8013C
:087CF000939B06C0019E1B8C52
:087CF800C1019E9B86C0019EA4
:087D00005B04C1507DFCFF0093
:087D0800019D1A5A01A79B0618
:087D100001471BFE014DDB865B
:087D1800000193DB02C001A28F
:087D2000018808FC01A7C10065
:087D280001A7C302016F430033
:087D300020060190CBE02601C2
:087D3800A2015079FC01A7C172
:087D40000001A743000186DBEE
:087D480002C001A7DA06018662
:087D50009B06C0018E9B86C05A
:087D5800018E5B04C1018E1BCA
:087D60008CC101471B0801F270
:087D6800018E5A84C0019E5AED
:087D700004C1013FD001471BD3
:087D7800F801939B06C0019E77
:087D80001B8CC1019E9B86C013
:087D8800019E5B04C1507DFC6B
:087D9000FF00019D9A7B01A791
:087D98009B0601471BFE014D93
:087DA000DB86000193DB02C049
:087DA80001A2018808FC01A7FB
:087DB000C10001A7C302200677
:087DB80001900BE02601A2017D
:087DC0005079FC01A7C100018C
:087DC800A743000186DB02C0A5
:087DD00001A7DA0601869B06FB
:087DD800C0018E9B86C0018EE4
:087DE0005B04C1018E1B8CC184
:087DE80001471B0801F2018EA6
:087DF0005A84C0019E5A04C12F
:087DF800013FD0000000000073
:087E000001471BF8019E1B8CD9
:087E0800C101A85C00018E1B02
:087E10008CC101471B0801F2BF
:087E180001471BF801939B06D2
:087E2000C0019E1B8CC1019EF4
:087E28009B86C0019E5B04C1B2
:087E3000507EFCFF00019DDA09
:087E3800A001A79B060186DAF8
:087E400000C20120C33F09301C
:087E48001C0186DA80C2012052
:087E5000030002301001869AC4
:087E580000C201865A80C2013C
:087E6000A2018106FC01A7DA72
:087E68000601869B06C0018E95
:087E70009B86C0018E5B04C17A
:087E7800018E1B8CC101471BA8
:087E80000C01F2018E5A84C0CE
:087E8800019E5A04C1013FD51F
:087E900001471BF8019E1B8C49
:087E9800C1019E9B86C0019E02
:087EA0005B04C1507FFCFF00F0
:087EA800019DDAC201471BFC39
:087EB000016FC3010193DB80A7
:087EB800C0500FDCFF00016F58
:087EC00003F80193DB00C0018F
:087EC800A201F0A6FC01471B1A
:087ED0000401471BFC016FC314
:087ED800030193DB80C0500F91
:087EE000DCFF00016F03F20159
:087EE80093DB00C001A201F0D0
:087EF000A6FC01471B04018EF2
:087EF8009B86C0018E5B04C1F2
:087F0000018E1B8CC101471B1F
:087F08000801F2018E5A84C049
:087F1000019E5A04C1013FDE8D
:087F1800000000000000000061
:087F200001471BF801939B06C9
:087F2800C0019E1B8CC101A7E2
:087F30009B06016F41000130C6
:087F38003701865A00C20186E0
:087F40009A80C201000202A7B1
:087F48004000023023014D82CC
:087F50001000018BC1002001AB
:087F580000030730070110C30C
:087F600007023008018CC10783
:087F680020033FD7016F410027
:087F700001A7DA0601869B0659
:087F7800C0018E1B8CC1014702
:087F80001B0C01F200000000DF
:087F88000000000000000000F1
:087F900001471BF801939B0659
:087F9800C0019E1B8CC101A772
:087FA0009B0601865A00C20194
:087FA8006FC2FF01938100206C
:087FB00001A7DA0601869B0619
:087FB800C0018E1B8CC10147C2
:087FC0001B0A01F200000000A1
:087FC8000000000000000000B1
:087FD00001471BF801939B0619
:087FD800C0019E1B8CC101A732
:087FE0009B0601471BFE014D49
:087FE800DB06010193DB02C07E
:087FF00001931B83C040C82768
:087FF80001016F0C08016FC3C9
:08800000FF01A7C3020186CCB9
:088008000020012003150630E1
:088010002101860C012001583A
:0880180044304040C82701017B
:0880200086C382220186CC0018
:0880280020014743000193CC45
:08803000002001A74B000186AE
:088038001B83C00186DB02C0BE
:0880400001A7DA0601869B0688
:08804800C0018E1B8CC1014731
:088050001B0801F201471BF8B7
:0880580001939B06C0019E1B71
:088060008CC1019E9B86C0014A
:088068009E5B04C15080FCFF87
:0880700000019D1A3A01A79BD3
:088078000601471BFE014DDB70
:0880800086000193DB02C04001
:08808800C827010186C0002297
:088090000120031506302A014E
:08809800A201D07FFC01A7C189
:0880A0000001A7C39001A7C372
:0880A8000201210B081330074F
:0880B0000121CBFF1330070191
:0880B800A74B00013007013F56
:0880C000C6016FC1FF0186DB60
:0880C80002C001A7DA060186DF
:0880D0009B06C0018E9B86C0D7
:0880D800018E5B04C1018E1B47
:0880E0008CC101471B0801F2ED
:0880E800018E5A84C0019E5A6A
:0880F00004C1013FD0000000B3
:0880F800000000000000000080
:0881000001471BF801939B06E7
:08810800C0019E1B8CC1019E09
:088110009B86C0019E5B04C1C7
:088118005082FCFF00019D1ADA
:088120008D01A79B0601471B1E
:08812800FA014DDB8601019311
:08813000DB02C001931B83C0B8
:0881380001935B03C1016F0C10
:0881400000016F0D0001A20116
:088148005480FC40C82701012E
:0881500086C00022014DC3109E
:088158000040C827010193C09B
:088160000022016F4300010041
:088168000302309B01A201D0CB
:088170007FFC01A7C10001A77B
:08817800C39001A7C30201211D
:088180000B0C1B301D01214B0B
:088188000E19301601580C41DC
:0881900040014D4B01030150B9
:0881980044310401A7030301B7
:0881A000305901224B102B3075
:0881A8001D01228B1129301684
:0881B00001580C4140014C4B49
:0881B80091FC01504431040167
:0881C000A70303013035012380
:0881C8004B183B301D01238B15
:0881D0001939301601580C4169
:0881D80040014C4B91FA0150EB
:0881E00044310401A70303016F
:0881E80030110186DA00C2012A
:0881F0009303032001A74D00D9
:0881F80001300C014CCD100018
:0882000001A74303013F5B01EC
:08820800865B03C101861B83A4
:08821000C00186DB02C001A7DA
:08821800DA0601869B06C00195
:088220008E9B86C0018E5B04F9
:08822800C1018E1B8CC101474E
:088230001B0A01F2018E5A84C1
:08823800C0019E5A04C1013F80
:08824000C60000000000000070
:0882480000000000000000002E
:0882500001471BF801939B0696
:08825800C0019E1B8CC1019EB8
:088260009B86C0019E5B04C176
:088268005083FCFF00019D5A48
:08827000D301A79B0601471B87
:08827800FA014DDB060201933F
:08828000DB02C001931B83C067
:0882880001935B03C101939B0C
:0882900083C10186DA00C2017E
:08829800A7830301200E000280
:0882A0006F0100023075016F4F
:0882A8000B00016F0C000147FF
:0882B0001BFE01A201D07FFCBE
:0882B80001A7C10001A7C3905A
:0882C00001A7430301935B03D6
:0882C800C001A201A89AFC010B
:0882D000471B0201A7C10001D8
:0882D800000302301E016F04D7
:0882E000F4014A8BA1000140EA
:0882E80046531001404431101F
:0882F00001A7C30201474C0085
:0882F800013FB340C82701015A
:0883000086C00022014DC310EC
:088308000040C827010193C0E9
:0883100000220193CE022001BE
:08831800A74C0001869B83C104
:0883200001865B03C101861B0D
:0883280083C00186DB02C001E5
:08833000A7DA0601869B06C0D6
:08833800018E9B86C0018E5BE3
:0883400004C1018E1B8CC10178
:08834800471B0A01F2018E5AE5
:0883500084C0019E5A04C10122
:088358003FC10000000000001D
:0883600001471BF801939B0685
:08836800C0019E1B8CC1019EA7
:088370009B86C0019E5B04C165
:088378005086FCFF00019D9AF4
:088380008801A79B0601471BC1
:08838800F0014DDB86010193B9
:08839000DB02C001931B83C056
:0883980001935B03C1014DDB01
:0883A0000601019E1B06C0014D
:0883A8009E5B86C0014CDA0067
:0883B000DE01A743035081FC2C
:0883B800FF00019D1840507FF9
:0883C000FCFF00019D19F4010E
:0883C800A09101A7C10001A76B
:0883D000C39001A70303012083
:0883D8000C1902301F01200CFA
:0883E0001D0230560120CC1AE9
:0883E80002305C01208C1A0236
:0883F00030D30120CC1C023047
:0883F800F30131E701471BF618
:08840000016F03000193DB0092
:08840800C2016F03000193DBC8
:0884100080C1016F030001931C
:08841800DB00C1016F0300014C
:0884200093DB80C0016F03082B
:088428000193DB00C001A20179
:08843000B01CFC01471B0A010E
:0884380031A901A2015053FC1F
:08844000016F01000131A001F0
:08844800A09101A7C10001A7EA
:08845000C39001A70303012101
:088458004C1A13302901A09118
:0884600001A7C10001A7C390B0
:0884680001A7030301220C1B14
:0884700023301301A09101A7C4
:08847800C10001A7C39001A798
:08848000030301230C1B01475B
:088488001BFE014CDA80DE014D
:0884900093DB00C001A0810193
:08849800A7C10001A7C3020106
:0884A000210B00143018014704
:0884A8001BFE0186DA80DE01F3
:0884B00093DB00C001A201E012
:0884B80019FC01471B02016FD2
:0884C000010001312201471BFC
:0884C800FE01935B03C001A05B
:0884D0008101A7C10001A7C34F
:0884D8000201210B001586CD05
:0884E000002015A9C30415A03A
:0884E800310130F701A0910100
:0884F000A7C10001A7C3900120
:0884F800A7030301210C1D1371
:0885000030E101471BFE014CB4
:08850800DA80DD0193DB00C005
:0885100001A2015082FC01A749
:08851800C10001A7C30201220A
:088520000B002430BE01471BD3
:08852800FE014CDA00DD0193B5
:08853000DB00C001A201508232
:08853800FC01A7C10001A7C36B
:088540000201220B0024309B14
:0885480001471BFE01935B03D8
:08855000C001A08101A7C100D8
:0885580001A7C30201220B0080
:0885600024308001471BFE01DD
:088568004CDA80DC0193DB001A
:08857000C001A08101A7C100B8
:0885780001A7C30201220B0060
:0885800024306001471BFE01DD
:088588004CDA00DC0193DB007A
:08859000C001A08101A7C10098
:0885980001A7C30201220B0040
:0885A00024304001471BF601E5
:0885A80086DA00DC0193DB0020
:0885B000C20186DA80DC0193B0
:0885B800DB80C10186CD00202B
:0885C0000193DB00C10186DA22
:0885C80000DD0193DB80C0011E
:0885D00086DA80DD0193DB0077
:0885D800C001A201B01CFC016E
:0885E000471B0A016F010001B5
:0885E8008E5B86C0018E1B06AC
:0885F000C001471B0401865B7A
:0885F80003C101861B83C001D1
:0886000086DB02C001A7DA06C7
:0886080001869B06C0018E9B58
:0886100086C0018E5B04C1016C
:088618008E1B8CC101471B08F9
:0886200001F2018E5A84C00131
:088628009E5A04C1013FB80194
:08863000471BF8019E1B8CC1E1
:08863800019E9B86C0019E5BC0
:0886400004C15086FCFF00019B
:088648009D5AA940C827010159
:088650009300002240C827013D
:088658000182C0802201200311
:088660000903301E40C8270188
:08866800016F030A0182C32027
:08867000200120830F026F833B
:088678000040C827010293C075
:08868000002201A2016083FC4D
:0886880001A7C10001A7430096
:08869000018E9B86C0018E5B88
:0886980004C1018E1B8CC1011D
:0886A000471B0801F2018E5A8C
:0886A80084C0019E5A04C101C7
:0886B0003FDE01471BF8019EAB
:0886B8001B8CC101471BFE01F0
:0886C000939B01C0016FC6008D
:0886C80001A5CD0A01580112C1
:0886D0004C01869B01C001472B
:0886D8001B02018E1B8CC10185
:0886E000471B0801F201471BD2
:0886E800F8019E1B8CC1014743
:0886F0001BFE01939B01C00178
:0886F8006FC60001A5CD0A01C7
:08870000A741C001869B01C0E6
:0887080001471B02018E1B8CCE
:08871000C101471B0801F20141
:08871800471BF801939B06C00A
:08872000019E1B8CC1019E9B10
:0887280086C0019E5B04C150F4
:0887300088FCFF00019DDA2F17
:0887380001A79B0601471BF697
:08874000014DDB06020193DB91
:0887480002C001931B83C00174
:08875000935B03C101939B83BD
:08875800C15000D0FF00016FC9
:08876000030001A78303014798
:088768001BFE2008016F040054
:088770004018C000014CC400D8
:08877800800193DB00C001A2A7
:08878000014A59FC01471B02EC
:0887880001471BFE50F2FCFF4B
:0887900000016F038F0193DB70
:0887980000C001A2011F96FCC4
:0887A00001471B0201A2019E2A
:0887A80095FC01A7C10001A727
:0887B000C39001A7030301209F
:0887B8004C0302301201471BC3
:0887C000FE01931B03C001A29E
:0887C800014090FC013FD501C6
:0887D000A201B286FC01A7C161
:0887D8000001A7C38001A743C3
:0887E0000301A201E586FC0182
:0887E800A7C10001A7C3800135
:0887F00093DA00DE016F0B00BB
:0887F80001200B1506305C01A5
:08880000584B3040014DDB86AE
:08880800000193DB00C00147F1
:088810001BFE014ACD410501E8
:0888180040C7621001588650B0
:088820004001B44E5120015348
:0888280005F13F01931B01C0A3
:0888300001A2017F0400018692
:08883800DB00C001471B020137
:08884000A7010101A704910149
:08884800A704D140C82701017B
:088850009103812201474B0056
:08885800013F9D01471BFC409C
:08886000C82701016F030A01A2
:0888680093DB80C050F2FCFF1D
:0888700000016F038C0193DB92
:0888780000C001A2011F96FCE3
:0888800001471B0401A2012FB6
:0888880086FC013EFB01869B0A
:0888900083C101865B03C101F5
:08889800861B83C00186DB0290
:0888A000C001A7DA0601869B66
:0888A80006C0018E9B86C00191
:0888B0008E5B04C1018E1B8CDC
:0888B800C101471B0801F20198
:0888C0008E5A84C0019E5A0487
:0888C800C1013FC100000000E6
:0888D00001471BF801939B0610
:0888D800C0019E1B8CC101A729
:0888E0009B0601865A80C101CC
:0888E800869A00C201A9010AF1
:0888F00001A9420A01A7DA0602
:0888F80001869B06C0018E1BE6
:088900008CC101471B0C01F2C0
:0889080001471BF801939B06D7
:08891000C0019E1B8CC101A7F0
:088918009B0601471BFC014D09
:08892000DB86010193DB02C0BC
:0889280001931B83C001935B66
:0889300003C10186DA00C20157
:08893800A703030153CCF00179
:0889400001A7430301584C415B
:0889480044015844304001A72E
:08895000C3020158CB50404066
:088958004E00010186450125D6
:0889600001584D6040015885EB
:0889680041040153C430000179
:08897000A7430001865B03C16F
:0889780001861B83C00186DBB0
:0889800002C001A7DA0601861E
:088988009B06C0018E1B8CC18F
:0889900001471B0801F2014739
:088998001BF801939B06C001CE
:0889A0009E1B8CC1019E9B8609
:0889A800C0019E5B04C1508A6E
:0889B000FCFF00019DDAAF019C
:0889B800A79B0601471BFC010F
:0889C0004DDB86010193DB028F
:0889C800C001931B83C0019361
:0889D0005B03C10186DA00C25D
:0889D80001A703030153CCF0D9
:0889E0000101A7430301584CFB
:0889E8004144015844304001F4
:0889F000A7C3020158CB30407F
:0889F800016FC60001584D702B
:088A0000400158C6510001A716
:088A080005B1404E000101869A
:088A100043012501500551004E
:088A1800404E000101934301EF
:088A2000250158CB304001860E
:088A28009A81C201534631009E
:088A300001584D60400158851A
:088A38004100404E00010186DF
:088A400043012501500551041A
:088A4800404E000101934301BF
:088A50002501471BFC0186DA39
:088A580001C3015387F13F0146
:088A60005886514001861A827C
:088A6800C30153C8710001585D
:088A7000C7604001508541047C
:088A78000154C460000193DB0E
:088A800080C001580C344001D4
:088A880093DB00C001A201D044
:088A900088FC01865B03C101B3
:088A9800861B83C00186DB028E
:088AA000C001A7DA0601869B64
:088AA80006C0018E9B86C0018F
:088AB0008E5B04C1018E1B8CDA
:088AB800C101471B0801F20196
:088AC0008E5A84C0019E5A0485
:088AC800C1013FC601471BF884
:088AD00001939B06C0019E1BEF
:088AD8008CC1019E9B86C001C8
:088AE0009E5B04C1508BFCFFFA
:088AE80000019D5ADF01A79B6C
:088AF00006014DDB06010193B4
:088AF800DB02C001931B83C0E7
:088B00000186DA00C201A7C3DF
:088B0800020186DA00C301A797
:088B1000030301200C000830F2
:088B18003C01471BF80186DA5D
:088B200000C40193DB80C101D8
:088B280086DA80C30193DB0033
:088B3000C10186DA80C2019345
:088B3800DB80C00193DB02C0E9
:088B400001A101000001471B27
:088B480008014D0C1300014768
:088B50004B00013FBD01861B33
:088B580083C00186DB02C001AD
:088B6000A7DA0601869B06C09E
:088B6800018E9B86C0018E5BAB
:088B700004C1018E1B8CC10140
:088B7800471B1201F2018E5AA5
:088B800084C0019E5A04C101EA
:088B88003FCB01471BF80193EC
:088B90009B06C0019E1B8CC175
:088B9800019E9B86C0019E5B5B
:088BA00004C1508CFCFF000130
:088BA8009D5A2401A79B060160
:088BB000471BFA014DDB060230
:088BB8000193DB02C001931BD5
:088BC00083C001935B03C101B6
:088BC800939B83C12008016F9B
:088BD0000E00405E0001018669
:088BD800C0022501108B030A05
:088BE000307901471BFE0193EF
:088BE800DB02C001A2010889B3
:088BF000FC01471B0201A7C1B3
:088BF8000001210300133054B9
:088C000001861A03C201A74B13
:088C08000301471BFE0193DB91
:088C100002C001A2010889FC69
:088C180001471B0201A7C10086
:088C20000122030023301701BB
:088C2800220C0028301001129B
:088C30008B032B474B002B4D79
:088C38000C13002B3FCB0122BD
:088C40000C0028A74D002830AC
:088C48001601128B032A6F01D3
:088C5000002A300B01474B0024
:088C5800013F80016F010001E2
:088C6000869B83C101865B03C2
:088C6800C101861B83C00186D7
:088C7000DB02C001A7DA0601D6
:088C7800869B06C0018E9B865D
:088C8000C0018E5B04C1018EEE
:088C88001B8CC101471B080110
:088C9000F2018E5A84C0019E1E
:088C98005A04C1013FC101476C
:088CA0001BF801939B06C001C3
:088CA8009E1B8CC101A79B0675
:088CB000014DDB86000193DB9E
:088CB80002C00186DA00C201CE
:088CC000A7C30230FF000147C9
:088CC800CBFF3000FF0153CB8C
:088CD000020001A74B00018620
:088CD800DB02C001A7DA06016E
:088CE000869B06C0018E1B8C6F
:088CE800C101471B0A01F20063
:088CF00001471BF801939B06EC
:088CF800C0019E1B8CC1019E0E
:088D00009B86C0019E5B04C1CB
:088D0800508FFCFF00019D9A51
:088D1000C001A79B0601471BEF
:088D1800F6014DDB8603019317
:088D2000DB02C001931B83C0BC
:088D280001935B03C101939B61
:088D300083C10193DB03C201C2
:088D3800931B84C201935B044C
:088D4000C30186DA80C201A71D
:088D480043030186DA00C301B8
:088D5000A783030186DA00C2CB
:088D580001A70304405E0001C5
:088D60000180C0802501000321
:088D68000230A2405E0001018F
:088D70009000802501471BFA69
:088D78002010016F03000193BC
:088D8000DB00C1016F030001DB
:088D880093DB80C0404E0001A6
:088D9000016F03940193DB0065
:088D9800C001A201BCA1FC0115
:088DA000471B06016F030001EF
:088DA800A7430401471BFE0173
:088DB000935B04C001A2019EC7
:088DB8008CFC01A7C10001A71A
:088DC000430401581144440171
:088DC8004CC4800001A7030365
:088DD000200801200C000A300C
:088DD8003401931A80DE0186CC
:088DE000DA80DE011103031625
:088DE80030110186DA80DE0182
:088DF0004743000193DA80DE25
:088DF800013FE3405E000101B0
:088E00009300032540C827017F
:088E0800019300032F01471B39
:088E1000FE01931B04C001A246
:088E1800019E8CFC01A7C100C2
:088E200001A70304012010006A
:088E2800026F0100023092010B
:088E30005810344401A7C303EC
:088E380001471BFE0193DB035F
:088E4000C001A2018A8BFC01B4
:088E4800471B0201A7C1000154
:088E5000A7C30201200B000280
:088E58006F01000230630147C5
:088E60001BF601939B03C20104
:088E6800935B83C10193DB035E
:088E7000C1016F43000193DB17
:088E780080C00193DB02C00180
:088E8000A101000001471B0ADB
:088E880001471BF801939B83D5
:088E9000C101935B03C1016FF6
:088E980083000193DB80C0019F
:088EA00040CB4310014DC4104A
:088EA800000193DB00C001A2F0
:088EB000019689FC01471B0833
:088EB80001580B344001A743EF
:088EC0000001865B04C301867A
:088EC8001B84C20186DB03C21A
:088ED00001869B83C101865B52
:088ED80003C101861B83C001E8
:088EE00086DB02C001A7DA06DF
:088EE80001869B06C0018E9B70
:088EF00086C0018E5B04C10184
:088EF8008E1B8CC101471B0E0B
:088F000001F2018E5A84C00148
:088F08009E5A04C1013FB201B1
:088F1000471BF801939B06C00A
:088F1800019E1B8CC1019E9B10
:088F200086C0019E5B04C150F4
:088F280090FCFF00019D1A0BF3
:088F300001A79B0601471BFC91
:088F3800014DDB86010193DB12
:088F400002C001931B83C00174
:088F4800935B03C10186DA000E
:088F5000C201A7430330FF003A
:088F58000153CDF0FF012003DD
:088F60000003309B01580D34A1
:088F68004401A7C302405E00B2
:088F7000010186C0002501107B
:088F7800CB000B3009200801B9
:088F8000200B000B300301304F
:088F88007601471BFE0193DB9B
:088F900002C001A2010889FCE6
:088F980001471B0201A7C10003
:088FA00001A7030301214C00AD
:088FA80012300701218C0013B7
:088FB000301C01471BFC016F9E
:088FB80003000193DB80C001FE
:088FC00093DB02C001A201963F
:088FC80089FC01471B0401476D
:088FD0001BFC016F030001937B
:088FD800DB80C001580B34409E
:088FE0000193DB00C001A201B6
:088FE800D088FC01474B000199
:088FF000204C000330092008A9
:088FF80001200B000B3F8A0170
:08900000865B03C101861B839E
:08900800C00186DB02C001A7D4
:08901000DA0601869B06C0018F
:089018008E9B86C0018E5B04F3
:08902000C1018E1B8CC1014748
:089028001B0A01F2018E5A84BB
:08903000C0019E5A04C1013F7A
:08903800C6000000000000006A
:0890400001471BF801939B0698
:08904800C0019E1B8CC101A7B1
:089050009B0601471BFE019382
:089058009B01C001865A00C211
:08906000016F860301A5CD0A92
:0890680001869B01C001471BBA
:089070000201A7DA0601869B4C
:0890780006C0018E1B8CC10132
:08908000471B0A01F200000089
:089088000000000000000000E0
:0890900001471BF801939B0648
:08909800C0019E1B8CC1019E6A
:0890A0009B86C0019E5B04C128
:0890A8005092FCFF00019DDA6B
:0890B0009801A79B0601471B74
:0890B800FA014DDB8603019370
:0890C000DB02C001931B83C019
:0890C80001935B03C101939BBE
:0890D00083C10193DB03C2011F
:0890D800931B84C201935B04A9
:0890E000C30186DA00C201A7FA
:0890E8000303405E0001016F6B
:0890F0000E980182DA00C301B1
:0890F800A7C3030186DA80C260
:0891000001A70304016F011433
:0891080030060C01914000A0AB
:089110000120100007300701E7
:08911800201032043004016F45
:08912000100001210C00176F83
:08912800430B173008016FC46E
:089130000A01A7C40001A743D6
:089138000401200C0007A7CC84
:089140001007A70303016F0BE8
:08914800000153CB30000121AE
:08915000C30013301501A7CF85
:089158009301010F13584B3085
:089160004013C1CEF0201347BB
:089168004B00015BCCA00001EB
:08917000A7430301584B3040F6
:08917800014C0D010301A704E5
:08918000D101C1CE4020014BDA
:08918800CCA00001A7030301C4
:08919000474B0001200C000216
:08919800300701208B04043FA5
:0891A000A80120510B02584BFD
:0891A800304002C1CE1021028B
:0891B000474B00016F0116306E
:0891B800060C01914000A0012A
:0891C000100B0406301C0147EE
:0891C8001BFE0182DA80C301E5
:0891D00093DB00C001A2014085
:0891D80090FC014D1014000190
:0891E0003FDD016F411630066E
:0891E8000C01914000A00120E0
:0891F0000B00043021014DCBFE
:0891F800120001471BFE0158A3
:089200004B304001B2CE3020DA
:089208000193DB00C001A2018B
:089210004090FC013FD8016F02
:08921800811630060C019140A3
:0892200000A001865B04C301FC
:08922800861B84C20186DB03F2
:08923000C201869B83C1018687
:089238005B03C101861B83C02A
:089240000186DB02C001A7DA80
:089248000601869B06C0018EA1
:089250009B86C0018E5B04C186
:08925800018E1B8CC101471BB4
:089260001001F2018E5A84C0D6
:08926800019E5A04C1013FB24E
:0892700001471BF801939B0666
:08927800C0019E1B8CC1019E88
:089280009B86C0019E5B04C146
:089288005094FCFF00019DDA87
:089290000C01A79B0601471B1E
:0892980096014DDB0603019372
:0892A000DB02C001931B83C037
:0892A80001935B03C101939BDC
:0892B00083C10193DB03C2013D
:0892B800931B84C20186DA0059
:0892C000C201A7030320FE0117
:0892C8004CDAE0C501A74303E5
:0892D0000186DA80C201A7C388
:0892D8000301200F000730071D
:0892E00001200F3204300401EB
:0892E8006F0F00016F0B000184
:0892F000210C00176F430B175E
:0892F8003008016FC40A01A750
:08930000C40001A703040120D1
:089308000C0007A7CC1007A719
:0893100003030153CCF000013E
:08931800A7830301218E021658
:08932000301601584B304001EA
:089328004C0E010301A704D162
:0893300001C1CD4020013034E1
:089338000186DA00C301020303
:0893400022301601584B3040A9
:08934800014D0E91FC01A70488
:08935000D101C1CD4020013024
:089358001301584B3040014D98
:089360000E91FA01A704D101EE
:08936800C1CD402001580C3179
:089370004401A7030301474B70
:089378000001200C0002300787
:0893800001208B04073F8B0163
:0893880020500B02584B30404D
:0893900002C1CD002102474B90
:08939800000110CB0306302F89
:0893A00001471BFE0122500BE6
:0893A800226F030822300D01C1
:0893B000821A81C301A7049198
:0893B80001A7C4000193DB00D2
:0893C000C001A2014090FC0174
:0893C8004DCF1300013FCA0163
:0893D000200B00043021014DC7
:0893D800CB120001471BFE014E
:0893E000584B304001B2CD30C2
:0893E800200193DB00C001A28B
:0893F000014090FC013FD8018F
:0893F800861B84C20186DB0321
:08940000C201869B83C10186B5
:089408005B03C101861B83C058
:089410000186DB02C001A7DAAE
:089418000601869B06C0018ECF
:089420009B86C0018E5B04C1B4
:08942800018E1B8CC101471BE2
:089430001001F2018E5A84C004
:08943800019E5A04C1013FB777
:0894400001471BF801939B0694
:08944800C0019E1B8CC1019EB6
:089450009B86C0019E5B04C174
:089458005095FCFF00019D1A74
:089460004001A79B0601471B18
:08946800FE014DDB86010193BA
:08947000DB02C001931B83C065
:0894780001935B03C10186DAD8
:0894800000C201A7C30201862E
:08948800DA80C201A703030111
:08949000A74B030182CB002071
:0894980001000302302701204E
:0894A0000C0004302001471B01
:0894A800FE0182CB00200193BC
:0894B000DB00C001A2014090A5
:0894B800FC01478B00014D0C83
:0894C0001300013FCE01404BF7
:0894C8004314015844304C012B
:0894D000A7430001865B03C104
:0894D80001861B83C00186DB45
:0894E00002C001A7DA060186B3
:0894E8009B06C0018E9B86C0AB
:0894F000018E5B04C1018E1B1B
:0894F8008CC101471B0C01F2BD
:08950000018E5A84C0019E5A3D
:0895080004C1013FC601471B2D
:08951000F801939B06C0019EC7
:089518001B8CC101A79B060199
:08952000471BFE01939B01C0F3
:0895280001865A80C1016FC6E3
:089530000601A5CD0A01869B8E
:0895380001C001471B0201A75D
:08954000DA0601869B06C0015A
:089548008E1B8CC101471B0AB8
:0895500001F201471BF8019E26
:089558001B8CC1019E9B86C023
:08956000019E5B04C15095FC63
:08956800FF00019D5A6401A2FD
:0895700001757DFC01A7C1009B
:0895780001A74300018E9B8650
:08958000C0018E5B04C1018EE5
:089588001B8CC101471B080107
:08959000F2018E5A84C0019E15
:089598005A04C1013FDE014746
:0895A0001BF801939B06C001BA
:0895A8009E1B8CC1019E9B86F5
:0895B000C0019E5B04C150964E
:0895B800FCFF00019D9A8401F3
:0895C000A79B0601471BFE01F9
:0895C8004DDB86000193DB027C
:0895D000C001A2015295FC014B
:0895D800A7C10001A7C30201B5
:0895E00020CBFF023FEB015319
:0895E800CBF00F01A7430001C5
:0895F00086DB02C001A7DA06C8
:0895F80001869B06C0018E9B59
:0896000086C0018E5B04C1016C
:089608008E1B8CC101471B08F9
:0896100001F2018E5A84C00131
:089618009E5A04C1013FD0017C
:08962000471BF801939B06C0F3
:08962800019E1B8CC1019E9BF9
:0896300086C0019E5B04C150DD
:089638009AFCFF00019D9A87D6
:0896400001A79B0601471BF482
:08964800014DDB86020193DBFA
:0896500002C001931B83C0015D
:08965800935B03C101939B83A6
:08966000C10193DB03C2014DBF
:08966800DB0601019E1B06C098
:08967000019E5B86C0014CDA8B
:0896780000C201A7C302509AD1
:08968000FCFF00019D18AA5037
:0896880090FCFF00019D191088
:0896900001A70B030186CB00CA
:08969800200182C30020010043
:0896A00003023335016F0308DA
:0896A80001A7C3030186CB00FA
:0896B000200182C3002001210A
:0896B80043091332F5016F0EA6
:0896C0000030FF00016FCDFF37
:0896C8000186CB00200147835D
:0896D000000193CB002001868C
:0896D800CB00200182C3002039
:0896E00001224309223081013F
:0896E80022C31822308D01227B
:0896F000031922309E01224300
:0896F800192230C501224311C3
:089700002230BE0122031E22EB
:0897080030F4012203162231A6
:089710001B0122C31C2231429F
:089718000122030C223164015F
:0897200022430E2231650122F3
:08972800030E22315E0122C391
:089730000D2231570122830DC7
:089738002231500122430D22F1
:0897400031490122030D223121
:08974800420122C30C22313B57
:089750000122830C22313401D7
:0897580022430C22312D0122F5
:08976000830B2231A601324700
:0897680001471BFE016F4309DC
:089770000193DB00C001A09190
:0897780001323401470C02012B
:08978000471BFE0186CC00200E
:089788000193DB00C001A09178
:0897900001321C01470C02012B
:08979800471BF80193DB83C1BC
:0897A000016F03000193DB00DF
:0897A800C101939B83C00186FF
:0897B000CC00200193DB00C096
:0897B80001A2019090FC0131B7
:0897C000EE01470C020186CC0A
:0897C80000200193DA80DD01AD
:0897D000471BF80186CB0020C5
:0897D8000182C300200193DBB4
:0897E00080C101935B03C1018C
:0897E800939B83C00186DA8027
:0897F000DD0193DB00C001A1C3
:0897F8000100000131B101473D
:089800000C0201471BF8019363
:08980800DB83C1016F030001C5
:0898100093DB00C101939B836F
:08981800C00186CC0020019381
:08982000DB00C001A2017092FF
:08982800FC01318301470C0231
:0898300001471BF80193DB83E3
:08983800C1016F43000193DB45
:0898400000C101939B83C001EC
:0898480086CC00200193DB0037
:08985000C001A2017092FC01AD
:08985800315501470C020147E4
:089860001BFC01935B83C001B6
:0898680086CC00200193DB0017
:08987000C001A2014094FC01BB
:08987800A7C1000193DA00DE34
:0898800001312C016F030C0102
:08988800A7C30301860B0120B8
:089890000182040120014DC416
:08989800000301A78303018610
:0898A000CB0020014783000109
:0898A80093CB002001471BFED9
:0898B0000186CB00200182C3F8
:0898B80000200193DB00C00158
:0898C000A08101471B0201A772
:0898C800C10001030332302A44
:0898D000014A8EA30001860B82
:0898D8000120018204012001BE
:0898E0004DC400030140CEE07D
:0898E800100186CB00200147AE
:0898F00083000193CB0020016D
:0898F8003FB20186CB00200104
:0899000082C300200123830B48
:08990800333DCB0186CB0020AA
:08991000014783000193CB0025
:089918002001471BFE0186CB74
:0899200000200182C3002001B8
:0899280093DB00C001A08101E6
:08993000471B0201A7C1000161
:089938000303323D9901860B87
:08994000012001820401200155
:089948004DC4000301A7430315
:089950000186CB0020014783D2
:08995800000193CB0020014740
:089960001BFE0186CB00200173
:0899680082C300200193DB0023
:08997000C001A08101471B02A8
:0899780001A7C1000103033245
:08998000302A014A4DA3000149
:08998800860B0120018204019D
:0899900020014DC40003014059
:08999800CDD0100186CB0020A8
:0899A000014783000193CB0095
:0899A80020013FB2013D27013F
:0899B000301601471BFE018681
:0899B800CB00200182C3002056
:0899C0000193DB00C001A0913E
:0899C8000186CB00200147835A
:0899D000000193CB0020013CD3
:0899D800BB018E5B86C0018E0D
:0899E0001B06C001471B040136
:0899E80086DB03C201869B83AC
:0899F000C101865B03C1018681
:0899F8001B83C00186DB02C0E5
:089A000001A7DA0601869B06AE
:089A0800C0018E9B86C0018E97
:089A10005B04C1018E1B8CC137
:089A180001471B0801F2018E59
:089A20005A84C0019E5A04C1E2
:089A2800013FAE000000000048
:089A300001471BF801939B069E
:089A3800C0019E1B8CC101A7B7
:089A40009B06014DDB860001CD
:089A480093DB02C00182DA0089
:089A5000C201A7C30201204B73
:089A5800100B300B01208B11F3
:089A6000086F410008302801E5
:089A6800204B180B300B01200C
:089A70008B19086F410008305A
:089A78001601200B0C0B300B52
:089A800001204B0E086F4100AC
:089A8800083004016F01000128
:089A900086DB02C001A7DA0623
:089A980001869B06C0018E1B34
:089AA0008CC101471B0801F213
:089AA80001471BF801939B0626
:089AB000C0019E1B8CC101A73F
:089AB8009B06014DDB86000155
:089AC00093DB02C00182DA0011
:089AC800C201A7C30201200B3B
:089AD0000C0B300B01204B0EC2
:089AD800086F41000830040191
:089AE0006F01000186DB02C0EA
:089AE80001A7DA0601869B06C6
:089AF000C0018E1B8CC101476F
:089AF8001B0801F201471BF8F5
:089B000001939B06C0019E1BAE
:089B08008CC101A79B06014D71
:089B1000DB86000193DB02C0BB
:089B18000182DA00C201A7C3BB
:089B20000201204B180B300B71
:089B280001208B1E086F4100B3
:089B300008301601204B100B58
:089B3800300B01208B16086FB1
:089B40004100083004016F012F
:089B4800000186DB02C001A749
:089B5000DA0601869B06C00144
:089B58008E1B8CC101471B08A4
:089B600001F201471BF801931B
:089B68009B06C0019E1B8CC18D
:089B700001A79B06014DDB86F5
:089B7800000193DB02C0018231
:089B8000DA00C201A7C30201D3
:089B8800200B0C0B300B012037
:089B90004B0E086F4100083084
:089B98002801204B180B300BD3
:089BA00001208B1E086F41003B
:089BA80008301601204B100BE0
:089BB000300B01208B16086F39
:089BB8004100083004016F01B7
:089BC000000186DB02C001A7D1
:089BC800DA0601869B06C001CC
:089BD0008E1B8CC101471B082C
:089BD80001F201471BF80193A3
:089BE0009B06C0019E1B8CC115
:089BE80001A79B06014DDB867D
:089BF000000193DB02C00182B9
:089BF800DA00C201A7C302015B
:089C0000200B08026F41000275
:089C0800303001204B02026F15
:089C1000410002302501208B08
:089C180002026F410002301A44
:089C200001204B03026F41001B
:089C280002300F01200B0302C2
:089C30006F4100023004016FD6
:089C380001000186DB02C001FE
:089C4000A7DA0601869B06C0AD
:089C4800018E1B8CC101471BBA
:089C50000801F201471BF801B5
:089C5800939B06C0019E1B8CCA
:089C6000C101A79B06014DDBC9
:089C680086000193DB02C0013C
:089C700082DA00C201A7C30261
:089C780001204B100B300D011F
:089C8000208B16084CCB0002FA
:089C880008A7C30201A74B006D
:089C90000186DB02C001A7DA26
:089C98000601869B06C0018E47
:089CA0001B8CC101471B0801E8
:089CA800F201471BF801939B38
:089CB00006C0019E1B8CC101DE
:089CB800A79B06014DDB8600AD
:089CC0000193DB02C00182DA0E
:089CC80000C201A7C302012044
:089CD0004B180B300D01204B75
:089CD80018084CCB00FE08A7A0
:089CE000C30201A74B0001863D
:089CE800DB02C001A7DA06014E
:089CF000869B06C0018E1B8C4F
:089CF800C101471B0801F20144
:089D0000471BF801939B06C00C
:089D0800019E1B8CC101A79B09
:089D100006014DDB8600019302
:089D1800DB02C00182DA00C287
:089D200001A7C30201274B104B
:089D2800736F4400726F040028
:089D300001278B16736F45003B
:089D3800726F05000150443177
:089D400000010703736F4300EB
:089D4800726F030001A7430044
:089D50000186DB02C001A7DA65
:089D58000601869B06C0018E86
:089D60001B8CC101471B080127
:089D6800F201471BF801939B77
:089D700006C0019E1B8CC1011D
:089D7800A79B06014DDB8600EC
:089D80000193DB02C00182DA4D
:089D880000C201A7C30201277C
:089D90004B18736F4400726F61
:089D9800040001278B1E736F0C
:089DA0004500726F050001503F
:089DA800443100010703736F51
:089DB0004300726F030001A7DC
:089DB80043000186DB02C0013B
:089DC000A7DA0601869B06C02C
:089DC800018E1B8CC101471B39
:089DD0000801F201471BF80134
:089DD800939B06C0019E1B8C49
:089DE000C101A79B060182DA14
:089DE80000C2012083170230C4
:089DF000A10120830E02309A4C
:089DF8000120C30B02309301AE
:089E000020830B02308C0120CD
:089E0800430B02308501200329
:089E10000B02307E0120C30AA1
:089E18000230770120830A02E9
:089E20003070012043170230ED
:089E28006901200317023062FA
:089E30000120C31602305B01A2
:089E380020C30F023054012089
:089E4000830F02304D012043A5
:089E48000F0230460120030F58
:089E500002303F0120C30E02A5
:089E580030380120430A0230FA
:089E6000310120030A02302A3F
:089E68000120C30902302301AF
:089E700020830902301C0120CF
:089E780043090230150120C36B
:089E80000802300E01208308E6
:089E880002300701204308032A
:089E90003007016F41000130B1
:089E980007016F010001300019
:089EA00001A7DA0601869B060A
:089EA800C0018E1B8CC10147B3
:089EB0001B0801F201471BF839
:089EB80001939B06C0019E1BF3
:089EC0008CC1019E9B86C001CC
:089EC8009E5B04C1509FFCFFEA
:089ED00000019D9AE201A79B2D
:089ED80006014DDB8600019339
:089EE000DB02C00182DA00C2BE
:089EE80001A7C302014DDB8656
:089EF000000193DB00C00147F3
:089EF8001BFE0193DB02C00117
:089F0000A201D39DFC01471BE7
:089F0800020186DB00C00147E5
:089F10001B0201A70101014D34
:089F1800DB86000193DB00C0B1
:089F2000014DDB860001931BDB
:089F280001C001471BFE01937B
:089F3000DB02C001A201629BEB
:089F3800FC01471B0201861B1E
:089F400001C001471B0201866C
:089F4800DB00C001471B020110
:089F5000A74101015044310456
:089F5800010703736F4300725F
:089F60006F030001A74300019B
:089F680086DB02C001A7DA0646
:089F700001869B06C0018E9BD7
:089F780086C0018E5B04C101EB
:089F80008E1B8CC101471B0878
:089F880001F2018E5A84C001B0
:089F90009E5A04C1013FD001FB
:089F9800471BF801939B06C072
:089FA000019E1B8CC1019E9B78
:089FA80086C0019E5B04C1505C
:089FB000A0FCFF00019D1A0F47
:089FB80001A79B06014DDB86A9
:089FC000000193DB02C00182E5
:089FC800DA00C201A7C3020187
:089FD0004DDB86000193DB006C
:089FD800C001471BFE0193DBF1
:089FE00002C001A201B49EFCC5
:089FE80001471B020186DB00AA
:089FF000C001471B0201A7019B
:089FF8000101270B08736F45FE
:08A0000000726F0500015044DD
:08A008003104010703736F43EB
:08A0100000726F030001A74379
:08A01800000186DB02C001A774
:08A02000DA0601869B06C0016F
:08A028008E9B86C0018E5B04D3
:08A03000C1018E1B8CC1014728
:08A038001B0801F2018E5A849D
:08A04000C0019E5A04C1013F5A
:08A04800D001471BF801939BB6
:08A0500006C0019E1B8CC1013A
:08A05800A79B060182DA00C299
:08A060000120C30102302301BD
:08A0680020030202301C01205C
:08A070008302023015012043B8
:08A078000302300E0120030376
:08A08000023007012043020336
:08A088003007016F41000130B7
:08A0900007016F01000130001F
:08A0980001A7DA0601869B0610
:08A0A000C0018E1B8CC10147B9
:08A0A8001B0801F2000000009A
:08A0B00001471BF801939B0618
:08A0B800C0019E1B8CC101A731
:08A0C0009B0601865A80C201D3
:08A0C800869A00C20186DA004D
:08A0D000C301000302301E0170
:08A0D8004DC3100001A9C30CE7
:08A0E000018001012001900242
:08A0E80001200147410001477E
:08A0F000420001A4EB01865AB5
:08A0F80000C201A7DA0601868F
:08A100009B06C0018E1B8CC1FF
:08A1080001471B0801F20147A9
:08A110001BF801939B06C0013E
:08A118009E1B8CC101A79B06F0
:08A1200001865A80C201869AF3
:08A1280000C20186DA00C30148
:08A130008401012001920201EB
:08A1380020014701010147026B
:08A1400001014DC310000100F4
:08A1480003053FE301865A0004
:08A15000C201A7DA0601869B9B
:08A1580006C0018E1B8CC10141
:08A16000471B0801F201471B37
:08A16800F801939B06C0019E63
:08A170001B8CC101A79B060135
:08A17800865A80C201869A009C
:08A18000C20186DA00C301866A
:08A188000101200193020120F6
:08A19000014701020147020230
:08A19800014DC310000100039A
:08A1A000053FE301865A00C2ED
:08A1A80001A7DA0601869B06FF
:08A1B000C0018E1B8CC10147A8
:08A1B8001B0801F201471BF82E
:08A1C00001939B06C0019E1BE8
:08A1C8008CC101A79B06018672
:08A1D0005A00C201869A80C208
:08A1D8000186DA00C301908149
:08A1E000002001474100014D80
:08A1E800C31000010003053F54
:08A1F000EC01865A00C201A730
:08A1F800DA0601869B06C00196
:08A200008E1B8CC101471B08F5
:08A2080001F201471BF801936C
:08A210009B06C0019E1B8CC1DE
:08A2180001A79B0601865A0014
:08A22000C201869A80C201868A
:08A22800DA00C301928100205D
:08A2300001470101014DC310BB
:08A2380000010003053FEC01E9
:08A24000865A00C201A7DA06EC
:08A2480001869B06C0018E1B7C
:08A250008CC101471B0801F25B
:08A2580001471BF801939B066E
:08A26000C0019E1B8CC101A787
:08A268009B0601865A00C201A9
:08A27000869A80C20186DA0023
:08A27800C3019381002001479E
:08A280000102014DC3100001B1
:08A288000003053FEC01865ABA
:08A2900000C201A7DA060186F5
:08A298009B06C0018E1B8CC166
:08A2A00001471B0801F2014710
:08A2A8001BF801939B06C001A5
:08A2B0009E1B8CC101A79B0657
:08A2B80001471BFE014DDB060E
:08A2C000010193DB02C00193D0
:08A2C8001B83C00186DA00C30C
:08A2D00001A703030186DA0275
:08A2D800C201200C000430213A
:08A2E0000180CB002001801A6F
:08A2E80081C20111030112A75C
:08A2F0004B0012301001474B36
:08A2F80000014D0C1300013FB1
:08A30000D8016F010001861B6A
:08A3080083C00186DB02C001E5
:08A31000A7DA0601869B06C0D6
:08A31800018E1B8CC101471BE3
:08A320000801F201471BF801DE
:08A32800939B06C0019E1B8CF3
:08A33000C101A79B0601471BB8
:08A33800FE014DDB060101935B
:08A34000DB02C001931B83C086
:08A348000186DA00C201A7033F
:08A350000301200C00026F0163
:08A358000002301F016F0B0031
:08A3600001584B304001B2CC62
:08A36800302001000302300760
:08A3700001474B00013FE90128
:08A37800A74B0001861B83C006
:08A380000186DB02C001A7DA2F
:08A388000601869B06C0018E50
:08A390001B8CC101471B0801F1
:08A39800F201471BF801939B41
:08A3A00006C0019E1B8CC101E7
:08A3A800A79B0601471BFE0103
:08A3B0004DDB86010193DB0285
:08A3B800C001931B83C0019357
:08A3C0005B03C10186DA00C253
:08A3C80001A703030186DA80FE
:08A3D000C201A74303016F0B5A
:08A3D8000001584B304001B2B6
:08A3E000CD3020010003023022
:08A3E8001B01584B30400158E5
:08A3F0004B404001B20D512069
:08A3F80001C1CC502001474BCC
:08A4000000013FD501584B306B
:08A4080040016F040001A704EC
:08A41000D101C1CC402001A7DD
:08A418004C0001865B03C10149
:08A42000861B83C00186DB02EC
:08A42800C001A7DA0601869BC2
:08A4300006C0018E1B8CC10166
:08A43800471B0801F201471B5C
:08A44000F801939B06C0019E88
:08A448001B8CC101A79B06015A
:08A45000471BFE014DDB060273
:08A458000193DB02C001931B1C
:08A4600083C001935B03C101FD
:08A46800939B83C10186DA0019
:08A47000C201A703030186DA13
:08A4780080C201A74303018625
:08A48000DA00C301A783030108
:08A488006F0B0001108B0306AD
:08A49000302C01584B30400153
:08A49800584B404001B20D5188
:08A4A0002001C1CC502001583D
:08A4A8004B304001B2CD302021
:08A4B000012103001230070135
:08A4B800474B00013FCD0110EC
:08A4C0008B0306301901584B13
:08A4C8003040016F040001A700
:08A4D00004D101C1CC402001C0
:08A4D800474B00013FE001A722
:08A4E0004C0001869B83C101C1
:08A4E800865B03C101861B83A2
:08A4F000C00186DB02C001A7D8
:08A4F800DA0601869B06C00193
:08A500008E1B8CC101471B08F2
:08A5080001F201471BF8019369
:08A510009B06C0019E1B8CC1DB
:08A5180001A79B0601471BFC93
:08A52000014DDB86010193DB14
:08A5280002C001931B83C00176
:08A53000935B03C10186DA0010
:08A53800C301A743030186DA09
:08A5400002C201861A83C20168
:08A54800100B03026F01000279
:08A55000306001200D00043011
:08A55800550182CB00200182B5
:08A560000C012001110301129E
:08A5680030240182CB00200128
:08A57000820C0120011303011C
:08A578003B6FC3FF3B300801FB
:08A580006F440001A7C40001B3
:08A58800A74300013024018209
:08A59000CB0020012203002290
:08A598006F010022301401479D
:08A5A0008B0001478C00014D06
:08A5A8004D1300013FA4016FF7
:08A5B000010001865B03C101FB
:08A5B800861B83C00186DB0253
:08A5C000C001A7DA0601869B29
:08A5C80006C0018E1B8CC101CD
:08A5D000471B0801F201471BC3
:08A5D800F801939B06C0019EEF
:08A5E0001B8CC101A79B0601C1
:08A5E800471BFE014DDB0601DB
:08A5F0000193DB02C001931B83
:08A5F80083C00186DA00C301F3
:08A60000A703030186DA02C280
:08A6080001200C0004302101C7
:08A6100082CB002001821A81B7
:08A61800C20111030112A74B5E
:08A620000012301001478B000D
:08A62800014D0C1300013FD8A5
:08A63000016F010001861B838C
:08A63800C00186DB02C001A78E
:08A64000DA0601869B06C00149
:08A648008E1B8CC101471B08A9
:08A6500001F20000000000000F
:08A658000000000000000000FA
:08A660000201F20000000000FD
:08A668000000000000000000EA
:08A6700001471BF801939B0652
:08A67800C0019E1B8CC101A76B
:08A680009B0601865A00C2018D
:08A68800869A80C20190810056
:08A690000001A7DA0601869B18
:08A6980006C0018E1B8CC101FC
:08A6A000471B0801F200000055
:08A6A8000000000000000000AA
:08A6B00001471BF801939B0612
:08A6B800C0019E1B8CC101A72B
:08A6C0009B0601865A00C2014D
:08A6C800869A80C20191810015
:08A6D0000001A7DA0601869BD8
:08A6D80006C0018E1B8CC101BC
:08A6E000471B0801F200000015
:08A6E80000000000000000006A
:08A6F00001471BF801939B06D2
:08A6F800C0019E1B8CC101A7EB
:08A700009B0601865A00C2010C
:08A70800869A80C201928100D3
:08A710000001A7DA0601869B97
:08A7180006C0018E1B8CC1017B
:08A72000471B0801F2000000D4
:08A72800000000000000000029
:08A7300001471BF801939B0691
:08A73800C0019E1B8CC101A7AA
:08A740009B0601865A00C201CC
:08A74800869A80C20193810092
:08A750000001A7DA0601869B57
:08A7580006C0018E1B8CC1013B
:08A76000471B0801F2016F0123
:08A76800084000C000018480DC
:08A77000802C01538200C0019E
:08A7780050422004200A019D5B
:08A78000F38A4000C0000184CF
:08A7880040002D01988100A89A
:08A7900001F2200A019DF38A89
:08A7980040FCC700016F02083C
:08A7A000300001016F0100010E
:08A7A800988100A801F20147AD
:08A7B0001BFE019E5B04C001C9
:08A7B800A7400001A78000404A
:08A7C00000C0000183C0802DE0
:08A7C8004000C00001830061A4
:08A7D0002D016F450001A1F10C
:08A7D8006E05014C44F0FF0185
:08A7E000A1F11000018E5B04E1
:08A7E800C001471B0201F24011
:08A7F00000C000018380802DF0
:08A7F80001408110180140012D
:08A8000030244000C000018477
:08A8080040802C0154410002C4
:08A810004000C00001840001BA
:08A818002D01C2C4102001470C
:08A8200003010147C2FF010022
:08A8280002033FED01F20147BC
:08A830001BFC01935B80000199
:08A83800939B00004000C000EA
:08A84000018480C02C016F01AE
:08A848001001924200A2016F11
:08A85000C10701924240A20180
:08A85800869B000001865B8075
:08A860000001471B0401A78061
:08A868000101F201471BFC0194
:08A87000935B800001939B0043
:08A87800004000C000018480D3
:08A88000C02C016F01080192D8
:08A888004200A201A7400001FB
:08A89000924240A201869B00E8
:08A898000001865B800001470E
:08A8A0001B0401A7800101F275
:08A8A8004000C000018480C0E3
:08A8B0002C01AD4200A04000A4
:08A8B800C000019140802D0158
:08A8C000AD4240A04000C000C1
:08A8C800019140602D01F240F6
:08A8D00000C000019100002C02
:08A8D8004000C00001910020C6
:08A8E0002C01471BF801935BFA
:08A8E80000C101939B80C00137
:08A8F00093DB00C0019E5B89AF
:08A8F800C15000D0FF00019DDA
:08A900002500016F4101300642
:08A908000C01914000A0400089
:08A91000C000018280202C40F0
:08A9180000C0000182C0802D87
:08A920000140C210184000C004
:08A9280000018280002C0140B7
:08A930008110104000C000017D
:08A938009140402C4000C000DA
:08A940000184C0C02C01924308
:08A94800C0A2018E5B89C10170
:08A9500086DB00C001869B803C
:08A95800C001865B00C101474C
:08A960001B0801F2FCA9FCA98F
:08A9680002AA31AAFCA9FCA916
:08A9700043ADFCA9FCA9FCA900
:08A9780058AAFCA9FCA9FCA9E6
:08A9800013AEFCA9FCA9FCA91F
:08A98800FCA9FCA917AB47ACC8
:08A99000FCA96EAB96ABBEAB57
:08A99800E6ABFCA9FCA9FCA937
:08A9A000FCA9FCA9A6AAECAA7F
:08A9A80065A749AA2EA86BA8BF
:08A9B00040C01701014DDF0654
:08A9B8000040DFE10001471B34
:08A9C000FE019E5B04C0019E34
:08A9C8005B89C05000D0FF00C4
:08A9D000019D2500012046094C
:08A9D80006301A50A9FCFF0033
:08A9E000018D4644F6018E5B77
:08A9E80004C0018E5B89C0016F
:08A9F000471B0401F3016F4253
:08A9F80000013FE9016FC200FC
:08AA000001F201471BFE019E5B
:08AA08005B04C04000C0000126
:08AA10009140202C4000C00021
:08AA1800019180002C01A1F165
:08AA2000C4FE01A78001018EB4
:08AA28005B04C001471B0201A1
:08AA3000F24000C00001834068
:08AA3800202C4000C000018346
:08AA400080002C01A780010138
:08AA4800F24000C00001924041
:08AA5000802C01A7800101F236
:08AA580001471BFE019E5B0497
:08AA6000C001000202303001C8
:08AA6800471BFC019E5B04008A
:08AA7000019EDB8C000147C2CE
:08AA7800FF01A9C20C014742D5
:08AA80000001A1F1920301A401
:08AA8800F8018EDB8C00018E49
:08AA90005B040001471B0401F7
:08AA98008E5B04C001471B02A4
:08AAA00001A7800101F201A7EA
:08AAA80041C001200108045423
:08AAB0004100100430250120D3
:08AAB800C11602302401204107
:08AAC0001702301D0154410092
:08AAC8001001460100020230FA
:08AAD0000A01460100040353D2
:08AAD80041F01901A780010102
:08AAE000F2015341F0FB01A754
:08AAE800800101F201A741C049
:08AAF0000120C106023015012E
:08AAF80020410702300E01208D
:08AB0000C1060447011801A77A
:08AB0800800101F2015441003B
:08AB10000401A7800101F2011C
:08AB1800471BF8019E5B04C01D
:08AB2000019EDB8CC001939B38
:08AB280000C1019E1B80C12049
:08AB30000F019DF3FF01A78155
:08AB3800000181420000010050
:08AB40000102300C01A1F1CF6C
:08AB4800020147420001A4E9EB
:08AB5000018E5B04C0018EDBE5
:08AB58008CC001869B00C101C5
:08AB60008E1B80C101471B0898
:08AB680001A7800101F2014781
:08AB70001BFE019E5B04C00105
:08AB78005801185001A1F11A67
:08AB800000015801185001A169
:08AB8800F11000018E5B04C016
:08AB900001471B0201F201471D
:08AB98001BFE019E5B04C001DD
:08ABA0005801145401A1F11A3F
:08ABA80000015801145001A145
:08ABB000F11000018E5B04C0EE
:08ABB80001471B0201F20147F5
:08ABC0001BFE019E5B04C001B5
:08ABC8005801125401A1F11A19
:08ABD00000015801125001A11F
:08ABD800F11000018E5B04C0C6
:08ABE00001471B0201F20147CD
:08ABE8001BFE019E5B04C0018D
:08ABF0005801115401A1F11AF2
:08ABF80000015801115001A1F8
:08AC0000F11000018E5B04C09D
:08AC080001471B0201F20147A4
:08AC10001BFC019E5B04C00166
:08AC1800935B80C0015341F081
:08AC200000012081020647C17A
:08AC280001015441000301A1E8
:08AC3000F1E501018E5B04C097
:08AC380001865B80C001471B8F
:08AC40000401A7800101F201EB
:08AC4800471BF4019E5B0400B0
:08AC50000193DB800001935B1E
:08AC5800010101939B81010140
:08AC600093DB010201861B8158
:08AC6800024005C000016F4726
:08AC70007E01A7810101A7424A
:08AC780001010001074040103A
:08AC8000140747C5FF016F83B3
:08AC880002014FC1A000014EC2
:08AC900003A1000140012114A1
:08AC980001A743000147020C73
:08ACA0000190870020014747E5
:08ACA800000147C5FF01000196
:08ACB000033FD601000504304A
:08ACB8000D016F010801A785E1
:08ACC0000001A1F197FD010064
:08ACC80006063009016F410B83
:08ACD00001A1F14301014DC790
:08ACD80011000180470020017A
:08ACE000A1F134014005C000A0
:08ACE8000120477E053FE60153
:08ACF0008E5B04000186DB808D
:08ACF8000001865B01010186E9
:08AD00009B81010186DB0102C9
:08AD080001861B810201471BBB
:08AD10000C01A7800101F240D3
:08AD180000C0000183C0802D82
:08AD20000140C1101801588127
:08AD28001040014042102440DC
:08AD300000C0000185C0002DE8
:08AD380001B543102001A780C2
:08AD40000101F201471BE801CB
:08AD4800935B00C001939B80A6
:08AD5000C00193DB00C1019377
:08AD58001B81C101935B01C2E4
:08AD60000193DB01C301935BC9
:08AD680082C301939B02C401A8
:08AD700093DB82C401931B0375
:08AD7800C501935B83C501A72F
:08AD8000C10101A7820140009E
:08AD8800C0000185C0022D404E
:08AD900000C000018340832D87
:08AD980001404293180140093B
:08ADA0009024014041922401BE
:08ADA800404DA11801404AA230
:08ADB0002401B58BC22001C291
:08ADB8004BC2200147410001DC
:08ADC00010C10002A7470002C8
:08ADC8004742000110020103E3
:08ADD0003FC601865B00C001D3
:08ADD800869B80C00186DB00B0
:08ADE000C101861B81C101863F
:08ADE8005B01C20186DB01C31F
:08ADF00001865B82C301869B12
:08ADF80002C40186DB82C401E4
:08AE0000861B03C501865B837C
:08AE0800C501471B1801A780DA
:08AE10000101F201471BF201F0
:08AE18009E5B04C0019E1B8C2F
:08AE2000C001935B00C1019326
:08AE28009B80C10193DB00C215
:08AE300001931B81C2019E5B2E
:08AE380009C35000D0FF000126
:08AE40009D250001A741C0405F
:08AE480000C000018080402DD4
:08AE5000010002073167012037
:08AE5800C10102330701204192
:08AE6000240234180120C12472
:08AE680002343F012001240225
:08AE7000344E0120812402345C
:08AE78005D012041260233694F
:08AE8000012041030230F20140
:08AE88002081020230FC0120D0
:08AE900001250233C70120C1B6
:08AE98000603303A016F41008E
:08AEA0004000C0000190404099
:08AEA8002D018E5B04C0018E38
:08AEB0001B8CC001865B00C190
:08AEB80001869B80C10186DBCD
:08AEC00000C201861B81C201E2
:08AEC8008E5B09C301471B0E5C
:08AED00001A7800101F201530A
:08AED80041F00701A1F1CBFBE1
:08AEE0004000C00001858080E4
:08AEE8002C01538200C001504F
:08AEF0008110044000C00001C4
:08AEF80083C0402C4000C000A3
:08AF0000018580002D01C2C291
:08AF080010A84000C000018305
:08AF100040002C014741004004
:08AF180000C000018380802DC0
:08AF2000011081000B304140DB
:08AF280000C000019100002CA3
:08AF30004000C0000183402035
:08AF38002C014741004000C05C
:08AF400000018380602D011067
:08AF480081004000C0000B91E4
:08AF500040202C0BA1F18EF949
:08AF58000B3F4E01A1F186F947
:08AF600001A1F14EF8013F418F
:08AF68004000C000019140000F
:08AF70002C01A1F170F9013F71
:08AF7800304000C0000191000F
:08AF8000002C01A1F15FF901B1
:08AF88003F1F4000C0000183DF
:08AF900040202C014741004064
:08AF980000C000018380602D60
:08AFA0000111810016A1F10A64
:08AFA800F8163EFD4000C00058
:08AFB000019140202C01A1F1E8
:08AFB8002CF9013EEC016F844D
:08AFC0000530060C01910001AF
:08AFC800A04000C000018080E0
:08AFD000402D0120C2FF0330F7
:08AFD800A80120011503305D02
:08AFE0004000C0000183C040E5
:08AFE8002C4000C00001838031
:08AFF000002C01474200400063
:08AFF800C000018340802D011F
:08B0000010420006302B016F25
:08B0080001084000C0000185B1
:08B0100000812C015001110424
:08B018004000C00001850001A9
:08B020002D01C2C410A8014774
:08B02800420001474300013F13
:08B03000C54000C000019000C2
:08B03800402D013E6C0120C116
:08B04000154000C00002900061
:08B04800402D02319C012001A2
:08B0500018026F81FF4000C0EF
:08B0580000029040402D023E71
:08B06000480120010A026F41C2
:08B06800FF4000C0000290400F
:08B07000402D023E344000C0F7
:08B0780000019000402D013E93
:08B0800028012082FF033021AA
:08B088004000C00001900040EF
:08B090002D0120410C02A1F189
:08B0980099F7023E0C012001B2
:08B0A0000C02A1F1CAF7013E08
:08B0A80000012042FF033017F4
:08B0B0000120C106033FBE01AF
:08B0B8006F01FF4000C0000120
:08B0C0009040402D013DE2012A
:08B0C8002002FF0330170120F4
:08B0D000C111033FA0016FC193
:08B0D800FE4000C000019040A1
:08B0E000402D013DC40120C216
:08B0E800FE033F894000C00097
:08B0F000019000402D01200138
:08B0F8000D0330394000C000D7
:08B10000018540802C01A781AC
:08B10800000158411240400013
:08B11000F80F0153410000019A
:08B118005842224C30FC0701F3
:08B12000538200C001508110B0
:08B12800044000C00001924048
:08B13000802C013D7401200197
:08B138000C033014406C4B02C3
:08B14000016F01004000C00096
:08B14800019240802C013D59E9
:08B15000406C4B02016F01008D
:08B158004000C000019240809C
:08B160002C013D45016FC405FF
:08B1680030060C01910001A06A
:08B170004000C00001828000D4
:08B178002C010002023D2A40F7
:08B1800000C0000183C0402C57
:08B188004000C0000184000139
:08B190002D01B4C410A8014711
:08B19800C3FF01C2C410A801AD
:08B1A0004783004000C00001DC
:08B1A8008200812D01474200E5
:08B1B00001100201033FD1016F
:08B1B8006F01084000C0000116
:08B1C0008400812C01500111F3
:08B1C800044000C000018400F6
:08B1D000012D01C2C410A840CA
:08B1D80000C00001C7C0002CFB
:08B1E000FF01A1F100F7013CA1
:08B1E800C04000C0000182809C
:08B1F000002C4000C0000184A6
:08B1F800C0402C014742004059
:08B2000000C000018200812D55
:08B208000110020106302A01C9
:08B2100047C2FF014743004063
:08B2180000C000018400012DBB
:08B2200001B4C410A80147C3EA
:08B22800FF01C2C410A8014798
:08B23000430001474200013F09
:08B23800C2016F01084000C0D3
:08B2400000018580802C015003
:08B248008110044000C0000168
:08B250008500012D01C2C410AC
:08B25800A8013C4D4000C000BC
:08B26000018340002C010001F4
:08B268000230884000C0000123
:08B270009100002C01A1F16D19
:08B27800F6013C2D4000C0006E
:08B28000018340002C0147414D
:08B28800004000C000018380BA
:08B29000802D01108100063C35
:08B29800104000C000019140CC
:08B2A000002C01A1F13FF601B1
:08B2A8003BFF4000C0000183E0
:08B2B00040002C010001023BEB
:08B2B800F00147C1FF013FD97D
:08B2C0004000C00001834020A2
:08B2C8002C010001023BDA0138
:08B2D00047C1FF01301D4000E1
:08B2D800C000018340202C019D
:08B2E0004741004000C00001DD
:08B2E8008380602D011081003C
:08B2F000063BB64000C000015E
:08B2F8009140202C01A1F1E5B9
:08B30000F5013BA5016F0115E9
:08B308004000C00001914080EB
:08B310002D016FC1074000C0D0
:08B3180000019140602D40FC92
:08B320000706016F0100400067
:08B32800C000019240802C30AE
:08B33000000A016F010040005A
:08B33800C000019240C02C018D
:08B340006F01004000C0000194
:08B348009240002D50B3FCFF00
:08B3500000016F02FE019DF3F4
:08B35800024000C0000185C0A5
:08B36000C02C01AE4200E00127
:08B36800924300A0014702011D
:08B370000147030101A4EB01F8
:08B37800A7800101F2016F0141
:08B38000154000C000019140DE
:08B38800802D016FC107400098
:08B39000C000019140602D4056
:08B39800FCC700016F01004039
:08B3A00000C000019240802C66
:08B3A80030000A016F011040A2
:08B3B00000C000019240C02C16
:08B3B800300001016F010040AB
:08B3C00000C000019240002DC5
:08B3C80050B4FCFF00016F020C
:08B3D0000A019DF30230000A9E
:08B3D800016F031001AE4200F9
:08B3E000E001924300A00147C7
:08B3E80002010147030101A469
:08B3F000EB01A7800101F2004E
:08B3F800540003001F000000D7
:08B400005400000011000000DF
:08B40800070000002100000014
:08B4100000000000FF01000034
:08B41800400000001F000000CD
:08B42000000000000000000024
:08B42800540003001F000000A6
:08B43000A4020000400000002E
:08B438000700000010000000F5
:08B4400000000000FF01000004
:08B44800400000001F0000009D
:08B450000000000000000000F4
:08B4580001A20018B8FC014735
:08B460001BFE019E5B04C050BD
:08B4680000D0FF00019D25004A
:08B47000300010019D2D004089
:08B4780053C900016FC1E60198
:08B480005801124C300A0C01C6
:08B48800904090A00158011250
:08B490004C300A0C019040A0B1
:08B49800A0015801124C300A1A
:08B4A0000C019040B0A0300A3D
:08B4A8000C01900070A04003AC
:08B4B000C000019100A03E4024
:08B4B80003C000019100C03E39
:08B4C000016F017C4003C00094
:08B4C800019140203F016F01DA
:08B4D000044003C0000191409B
:08B4D800403F016F4100300A02
:08B4E0000C01904040A0400364
:08B4E800C000019000F03E409D
:08B4F00003C000019000603F61
:08B4F8004003C0000190007048
:08B500003F4003C00001900070
:08B50800003F016F4100400308
:08B51000C000019040803F01E2
:08B518006F410050B4FCFF007C
:08B52000016A4080E5016FC2E1
:08B528003101A2F15851FF01AD
:08B530008E5B04C001471B0201
:08B5380001F2300A0C01AC40E5
:08B5400010A0014601100002F9
:08B548003FF0300A0C01AC4099
:08B5500000A001F2300A0C0119
:08B55800AC4010A001534110AA
:08B560000001F201471BF40198
:08B56800939B00C00193DB80FE
:08B57000C001931B01C101930E
:08B578005B81C1019E1B00C2B2
:08B58000019EDB8CC2300A0CB5
:08B5880001AC8060A0015482B7
:08B590003000300A0C0190802C
:08B5980060A04003C000018027
:08B5A00080603F01000202304F
:08B5A800394000C000018600DB
:08B5B00081202003019DF3F945
:08B5B800300A0C01AC8020A058
:08B5C000014602000103301AEC
:08B5C8004000C0000186408133
:08B5D0002001104401023FE0DC
:08B5D80001A7050101A4D9013E
:08B5E00030B74003C0000180F8
:08B5E80080703F0100020230F7
:08B5F000394000C00001860093
:08B5F80081202003019DF3F9FD
:08B60000300A0C01AC8020A00F
:08B60800014602000203301AA2
:08B610004000C00001864081EA
:08B618002001104401023FE093
:08B6200001A7050101A4D901F5
:08B62800306F4003C0000180F7
:08B6300080803F01000202309E
:08B638001F4003C000018080E7
:08B64000903E010002023010EF
:08B64800300A0C01AC0021A046
:08B650000146040008033FE17C
:08B658004000C00001860081E2
:08B66000202003019DF3F930E5
:08B668000A0C01AC8010A001E6
:08B670004602000203301A40FB
:08B6780000C0000186408120A2
:08B6800001104401023FE0014A
:08B68800A7050101A4D901305E
:08B6900008300A0C0190400093
:08B69800A001869B00C00186A1
:08B6A000DB80C001861B01C123
:08B6A80001865B81C1018E1BCC
:08B6B00000C2018EDB8CC20117
:08B6B800471B0A01F24003C028
:08B6C00000018300A13E4003DC
:08B6C800C0000183C0C03E0177
:08B6D00040C440140100040510
:08B6D80030192002016F04800B
:08B6E0000140C440104003C00A
:08B6E800000183C0A03E0140F7
:08B6F000C4401401F201471BE4
:08B6F800F601939B00C00193D1
:08B70000DB80C001931B01C1B5
:08B7080001935B81C1019E5B0E
:08B7100004C24003C0000183E4
:08B71800C0A03E4003C0000187
:08B720008380C03E0110C2004D
:08B728000230CA4003C0000119
:08B730008142903F01474200F5
:08B73800015382F01F4003C021
:08B7400000019180C03E4003AE
:08B74800C000018080E03E0119
:08B7500000020230814003C039
:08B75800000183C0403F01A184
:08B76000F15FFF0110C40005B8
:08B76800306C4003C0000190A9
:08B7700000E03E4003C00001AF
:08B778008000F13E0100040213
:08B780003015300A0C018000B5
:08B7880061A00154042100300E
:08B790000A0C01900061A040C9
:08B7980003C000018000013F25
:08B7A000010004023015300A1B
:08B7A8000C01800061A00154B6
:08B7B000041100300A0C0190A5
:08B7B8000061A04003C0000184
:08B7C0008000113F01000402AA
:08B7C800300C016F4404300A4B
:08B7D0000C01900001A00186AC
:08B7D8009B00C00186DB80C06C
:08B7E00001861B01C101865B1B
:08B7E80081C1018E5B04C20166
:08B7F000471B0A01F2016FC1C1
:08B7F800FF01869B00C00186E1
:08B80000DB80C001861B01C1C1
:08B8080001865B81C1018E5B2A
:08B8100004C201471B0A01F20A
:08B8180001F74016C000016FAA
:08B820001B8E01471BF0019390
:08B828005B00C001939B80C08E
:08B8300001931B01C1019E1BE5
:08B8380080C10193DB00C20195
:08B840009E5B84C2019E5B09BE
:08B84800C3019E5B8BC350009D
:08B85000D0FF00019D2500302E
:08B858000010019D2D00300AD3
:08B860000C01804030A0010042
:08B868000105301D015341F000
:08B8700007014601400003300E
:08B8780057014601C000033036
:08B880004C01460100010330F8
:08B888003001865B00C001865F
:08B890009B80C001861B01C171
:08B89800018E1B80C10186DB5B
:08B8A00000C2018E5B84C201AD
:08B8A8008E5B09C3018E5B8B6E
:08B8B000C301471B1001F70161
:08B8B800F4300A0C018140206C
:08B8C000A04003C0000190400C
:08B8C800803E013FBC013FB9C5
:08B8D000300A0C01814000A0C8
:08B8D8004003C0000181C080A3
:08B8E0003F01000302302A01C0
:08B8E80020C104033010016FC0
:08B8F00041004003C00001907B
:08B8F80040903E0130400120A8
:08B90000410403300C4003C0B8
:08B9080000019000903E0130A7
:08B910002D4003C0000190006E
:08B91800903E4003C0000183D2
:08B9200000A13E4003C000013C
:08B928009044903F01474400E8
:08B93000015304F11F4003C0A4
:08B9380000019100A13E300A5C
:08B940000C01804010A001463B
:08B94800011000033F824003DF
:08B95000C000018040E03E014F
:08B95800000103308501A1F19B
:08B9600060FD4003C0000180FE
:08B9680040203F0110440007DC
:08B970003070016F410040033B
:08B97800C000019040E03E40D8
:08B9800003C000018040F03E0D
:08B98800010001023015300A34
:08B990000C01804060A001538E
:08B9980041D00F300A0C0190B0
:08B9A0004060A04003C000015B
:08B9A8008040003F0100010294
:08B9B0003015300A0C01804043
:08B9B80060A0015341E00F30D3
:08B9C0000A0C01904060A04058
:08B9C80003C000018040103FA4
:08B9D00001000102300C016FBF
:08B9D800C104300A0C0190408B
:08B9E00000A0013EA42EA92ED7
:08B9E800A5A3A1A2AC2EAAA8A0
:08B9F000A6A409602E2E2E2EE4
:08B9F8002E2E71312E2E2E7A45
:08BA0000736177322E2E63788A
:08BA0800646534332E2E207614
:08BA1000667472352E2E6E6281
:08BA1800686779362E2E2E6DB1
:08BA20006A7537382E2E2C6BDD
:08BA2800696F30392E2E2E2F1C
:08BA30006C3B702D2E2E2E2719
:08BA38002E5B3D2E2EAD2E0DFC
:08BA40005D2E5C2E2E2E2E2E31
:08BA48002E2E2E082E2E952E45
:08BA500093942E2E2E987F9294
:08BA58002E91901BAFAB2E975D
:08BA60002E2E96AE2E2E2E2E86
:08BA6800A72E2E2E2E2E2E2EED
:08BA70002E2E2E2E2E2E2E2E5E
:08BA78002E2E2E2E2E2E2E2E56
:08BA80002E2E2E2E2E2E2E2E4E
5977,24 → 5977,24
:08BAB8002E2E2E2E2E2E2E2E16
:08BAC0002E2E2E2E2E2E2E2E0E
:08BAC8002E2E2E2E2E2E2E2E06
:08BAD0002E2E097E2E2E2E2ED3
:08BAD8002E2E11212E2E2E1A34
:08BAE000130117402E2E03187C
:08BAE800040524232E2E201674
:08BAF000061412252E2E0E0291
:08BAF8000807195E2E2E2E0D29
:08BB00000A15262A2E2E3C0B2B
:08BB0800090F29282E2E3E3FF3
:08BB10000C3A105F2E2E2E22CC
:08BB18002E7B2B2E2E2E2E0D8C
:08BB20007D2E7C2E2E2E2E2E10
:08BB28002E2E2E082E2E2E2ECB
:08BB30002E2E2E2E2E2E7F2E4C
:08BB38002E2E2E1B2E2E2E2EA8
:08BB40002E2E2E2E2E2E2E2E8D
:08BB48002EA3A1A22E2E2E2E29
:08BB50002E2E2E2E2E2E2E2E7D
:08BB58002E2E2E2E2E2E2E2E75
:08BAD0002E2E2E2E2E2E2E2EFE
:08BAD8002E2E2E2E2E2E2EFA2A
:08BAE0002E2E2E2E2E2E2E2EEE
:08BAE8002E2E2E2E2E2E2E2EE6
:08BAF0002E2E097E2E2E2E2EB3
:08BAF8002E2E51212E2E2E5A94
:08BB0000534157402E2E43581B
:08BB0800444524232E2E205693
:08BB1000465452252E2E4E4230
:08BB18004847595E2E2E2E4D08
:08BB20004A55262A2E2E3C4B4B
:08BB2800494F29282E2E3E3F53
:08BB30004C3A505F2E2E2E222C
:08BB38002E7B2B2E2E2E2E0D6C
:08BB40007D2E7C2E2E2E2E2EF0
:08BB48002E2E2E082E2E2E2EAB
:08BB50002E2E2E2E2E2E7F2E2C
:08BB58002E2E2E1B2E2E2E2E88
:08BB60002E2E2E2E2E2E2E2E6D
:08BB68002E2E2E2E2E2E2E2E65
:08BB70002E2E2E2E2E2E2E2E5D
6004,1256 → 6004,1256
:08BB90002E2E2E2E2E2E2E2E3D
:08BB98002E2E2E2E2E2E2E2E35
:08BBA0002E2E2E2E2E2E2E2E2D
:08BBA8002E2E2E2E2E2E952EBE
:08BBB00093942E2E2E98999219
:08BBB8002E91902E2E2E2E97E7
:08BBC0002E2E962E2E5000DC03
:08BBC800FF0001AC4010000178
:08BBD000F25000DCFF000190BF
:08BBD80000100001F201F95018
:08BBE00000DCFF0001AC400095
:08BBE8000001A741C001F200B9
:08BBF00000000000000000004D
:08BBF800000000000000000045
:08BC000001A5CDBE202B016F50
:08BC08001BFE01471BFA019E1F
:08BC10005B04C0019E5B88C0CB
:08BC1800019E5B0AC1019D21A0
:08BC200000019DE9FF40F00A5C
:08BC280001019E40880201F7B2
:08BC300001A2F10F4A0301A17A
:08BC3800F123F601A1F10AEA73
:08BC400001A7400001A78000EC
:08BC4800016F860001A5CD0A81
:08BC500050D6FCFF00016A4020
:08BC580060E6016F060501A57D
:08BC6000CD0A01A7800101A734
:08BC680080005080FFFF000185
:08BC70006F050001A1F13A0388
:08BC780040C92701019000C042
:08BC800034019D330540C82783
:08BC880001016F013E016F0292
:08BC9000000198810028016FFA
:08BC9800860701A1F140030140
:08BCA000A2F1A34403012041BD
:08BCA800030230750120C10107
:08BCB000023032012001080BF3
:08BCB8003FE540C927010181AD
:08BCC000C0C034012303143B52
:08BCC800A1F1A00540C827010D
:08BCD0003B9043802F3B4743EA
:08BCD8000040C927013B90C0A8
:08BCE000C034013FBA40C9273E
:08BCE80001018140C03401009C
:08BCF00001023FAB016F0720C8
:08BCF80001404770140147C729
:08BD0000FF01A9C70C40C82790
:08BD0800010147013E01A70102
:08BD1000010147C1FF01A7C0BA
:08BD1800000199443020013FB5
:08BD20007E01A7000140C827C5
:08BD280001018144802F01009C
:08BD300001023F44012001085B
:08BD380008474400083FE60142
:08BD400020011102474400023A
:08BD4800302F012041130230ED
:08BD5000440120011E02300332
:08BD5800013F1D018E5B04C0D8
:08BD6000018E5B88C0018E5BBF
:08BD68000AC140F00A01019E2E
:08BD700040880201A5CDBF01CE
:08BD7800F201A1F1BA00010083
:08BD800008023EF401A7410195
:08BD880001A1F1EAE801A1F1BB
:08BD90002002013EE3014744DB
:08BD98000001A1F19A0001A7CE
:08BDA000010301000802A200EA
:08BDA80078BCFC01A1F1C7E821
:08BDB000014C4C830C016F866D
:08BDB8000001A7800001A78033
:08BDC00003016F810F01A1F1E5
:08BDC800A20401A70C0101A176
:08BDD000F1F70301A1F1B20338
:08BDD80001B18C430001A1F14F
:08BDE000380401474E00012068
:08BDE8000E020B3FE601A1F180
:08BDF000980301A7800301A1E3
:08BDF800F1E00D01B18C130014
:08BE0000012001080B6F810B0A
:08BE080001A1F15F0401474EA6
:08BE10000001200E020B3FE3CC
:08BE180001A1F1BE0D01474636
:08BE20000001408CC310011069
:08BE28004C030B3F9001A20046
:08BE300078BCFC01471BFE0178
:08BE38009E5B04C0019D331460
:08BE400001A7C00101A70002E7
:08BE48000181440020012001EA
:08BE50000808474400083FF018
:08BE5800018144002001A1F169
:08BE60002F0001000302301560
:08BE6800015807714001504729
:08BE7000700401474400014782
:08BE7800480001A4DB01A7470B
:08BE800000018E5B04C00147C4
:08BE88001B0201F20120010C74
:08BE90000B30430120410E09B3
:08BE9800300A014701F4016FBB
:08BEA000430001F201204110F2
:08BEA8000B302B012081110970
:08BEB000300B014D417003014C
:08BEB8006F430001F20120417B
:08BEC000180B3012012081195A
:08BEC80009300B014D4170052A
:08BED000016F430001F201A71C
:08BED800C00001F24001C000AE
:08BEE0000193C0863B202B01F9
:08BEE8006F1BFE01471BE60180
:08BEF0009E5B04C0019E5B880B
:08BEF800C0019E5B0AC1019329
:08BF00005B80C101939B00C2AC
:08BF08000193DB80C201931BD1
:08BF100001C301935B81C30131
:08BF1800939B01C40193DB813E
:08BF2000C401931B02C501934B
:08BF28005B82C501939B02C678
:08BF30002050019D210030802A
:08BF380000019D290001F70141
:08BF4000A1F133E701A7800025
:08BF480001A7800150D6FCFFA7
:08BF500000016F819901A1F1CC
:08BF5800620301A8470101A1E9
:08BF6000F14F00018E5B04C0EB
:08BF6800018E5B88C0018E5BB5
:08BF70000AC101865B80C101DA
:08BF7800869B00C20186DB80FC
:08BF8000C201861B01C301860A
:08BF88005B81C301869B01C42B
:08BF90000186DB81C401861B60
:08BF980002C501865B82C501B0
:08BFA000869B02C64001C000AF
:08BFA8000186C0863B01471B26
:08BFB000FE019E5B04C0019D2F
:08BFB800F304016FC60001A1B2
:08BFC000F15800014085521008
:08BFC8000147460001A4EF014E
:08BFD0008E5B04C001471B0257
:08BFD80001F201471BFE019E6E
:08BFE0005B04C001A780000111
:08BFE8006F011101A1F17C02BF
:08BFF000016F811001A1F17342
:08BFF80002016FC11101A1F16A
:08C000006A02016F810F01A12A
:08C00800F16102018E5B04C02E
:08C0100001471B0201F2014788
:08C018001BFC019E5B04C0014A
:08C020009E9B84C0016F4200E9
:08C0280001A1F13B0101A1F1AE
:08C030005603016F820901A112
:08C03800F1AA03016F820B0164
:08C04000A7C0000181450000CA
:08C048000120010050D5FCFFAE
:08C0500000026F435B012001B7
:08C058000450D5FCFF00026F4B
:08C06000C37A0120410450D60F
:08C06800FCFF00026F4383019D
:08C0700020010850D5FCFF007F
:08C07800026F03650120010CB9
:08C0800050D5FCFF00026F0324
:08C08800650120011050D5FCF8
:08C09000FF00026F03650120AF
:08C09800011450D5FCFF000269
:08C0A0006F0365012001185037
:08C0A800D5FCFF00026F0365E7
:08C0B0000120011C50D5FCFF2A
:08C0B80000026F036501200185
:08C0C0002050D5FCFF00026FC7
:08C0C800036501000303A1F16F
:08C0D000FB0302300301307B89
:08C0D8000181451000015841EF
:08C0E000104050CEFCFF0001EE
:08C0E800834120EB30FF000151
:08C0F0002001FC0A301250008F
:08C0F800FCFF000154C100002F
:08C1000001A1F1C80301302682
:08C10800015341F00050D3FC8B
:08C11000FF000183C1E0FE50B5
:08C1180000FCFF000154C3000C
:08C120000001A1F1F10801B3D7
:08C128004330E4013FC801812E
:08C1300045100050CDFCFF009A
:08C1380001814120F650CEFC0C
:08C14000FF00018D4124E6011E
:08C148006F010C30060C01919F
:08C150004000A0018E5B04C059
:08C15800018E9B84C001471B0E
:08C160000401F201471BFE017E
:08C168009E5B04C001A7050164
:08C1700001A1F1550001A1F14C
:08C178002D00018E5B04C001E3
:08C18000471B0201F201471BFD
:08C18800FE019E5B04C0016F83
:08C19000010801A1F1D5000135
:08C198008E5B04C001471B028D
:08C1A00001F201471BFE019EA4
:08C1A8005B04C001A1F1DAFF04
:08C1B00001A1F1D5FF01A1F18D
:08C1B800D0FF018E5B04C00101
:08C1C000471B0201F201471BBD
:08C1C800FE019E5B04C001585A
:08C1D00004445401A1F11A001E
:08C1D800015804445001A1F1DB
:08C1E0001000018E5B04C00198
:08C1E800471B0201F201471B95
:08C1F000FE019E5B04C0015832
:08C1F80004425401A1F11A00F8
:08C20000015804425001A1F1B4
:08C208001000018E5B04C0016F
:08C21000471B0201F201471B6C
:08C21800FE019E5B04C0015809
:08C2200004415401A1F11A00D0
:08C22800015804415001A1F18D
:08C230001000018E5B04C00147
:08C23800471B0201F201471B44
:08C24000FE019E5B04C00153E6
:08C2480044F00001204102094D
:08C2500047C1010147010C0187
:08C25800A1F11000018E5B044E
:08C26000C001471B0201F201BD
:08C26800471BFC019E5B04C0B2
:08C270000193DB81C001534181
:08C27800F00701A1F108E74005
:08C28000F8C7000154410080E1
:08C28800016F07150140C671AA
:08C2900018300001016CC70128
:08C29800000140C27124019273
:08C2A0004700A0014742000124
:08C2A8008E5B04C00186DB81FE
:08C2B000C001471B0401F2016B
:08C2B800471BFC019E5B04C062
:08C2C0000193DB81C001A7C15D
:08C2C8000101814700000100A3
:08C2D0000102300C01A1F19301
:08C2D800FF01474700013FE9A7
:08C2E000018E5B04C00186DB46
:08C2E80081C001471B0401F2B3
:08C2F00001471FFE019E5F04DF
:08C2F800000181450000012056
:08C300000100026F4100023050
:08C308006F01200104026F41E6
:08C31000000230640120410429
:08C31800026F410002305901DF
:08C32000200108026F810002F8
:08C32800304E0120010C026FF0
:08C33000C100023043012001AD
:08C3380010026F010102303810
:08C3400001200114026F41010C
:08C3480002302D012001180252
:08C350006F810102302201207F
:08C35800011C026FC10102305B
:08C360001701200120026F010A
:08C3680002038145100050CCD6
:08C37000FCFF0003814120E6FF
:08C37800018E5F040001471F64
:08C380000201F201471BFA0162
:08C388009E5B04C0019EDB8CEA
:08C39000C00193DB01C101FBB8
:08C398002037016F1FFE01A117
:08C3A000F152FF01A781020127
:08C3A800FA0147C1FF01A9C120
:08C3B0000C01A7C00101B1C599
:08C3B800410001A1F15BFE014F
:08C3C000A1F1C6FD0147470091
:08C3C80001A4EA018E5B04C030
:08C3D000018EDB8CC00186DB4D
:08C3D80001C101471B0601F23F
:08C3E00001471BFE019E5B04F6
:08C3E800C001814500000120A5
:08C3F00001000230740120413C
:08C3F8000002306D0120410438
:08C40000023066012001040274
:08C40800305F01200108023041
:08C41000580120010C0230511B
:08C418000120011002304A016D
:08C42000200114023043012049
:08C42800011802303C01200163
:08C430001C023035012001203F
:08C4380002302E016F011C010E
:08C44000A1F128FE01810501B4
:08C4480000015804414C01A160
:08C45000F1EFFD016F810B010A
:08C45800A1F110FE0181450075
:08C460000001A1F117000130F9
:08C46800040147C201018E5BD3
:08C4700004C001471B0201F2A8
:08C4780001471BFE019E5B045D
:08C48000C00153C1F1000140AD
:08C48800C7711001404770105C
:08C4900050D4FCFF00018147BC
:08C4980060E001A1F1CDFD50AF
:08C4A000D4FCFF00018147708C
:08C4A800E001A1F1BEFD50D43A
:08C4B000FCFF0001814780E060
:08C4B80001A1F1AFFD018E5B53
:08C4C00004C001471B0201F258
:08C4C80001471BFE019E5B040D
:08C4D000C001A1F1B4FC0181DF
:08C4D8004300E001A1F18CFD1D
:08C4E00001814310E001464117
:08C4E800000801A1F17DFD1324
:08C4F000302E01814320E00120
:08C4F8004641000801A1F16BAF
:08C50000FD13301C01814330E2
:08C50800E0014641000801A119
:08C51000F159FD13300A01810D
:08C518004340E001A1F14CFDDC
:08C5200001474200018E5B049B
:08C52800C001471B0201F201F2
:08C53000471BFC019E5B04C0E7
:08C538000193DB81C001A7C1E2
:08C5400001016F811C01A1F152
:08C5480022FD012087020A4FC9
:08C5500047A0000A47010C0A94
:08C55800A1F110FD015F47A0F5
:08C56000000147010C01A1F1EB
:08C5680002FD018E5B04C0011D
:08C5700086DB81C001471B04BA
:08C5780001F201471BFC019ECA
:08C580005B04C00193DB81C0E4
:08C5880001A7C101016F811838
:08C59000013FB201471BFC0151
:08C598009E5B04C00193DB81EE
:08C5A000C00140417010014090
:08C5A80047701050D4FCFF00A5
:08C5B00001814760E301A1F1E4
:08C5B800B2FC50D4FCFF0001AD
:08C5C000814770E301A1F1A322
:08C5C800FC50D4FCFF000181CE
:08C5D0004780E301200108038C
:08C5D800A1F190FC018E5B044F
:08C5E000C00186DB81C00147A8
:08C5E8001B0401F201471BFED8
:08C5F000019E5B04C0016F0114
:08C5F8000B01A1F16EFC018EA4
:08C600005B04C001471B0201AD
:08C60800F201471BFE019E5BDD
:08C6100004C0016F820D0181DD
:08C61800451000015341F00040
:08C6200001A1F173FF01A1F17A
:08C62800C7FF0181452000015C
:08C630005341F00301A1F1FBED
:08C63800FE018E5B04C0014706
:08C640001B0201F201471BFE81
:08C64800019E5B04C0016F823A
:08C650000D01814510000153AA
:08C6580041F00001A1F138FFDF
:08C6600001A1F18CFF018145ED
:08C668002000015341F0030121
:08C67000A1F1C0FE01A1F17867
:08C67800FF018145200001587B
:08C6800081114C0181C531005C
:08C688000153C7F100015887BE
:08C69000704001504710040145
:08C69800A1F198FE018E5B0484
:08C6A000C001471B0201F20179
:08C6A800471BFE019E5B04C06C
:08C6B000016F820D01814510AC
:08C6B800000181C521000153BE
:08C6C00041F000015807714030
:08C6C80001504710040147C1B5
:08C6D000000140414110016F1F
:08C6D800010901A1F18DFB0134
:08C6E000A1F1E6FA018E5B04F2
:08C6E800C001471B0201F20131
:08C6F000471BFE019E5B04C024
:08C6F800016F820D0181451064
:08C7000000015341F00001A10A
:08C70800F18DFE01A1F1E1FE3B
:08C710000181452000015341A5
:08C71800F00301A1F115FE017F
:08C72000A1F1CDFE01814520CD
:08C7280000015881114C018150
:08C73000C5310001588770407B
:08C738000150474004016FC1EC
:08C740000801A1F126FB016FC5
:08C74800010901A1F11DFB0133
:08C75000A1F176FA018E5B04F1
:08C75800C001471B0201F201C0
:08C76000471BFC019E5B04C0B5
:08C768000193DB81C0016F8227
:08C770000D018145200001814B
:08C77800C53100015881114C8C
:08C780000153C7F100015887C5
:08C7880070400150471004014C
:08C79000A1F104FE01A1F15822
:08C79800FE0181452000015360
:08C7A00041F00301A1F18CFD41
:08C7A800018E5B04C00186DB79
:08C7B00081C001471B0401F2E6
:08C7B80001471BFC019E5B041C
:08C7C000C00193DB81C0016F91
:08C7C800820D018145300001E2
:08C7D0005801114C0181C54123
:08C7D800000153C731000158B4
:08C7E0000771400150471004ED
:08C7E80001A1F147FD01A1F1DF
:08C7F000FFFD0181452000015D
:08C7F8005341F00301A1F133EC
:08C80000FD01A1F1EBFD018136
:08C80800452000015881114C8C
:08C810000181C531000153C78D
:08C81800F10001588770400196
:08C820005047100401A1F10BC7
:08C82800FD018E5B04C00186D6
:08C83000DB81C001471B04017C
:08C83800F201471BFC019E5BAD
:08C8400004C00193DB81C0017B
:08C848006F820D018145200003
:08C85000015881114C0181C562
:08C8580031000153C7F100019A
:08C86000588770400150471099
:08C868000401A1F1C6FC01A1CD
:08C87000F17EFD01814520006D
:08C87800015341F00301A1F19D
:08C88000B2FC018E5B04C00153
:08C8880086DB81C001471B049F
:08C8900001F201471BFC019EAF
:08C898005B04C00193DB81C0C9
:08C8A000016F820D018145309A
:08C8A80000015801114C01814F
:08C8B000C541000153C731002E
:08C8B8000158077140015047CF
:08C8C000100401A1F1B8FC0114
:08C8C800A1F125FD01814520CD
:08C8D00000015341F00301A136
:08C8D800F1A4FC01A1F111FD26
:08C8E00001814520000158818F
:08C8E800114C0181C531000172
:08C8F00053C7F10001588770E5
:08C8F80040015047100401A1AA
:08C90000F17CFC018E5B04C018
:08C908000186DB81C001471B21
:08C910000401F201F201471BD2
:08C91800FC019E5B04C0016FED
:08C92000820D01814520000198
:08C928005881114C0181C53159
:08C93000000153C73100014072
:08C9380047102401A1F158FC95
:08C9400001A1F1ACFC018145ED
:08C948002000015341F003013E
:08C95000A1F1E0FB01A1F19847
:08C95800FC018145300001588B
:08C9600001114C0181C54100E9
:08C96800014047102C01A1F170
:08C970005100018E5B04C001BF
:08C97800471B0401F201471BFB
:08C98000FE019E5B04C0018171
:08C98800452000015341F003BA
:08C9900001A1F19FFB01A1F1DF
:08C9980057FC0181422000015F
:08C9A0005881114C0181C231E4
:08C9A80000014047102401A129
:08C9B000F11000018E5B04C0D0
:08C9B80001471B0201F20147D7
:08C9C0001BFC019E5B04C00199
:08C9C800931B81C001A70101CE
:08C9D000016FC10801A1F19300
:08C9D800F8016F010901A1F152
:08C9E0008AF830FF000120C4B9
:08C9E800FF09A1F1DCF70930A1
:08C9F000110120C43F09A1F16F
:08C9F800F8F709300501A1F177
:08CA000018F8018E5B04C0016F
:08CA0800861B81C001471B04DD
:08CA100001F250CCFCFF000113
:08CA18008D0124E0018145407D
:08CA200000015881104C01F2E5
:08CA28000181453000015801B5
:08CA3000114C01F20181455097
:08CA380000015341F00001F27E
:08CA4000018145200001534172
:08CA4800F00001F201471BFEA2
:08CA5000019E5B04C050AAAA7C
:08CA5800AA00016F8AAA4055F3
:08CA60005555016F4B5501A172
:08CA6800F128001010405555A3
:08CA700055016F4A5550AAAAB6
:08CA7800AA00016F8BAA01A1C5
:08CA8000F11000018E5B04C0FF
:08CA880001471B0201F2014706
:08CA90001BFE019E5B04C001C6
:08CA9800A7CA0C01A74B0D20F9
:08CAA00060016F320040F3FF5A
:08CAA80000019DF3FF01A7004E
:08CAB000020192F20C00019258
:08CAB800724D0001473202201B
:08CAC0000F015332F1FF0100E8
:08CAC80004025832434C026FD6
:08CAD0000200026F460002A102
:08CAD800F117F701A4D320605F
:08CAE000016F320040F3FF007A
:08CAE800019DF3FF0184C50C60
:08CAF000000184454D00011016
:08CAF800B30203A7F30103A13F
:08CB0000F142000110F50203EF
:08CB0800A7F50103A1F13500BE
:08CB100001473202200F01531E
:08CB180032F1FF010004025894
:08CB200032434C026F020002D7
:08CB28006F860002A1F1C2F6C4
:08CB300001A4B91010018E5B95
:08CB380004C001471B0201F2D9
:08CB400001471BFC019E5B0490
:08CB4800C0019EDB8CC050CB44
:08CB5000FCFF00016A4030FC0B
:08CB5800016F0200016F86006D
:08CB6000014006621001A1F181
:08CB680052F701A7320101A1FF
:08CB7000F157F601A1F112F6E4
:08CB780001A7070101A1F14929
:08CB8000F6019D330401A780BA
:08CB880000014746000147329D
:08CB9000010185F2010001A77B
:08CB9800070101A1F12BF601D8
:08CBA000A4E301474800015322
:08CBA80008F2000120C803029D
:08CBB0009D7300018E5B04C0BF
:08CBB800018EDB8CC001471B5C
:08CBC0000401F24D656D6F7276
:08CBC80079206661696C656467
:08CBD0002061743A20004000CE
:08CBD800C000018540802C0122
:08CBE0005841224C015841327A
:08CBE8004030FC0701538200FC
:08CBF000C04000F80F0153C31F
:08CBF80000000150C21004010D
:08CC0000F2001CCA28CA1CCA7C
:08CC08001CCA1CCA28CA1CCA80
:08CC100028CA28CA34CA40CA30
:08CC18001CCA1CCA1CCA1CCA7C
:08CC20001CCA00005400A8002A
:08CC2800FC005001A401F80119
:08CC30004C02A002F4024803CB
:08CC38009C03F003440498047E
:08CC4000EC0440059405E80531
:08CC48003C069006E4063807E3
:08CC50008C07E0073408880896
:08CC5800DC0830098409D80949
:08CC60002C0A03030303030384
:08CC68000303030303030303AC
:08CC700003030404040404049E
:08CC7800040404040404040494
:08CC800004040404040404048C
:08CC8800040404040404040484
:08CC9000040403030303030382
:08CC980003030303030303037C
:08CCA000030305040501010175
:08CCA80005040505050505055D
:08CCB000050505050105050558
:08CCB800010105010101010168
:08CCC000010101010101010164
:08CCC800010101010105050550
:08CCD000050401010501010149
:08CCD800010405040101010142
:08CCE00001010505050505052C
:08CCE800050101010105050130
:08CCF00005050505050501011C
:08CCF800050605050505010410
:08CD000005040305060303040A
:08CD08000404040406040505FF
:08CD10000505050505050505F3
:08CD1800050101010101010107
:08CD20000101050505050101F3
:08CD28000506030503050301E4
:08CD30000101010101010101F3
:08CD38000101010101010101EB
:08CD40000101010101010101E3
:08CD48000101010101010101DB
:08CD50000101040204020205C6
:08CD58000402020202020201C2
:08CD60000102000000000000C8
:08CD68000000000000000000C3
:08CD70000000010101010101B5
:08CD78000101010101010101AB
:08CD800001010202020202029D
:08CD8800020202020202020293
:08CD9000020203030303030385
:08CD980003030303030303037B
:08CDA000030304050607070761
:08CDA80008090A0A0A0A0A0A36
:08CDB0000A0A040B070A0A0A33
:08CDB80007070C070707070736
:08CDC000070707070707070733
:08CDC80007070707070A0A0A22
:08CDD0000A0D07070E07070713
:08CDD800070504060707070721
:08CDE00007070F0F0F0F0F0FE3
:08CDE8000F070707070F0F07F3
:08CDF0000F0F0F0F0F0F0707D3
:08CDF8000F10111212110726A1
:08CE00000F1314151617181981
:08CE080019051A1B1C1D0F0F78
:08CE10000F0F1E1E1E1E1E1E48
:08CE18001E07070707070707C3
:08CE200007071E1E1E1E070776
:08CE28001F2007070707070799
:08CE30000707070707070707C2
:08CE38000707070707070707BA
:08CE40000707070707070707B2
:08CE48000707070707070707AA
:08CE5000070721072207072351
:08CE580024070707070707077D
:08CE6000072509C644C6A7C658
:08CE6800EFC6B8C739C892C833
:08CE700013C915C97DC913C9DE
:08CE780013C913C97DC913C9D8
:08CE800013C913C913C913C93A
:08CE880013C913C913C913C932
:08CE900013C913C913C913C92A
:08CE98005FC713C913C913C9D8
:08CEA00013C913C913C913C91A
:08CEA80013C913C913C913C912
:08CEB00013C963D663D663D6F3
:08CEB80063D663D663D663D68E
:08CEC00063D663D663D663D686
:08CEC80063D663D663D663D67E
:08CED00063D676D576D576D540
:08CED80076D576D576D576D526
:08CEE00076D576D576D576D51E
:08CEE80076D576D576D576D516
:08CEF00076D579D579D579D505
:08CEF80079D579D579D579D5FA
:08CF000079D579D579D579D5F1
:08CF080079D579D579D579D5E9
:08CF100079D56BD56BD56BD50B
:08CF18006BD56BD56BD56BD511
:08CF20006BD56BD56BD56BD509
:08CF28006BD56BD56BD56BD501
:08CF30006BD5F0FFF1FFF2FFE9
:08CF3800F3D5F3D5F3D567D55D
:08CF400032D52AD5B306DED577
:08CF480080D532D5B606E6D50E
:08CF500088D5F3FFB906F3D503
:08CF58003ED5F0D590D5F3D5CC
:08CF6000F3D5F4FFF3D5F3D57E
:08CF6800F3D5F3D5F3D5F3D5A1
:08CF7000F3D5F3D5F3D5F3D599
:08CF7800F3D5F3D5F3D5F3D591
:08CF8000F3D5F3D5F3D5F3D589
:08CF880012D518D51ED50BD5FA
:08CF9000A4D5F3D5F3D5C206C8
:08CF9800F3D5F3D5F3D5F3D571
:08CFA000F5FFF6FFF7FFF3D5E2
:08CFA800F3D5F3D5F3D5F3D561
:08CFB000F3D59AD59CD59FD55D
:08CFB800A1D5ABD5ADD5C5D55F
:08CFC000F3D5F3D5F3D5F3D549
:08CFC800C0D5CB06F3D5C7D597
:08CFD000CD0610D612D617D6CB
:08CFD8003AD6F3D5F3D5D206D9
:08CFE000D306D406D506D606DF
:08CFE800D706F3D5A7D5D90641
:08CFF000DA0697D597D597D515
:08CFF8000DD6B0D540D6DE06CF
:08D00000F8FFCAD5CFD5F9FFF6
:08D00800D7D5B4D5B7D5BAD5D0
:08D01000BDD59AD59CD59FD532
:08D01800A1D5ABD5ADD5C5D5FE
:08D02000F3D5F3D5F3D5F3D5E8
:08D02800F3D5F3D5F3D5F3D5E0
:08D03000F3D5E606E70617D66A
:08D038003AD6F3D5F3D5D20678
:08D04000E806E906EA06EB062A
:08D04800EC06ED06F3D5F3D56B
:08D05000F3D5F3D5F3D5F3D5B8
:08D05800F3D5F3D5F3D5F3D5B0
:08D06000F3D5F3D5F3D5F3D5A8
:08D06800F3D5F3D5F3D5F3D5A0
:08D07000F3D5F3D5F3D5F3D598
:08D07800F3D5F3D5F3D5F3D590
:08D08000F3D5F3D5F3D5F3D588
:08D08800F3D5F3D5F3D5F3D580
:08D09000F3D5FAFFEBD50DD634
:08D0980007D60AD6FBFF30D6D3
:08D0A0003CD6F206F30673D53D
:08D0A80014D604D6F3D5F3D52C
:08D0B00094D527D533D6DBD55A
:08D0B8007DD52ED536D6E2D558
:08D0C00084D5FCD401D506D58E
:08D0C800F6D4F3D5F3D5F3D53E
:08D0D000F3D504070507F3D5B1
:08D0D800F3D5F3D5F3D5F3D530
:08D0E000F3D5F3D5F3D5F3D528
:08D0E800F3D5F3D5F3D5F3D520
:08D0F000F3D5F3D5F3D5F3D518
:08D0F800F3D5F3D5F3D5F3D510
:08D10000F3D5F3D5F3D5F3D507
:08D10800F3D5F3D5F3D5F3D5FF
:08D11000F3D5F3D5F3D5F3D5F7
:08D11800F3D5F3D5F3D5F3D5EF
:08D12000F3D5F3D5F3D5F3D5E7
:08D12800F3D5F3D5F3D5F3D5DF
:08D13000F3D507070807090702
:08D138000A07F3D5F3D5F3D586
:08D14000F3D5F3D5F3D5F3D5C7
:08D14800F3D5F3D5F3D5F3D5BF
:08D15000F3D50C070D070E07D3
:08D158000F0710071107120771
:08D160001307F3D5F3D5F3D555
:08D16800F3D5F3D5F3D5F3D59F
:08D17000F3D5F3D5F3D5F3D597
:08D17800F3D5F3D5F3D5F3D58F
:08D18000F3D5F3D5F3D5F3D587
:08D18800F3D5F3D5F3D5F3D57F
:08D19000F3D5F3D5F3D5F3D577
:08D19800F3D5F3D5F3D5F3D56F
:08D1A000F3D5F3D5F3D5F3D567
:08D1A800F3D5F3D5F3D5F3D55F
:08D1B000F3D5F3D5F3D5F3D557
:08D1B800F3D5F3D5F3D5F3D54F
:08D1C000F3D5F3D5F3D5F3D547
:08D1C800F3D5F3D5F3D5F3D53F
:08D1D000F3D537D5EED58DD55E
:08D1D800180719071A073AD5E0
:08D1E0001C07F3D5F3D5F3D5CC
:08D1E800F3D5F3D5F3D5F3D51F
:08D1F000F3D5F3D5F3D5F3D517
:08D1F800F3D5F3D5F3D5F3D50F
:08D20000F3D5F3D5F3D5F3D506
:08D20800F3D5F3D5F3D5F3D5FE
:08D21000F3D5F3D5F3D5F3D5F6
:08D21800F3D5F3D5F3D5F3D5EE
:08D22000F3D5F3D5F3D5F3D5E6
:08D22800F3D5F3D5F3D5F3D5DE
:08D23000F3D5F3D5F3D5F3D5D6
:08D23800F3D5F3D5F3D5F3D5CE
:08D24000F3D5F3D5F3D5F3D5C6
:08D24800F3D5F3D5F3D5F3D5BE
:08D25000F3D519D620D6200702
:08D2580027D6F6D5FDD5F3D56C
:08D26000F3D5F3D5F3D5F3D5A6
:08D26800F3D5F3D5F3D5F3D59E
:08D27000F3D51CD623D62607D6
:08D278002BD6F9D500D6F3D541
:08D28000F3D5F3D5F3D5F3D586
:08D28800F3D5F3D5F3D5F3D57E
:08D29000F3D5F3D5F3D5F3D576
:08D29800F3D5F3D5F3D5F3D56E
:08D2A000F3D5F3D5F3D5F3D566
:08D2A800F3D5F3D5F3D5F3D55E
:08D2B000F3D5F3D5F3D5F3D556
:08D2B800F3D5F3D5F3D5F3D54E
:08D2C000F3D5F3D5F3D5F3D546
:08D2C800F3D5F3D5F3D5F3D53E
:08D2D000F3D52B07F3D52C0761
:08D2D8002D072E072F07300778
:08D2E00031073207F3D5F3D545
:08D2E800F3D533073407F3D539
:08D2F000F3D5F3D5F3D5F3D516
:08D2F800F3D5F3D5F3D5360799
:08D300003707380739073A0727
:08D30800F3D5F3D5F3D5F3D5FD
:08D31000F3D5F3D5F3D5F3D5F5
:08D31800F3D5F3D53607370702
:08D32000380739073A07F3D57D
:08D32800F3D5F3D5F3D5F3D5DD
:08D33000F3D5F3D5F3D5F3D5D5
:08D33800F3D5F3D5F3D5F3D5CD
:08D34000F3D5F3D5F3D5F3D5C5
:08D34800F3D5F3D5F3D5F3D5BD
:08D35000F3D5F3D5F3D5F3D5B5
:08D35800F3D5F3D5F3D5F3D5AD
:08D36000F3D5F3D5F3D5F3D5A5
:08D36800F3D5F3D5F3D5D4D5BC
:08D370003E073F0724D54107E9
:08D37800420743074407450783
:08D3800046074707480749076B
:08D388004A074B07F3D557D506
:08D3900062D547D542D551D505
:08D398004CD55CD5F3D5F3D5AB
:08D3A000F3D5F3D5F3D5F3D565
:08D3A800F3D5F3D5F3D5F3D55D
:08D3B000F3D54ED65BD656D62C
:08D3B80043D648D6F3D5F3D5A6
:08D3C000F3D5F3D5F3D5F3D545
:08D3C800F3D5F3D5F3D55B07A3
:08D3D0005C075D07F3D5F3D5FE
:08D3D800F3D5F3D5F3D5F3D52D
:08D3E000F3D5F3D5F3D5F3D525
:08D3E800F3D5F3D5F3D5B2D063
:08D3F00032D152D1D2D152D248
:08D3F800D2D2F2D26ED36ED343
:08D400008ED3AED3CED366201B
:08D40800206620206571206EF2
:08D4100065206C6520677420A3
:08D418006C74206765206C654F
:08D42000756774756C74756783
:08D42800657520202020202062
:08D43000202020202020703094
:08D438002070312070322070D9
:08D44000332070342070352008
:08D448007036207037207038A7
:08D450002070392070313070AA
:08D458003131703132703133C3
:08D46000703134703135633086
:08D468002063312063322063D0
:08D470003320633420633520F2
:08D4780063362063372063389E
:08D480002063392063313063A1
:08D488003131633132633133AD
:08D490006331346331357A7316
:08D49800206473206573206617
:08D4A0007320677320687320FC
:08D4A8007373206373207A7393
:08D4B0006C64736C65736C661B
:08D4B800736C67736C68736C00
:08D4C00073736C63736C7072EE
:08D4C8006120202074636B6CED
:08D4D000632020202020202011
:08D4D8006173647372202020CF
:08D4E000202020202020202044
:08D4E80020202020202020203C
:08D4F00020202020202031360D
:08D4F800616464F532616464B3
:08D50000F534616464F5386143
:08D508006464F53136616464CE
:08D5100075E93261646475E9FC
:08D518003461646475E93861B7
:08D52000646475E96162F361C6
:08D5280064E4616464E96164DC
:08D5300064F561646475E961B2
:08D538006EE4616E64E3616EB4
:08D54000646962666368E7623A
:08D5480066636CF2626665780F
:08D55000F46266657874F5626F
:08D5580066696EF36266696EFC
:08D5600073E962667365F46271
:08D568006974E962F26272EBE2
:08D570006273F2636CE9636D64
:08D57800F0636D70E96469F6CF
:08D58000646976E9646976F53F
:08D5880064697675E9656FF234
:08D59000656F72E9696DED6A37
:08D5980073F26CE26C62F56CA9
:08D5A000E36C63F56C64E96CB7
:08D5A8006469F36CE86C68F59E
:08D5B0006C6F6FF06C76E26C09
:08D5B80076E36C76E86C76F76F
:08D5C0006C767761F26CF76CE8
:08D5C80077F36D667370F26DDC
:08D5D000747370F26D6FF66DCB
:08D5D8006F76F36D75EC6D75C3
:08D5E0006CE96D756CF56D75C9
:08D5E8006C75E96E6FF06FF243
:08D5F0006F72E93F3FBF726F4B
:08D5F800EC726F6CE9726FF236
:08D60000726F72E97274E472AA
:08D6080074E57274E97274F319
:08D6100073E273E37365E97333
:08D61800E87368EC73686CE92B
:08D620007368F2736872E9738C
:08D628006872F573687275E980
:08D630007374F07375E2737569
:08D6380062F573F773796EE3EC
:08D640007379F3746C6265EE6E
:08D64800746C626469F3746CF8
:08D650006272647265E7746CFC
:08D658006277E9746C627772DD
:08D660007265E77473F454686D
:08D668006F72204465627567D2
:08D670006765722028432920A0
:08D678003230313520526F629F
:08D680006572742046696E63B7
:08D68800680001F74016C00024
:08D69000016F1B8E01471BFA1C
:08D6980001935B00C0019E5BE1
:08D6A00089C0019E5B0BC15023
:08D6A80000D0FF00019D2500E8
:08D6B000300010019D2D002047
:08D6B8000101C78080B30101EC
:08D6C000865B00C0018E5B894E
:08D6C800C0018E5B0BC101479C
:08D6D0001B0601F701F401F74C
:08D6D8004016C000016F1B8E1B
:08D6E00001471BFA01935B00F6
:08D6E800C0019E5B89C0019E98
:08D6F0005B0BC15000D0FF00EC
:08D6F800019D25003000100126
:08D700009D2D00200101C780EE
:08D70800C0B30101865B00C003
:08D71000018E5B89C0018E5BF4
:08D718000BC101471B0601F7DC
:08D7200001F401F701471FFAB3
:08D7280001935F0000019E5F08
:08D730008900019E5F0B01500E
:08D7380000D0FF00019D250057
:08D74000300010019D2D004096
:08D74800FC0706016F411520EA
:08D750000101924000B401A7A1
:08D758007F0130060C0191C0B5
:08D760000FA001A1F101EA0193
:08D768006F8600016F02000151
:08D770006F0700019DBC0401DC
:08D77800F701A9470F01F701B9
:08D780009D3C0401F701A87DA6
:08D788000101A1F1DAE90147FA
:08D790004200019D7C0401F739
:08D7980001A87D0101A1F1C708
:08D7A000E9014742000147477F
:08D7A800000120C70F0B3FC375
:08D7B000013FFD01865F00004E
:08D7B800018E5F8900018E5F04
:08D7C0000B0101471F0601F7F0
:08D7C80001F401F74016C00056
:08D7D000016F1B8E01471FFAD7
:08D7D80001935F0000019E5F58
:08D7E0008900019E5F0B01505E
:08D7E80000D0FF00019D2500A7
:08D7F000300010019D2D000125
:08D7F8006F010430060C0191E1
:08D800004000A0016F0100309F
:08D808000F0C01924080BE20CC
:08D810000101844040B401470E
:08D81800410020010192404093
:08D82000B401865F0000018ED7
:08D828005F8900018E5F0B0116
:08D8300001471F0601F701F496
:08D8380001F74016C000016F6A
:08D840001B8E01471BF8019348
:08D848005B00C0019E5B89C07A
:08D85000019E5B0BC1019E5B10
:08D8580084C15000D0FF000163
:08D860009D2500300010019D20
:08D868002D00016F01063006DE
:08D870000C01914000A0016FC2
:08D878004100300F0C01924049
:08D8800080BE4000C0000186DB
:08D8880040800001474100400F
:08D8900000C00001934080007C
:08D8980001865B00C0018E5BFC
:08D8A00089C0018E5B0BC10180
:08D8A8008E5B84C101471B08DF
:08D8B00001F701F401F7401635
:08D8B800C000016F1B8E014747
:08D8C0001BFA01935B00C0019B
:08D8C8009E5B89C0019E5B0B11
:08D8D000C15000D0FF00019DD2
:08D8D8002500300010019D2D18
:08D8E00000016F010830060C85
:08D8E80001914000A0016F81D5
:08D8F00000300F0C0192408092
:08D8F800BE200101C78080B4CD
:08D900000101865B00C0018EED
:08D908005B89C0018E5B0BC1BD
:08D9100001471B0601F701F4B9
:08D9180001F74016C000016F89
:08D920001B8E01935B00C001A6
:08D928009E5B89C001935B01C5
:08D93000C15000D0FF00019D71
:08D938002500016F011030060B
:08D940000C01914000A030FF32
:08D948000C01920000BE401822
:08D950000006016F0111200126
:08D9580001924000B401A85E39
:08D960000101A1F18FE9014072
:08D9680045101001A98107011F
:08D97000865B00C0018E5B899B
:08D97800C001865B01C101F74B
:08D9800001F401F7016F8110B1
:08D9880001A1F1FACF015441A5
:08D9900000005001D1FF00016D
:08D9980092400014016F81149C
:08D9A00001A1F1E2CF015441A5
:08D9A80000005001D1FF000155
:08D9B00092404014016FC11206
:08D9B80001A1F1CACF015441A5
:08D9C00000005001D1FF00013D
:08D9C80092408014016F8202FD
:08D9D000016F060001A85D01D2
:08D9D80001A1F18BE7016F8250
:08D9E00002016F460001A85E80
:08D9E8000101A1F17AE7016FD2
:08D9F0008600016F0200016FC7
:08D9F8000700019DBC0401F7CA
:08DA000001A9470F01F7019D88
:08DA08003C0401F701A87D01B7
:08DA100001A1F153E7014742B7
:08DA180000019D7C0401F701EF
:08DA2000A87D0101A1F140E71E
:08DA28000147420001474700DD
:08DA30000120C70F0B3FC301E9
:08DA38003FFD000000000000AA
:08DA400001A20082D9FC0000E4
:08DA480001A200B4D8FC0000AB
:08DA500001A20038D8FC00001F
:08DA580001A200CAD7FC000086
:08DA6000016F3F0001A200224A
:08DA6800D7FC000000000000E3
:08DA700001A20090A8FC0000D7
:08DA780001A20018D9FC000016
:08DA800001A2006C0700000088
:08DA880001A2006D070000007F
:08DA900001A200D6D6FC000043
:08DA980001A2008AD6FC000087
:08DAA00001F400000000000089
:08DAA80001F300000000000082
:08DAB00000000000000000006E
:08DAB800000000000000000066
:08DAC00000000000000000005E
:08DAC800000000000000000056
:08DAD00000000000000000004E
:08DAD800000000000000000046
:08DAE00000000000000000003E
:08DAE800000000000000000036
:08DAF00000000000000000002E
:08DAF800000000000000000026
:08DB000000000000000000001D
:08DB0800000000000000000015
:08DB100000000000000000000D
:08DB1800000000000000000005
:08DB20000000000000000000FD
:08DB28000000000000000000F5
:08DB30000000000000000000ED
:08DB38000000000000000000E5
:08DB40000000000000000000DD
:08DB48000000000000000000D5
:08DB50000000000000000000CD
:08DB58000000000000000000C5
:08DB60000000000000000000BD
:08DB68000000000000000000B5
:08DB70000000000000000000AD
:08DB78000000000000000000A5
:08DB800000000000000000009D
:08DB8800000000000000000095
:08DB900000000000000000008D
:08DB9800000000000000000085
:08DBA00000000000000000007D
:08DBA800000000000000000075
:08DBB00000000000000000006D
:08DBB800000000000000000065
:08DBC00000000000000000005D
:08DBC800000000000000000055
:08DBD00000000000000000004D
:08DBD800000000000000000045
:08DBE00000000000000000003D
:08DBE800000000000000000035
:08DBF00000000000000000002D
:08DBF800000000000000000025
:08DC000000000000000000001C
:08DC0800000000000000000014
:08DC100000000000000000000C
:08DC1800000000000000000004
:08DC20000000000000000000FC
:08DC28000000000000000000F4
:08DC30000000000000000000EC
:08DC38000000000000000000E4
:08DC40000000000000000000DC
:08DC48000000000000000000D4
:08DC50000000000000000000CC
:08DC58000000000000000000C4
:08DC60000000000000000000BC
:08DC68000000000000000000B4
:08DC70000000000000000000AC
:08DC78000000000000000000A4
:08DC800000000000000000009C
:08DC8800000000000000000094
:08DC900000000000000000008C
:08DC9800000000000000000084
:08DCA00000000000000000007C
:08DCA800000000000000000074
:08DCB00000000000000000006C
:08DCB800000000000000000064
:08DCC00000000000000000005C
:08DCC800000000000000000054
:08DCD00000000000000000004C
:08DCD800000000000000000044
:08DCE00000000000000000003C
:08DCE800000000000000000034
:08DCF00000000000000000002C
:08DCF800000000000000000024
:08DD000000000000000000001B
:08DD0800000000000000000013
:08DD100000000000000000000B
:08DD1800000000000000000003
:08DD20000000000000000000FB
:08DD28000000000000000000F3
:08DD30000000000000000000EB
:08DD38000000000000000000E3
:08DD40000000000000000000DB
:08DD48000000000000000000D3
:08DD50000000000000000000CB
:08DD58000000000000000000C3
:08DD60000000000000000000BB
:08DD68000000000000000000B3
:08DD70000000000000000000AB
:08DD78000000000000000000A3
:08DD800000000000000000009B
:08DD8800000000000000000093
:08DD900000000000000000008B
:08DD9800000000000000000083
:08DDA00000000000000000007B
:08DDA800000000000000000073
:08DDB00000000000000000006B
:08DDB800000000000000000063
:08DDC00000000000000000005B
:08DDC800000000000000000053
:08DDD00000000000000000004B
:08DDD800000000000000000043
:08DDE00000000000000000003B
:08DDE800000000000000000033
:08DDF00000000000000000002B
:08DDF800000000000000000023
:08DE000000000000000000001A
:08DE0800000000000000000012
:08DE100000000000000000000A
:08DE1800000000000000000002
:08DE20000000000000000000FA
:08DE28000000000000000000F2
:08DE30000000000000000000EA
:08DE38000000000000000000E2
:08DE40000000000000000000DA
:08DE48000000000000000000D2
:08DE50000000000000000000CA
:08DE58000000000000000000C2
:08DE60000000000000000000BA
:08DE68000000000000000000B2
:08DE70000000000000000000AA
:08DE78000000000000000000A2
:08DE800000000000000000009A
:08DE8800000000000000000092
:08DE900000000000000000008A
:08DE9800000000000000000082
:08DEA00000000000000000007A
:08DEA800000000000000000072
:08DEB00000000000000000006A
:08DEB800000000000000000062
:08DEC00000000000000000005A
:08DEC800000000000000000052
:08DED00000000000000000004A
:08DED800000000000000000042
:08DEE00000000000000000003A
:08DEE800000000000000000032
:08DEF00000000000000000002A
:08DEF800000000000000000022
:08DF0000000000000000000019
:08DF0800000000000000000011
:08DF1000000000000000000009
:08DF1800000000000000000001
:08DF20000000000000000000F9
:08DF28000000000000000000F1
:08DF30000000000000000000E9
:08DF38000000000000000000E1
:08DF40000000000000000000D9
:08DF48000000000000000000D1
:08DF50000000000000000000C9
:08DF58000000000000000000C1
:08DF60000000000000000000B9
:08DF68000000000000000000B1
:08DF70000000000000000000A9
:08DF78000000000000000000A1
:08DF8000000000000000000099
:08DF8800000000000000000091
:08DF9000000000000000000089
:08DF9800000000000000000081
:08DFA000000000000000000079
:08DFA800000000000000000071
:08DFB000000000000000000069
:08DFB800000000000000000061
:08DFC000000000000000000059
:08DFC800000000000000000051
:08DFD000000000000000000049
:08DFD800000000000000000041
:08DFE000000000000000000039
:08DFE800000000000000000031
:08DFF000000000000000000029
:08DFF800000000000000000021
:08E00000000000010000000215
:08E00800000000030001000408
:08E010000000000500000006FD
:08E018000001000700000000F8
:08E0200046004D0054004B00C6
:08E02800200049006E006900B0
:08E030007400690061006C003E
:08E0380069007A0069006E0026
:08E040006700000053007400AA
:08E04800610072007400540035
:08E05000610073006B00200069
:08E058006500720072006F0008
:08E0600072003A0020002500C7
:08E0680064000D000A00000035
:08E07000490064006C0065002A
:08E078005400610073006B000D
:08E080003A00200043005400A7
:08E0880052004C002D00430082
:08E09000200070007200650021
:08E098007300730065006400D1
:08E0A0002E000D000A00000033
:08E0A8004E006F00200065002E
:08E0B0006E00740072006900AB
:08E0B8006500730020006900FF
:08E0C0006E00200072006500F3
:08E0C8006100640079002000F2
:08E0D000710075006500750088
:08E0D80065002E0000000000AD
:08E0E00025003300640020005C
:08E0E800250033006400200054
:08E0F000200025003000320081
:08E0F800580020002000250063
:08E1000030003400580020003B
:08E1080025003000340058002E
:08E1100020002500300034005E
:08E11800580020002500300032
:08E12000380058002000250022
:08E128003000380058000D0022
:08E130000A0000005700610025
:08E138006900740069006E002B
:08E1400067002000740061007B
:08E1480073006B0073000D0071
:08E150000A0000002500330065
:08E158006400200025003300E3
:08E160006400200020002500EE
:08E168003000320058002000D5
:08E170002000250030003400FE
:08E178005800200025003000D2
:08E180003400580020002500C6
:08E188003000340058002000B3
:08E190002500300038005800A2
:08E198002000250030003800D2
:08E1A00058000D000A00000008
:08E1A800430050005500200067
:08E1B00050007200690020001C
:08E1B8005300740061007400C3
:08E1C00020005400610073000F
:08E1C8006B0020005000720002
:08E1D0006500760020004E00FE
:08E1D8006500780074002000CE
:08E1E000540069006D006500A8
:08E1E8006F00750074000D00CA
:08E1F0000A000000000000001D
:08E1F80000000000000000001F
:08E200006200610064002000CF
:08E20800760069006400650066
:08E210006F00200072006500A0
:08E2180067006E006F003A0080
:08E2200020002500640000004D
:08E228000000000000000000EE
:08E2300025002E003800340027
:08E23800730000000D000A0054
:08E2400024003E000000000074
:08E248000000000000000000CE
:08E250000000000000000000C6
:08E258000000000000000000BE
:08E260000000000000000000B6
:08E268000000000000000000AE
:08E270000000000000000000A6
:08E2780000000000000000009E
:08E28000000000000000000096
:08E2880000000000000000008E
:08E29000000000000000000086
:08E2980000000000000000007E
:08E2A000000000000000000076
:08E2A80000000000000000006E
:08E2B000000000000000000066
:08BBA8002E2E2E2E2E2E2E2E25
:08BBB0002E2E2E2E2E2E2E2E1D
:08BBB8002E2E2E2E2E2E2E2E15
:08BBC0002E2E2E2E2E2E2E2E0D
:08BBC8002E2E2E2E2E2E2E2E05
:08BBD0002E2E2E2E2E2E2E2EFD
:08BBD8002E2E2E2E2E2E2E2EF5
:08BBE0002E2E2E2E2E2E2E2EED
:08BBE8002E2E2E2E2E2E2E2EE5
:08BBF0002E2E097E2E2E2E2EB2
:08BBF8002E2E11212E2E2E1A13
:08BC0000130117402E2E03185A
:08BC0800040524232E2E201652
:08BC1000061412252E2E0E026F
:08BC18000807195E2E2E2E0D07
:08BC20000A15262A2E2E3C0B0A
:08BC2800090F29282E2E3E3FD2
:08BC30000C3A105F2E2E2E22AB
:08BC38002E7B2B2E2E2E2E0D6B
:08BC40007D2E7C2E2E2E2E2EEF
:08BC48002E2E2E082E2E2E2EAA
:08BC50002E2E2E2E2E2E7F2E2B
:08BC58002E2E2E1B2E2E2E2E87
:08BC60002E2E2E2E2E2E2E2E6C
:08BC68002EA3A1A22E2E2E2E08
:08BC70002E2E2E2E2E2E2E2E5C
:08BC78002E2E2E2E2E2E2E2E54
:08BC80002E2E2E2E2E2E2E2E4C
:08BC88002E2E2E2E2E2E2E2E44
:08BC90002E2E2E2E2E2E2E2E3C
:08BC98002E2E2E2E2E2E2E2E34
:08BCA0002E2E2E2E2E2E2E2E2C
:08BCA8002E2E2E2E2E2E2E2E24
:08BCB0002E2E2E2E2E2E2E2E1C
:08BCB8002E2E2E2E2E2E2E2E14
:08BCC0002E2E2E2E2E2E2E2E0C
:08BCC8002E2E2E2E2E2E952E9D
:08BCD00093942E2E2E989992F8
:08BCD8002E91902E2E2E2E97C6
:08BCE0002E2E962E2E5000DCE2
:08BCE800FF0001AC4010000157
:08BCF000F25000DCFF0001909E
:08BCF80000100001F201F950F7
:08BD000000DCFF0001AC400073
:08BD08000001A741C001F20097
:08BD1000086B6579626F617236
:08BD180064202020000000005F
:08BD200000000000000000001B
:08BD2800000000000000000013
:08BD300000000000000000000B
:08BD3800000000000000000003
:08BD40007EBDFCFF00000000C5
:08BD48000100000000000000F2
:08BD50000000000000000000EB
:08BD58000000000000000000E3
:08BD60000000000000000000DB
:08BD68000000000000000000D3
:08BD70000000000000000000CB
:08BD780001A2007EC2FC01F2F1
:08BD800001471BFE019E5B045C
:08BD8800C050BDFCFF00016A80
:08BD90004080F7016F823001D1
:08BD9800A2F1EA48FF018E5BF5
:08BDA00004C001471B02400131
:08BDA800C000018640071220D3
:08BDB0000401901D8003200432
:08BDB80001901D90032004011D
:08BDC000901DB0032004019066
:08BDC8001DC003200401901DC1
:08BDD000E003016F01102004E3
:08BDD80001905DA00301F201DE
:08BDE000471BFE01939B00C00C
:08BDE8004001C000018680004B
:08BDF0001220040183428003CC
:08BDF800015801224C01A74192
:08BE0000C00150811008018609
:08BE08009B00C001471B020171
:08BE1000F2016FC1FF4001C007
:08BE180000018640071220041E
:08BE200001905DD00301301315
:08BE28004001C000018640004A
:08BE3000122004019001D0036F
:08BE380001300001471BF0017D
:08BE4000939B00C0019E5B848E
:08BE4800C0019E5B09C1019ECF
:08BE50005B8BC10193DB00C212
:08BE5800019E5B88C2019E5BA4
:08BE60000AC35000D0FF0001ED
:08BE68009D2500300010019D32
:08BE70002D004001C000018E0D
:08BE7800400812300001019D99
:08BE8000290010101010101031
:08BE880010101010101001F75A
:08BE900020040183408023011E
:08BE98005801224C01A741C032
:08BEA0000110810003301201C2
:08BEA800FA2004018040D023C0
:08BEB000010001073FCC013045
:08BEB800F42003016F01C0300A
:08BEC000060C01914000A020D6
:08BEC800040181420025200461
:08BED0000181C0A023014742DB
:08BED800000110C2000AA7805E
:08BEE000002004019080902372
:08BEE80001FA0120013C0230C7
:08BEF000E5012001380230F4E5
:08BEF8000120010502310301E4
:08BF000020810402314A0120F6
:08BF080041160231430120C182
:08BF10001D023163012001163E
:08BF18000231770120811F02B4
:08BF2000318B012041040231C4
:08BF2800002004018080B02319
:08BF30002004019000B0230180
:08BF380046021000033F432004
:08BF400004018080C0230146CA
:08BF480002000802302C200465
:08BF5000018080C0230153822F
:08BF5800F0072004019080C0F5
:08BF6000232004019000B0232E
:08BF6800015341F00750BCFC3D
:08BF7000FF0001814150E601D0
:08BF78003033014602400002D3
:08BF80003012015341F007509B
:08BF8800BBFCFF0001814150E8
:08BF9000FE0130190146021008
:08BF98000250BAFCFF00038116
:08BFA0004150EE50B9FCFF0016
:08BFA80002814150FE01869B5D
:08BFB00000C0018E5B84C0019A
:08BFB8008E5B09C1018E5B8B59
:08BFC000C10186DB00C2018E05
:08BFC8005B88C2018E5B0AC315
:08BFD00001471B1001F22004DF
:08BFD800018080B023015482B6
:08BFE00010002004019080B064
:08BFE80023013E9620040180B4
:08BFF00080C023015482000807
:08BFF8002004019080C0230128
:08C000003E802004018080B0A5
:08C00800230146021000200490
:08C01000018180C0230254826B
:08C018004000035382B0FF2039
:08C0200004019080C023013EE1
:08C02800592004018080B023BF
:08C0300001460210002004018A
:08C038008180C0230254822024
:08C0400000035382D0FF20042D
:08C04800019080C023013E328B
:08C050002004018080B02301EF
:08C058004602100020040181E2
:08C0600080C02302548210008D
:08C06800035382E0FF200401F4
:08C070009080C023013E0B206B
:08C0780004018180C023015581
:08C08000820001200401908000
:08C08800C02301A1F13E0001FB
:08C090003DF02004018180C095
:08C0980023015582000220047F
:08C0A000019080C02301A1F111
:08C0A8002300013DD520040135
:08C0B0008180C02301558200CC
:08C0B800042004019080C02364
:08C0C00001A1F10800013DBAE5
:08C0C80001471BFE019E5B0411
:08C0D000C04000C00001900017
:08C0D800A0232004018040C0F8
:08C0E0002301460100014000AC
:08C0E800C000038040A0230307
:08C0F000544120004000C00093
:08C0F800039040A02320040185
:08C100008040C023014601004C
:08C10800024000C0000380406A
:08C11000A0230354414000404C
:08C1180000C000039040A023C9
:08C120002004018040C023014E
:08C12800460100044000C000C4
:08C13000038040A023035441E9
:08C1380010004000C00003905C
:08C1400040A023016F413B30D8
:08C14800000C01904000A00171
:08C15000A1F1A20001A1F12FF1
:08C15800000120813E4000C0FF
:08C1600000018040A023300023
:08C168000C01904000A001A1B0
:08C17000F1830001A1F11000B0
:08C17800018E5B04C001471BAE
:08C180000201F201471BFC0162
:08C188009E5B84C00193DB0003
:08C19000C0016F030501A1F1DC
:08C198005C0030000C01804046
:08C1A00010A001460100080394
:08C1A800302301A1F1A0000108
:08C1B00047C3FF010003033F38
:08C1B800DC0186DB00C0018EF2
:08C1C0005B84C001471B040170
:08C1C8006FC1FF01F230000C11
:08C1D00001AC4000A001A741F1
:08C1D800C030000C01900010C2
:08C1E000A00186DB00C0018E06
:08C1E8005B84C001471B040148
:08C1F000F201471BFC019E5BFC
:08C1F80084C00193DB00C001CB
:08C200006F830230000C01AC59
:08C208004010A00146010004F2
:08C2100002302301A1F1370007
:08C218000147C3FF010003030D
:08C220003FE10186DB00C001D3
:08C228008E5B84C001471B047A
:08C23000016FC1FF01F201865C
:08C23800DB00C0018E5B84C035
:08C24000016F010001471B041E
:08C2480001F201471BFC019308
:08C250005B80C001939B00C05C
:08C2580001A8720030D00301BF
:08C2600047012401A8B200010E
:08C26800104200073FF50186BA
:08C270009B00C001865B80C049
:08C2780001471B0401F201F76C
:08C2800001471FEC019E1F00A5
:08C288000001935F80000193A7
:08C290009F0001019E6089215D
:08C298000193DF0002019E5F2B
:08C2A0008802019E5F0A030100
:08C2A8009E5F8B0301931F014F
:08C2B0000401935F81045000BA
:08C2B800D0FF00019D250030BC
:08C2C0000010019D2D0040F06B
:08C2C8000A01018E40880230DA
:08C2D0000001019D290030006E
:08C2D8000C01AC4000A0300095
:08C2E0000C01900010A02004E5
:08C2E80001838080230158024C
:08C2F000324C01A782C001A736
:08C2F80002010147420020048D
:08C30000018140A1230110425C
:08C30800010AA780000110C228
:08C31000002004039044002505
:08C31800200403908080232023
:08C3200004018080C0230146E6
:08C32800022000023023012075
:08C33000410340F00A0102C7BD
:08C338000000050102301201B2
:08C3400020411C03300B0146F3
:08C3480002400003A200000006
:08C35000FC018E1F00000186B4
:08C358005F800001869F0001D7
:08C36000018E6089210186DFD6
:08C368000002018E5F88020152
:08C370008E5F0A03018E5F8B52
:08C378000301861F0104018688
:08C380005F810401471F140155
:08C38800F701F401F4000000CC
:08C390000000000000000000A5
:08C3980000000000000000009D
:08C3A000000000000000000095
:08C3A80000000000000000008D
:08C3B000000000000000000085
:08C3B80000000000000000007D
:08C3C000000000000000000075
:08C3C80000000000000000006D
:08C3D000000000000000000065
:08C3D80000000000000000005D
:08C3E000000000000000000055
:08C3E80000000000000000004D
:08C3F000000000000000000045
:08C3F80000000000000000003D
:08C4000001A5CDBE202B016F48
:08C408001BFE01471BFA019E17
:08C410005B04C0019E5B88C0C3
:08C41800019E5B0AC1019D2198
:08C4200000019DE9FF40F00A54
:08C4280001019E40880201F7AA
:08C4300001A1F176F901A1F16F
:08C4380048EF01A1F12BE30123
:08C44000A7400001A7800001E4
:08C448006F860001A5CD0A502A
:08C45000DEFCFF00016A40E080
:08C45800E6016F060501A5CD08
:08C460000A01A7800101A78079
:08C46800005080FFFF00016F8E
:08C47000050001A1F1390340B0
:08C47800C92701019000C03446
:08C48000019D330540C82701AE
:08C48800016F013E016F02008B
:08C490000198810028016F866C
:08C498000701A1F13F0301A11E
:08C4A000F173F90120410302D0
:08C4A80030750120C1010230D2
:08C4B00032012001080B3FE6F8
:08C4B80040C927010181C0C049
:08C4C00034012303143BA1F138
:08C4C800A00540C827013B90CC
:08C4D00043802F3B474300406D
:08C4D800C927013B90C0C034EC
:08C4E000013FBB40C927010127
:08C4E8008140C0340100010293
:08C4F0003FAC016F0720014081
:08C4F8004770140147C7FF0162
:08C50000A9C70C40C827010186
:08C5080047013E01A7010101FA
:08C5100047C1FF01A7C00001B3
:08C5180099443020013F7F012E
:08C52000A7000140C82701013A
:08C528008144802F0100010293
:08C530003F4501200108084706
:08C538004400083FE601200168
:08C54000110247440002302FF4
:08C548000120411302304401FF
:08C5500020011E023003013F2F
:08C558001E018E5B04C0018E80
:08C560005B88C0018E5B0AC17B
:08C5680040F00A01019E408829
:08C570000201A5CDBF01F2019B
:08C57800A1F1BA000100080264
:08C580003EF501A7410101A1F4
:08C58800F10CE201A1F1200217
:08C59000013EE40147440001F3
:08C59800A1F19A0001A70103C3
:08C5A00001000802A20077C4AB
:08C5A800FC01A1F1E9E1014CE5
:08C5B0004C830C016F860001B1
:08C5B800A7800001A780030128
:08C5C0006F810F01A1F1A2043B
:08C5C80001A70C0101A1F1F72C
:08C5D0000301A1F1B20301B166
:08C5D8008C430001A1F13804BD
:08C5E00001474E0001200E028C
:08C5E8000B3FE601A1F19803ED
:08C5F00001A7800301A1F1EA9B
:08C5F8000D01B18C13000120BC
:08C6000001080B6F810B01A181
:08C60800F15F0401474E00013F
:08C61000200E020B3FE301A123
:08C61800F1C80D0147460001C5
:08C62000408CC31001104C0313
:08C628000B3F9001A20077C452
:08C63000FC01471BFE019E5BAB
:08C6380004C0019D331401A7A9
:08C64000C00101A70002018105
:08C64800440020012001080854
:08C65000474400083FF001819E
:08C6580044002001A1F12F00B4
:08C6600001000302301501582E
:08C66800077140015047700406
:08C670000147440001474800A6
:08C6780001A4DB01A74700014A
:08C680008E5B04C001471B02A0
:08C6880001F20120010C0B304E
:08C69000430120410E09300AAC
:08C69800014701F4016F4300AA
:08C6A00001F2012041100B30F2
:08C6A8002B0120811109300B68
:08C6B000014D417003016F43CD
:08C6B8000001F2012041180B02
:08C6C00030120120811909303C
:08C6C8000B014D417005016FEB
:08C6D000430001F201A7C000C4
:08C6D80001F24001C0000193D2
:08C6E000C0863B202B016F1BFB
:08C6E800FE01471BE6019E5B09
:08C6F00004C0019E5B88C0013B
:08C6F8009E5B0AC101935B8007
:08C70000C101939B00C20193EB
:08C70800DB80C201931B01C399
:08C7100001935B81C301939BBF
:08C7180001C40193DB81C4019F
:08C72000931B02C501935B822B
:08C72800C501939B02C62050DD
:08C73000019D21003080000191
:08C738009D290001F701A1F1A8
:08C7400055E001A7800001A7EC
:08C74800800150DEFCFF00013E
:08C750006F819B01A1F16C0354
:08C7580001A8470101A1F14F06
:08C7600000018E5B04C0018E94
:08C768005B88C0018E5B0AC171
:08C7700001865B80C101869B7C
:08C7780000C20186DB80C20152
:08C78000861B01C301865B81E9
:08C78800C301869B01C4018678
:08C79000DB81C401861B02C518
:08C7980001865B82C501869B4E
:08C7A00002C64001C000018641
:08C7A800C0863B01471BFE01A6
:08C7B0009E5B04C0019DF3042F
:08C7B800016FC60001A1F15858
:08C7C000000140855210014701
:08C7C800460001A4EF018E5BA5
:08C7D00004C001471B0201F245
:08C7D80001471BFE019E5B04FA
:08C7E000C001A78000016F01F8
:08C7E8001101A1F17C02016FB7
:08C7F000811001A1F1730201A7
:08C7F8006FC11101A1F16A02F9
:08C80000016F810F01A1F1613C
:08C8080002018E5B04C0014730
:08C810001B0201F201471BFCB1
:08C81800019E5B04C0019E9B20
:08C8200084C0016F420001A178
:08C82800F13B0101A1F16003E5
:08C83000016F820901A1F1B4BE
:08C8380003016F820B01A7C090
:08C84000000181450000012008
:08C84800010050DDFCFF0002BD
:08C850006F435D01200104505B
:08C85800DDFCFF00026FC37C50
:08C860000120410450DEFCFF41
:08C8680000026F43850120016D
:08C870000850DDFCFF00026F1F
:08C8780003670120010C50DDF3
:08C88000FCFF00026F036701D9
:08C8880020011050DDFCFF004F
:08C89000026F0367012001148F
:08C8980050DDFCFF00026F03FC
:08C8A000670120011850DDFCC6
:08C8A800FF00026F036701208D
:08C8B000011C50DDFCFF000239
:08C8B8006F036701200120500D
:08C8C000DDFCFF00026F0367BD
:08C8C80001000303A1F10504C6
:08C8D00002300301307B0181FD
:08C8D800451000015841104019
:08C8E00050D6FCFF000183416A
:08C8E800A0EB30FF000120016C
:08C8F000FC0A30125000FCFFAD
:08C8F800000154C1000001A180
:08C90000F1D2030130260153BE
:08C9080041F00050DBFCFF00D0
:08C910000183C160FF5000FC2F
:08C91800FF000154C3000001FF
:08C92000A1F1FB0801B3433053
:08C92800E4013FC80181451044
:08C930000050D5FCFF0001815D
:08C9380041A0F650D6FCFF00FF
:08C94000018D41A4E6016F0125
:08C948000C30060C01914000C7
:08C95000A0018E5B04C0018E02
:08C958009B84C001471B040190
:08C96000F201471BFE019E5B82
:08C9680004C001A7050101A1B3
:08C97000F1550001A1F12D00B9
:08C97800018E5B04C001471BA6
:08C980000201F201471BFE0158
:08C988009E5B04C0016F010871
:08C9900001A1F1D500018E5B4D
:08C9980004C001471B0201F27B
:08C9A00001471BFE019E5B0430
:08C9A800C001A1F1DAFF01A1B9
:08C9B000F1D5FF01A1F1D0FF58
:08C9B800018E5B04C001471B66
:08C9C0000201F201471BFE0118
:08C9C8009E5B04C00158044409
:08C9D0005401A1F11A00015805
:08C9D80004445001A1F110001C
:08C9E000018E5B04C001471B3E
:08C9E8000201F201471BFE01F0
:08C9F0009E5B04C001580442E3
:08C9F8005401A1F11A000158DD
:08CA000004425001A1F11000F5
:08CA0800018E5B04C001471B15
:08CA10000201F201471BFE01C7
:08CA18009E5B04C001580441BB
:08CA20005401A1F11A000158B4
:08CA280004415001A1F11000CE
:08CA3000018E5B04C001471BED
:08CA38000201F201471BFE019F
:08CA40009E5B04C0015344F0A9
:08CA480000012041020947C171
:08CA5000010147010C01A1F1F5
:08CA58001000018E5B04C00117
:08CA6000471B0201F201471B14
:08CA6800FA019E5B04C001937A
:08CA7000DB81C001939B01C1B1
:08CA7800015341F00701A1F197
:08CA800029E001869B01C14081
:08CA8800F8C7000154410080D1
:08CA9000016F07150140C6719A
:08CA980018300001016CC70118
:08CAA000000140C27124019263
:08CAA8004700A0014742000114
:08CAB0008E5B04C00186DB81EE
:08CAB800C001471B0601F20159
:08CAC000471BFC019E5B04C052
:08CAC8000193DB81C001A7C14D
:08CAD000010181470000010093
:08CAD8000102300C01A1F189FB
:08CAE000FF01474700013FE997
:08CAE800018E5B04C00186DB36
:08CAF00081C001471B0401F2A3
:08CAF80001471FFE019E5F04CF
:08CB0000000181450000012045
:08CB08000100026F4100023040
:08CB10006F01200104026F41D6
:08CB1800000230640120410419
:08CB2000026F410002305901CF
:08CB2800200108026F810002E8
:08CB3000304E0120010C026FE0
:08CB3800C1000230430120019D
:08CB400010026F010102303800
:08CB480001200114026F4101FC
:08CB500002302D012001180242
:08CB58006F810102302201206F
:08CB6000011C026FC10102304B
:08CB68001701200120026F01FA
:08CB700002038145100050D4BE
:08CB7800FCFF00038141A0E66F
:08CB8000018E5F040001471F54
:08CB88000201F201471BFA0152
:08CB90009E5B04C0019EDB8CDA
:08CB9800C00193DB01C101FBA8
:08CBA0002037016F1FFE01A107
:08CBA800F152FF01A781020117
:08CBB000FA0147C1FF01A9C110
:08CBB8000C01A7C00101B1C589
:08CBC000410001A1F151FE0149
:08CBC800A1F1BCFD014747008B
:08CBD00001A4EA018E5B04C020
:08CBD800018EDB8CC00186DB3D
:08CBE00001C101471B0601F22F
:08CBE80001471BFE019E5B04E6
:08CBF000C00181450000012095
:08CBF80001000230740120412C
:08CC00000002306D0120410427
:08CC0800023066012001040264
:08CC1000305F01200108023031
:08CC1800580120010C0230510B
:08CC20000120011002304A015D
:08CC2800200114023043012039
:08CC3000011802303C01200153
:08CC38001C023035012001202F
:08CC400002302E016F011C01FE
:08CC4800A1F11EFE01810501AE
:08CC500000015804414C01A150
:08CC5800F1E5FD016F810B0104
:08CC6000A1F106FE018145006F
:08CC68000001A1F117000130E9
:08CC7000040147C201018E5BC3
:08CC780004C001471B0201F298
:08CC800001471BFE019E5B044D
:08CC8800C00153C1F10001409D
:08CC9000C7711001404770104C
:08CC980050DCFCFF00018147A4
:08CCA000E0E001A1F1C3FD5029
:08CCA800DCFCFF00018147F0F4
:08CCB000E001A1F1B4FD50DC2C
:08CCB800FCFF0001814700E1CF
:08CCC00001A1F1A5FD018E5B4D
:08CCC80004C001471B0201F248
:08CCD00001471BFE019E5B04FD
:08CCD800C001A1F1AAFC0181D9
:08CCE0004300E001A1F182FD17
:08CCE80001814310E001464107
:08CCF000000801A1F173FD131E
:08CCF800302E01814320E00110
:08CD00004641000801A1F161A8
:08CD0800FD13301C01814330D2
:08CD1000E0014641000801A109
:08CD1800F14FFD13300A018107
:08CD20004340E001A1F142FDD6
:08CD280001474200018E5B048B
:08CD3000C001471B0201F201E2
:08CD3800471BFC019E5B04C0D7
:08CD40000193DB81C001A7C1D2
:08CD480001016F811C01A1F142
:08CD500018FD012087020A4FC3
:08CD580047A0000A47010C0A84
:08CD6000A1F106FD015F47A0EF
:08CD6800000147010C01A1F1DB
:08CD7000F8FC018E5B04C00118
:08CD780086DB81C001471B04AA
:08CD800001F201471BFC019EBA
:08CD88005B04C00193DB81C0D4
:08CD900001A7C101016F811828
:08CD9800013FB201471BFC0141
:08CDA0009E5B04C00193DB81DE
:08CDA800C00140417010014080
:08CDB00047701050DCFCFF008D
:08CDB800018147E0E301A1F154
:08CDC000A8FC50DCFCFF00019F
:08CDC8008147F0E301A1F1999C
:08CDD000FC50DCFCFF000181B6
:08CDD8004700E40120010803FB
:08CDE000A1F186FC018E5B0449
:08CDE800C00186DB81C0014798
:08CDF0001B0401F201471BFEC8
:08CDF800019E5B04C0016F0104
:08CE00000B01A1F164FC018E9D
:08CE08005B04C001471B02019D
:08CE1000F201471BFE019E5BCD
:08CE180004C0016F820D0181CD
:08CE2000451000015341F00030
:08CE280001A1F173FF01A1F16A
:08CE3000C7FF0181452000014C
:08CE38005341F00301A1F1FBDD
:08CE4000FE018E5B04C00147F6
:08CE48001B0201F201471BFE71
:08CE5000019E5B04C0016F822A
:08CE58000D018145100001539A
:08CE600041F00001A1F138FFCF
:08CE680001A1F18CFF018145DD
:08CE70002000015341F0030111
:08CE7800A1F1C0FE01A1F17857
:08CE8000FF018145200001586B
:08CE880081114C0181C531004C
:08CE90000153C7F100015887AE
:08CE9800704001504710040135
:08CEA000A1F198FE018E5B0474
:08CEA800C001471B0201F20169
:08CEB000471BFE019E5B04C05C
:08CEB800016F820D018145109C
:08CEC000000181C521000153AE
:08CEC80041F000015807714020
:08CED00001504710040147C1A5
:08CED800000140414110016F0F
:08CEE000010901A1F183FB012E
:08CEE800A1F1DCFA018E5B04EC
:08CEF000C001471B0201F20121
:08CEF800471BFE019E5B04C014
:08CF0000016F820D0181451053
:08CF080000015341F00001A1FA
:08CF1000F18DFE01A1F1E1FE2B
:08CF1800018145200001534195
:08CF2000F00301A1F115FE016F
:08CF2800A1F1CDFE01814520BD
:08CF300000015881114C018140
:08CF3800C5310001588770406B
:08CF40000150474004016FC1DC
:08CF48000801A1F11CFB016FBF
:08CF5000010901A1F113FB012D
:08CF5800A1F16CFA018E5B04EB
:08CF6000C001471B0201F201B0
:08CF6800471BFC019E5B04C0A5
:08CF70000193DB81C0016F8217
:08CF78000D018145200001813B
:08CF8000C53100015881114C7C
:08CF88000153C7F100015887B5
:08CF900070400150471004013C
:08CF9800A1F104FE01A1F15812
:08CFA000FE0181452000015350
:08CFA80041F00301A1F18CFD31
:08CFB000018E5B04C00186DB69
:08CFB80081C001471B0401F2D6
:08CFC00001471BFC019E5B040C
:08CFC800C00193DB81C0016F81
:08CFD000820D018145300001D2
:08CFD8005801114C0181C54113
:08CFE000000153C731000158A4
:08CFE8000771400150471004DD
:08CFF00001A1F147FD01A1F1CF
:08CFF800FFFD0181452000014D
:08D000005341F00301A1F133DB
:08D00800FD01A1F1EBFD018126
:08D01000452000015881114C7C
:08D018000181C531000153C77D
:08D02000F10001588770400186
:08D028005047100401A1F10BB7
:08D03000FD018E5B04C00186C6
:08D03800DB81C001471B04016C
:08D04000F201471BFC019E5B9D
:08D0480004C00193DB81C0016B
:08D050006F820D0181452000F3
:08D05800015881114C0181C552
:08D0600031000153C7F100018A
:08D06800588770400150471089
:08D070000401A1F1C6FC01A1BD
:08D07800F17EFD01814520005D
:08D08000015341F00301A1F18D
:08D08800B2FC018E5B04C00143
:08D0900086DB81C001471B048F
:08D0980001F201471BFC019E9F
:08D0A0005B04C00193DB81C0B9
:08D0A800016F820D018145308A
:08D0B00000015801114C01813F
:08D0B800C541000153C731001E
:08D0C0000158077140015047BF
:08D0C800100401A1F1B8FC0104
:08D0D000A1F125FD01814520BD
:08D0D80000015341F00301A126
:08D0E000F1A4FC01A1F111FD16
:08D0E80001814520000158817F
:08D0F000114C0181C531000162
:08D0F80053C7F10001588770D5
:08D1000040015047100401A199
:08D10800F17CFC018E5B04C008
:08D110000186DB81C001471B11
:08D118000401F201F201471BC2
:08D12000FC019E5B04C0016FDD
:08D12800820D01814520000188
:08D130005881114C0181C53149
:08D13800000153C73100014062
:08D1400047102401A1F158FC85
:08D1480001A1F1ACFC018145DD
:08D150002000015341F003012E
:08D15800A1F1E0FB01A1F19837
:08D16000FC018145300001587B
:08D1680001114C0181C54100D9
:08D17000014047102C01A1F160
:08D178005100018E5B04C001AF
:08D18000471B0401F201471BEB
:08D18800FE019E5B04C0018161
:08D19000452000015341F003AA
:08D1980001A1F19FFB01A1F1CF
:08D1A00057FC0181422000014F
:08D1A8005881114C0181C231D4
:08D1B00000014047102401A119
:08D1B800F11000018E5B04C0C0
:08D1C00001471B0201F20147C7
:08D1C8001BFC019E5B04C00189
:08D1D000931B81C001A70101BE
:08D1D800016FC10801A1F189FA
:08D1E000F8016F010901A1F142
:08D1E80080F830FF000120C4B3
:08D1F000FF09A1F1D2F709309B
:08D1F800110120C43F09A1F15F
:08D20000EEF709300501A1F170
:08D208000EF8018E5B04C00169
:08D21000861B81C001471B04CD
:08D2180001F250D4FCFF0001FB
:08D220008D01A4E001814540ED
:08D2280000015881104C01F2D5
:08D230000181453000015801A5
:08D23800114C01F20181455087
:08D2400000015341F00001F26E
:08D24800018145200001534162
:08D25000F00001F201471BFE92
:08D25800019E5B04C050AAAA6C
:08D26000AA00016F8AAA4055E3
:08D268005555016F4B5501A162
:08D27000F12800101040555593
:08D2780055016F4A5550AAAAA6
:08D28000AA00016F8BAA01A1B5
:08D28800F11000018E5B04C0EF
:08D2900001471B0201F20147F6
:08D298001BFE019E5B04C001B6
:08D2A000A7CA0C01A74B0D20E9
:08D2A80060016F320040F3FF4A
:08D2B00000019DF3FF01A7003E
:08D2B800020192F20C00019248
:08D2C000724D0001473202200B
:08D2C8000F015332F1FF0100D8
:08D2D00004025832434C026FC6
:08D2D8000200026F460002A1F2
:08D2E000F10DF701A4D3206059
:08D2E800016F320040F3FF006A
:08D2F000019DF3FF0185F20C22
:08D2F800000185724D000110D8
:08D30000B30203A7F30103A12E
:08D30800F142000110F50203DF
:08D31000A7F50103A1F13500AE
:08D3180001473202200F01530E
:08D3200032F1FF010004025884
:08D3280032434C026F020002C7
:08D330006F860002A1F1B8F6BE
:08D3380001A4B91010018E5B85
:08D3400004C001471B0201F2C9
:08D3480001471BFC019E5B0480
:08D35000C0019EDB8CC050D32C
:08D35800FCFF00016A40B0FC7B
:08D36000016F0200016F86005D
:08D36800014006621001A1F171
:08D3700052F701A7320101A1EF
:08D37800F14DF601A1F108F6E8
:08D3800001A7070101A1F13F23
:08D38800F6019D330401A780AA
:08D3900000014746000147328D
:08D39800010185F2010001A76B
:08D3A000070101A1F121F601D2
:08D3A800A4E301474800015312
:08D3B00008F2000120C803028D
:08D3B8009D7300018E5B04C0AF
:08D3C000018EDB8CC001471B4C
:08D3C8000401F24D656D6F7266
:08D3D00079206661696C656457
:08D3D8002061743A20004000BE
:08D3E000C000018540802C0112
:08D3E8005841224C015841326A
:08D3F0004030FC0701538200EC
:08D3F800C04000F80F0153C30F
:08D4000000000150C2100401FC
:08D40800F20024D230D224D23C
:08D4100024D224D230D224D230
:08D4180030D230D23CD248D2E0
:08D4200024D224D224D224D22C
:08D4280024D200005400A8000A
:08D43000FC005001A401F80109
:08D438004C02A002F4024803BB
:08D440009C03F003440498046E
:08D44800EC0440059405E80521
:08D450003C069006E4063807D3
:08D458008C07E0073408880886
:08D46000DC0830098409D80939
:08D468002C0A03030303030374
:08D4700003030303030303039C
:08D4780003030404040404048E
:08D48000040404040404040484
:08D4880004040404040404047C
:08D49000040404040404040474
:08D49800040403030303030372
:08D4A00003030303030303036C
:08D4A800030305040501010165
:08D4B00005040505050505054D
:08D4B800050505050105050548
:08D4C000010105010101010158
:08D4C800010101010101010154
:08D4D000010101010105050540
:08D4D800050401010501010139
:08D4E000010405040101010132
:08D4E80001010505050505051C
:08D4F000050101010105050120
:08D4F80005050505050501010C
:08D500000506050505050104FF
:08D508000504030506030304FA
:08D510000404040406040505EF
:08D518000505050505050505E3
:08D520000501010101010101F7
:08D528000101050505050101E3
:08D530000506030503050301D4
:08D538000101010101010101E3
:08D540000101010101010101DB
:08D548000101010101010101D3
:08D550000101010101010101CB
:08D558000101040204020205B6
:08D560000402020202020201B2
:08D568000102000000000000B8
:08D570000000000000000000B3
:08D578000000010101010101A5
:08D5800001010101010101019B
:08D5880001010202020202028D
:08D59000020202020202020283
:08D59800020203030303030375
:08D5A00003030303030303036B
:08D5A800030304050607070751
:08D5B00008090A0A0A0A0A0A26
:08D5B8000A0A040B070A0A0A23
:08D5C00007070C070707070726
:08D5C800070707070707070723
:08D5D00007070707070A0A0A12
:08D5D8000A0D07070E07070703
:08D5E000070504060707070711
:08D5E80007070F0F0F0F0F0FD3
:08D5F0000F070707070F0F07E3
:08D5F8000F0F0F0F0F0F0707C3
:08D600000F1011121211072690
:08D608000F1314151617181971
:08D6100019051A1B1C1D0F0F68
:08D618000F0F1E1E1E1E1E1E38
:08D620001E07070707070707B3
:08D6280007071E1E1E1E070766
:08D630001F2007070707070789
:08D638000707070707070707B2
:08D640000707070707070707AA
:08D648000707070707070707A2
:08D6500007070707070707079A
:08D65800070721072207072341
:08D6600024070707070707076D
:08D66800072511CE4CCEAFCE18
:08D67000F7CEC0CF41D09AD0E3
:08D678001BD11DD185D11BD18E
:08D680001BD11BD185D11BD188
:08D688001BD11BD11BD11BD1EA
:08D690001BD11BD11BD11BD1E2
:08D698001BD11BD11BD11BD1DA
:08D6A00067CF1BD11BD11BD188
:08D6A8001BD11BD11BD11BD1CA
:08D6B0001BD11BD11BD11BD1C2
:08D6B8001BD16BDE6BDE6BDEA3
:08D6C0006BDE6BDE6BDE6BDE3E
:08D6C8006BDE6BDE6BDE6BDE36
:08D6D0006BDE6BDE6BDE6BDE2E
:08D6D8006BDE7EDD7EDD7EDDF0
:08D6E0007EDD7EDD7EDD7EDDD6
:08D6E8007EDD7EDD7EDD7EDDCE
:08D6F0007EDD7EDD7EDD7EDDC6
:08D6F8007EDD81DD81DD81DDB5
:08D7000081DD81DD81DD81DDA9
:08D7080081DD81DD81DD81DDA1
:08D7100081DD81DD81DD81DD99
:08D7180081DD73DD73DD73DDBB
:08D7200073DD73DD73DD73DDC1
:08D7280073DD73DD73DD73DDB9
:08D7300073DD73DD73DD73DDB1
:08D7380073DDF0FFF1FFF2FFC9
:08D74000FBDDFBDDFBDD6FDD0D
:08D748003ADD32DDE706E6DD03
:08D7500088DD3ADDEA06EEDD9A
:08D7580090DDF3FFED06FBDD9F
:08D7600046DDF8DD98DDFBDD7C
:08D76800FBDDF4FFFBDDFBDD3E
:08D77000FBDDFBDDFBDDFBDD51
:08D77800FBDDFBDDFBDDFBDD49
:08D78000FBDDFBDDFBDDFBDD41
:08D78800FBDDFBDDFBDDFBDD39
:08D790001ADD20DD26DD13DDAA
:08D79800ACDDFBDDFBDDF60654
:08D7A000FBDDFBDDFBDDFBDD21
:08D7A800F5FFF6FFF7FFFBDDC2
:08D7B000FBDDFBDDFBDDFBDD11
:08D7B800FBDDA2DDA4DDA7DD0D
:08D7C000A9DDB3DDB5DDCDDD0F
:08D7C800FBDDFBDDFBDDFBDDF9
:08D7D000C8DDFF06FBDDCFDD23
:08D7D800010718DE1ADE1FDE56
:08D7E00042DEFBDDFBDD060764
:08D7E8000707080709070A07FB
:08D7F0000B07FBDDAFDD0D07A7
:08D7F8000E079FDD9FDD9FDDA0
:08D8000015DEB8DD48DE120759
:08D80800F8FFD2DDD7DDF9FFC6
:08D81000DFDDBCDDBFDDC2DD80
:08D81800C5DDA2DDA4DDA7DDE2
:08D82000A9DDB3DDB5DDCDDDAE
:08D82800FBDDFBDDFBDDFBDD98
:08D83000FBDDFBDDFBDDFBDD90
:08D83800FBDD1A071B071FDED0
:08D8400042DEFBDDFBDD060703
:08D848001C071D071E071F0746
:08D8500020072107FBDDFBDDD1
:08D85800FBDDFBDDFBDDFBDD68
:08D86000FBDDFBDDFBDDFBDD60
:08D86800FBDDFBDDFBDDFBDD58
:08D87000FBDDFBDDFBDDFBDD50
:08D87800FBDDFBDDFBDDFBDD48
:08D88000FBDDFBDDFBDDFBDD40
:08D88800FBDDFBDDFBDDFBDD38
:08D89000FBDDFBDDFBDDFBDD30
:08D89800FBDDFAFFF3DD15DEF4
:08D8A0000FDE12DEFBFF38DE93
:08D8A80044DE260727077BDDA3
:08D8B0001CDE0CDEFBDDFBDDDC
:08D8B8009CDD2FDD3BDEE3DD0A
:08D8C00085DD36DD3EDEEADD08
:08D8C8008CDD04DD09DD0EDD3D
:08D8D000FEDCFBDDFBDDFBDDEE
:08D8D800FBDD38073907FBDD19
:08D8E000FBDDFBDDFBDDFBDDE0
:08D8E800FBDDFBDDFBDDFBDDD8
:08D8F000FBDDFBDDFBDDFBDDD0
:08D8F800FBDDFBDDFBDDFBDDC8
:08D90000FBDDFBDDFBDDFBDDBF
:08D90800FBDDFBDDFBDDFBDDB7
:08D91000FBDDFBDDFBDDFBDDAF
:08D91800FBDDFBDDFBDDFBDDA7
:08D92000FBDDFBDDFBDDFBDD9F
:08D92800FBDDFBDDFBDDFBDD97
:08D93000FBDDFBDDFBDDFBDD8F
:08D93800FBDD3B073C073D0746
:08D940003E07FBDDFBDDFBDD12
:08D94800FBDDFBDDFBDDFBDD77
:08D95000FBDDFBDDFBDDFBDD6F
:08D95800FBDD40074107420717
:08D96000430744074507460791
:08D968004707FBDDFBDDFBDDE1
:08D97000FBDDFBDDFBDDFBDD4F
:08D97800FBDDFBDDFBDDFBDD47
:08D98000FBDDFBDDFBDDFBDD3F
:08D98800FBDDFBDDFBDDFBDD37
:08D99000FBDDFBDDFBDDFBDD2F
:08D99800FBDDFBDDFBDDFBDD27
:08D9A000FBDDFBDDFBDDFBDD1F
:08D9A800FBDDFBDDFBDDFBDD17
:08D9B000FBDDFBDDFBDDFBDD0F
:08D9B800FBDDFBDDFBDDFBDD07
:08D9C000FBDDFBDDFBDDFBDDFF
:08D9C800FBDDFBDDFBDDFBDDF7
:08D9D000FBDDFBDDFBDDFBDDEF
:08D9D800FBDD3FDDF6DD95DD0E
:08D9E0004C074D074E0742DD24
:08D9E8005007FBDDFBDDFBDD58
:08D9F000FBDDFBDDFBDDFBDDCF
:08D9F800FBDDFBDDFBDDFBDDC7
:08DA0000FBDDFBDDFBDDFBDDBE
:08DA0800FBDDFBDDFBDDFBDDB6
:08DA1000FBDDFBDDFBDDFBDDAE
:08DA1800FBDDFBDDFBDDFBDDA6
:08DA2000FBDDFBDDFBDDFBDD9E
:08DA2800FBDDFBDDFBDDFBDD96
:08DA3000FBDDFBDDFBDDFBDD8E
:08DA3800FBDDFBDDFBDDFBDD86
:08DA4000FBDDFBDDFBDDFBDD7E
:08DA4800FBDDFBDDFBDDFBDD76
:08DA5000FBDDFBDDFBDDFBDD6E
:08DA5800FBDD21DE28DE54078E
:08DA60002FDEFEDD05DEFBDD1B
:08DA6800FBDDFBDDFBDDFBDD56
:08DA7000FBDDFBDDFBDDFBDD4E
:08DA7800FBDD24DE2BDE5A0762
:08DA800033DE01DE08DEFBDDF0
:08DA8800FBDDFBDDFBDDFBDD36
:08DA9000FBDDFBDDFBDDFBDD2E
:08DA9800FBDDFBDDFBDDFBDD26
:08DAA000FBDDFBDDFBDDFBDD1E
:08DAA800FBDDFBDDFBDDFBDD16
:08DAB000FBDDFBDDFBDDFBDD0E
:08DAB800FBDDFBDDFBDDFBDD06
:08DAC000FBDDFBDDFBDDFBDDFE
:08DAC800FBDDFBDDFBDDFBDDF6
:08DAD000FBDDFBDDFBDDFBDDEE
:08DAD800FBDD5F07FBDD6007C9
:08DAE000610762076307640798
:08DAE80065076607FBDDFBDDAD
:08DAF000FBDD67076807FBDDA1
:08DAF800FBDDFBDDFBDDFBDDC6
:08DB0000FBDDFBDDFBDD6A0724
:08DB08006B076C076D076E0747
:08DB1000FBDDFBDDFBDDFBDDAD
:08DB1800FBDDFBDDFBDDFBDDA5
:08DB2000FBDDFBDD6A076B076A
:08DB28006C076D076E07FBDDC1
:08DB3000FBDDFBDDFBDDFBDD8D
:08DB3800FBDDFBDDFBDDFBDD85
:08DB4000FBDDFBDDFBDDFBDD7D
:08DB4800FBDDFBDDFBDDFBDD75
:08DB5000FBDDFBDDFBDDFBDD6D
:08DB5800FBDDFBDDFBDDFBDD65
:08DB6000FBDDFBDDFBDDFBDD5D
:08DB6800FBDDFBDDFBDDFBDD55
:08DB7000FBDDFBDDFBDDDCDD6C
:08DB7800720773072CDD75072D
:08DB80007607770778077907A3
:08DB88007A077B077C077D078B
:08DB90007E077F07FBDD5FDD6E
:08DB98006ADD4FDD4ADD59DDB5
:08DBA00054DD64DDFBDDFBDD5B
:08DBA800FBDDFBDDFBDDFBDD15
:08DBB000FBDDFBDDFBDDFBDD0D
:08DBB800FBDD56DE63DE5EDEDC
:08DBC0004BDE50DEFBDDFBDD56
:08DBC800FBDDFBDDFBDDFBDDF5
:08DBD000FBDDFBDDFBDD8F072F
:08DBD80090079107FBDDFBDD66
:08DBE000FBDDFBDDFBDDFBDDDD
:08DBE800FBDDFBDDFBDDFBDDD5
:08DBF000FBDDFBDDFBDDBAD813
:08DBF8003AD95AD9DAD95ADAF8
:08DC0000DADAFADA76DB76DBF2
:08DC080096DBB6DBD6DB6620DB
:08DC1000206620206571206EE2
:08DC180065206C652067742093
:08DC20006C74206765206C653F
:08DC2800756774756C74756773
:08DC3000657520202020202052
:08DC3800202020202020703084
:08DC40002070312070322070C9
:08DC48003320703420703520F8
:08DC5000703620703720703897
:08DC580020703920703130709A
:08DC60003131703132703133B3
:08DC6800703134703135633076
:08DC70002063312063322063C0
:08DC78003320633420633520E2
:08DC800063362063372063388E
:08DC8800206339206331306391
:08DC900031316331326331339D
:08DC98006331346331357A7306
:08DCA000206473206573206607
:08DCA8007320677320687320EC
:08DCB0007373206373207A7383
:08DCB8006C64736C65736C660B
:08DCC000736C67736C68736CF0
:08DCC80073736C63736C7072DE
:08DCD0006120202074636B6CDD
:08DCD800632020202020202001
:08DCE0006173647372202020BF
:08DCE800202020202020202034
:08DCF00020202020202020202C
:08DCF8002020202020203136FD
:08DD0000616464F532616464A2
:08DD0800F534616464F5386133
:08DD10006464F53136616464BE
:08DD180075E93261646475E9EC
:08DD20003461646475E93861A7
:08DD2800646475E96162F361B6
:08DD300064E4616464E96164CC
:08DD380064F561646475E961A2
:08DD40006EE4616E64E3616EA4
:08DD4800646962666368E7622A
:08DD500066636CF262666578FF
:08DD5800F46266657874F5625F
:08DD600066696EF36266696EEC
:08DD680073E962667365F46261
:08DD70006974E962F26272EBD2
:08DD78006273F2636CE9636D54
:08DD8000F0636D70E96469F6BF
:08DD8800646976E9646976F52F
:08DD900064697675E9656FF224
:08DD9800656F72E9696DED6A27
:08DDA00073F26CE26C62F56C99
:08DDA800E36C63F56C64E96CA7
:08DDB0006469F36CE86C68F58E
:08DDB8006C6F6FF06C76E26CF9
:08DDC00076E36C76E86C76F75F
:08DDC8006C767761F26CF76CD8
:08DDD00077F36D667370F26DCC
:08DDD800747370F26D6FF66DBB
:08DDE0006F76F36D75EC6D75B3
:08DDE8006CE96D756CF56D75B9
:08DDF0006C75E96E6FF06FF233
:08DDF8006F72E93F3FBF726F3B
:08DE0000EC726F6CE9726FF225
:08DE0800726F72E97274E4729A
:08DE100074E57274E97274F309
:08DE180073E273E37365E97323
:08DE2000E87368EC73686CE91B
:08DE28007368F2736872E9737C
:08DE30006872F573687275E970
:08DE38007374F07375E2737559
:08DE400062F573F773796EE3DC
:08DE48007379F3746C6265EE5E
:08DE5000746C626469F3746CE8
:08DE58006272647265E7746CEC
:08DE60006277E9746C627772CD
:08DE68007265E77473F454685D
:08DE70006F72204465627567C2
:08DE7800676572202843292090
:08DE80003230313520526F628F
:08DE88006572742046696E63A7
:08DE9000680001F74016C00014
:08DE9800016F1B8E01471BFA0C
:08DEA00001935B00C0019E5BD1
:08DEA80089C0019E5B0BC15013
:08DEB00000D0FF00019D2500D8
:08DEB800300010019D2D002037
:08DEC0000101C78080B30101DC
:08DEC800865B00C0018E5B893E
:08DED000C0018E5B0BC101478C
:08DED8001B0601F701F401F73C
:08DEE0004016C000016F1B8E0B
:08DEE80001471BFA01935B00E6
:08DEF000C0019E5B89C0019E88
:08DEF8005B0BC15000D0FF00DC
:08DF0000019D25003000100115
:08DF08009D2D00200101C780DE
:08DF1000C0B30101865B00C0F3
:08DF1800018E5B89C0018E5BE4
:08DF20000BC101471B0601F7CC
:08DF280001F401F701471FFAA3
:08DF300001935F0000019E5FF8
:08DF38008900019E5F0B0150FE
:08DF400000D0FF00019D250047
:08DF4800300010019D2D004086
:08DF5000FC0706016F411520DA
:08DF58000101924000B401A791
:08DF60007F0130060C0191C0A5
:08DF68000FA001A1F1F7E9018E
:08DF70006F8600016F02000141
:08DF78006F0700019DBC0401CC
:08DF8000F701A9470F01F701A9
:08DF88009D3C0401F701A87D96
:08DF90000101A1F1D0E90147F4
:08DF98004200019D7C0401F729
:08DFA00001A87D0101A1F1BD02
:08DFA800E9014742000147476F
:08DFB000000120C70F0B3FC365
:08DFB800013FFD01865F00003E
:08DFC000018E5F8900018E5FF4
:08DFC8000B0101471F0601F7E0
:08DFD00001F401F74016C00046
:08DFD800016F1B8E01471FFAC7
:08DFE00001935F0000019E5F48
:08DFE8008900019E5F0B01504E
:08DFF00000D0FF00019D250097
:08DFF800300010019D2D000115
:08E000006F010430060C0191D0
:08E008004000A0016F0100308F
:08E010000F0C01924080BE20BC
:08E018000101844040B40147FE
:08E02000410020010192404083
:08E02800B401865F0000018EC7
:08E030005F8900018E5F0B0106
:08E0380001471F0601F701F486
:08E0400001F74016C000016F5A
:08E048001B8E01471BF8019338
:08E050005B00C0019E5B89C06A
:08E05800019E5B0BC1019E5B00
:08E0600084C15000D0FF000153
:08E068009D2500300010019D10
:08E070002D00016F01063006CE
:08E078000C01914000A0016FB2
:08E080004100300F0C01924039
:08E0880080BE4000C0000186CB
:08E090004080000147410040FF
:08E0980000C00001934080006C
:08E0A00001865B00C0018E5BEC
:08E0A80089C0018E5B0BC10170
:08E0B0008E5B84C101471B08CF
:08E0B80001F701F401F7401625
:08E0C000C000016F1B8E014737
:08E0C8001BFA01935B00C0018B
:08E0D0009E5B89C0019E5B0B01
:08E0D800C15000D0FF00019DC2
:08E0E0002500300010019D2D08
:08E0E80000016F010830060C75
:08E0F00001914000A0016F81C5
:08E0F80000300F0C0192408082
:08E10000BE200101C78080B4BC
:08E108000101865B00C0018EDD
:08E110005B89C0018E5B0BC1AD
:08E1180001471B0601F701F4A9
:08E1200001F74016C000016F79
:08E128001B8E01935B00C00196
:08E130009E5B89C001935B01B5
:08E13800C15000D0FF00019D61
:08E140002500016F01103006FB
:08E148000C01914000A030FF22
:08E150000C01920000BE401812
:08E158000006016F0111200116
:08E1600001924000B401A85E29
:08E168000101A1F18FE9014062
:08E1700045101001A98107010F
:08E17800865B00C0018E5B898B
:08E18000C001865B01C101F73B
:08E1880001F401F7016F8110A1
:08E1900001A1F116C90154417F
:08E1980000005001D1FF00015D
:08E1A00092400014016F81148C
:08E1A80001A1F1FEC801544180
:08E1B00000005001D1FF000145
:08E1B80092404014016FC112F6
:08E1C00001A1F1E6C801544180
:08E1C80000005001D1FF00012D
:08E1D00092408014016F8202ED
:08E1D800016F060001A85D01C2
:08E1E00001A1F181E7016F824A
:08E1E80002016F460001A85E70
:08E1F0000101A1F170E7016FCC
:08E1F8008600016F0200016FB7
:08E200000700019DBC0401F7B9
:08E2080001A9470F01F7019D78
:08E210003C0401F701A87D01A7
:08E2180001A1F149E7014742B1
:08E2200000019D7C0401F701DF
:08E22800A87D0101A1F136E718
:08E230000147420001474700CD
:08E238000120C70F0B3FC301D9
:08E240003FFD0000000000009A
:08E2480001A2008AE1FC0000C4
:08E2500001A200BCE0FC00008B
:08E2580001A20040E0FC0000FF
:08E2600001A200D2DFFC000066
:08E26800016F3F0001A2002A32
:08E27000DFFC000000000000CB
:08E2780001A200B0A9FC0000A6
:08E2800001A20020E1FC0000F6
:08E2880001A200A00700000044
:08E2900001A200A1070000003B
:08E2980001A200DEDEFC000023
:08E2A00001A20092DEFC000067
:08E2A80001F400000000000079
:08E2B00001F300000000000072
:08E2B80000000000000000005E
:08E2C000000000000000000056
:08E2C80000000000000000004E
7679,79 → 7679,79
:08EFE800000000000000000021
:08EFF000000000000000000019
:08EFF800000000000000000011
:08F00000000000000000000008
:08F00800000000000000000000
:08F010000000000000000000F8
:08F018000000000000000000F0
:08F020000000000000000000E8
:08F028000000000000000000E0
:08F030000000000000000000D8
:08F038000000000000000000D0
:08F040000000000000000000C8
:08F048000000000000000000C0
:08F050000000000000000000B8
:08F058000000000000000000B0
:08F060000000000000000000A8
:08F068000000000000000000A0
:08F07000000000000000000098
:08F07800000000000000000090
:08F08000000000000000000088
:08F08800000000000000000080
:08F09000000000000000000078
:08F09800000000000000000070
:08F0A000000000000000000068
:08F0A800000000000000000060
:08F0B000000000000000000058
:08F0B800000000000000000050
:08F0C000000000000000000048
:08F0C800000000000000000040
:08F0D000000000000000000038
:08F0D800000000000000000030
:08F0E000000000000000000028
:08F0E800000000000000000020
:08F0F000000000000000000018
:08F0F800000000000000000010
:08F10000000000000000000007
:08F108000000000000000000FF
:08F110000000000000000000F7
:08F118000000000000000000EF
:08F120000000000000000000E7
:08F128000000000000000000DF
:08F130000000000000000000D7
:08F138000000000000000000CF
:08F140000000000000000000C7
:08F148000000000000000000BF
:08F150000000000000000000B7
:08F158000000000000000000AF
:08F160000000000000000000A7
:08F1680000000000000000009F
:08F17000000000000000000097
:08F1780000000000000000008F
:08F18000000000000000000087
:08F1880000000000000000007F
:08F19000000000000000000077
:08F1980000000000000000006F
:08F1A000000000000000000067
:08F1A80000000000000000005F
:08F1B000000000000000000057
:08F1B80000000000000000004F
:08F1C000000000000000000047
:08F1C80000000000000000003F
:08F1D000000000000000000037
:08F1D80000000000000000002F
:08F1E000000000000000000027
:08F1E80000000000000000001F
:08F1F000000000000000000017
:08F00000000000010000000205
:08F008000000000300010004F8
:08F010000000000500000006ED
:08F018000001000700000000E8
:08F0200046004D0054004B00B6
:08F02800200049006E006900A0
:08F030007400690061006C002E
:08F0380069007A0069006E0016
:08F0400067000000530074009A
:08F04800610072007400540025
:08F05000610073006B00200059
:08F058006500720072006F00F8
:08F0600072003A0020002500B7
:08F0680064000D000A00000025
:08F07000490064006C0065001A
:08F078005400610073006B00FD
:08F080003A0020004300540097
:08F0880052004C002D00430072
:08F09000200070007200650011
:08F098007300730065006400C1
:08F0A0002E000D000A00000023
:08F0A8004E006F00200065001E
:08F0B0006E007400720069009B
:08F0B8006500730020006900EF
:08F0C0006E00200072006500E3
:08F0C8006100640079002000E2
:08F0D000710075006500750078
:08F0D80065002E00000000009D
:08F0E00025003300640020004C
:08F0E800250033006400200044
:08F0F000200025003000320071
:08F0F800580020002000250053
:08F1000030003400580020002B
:08F1080025003000340058001E
:08F1100020002500300034004E
:08F11800580020002500300022
:08F12000380058002000250012
:08F128003000380058000D0012
:08F130000A0000005700610015
:08F138006900740069006E001B
:08F1400067002000740061006B
:08F1480073006B0073000D0061
:08F150000A0000002500330055
:08F158006400200025003300D3
:08F160006400200020002500DE
:08F168003000320058002000C5
:08F170002000250030003400EE
:08F178005800200025003000C2
:08F180003400580020002500B6
:08F188003000340058002000A3
:08F19000250030003800580092
:08F198002000250030003800C2
:08F1A00058000D000A000000F8
:08F1A800430050005500200057
:08F1B00050007200690020000C
:08F1B8005300740061007400B3
:08F1C0002000540061007300FF
:08F1C8006B00200050007200F2
:08F1D0006500760020004E00EE
:08F1D8006500780074002000BE
:08F1E000540069006D00650098
:08F1E8006F00750074000D00BA
:08F1F0000A000000000000000D
:08F1F80000000000000000000F
:08F20000000000000000000006
:08F208000000000000000000FE
:08F210000000000000000000F6
:08F218000000000000000000EE
:08F220000000000000000000E6
:08F200006200610064002000BF
:08F20800760069006400650056
:08F210006F0020007200650090
:08F2180067006E006F003A0070
:08F2200020002500640000003D
:08F228000000000000000000DE
:08F230000000000000000000D6
:08F238000000000000000000CE
:08F240000000000000000000C6
:08F2300025002E003800340017
:08F23800730000000D000A0044
:08F2400024003E000000000064
:08F248000000000000000000BE
:08F250000000000000000000B6
:08F258000000000000000000AE
8989,8 → 8989,8
:0818D000000000000000000010
:0818D800000000000000000008
:0818E000000000000000000000
:0818E800FFFF000000000000FA
:0818F0000100000000000000EF
:0818E8000000000000000000F8
:0818F0000000000000000000F0
:0818F8000000000000000000E8
:081900000000000000000000DF
:081908000000000000000000D7
9494,7 → 9494,7
:08289800000000000000000038
:0828A000000000000000000030
:0828A800000000000000000028
:0828B000FFFF00000000000022
:0828B000000000000000000020
:0828B800000000000000000018
:0828C000000000000000000010
:0828C800000000000000000008
9501,8 → 9501,8
:0828D000000000000000000000
:0828D8000000000000000000F8
:0828E0000000000000000000F0
:0828E8000000000000000000E8
:0828F0000000000000000000E0
:0828E800FFFF000000000000EA
:0828F0000100000000000000DF
:0828F8000000000000000000D8
:082900000000000000000000CF
:082908000000000000000000C7
10006,7 → 10006,7
:08389800000000000000000028
:0838A000000000000000000020
:0838A800000000000000000018
:0838B000000000000000000010
:0838B000FFFF00000000000012
:0838B800000000000000000008
:0838C000000000000000000000
:0838C8000000000000000000F8
10261,7 → 10261,7
:08409000000000000000000028
:08409800000000000000000020
:0840A000000000000000000018
:0840A80001000000000000000F
:0840A800000000000000000010
:0840B000000000000000000008
:0840B800000000000000000000
:0840C0000000000000000000F8
10752,5 → 10752,517
:084FE8000000000000000000C1
:084FF0000000000000000000B9
:084FF8000000000000000000B1
:085000000000000000000000A8
:085008000000000000000000A0
:08501000000000000000000098
:08501800000000000000000090
:08502000000000000000000088
:08502800000000000000000080
:08503000000000000000000078
:08503800000000000000000070
:08504000000000000000000068
:08504800000000000000000060
:08505000000000000000000058
:08505800000000000000000050
:08506000000000000000000048
:08506800000000000000000040
:08507000000000000000000038
:08507800000000000000000030
:08508000000000000000000028
:08508800000000000000000020
:08509000000000000000000018
:08509800000000000000000010
:0850A000000000000000000008
:0850A8000100000000000000FF
:0850B0000000000000000000F8
:0850B8000000000000000000F0
:0850C0000000000000000000E8
:0850C8000000000000000000E0
:0850D0000000000000000000D8
:0850D8000000000000000000D0
:0850E0000000000000000000C8
:0850E8000000000000000000C0
:0850F0000000000000000000B8
:0850F8000000000000000000B0
:085100000000000000000000A7
:0851080000000000000000009F
:08511000000000000000000097
:0851180000000000000000008F
:08512000000000000000000087
:0851280000000000000000007F
:08513000000000000000000077
:0851380000000000000000006F
:08514000000000000000000067
:0851480000000000000000005F
:08515000000000000000000057
:0851580000000000000000004F
:08516000000000000000000047
:0851680000000000000000003F
:08517000000000000000000037
:0851780000000000000000002F
:08518000000000000000000027
:0851880000000000000000001F
:08519000000000000000000017
:0851980000000000000000000F
:0851A000000000000000000007
:0851A8000000000000000000FF
:0851B0000000000000000000F7
:0851B8000000000000000000EF
:0851C0000000000000000000E7
:0851C8000000000000000000DF
:0851D0000000000000000000D7
:0851D8000000000000000000CF
:0851E0000000000000000000C7
:0851E8000000000000000000BF
:0851F0000000000000000000B7
:0851F8000000000000000000AF
:085200000000000000000000A6
:0852080000000000000000009E
:08521000000000000000000096
:0852180000000000000000008E
:08522000000000000000000086
:0852280000000000000000007E
:08523000000000000000000076
:0852380000000000000000006E
:08524000000000000000000066
:0852480000000000000000005E
:08525000000000000000000056
:0852580000000000000000004E
:08526000000000000000000046
:0852680000000000000000003E
:08527000000000000000000036
:0852780000000000000000002E
:08528000000000000000000026
:0852880000000000000000001E
:08529000000000000000000016
:0852980000000000000000000E
:0852A000000000000000000006
:0852A8000000000000000000FE
:0852B0000000000000000000F6
:0852B8000000000000000000EE
:0852C0000000000000000000E6
:0852C8000000000000000000DE
:0852D0000000000000000000D6
:0852D8000000000000000000CE
:0852E0000000000000000000C6
:0852E8000000000000000000BE
:0852F0000000000000000000B6
:0852F8000000000000000000AE
:085300000000000000000000A5
:0853080000000000000000009D
:08531000000000000000000095
:0853180000000000000000008D
:08532000000000000000000085
:0853280000000000000000007D
:08533000000000000000000075
:0853380000000000000000006D
:08534000000000000000000065
:0853480000000000000000005D
:08535000000000000000000055
:0853580000000000000000004D
:08536000000000000000000045
:0853680000000000000000003D
:08537000000000000000000035
:0853780000000000000000002D
:08538000000000000000000025
:0853880000000000000000001D
:08539000000000000000000015
:0853980000000000000000000D
:0853A000000000000000000005
:0853A8000000000000000000FD
:0853B0000000000000000000F5
:0853B8000000000000000000ED
:0853C0000000000000000000E5
:0853C8000000000000000000DD
:0853D0000000000000000000D5
:0853D8000000000000000000CD
:0853E0000000000000000000C5
:0853E8000000000000000000BD
:0853F0000000000000000000B5
:0853F8000000000000000000AD
:085400000000000000000000A4
:0854080000000000000000009C
:08541000000000000000000094
:0854180000000000000000008C
:08542000000000000000000084
:0854280000000000000000007C
:08543000000000000000000074
:0854380000000000000000006C
:08544000000000000000000064
:0854480000000000000000005C
:08545000000000000000000054
:0854580000000000000000004C
:08546000000000000000000044
:0854680000000000000000003C
:08547000000000000000000034
:0854780000000000000000002C
:08548000000000000000000024
:0854880000000000000000001C
:08549000000000000000000014
:0854980000000000000000000C
:0854A000000000000000000004
:0854A8000000000000000000FC
:0854B0000000000000000000F4
:0854B8000000000000000000EC
:0854C0000000000000000000E4
:0854C8000000000000000000DC
:0854D0000000000000000000D4
:0854D8000000000000000000CC
:0854E0000000000000000000C4
:0854E8000000000000000000BC
:0854F0000000000000000000B4
:0854F8000000000000000000AC
:085500000000000000000000A3
:0855080000000000000000009B
:08551000000000000000000093
:0855180000000000000000008B
:08552000000000000000000083
:0855280000000000000000007B
:08553000000000000000000073
:0855380000000000000000006B
:08554000000000000000000063
:0855480000000000000000005B
:08555000000000000000000053
:0855580000000000000000004B
:08556000000000000000000043
:0855680000000000000000003B
:08557000000000000000000033
:0855780000000000000000002B
:08558000000000000000000023
:0855880000000000000000001B
:08559000000000000000000013
:0855980000000000000000000B
:0855A000000000000000000003
:0855A8000000000000000000FB
:0855B0000000000000000000F3
:0855B8000000000000000000EB
:0855C0000000000000000000E3
:0855C8000000000000000000DB
:0855D0000000000000000000D3
:0855D8000000000000000000CB
:0855E0000000000000000000C3
:0855E8000000000000000000BB
:0855F0000000000000000000B3
:0855F8000000000000000000AB
:085600000000000000000000A2
:0856080000000000000000009A
:08561000000000000000000092
:0856180000000000000000008A
:08562000000000000000000082
:0856280000000000000000007A
:08563000000000000000000072
:0856380000000000000000006A
:08564000000000000000000062
:0856480000000000000000005A
:08565000000000000000000052
:0856580000000000000000004A
:08566000000000000000000042
:0856680000000000000000003A
:08567000000000000000000032
:0856780000000000000000002A
:08568000000000000000000022
:0856880000000000000000001A
:08569000000000000000000012
:0856980000000000000000000A
:0856A000000000000000000002
:0856A8000000000000000000FA
:0856B0000000000000000000F2
:0856B8000000000000000000EA
:0856C0000000000000000000E2
:0856C8000000000000000000DA
:0856D0000000000000000000D2
:0856D8000000000000000000CA
:0856E0000000000000000000C2
:0856E8000000000000000000BA
:0856F0000000000000000000B2
:0856F8000000000000000000AA
:085700000000000000000000A1
:08570800000000000000000099
:08571000000000000000000091
:08571800000000000000000089
:08572000000000000000000081
:08572800000000000000000079
:08573000000000000000000071
:08573800000000000000000069
:08574000000000000000000061
:08574800000000000000000059
:08575000000000000000000051
:08575800000000000000000049
:08576000000000000000000041
:08576800000000000000000039
:08577000000000000000000031
:08577800000000000000000029
:08578000000000000000000021
:08578800000000000000000019
:08579000000000000000000011
:08579800000000000000000009
:0857A000000000000000000001
:0857A8000000000000000000F9
:0857B0000000000000000000F1
:0857B8000000000000000000E9
:0857C0000000000000000000E1
:0857C8000000000000000000D9
:0857D0000000000000000000D1
:0857D8000000000000000000C9
:0857E0000000000000000000C1
:0857E8000000000000000000B9
:0857F0000000000000000000B1
:0857F8000000000000000000A9
:085800000000000000000000A0
:08580800000000000000000098
:08581000000000000000000090
:08581800000000000000000088
:08582000000000000000000080
:08582800000000000000000078
:08583000000000000000000070
:08583800000000000000000068
:08584000000000000000000060
:08584800000000000000000058
:08585000000000000000000050
:08585800000000000000000048
:08586000000000000000000040
:08586800000000000000000038
:08587000000000000000000030
:08587800000000000000000028
:08588000000000000000000020
:08588800000000000000000018
:08589000000000000000000010
:08589800000000000000000008
:0858A000000000000000000000
:0858A8000000000000000000F8
:0858B0000000000000000000F0
:0858B8000000000000000000E8
:0858C0000000000000000000E0
:0858C8000000000000000000D8
:0858D0000000000000000000D0
:0858D8000000000000000000C8
:0858E0000000000000000000C0
:0858E8000000000000000000B8
:0858F0000000000000000000B0
:0858F8000000000000000000A8
:0859000000000000000000009F
:08590800000000000000000097
:0859100000000000000000008F
:08591800000000000000000087
:0859200000000000000000007F
:08592800000000000000000077
:0859300000000000000000006F
:08593800000000000000000067
:0859400000000000000000005F
:08594800000000000000000057
:0859500000000000000000004F
:08595800000000000000000047
:0859600000000000000000003F
:08596800000000000000000037
:0859700000000000000000002F
:08597800000000000000000027
:0859800000000000000000001F
:08598800000000000000000017
:0859900000000000000000000F
:08599800000000000000000007
:0859A0000000000000000000FF
:0859A8000000000000000000F7
:0859B0000000000000000000EF
:0859B8000000000000000000E7
:0859C0000000000000000000DF
:0859C8000000000000000000D7
:0859D0000000000000000000CF
:0859D8000000000000000000C7
:0859E0000000000000000000BF
:0859E8000000000000000000B7
:0859F0000000000000000000AF
:0859F8000000000000000000A7
:085A000000000000000000009E
:085A0800000000000000000096
:085A100000000000000000008E
:085A1800000000000000000086
:085A200000000000000000007E
:085A2800000000000000000076
:085A300000000000000000006E
:085A3800000000000000000066
:085A400000000000000000005E
:085A4800000000000000000056
:085A500000000000000000004E
:085A5800000000000000000046
:085A600000000000000000003E
:085A6800000000000000000036
:085A700000000000000000002E
:085A7800000000000000000026
:085A800000000000000000001E
:085A8800000000000000000016
:085A900000000000000000000E
:085A9800000000000000000006
:085AA0000000000000000000FE
:085AA8000000000000000000F6
:085AB0000000000000000000EE
:085AB8000000000000000000E6
:085AC0000000000000000000DE
:085AC8000000000000000000D6
:085AD0000000000000000000CE
:085AD8000000000000000000C6
:085AE0000000000000000000BE
:085AE8000000000000000000B6
:085AF0000000000000000000AE
:085AF8000000000000000000A6
:085B000000000000000000009D
:085B0800000000000000000095
:085B100000000000000000008D
:085B1800000000000000000085
:085B200000000000000000007D
:085B2800000000000000000075
:085B300000000000000000006D
:085B3800000000000000000065
:085B400000000000000000005D
:085B4800000000000000000055
:085B500000000000000000004D
:085B5800000000000000000045
:085B600000000000000000003D
:085B6800000000000000000035
:085B700000000000000000002D
:085B7800000000000000000025
:085B800000000000000000001D
:085B8800000000000000000015
:085B900000000000000000000D
:085B9800000000000000000005
:085BA0000000000000000000FD
:085BA8000000000000000000F5
:085BB0000000000000000000ED
:085BB8000000000000000000E5
:085BC0000000000000000000DD
:085BC8000000000000000000D5
:085BD0000000000000000000CD
:085BD8000000000000000000C5
:085BE0000000000000000000BD
:085BE8000000000000000000B5
:085BF0000000000000000000AD
:085BF8000000000000000000A5
:085C000000000000000000009C
:085C0800000000000000000094
:085C100000000000000000008C
:085C1800000000000000000084
:085C200000000000000000007C
:085C2800000000000000000074
:085C300000000000000000006C
:085C3800000000000000000064
:085C400000000000000000005C
:085C4800000000000000000054
:085C500000000000000000004C
:085C5800000000000000000044
:085C600000000000000000003C
:085C6800000000000000000034
:085C700000000000000000002C
:085C7800000000000000000024
:085C800000000000000000001C
:085C8800000000000000000014
:085C900000000000000000000C
:085C9800000000000000000004
:085CA0000000000000000000FC
:085CA8000000000000000000F4
:085CB0000000000000000000EC
:085CB8000000000000000000E4
:085CC0000000000000000000DC
:085CC8000000000000000000D4
:085CD0000000000000000000CC
:085CD8000000000000000000C4
:085CE0000000000000000000BC
:085CE8000000000000000000B4
:085CF0000000000000000000AC
:085CF8000000000000000000A4
:085D000000000000000000009B
:085D0800000000000000000093
:085D100000000000000000008B
:085D1800000000000000000083
:085D200000000000000000007B
:085D2800000000000000000073
:085D300000000000000000006B
:085D3800000000000000000063
:085D400000000000000000005B
:085D4800000000000000000053
:085D500000000000000000004B
:085D5800000000000000000043
:085D600000000000000000003B
:085D6800000000000000000033
:085D700000000000000000002B
:085D7800000000000000000023
:085D800000000000000000001B
:085D8800000000000000000013
:085D900000000000000000000B
:085D9800000000000000000003
:085DA0000000000000000000FB
:085DA8000000000000000000F3
:085DB0000000000000000000EB
:085DB8000000000000000000E3
:085DC0000000000000000000DB
:085DC8000000000000000000D3
:085DD0000000000000000000CB
:085DD8000000000000000000C3
:085DE0000000000000000000BB
:085DE8000000000000000000B3
:085DF0000000000000000000AB
:085DF8000000000000000000A3
:085E000000000000000000009A
:085E0800000000000000000092
:085E100000000000000000008A
:085E1800000000000000000082
:085E200000000000000000007A
:085E2800000000000000000072
:085E300000000000000000006A
:085E3800000000000000000062
:085E400000000000000000005A
:085E4800000000000000000052
:085E500000000000000000004A
:085E5800000000000000000042
:085E600000000000000000003A
:085E6800000000000000000032
:085E700000000000000000002A
:085E7800000000000000000022
:085E800000000000000000001A
:085E8800000000000000000012
:085E900000000000000000000A
:085E9800000000000000000002
:085EA0000000000000000000FA
:085EA8000000000000000000F2
:085EB0000000000000000000EA
:085EB8000000000000000000E2
:085EC0000000000000000000DA
:085EC8000000000000000000D2
:085ED0000000000000000000CA
:085ED8000000000000000000C2
:085EE0000000000000000000BA
:085EE8000000000000000000B2
:085EF0000000000000000000AA
:085EF8000000000000000000A2
:085F0000000000000000000099
:085F0800000000000000000091
:085F1000000000000000000089
:085F1800000000000000000081
:085F2000000000000000000079
:085F2800000000000000000071
:085F3000000000000000000069
:085F3800000000000000000061
:085F4000000000000000000059
:085F4800000000000000000051
:085F5000000000000000000049
:085F5800000000000000000041
:085F6000000000000000000039
:085F6800000000000000000031
:085F7000000000000000000029
:085F7800000000000000000021
:085F8000000000000000000019
:085F8800000000000000000011
:085F9000000000000000000009
:085F9800000000000000000001
:085FA0000000000000000000F9
:085FA8000000000000000000F1
:085FB0000000000000000000E9
:085FB8000000000000000000E1
:085FC0000000000000000000D9
:085FC8000000000000000000D1
:085FD0000000000000000000C9
:085FD8000000000000000000C1
:085FE0000000000000000000B9
:085FE8000000000000000000B1
:085FF0000000000000000000A9
:085FF8000000000000000000A1
:00000001FF

/bin/emuThor.ilk --- bin/emuThor.exe.metagen (nonexistent) +++ bin/emuThor.exe.metagen (revision 32) @@ -0,0 +1,91 @@ + emuThor.About.resources - Embedded, ContainedInManifestFile, + emuThor.fmrFreeRun.resources - Embedded, ContainedInManifestFile, + emuThor.frmBreakpoints.resources - Embedded, ContainedInManifestFile, + emuThor.frmInterrupts.resources - Embedded, ContainedInManifestFile, + emuThor.frmMain.resources - Embedded, ContainedInManifestFile, + emuThor.frmKeyboard.resources - Embedded, ContainedInManifestFile, + emuThor.frmMemory.resources - Embedded, ContainedInManifestFile, + emuThor.frmPCHistory.resources - Embedded, ContainedInManifestFile, + emuThor.frmRegisters.resources - Embedded, ContainedInManifestFile, + emuThor.frmScreen.resources - Embedded, ContainedInManifestFile, + emuThor.frmStack.resources - Embedded, ContainedInManifestFile, + emuThor.frmUart.resources - Embedded, ContainedInManifestFile, +ImageRuntimeVersion: v4.0.30319 +Assembly emuThor, Version=1.0.*, Culture=Invariant Language (Invariant Country): + hash=SHA1, flags=PublicKey +Assembly mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: + hash=None, flags=None +Assembly System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: + hash=None, flags=None +Assembly System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: + hash=None, flags=None +Assembly System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: + hash=None, flags=None +Assembly System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a: + hash=None, flags=None +Assembly System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: + hash=None, flags=None +Assembly System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: + hash=None, flags=None +Assembly Microsoft.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a: + hash=None, flags=None +Class emuThor.About: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName +Class emuThor.frmRegisters: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmBreakpoints: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmScreen: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex, System.String): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public + UInt32* pVidMem : Public + Boolean* pVidDirty : Public +Class emuThor.frmKeyboard: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmUart: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.fmrFreeRun: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmPCHistory: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmInterrupts: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmStack: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmMemory: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(System.Threading.Mutex): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName + Fields: + System.Threading.Mutex mut : Public +Class emuThor.frmMain: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit + :System.Windows.Forms.Form + Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName
/bin/emuThor.exe Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.