lots more UDMF code

This commit is contained in:
codeimp 2008-05-31 19:31:45 +00:00
parent 9f15de8cd5
commit 2b9a233579
28 changed files with 9432 additions and 956 deletions

View file

@ -298,6 +298,10 @@ linedefflags
32768 = "Block Everything";
}
// Activations filter for Hexen type activations
// This filters the activation bits from the flags
linedefactivationsfilter = 7168;
// LINEDEF ACTIVATIONS
// Make sure these are in order from lowest value to highest value
linedefactivations

View file

@ -325,6 +325,10 @@ linedefflags
32768 = "Block Everything";
}
// Activations filter for Hexen type activations
// This filters the activation bits from the flags
linedefactivationsfilter = 7168;
// LINEDEF ACTIVATIONS
// Make sure these are in order from lowest value to highest value
linedefactivations

View file

@ -18,10 +18,11 @@ formatinterface = "HexenMapSetIO";
defaultlumpname = "MAP01";
// Special linedefs
soundlinedefflags = 64; // See linedefflags
singlesidedflags = 1; // See linedefflags
doublesidedflags = 4; // See linedefflags
impassableflags = 1;
// See linedefflags
soundlinedefflag = 64;
singlesidedflag = 1;
doublesidedflag = 4;
impassableflag = 1;
// Generalized actions
generalizedlinedefs = false;
@ -225,92 +226,6 @@ maplumpnames
}
/*
ADDITIONAL UNIVERSAL DOOM MAP FORMAT FIELD DEFINITIONS
Only add fields here that Doom Builder does not edit with its own user-interface!
The "default" is the editor's default value. Set "specdefault" to the UDMF specification's
default when "default" differs from the UDMF specification's default!
Field data types:
0 = integer *
1 = float
2 = string
3 = bool
4 = linedeftype (integer) *
5 = sectoreffect (integer) *
6 = texture (string)
7 = flat (string)
8 = angle in degrees (integer)
9 = angle in radians (float)
10 = XXRRGGBB color (integer)
11 = enum option (integer) *
12 = enum bits (integer) *
13 = sector tag (integer) *
14 = thing tag (integer) *
15 = linedef tag (integer) *
16 = enum option (string)
*/
universalfields
{
linedefs
{
texture_scale_x
{
type = 1;
default = 1.0f;
}
texture_scale_y
{
type = 1;
default = 1.0f;
}
texture_offset_x
{
type = 1;
default = 0.0f;
}
texture_offset_y
{
type = 1;
default = 0.0f;
}
brightness
{
type = 0;
default = -1;
}
colormap
{
type = 10;
default = 0;
}
normalmap
{
type = 6;
default = "";
}
second_action
{
type = 4;
default = 0;
}
hidden
{
type = 3;
default = false;
}
}
}
// DEFAULT SECTOR BRIGHTNESS LEVELS
sectorbrightness
{
@ -572,6 +487,10 @@ linedefflags
32768 = "Block Everything";
}
// Activations filter for Hexen type activations
// This filters the activation bits from the flags
linedefactivationsfilter = 7168;
// LINEDEF ACTIVATIONS
// Make sure these are in order from lowest value to highest value
linedefactivations

File diff suppressed because it is too large Load diff

View file

@ -480,6 +480,10 @@ linedefflags
32768 = "Block Everything";
}
// Activations filter for Hexen type activations
// This filters the activation bits from the flags
linedefactivationsfilter = 7168;
// LINEDEF ACTIVATIONS
// Make sure these are in order from lowest value to highest value
linedefactivations

View file

@ -325,6 +325,10 @@ linedefflags
32768 = "Block Everything";
}
// Activations filter for Hexen type activations
// This filters the activation bits from the flags
linedefactivationsfilter = 7168;
// LINEDEF ACTIVATIONS
// Make sure these are in order from lowest value to highest value
linedefactivations

View file

@ -485,6 +485,10 @@ linedefflags
32768 = "Block Everything";
}
// Activations filter for Hexen type activations
// This filters the activation bits from the flags
linedefactivationsfilter = 7168;
// LINEDEF ACTIVATIONS
// Make sure these are in order from lowest value to highest value
linedefactivations

219
Documents/udmf_zd11.txt Normal file
View file

@ -0,0 +1,219 @@
===============================================================================
Universal Doom Map Format ZDoom extensions v1.1 - 27.05.2008
Copyright (c) 2008 Christoph Oelckers.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
===============================================================================
This document discusses only the additions ZDoom makes to the UDMF
specification.
=======================================
I. Grammar / Syntax
=======================================
No changes.
=======================================
II. Implementation Semantics
=======================================
------------------------------------
II.A : Storage and Retrieval of Data
------------------------------------
No changes.
-----------------------------------
II.B : Storage Within Archive Files
-----------------------------------
In addition to the base specification ZDoom recognizes the following lumps
between the TEXTMAP and ENDMAP lumps:
BEHAVIOR = contains compiled ACS code
DIALOGUE = contains compiled Strife conversation scripts.
ZNODES = Nodes (must be stored as compressed GL nodes)
BLOCKMAP = blockmap. It is recommended not to include this lump in UDMF maps.
REJECT = reject table. Recommended use is for special effects only.
Lumps starting with 'SCRIPT' are guaranteed to be ignored by ZDoom so they
can be used to store ACS and dialogue script sources.
--------------------------------
II.C : Implementation Dependence
--------------------------------
ZDoom supports all namespaces defined in the base specification and adds two new
ones:
"ZDoom"
"ZDoomTranslated"
The only difference between these two namespaces is how line, thing and sector
specials are handled:
'ZDoom' uses Hexen type specials which are ZDoom's native implementation.
'ZDoomTranslated' uses Doom-type specials. Such maps have to be processed by
a special translator. A special translator is a text lump that defines how
Doom-format specials are translated into Hexen-format specials. By default
each game defines its own translation table but these can be overridden in
MAPINFO. It is the mapper's responsibility to choose the correct translation
table for a map.
=======================================
III. Standardized Fields
=======================================
ZDoom's namespaces implement all fields from the standard, regardless of
any restrictions mentioned in the spec.
In particular, the 'ZDoomTranslated' namespaces implements thing specials.
These will ignore the implicit trigger type and triggering semantics are the
same as for native maps.
The only field not fully supported is the thing's 'friend' field. ZDoom does
not offer MBF's friendly monster implementation and will remap any use of this
field to 'strifeally', even for the 'Doom' namespace.
In addition to the standard fields, ZDoom defines the following:
Note: All <bool> fields default to false unless mentioned otherwise.
linedef
{
alpha = <float>; // Translucency of this line, default is 1.0
renderstyle = <string>; // Render style, can be "translucent" or "add",
// default is "translucent".
anycross = <bool>; // New SPAC flag, true = any non-projectile
// crossing will trigger this line
monsteractivate = <bool>; // Monsters can trigger this line.
// For compatibility only because this flag's
// semantics can not be fully reproduced with
// explicit trigger flags.
blockplayers = <bool>; // Line blocks players' movement.
blockeverything = <bool>; // Line blocks everything.
firstsideonly = <bool>; // Line can only be triggered from the front side.
zoneboundary = <bool>; // Line is a boundary for sound reverb zones.
clipmidtex = <bool>; // Line's mid textures are clipped to floor and ceiling.
wrapmidtex = <bool>; // Line's mid textures are wrapped.
midtex3d = <bool>; // Actors can walk on mid texture.
checkswitchrange = <bool>;// Switches can only be activated when vertically reachable.
}
sidedef
{
offsetx_top = <float>; // X offset for upper texture, Default = 0.0.
offsety_top = <float>; // y offset for upper texture, Default = 0.0.
offsetx_mid = <float>; // X offset for mid texture, Default = 0.0.
offsety_mid = <float>; // y offset for mid texture, Default = 0.0.
offsetx_bottom = <float>; // X offset for lower texture, Default = 0.0.
offsety_bottom = <float>; // y offset for lower texture, Default = 0.0.
// When global texture offsets are used they will
// be added on top of these values.
light = <integer>; // This side's light level. Default is 0.
lightabsolute = <bool>; // true = 'light' is an absolute value. Default is
// relative to the owning sector's light level.
nofakecontrast = <bool>; // Disables use of fake contrast on this sidedef.
}
sector
{
xpanningfloor = <float>; // X texture offset of floor texture, Default = 0.0.
ypanningfloor = <float>; // Y texture offset of floor texture, Default = 0.0.
xpanningceiling = <float>; // X texture offset of ceiling texture, Default = 0.0.
ypanningceiling = <float>; // Y texture offset of ceiling texture, Default = 0.0.
xscalefloor = <float>; // X texture scale of floor texture, Default = 1.0.
yscalefloor = <float>; // Y texture scale of floor texture, Default = 1.0.
xscaleceiling = <float>; // X texture scale of ceiling texture, Default = 1.0.
yscaleceiling = <float>; // Y texture scale of ceiling texture, Default = 1.0.
rotationfloor = <float>; // Rotation of floor texture in degrees, Default = 0.0.
rotationceiling = <float>; // Rotation of ceiling texture in degrees, Default = 0.0.
lightfloor = <float>; // The floor's light level. Default is 0.
lightceiling = <float>; // The ceiling's light level. Default is 0.
lightfloorabsolute = <bool>; // true = 'lightfloor' is an absolute value. Default is
// relative to the owning sector's light level.
lightceilingabsolute = <bool>; // true = 'lightceiling' is an absolute value. Default is
// relative to the owning sector's light level.
gravity = <float>; // Sector's gravity. Default is 1.0.
lightcolor = <integer>; // Sector'S light color as RRGGBB value, default = 0xffffff.
fadecolor = <integer>; // Sector'S fog color as RRGGBB value, default = 0x000000.
desaturation = <float>; // Color desaturation factor. 0 = none, 1 = full, default = 0.
silent = <bool>; // Actors in this sector make no sound,
nofallingdamage = <bool>; // Falling damage is disabled in this sector
dropactors = <bool>; // Actors drop with instantly moving floors
* Note about dropactors
The spec requires this to be false by default. Currently, however ZDoom assumes this to be true
for Doom format maps so any map converter converting to the ZDoomTranslated namespace should
set this flag for each tagged sector.
}
thing
{
skill[n] = <bool> // Unlike the base spec, n can range from 1-8.
// 8 is the maximum amount of skills the skill
// menu can display.
class[n] = <bool> // Unlike the base spec, n can range from 1-8.
// 8 is the maximum amount of classes the class
// menu can display.
}
*** Special notes for map format conversions:
Setting the line's ID via special is not supported so any special using
this option must be converted to use the line's ID field instead.
Unless mentioned differently the arg being used to define the line ID
should be set to 0.
The following line specials are affected:
121: Line_SetIdentification, arg 0
208: TranslucentLine, arg0 (arg0 must be preserved)
1: Polyobj_StartLine, arg3
5: Polyobj_ExplicitLine, arg4
215: Teleport_Line, arg0
222: Scroll_Texture_Model, arg0 (arg0 must be preserved)
Some specials also allow setting the extended flags. These must also be
converted to explicitly setting the flags through the defined map fields.
This affects the following specials:
121: Line_SetIdentification, arg1
208: TranslucentLine, arg2
These args are to be converted as follows to flags, bit by bit:
Bit 0 (Value 1): zoneboundary
Bit 1 (Value 2): jumpover
Bit 2 (Value 4): blockfloaters
Bit 3 (Value 8): clipmidtex
Bit 4 (Value 16): wrapmidtex
Bit 5 (Value 32): midtex3d
Bit 6 (Value 64): checkswitchrange
When used in special 208 this arg should be cleared afterward.
Special 121 is not being used by UDMF maps in ZDoom and should be completely
deleted after conversion.
=======================================
Changelog
=======================================
1.1:
Changed default light mode for sectors and sidedefs to relative and renamed
associated properties to avoid having a non-intuitive standard value for the
light field.
Added 'nofakecontrast' option to sidedefs.
===============================================================================
EOF
===============================================================================

View file

@ -123,6 +123,7 @@
<Compile Include="Data\DataLocationList.cs" />
<Compile Include="Data\DataManager.cs" />
<Compile Include="Data\WADReader.cs" />
<Compile Include="IO\UniversalParser.cs" />
<Compile Include="Map\MapElement.cs" />
<Compile Include="Map\UniFields.cs" />
<Compile Include="Map\UniValue.cs" />
@ -574,6 +575,7 @@
<None Include="Resources\SlimDX_small.png" />
<None Include="Resources\Splash3_trans.png" />
<None Include="Resources\Splash3_small.png" />
<EmbeddedResource Include="Resources\UDMF.cfg" />
<EmbeddedResource Include="Controls\AngleControl.resx">
<SubType>Designer</SubType>
<DependentUpon>AngleControl.cs</DependentUpon>

View file

@ -46,14 +46,15 @@ namespace CodeImp.DoomBuilder.Config
private float defaulttexturescale;
private float defaultflatscale;
private string formatinterface;
private int soundlinedefflags;
private int singlesidedflags;
private int doublesidedflags;
private int impassableflags;
private string soundlinedefflag;
private string singlesidedflag;
private string doublesidedflag;
private string impassableflag;
private bool mixtexturesflats;
private bool generalizedactions;
private bool generalizedeffects;
private int start3dmodethingtype;
private int linedefactivationsfilter;
// Map lumps
private IDictionary maplumpnames;
@ -63,12 +64,12 @@ namespace CodeImp.DoomBuilder.Config
private IDictionary flatranges;
// Things
private Dictionary<int, string> thingflags;
private Dictionary<string, string> thingflags;
private List<ThingCategory> thingcategories;
private Dictionary<int, ThingTypeInfo> things;
// Linedefs
private Dictionary<int, string> linedefflags;
private Dictionary<string, string> linedefflags;
private Dictionary<int, LinedefActionInfo> linedefactions;
private List<LinedefActionInfo> sortedlinedefactions;
private List<LinedefActionCategory> actioncategories;
@ -95,14 +96,15 @@ namespace CodeImp.DoomBuilder.Config
public float DefaultTextureScale { get { return defaulttexturescale; } }
public float DefaultFlatScale { get { return defaultflatscale; } }
public string FormatInterface { get { return formatinterface; } }
public int SoundLinedefFlags { get { return soundlinedefflags; } }
public int SingleSidedFlags { get { return singlesidedflags; } }
public int DoubleSidedFlags { get { return doublesidedflags; } }
public int ImpassableFlags { get { return impassableflags; } }
public string SoundLinedefFlag { get { return soundlinedefflag; } }
public string SingleSidedFlag { get { return singlesidedflag; } }
public string DoubleSidedFlag { get { return doublesidedflag; } }
public string ImpassableFlag { get { return impassableflag; } }
public bool MixTexturesFlats { get { return mixtexturesflats; } }
public bool GeneralizedActions { get { return generalizedactions; } }
public bool GeneralizedEffects { get { return generalizedeffects; } }
public int Start3DModeThingType { get { return start3dmodethingtype; } }
public int LinedefActivationsFilter { get { return linedefactivationsfilter; } }
// Map lumps
public IDictionary MapLumpNames { get { return maplumpnames; } }
@ -112,12 +114,12 @@ namespace CodeImp.DoomBuilder.Config
public IDictionary FlatRanges { get { return flatranges; } }
// Things
public IDictionary<int, string> ThingFlags { get { return thingflags; } }
public IDictionary<string, string> ThingFlags { get { return thingflags; } }
public List<ThingCategory> ThingCategories { get { return thingcategories; } }
public ICollection<ThingTypeInfo> Things { get { return things.Values; } }
// Linedefs
public IDictionary<int, string> LinedefFlags { get { return linedefflags; } }
public IDictionary<string, string> LinedefFlags { get { return linedefflags; } }
public IDictionary<int, LinedefActionInfo> LinedefActions { get { return linedefactions; } }
public List<LinedefActionInfo> SortedLinedefActions { get { return sortedlinedefactions; } }
public List<LinedefActionCategory> ActionCategories { get { return actioncategories; } }
@ -143,12 +145,14 @@ namespace CodeImp.DoomBuilder.Config
// Constructor
internal GameConfiguration(Configuration cfg)
{
object obj;
// Initialize
this.cfg = cfg;
this.thingflags = new Dictionary<int, string>();
this.thingflags = new Dictionary<string, string>();
this.thingcategories = new List<ThingCategory>();
this.things = new Dictionary<int, ThingTypeInfo>();
this.linedefflags = new Dictionary<int, string>();
this.linedefflags = new Dictionary<string, string>();
this.linedefactions = new Dictionary<int, LinedefActionInfo>();
this.actioncategories = new List<LinedefActionCategory>();
this.sortedlinedefactions = new List<LinedefActionInfo>();
@ -163,14 +167,22 @@ namespace CodeImp.DoomBuilder.Config
defaulttexturescale = cfg.ReadSetting("defaulttexturescale", 1f);
defaultflatscale = cfg.ReadSetting("defaultflatscale", 1f);
formatinterface = cfg.ReadSetting("formatinterface", "");
soundlinedefflags = cfg.ReadSetting("soundlinedefflags", 0);
singlesidedflags = cfg.ReadSetting("singlesidedflags", 0);
doublesidedflags = cfg.ReadSetting("doublesidedflags", 0);
impassableflags = cfg.ReadSetting("impassableflags", 0);
mixtexturesflats = cfg.ReadSetting("mixtexturesflats", false);
generalizedactions = cfg.ReadSetting("generalizedlinedefs", false);
generalizedeffects = cfg.ReadSetting("generalizedsectors", false);
start3dmodethingtype = cfg.ReadSetting("start3dmode", 0);
linedefactivationsfilter = cfg.ReadSetting("linedefactivationsfilter", 0);
// Flags have special (invariant culture) conversion
// because they are allowed to be written as integers in the configs
obj = cfg.ReadSettingObject("soundlinedefflag", 0);
if(obj is int) soundlinedefflag = ((int)obj).ToString(CultureInfo.InvariantCulture); else soundlinedefflag = obj.ToString();
obj = cfg.ReadSetting("singlesidedflag", 0);
if(obj is int) singlesidedflag = ((int)obj).ToString(CultureInfo.InvariantCulture); else singlesidedflag = obj.ToString();
obj = cfg.ReadSetting("doublesidedflag", 0);
if(obj is int) doublesidedflag = ((int)obj).ToString(CultureInfo.InvariantCulture); else doublesidedflag = obj.ToString();
obj = cfg.ReadSetting("impassableflag", 0);
if(obj is int) impassableflag = ((int)obj).ToString(CultureInfo.InvariantCulture); else impassableflag = obj.ToString();
// Get map lumps
maplumpnames = cfg.ReadSetting("maplumpnames", new Hashtable());
@ -286,6 +298,7 @@ namespace CodeImp.DoomBuilder.Config
dic = cfg.ReadSetting("linedefflags", new Hashtable());
foreach(DictionaryEntry de in dic)
{
/*
// Try paring the bit value
if(int.TryParse(de.Key.ToString(),
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
@ -304,6 +317,9 @@ namespace CodeImp.DoomBuilder.Config
{
General.WriteLogLine("WARNING: Structure 'linedefflags' contains invalid keys!");
}
*/
linedefflags.Add(de.Key.ToString(), de.Value.ToString());
}
}
@ -382,18 +398,8 @@ namespace CodeImp.DoomBuilder.Config
dic = cfg.ReadSetting("linedefactivations", new Hashtable());
foreach(DictionaryEntry de in dic)
{
// Try paring the bit value
if(int.TryParse(de.Key.ToString(),
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
CultureInfo.InvariantCulture, out bitvalue))
{
// Add to the list
linedefactivates.Add(new LinedefActivateInfo(bitvalue, de.Value.ToString()));
}
else
{
General.WriteLogLine("WARNING: Structure 'linedefactivations' contains invalid keys!");
}
// Add to the list
linedefactivates.Add(new LinedefActivateInfo(de.Key.ToString(), de.Value.ToString()));
}
// Sort the list
@ -488,6 +494,7 @@ namespace CodeImp.DoomBuilder.Config
dic = cfg.ReadSetting("thingflags", new Hashtable());
foreach(DictionaryEntry de in dic)
{
/*
// Try paring the bit value
if(int.TryParse(de.Key.ToString(),
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
@ -506,6 +513,9 @@ namespace CodeImp.DoomBuilder.Config
{
General.WriteLogLine("WARNING: Structure 'thingflags' contains invalid keys!");
}
*/
thingflags.Add(de.Key.ToString(), de.Value.ToString());
}
}

View file

@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Map;
namespace CodeImp.DoomBuilder.Config
{
public class LinedefActivateInfo : INumberedTitle, IComparable<LinedefActivateInfo>
public class LinedefActivateInfo : IComparable<LinedefActivateInfo>
{
#region ================== Constants
@ -41,14 +41,16 @@ namespace CodeImp.DoomBuilder.Config
#region ================== Variables
// Properties
private int index;
private int intkey;
private string key;
private string title;
#endregion
#region ================== Properties
public int Index { get { return index; } }
public int Index { get { return intkey; } }
public string Key { get { return key; } }
public string Title { get { return title; } }
#endregion
@ -56,12 +58,15 @@ namespace CodeImp.DoomBuilder.Config
#region ================== Constructor / Disposer
// Constructor
internal LinedefActivateInfo(int index, string title)
internal LinedefActivateInfo(string key, string title)
{
// Initialize
this.index = index;
this.key = key;
this.title = title;
// Try parsing key as int for comparison
if(!int.TryParse(key, out intkey)) intkey = 0;
// We have no destructor
GC.SuppressFinalize(this);
}
@ -79,8 +84,8 @@ namespace CodeImp.DoomBuilder.Config
// This compares against another activate info
public int CompareTo(LinedefActivateInfo other)
{
if(this.index < other.index) return -1;
else if(this.index > other.index) return 1;
if(this.intkey < other.intkey) return -1;
else if(this.intkey > other.intkey) return 1;
else return 0;
}

View file

@ -34,11 +34,11 @@ namespace CodeImp.DoomBuilder.Controls
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
this.fieldslist = new System.Windows.Forms.DataGridView();
this.deleterowstimer = new System.Windows.Forms.Timer(this.components);
this.browsebutton = new System.Windows.Forms.Button();
this.fieldname = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.fieldtype = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.fieldvalue = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.deleterowstimer = new System.Windows.Forms.Timer(this.components);
this.browsebutton = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.fieldslist)).BeginInit();
this.SuspendLayout();
//
@ -47,7 +47,7 @@ namespace CodeImp.DoomBuilder.Controls
this.fieldslist.AllowUserToResizeColumns = false;
this.fieldslist.AllowUserToResizeRows = false;
this.fieldslist.BackgroundColor = System.Drawing.SystemColors.Window;
this.fieldslist.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.fieldslist.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.fieldslist.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
this.fieldslist.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable;
this.fieldslist.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
@ -83,23 +83,6 @@ namespace CodeImp.DoomBuilder.Controls
this.fieldslist.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.fieldslist_CellClick);
this.fieldslist.SelectionChanged += new System.EventHandler(this.fieldslist_SelectionChanged);
//
// deleterowstimer
//
this.deleterowstimer.Interval = 1;
this.deleterowstimer.Tick += new System.EventHandler(this.deleterowstimer_Tick);
//
// browsebutton
//
this.browsebutton.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.browsebutton.Image = global::CodeImp.DoomBuilder.Properties.Resources.treeview;
this.browsebutton.ImageAlign = System.Drawing.ContentAlignment.BottomCenter;
this.browsebutton.Location = new System.Drawing.Point(370, 43);
this.browsebutton.Name = "browsebutton";
this.browsebutton.Size = new System.Drawing.Size(30, 24);
this.browsebutton.TabIndex = 2;
this.browsebutton.UseVisualStyleBackColor = true;
this.browsebutton.Visible = false;
//
// fieldname
//
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;
@ -139,6 +122,23 @@ namespace CodeImp.DoomBuilder.Controls
this.fieldvalue.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.fieldvalue.Width = 120;
//
// deleterowstimer
//
this.deleterowstimer.Interval = 1;
this.deleterowstimer.Tick += new System.EventHandler(this.deleterowstimer_Tick);
//
// browsebutton
//
this.browsebutton.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.browsebutton.Image = global::CodeImp.DoomBuilder.Properties.Resources.treeview;
this.browsebutton.ImageAlign = System.Drawing.ContentAlignment.BottomCenter;
this.browsebutton.Location = new System.Drawing.Point(370, 43);
this.browsebutton.Name = "browsebutton";
this.browsebutton.Size = new System.Drawing.Size(30, 24);
this.browsebutton.TabIndex = 2;
this.browsebutton.UseVisualStyleBackColor = true;
this.browsebutton.Visible = false;
//
// FieldsEditorControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

View file

@ -904,7 +904,7 @@ namespace CodeImp.DoomBuilder.IO
if(ValidateKeyword(val.Trim(), line))
{
// Add to the struct depending on the keyword
switch(val.Trim().ToLower())
switch(val.Trim().ToLowerInvariant())
{
case "true":

View file

@ -57,12 +57,11 @@ namespace CodeImp.DoomBuilder.IO
// This reads a map from the file and returns a MapSet
public override MapSet Read(MapSet map, string mapname)
{
int firstindex;
Dictionary<int, Vertex> vertexlink;
Dictionary<int, Sector> sectorlink;
// Find the index where first map lump begins
firstindex = wad.FindLumpIndex(mapname) + 1;
int firstindex = wad.FindLumpIndex(mapname) + 1;
// Read vertices
vertexlink = ReadVertices(map, firstindex);
@ -89,6 +88,7 @@ namespace CodeImp.DoomBuilder.IO
MemoryStream mem;
BinaryReader reader;
int num, i, x, y, type, flags;
Dictionary<string, bool> stringflags;
float angle;
Thing t;
@ -111,9 +111,17 @@ namespace CodeImp.DoomBuilder.IO
type = reader.ReadUInt16();
flags = reader.ReadUInt16();
// Make string flags
stringflags = new Dictionary<string, bool>();
foreach(KeyValuePair<string, string> f in manager.Config.ThingFlags)
{
int fnum;
if(int.TryParse(f.Key, out fnum)) stringflags[f.Key] = ((flags & fnum) == fnum);
}
// Create new item
t = map.CreateThing();
t.Update(type, x, y, 0, angle, flags, 0, 0, Thing.EMPTY_ARGS);
t.Update(type, x, y, 0, angle, stringflags, 0, 0, Thing.EMPTY_ARGS);
//t.DetermineSector();
t.UpdateConfiguration();
}
@ -224,6 +232,7 @@ namespace CodeImp.DoomBuilder.IO
Lump linedefslump, sidedefslump;
int num, i, offsetx, offsety, v1, v2;
int s1, s2, flags, action, tag, sc;
Dictionary<string, bool> stringflags;
string thigh, tmid, tlow;
Linedef l;
Sidedef s;
@ -254,10 +263,18 @@ namespace CodeImp.DoomBuilder.IO
tag = readline.ReadUInt16();
s1 = readline.ReadUInt16();
s2 = readline.ReadUInt16();
// Make string flags
stringflags = new Dictionary<string, bool>();
foreach(KeyValuePair<string, string> f in manager.Config.LinedefFlags)
{
int fnum;
if(int.TryParse(f.Key, out fnum)) stringflags[f.Key] = ((flags & fnum) == fnum);
}
// Create new item
l = map.CreateLinedef(vertexlink[v1], vertexlink[v2]);
l.Update(flags, tag, action, Linedef.EMPTY_ARGS);
l.Update(stringflags, 0, tag, action, Linedef.EMPTY_ARGS);
l.UpdateCache();
// Line has a front side?
@ -332,6 +349,7 @@ namespace CodeImp.DoomBuilder.IO
BinaryWriter writer;
Lump lump;
int insertpos;
int flags;
// Create memory to write to
mem = new MemoryStream();
@ -340,12 +358,20 @@ namespace CodeImp.DoomBuilder.IO
// Go for all things
foreach(Thing t in map.Things)
{
// Convert flags
flags = 0;
foreach(KeyValuePair<string, bool> f in t.Flags)
{
int fnum;
if(f.Value && int.TryParse(f.Key, out fnum)) flags |= fnum;
}
// Write properties to stream
writer.Write((Int16)t.Position.x);
writer.Write((Int16)t.Position.y);
writer.Write((Int16)((t.Angle * Angle2D.PIDEG) - 90));
writer.Write((UInt16)t.Type);
writer.Write((UInt16)t.Flags);
writer.Write((UInt16)flags);
}
// Find insert position and remove old lump
@ -398,6 +424,7 @@ namespace CodeImp.DoomBuilder.IO
Lump lump;
ushort sid;
int insertpos;
int flags;
// Create memory to write to
mem = new MemoryStream();
@ -406,10 +433,18 @@ namespace CodeImp.DoomBuilder.IO
// Go for all lines
foreach(Linedef l in map.Linedefs)
{
// Convert flags
flags = 0;
foreach(KeyValuePair<string, bool> f in l.Flags)
{
int fnum;
if(f.Value && int.TryParse(f.Key, out fnum)) flags |= fnum;
}
// Write properties to stream
writer.Write((UInt16)vertexids[l.Start]);
writer.Write((UInt16)vertexids[l.End]);
writer.Write((UInt16)l.Flags);
writer.Write((UInt16)flags);
writer.Write((UInt16)l.Action);
writer.Write((UInt16)l.Tag);

View file

@ -90,6 +90,7 @@ namespace CodeImp.DoomBuilder.IO
BinaryReader reader;
int num, i, tag, z, action, x, y, type, flags;
int[] args = new int[Thing.NUM_ARGS];
Dictionary<string, bool> stringflags;
float angle;
Thing t;
@ -119,10 +120,18 @@ namespace CodeImp.DoomBuilder.IO
args[2] = reader.ReadByte();
args[3] = reader.ReadByte();
args[4] = reader.ReadByte();
// Make string flags
stringflags = new Dictionary<string, bool>();
foreach(KeyValuePair<string, string> f in manager.Config.ThingFlags)
{
int fnum;
if(int.TryParse(f.Key, out fnum)) stringflags[f.Key] = ((flags & fnum) == fnum);
}
// Create new item
t = map.CreateThing();
t.Update(type, x, y, z, angle, flags, tag, action, args);
t.Update(type, x, y, z, angle, stringflags, tag, action, args);
//t.DetermineSector();
t.UpdateConfiguration();
}
@ -234,6 +243,7 @@ namespace CodeImp.DoomBuilder.IO
int num, i, offsetx, offsety, v1, v2;
int s1, s2, flags, action, sc;
int[] args = new int[Linedef.NUM_ARGS];
Dictionary<string, bool> stringflags;
string thigh, tmid, tlow;
Linedef l;
Sidedef s;
@ -268,10 +278,18 @@ namespace CodeImp.DoomBuilder.IO
args[4] = readline.ReadByte();
s1 = readline.ReadUInt16();
s2 = readline.ReadUInt16();
// Make string flags
stringflags = new Dictionary<string, bool>();
foreach(KeyValuePair<string, string> f in manager.Config.LinedefFlags)
{
int fnum;
if(int.TryParse(f.Key, out fnum)) stringflags[f.Key] = ((flags & fnum) == fnum);
}
// Create new item
l = map.CreateLinedef(vertexlink[v1], vertexlink[v2]);
l.Update(flags, 0, action, args);
l.Update(stringflags, (flags & manager.Config.LinedefActivationsFilter), 0, action, args);
l.UpdateCache();
// Line has a front side?
@ -346,6 +364,7 @@ namespace CodeImp.DoomBuilder.IO
BinaryWriter writer;
Lump lump;
int insertpos;
int flags;
// Create memory to write to
mem = new MemoryStream();
@ -354,6 +373,15 @@ namespace CodeImp.DoomBuilder.IO
// Go for all things
foreach(Thing t in map.Things)
{
// Convert flags
flags = 0;
foreach(KeyValuePair<string, bool> f in t.Flags)
{
int fnum;
if(f.Value && int.TryParse(f.Key, out fnum)) flags |= fnum;
}
// Write properties to stream
// Write properties to stream
writer.Write((UInt16)t.Tag);
writer.Write((Int16)t.Position.x);
@ -361,7 +389,7 @@ namespace CodeImp.DoomBuilder.IO
writer.Write((Int16)t.ZOffset);
writer.Write((Int16)((t.Angle * Angle2D.PIDEG) - 90));
writer.Write((UInt16)t.Type);
writer.Write((UInt16)t.Flags);
writer.Write((UInt16)flags);
writer.Write((Byte)t.Action);
writer.Write((Byte)t.Args[0]);
writer.Write((Byte)t.Args[1]);
@ -420,6 +448,7 @@ namespace CodeImp.DoomBuilder.IO
Lump lump;
ushort sid;
int insertpos;
int flags;
// Create memory to write to
mem = new MemoryStream();
@ -428,10 +457,21 @@ namespace CodeImp.DoomBuilder.IO
// Go for all lines
foreach(Linedef l in map.Linedefs)
{
// Convert flags
flags = 0;
foreach(KeyValuePair<string, bool> f in l.Flags)
{
int fnum;
if(f.Value && int.TryParse(f.Key, out fnum)) flags |= fnum;
}
// Add activates to flags
flags |= (l.Activate & manager.Config.LinedefActivationsFilter);
// Write properties to stream
writer.Write((UInt16)vertexids[l.Start]);
writer.Write((UInt16)vertexids[l.End]);
writer.Write((UInt16)l.Flags);
writer.Write((UInt16)flags);
writer.Write((Byte)l.Action);
writer.Write((Byte)l.Args[0]);
writer.Write((Byte)l.Args[1]);

View file

@ -24,6 +24,7 @@ using System.Text;
using System.IO;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Geometry;
using System.Windows.Forms;
#endregion
@ -33,14 +34,45 @@ namespace CodeImp.DoomBuilder.IO
{
#region ================== Constants
// Name of the UDMF configuration file
private const string UDMF_CONFIG_NAME = "UDMF.cfg";
#endregion
#region ================== Variables
private Configuration config;
#endregion
#region ================== Constructor / Disposer
// Constructor
public UniversalMapSetIO(WAD wad, MapManager manager)
: base(wad, manager)
public UniversalMapSetIO(WAD wad, MapManager manager) : base(wad, manager)
{
// Make configuration
config = new Configuration();
// Find a resource named Font.cfg
string[] resnames = General.ThisAssembly.GetManifestResourceNames();
foreach(string rn in resnames)
{
// Found it?
if(rn.EndsWith(UDMF_CONFIG_NAME, StringComparison.InvariantCultureIgnoreCase))
{
// Get a stream from the resource
Stream udmfcfg = General.ThisAssembly.GetManifestResourceStream(rn);
StreamReader udmfcfgreader = new StreamReader(udmfcfg, Encoding.ASCII);
// Load configuration from stream
config.InputConfiguration(udmfcfgreader.ReadToEnd());
// Done
udmfcfgreader.Dispose();
udmfcfg.Dispose();
break;
}
}
}
#endregion
@ -53,15 +85,47 @@ namespace CodeImp.DoomBuilder.IO
#endregion
#region ================== Parsing
#endregion
#region ================== Reading
// This reads a map from the file and returns a MapSet
public override MapSet Read(MapSet map, string mapname)
{
UniversalParser textmap = new UniversalParser();
StreamReader lumpreader = null;
// Find the index where first map lump begins
int firstindex = wad.FindLumpIndex(mapname) + 1;
// Get the TEXTMAP lump from wad file
Lump lump = wad.FindLump("TEXTMAP", firstindex);
if(lump == null) throw new Exception("Could not find required lump TEXTMAP!");
try
{
// Parse the UDMF data
lumpreader = new StreamReader(lump.Stream);
textmap.InputConfiguration(lumpreader.ReadToEnd());
// Check for errors
if(textmap.ErrorResult != 0)
{
// Show parse error
General.ShowErrorMessage("Error while parsing UDMF map data:\n" + textmap.ErrorDescription, MessageBoxButtons.OK);
}
else
{
}
}
catch(Exception e)
{
General.ShowErrorMessage("Unexpected error reading UDMF map data. " + e.GetType().Name + ": " + e.Message, MessageBoxButtons.OK);
}
finally
{
if(lumpreader != null) lumpreader.Dispose();
}
// Return result
return map;
}

1123
Source/IO/UniversalParser.cs Normal file

File diff suppressed because it is too large Load diff

View file

@ -68,8 +68,9 @@ namespace CodeImp.DoomBuilder.Map
private RectangleF rect;
// Properties
private int flags;
private Dictionary<string, bool> flags;
private int action;
private int activate;
private int tag;
private int[] args;
@ -87,8 +88,9 @@ namespace CodeImp.DoomBuilder.Map
public Sidedef Front { get { return front; } }
public Sidedef Back { get { return back; } }
public Line2D Line { get { return new Line2D(start.Position, end.Position); } }
public int Flags { get { return flags; } set { flags = value; } }
public Dictionary<string, bool> Flags { get { return flags; } }
public int Action { get { return action; } set { action = value; } }
public int Activate { get { return activate; } set { activate = value; } }
public int Tag { get { return tag; } set { tag = value; if((tag < 0) || (tag > MapSet.HIGHEST_TAG)) throw new ArgumentOutOfRangeException("Tag", "Invalid tag number"); } }
public bool Selected { get { return selected; } set { selected = value; } }
public bool Marked { get { return marked; } set { marked = value; } }
@ -114,6 +116,7 @@ namespace CodeImp.DoomBuilder.Map
this.end = end;
this.updateneeded = true;
this.args = new int[NUM_ARGS];
this.flags = new Dictionary<string, bool>();
// Attach to vertices
startvertexlistitem = start.AttachLinedef(this);
@ -190,9 +193,10 @@ namespace CodeImp.DoomBuilder.Map
// Copy properties
l.action = action;
l.args = (int[])args.Clone();
l.flags = flags;
l.flags = new Dictionary<string, bool>(flags);
l.tag = tag;
l.updateneeded = true;
l.activate = activate;
l.selected = selected;
CopyFieldsTo(l);
}
@ -287,6 +291,15 @@ namespace CodeImp.DoomBuilder.Map
#region ================== Methods
// This checks and returns a flag without creating it
public bool IsFlagSet(string flagname)
{
if(flags.ContainsKey(flagname))
return flags[flagname];
else
return false;
}
// This flips the linedef's vertex attachments
public void FlipVertices()
{
@ -346,14 +359,14 @@ namespace CodeImp.DoomBuilder.Map
if((front != null) && (back != null))
{
// Apply or remove flags for doublesided line
flags &= ~General.Map.Config.SingleSidedFlags;
flags |= General.Map.Config.DoubleSidedFlags;
flags[General.Map.Config.SingleSidedFlag] = false;
flags[General.Map.Config.DoubleSidedFlag] = true;
}
else
{
// Apply or remove flags for singlesided line
flags &= ~General.Map.Config.DoubleSidedFlags;
flags |= General.Map.Config.SingleSidedFlags;
flags[General.Map.Config.SingleSidedFlag] = true;
flags[General.Map.Config.DoubleSidedFlag] = false;
}
}
@ -731,11 +744,12 @@ namespace CodeImp.DoomBuilder.Map
#region ================== Changes
// This updates all properties
public void Update(int flags, int tag, int action, int[] args)
public void Update(Dictionary<string, bool> flags, int activate, int tag, int action, int[] args)
{
// Apply changes
this.flags = flags;
this.flags = new Dictionary<string, bool>(flags);
this.tag = tag;
this.activate = activate;
this.action = action;
this.args = new int[NUM_ARGS];
args.CopyTo(this.args, 0);

View file

@ -55,7 +55,7 @@ namespace CodeImp.DoomBuilder.Map
private int type;
private Vector3D pos;
private float angle;
private int flags;
private Dictionary<string, bool> flags;
private int tag;
private int action;
private int[] args;
@ -79,7 +79,7 @@ namespace CodeImp.DoomBuilder.Map
public Vector3D Position { get { return pos; } }
public float Angle { get { return angle; } }
public int AngleDeg { get { return (int)Angle2D.RadToDeg(angle); } }
public int Flags { get { return flags; } set { flags = value; } }
public Dictionary<string, bool> Flags { get { return flags; } }
public int Action { get { return action; } set { action = value; } }
public int[] Args { get { return args; } }
public bool Selected { get { return selected; } set { selected = value; } }
@ -103,6 +103,7 @@ namespace CodeImp.DoomBuilder.Map
// Initialize
this.map = map;
this.mainlistitem = listitem;
this.flags = new Dictionary<string, bool>();
// We have no destructor
GC.SuppressFinalize(this);
@ -145,7 +146,7 @@ namespace CodeImp.DoomBuilder.Map
t.type = type;
t.angle = angle;
t.pos = pos;
t.flags = flags;
t.flags = new Dictionary<string,bool>(flags);
t.tag = tag;
t.action = action;
t.x = x;
@ -236,12 +237,12 @@ namespace CodeImp.DoomBuilder.Map
// This updates all properties
// NOTE: This does not update sector! (call DetermineSector)
public void Update(int type, int x, int y, int zoffset, float angle,
int flags, int tag, int action, int[] args)
Dictionary<string, bool> flags, int tag, int action, int[] args)
{
// Apply changes
this.type = type;
this.angle = angle;
this.flags = flags;
this.flags = new Dictionary<string, bool>(flags);
this.tag = tag;
this.action = action;
this.args = new int[NUM_ARGS];

View file

@ -539,7 +539,7 @@ namespace CodeImp.DoomBuilder.Rendering
public PixelColor DetermineLinedefColor(Linedef l)
{
// Impassable lines
if((l.Flags & General.Map.Config.ImpassableFlags) != 0)
if(l.IsFlagSet(General.Map.Config.ImpassableFlag))
{
// Determine color
if(l.Selected) return General.Colors.Selection;
@ -551,7 +551,7 @@ namespace CodeImp.DoomBuilder.Rendering
// Determine color
if(l.Selected) return General.Colors.Selection;
else if(l.Action != 0) return General.Colors.Actions.WithAlpha(DOUBLESIDED_LINE_ALPHA);
else if((l.Flags & General.Map.Config.SoundLinedefFlags) != 0) return General.Colors.Sounds.WithAlpha(DOUBLESIDED_LINE_ALPHA);
else if(l.IsFlagSet(General.Map.Config.SoundLinedefFlag)) return General.Colors.Sounds.WithAlpha(DOUBLESIDED_LINE_ALPHA);
else return General.Colors.Linedefs.WithAlpha(DOUBLESIDED_LINE_ALPHA);
}
}

67
Source/Resources/UDMF.cfg Normal file
View file

@ -0,0 +1,67 @@
/********************************************************************\
Configuration for UDMF map reader/writer (UniversalMapSetIO)
\********************************************************************/
// These are the fields managed by Doom Builder (either handled or ignored intentionally)
// and are no to be shown in the custom fields of the map elements.
managedfields
{
vertex
{
x;
y;
}
linedef
{
id;
v1;
v2;
special;
arg0;
arg1;
arg2;
arg3;
arg4;
sidefront;
sideback;
}
sidedef
{
offsetx;
offsety;
texturetop;
texturebottom;
texturemiddle;
sector;
}
sector
{
heightfloor;
heightceiling;
texturefloor;
textureceiling;
lightlevel;
special;
id;
}
thing
{
id;
x;
y;
height;
angle;
type;
special;
arg0;
arg1;
arg2;
arg3;
arg4;
}
}

View file

@ -41,21 +41,26 @@ namespace CodeImp.DoomBuilder.Windows
System.Windows.Forms.Label label11;
System.Windows.Forms.Label label12;
System.Windows.Forms.Label activationlabel;
this.arg0label = new System.Windows.Forms.Label();
this.arg1label = new System.Windows.Forms.Label();
this.arg4label = new System.Windows.Forms.Label();
this.arg2label = new System.Windows.Forms.Label();
this.arg3label = new System.Windows.Forms.Label();
this.cancel = new System.Windows.Forms.Button();
this.apply = new System.Windows.Forms.Button();
this.actiongroup = new System.Windows.Forms.GroupBox();
this.hexenpanel = new System.Windows.Forms.Panel();
this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.activation = new System.Windows.Forms.ComboBox();
this.action = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
this.browseaction = new System.Windows.Forms.Button();
this.doompanel = new System.Windows.Forms.Panel();
this.udmfpanel = new System.Windows.Forms.Panel();
this.udmfactivates = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
this.argspanel = new System.Windows.Forms.Panel();
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg1label = new System.Windows.Forms.Label();
this.arg0label = new System.Windows.Forms.Label();
this.arg3label = new System.Windows.Forms.Label();
this.arg2label = new System.Windows.Forms.Label();
this.arg4label = new System.Windows.Forms.Label();
this.tag = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.newtag = new System.Windows.Forms.Button();
this.settingsgroup = new System.Windows.Forms.GroupBox();
@ -63,16 +68,9 @@ namespace CodeImp.DoomBuilder.Windows
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.tabs = new System.Windows.Forms.TabControl();
this.tabproperties = new System.Windows.Forms.TabPage();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.idgroup = new System.Windows.Forms.GroupBox();
this.tabsidedefs = new System.Windows.Forms.TabPage();
this.backside = new System.Windows.Forms.CheckBox();
this.backgroup = new System.Windows.Forms.GroupBox();
this.backsector = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.backlow = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.backmid = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.backhigh = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.backoffsety = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.backoffsetx = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.splitter = new System.Windows.Forms.SplitContainer();
this.frontside = new System.Windows.Forms.CheckBox();
this.frontgroup = new System.Windows.Forms.GroupBox();
this.frontsector = new CodeImp.DoomBuilder.Controls.NumericTextbox();
@ -81,11 +79,16 @@ namespace CodeImp.DoomBuilder.Windows
this.fronthigh = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.frontoffsety = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.frontoffsetx = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.backside = new System.Windows.Forms.CheckBox();
this.backgroup = new System.Windows.Forms.GroupBox();
this.backsector = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.backlow = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.backmid = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.backhigh = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.backoffsety = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.backoffsetx = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.tabcustom = new System.Windows.Forms.TabPage();
this.fieldslist = new CodeImp.DoomBuilder.Controls.FieldsEditorControl();
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
label2 = new System.Windows.Forms.Label();
taglabel = new System.Windows.Forms.Label();
label3 = new System.Windows.Forms.Label();
@ -101,13 +104,18 @@ namespace CodeImp.DoomBuilder.Windows
activationlabel = new System.Windows.Forms.Label();
this.actiongroup.SuspendLayout();
this.hexenpanel.SuspendLayout();
this.udmfpanel.SuspendLayout();
this.argspanel.SuspendLayout();
this.settingsgroup.SuspendLayout();
this.tabs.SuspendLayout();
this.tabproperties.SuspendLayout();
this.groupBox1.SuspendLayout();
this.idgroup.SuspendLayout();
this.tabsidedefs.SuspendLayout();
this.backgroup.SuspendLayout();
this.splitter.Panel1.SuspendLayout();
this.splitter.Panel2.SuspendLayout();
this.splitter.SuspendLayout();
this.frontgroup.SuspendLayout();
this.backgroup.SuspendLayout();
this.tabcustom.SuspendLayout();
this.SuspendLayout();
//
@ -222,67 +230,17 @@ namespace CodeImp.DoomBuilder.Windows
// activationlabel
//
activationlabel.AutoSize = true;
activationlabel.Location = new System.Drawing.Point(6, 18);
activationlabel.Location = new System.Drawing.Point(6, 17);
activationlabel.Name = "activationlabel";
activationlabel.Size = new System.Drawing.Size(44, 14);
activationlabel.TabIndex = 10;
activationlabel.Text = "Trigger:";
//
// arg0label
//
this.arg0label.Location = new System.Drawing.Point(-26, 58);
this.arg0label.Name = "arg0label";
this.arg0label.Size = new System.Drawing.Size(179, 14);
this.arg0label.TabIndex = 12;
this.arg0label.Text = "Argument 1:";
this.arg0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg0label.UseMnemonic = false;
//
// arg1label
//
this.arg1label.Location = new System.Drawing.Point(-26, 84);
this.arg1label.Name = "arg1label";
this.arg1label.Size = new System.Drawing.Size(179, 14);
this.arg1label.TabIndex = 14;
this.arg1label.Text = "Argument 2:";
this.arg1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg1label.UseMnemonic = false;
//
// arg4label
//
this.arg4label.Location = new System.Drawing.Point(215, 84);
this.arg4label.Name = "arg4label";
this.arg4label.Size = new System.Drawing.Size(179, 14);
this.arg4label.TabIndex = 16;
this.arg4label.Text = "Argument 5:";
this.arg4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg4label.UseMnemonic = false;
//
// arg2label
//
this.arg2label.Location = new System.Drawing.Point(-26, 110);
this.arg2label.Name = "arg2label";
this.arg2label.Size = new System.Drawing.Size(179, 14);
this.arg2label.TabIndex = 18;
this.arg2label.Text = "Argument 3:";
this.arg2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg2label.UseMnemonic = false;
//
// arg3label
//
this.arg3label.Location = new System.Drawing.Point(215, 58);
this.arg3label.Name = "arg3label";
this.arg3label.Size = new System.Drawing.Size(179, 14);
this.arg3label.TabIndex = 20;
this.arg3label.Text = "Argument 4:";
this.arg3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg3label.UseMnemonic = false;
//
// cancel
//
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancel.Location = new System.Drawing.Point(439, 493);
this.cancel.Location = new System.Drawing.Point(439, 553);
this.cancel.Name = "cancel";
this.cancel.Size = new System.Drawing.Size(112, 25);
this.cancel.TabIndex = 17;
@ -293,7 +251,7 @@ namespace CodeImp.DoomBuilder.Windows
// apply
//
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.apply.Location = new System.Drawing.Point(320, 493);
this.apply.Location = new System.Drawing.Point(320, 553);
this.apply.Name = "apply";
this.apply.Size = new System.Drawing.Size(112, 25);
this.apply.TabIndex = 16;
@ -303,64 +261,36 @@ namespace CodeImp.DoomBuilder.Windows
//
// actiongroup
//
this.actiongroup.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
this.actiongroup.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.actiongroup.Controls.Add(this.hexenpanel);
this.actiongroup.Controls.Add(label2);
this.actiongroup.Controls.Add(this.action);
this.actiongroup.Controls.Add(this.browseaction);
this.actiongroup.Controls.Add(this.doompanel);
this.actiongroup.Location = new System.Drawing.Point(8, 238);
this.actiongroup.Controls.Add(this.udmfpanel);
this.actiongroup.Controls.Add(this.argspanel);
this.actiongroup.Location = new System.Drawing.Point(8, 166);
this.actiongroup.Name = "actiongroup";
this.actiongroup.Size = new System.Drawing.Size(517, 192);
this.actiongroup.Size = new System.Drawing.Size(517, 253);
this.actiongroup.TabIndex = 18;
this.actiongroup.TabStop = false;
this.actiongroup.Text = " Action ";
//
// hexenpanel
//
this.hexenpanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.hexenpanel.Controls.Add(this.arg2);
this.hexenpanel.Controls.Add(this.arg1);
this.hexenpanel.Controls.Add(this.arg0);
this.hexenpanel.Controls.Add(this.arg3);
this.hexenpanel.Controls.Add(this.arg4);
this.hexenpanel.Controls.Add(this.activation);
this.hexenpanel.Controls.Add(activationlabel);
this.hexenpanel.Controls.Add(this.arg1label);
this.hexenpanel.Controls.Add(this.arg0label);
this.hexenpanel.Controls.Add(this.arg3label);
this.hexenpanel.Controls.Add(this.arg2label);
this.hexenpanel.Controls.Add(this.arg4label);
this.hexenpanel.Location = new System.Drawing.Point(6, 52);
this.hexenpanel.Location = new System.Drawing.Point(6, 139);
this.hexenpanel.Name = "hexenpanel";
this.hexenpanel.Size = new System.Drawing.Size(505, 132);
this.hexenpanel.Size = new System.Drawing.Size(505, 49);
this.hexenpanel.TabIndex = 13;
//
// arg3
//
this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg3.Location = new System.Drawing.Point(400, 53);
this.arg3.Name = "arg3";
this.arg3.Size = new System.Drawing.Size(93, 24);
this.arg3.TabIndex = 28;
//
// arg4
//
this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg4.Location = new System.Drawing.Point(400, 79);
this.arg4.Name = "arg4";
this.arg4.Size = new System.Drawing.Size(93, 24);
this.arg4.TabIndex = 27;
this.hexenpanel.Visible = false;
//
// activation
//
this.activation.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.activation.FormattingEnabled = true;
this.activation.Location = new System.Drawing.Point(56, 14);
this.activation.Location = new System.Drawing.Point(56, 13);
this.activation.Name = "activation";
this.activation.Size = new System.Drawing.Size(437, 22);
this.activation.TabIndex = 11;
@ -391,15 +321,134 @@ namespace CodeImp.DoomBuilder.Windows
this.browseaction.UseVisualStyleBackColor = true;
this.browseaction.Click += new System.EventHandler(this.browseaction_Click);
//
// doompanel
// udmfpanel
//
this.doompanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.udmfpanel.Controls.Add(this.udmfactivates);
this.udmfpanel.Location = new System.Drawing.Point(6, 143);
this.udmfpanel.Name = "udmfpanel";
this.udmfpanel.Size = new System.Drawing.Size(505, 104);
this.udmfpanel.TabIndex = 12;
this.udmfpanel.Visible = false;
//
// udmfactivates
//
this.udmfactivates.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.doompanel.Location = new System.Drawing.Point(6, 54);
this.doompanel.Name = "doompanel";
this.doompanel.Size = new System.Drawing.Size(505, 132);
this.doompanel.TabIndex = 12;
this.udmfactivates.AutoScroll = true;
this.udmfactivates.Columns = 2;
this.udmfactivates.Location = new System.Drawing.Point(56, 5);
this.udmfactivates.Name = "udmfactivates";
this.udmfactivates.Size = new System.Drawing.Size(401, 95);
this.udmfactivates.TabIndex = 1;
//
// argspanel
//
this.argspanel.Controls.Add(this.arg2);
this.argspanel.Controls.Add(this.arg1);
this.argspanel.Controls.Add(this.arg0);
this.argspanel.Controls.Add(this.arg3);
this.argspanel.Controls.Add(this.arg4);
this.argspanel.Controls.Add(this.arg1label);
this.argspanel.Controls.Add(this.arg0label);
this.argspanel.Controls.Add(this.arg3label);
this.argspanel.Controls.Add(this.arg2label);
this.argspanel.Controls.Add(this.arg4label);
this.argspanel.Location = new System.Drawing.Point(6, 54);
this.argspanel.Name = "argspanel";
this.argspanel.Size = new System.Drawing.Size(505, 83);
this.argspanel.TabIndex = 13;
this.argspanel.Visible = false;
//
// arg2
//
this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg2.Location = new System.Drawing.Point(123, 55);
this.arg2.Name = "arg2";
this.arg2.Size = new System.Drawing.Size(93, 24);
this.arg2.TabIndex = 41;
//
// arg1
//
this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg1.Location = new System.Drawing.Point(123, 29);
this.arg1.Name = "arg1";
this.arg1.Size = new System.Drawing.Size(93, 24);
this.arg1.TabIndex = 40;
//
// arg0
//
this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg0.Location = new System.Drawing.Point(123, 3);
this.arg0.Name = "arg0";
this.arg0.Size = new System.Drawing.Size(93, 24);
this.arg0.TabIndex = 39;
//
// arg3
//
this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg3.Location = new System.Drawing.Point(364, 3);
this.arg3.Name = "arg3";
this.arg3.Size = new System.Drawing.Size(93, 24);
this.arg3.TabIndex = 38;
//
// arg4
//
this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg4.Location = new System.Drawing.Point(364, 29);
this.arg4.Name = "arg4";
this.arg4.Size = new System.Drawing.Size(93, 24);
this.arg4.TabIndex = 37;
//
// arg1label
//
this.arg1label.Location = new System.Drawing.Point(-62, 34);
this.arg1label.Name = "arg1label";
this.arg1label.Size = new System.Drawing.Size(179, 14);
this.arg1label.TabIndex = 33;
this.arg1label.Text = "Argument 2:";
this.arg1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg1label.UseMnemonic = false;
//
// arg0label
//
this.arg0label.Location = new System.Drawing.Point(-62, 8);
this.arg0label.Name = "arg0label";
this.arg0label.Size = new System.Drawing.Size(179, 14);
this.arg0label.TabIndex = 32;
this.arg0label.Text = "Argument 1:";
this.arg0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg0label.UseMnemonic = false;
//
// arg3label
//
this.arg3label.Location = new System.Drawing.Point(179, 8);
this.arg3label.Name = "arg3label";
this.arg3label.Size = new System.Drawing.Size(179, 14);
this.arg3label.TabIndex = 36;
this.arg3label.Text = "Argument 4:";
this.arg3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg3label.UseMnemonic = false;
//
// arg2label
//
this.arg2label.Location = new System.Drawing.Point(-62, 60);
this.arg2label.Name = "arg2label";
this.arg2label.Size = new System.Drawing.Size(179, 14);
this.arg2label.TabIndex = 35;
this.arg2label.Text = "Argument 3:";
this.arg2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg2label.UseMnemonic = false;
//
// arg4label
//
this.arg4label.Location = new System.Drawing.Point(179, 34);
this.arg4label.Name = "arg4label";
this.arg4label.Size = new System.Drawing.Size(179, 14);
this.arg4label.TabIndex = 34;
this.arg4label.Text = "Argument 5:";
this.arg4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.arg4label.UseMnemonic = false;
//
// tag
//
@ -467,147 +516,74 @@ namespace CodeImp.DoomBuilder.Windows
this.tabs.Margin = new System.Windows.Forms.Padding(1);
this.tabs.Name = "tabs";
this.tabs.SelectedIndex = 0;
this.tabs.Size = new System.Drawing.Size(541, 466);
this.tabs.Size = new System.Drawing.Size(541, 526);
this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.tabs.TabIndex = 20;
//
// tabproperties
//
this.tabproperties.Controls.Add(this.groupBox1);
this.tabproperties.Controls.Add(this.idgroup);
this.tabproperties.Controls.Add(this.settingsgroup);
this.tabproperties.Controls.Add(this.actiongroup);
this.tabproperties.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabproperties.Location = new System.Drawing.Point(4, 23);
this.tabproperties.Name = "tabproperties";
this.tabproperties.Padding = new System.Windows.Forms.Padding(5);
this.tabproperties.Size = new System.Drawing.Size(533, 439);
this.tabproperties.Size = new System.Drawing.Size(533, 499);
this.tabproperties.TabIndex = 0;
this.tabproperties.Text = "Properties";
this.tabproperties.UseVisualStyleBackColor = true;
//
// groupBox1
// idgroup
//
this.groupBox1.Controls.Add(this.tag);
this.groupBox1.Controls.Add(taglabel);
this.groupBox1.Controls.Add(this.newtag);
this.groupBox1.Location = new System.Drawing.Point(8, 166);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(517, 66);
this.groupBox1.TabIndex = 20;
this.groupBox1.TabStop = false;
this.groupBox1.Text = " Identification ";
this.idgroup.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.idgroup.Controls.Add(this.tag);
this.idgroup.Controls.Add(taglabel);
this.idgroup.Controls.Add(this.newtag);
this.idgroup.Location = new System.Drawing.Point(8, 425);
this.idgroup.Name = "idgroup";
this.idgroup.Size = new System.Drawing.Size(517, 66);
this.idgroup.TabIndex = 20;
this.idgroup.TabStop = false;
this.idgroup.Text = " Identification ";
//
// tabsidedefs
//
this.tabsidedefs.Controls.Add(this.backside);
this.tabsidedefs.Controls.Add(this.backgroup);
this.tabsidedefs.Controls.Add(this.frontside);
this.tabsidedefs.Controls.Add(this.frontgroup);
this.tabsidedefs.Controls.Add(this.splitter);
this.tabsidedefs.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabsidedefs.Location = new System.Drawing.Point(4, 23);
this.tabsidedefs.Name = "tabsidedefs";
this.tabsidedefs.Padding = new System.Windows.Forms.Padding(5);
this.tabsidedefs.Size = new System.Drawing.Size(533, 439);
this.tabsidedefs.Size = new System.Drawing.Size(533, 499);
this.tabsidedefs.TabIndex = 1;
this.tabsidedefs.Text = "Sidedefs";
this.tabsidedefs.UseVisualStyleBackColor = true;
//
// backside
// splitter
//
this.backside.AutoSize = true;
this.backside.Location = new System.Drawing.Point(20, 212);
this.backside.Name = "backside";
this.backside.Size = new System.Drawing.Size(74, 18);
this.backside.TabIndex = 2;
this.backside.Text = "Back Side";
this.backside.UseVisualStyleBackColor = true;
this.backside.CheckStateChanged += new System.EventHandler(this.backside_CheckStateChanged);
this.splitter.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitter.Location = new System.Drawing.Point(5, 5);
this.splitter.Name = "splitter";
this.splitter.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// backgroup
// splitter.Panel1
//
this.backgroup.Controls.Add(this.backsector);
this.backgroup.Controls.Add(label12);
this.backgroup.Controls.Add(this.backlow);
this.backgroup.Controls.Add(this.backmid);
this.backgroup.Controls.Add(this.backhigh);
this.backgroup.Controls.Add(this.backoffsety);
this.backgroup.Controls.Add(this.backoffsetx);
this.backgroup.Controls.Add(label7);
this.backgroup.Controls.Add(label8);
this.backgroup.Controls.Add(label9);
this.backgroup.Controls.Add(label10);
this.backgroup.Enabled = false;
this.backgroup.Location = new System.Drawing.Point(8, 214);
this.backgroup.Name = "backgroup";
this.backgroup.Size = new System.Drawing.Size(517, 208);
this.backgroup.TabIndex = 1;
this.backgroup.TabStop = false;
this.backgroup.Text = " ";
this.splitter.Panel1.Controls.Add(this.frontside);
this.splitter.Panel1.Controls.Add(this.frontgroup);
//
// backsector
// splitter.Panel2
//
this.backsector.AllowNegative = false;
this.backsector.AllowRelative = false;
this.backsector.ImeMode = System.Windows.Forms.ImeMode.Off;
this.backsector.Location = new System.Drawing.Point(103, 37);
this.backsector.Name = "backsector";
this.backsector.Size = new System.Drawing.Size(94, 20);
this.backsector.TabIndex = 17;
this.backsector.Enter += new System.EventHandler(this.SelectAllText);
//
// backlow
//
this.backlow.Location = new System.Drawing.Point(416, 37);
this.backlow.Name = "backlow";
this.backlow.Required = false;
this.backlow.Size = new System.Drawing.Size(83, 120);
this.backlow.TabIndex = 15;
this.backlow.TextureName = "";
//
// backmid
//
this.backmid.Location = new System.Drawing.Point(325, 37);
this.backmid.Name = "backmid";
this.backmid.Required = false;
this.backmid.Size = new System.Drawing.Size(83, 120);
this.backmid.TabIndex = 14;
this.backmid.TextureName = "";
//
// backhigh
//
this.backhigh.Location = new System.Drawing.Point(234, 37);
this.backhigh.Name = "backhigh";
this.backhigh.Required = false;
this.backhigh.Size = new System.Drawing.Size(83, 120);
this.backhigh.TabIndex = 13;
this.backhigh.TextureName = "";
//
// backoffsety
//
this.backoffsety.AllowNegative = true;
this.backoffsety.AllowRelative = true;
this.backoffsety.ImeMode = System.Windows.Forms.ImeMode.Off;
this.backoffsety.Location = new System.Drawing.Point(152, 76);
this.backoffsety.Name = "backoffsety";
this.backoffsety.Size = new System.Drawing.Size(45, 20);
this.backoffsety.TabIndex = 9;
this.backoffsety.Enter += new System.EventHandler(this.SelectAllText);
//
// backoffsetx
//
this.backoffsetx.AllowNegative = true;
this.backoffsetx.AllowRelative = true;
this.backoffsetx.ImeMode = System.Windows.Forms.ImeMode.Off;
this.backoffsetx.Location = new System.Drawing.Point(103, 76);
this.backoffsetx.Name = "backoffsetx";
this.backoffsetx.Size = new System.Drawing.Size(45, 20);
this.backoffsetx.TabIndex = 8;
this.backoffsetx.Enter += new System.EventHandler(this.SelectAllText);
this.splitter.Panel2.Controls.Add(this.backside);
this.splitter.Panel2.Controls.Add(this.backgroup);
this.splitter.Size = new System.Drawing.Size(523, 489);
this.splitter.SplitterDistance = 239;
this.splitter.TabIndex = 3;
//
// frontside
//
this.frontside.AutoSize = true;
this.frontside.Location = new System.Drawing.Point(20, 6);
this.frontside.Location = new System.Drawing.Point(15, 1);
this.frontside.Name = "frontside";
this.frontside.Size = new System.Drawing.Size(75, 18);
this.frontside.TabIndex = 0;
@ -617,6 +593,9 @@ namespace CodeImp.DoomBuilder.Windows
//
// frontgroup
//
this.frontgroup.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.frontgroup.Controls.Add(this.frontsector);
this.frontgroup.Controls.Add(label11);
this.frontgroup.Controls.Add(this.frontlow);
@ -629,9 +608,9 @@ namespace CodeImp.DoomBuilder.Windows
this.frontgroup.Controls.Add(label4);
this.frontgroup.Controls.Add(label3);
this.frontgroup.Enabled = false;
this.frontgroup.Location = new System.Drawing.Point(8, 8);
this.frontgroup.Location = new System.Drawing.Point(3, 3);
this.frontgroup.Name = "frontgroup";
this.frontgroup.Size = new System.Drawing.Size(517, 200);
this.frontgroup.Size = new System.Drawing.Size(517, 233);
this.frontgroup.TabIndex = 0;
this.frontgroup.TabStop = false;
this.frontgroup.Text = " ";
@ -652,7 +631,7 @@ namespace CodeImp.DoomBuilder.Windows
this.frontlow.Location = new System.Drawing.Point(416, 37);
this.frontlow.Name = "frontlow";
this.frontlow.Required = false;
this.frontlow.Size = new System.Drawing.Size(83, 120);
this.frontlow.Size = new System.Drawing.Size(83, 112);
this.frontlow.TabIndex = 12;
this.frontlow.TextureName = "";
//
@ -661,7 +640,7 @@ namespace CodeImp.DoomBuilder.Windows
this.frontmid.Location = new System.Drawing.Point(325, 37);
this.frontmid.Name = "frontmid";
this.frontmid.Required = false;
this.frontmid.Size = new System.Drawing.Size(83, 120);
this.frontmid.Size = new System.Drawing.Size(83, 112);
this.frontmid.TabIndex = 11;
this.frontmid.TextureName = "";
//
@ -670,7 +649,7 @@ namespace CodeImp.DoomBuilder.Windows
this.fronthigh.Location = new System.Drawing.Point(234, 37);
this.fronthigh.Name = "fronthigh";
this.fronthigh.Required = false;
this.fronthigh.Size = new System.Drawing.Size(83, 120);
this.fronthigh.Size = new System.Drawing.Size(83, 112);
this.fronthigh.TabIndex = 10;
this.fronthigh.TextureName = "";
//
@ -696,6 +675,101 @@ namespace CodeImp.DoomBuilder.Windows
this.frontoffsetx.TabIndex = 8;
this.frontoffsetx.Enter += new System.EventHandler(this.SelectAllText);
//
// backside
//
this.backside.AutoSize = true;
this.backside.Location = new System.Drawing.Point(17, 1);
this.backside.Name = "backside";
this.backside.Size = new System.Drawing.Size(74, 18);
this.backside.TabIndex = 2;
this.backside.Text = "Back Side";
this.backside.UseVisualStyleBackColor = true;
this.backside.CheckStateChanged += new System.EventHandler(this.backside_CheckStateChanged);
//
// backgroup
//
this.backgroup.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.backgroup.Controls.Add(this.backsector);
this.backgroup.Controls.Add(label12);
this.backgroup.Controls.Add(this.backlow);
this.backgroup.Controls.Add(this.backmid);
this.backgroup.Controls.Add(this.backhigh);
this.backgroup.Controls.Add(this.backoffsety);
this.backgroup.Controls.Add(this.backoffsetx);
this.backgroup.Controls.Add(label7);
this.backgroup.Controls.Add(label8);
this.backgroup.Controls.Add(label9);
this.backgroup.Controls.Add(label10);
this.backgroup.Enabled = false;
this.backgroup.Location = new System.Drawing.Point(3, 3);
this.backgroup.Name = "backgroup";
this.backgroup.Size = new System.Drawing.Size(519, 240);
this.backgroup.TabIndex = 1;
this.backgroup.TabStop = false;
this.backgroup.Text = " ";
//
// backsector
//
this.backsector.AllowNegative = false;
this.backsector.AllowRelative = false;
this.backsector.ImeMode = System.Windows.Forms.ImeMode.Off;
this.backsector.Location = new System.Drawing.Point(103, 37);
this.backsector.Name = "backsector";
this.backsector.Size = new System.Drawing.Size(94, 20);
this.backsector.TabIndex = 17;
this.backsector.Enter += new System.EventHandler(this.SelectAllText);
//
// backlow
//
this.backlow.Location = new System.Drawing.Point(416, 37);
this.backlow.Name = "backlow";
this.backlow.Required = false;
this.backlow.Size = new System.Drawing.Size(83, 112);
this.backlow.TabIndex = 15;
this.backlow.TextureName = "";
//
// backmid
//
this.backmid.Location = new System.Drawing.Point(325, 37);
this.backmid.Name = "backmid";
this.backmid.Required = false;
this.backmid.Size = new System.Drawing.Size(83, 112);
this.backmid.TabIndex = 14;
this.backmid.TextureName = "";
//
// backhigh
//
this.backhigh.Location = new System.Drawing.Point(234, 37);
this.backhigh.Name = "backhigh";
this.backhigh.Required = false;
this.backhigh.Size = new System.Drawing.Size(83, 112);
this.backhigh.TabIndex = 13;
this.backhigh.TextureName = "";
//
// backoffsety
//
this.backoffsety.AllowNegative = true;
this.backoffsety.AllowRelative = true;
this.backoffsety.ImeMode = System.Windows.Forms.ImeMode.Off;
this.backoffsety.Location = new System.Drawing.Point(152, 76);
this.backoffsety.Name = "backoffsety";
this.backoffsety.Size = new System.Drawing.Size(45, 20);
this.backoffsety.TabIndex = 9;
this.backoffsety.Enter += new System.EventHandler(this.SelectAllText);
//
// backoffsetx
//
this.backoffsetx.AllowNegative = true;
this.backoffsetx.AllowRelative = true;
this.backoffsetx.ImeMode = System.Windows.Forms.ImeMode.Off;
this.backoffsetx.Location = new System.Drawing.Point(103, 76);
this.backoffsetx.Name = "backoffsetx";
this.backoffsetx.Size = new System.Drawing.Size(45, 20);
this.backoffsetx.TabIndex = 8;
this.backoffsetx.Enter += new System.EventHandler(this.SelectAllText);
//
// tabcustom
//
this.tabcustom.Controls.Add(this.fieldslist);
@ -703,7 +777,7 @@ namespace CodeImp.DoomBuilder.Windows
this.tabcustom.Location = new System.Drawing.Point(4, 23);
this.tabcustom.Name = "tabcustom";
this.tabcustom.Padding = new System.Windows.Forms.Padding(3);
this.tabcustom.Size = new System.Drawing.Size(533, 439);
this.tabcustom.Size = new System.Drawing.Size(533, 499);
this.tabcustom.TabIndex = 2;
this.tabcustom.Text = "Custom";
this.tabcustom.UseVisualStyleBackColor = true;
@ -713,42 +787,19 @@ namespace CodeImp.DoomBuilder.Windows
this.fieldslist.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.fieldslist.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.fieldslist.Location = new System.Drawing.Point(11, 11);
this.fieldslist.Margin = new System.Windows.Forms.Padding(8);
this.fieldslist.Name = "fieldslist";
this.fieldslist.Size = new System.Drawing.Size(511, 417);
this.fieldslist.Size = new System.Drawing.Size(511, 477);
this.fieldslist.TabIndex = 0;
//
// arg0
//
this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg0.Location = new System.Drawing.Point(159, 53);
this.arg0.Name = "arg0";
this.arg0.Size = new System.Drawing.Size(93, 24);
this.arg0.TabIndex = 29;
//
// arg1
//
this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg1.Location = new System.Drawing.Point(159, 79);
this.arg1.Name = "arg1";
this.arg1.Size = new System.Drawing.Size(93, 24);
this.arg1.TabIndex = 30;
//
// arg2
//
this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg2.Location = new System.Drawing.Point(159, 105);
this.arg2.Name = "arg2";
this.arg2.Size = new System.Drawing.Size(93, 24);
this.arg2.TabIndex = 31;
//
// LinedefEditForm
//
this.AcceptButton = this.apply;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.CancelButton = this.cancel;
this.ClientSize = new System.Drawing.Size(561, 528);
this.ClientSize = new System.Drawing.Size(561, 588);
this.Controls.Add(this.tabs);
this.Controls.Add(this.cancel);
this.Controls.Add(this.apply);
@ -766,17 +817,23 @@ namespace CodeImp.DoomBuilder.Windows
this.actiongroup.PerformLayout();
this.hexenpanel.ResumeLayout(false);
this.hexenpanel.PerformLayout();
this.udmfpanel.ResumeLayout(false);
this.argspanel.ResumeLayout(false);
this.settingsgroup.ResumeLayout(false);
this.tabs.ResumeLayout(false);
this.tabproperties.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.idgroup.ResumeLayout(false);
this.idgroup.PerformLayout();
this.tabsidedefs.ResumeLayout(false);
this.tabsidedefs.PerformLayout();
this.backgroup.ResumeLayout(false);
this.backgroup.PerformLayout();
this.splitter.Panel1.ResumeLayout(false);
this.splitter.Panel1.PerformLayout();
this.splitter.Panel2.ResumeLayout(false);
this.splitter.Panel2.PerformLayout();
this.splitter.ResumeLayout(false);
this.frontgroup.ResumeLayout(false);
this.frontgroup.PerformLayout();
this.backgroup.ResumeLayout(false);
this.backgroup.PerformLayout();
this.tabcustom.ResumeLayout(false);
this.ResumeLayout(false);
@ -814,20 +871,23 @@ namespace CodeImp.DoomBuilder.Windows
private CodeImp.DoomBuilder.Controls.NumericTextbox backsector;
private CodeImp.DoomBuilder.Controls.NumericTextbox frontsector;
private System.Windows.Forms.ComboBox activation;
private System.Windows.Forms.Panel doompanel;
private System.Windows.Forms.Panel udmfpanel;
private System.Windows.Forms.Panel hexenpanel;
private System.Windows.Forms.Label arg0label;
private System.Windows.Forms.Label arg1label;
private System.Windows.Forms.Label arg4label;
private System.Windows.Forms.Label arg2label;
private System.Windows.Forms.Label arg3label;
private System.Windows.Forms.TabPage tabcustom;
private CodeImp.DoomBuilder.Controls.FieldsEditorControl fieldslist;
private System.Windows.Forms.GroupBox groupBox1;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg4;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg3;
private System.Windows.Forms.GroupBox idgroup;
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl udmfactivates;
private System.Windows.Forms.Panel argspanel;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg2;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg1;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg0;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg3;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg4;
private System.Windows.Forms.Label arg1label;
private System.Windows.Forms.Label arg0label;
private System.Windows.Forms.Label arg3label;
private System.Windows.Forms.Label arg2label;
private System.Windows.Forms.Label arg4label;
private System.Windows.Forms.SplitContainer splitter;
}
}

View file

@ -46,7 +46,8 @@ namespace CodeImp.DoomBuilder.Windows
InitializeComponent();
// Fill flags list
foreach(KeyValuePair<int, string> lf in General.Map.Config.LinedefFlags) flags.Add(lf.Value, lf.Key);
foreach(KeyValuePair<string, string> lf in General.Map.Config.LinedefFlags)
flags.Add(lf.Value, lf.Key);
// Fill actions list
action.GeneralizedCategories = General.Map.Config.GenActionCategories;
@ -54,6 +55,7 @@ namespace CodeImp.DoomBuilder.Windows
// Fill activations list
activation.Items.AddRange(General.Map.Config.LinedefActivates.ToArray());
foreach(LinedefActivateInfo ai in General.Map.Config.LinedefActivates) udmfactivates.Add(ai.Title, ai);
// Fill universal fields list
fieldslist.ListFixedFields(General.Map.Config.LinedefFields);
@ -69,10 +71,41 @@ namespace CodeImp.DoomBuilder.Windows
// Initialize custom fields editor
fieldslist.Setup();
// Show appropriate panels/tabs
doompanel.Visible = General.Map.IsType(typeof(DoomMapSetIO));
hexenpanel.Visible = General.Map.IsType(typeof(HexenMapSetIO));
//if(!General.Map.IsType(typeof(UniversalMapSetIO))) tabs.TabPages.Remove(tabcustom);
// THE CODE BELOW IS ABSOLUTELY UGLY
// I should make different controls for each format
// that handle linedef properties
// UDMF map?
if(General.Map.IsType(typeof(UniversalMapSetIO)))
{
udmfpanel.Visible = true;
argspanel.Visible = true;
}
// Hexen map?
else if(General.Map.IsType(typeof(HexenMapSetIO)))
{
hexenpanel.Visible = true;
argspanel.Visible = true;
actiongroup.Height = 210;
this.Height = 510;
}
// Doom map?
else
{
actiongroup.Height = 68;
this.Height = 470;
}
// ID group?
if(!General.Map.IsType(typeof(HexenMapSetIO)))
{
// Match position after the action group
idgroup.Top = actiongroup.Bottom + actiongroup.Margin.Bottom + idgroup.Margin.Top;
}
else
{
idgroup.Visible = false;
}
}
// This sets up the form to edit the given lines
@ -94,12 +127,19 @@ namespace CodeImp.DoomBuilder.Windows
// Flags
foreach(CheckBox c in flags.Checkboxes)
c.Checked = (fl.Flags & (int)c.Tag) != 0;
c.Checked = fl.Flags[c.Tag.ToString()];
// Activations
foreach(LinedefActivateInfo ai in activation.Items)
if((fl.Flags & ai.Index) == ai.Index) activation.SelectedItem = ai;
if((fl.Activate & ai.Index) == ai.Index) activation.SelectedItem = ai;
// UDMF Activations
foreach(CheckBox c in udmfactivates.Checkboxes)
{
LinedefActivateInfo ai = (c.Tag as LinedefActivateInfo);
c.Checked = fl.Flags[ai.Key];
}
// Action/tags
action.Value = fl.Action;
tag.Text = fl.Tag.ToString();
@ -148,7 +188,7 @@ namespace CodeImp.DoomBuilder.Windows
// Flags
foreach(CheckBox c in flags.Checkboxes)
{
if(((l.Flags & (int)c.Tag) != 0) != c.Checked)
if(l.Flags[c.Tag.ToString()] != c.Checked)
{
c.ThreeState = true;
c.CheckState = CheckState.Indeterminate;
@ -160,10 +200,21 @@ namespace CodeImp.DoomBuilder.Windows
{
sai = (activation.Items[0] as LinedefActivateInfo);
foreach(LinedefActivateInfo ai in activation.Items)
if((l.Flags & ai.Index) == ai.Index) sai = ai;
if((l.Activate & ai.Index) == ai.Index) sai = ai;
if(sai != activation.SelectedItem) activation.SelectedIndex = -1;
}
// UDMF Activations
foreach(CheckBox c in udmfactivates.Checkboxes)
{
LinedefActivateInfo ai = (c.Tag as LinedefActivateInfo);
if(c.Checked != fl.Flags[ai.Key])
{
c.ThreeState = true;
c.CheckState = CheckState.Indeterminate;
}
}
// Action/tags
if(l.Action != action.Value) action.Empty = true;
if(l.Tag.ToString() != tag.Text) tag.Text = "";
@ -252,20 +303,24 @@ namespace CodeImp.DoomBuilder.Windows
// Go for all the lines
foreach(Linedef l in lines)
{
// Remove activation flags
if(activation.SelectedIndex > -1)
foreach(LinedefActivateInfo ai in activation.Items) l.Flags &= ~ai.Index;
// Apply all flags
foreach(CheckBox c in flags.Checkboxes)
{
if(c.CheckState == CheckState.Checked) l.Flags |= (int)c.Tag;
else if(c.CheckState == CheckState.Unchecked) l.Flags &= ~(int)c.Tag;
if(c.CheckState == CheckState.Checked) l.Flags[c.Tag.ToString()] = true;
else if(c.CheckState == CheckState.Unchecked) l.Flags[c.Tag.ToString()] = false;
}
// Apply chosen activation flag
if(activation.SelectedIndex > -1)
l.Flags |= (activation.SelectedItem as LinedefActivateInfo).Index;
l.Activate = (activation.SelectedItem as LinedefActivateInfo).Index;
// UDMF activations
foreach(CheckBox c in udmfactivates.Checkboxes)
{
LinedefActivateInfo ai = (c.Tag as LinedefActivateInfo);
if(c.CheckState == CheckState.Checked) l.Flags[ai.Key] = true;
else if(c.CheckState == CheckState.Unchecked) l.Flags[ai.Key] = false;
}
// Action/tags
if(!action.Empty) l.Action = action.Value;

View file

@ -117,43 +117,229 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="taglabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="taglabel.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label6.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label7.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label8.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label9.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label10.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label10.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label11.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label11.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label12.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label12.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="activationlabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="activationlabel.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="actiongroup.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="hexenpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="activation.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="action.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="browseaction.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="udmfpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="udmfactivates.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="argspanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg0.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg1label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg0label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg3label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg2label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg4label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="newtag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="settingsgroup.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="flags.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="checkBox1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tabs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tabproperties.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="idgroup.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tabsidedefs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="splitter.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="frontside.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="frontgroup.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="frontsector.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="frontlow.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="frontmid.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="fronthigh.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="frontoffsety.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="frontoffsetx.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backside.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backgroup.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backsector.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backlow.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backmid.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backhigh.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backoffsety.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backoffsetx.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tabcustom.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="fieldslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View file

@ -394,6 +394,7 @@ namespace CodeImp.DoomBuilder.Windows
this.fieldslist.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.fieldslist.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.fieldslist.Location = new System.Drawing.Point(11, 11);
this.fieldslist.Margin = new System.Windows.Forms.Padding(8);
this.fieldslist.Name = "fieldslist";

View file

@ -58,6 +58,11 @@ namespace CodeImp.DoomBuilder.Windows
this.tabeffects = new System.Windows.Forms.TabPage();
this.actiongroup = new System.Windows.Forms.GroupBox();
this.hexenpanel = new System.Windows.Forms.Panel();
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg1label = new System.Windows.Forms.Label();
this.arg0label = new System.Windows.Forms.Label();
this.arg3label = new System.Windows.Forms.Label();
@ -73,11 +78,6 @@ namespace CodeImp.DoomBuilder.Windows
this.fieldslist = new CodeImp.DoomBuilder.Controls.FieldsEditorControl();
this.cancel = new System.Windows.Forms.Button();
this.apply = new System.Windows.Forms.Button();
this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
groupBox1 = new System.Windows.Forms.GroupBox();
label4 = new System.Windows.Forms.Label();
label3 = new System.Windows.Forms.Label();
@ -451,6 +451,46 @@ namespace CodeImp.DoomBuilder.Windows
this.hexenpanel.Size = new System.Drawing.Size(609, 208);
this.hexenpanel.TabIndex = 13;
//
// arg2
//
this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg2.Location = new System.Drawing.Point(179, 63);
this.arg2.Name = "arg2";
this.arg2.Size = new System.Drawing.Size(93, 24);
this.arg2.TabIndex = 32;
//
// arg1
//
this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg1.Location = new System.Drawing.Point(179, 37);
this.arg1.Name = "arg1";
this.arg1.Size = new System.Drawing.Size(93, 24);
this.arg1.TabIndex = 31;
//
// arg0
//
this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg0.Location = new System.Drawing.Point(179, 11);
this.arg0.Name = "arg0";
this.arg0.Size = new System.Drawing.Size(93, 24);
this.arg0.TabIndex = 30;
//
// arg3
//
this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg3.Location = new System.Drawing.Point(425, 11);
this.arg3.Name = "arg3";
this.arg3.Size = new System.Drawing.Size(93, 24);
this.arg3.TabIndex = 29;
//
// arg4
//
this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg4.Location = new System.Drawing.Point(425, 37);
this.arg4.Name = "arg4";
this.arg4.Size = new System.Drawing.Size(93, 24);
this.arg4.TabIndex = 28;
//
// arg1label
//
this.arg1label.Location = new System.Drawing.Point(-6, 42);
@ -585,6 +625,7 @@ namespace CodeImp.DoomBuilder.Windows
this.fieldslist.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.fieldslist.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.fieldslist.Location = new System.Drawing.Point(8, 9);
this.fieldslist.Margin = new System.Windows.Forms.Padding(8, 9, 8, 9);
this.fieldslist.Name = "fieldslist";
@ -614,46 +655,6 @@ namespace CodeImp.DoomBuilder.Windows
this.apply.UseVisualStyleBackColor = true;
this.apply.Click += new System.EventHandler(this.apply_Click);
//
// arg4
//
this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg4.Location = new System.Drawing.Point(425, 37);
this.arg4.Name = "arg4";
this.arg4.Size = new System.Drawing.Size(93, 24);
this.arg4.TabIndex = 28;
//
// arg3
//
this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg3.Location = new System.Drawing.Point(425, 11);
this.arg3.Name = "arg3";
this.arg3.Size = new System.Drawing.Size(93, 24);
this.arg3.TabIndex = 29;
//
// arg0
//
this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg0.Location = new System.Drawing.Point(179, 11);
this.arg0.Name = "arg0";
this.arg0.Size = new System.Drawing.Size(93, 24);
this.arg0.TabIndex = 30;
//
// arg1
//
this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg1.Location = new System.Drawing.Point(179, 37);
this.arg1.Name = "arg1";
this.arg1.Size = new System.Drawing.Size(93, 24);
this.arg1.TabIndex = 31;
//
// arg2
//
this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arg2.Location = new System.Drawing.Point(179, 63);
this.arg2.Name = "arg2";
this.arg2.Size = new System.Drawing.Size(93, 24);
this.arg2.TabIndex = 32;
//
// ThingEditForm
//
this.AcceptButton = this.apply;

View file

@ -57,7 +57,8 @@ namespace CodeImp.DoomBuilder.Windows
InitializeComponent();
// Fill flags list
foreach(KeyValuePair<int, string> tf in General.Map.Config.ThingFlags) flags.Add(tf.Value, tf.Key);
foreach(KeyValuePair<string, string> tf in General.Map.Config.ThingFlags)
flags.Add(tf.Value, tf.Key);
// Fill actions list
action.GeneralizedCategories = General.Map.Config.GenActionCategories;
@ -122,7 +123,7 @@ namespace CodeImp.DoomBuilder.Windows
// Flags
foreach(CheckBox c in flags.Checkboxes)
c.Checked = (ft.Flags & (int)c.Tag) != 0;
c.Checked = ft.Flags[c.Tag.ToString()];
// Coordination
angledeg = ft.AngleDeg - 90;
@ -158,7 +159,7 @@ namespace CodeImp.DoomBuilder.Windows
// Flags
foreach(CheckBox c in flags.Checkboxes)
{
if(((t.Flags & (int)c.Tag) != 0) != c.Checked)
if(t.Flags[c.Tag.ToString()] != c.Checked)
{
c.ThreeState = true;
c.CheckState = CheckState.Indeterminate;
@ -327,8 +328,8 @@ namespace CodeImp.DoomBuilder.Windows
// Apply all flags
foreach(CheckBox c in flags.Checkboxes)
{
if(c.CheckState == CheckState.Checked) t.Flags |= (int)c.Tag;
else if(c.CheckState == CheckState.Unchecked) t.Flags &= ~(int)c.Tag;
if(c.CheckState == CheckState.Checked) t.Flags[c.Tag.ToString()] = true;
else if(c.CheckState == CheckState.Unchecked) t.Flags[c.Tag.ToString()] = false;
}
// Action/tags

View file

@ -169,451 +169,451 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD6
ZwAAAk1TRnQBSQFMAgEBFAEAARgBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABYAMAAQEBAAEgBgABYP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AOgABBAIBAQQBFAIB
ARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIB
ARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBJAABMAIBAUoBlAGL
AcUB/wGEAXwBxAH/AYEBcwHEAf8BfwFxAcMB/wF9AW8BwQH/AX0BcQG2Af8BMAIBAUoBFAIBARkcAAEw
AgEBSgEEAVYBlwH/AQQBRwF+Af8BBAFAAXIB/wEEAT4BbwH/AQQBOwFpAf8BBAE0AVwB/wEwAgEBSgEU
AgEBGRwAATACAQJKAWMBZQH/ATsBUwFVAf8BNQFLAU0B/wEzAUkBSwH/ATEBRQFHAf8BLQE7ATwB/wEw
AgEBSgEUAgEBGRwAATACAQFKATEBVQFkAf8BJQFHAVUB/wEgAUEBTgH/AR8BQAFNAf8BHgE8AUgB/wEe
ATMBOwH/ATACAQFKARQCAQEZGAABgAFLAWEB5wGfAZUB0gH/AZ4BlAHTAf8BnAGSAdIB/wGbAZEB0gH/
AZkBjgHSAf8BlQGKAdAB/wGLAYEBywH/AX8BcgHFAf8BZwEiATUB2wEUAgEBGRQAATkBMQFaAecBBAFn
AbUB/wEEAWcBtAH/AQQBZQGyAf8BBAFkAa8B/wEEAWIBqwH/AQQBXgGkAf8BBAFSAY4B/wEEAUABcgH/
AUcBDgEYAdsBFAIBARkUAAFdATgBPAHnAVUBeQF8Af8BVAF5AXwB/wFTAXgBewH/AVEBdgF5Af8BTwF0
AXcB/wFMAW8BcgH/AUMBYAFjAf8BNAFLAU0B/wFRAg4B2wEUAgEBGRQAAVMBMQE6AecBNAFoAX4B/wEz
AWkBfgH/ATIBZwF9Af8BMQFmAXsB/wEvAWQBeQH/AS0BXwF0Af8BKAFTAWQB/wEgAUEBTgH/AU8CDgHb
ARQCAQEZEAABeAE0AUQB3AGrAaEB4gH/Aa4BowHoAf8BsAGkAewB/wGvAaQB6wH/Aa8BpAHqAf8BrwGk
AeoB/wGtAaEB6AH/AaoBnwHiAf8BnQGTAdMB/wGDAXoBxgH/AWYBIgE1AdsBFAIBARkMAAFGASQBQgHc
AQQBfAHbAf8BBAGBAeYB/wEEAYIB7QH/AQQBgQHsAf8BBAGBAeoB/wEEAYEB6gH/AQQBgAHkAf8BBAF7
AdkB/wEEAWYBswH/AQQBRwF/Af8BRwEOARgB2wEUAgEBGQwAAWICKgHcAV8BkwGYAf8BXwGfAaUB/wFh
AaUBqwH/AWEBowGpAf8BYAGiAagB/wFgAaIBqAH/AV4BngGjAf8BXQGTAZgB/wFUAXgBfAH/ATsBVAFW
Af8BUQIOAdsBFAIBARkMAAFXASgBKgHcATEBgQGgAf8BKgGJAbEB/wElAZEBvQH/ASYBjwG6Af8BJwGN
AbgB/wEnAY0BuAH/ASkBiAGvAf8BLwGBAaAB/wEyAWgBfgH/ASQBSAFXAf8BTwIOAdsBFAIBARkIAAEw
AcUB/wGEAX0BxAH/AYEBdAHEAf8BgAFyAcMB/wF+AXABwQH/AX4BcgG2Af8BMAIBAUoBFAIBARkcAAEw
AgEBSgEFAVcBlwH/AQUBSAF/Af8BBQFBAXMB/wEFAT8BcAH/AQUBPAFqAf8BBQE1AV0B/wEwAgEBSgEU
AgEBGRwAATACAQFKAUsBZAFmAf8BPAFUAVYB/wE2AUwBTgH/ATQBSgFMAf8BMgFGAUgB/wEuATwBPQH/
ATACAQFKARQCAQEZHAABMAIBAUoBMgFWAWUB/wEmAUgBVgH/ASEBQgFPAf8BIAFBAU4B/wEfAT0BSQH/
AR8BNAE8Af8BMAIBAUoBFAIBARkYAAF8AT4BUAHnAZ8BlQHSAf8BngGUAdMB/wGcAZIB0gH/AZsBkQHS
Af8BmQGOAdIB/wGVAYoB0AH/AYsBgQHLAf8BgAFzAcUB/wFmARgBKAHbARQCAQEZFAABQgEoAUsB5wEF
AWgBtQH/AQUBaAG0Af8BBQFmAbIB/wEFAWUBrwH/AQUBYwGrAf8BBQFfAaQB/wEFAVMBjgH/AQUBQQFz
Af8BTwEKARMB2wEUAgEBGRQAAV0BLwExAecBVgF6AX0B/wFVAXoBfQH/AVQBeQF8Af8BUgF3AXoB/wFQ
AXUBeAH/AU0BcAFzAf8BRAFhAWQB/wE1AUwBTgH/AVcCCgHbARQCAQEZFAABVQEoATEB5wE1AWkBfwH/
ATQBagF/Af8BMwFoAX4B/wEyAWcBfAH/ATABZQF6Af8BLgFgAXUB/wEpAVQBZQH/ASEBQgFPAf8BVQIK
AdsBFAIBARkQAAFzASgBNAHcAasBoQHiAf8BrgGjAegB/wGwAaQB7AH/Aa8BpAHrAf8BrwGkAeoB/wGv
AaQB6gH/Aa0BoQHoAf8BqgGfAeIB/wGdAZMB0wH/AYMBewHGAf8BZgEYASgB2wEUAgEBGQwAAU0BGgEy
AdwBBQF9AdsB/wEFAYEB5gH/AQUBggHtAf8BBQGBAewB/wEFAYEB6gH/AQUBgQHqAf8BBQGBAeQB/wEF
AXwB2QH/AQUBZwGzAf8BBQFIAYAB/wFPAQoBEwHbARQCAQEZDAABYwIfAdwBYAGTAZgB/wFgAZ8BpQH/
AWIBpQGrAf8BYgGjAakB/wFhAaIBqAH/AWEBogGoAf8BXwGeAaMB/wFeAZMBmAH/AVUBeQF9Af8BPAFV
AVcB/wFXAgoB2wEUAgEBGQwAAVkCHwHcATIBgQGgAf8BKwGJAbEB/wEmAZEBvQH/AScBjwG6Af8BKAGN
AbgB/wEoAY0BuAH/ASoBiAGvAf8BMAGBAaAB/wEzAWkBfwH/ASUBSQFYAf8BVQIKAdsBFAIBARkIAAEw
AgEBSgGsAaIB4wH/Aa8BpAHrAf8BtQGqAfAB/wG1AaoB8AH/AbUBqgHwAf8BtQGqAfAB/wGwAaUB7QH/
AbEBpgHvAf8BrQGiAecB/wGXAY0BzwH/AZkBjgHRAf8BggF5AcYB/wEwAgEBSggAATACAQFKAQQBfQHe
Af8BBAGBAe0B/wEEAYkB+gH/AQQBiQH6Af8BBAGJAfoB/wEEAYkB+gH/AQQBgwHwAf8BBAGFAfQB/wEE
AYAB5AH/AQQBXgGlAf8BBAFiAasB/wEEAUYBfQH/ATACAQFKCAABMAIBAUoBXwGXAZwB/wFhAaQBqgH/
AWgBrAGyAf8BaAGsAbIB/wFoAawBsgH/AWgBrAGyAf8BYgGmAawB/wFjAakBrwH/AV8BnQGiAf8BTgFv
AXIB/wFQAXMBdgH/AToBUgFUAf8BMAIBAUoIAAEwAgEBSgEwAYIBpAH/ASYBjwG8Af8BIQGbAc0B/wEh
AZsBzQH/ASEBmwHNAf8BIQGbAc0B/wEkAZIBwAH/ASEBlgHGAf8BLAGHAa0B/wEvAWABcwH/ATABYwF4
Af8BIwFHAVYB/wEwAgEBSggAAbIBpwHqAf8BtQGrAe0B/wG0AagB8QH/AbUBqgHwAf8BtQGqAfAB/wG1
AaoB7wH/AbMBqAHrAf8BpgGdAdMB/wGCAXoBwAH/AWQBVQGuAf8DBAH/AZkBjwHQAf8BlQGKAdAB/wGB
AXYBvQH/AQIDAQQAAQQBggHvAf8BBAGIAfgB/wEEAYkB+gH/AQQBiQH6Af8BBAGJAfoB/wEEAYgB+gH/
AQQBhAHxAf8BBAFuAcIB/wEEAUMBdwH/AQQBGQErAf8DBAH/AQQBYQGqAf8BBAFeAaQB/wEEAT0BbAH/
AQIDAQQAAWQBpAGqAf8BaQGpAa8B/wFmAa0BtAH/AWgBrAGyAf8BaAGsAbIB/wFoAasBsQH/AWYBpQGq
Af8BXAGAAYEB/wE4AU0BTwH/ARYCHQH/AwQB/wFQAXMBdgH/AUwBbwFyAf8BNAFGAUgB/wECAwEEAAEp
AZABuwH/ASYBlwHGAf8BHQGcAdEB/wEhAZsBzQH/ASEBmwHNAf8BIgGaAcsB/wEpAZEBvAH/AToBbgGB
Af8BJAFDAU8B/wEPARkBHQH/AwQB/wEwAWMBdwH/AS0BXwF0Af8BIgE9AUcB/wECAwEEAAG1AaoB8gH/
Ab8BtQHzAf8BtwGsAfAB/wG1AaoB8AH/AakBoAHZAf8BiQGBAcQB/wFpAVoBswH/AWMBWgGNAf8DBAH/
AwQB/wFfAVABqwH/Aa0BogHlAf8BpAGaAdcB/wGIAX8ByAH/ARQCAQEZBAABBAGKAf0B/wETAZIC/wEE
AYsB/gH/AQQBiQH6Af8BBAF0Ac4B/wEEAUwBgwH/AQQBIQE5Af8BBAEFAQYB/wMEAf8DBAH/AQQBEwEg
Af8BBAF/AeEB/wEEAW8BxAH/AQQBTQGFAf8BFAIBARkEAAFoAa4BtQH/AXYBtQG7Af8BawGtAbMB/wFo
AawBsgH/AV8BhgGKAf8BQAFYAVoB/wEcASYBJwH/AwUB/wMEAf8DBAH/ARECFgH/AV8BmgGgAf8BWgGB
AYMB/wE/AVoBXAH/ARQCAQEZBAABHgGeAdIB/wEfAakB4gH/ASIBnQHPAf8BIQGbAc0B/wE4AXcBjAH/
ASgBTAFaAf8BEgEhAScB/wEEAgUB/wMEAf8DBAH/AQsBEwEWAf8BLQGFAaoB/wE1AXIBhgH/ASYBTgFe
Af8BFAIBARkBCwIBAQ0BvQGzAfMB/wHGAb0B9QH/AboBsAHwAf8BtQGqAfAB/wGVAYoBygH/AX8BcgG8
Af8BXAFNAaQB/wMEAf8DBAH/AwQB/wGEAX0BwQH/AbIBpwHwAf8BqQGeAeIB/wGOAYIBzQH/ARQCAQEZ
AQsCAQENARABkQL/ASABmAL/AQgBjQL/AQQBiQH6Af8BBAFZAZwB/wEEAToBZgH/AQQBDAETAf8DBAH/
AwQB/wMEAf8BBAFGAXwB/wEEAYYB9gH/AQQBegHXAf8BBAFVAZQB/wEUAgEBGQELAgEBDQFzAbQBugH/
AYABugHAAf8BcAGvAbUB/wFoAawBsgH/AUsBaAFqAf8BMQFCAUQB/wELAQ0BDgH/AwQB/wMEAf8DBAH/
ATsBUQFSAf8BZAGrAbEB/wFdAZIBlwH/AUUBZQFnAf8BFAIBARkBCwIBAQ0BHwGnAd4B/wEpAa4B5AH/
ASQBoAHTAf8BIQGbAc0B/wEwAVoBagH/ASABOgFEAf8BCAEMAQ4B/wMEAf8DBAH/AwQB/wEmAUYBUgH/
ASABmAHKAf8BLwGBAZ8B/wEqAVcBaQH/ARQCAQEZAQsCAQENAcEBuAH0Af8BygHCAfUB/wG7AbEB8AH/
AbUBqgHwAf8BtQGqAe8B/wG1AaoB7wH/AXEBZAG3Af8DBAH/AwQB/wFbAU0BnQH/AagBnwHXAf8BrwGk
AesB/wGtAaIB5gH/AZEBhQHOAf8BFAIBARkBCwIBAQ0BFwGUAv8BJwGbAv8BCAGNAv8BBAGJAfoB/wEE
AYgB+gH/AQQBiAH5Af8BBAErAUsB/wMEAf8DBAH/AQQBBwEJAf8BBAFzAcsB/wEEAYEB7AH/AQQBgAHi
Af8BBAFYAZoB/wEUAgEBGQELAgEBDQF4AbcBvQH/AYEBvQHCAf8BcAGvAbQB/wFoAawBsgH/AWgBqwGx
Af8BaAGrAbEB/wEkATEBMwH/AwQB/wMEAf8BBgIHAf8BXgGDAYcB/wFhAaMBqQH/AV4BmwGhAf8BSAFo
AWsB/wEUAgEBGQELAgEBDQEiAasB4wH/AS8BsAHlAf8BJQGfAdEB/wEhAZsBzQH/ASIBmgHLAf8BIwGZ
AckB/wEYASsBMwH/AwQB/wMEAf8BBQIHAf8BOQF1AYkB/wEmAY8BugH/ASsBhgGsAf8BKwFaAW0B/wEU
AgEBGQQAAcABtwH0Af8BzwHIAfYB/wHAAbYB8wH/AbQBqQHsAf8BsgGoAeoB/wF5AWwBugH/AT0BIgHE
Af8BgwF8AcIB/wFYAUkBogH/AXEBZAG3Af8BtQGqAe4B/wG1AaoB8AH/AasBoQHjAf8BkQGGAc0B/wEJ
AgEBCgQAARYBlAL/ATEBoAL/ARQBkwL/AQQBhQH0Af8BBAGDAfAB/wEEATMBWgH/AwQB/wEEAUUBewH/
AQQBBwEKAf8BBAErAUsB/wEEAYgB+AH/AQQBiQH6Af8BBAF9Ad0B/wEEAVgBmQH/AQkCAQEKBAABdwG2
AbwB/wGIAcEBxgH/AXcBtQG7Af8BZwGnAawB/wFlAaQBqQH/ASsBOwE9Af8DBAH/AToBUAFSAf8BBwII
Af8BJAExATMB/wFoAaoBsAH/AWgBrAGyAf8BXgGWAZsB/wFIAWcBagH/AQkCAQEKBAABIQGqAeMB/wE4
AbMB5gH/ASEBqQHhAf8BKAGUAcAB/wEqAZABugH/ARwBMwE9Af8DBAH/ASUBRQFSAf8BBQEHAQgB/wEY
ASsBMwH/ASQBmAHIAf8BIQGbAc0B/wEuAYEBpAH/ASwBWQFrAf8BCQIBAQoEAAG8AbEB8wH/AdMBzAH3
Af8BzAHEAfYB/wG7AbIB6gH/AXkBbAG6Af8DBAH/AZMBiQHJAf8BtwGrAfIB/wFwAWIBtgH/AZUBigHK
Af8BtgGrAfEB/wG1AaoB8AH/AasBoQHiAf8BmAGPAcwB/wgAAQ0BkAL/ATcBowL/ASsBnQL/AQQBigH9
Af8BBAEzAVoB/wMEAf8BBAFXAZcB/wEEAYsC/wEEASkBRwH/AQQBWQGcAf8BBAGLAf4B/wEEAYkB+gH/
AQQBfAHbAf8BBAFeAaQB/wgAAXEBswG5Af8BjQHDAcgB/wGDAb8BxAH/AXEBqAGtAf8BKwE7AT0B/wME
Af8BSQFlAWcB/wFqAa8BtQH/ASMBLwEwAf8BSwFoAWoB/wFqAa8BtQH/AWgBrAGyAf8BXgGUAZgB/wFP
AW0BcAH/CAABHwGlAd0B/wE9AbUB5gH/ATIBsQHlAf8BMQGWAcAB/wEcATMBPQH/AwQB/wEvAVcBZwH/
AR4BnwHVAf8BFwEpATAB/wEwAVoBagH/AR8BngHTAf8BIQGbAc0B/wEwAYEBoAH/ATIBXgFwAf8IAAEw
AgEBSgHTAc0B9wH/AdYB0AH3Af8BqQGjAcwB/wFjAVoBjQH/AZQBigHKAf8BtgGrAfEB/wG1AaoB7gH/
AaQBmwHSAf8BrwGlAeQB/wG1AaoB8AH/AbUBqgHwAf8BrAGiAeQB/wEwAgEBSggAATACAQFKATkBowL/
AT0BpQL/AQQBbQHAAf8BBAEFAQYB/wEEAVkBmwH/AQQBigH9Af8BBAGIAfgB/wEEAWsBvQH/AQQBgAHk
Af8BBAGJAfoB/wEEAYkB+gH/AQQBfgHgAf8BMAIBAUoIAAEwAgEBSgGOAcQByAH/AZEBxgHKAf8BYAF7
AX0B/wMFAf8BSwFnAWoB/wFpAa0BtAH/AWgBqgGwAf8BWgF9AYAB/wFiAZoBnwH/AWgBrAGyAf8BaAGs
AbIB/wFfAZkBngH/ATACAQFKCAABMAIBAUoBPgG1AecB/wFCAbYB5wH/AUIBaQF5Af8BBAIFAf8BLwFZ
AWoB/wEgAZ0B0AH/ASQBmAHIAf8BOQFsAYAB/wExAYUBqAH/ASEBmwHNAf8BIQGbAc0B/wEuAYMBpwH/
ATACAQFKDAABbwEdASYBygHaAdUB+AH/AcIBuwHmAf8BsAGqAdUB/wHBAbcB8gH/AbsBsgHuAf8BuQGv
Ae8B/wG1AaoB8AH/AbUBqgHwAf8BtQGqAfAB/wG1AaoB8AH/AYQBTwFrAegQAAFVARgBKAHKAUUBqQL/
AQkBjgL/AQQBeQHVAf8BFAGTAv8BBwGNAv8BBQGMAv8BBAGJAfoB/wEEAYkB+gH/AQQBiQH6Af8BBAGJ
AfoB/wE0ATsBawHoEAABZAIdAcoBlwHJAc0B/wF8AaUBqQH/AWcBhwGKAf8BeAG0AboB/wFxAa0BsgH/
AW8BrQGyAf8BaAGsAbIB/wFoAawBsgH/AWgBrAGyAf8BaAGsAbIB/wFgAkgB6BAAAVUBHQEkAcoBSAG5
AegB/wFCAZMBtgH/AUMBdwGIAf8BJQGnAd0B/wEqAZ0BzAH/AScBnAHNAf8BIQGbAc0B/wEhAZsBzQH/
ASEBmwHNAf8BIQGbAc0B/wFKAT0BTwHoFAABbwEfASYByQHWAdAB+AH/AdMBzAH3Af8BzgHHAfYB/wHF
AbwB9AH/AbwBsQHyAf8BtwGtAfAB/wGzAagB7gH/AbEBpgHvAf8BeQEyAUUB2xgAAVcBGQEmAckBPgGm
Av8BOAGjAv8BLwGfAv8BHQGXAv8BDAGPAv8BBAGLAf4B/wEEAYYB9gH/AQQBhQH0Af8BRwEoAUcB2xgA
AWMCHwHJAZIBxgHKAf8BjQHEAcgB/wGGAcABxQH/AX0BuQG/Af8BcQGyAbgB/wFsAa0BswH/AWYBqQGv
Af8BYwGpAbAB/wFhATEBMwHbGAABVwEcASQByQFCAbcB5wH/AT0BtQHmAf8BNgGyAeUB/wEnAawB5AH/
ASEBowHZAf8BIwGcAc4B/wEkAZcBxgH/ASABlgHHAf8BUQEoATUB2xwAATACAQFKAcMBugH0Af8BxwG/
AfUB/wHLAcMB9QH/AcUBvAH0Af8BvAGxAfMB/wGxAaYB7wH/ATACAQFKIAABMAIBAUoBHAGWAv8BIgGZ
Av8BKQGcAv8BHQGXAv8BDQGQAv8BBAGFAfQB/wEwAgEBSiAAATACAQFKAXwBuQG+Af8BgQG7AcAB/wGC
Ab4BwwH/AX0BuQG/Af8BcQGzAbkB/wFjAakBrwH/ATACAQFKIAABMAIBAUoBJQGsAeQB/wErAa4B5AH/
ATEBsAHlAf8BJwGsAeQB/wEfAaUB3QH/ASEBlgHGAf8BMAIBAUosAAELAgEBDQELAgEBDTgAAQsCAQEN
AQsCAQENOAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTQAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASQAATACAQFKAToBRgGCAf8BKgE1AXMB/wEl
AS8BagH/ASQBLgFnAf8BIgEsAWEB/wEkASoBUAH/ATACAQFKARQCAQEZHAABMAIBAUoBkgFSAZIB/wGB
AUEBgQH/AXwBOwF8Af8BegE5AXoB/wF0ATgBdAH/AWQBOAFkAf8BMAIBAUoBFAIBARkcAAEwAgEBSgEE
ApAB/wEEAnkB/wEEAm4B/wEEAmsB/wEEAmUB/wEEAlgB/wEwAgEBSgEUAgEBGRwAATACAQFKA6UB/wOR
Af8DhwH/A4UB/wOBAf8DeQH/ATACAQFKARQCAQEZGAABVgEoAVEB5wE7AUwBpgH/AToBSwGnAf8BOQFK
AaUB/wE4AUgBowH/ATYBRgGgAf8BNAFDAZkB/wEuATsBgwH/ASQBLgFqAf8BTwEKARMB2wEUAgEBGRQA
AYgBMQFRAecBsAFZAbAB/wGxAVcBsQH/AbABVQGwAf8BrwFTAa8B/wGsAVEBrAH/AaYBTgGmAf8BkwFG
AZMB/wF8AToBfAH/AV8BEQEZAdsBFAIBARkUAAE5AlMB5wEEAq0B/wEEAq0B/wEEAqsB/wEEAqgB/wEE
AqQB/wEEAp0B/wEEAogB/wEEAm0B/wFHAhYB2wEUAgEBGRQAAZACWgHnA7sB/wO7Af8DuAH/A7YB/wO1
Af8DrwH/A54B/wOHAf8BZgIiAdsBFAIBARkQAAFYARoBOgHcATwBUwHTAf8BPQFWAeEB/wE+AVgB6QH/
AT4BWAHnAf8BPQFXAeYB/wE9AVcB5gH/AToBVAHhAf8BOQFRAdUB/wE6AUoBpgH/ASkBNAF2Af8BTwEK
ARMB2wEUAgEBGQwAAX4BJAE6AdwByQFtAckB/wHTAXEB0wH/AdkBcwHZAf8B2AF0AdgB/wHXAXIB1wH/
AdcBcgHXAf8B0gFuAdIB/wHKAWsBygH/AbABVwGwAf8BggFAAYIB/wFfAQ4BGQHbARQCAQEZDAABRgI/
AdwBBALRAf8BBALcAf8BBALkAf8BBALiAf8BBALhAf8BBALhAf8BBALaAf8BBALQAf8BBAKsAf8BBAJ6
Af8BRwIWAdsBFAIBARkMAAGEAj8B3APTAf8D2gH/A98B/wPeAf8D3AH/A9wB/wPZAf8D0gH/A7oB/wOS
Af8BZgIiAdsBFAIBARkIAAEwAgEBSgE+AVUB1wH/AT4BWAHoAf8BRgFgAfAB/wFGAWAB8AH/AUYBYAHw
Af8BRgFgAfAB/wE+AVkB6wH/AUABWgHvAf8BPQFWAd4B/wE2AUUBmAH/ATcBRwGfAf8BKAEzAXQB/wEw
AgEBSggAATACAQFKAcsBbwHLAf8B2AFzAdgB/wHgAX0B4AH/AeABfQHgAf8B4AF9AeAB/wHgAX0B4AH/
AdsBdQHbAf8B3gF3Ad4B/wHRAXAB0QH/AaUBUAGlAf8BqwFSAasB/wGBAT8BgQH/ATACAQFKCAABMAIB
AUoBBALVAf8BBALjAf8BBALwAf8BBALwAf8BBALwAf8BBALwAf8BBALmAf8BBALpAf8BBALaAf8BBAKe
Af8BBAKkAf8BBAJ4Af8BMAIBAUoIAAEwAgEBSgPVAf8D3wH/A+YB/wPmAf8D5gH/A+YB/wPgAf8D4QH/
A9kB/wOwAf8DtQH/A5AB/wEwAgEBSggAAUMBXAHlAf8BSQFiAesB/wFCAV0B9AH/AUYBYAHwAf8BRgFg
AfAB/wFGAWAB7wH/AUYBXgHlAf8BQwFUAa4B/wEqATQBawH/AREBFAEmAf8DBAH/ATgBRwGdAf8BNAFD
AZkB/wEoATABYAH/AQIDAQQAAdcBeAHXAf8B3AF+AdwB/wHiAXsB4gH/AeABfQHgAf8B4AF9AeAB/wHf
AX0B3wH/AdgBegHYAf8BsgFmAbIB/wF8AUABfAH/AT8BIgE/Af8DBAH/AaoBUgGqAf8BpgFOAaYB/wFz
AT0BcwH/AQIDAQQAAQQC5QH/AQQC7gH/AQQC8AH/AQQC8AH/AQQC8AH/AQQC7wH/AQQC5wH/AQQCuQH/
AQQCcgH/AQQCKQH/AwQB/wEEAqMB/wEEAp0B/wEEAmgB/wECAwEEAAPfAf8D5AH/A+YB/wPmAf8D5gH/
A+UB/wPgAf8DwwH/A4sB/wNHAf8DBAH/A7QB/wOvAf8DggH/AQIDAQQAAUUBYAH0Af8BWgFyAfUB/wFL
AWQB8AH/AUYBYAHwAf8BQAFTAcAB/wEvAToBeQH/ARUBGgE0Af8DBQH/AwQB/wMEAf8BDQEPAR0B/wE8
AVUB3AH/ATwBTwG4Af8BLAE4AX8B/wEUAgEBGQQAAeMBfQHjAf8B5gGLAeYB/wHgAYEB4AH/AeABfQHg
Af8BuwFrAbsB/wGGAUYBhgH/AUsBJwFLAf8BHwEVAR8B/wMEAf8DBAH/ATcBHQE3Af8BzwFvAc8B/wG4
AWIBuAH/AYsBQwGLAf8BFAIBARkEAAEEAvIB/wEIA/8BBAL0Af8BBALwAf8BBALFAf8BBAKBAf8BBAI3
Af8BBAIFAf8DBAH/AwQB/wEEAh8B/wEEAtgB/wEEArwB/wEEAoEB/wEUAgEBGQQAA+cB/wPyAf8D5wH/
A+YB/wPJAf8DmAH/A1kB/wMLAf8DBAH/AwQB/wM7Af8D1gH/A8MB/wOZAf8BFAIBARkBCwIBAQ0BVgFu
AfUB/wFpAX8B9gH/AVIBagHvAf8BRgFgAfAB/wE3AUUBjAH/ASUBLQFbAf8BCQEKARIB/wMEAf8DBAH/
AwQB/wEsATYBbwH/AUABWwHxAf8BOAFQAdQB/wEvAT4BigH/ARQCAQEZAQsCAQENAeYBhwHmAf8B6QGX
AekB/wHhAYMB4QH/AeABfQHgAf8BmgFQAZoB/wFvAToBbwH/AS0BGAEtAf8DBAH/AwQB/wMEAf8BgQFC
AYEB/wHfAXgB3wH/AckBagHJAf8BmQFJAZkB/wEUAgEBGQELAgEBDQEEA/8BFAP/AQQC+QH/AQQC8AH/
AQQClgH/AQQCYgH/AQQCEwH/AwQB/wMEAf8DBAH/AQQCdwH/AQQC7AH/AQQCzwH/AQQCjgH/ARQCAQEZ
AQsCAQENA/AB/wP5Af8D6wH/A+YB/wOqAf8DgAH/AykB/wMEAf8DBAH/AwQB/wOQAf8D4gH/A9AB/wOk
Af8BFAIBARkBCwIBAQ0BXwF2AfYB/wFyAYIB9wH/AVMBawHuAf8BRgFgAfAB/wFGAWAB7wH/AUcBYQHu
Af8BGwEhAUQB/wMEAf8DBAH/AgYBCQH/AUEBVAG7Af8BPgFYAecB/wE7AVQB3gH/ATABPwGQAf8BFAIB
ARkBCwIBAQ0B5wGOAecB/wHrAZ8B6wH/AeABgwHgAf8B4AF9AeAB/wHfAX0B3wH/Ad4BfQHeAf8BWQEu
AVkB/wMEAf8DBAH/ASQBFAEkAf8BuQFqAbkB/wHYAXQB2AH/AdABbwHQAf8BngFKAZ4B/wEUAgEBGQEL
AgEBDQEMA/8BGwP/AQQC+QH/AQQC8AH/AQQC7wH/AQQC7wH/AQQCSAH/AwQB/wMEAf8BBAIJAf8BBALC
Af8BBALiAf8BBALZAf8BBAKTAf8BFAIBARkBCwIBAQ0D9AH/A/0B/wPrAf8D5gH/A+UB/wPlAf8DawH/
AwQB/wMEAf8DFAH/A8gB/wPeAf8D2AH/A6gB/wEUAgEBGQQAAV0BdAH1Af8BfQGMAfcB/wFcAXMB9AH/
AUcBYAHnAf8BRQFeAeQB/wEgASgBUQH/AwQB/wErATUBbgH/AgYBCgH/ARsBIQFEAf8BRwFhAe0B/wFG
AWAB8AH/ATsBUwHYAf8BMgFAAY0B/wEJAgEBCgQAAecBjQHnAf8B7QGpAe0B/wHmAYwB5gH/AdoBfAHa
Af8B1wF5AdcB/wFlATUBZQH/AScBCwEnAf8BgAFBAYAB/wEmARQBJgH/AVkBLgFZAf8B3QF8Ad0B/wHg
AX0B4AH/AcwBbQHMAf8BnAFLAZwB/wEJAgEBCgQAAQoD/wElA/8BCQP/AQQC6gH/AQQC5gH/AQQCVwH/
AwQB/wEEAnYB/wEEAgoB/wEEAkgB/wEEAu4B/wEEAvAB/wEEAtQB/wEEApMB/wEJAgEBCgQAA/MB/wQA
A/MB/wPiAf8D4AH/A3gB/wMEAf8DjgH/AxcB/wNrAf8D5AH/A+YB/wPUAf8DqAH/AQkCAQEKBAABUwFs
AfUB/wGBAZIB+AH/AXYBhgH3Af8BWAFuAeIB/wEgASgBUQH/AwQB/wE2AUMBhwH/AUcBYgH0Af8BGgEg
AUAB/wE3AUUBjAH/AUgBYgHzAf8BRgFgAfAB/wE7AVMB1AH/AToBSAGTAf8IAAHlAYQB5QH/Ae4BrwHu
Af8B6wGjAesB/wHYAYQB2AH/AWUBNQFlAf8DBAH/AZYBTwGWAf8B4wF/AeMB/wFWAS0BVgH/AZoBUAGa
Af8B4gF/AeIB/wHgAX0B4AH/AckBbQHJAf8BoQFUAaEB/wgAAQQC/gH/ASsD/wEfA/8BBALzAf8BBAJX
Af8DBAH/AQQCkQH/AQQC9AH/AQQCRQH/AQQClgH/AQQC9AH/AQQC8AH/AQQC0QH/AQQCngH/CAAD7gH/
CAAD5wH/A3gB/wMEAf8DpgH/A+gB/wNmAf8DqgH/A+cB/wPmAf8D0wH/A68B/wgAATACAQFKAYIBkwH4
Af8BhwGYAfgB/wFQAVwBnwH/AwUB/wE3AUQBiwH/AUcBYQHyAf8BRwFhAe0B/wFDAVMBqgH/AUMBWgHY
Af8BRgFgAfAB/wFGAWAB8AH/ATwBVAHaAf8BMAIBAUoIAAEwAgEBSgHuAbAB7gH/Ae8BtQHvAf8BpwFu
AacB/wEfARUBHwH/AZkBUAGZAf8B4QF+AeEB/wHdAXwB3QH/AbABYwGwAf8BzQF0Ac0B/wHgAX0B4AH/
AeABfQHgAf8BzQFvAc0B/wEwAgEBSggAATACAQFKASwD/wEwA/8BBAK4Af8BBAIFAf8BBAKVAf8BBALy
Af8BBALuAf8BBAK1Af8BBALaAf8BBALwAf8BBALwAf8BBALXAf8BMAIBAUoIAAEwAgEBSggAA8IB/wML
Af8DqQH/A+cB/wPkAf8DwQH/A9kB/wPmAf8D5gH/A9UB/wEwAgEBSgwAAV4BFQEoAcoBjwGfAfkB/wFu
AX4B1QH/AVMBYgG2Af8BXwF2AfEB/wFWAW0B6gH/AVIBaQHsAf8BRgFgAfAB/wFGAWAB8AH/AUYBYAHw
Af8BRgFgAfAB/wFTASoBZwHoEAABcwEYASYBygHxAbwB8QH/AdEBkwHRAf8BtgF6AbYB/wHkAY4B5AH/
Ad4BhQHeAf8B3gGBAd4B/wHgAX0B4AH/AeABfQHgAf8B4AF9AeAB/wHgAX0B4AH/AZcBNQFgAegQAAFS
AigBygE4A/8BBAL5Af8BBALMAf8BCQP/AQQC+AH/AQQC9gH/AQQC8AH/AQQC8AH/AQQC8AH/AQQC8AH/
ATQCZwHoEAABdwIoAcoEAAPrAf8DzwH/A/MB/wPrAf8D6gH/A+YB/wPmAf8D5gH/A+YB/wGZAmcB6BQA
AWABFAEmAckBiAGZAfgB/wGBAZMB+AH/AXoBiQH3Af8BZgF8AfYB/wFTAWwB8wH/AUwBZQHvAf8BRAFe
Ae0B/wE/AVoB8AH/AVcBGQFDAdsYAAF0ARoBJQHJAe8BtgHvAf8B7gGvAe4B/wHsAaYB7AH/AegBlQHo
Af8B5AGEAeQB/wHgAYEB4AH/Ad0BegHdAf8B3gF2Ad4B/wGFASIBQQHbGAABVAImAckBMQP/ASsD/wEj
A/8BEgP/AQQC/AH/AQQC9AH/AQQC7AH/AQQC6QH/AUcCQgHbKAAD9wH/A+0B/wPnAf8D4gH/A+EB/wGG
AkIB2xwAATACAQFKAWQBegH2Af8BbAGBAfYB/wFzAYQB9wH/AWYBfAH2Af8BUwFsAfUB/wFAAVoB7wH/
ATACAQFKIAABMAIBAUoB6AGTAegB/wHqAZoB6gH/AesBoAHrAf8B6AGVAegB/wHlAYQB5QH/Ad4BdwHe
Af8BMAIBAUogAAEwAgEBSgEQA/8BFwP/AR0D/wESA/8BBAL+Af8BBALpAf8BMAIBAUogAAEwAgEBSgP3
Af8D+QH/A/0B/wP3Af8D7gH/A+EB/wEwAgEBSiwAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ04AAEL
AgEBDQELAgEBDTgAAQsCAQENAQsCAQENNAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIB
AQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIB
AQQBFAIBARkBFAIBARkBFAIBARkBAgMBJAABMAIBAUoDZAH/A1kB/wNUAf8DUwH/A1EB/wNMAf8BMAIB
AUoBFAIBARkcAAEwAgEBSgGRAW8BHQH/AX0BXAEVAf8BcgFTARIB/wFvAVEBEgH/AWkBTAERAf8BWAFC
ARMB/wEwAgEBSgEUAgEBGRwAATACAQFKATcBYQE3Af8BKgFSASoB/wElAUwBJQH/ASQBSgEkAf8BIwFF
ASMB/wEiAToBIgH/ATACAQFKARQCAQEZHAABMAIBAUoCngFNAf8ClgEoAf8CkwEaAf8CkgEXAf8CjQEU
Af8CegEXAf8BMAIBAUoBFAIBARkYAAFsAjUB5wNxAf8DcQH/A28B/wNuAf8DbQH/A2kB/wNgAf8DVAH/
AVsCFgHbARQCAQEZFAABkAFCAQ8B5wG0AYIBHQH/AbQBgQEcAf8BsgGBARwB/wGvAYEBGwH/AawBgAEa
Af8BpAF6ARkB/wGOAWsBFwH/AXIBUgESAf8BXAERAQcB2wEUAgEBGRQAAVQBOAEgAecBPAF5ATwB/wE7
AXoBOwH/AToBeQE6Af8BOQF3ATkB/wE3AXUBNwH/ATUBbwE1Af8BLwFhAS8B/wElAUsBJQH/AU8BDgEJ
AdsBFAIBARkUAAGIAVMBNwHnArIBYwH/ArQBYQH/ArIBXgH/ArEBWgH/ArEBVgH/Aq0BTwH/AqIBOQH/
ApMBGAH/AWYBHQEIAdsBFAIBARkQAAFpAikB3AOBAf8DhAH/A4kB/wOIAf8DhgH/A4YB/wODAf8DgQH/
A3AB/wNaAf8BWwIWAdsBFAIBARkMAAGEAS8BDAHcAdkBnQEjAf8B5QGlASQB/wHtAawBJQH/AesBqgEl
Af8B6gGoASQB/wHqAagBJAH/AeMBpAEiAf8B2QGcASEB/wGzAYEBHAH/AX8BXQEUAf8BXAERAQcB2wEU
AgEBGQwAAVgBKgEUAdwBPQGYAT0B/wE4AagBOAH/ATUBswE1Af8BNgGwATYB/wE2Aa4BNgH/ATYBrgE2
Af8BNwGmATcB/wE7AZkBOwH/ATsBeQE7Af8BKQFUASkB/wFPAQ4BCQHbARQCAQEZDAABfgE6ASkB3ALL
AX4B/wLUAYEB/wLaAYMB/wLYAYIB/wLXAYIB/wLXAYIB/wLUAYEB/wLMAXoB/wK0AV8B/wKZAScB/wFm
AR0BCAHbARQCAQEZCAABMAIBAUoDgQH/A4kB/wOQAf8DkAH/A5AB/wOQAf8DigH/A4wB/wODAf8DagH/
A20B/wNYAf8BMAIBAUoIAAEwAgEBSgHcAaABJAH/AewBqgElAf8B9gGzASoB/wH2AbMBKgH/AfYBswEq
Af8B9gGzASoB/wHvAa0BJQH/AfIBsAEmAf8B4gGkASQB/wGkAXsBGwH/AasBfwEbAf8BfQFcARQB/wEw
AgEBSggAATACAQFKATwBnQE8Af8BNQGxATUB/wEzAcABMwH/ATMBwAEzAf8BMwHAATMB/wEzAcABMwH/
ATQBtgE0Af8BMgG7ATIB/wE5AaQBOQH/ATcBbwE3Af8BOAF0ATgB/wEoAVMBKAH/ATACAQFKCAABMAIB
AUoCzQGBAf8C2AGCAf8C3wGNAf8C3wGNAf8C3wGNAf8C3wGNAf8C2wGDAf8C3QGHAf8C0gGBAf8CrQFT
Af8CsAFWAf8CmAEjAf8BMAIBAUoIAAOJAf8DjgH/A5AB/wOQAf8DkAH/A48B/wOLAf8DdgH/A1YB/wMz
Af8DBAH/A2wB/wNpAf8DUgH/AQIDAQQAAesBrAEoAf8B8gGyASsB/wH4AbQBKAH/AfYBswEqAf8B9gGz
ASoB/wH1AbIBKgH/AewBrAEpAf8BvgGKASEB/wF0AVUBFQH/ASoBIAEKAf8DBAH/AaoBfwEbAf8BpAF6
ARkB/wFpAU8BFAH/AQIDAQQAATgBsQE4Af8BNgG7ATYB/wEvAcQBLwH/ATMBwAEzAf8BMwHAATMB/wEz
Ab8BMwH/ATkBsgE5Af8BQgF/AUIB/wEpAU0BKQH/ARABHAEQAf8DBAH/ATgBcwE4Af8BNQFvATUB/wEm
AUUBJgH/AQIDAQQAAtgBhwH/AtwBjwH/AuEBiwH/At8BjQH/At8BjQH/At4BjQH/AtgBigH/ArUBcwH/
Ao8BJQH/Ak0BBAH/AwQB/wKuAVYB/wKtAU8B/wKIAR0B/wECAwEEAAORAf8DnAH/A5EB/wOQAf8DewH/
A10B/wM8Af8DCgH/AwQB/wMEAf8DLAH/A4EB/wN3Af8DXQH/ARQCAQEZBAAB+QG2ASkC/wG/ATcB/wH4
AbcBLAH/AfYBswEqAf8BygGTASMB/wGBAWEBGAH/ATgBKgEMAf8CBQEEAf8DBAH/AwQB/wEgARgBCAH/
AeABowEjAf8BxAGOAR4B/wGEAWMBFgH/ARQCAQEZBAABMAHGATAB/wE2AdEBNgH/ATQBwwE0Af8BMwHA
ATMB/wFCAYcBQgH/AS4BVwEuAf8BFQEmARUB/wMEAf8DBAH/AwQB/wENARYBDQH/AToBoQE6Af8BPgGB
AT4B/wEsAVoBLAH/ARQCAQEZBAAC4gGNAf8C5QGhAf8C3wGSAf8C3wGNAf8CvwF6Af8CmAE0Af8CXgEE
Af8CHQEEAf8DBAH/AwQB/wJEAQQB/wLRAYEB/wK7AXAB/wKeATEB/wEUAgEBGQELAgEBDQOaAf8DpgH/
A5UB/wOQAf8DZwH/A08B/wMgAf8DBAH/AwQB/wMEAf8DWAH/A40B/wOBAf8DYwH/ARQCAQEZAQsCAQEN
Af8BvgEzAv8BxQFGAf8B+gG6ATAB/wH2AbMBKgH/AZkBcwEcAf8BZAFJARMB/wETAQ8BBgH/AwQB/wME
Af8DBAH/AXkBWQEWAf8B9AGxAScB/wHYAZsBIAH/AZUBbwEXAf8BFAIBARkBCwIBAQ0BMwHQATMB/wFA
AdMBQAH/ATYBxgE2Af8BMwHAATMB/wE2AWcBNgH/ASQBQgEkAf8BCQEOAQkB/wMEAf8DBAH/AwQB/wEr
AVABKwH/ATEBvgExAf8BOwGXATsB/wExAWUBMQH/ARQCAQEZAQsCAQENAuUBnAH/AugBrQH/AuEBmAH/
At8BjQH/AqQBTQH/AoUBFwH/AjgBBAH/AwQB/wMEAf8DBAH/ApIBKgH/At4BiAH/AssBegH/AqUBPwH/
ARQCAQEZAQsCAQENA58B/wOqAf8DlQH/A5AB/wOPAf8DjwH/A0UB/wMEAf8DBAH/AxIB/wN6Af8DiAH/
A4IB/wNlAf8BFAIBARkBCwIBAQ0B/wHBATwC/wHIAU4B/wH5AbkBMQH/AfYBswEqAf8B9QGyASoB/wH0
AbIBKgH/AUoBNwEPAf8DBAH/AwQB/wEJAQgBBAH/AccBkQEjAf8B6wGqASUB/wHiAaMBIwH/AZoBcwEY
Af8BFAIBARkBCwIBAQ0BOQHSATkB/wFFAdUBRQH/ATcBxQE3Af8BMwHAATMB/wEzAb8BMwH/ATQBvgE0
Af8BGwExARsB/wMEAf8DBAH/AQYBBwEGAf8BQgGEAUIB/wE2AbABNgH/ATkBowE5Af8BMgFpATIB/wEU
AgEBGQELAgEBDQLmAaQB/wLrAbQB/wLhAZgB/wLfAY0B/wLeAY0B/wLeAY0B/wJwAQoB/wMEAf8DBAH/
Ai0BBAH/Ar0BeQH/AtgBggH/AtEBgQH/AqgBRAH/ARQCAQEZBAADngH/A7EB/wOeAf8DjQH/A4oB/wNM
Af8DBAH/A1gB/wMUAf8DRQH/A44B/wOQAf8DgQH/A2UB/wEJAgEBCgQAAf8BwAE6Av8BzAFZAv8BwQE5
Af8B7wGvASoB/wHrAasBKAH/AVkBQQERAf8DBAH/AXgBWAEWAf8BCgEIAQQB/wFKATcBDwH/AfMBsQEq
Af8B9gGzASoB/wHcAZ8BIgH/AZkBcwEZAf8BCQIBAQoEAAE3AdIBNwH/AU0B1gFNAf8BNwHQATcB/wE4
AbYBOAH/ATkBsAE5Af8BIAE7ASAB/wMEAf8BKgFPASoB/wEGAQgBBgH/ARsBMQEbAf8BNQG9ATUB/wEz
AcABMwH/ATsBnAE7Af8BMwFoATMB/wEJAgEBCgQAAuYBogH/Au0BvQH/AuUBogH/AtsBiwH/AtgBiAH/
An4BEQH/Ak0BBAH/ApIBKAH/AjEBBAH/AnABCgH/At0BjQH/At8BjQH/As0BfgH/AqcBRgH/AQkCAQEK
BAADmQH/A7YB/wOtAf8DkQH/A0wB/wMEAf8DZQH/A5MB/wNDAf8DZwH/A5EB/wOQAf8DgQH/A2kB/wgA
Af8BvAExAv8BzgFgAv8ByQFSAf8B8QG0ATMB/wFZAUEBEQH/AwQB/wGUAXABGwH/AfoBtgErAf8BRgE0
AQ4B/wGZAXMBHAH/AfkBtQErAf8B9gGzASoB/wHZAZ0BIgH/AaEBegEdAf8IAAEyAc8BMgH/AVIB1wFS
Af8BSAHVAUgB/wFAAbYBQAH/ASABOwEgAf8DBAH/ATUBZAE1Af8BMAHHATAB/wEaAS8BGgH/ATYBZwE2
Af8BMQHGATEB/wEzAcABMwH/ATwBmQE8Af8BOQFtATkB/wgAAuQBmQH/Au4BwgH/AuwBuAH/AtoBmAH/
An4BEQH/AwQB/wKhAUkB/wLiAZAB/wJsAQgB/wKkAU0B/wLhAZAB/wLfAY0B/wLMAX4B/wKoAVQB/wgA
ATACAQFKA7gB/wO7Af8DdQH/AwoB/wNmAf8DkQH/A44B/wN1Af8DgwH/A5AB/wOQAf8DgQH/ATACAQFK
CAABMAIBAUoB/wHOAWEC/wHQAWYB/wG1AYkBKAH/AgUBBAH/AZgBcwEcAf8B+AG0ASoB/wHzAbEBKgH/
AboBhwEhAf8B3wGiAScB/wH2AbMBKgH/AfYBswEqAf8B3wGhASMB/wEwAgEBSggAATACAQFKAVMB2AFT
Af8BVgHYAVYB/wFJAXcBSQH/AwQB/wE2AWcBNgH/ATIBxAEyAf8BNQG9ATUB/wFBAXwBQQH/AT0BoAE9
Af8BMwHAATMB/wEzAcABMwH/ATsBnwE7Af8BMAIBAUoIAAEwAgEBSgLvAcQB/wLwAcgB/wKuAXoB/wId
AQQB/wKkAU0B/wLhAY8B/wLdAY0B/wK0AXAB/wLQAYIB/wLfAY0B/wLfAY0B/wLPAYEB/wEwAgEBSgwA
AWoCGgHKA8AB/wOVAf8DgAH/A54B/wOVAf8DlAH/A5AB/wOQAf8DkAH/A5AB/wFyAj0B6BAAAXcBIQEL
AcoB/wHTAW8B/wHtAbgBPQH/AccBmAEuAf8B/gHAAToB/wH3AbkBMgH/AfcBtwEwAf8B9gGzASoB/wH2
AbMBKgH/AfYBswEqAf8B9gGzASoB/wGeAU4BEAHoEAABWgEjAQsBygFcAdoBXAH/AU8BrgFPAf8BTAGE
AUwB/wE7Ac0BOwH/AToBwQE6Af8BOAHBATgB/wEzAcABMwH/ATMBwAEzAf8BMwHAATMB/wEzAcABMwH/
AU8BSgEaAegQAAFzASYBHQHKAvEBzwH/AtYBpQH/ArwBhQH/AuQBpAH/At4BmQH/At8BlgH/At8BjQH/
At8BjQH/At8BjQH/At8BjQH/AZcBYQE9AegUAAFrAhwByQO7Af8DtgH/A64B/wOjAf8DlwH/A5EB/wON
Af8DjAH/AWsCKAHbGAABdAEgAQ4ByQH/AdABZwL/Ac0BYAL/AcsBVgL/AcMBQwH/Af0BuwExAf8B9wG3
AS0B/wHyAbEBKAH/AfIBrwEmAf8BiQEzAQoB2xgAAVsBIQELAckBVwHZAVcB/wFSAdgBUgH/AUsB1gFL
Af8BPgHTAT4B/wE0AcwBNAH/ATUBwgE1Af8BNAG7ATQB/wExAbsBMQH/AVcBMwERAdsYAAF0ASUBHAHJ
AvAByAH/Au8BwwH/Au0BuwH/AugBqgH/AuMBmQH/At8BkgH/At0BigH/At0BhwH/AYUBQQEoAdscAAEw
AgEBSgOiAf8DpgH/A6oB/wOjAf8DmQH/A4wB/wEwAgEBSiAAATACAQFKAf8BwwFBAv8BxgFJAv8ByQFQ
Av8BwgFDAv8BvQExAf8B8gGvASYB/wEwAgEBSiAAATACAQFKATwB0wE8Af8BQgHUAUIB/wFGAdUBRgH/
AT4B0wE+Af8BMgHPATIB/wEyAbsBMgH/ATACAQFKIAABMAIBAUoC5wGoAf8C6gGwAf8C6wG1Af8C6AGq
Af8C5AGZAf8C3QGHAf8BMAIBAUosAAELAgEBDQELAgEBDTgAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIB
AQ04AAELAgEBDQELAgEBDTQAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZ
ARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZ
ARQCAQEZARQCAQEZAQIDASQAATACAQFKAiwBVAH/AiIBRwH/Ah4BQgH/Ah0BQAH/AhwBPQH/AhwBMgH/
ATACAQFKARQCAQEZHAABMAIBAUoBfAEEAVcB/wFlAQQBSAH/AVsBBAFBAf8BWQEEAT8B/wFUAQQBPAH/
AUoBBAE1Af8BMAIBAUoBFAIBARkcAAEwAgEBSgEjAUUBUgH/ARoBOgFHAf8BFgE1AUIB/wEWATQBQAH/
ARUBMQE8Af8BFgEqATEB/wEwAgEBSgEUAgEBGRwAATACAQFKA4UB/wN3Af8DbwH/A20B/wNpAf8DYAH/
ATACAQFKARQCAQEZGAABTgEYATEB5wIvAWkB/wIuAWkB/wIuAWgB/wItAWcB/wIsAWQB/wIqAWAB/wIl
AVMB/wIdAUIB/wFMAQkBDgHbARQCAQEZFAABfAEEATIB5wGPAQQBaAH/AY8BBAFoAf8BjQEEAWcB/wGL
AQQBZQH/AYgBBAFjAf8BggEEAV8B/wF1AQQBUgH/AVsBBAFAAf8BVwEEAQ4B2wEUAgEBGRQAAUoBKAEx
AecBJAFUAWgB/wEiAVUBaQH/ASIBUwFoAf8BIQFSAWYB/wEgAVEBZAH/AR8BTQFgAf8BHAFDAVMB/wEW
ATUBQgH/AUsBCgEOAdsBFAIBARkUAAF/AksB5wOXAf8DlwH/A5UB/wOTAf8DkgH/A40B/wOBAf8DbwH/
AV0CGAHbARQCAQEZEAABUwEPASgB3AIuAYQB/wIpAZEB/wImAZsB/wInAZkB/wInAZgB/wInAZgB/wIp
AZAB/wItAYQB/wIuAWkB/wIhAUkB/wFLAQgBDgHbARQCAQEZDAABeAEEASQB3AGtAQQBfQH/AbYBBAGB
Af8BvAEEAYMB/wG7AQQBgwH/AboBBAGCAf8BugEEAYIB/wG0AQQBgQH/AawBBAF8Af8BjgEEAWcB/wFm
AQQBSAH/AVcBBAEOAdsBFAIBARkMAAFNAR8BKAHcAR4BagGFAf8BFwFzAZQB/wESAXkBnwH/ARMBeAGd
Af8BFAF3AZsB/wEUAXcBmwH/ARcBcgGTAf8BHAFqAYYB/wEiAVQBaQH/ARkBOwFIAf8BSwEKAQ4B2wEU
AgEBGQwAAXgCNQHcA6wB/wOyAf8DtgH/A7UB/wO0Af8DtAH/A7EB/wOrAf8DlgH/A3gB/wFdAhgB2wEU
AgEBGQgAATACAQFKAi4BhwH/AiYBmgH/AiMBqAH/AiMBqAH/AiMBqAH/AiMBqAH/AiUBngH/AiMBowH/
AisBjwH/AisBYAH/AiwBZAH/AiABRwH/ATACAQFKCAABMAIBAUoBsAEEAX8B/wG8AQQBgwH/AcYBBAGK
Af8BxgEEAYoB/wHGAQQBigH/AcYBBAGKAf8BvgEEAYUB/wHBAQQBhwH/AbQBBAGBAf8BgwEEAV8B/wGI
AQQBYwH/AWQBBAFHAf8BMAIBAUoIAAEwAgEBSgEdAW0BiQH/ARIBeAGeAf8BDQGBAa0B/wENAYEBrQH/
AQ0BgQGtAf8BDQGBAa0B/wEQAXsBowH/AQ4BfgGnAf8BGQFxAZEB/wEhAU4BYAH/ASEBUAFkAf8BGAE6
AUcB/wEwAgEBSggAATACAQFKA64B/wO2Af8DvQH/A70B/wO9Af8DvQH/A7cB/wO5Af8DsQH/A44B/wOS
Af8DdgH/ATACAQFKCAACKQGZAf8CJwGiAf8CIAGrAf8CIwGoAf8CIwGoAf8CJAGnAf8CKQGbAf8CNAFu
Af8CIQFCAf8CDgEZAf8DBAH/AiwBYwH/AioBYAH/Ah8BPAH/AQIDAQQAAb0BBAGEAf8BxQEEAYkB/wHG
AQQBigH/AcYBBAGKAf8BxgEEAYoB/wHGAQQBigH/Ab8BBAGFAf8BmQEEAW8B/wFfAQQBQwH/ASMBBAEZ
Af8DBAH/AYcBBAFiAf8BggEEAV8B/wFXAQQBPgH/AQIDAQQAARUBeQGdAf8BEgF/AacB/wEKAYEBsQH/
AQ0BgQGtAf8BDQGBAa0B/wEOAYEBqwH/ARYBegGeAf8BKAFZAW0B/wEaATYBQgH/AQsBFQEZAf8DBAH/
ASEBUAFjAf8BHwFNAWAB/wEYATEBOwH/AQIDAQQAA7YB/wO7Af8DvQH/A70B/wO9Af8DvAH/A7gB/wOe
Af8DcgH/AzcB/wMEAf8DkQH/A40B/wNrAf8BAgMBBAACIAGtAf8CIwG5Af8CJAGqAf8CIwGoAf8CNAF4
Af8CJQFLAf8CEQEhAf8DBAH/AwQB/wMEAf8CCwETAf8CKwGMAf8CMQFzAf8CIwFOAf8BFAIBARkEAAHI
AQQBjAH/AdcBBAGWAf8ByQEEAYwB/wHGAQQBigH/AaMBBAF2Af8BbAEEAU0B/wEuAQQBIQH/AQUBBAEF
Af8DBAH/AwQB/wEaAQQBEwH/AbMBBAGBAf8BmwEEAXAB/wFtAQQBTQH/ARQCAQEZBAABCgGBAbMB/wEK
AYoBvwH/AQ4BgQGvAf8BDQGBAa0B/wEmAWABeAH/AR0BPgFLAf8BDgEbASEB/wMEAf8DBAH/AwQB/wEJ
ARABEwH/ARoBcAGOAf8BJAFcAXMB/wEbAT8BTgH/ARQCAQEZBAADvgH/A8cB/wO+Af8DvQH/A6QB/wN9
Af8DRQH/AwkB/wMEAf8DBAH/Ay0B/wOvAf8DnwH/A34B/wEUAgEBGQELAgEBDQIiAbcB/wIkAcIB/wIm
Aa0B/wIjAagB/wIrAVkB/wIdATkB/wIHAQwB/wMEAf8DBAH/AwQB/wIiAUUB/wIiAaYB/wItAYMB/wIm
AVgB/wEUAgEBGQELAgEBDQHUAQQBlAH/AeEBBAGdAf8BzgEEAY8B/wHGAQQBigH/AYABBAFaAf8BUgEE
AToB/wEQAQQBDAH/AwQB/wMEAf8DBAH/AWMBBAFGAf8BwwEEAYgB/wGrAQQBewH/AXoBBAFWAf8BFAIB
ARkBCwIBAQ0BCgGIAb0B/wEKAZAByAH/AQ8BggGyAf8BDQGBAa0B/wEhAUgBWAH/ARcBLwE5Af8BBgEK
AQwB/wMEAf8DBAH/AwQB/wEbATgBRAH/AQwBgAGrAf8BHQFpAYQB/wEcAUcBWAH/ARQCAQEZAQsCAQEN
A8UB/wPOAf8DwQH/A70B/wOJAf8DZgH/Ax8B/wMEAf8DBAH/AwQB/wN2Af8DugH/A6oB/wOEAf8BFAIB
ARkBCwIBAQ0CIwG8Af8CJQHHAf8CJwGsAf8CIwGoAf8CJAGnAf8CJQGlAf8CFgErAf8DBAH/AwQB/wIF
AQcB/wI0AXYB/wInAZkB/wIqAY0B/wInAVsB/wEUAgEBGQELAgEBDQHaAQQBmAH/AecBBAGhAf8BzgEE
AY8B/wHGAQQBigH/AcYBBAGKAf8BxQEEAYoB/wE8AQQBKwH/AwQB/wMEAf8BCAEEAQcB/wGhAQQBdAH/
AbsBBAGDAf8BswEEAYEB/wF+AQQBWQH/ARQCAQEZAQsCAQENAQoBjAHCAf8BCwGUAc0B/wEQAYEBsQH/
AQ0BgQGtAf8BDgGBAasB/wEPAYABqgH/AREBIwEqAf8DBAH/AwQB/wEFAQYBBwH/ASYBXgF1Af8BEwF4
AZ0B/wEYAXEBkAH/AR0BSQFbAf8BFAIBARkBCwIBAQ0DyQH/A9EB/wPBAf8DvQH/A7wB/wO8Af8DVAH/
AwQB/wMEAf8DEAH/A6MB/wO1Af8DsAH/A4cB/wEUAgEBGQQAAiMBuwH/AiYBzgH/AiQBuQH/AigBngH/
AioBmQH/AhoBMwH/AwQB/wIiAUQB/wIFAQcB/wIWASsB/wIlAaQB/wIjAagB/wItAYcB/wIoAVkB/wEJ
AgEBCgQAAdkBBAGXAf8B7gEEAaYB/wHXAQQBlgH/AcIBBAGHAf8BvgEEAYUB/wFIAQQBMwH/AwQB/wFi
AQQBRQH/AQkBBAEHAf8BPAEEASsB/wHFAQQBiQH/AcYBBAGKAf8BrwEEAX4B/wF+AQQBWQH/AQkCAQEK
BAABCgGLAcEB/wELAZkB1AH/AQsBiQG+Af8BFAF8AaIB/wEWAXkBnQH/ARQBKgEzAf8DBAH/ARoBOAFE
Af8BBQIHAf8BEQEjASoB/wEQAX8BqQH/AQ0BgQGtAf8BHAFsAYkB/wEeAUgBWQH/AQkCAQEKBAADyAH/
A9YB/wPIAf8DugH/A7cB/wNfAf8DBAH/A3UB/wMSAf8DVAH/A7sB/wO9Af8DrQH/A4cB/wEJAgEBCgQA
AiIBtQH/AicB0QH/AiUByQH/AjABngH/AhoBMwH/AwQB/wIqAVYB/wIhAa4B/wIVASgB/wIrAVkB/wIh
Aa0B/wIjAagB/wIuAYQB/wItAV4B/wgAAdIBBAGSAf8B8wEEAaoB/wHqAQQBowH/AckBBAGMAf8BSAEE
ATMB/wMEAf8BfAEEAVgB/wHKAQQBjQH/ATkBBAEpAf8BgAEEAVoB/wHJAQQBjAH/AcYBBAGKAf8BrQEE
AX0B/wGCAQQBXwH/CAABCgGHAbsB/wELAZwB2QH/AQsBlgHQAf8BHAF9AaEB/wEUASoBMwH/AwQB/wEh
AUYBVgH/AQoBggG0Af8BEQEhASgB/wEhAUgBWAH/AQsBgQGzAf8BDQGBAa0B/wEdAWsBhgH/ASMBTAFd
Af8IAAPEAf8D2QH/A9MB/wO+Af8DXwH/AwQB/wOGAf8DvwH/A1AB/wOJAf8DvgH/A70B/wOsAf8DjQH/
CAABMAIBAUoCJwHTAf8CJwHWAf8COwFmAf8DBAH/AisBWAH/AiIBqwH/AiUBpAH/AjQBawH/Ai4BiwH/
AiMBqAH/AiMBqAH/AiwBigH/ATACAQFKCAABMAIBAUoB9AEEAaoB/wH4AQQBrQH/AZgBBAFuAf8BBQEE
AQUB/wF/AQQBWgH/AcgBBAGMAf8BxQEEAYkB/wGWAQQBbQH/AbQBBAGBAf8BxgEEAYoB/wHGAQQBigH/
AbEBBAGAAf8BMAIBAUoIAAEwAgEBSgELAZ0B2QH/AQsBnwHdAf8BMAFVAWMB/wMEAf8BIQFIAVgB/wEM
AYEBsQH/ARABfwGpAf8BKAFXAWoB/wEdAW8BjAH/AQ0BgQGtAf8BDQGBAa0B/wEbAW4BjAH/ATACAQFK
CAABMAIBAUoD2gH/A9wB/wOdAf8DCQH/A4gB/wO+Af8DuwH/A5wB/wOxAf8DvQH/A70B/wOuAf8BMAIB
AUoMAAFVAQYBIQHKAikB2gH/Aj0BlgH/Aj0BdQH/AicBtgH/AioBqAH/AigBqAH/AiMBqAH/AiMBqAH/
AiMBqAH/AiMBqAH/AUoBFQFCAegQAAFzAQMBGgHKAf4BBAGxAf8BzgEEAZAB/wGpAQQBegH/AdcBBAGW
Af8BzQEEAY8B/wHLAQQBjgH/AcYBBAGKAf8BxgEEAYoB/wHGAQQBigH/AcYBBAGKAf8BjAEEAT0B6BAA
AVIBGAEhAcoBCwGjAeIB/wErAXoBlgH/ATABYAF0Af8BDwGIAbsB/wEUAYEBrAH/ARIBgQGtAf8BDQGB
Aa0B/wENAYEBrQH/AQ0BgQGtAf8BDQGBAa0B/wFDATMBQgHoEAABcAIhAcoD3wH/A8EB/wOpAf8DyAH/
A8EB/wPAAf8DvQH/A70B/wO9Af8DvQH/AYQCVQHoFAABVAEGASAByQInAdYB/wInAdIB/wImAcwB/wIk
Ab8B/wIkAbIB/wIlAakB/wIlAaMB/wIiAaMB/wFRAQ4BLQHbGAABdAEDARoByQH5AQQBrQH/AfQBBAGq
Af8B7QEEAaUB/wHfAQQBmwH/AdEBBAGSAf8ByQEEAYwB/wHDAQQBiAH/AcEBBAGHAf8BewEEASgB2xgA
AVIBFwEgAckBCwGfAd0B/wELAZwB2QH/AQsBmAHTAf8BCgGPAcYB/wEMAYUBuAH/AQ8BgQGvAf8BEAF+
AacB/wENAX4BqAH/AUsBIgEtAdsYAAFwAiAByQPcAf8D2QH/A9QB/wPMAf8DwwH/A74B/wO6Af8DuQH/
AXsCNQHbHAABMAIBAUoCIwG/Af8CJAHDAf8CJQHIAf8CJAG/Af8CIgG1Af8CIwGjAf8BMAIBAUogAAEw
AgEBSgHdAQQBmgH/AeMBBAGeAf8B6AEEAaIB/wHfAQQBmwH/AdIBBAGSAf8BwQEEAYcB/wEwAgEBSiAA
ATACAQFKAQoBjgHFAf8BCgGRAcoB/wELAZUBzgH/AQoBjwHGAf8BCgGHAbsB/wEOAX4BpwH/ATACAQFK
IAABMAIBAUoDywH/A84B/wPRAf8DzAH/A8QB/wO5Af8BMAIBAUosAAELAgEBDQELAgEBDTgAAQsCAQEN
AQsCAQENOAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTQAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASQAATACAQFKA0EB/wM6Af8DOAH/AzcB/wM2
Af8DNAH/ATACAQFKARQCAQEZHAABMAIBAUoBcAFKAT0B/wFfAToBLgH/AVcBNAEpAf8BVQEzASgB/wFQ
ATEBJgH/AUIBLQElAf8BMAIBAUoBFAIBARkcAAEwAgEBSgEnAUMBJwH/AR4BOQEeAf8BGgE1ARoB/wEa
ATMBGgH/ARkBMAEZAf8BGAEpARgB/wEwAgEBSgEUAgEBGRwAATACAQFKAVEBUwEsAf8BRQFHASEB/wE/
AUIBHQH/AT4BQAEcAf8BOwE9ARsB/wExATIBGwH/ATACAQFKARQCAQEZGAABWgImAecDSwH/A0sB/wNK
Af8DSQH/A0gB/wNFAf8DPwH/AzgB/wFVAg4B2wEUAgEBGRQAAXcBKAEgAecBhwFUAUIB/wGIAVQBQQH/
AYYBUwFAAf8BhAFRAT8B/wGCAU8BPQH/AYABTAE6Af8BbwFCATQB/wFXATQBKAH/AVcCCgHbARQCAQEZ
FAABTAEoARcB5wEqAVQBKgH/ASkBVAEpAf8BKQFTASkB/wEoAVIBKAH/AScBUQEnAf8BJQFNASUB/wEh
AUMBIQH/ARoBNQEaAf8BSwEKAQgB2wEUAgEBGRQAAWUBMQEXAecBZQFpAS4B/wFmAWkBLQH/AWUBaAEt
Af8BYwFnASwB/wFhAWUBKwH/AV0BYQEpAf8BUQFUASQB/wE/AUIBHQH/AVEBDgEJAdsBFAIBARkQAAFe
AhoB3ANdAf8DYwH/A2gB/wNnAf8DZQH/A2UB/wNiAf8DXAH/A0sB/wM7Af8BVQIOAdsBFAIBARkMAAF2
AR8BGAHcAbABXwFCAf8BwgFfATwB/wHNAWABOgH/AcoBYAE7Af8ByQFfAToB/wHJAV8BOgH/AcEBXgE7
Af8BsQFdAUAB/wGHAVMBQQH/AWEBOgEtAf8BVwIKAdsBFAIBARkMAAFSAR8BDwHcASsBbAErAf8BJwF3
AScB/wElAX4BJQH/ASYBfAEmAf8BJgF7ASYB/wEmAXsBJgH/AScBdQEnAf8BKQFsASkB/wEpAVQBKQH/
AR0BOgEdAf8BSwEKAQgB2wEUAgEBGQwAAWcBKAEPAdwBgQGEAS0B/wGLAZIBKAH/AZQBnAEkAf8BkgGZ
ASUB/wGRAZgBJgH/AZEBmAEmAf8BigGQAScB/wGBAYQBKwH/AWUBaQEtAf8BRwFJASAB/wFRAQ4BCAHb
ARQCAQEZCAABMAIBAUoDXwH/A2gB/wNxAf8DcQH/A3EB/wNxAf8DaQH/A2sB/wNiAf8DRgH/A0gB/wM6
Af8BMAIBAUoIAAEwAgEBSgG1AV8BQQH/AcsBYAE7Af8B1AFnAUEB/wHUAWcBQQH/AdQBZwFBAf8B1AFn
AUEB/wHPAWEBOwH/AdIBYgE8Af8BvgFfAT4B/wGAAU0BPAH/AYEBTwE9Af8BXwE5ASwB/wEwAgEBSggA
ATACAQFKASoBbwEqAf8BJQF9ASUB/wEkAYMBJAH/ASQBgwEkAf8BJAGDASQB/wEkAYMBJAH/ASQBgAEk
Af8BIwGBASMB/wEoAXQBKAH/AScBTQEnAf8BJwFQAScB/wEdAToBHQH/ATACAQFKCAABMAIBAUoBggGI
ASwB/wGTAZsBJQH/AaABqAEiAf8BoAGoASIB/wGgAagBIgH/AaABqAEiAf8BlwGfASMB/wGbAaMBIgH/
AYgBjgEpAf8BXQFgASoB/wFhAWQBKwH/AUUBSAEfAf8BMAIBAUoIAANoAf8DbgH/A3EB/wNxAf8DcQH/
A28B/wNqAf8DUAH/AzkB/wMoAf8DBAH/A0gB/wNFAf8DNwH/AQIDAQQAAckBYwE/Af8BzwFnAUMB/wHX
AWUBPgH/AdQBZwFBAf8B1AFnAUEB/wHTAWcBQQH/AcoBZQFBAf8BjgFbAUkB/wFYATgBLQH/ASABFQES
Af8DBAH/AYEBTwE+Af8BgAFMAToB/wFPATMBKgH/AQIDAQQAAScBfQEnAf8BJgGBASYB/wEhAYUBIQH/
ASQBgwEkAf8BJAGDASQB/wEkAYIBJAH/ASgBfgEoAf8BLgFYAS4B/wEdATUBHQH/AQwBFAEMAf8DBAH/
AScBUAEnAf8BJQFNASUB/wEbATABGwH/AQIDAQQAAZMBmgEnAf8BmwGjASUB/wGjAasBHgH/AaABqAEi
Af8BoAGoASIB/wGfAacBIgH/AZQBmwEoAf8BagFuATMB/wFAAUIBIAH/ARgBGQENAf8DBAH/AWABYwEs
Af8BXQFhASkB/wE6ATwBHgH/AQIDAQQAA3IB/wN/Af8DcgH/A3EB/wNVAf8DPAH/Ay0B/wMJAf8DBAH/
AwQB/wMjAf8DYAH/A1EB/wM9Af8BFAIBARkEAAHYAWcBQAH/AdsBdAFQAf8B1AFqAUQB/wHUAWcBQQH/
AZwBXgFIAf8BZAE/ATMB/wErARwBFwH/AgUBBAH/AwQB/wMEAf8BGQEQAQ4B/wG7AV8BPwH/AZUBWgFE
Af8BaAE/ATEB/wEUAgEBGQQAASIBhwEiAf8BJAGQASQB/wEkAYUBJAH/ASQBgwEkAf8BLgFgAS4B/wEh
AT0BIQH/AQ8BGwEPAf8DBAH/AwQB/wMEAf8BCgEQAQoB/wEpAXIBKQH/ASwBXAEsAf8BHwE/AR8B/wEU
AgEBGQQAAaQBrQEfAf8BsAG6ASEB/wGiAaoBIgH/AaABqAEiAf8BdAF4ATIB/wFJAUsBJAH/ASABIQER
Af8DBAH/AwQB/wMEAf8CEwELAf8BhgGMASoB/wFvAXMBMAH/AUsBTgEjAf8BFAIBARkBCwIBAQ0DfAH/
A4cB/wN2Af8DcQH/A0MB/wM1Af8DGwH/AwQB/wMEAf8DBAH/AzoB/wNtAf8DWwH/A0EB/wEUAgEBGQEL
AgEBDQHaAXEBTAH/Ad0BfQFcAf8B1QFuAUoB/wHUAWcBQQH/AXcBSwE8Af8BSwEwAScB/wEPAQsBCQH/
AwQB/wMEAf8DBAH/AVsBOgEvAf8B1AFjATwB/wGvAV0BQAH/AXUBRQE1Af8BFAIBARkBCwIBAQ0BIwGO
ASMB/wElAZcBJQH/ASYBhwEmAf8BJAGDASQB/wEmAUcBJgH/ARkBLgEZAf8BBwEKAQcB/wMEAf8DBAH/
AwQB/wEeATgBHgH/ASMBgQEjAf8BKQFrASkB/wEiAUYBIgH/ARQCAQEZAQsCAQENAa4BtwEgAf8BuQHC
ASIB/wGlAa0BJAH/AaABqAEiAf8BVgFZASoB/wE3ATkBHAH/AgwBBwH/AwQB/wMEAf8DBAH/AUMBRQEi
Af8BngGmASAB/wGBAYMBKwH/AVUBWAEmAf8BFAIBARkBCwIBAQ0DgQH/A4wB/wN2Af8DcQH/A28B/wNv
Af8DMQH/AwQB/wMEAf8DEAH/A1QB/wNnAf8DYQH/A0IB/wEUAgEBGQELAgEBDQHcAXcBUwH/Ad8BgQFi
Af8B1AFuAUsB/wHUAWcBQQH/AdMBZwFBAf8B0gFnAUIB/wE4ASQBHQH/AwQB/wMEAf8BCAIGAf8BmQFe
AUgB/wHKAWABOwH/Ab0BXgE9Af8BeQFHATcB/wEUAgEBGQELAgEBDQEkAZIBJAH/ASYBmwEmAf8BJgGG
ASYB/wEkAYMBJAH/ASQBggEkAf8BJQGBASUB/wETASIBEwH/AwQB/wMEAf8BBQEGAQUB/wEuAV4BLgH/
ASYBfAEmAf8BKAFzASgB/wEjAUkBIwH/ARQCAQEZAQsCAQENAbMBvAEhAf8BvQHHASMB/wGkAawBJQH/
AaABqAEiAf8BnwGnASIB/wGeAaYBIwH/ASkBKgEVAf8DBAH/AwQB/wIHAQUB/wFyAXYBMwH/AZIBmQEl
Af8BiAGOASkB/wFYAVsBJwH/ARQCAQEZBAADgQH/A5YB/wOBAf8DbQH/A2kB/wM0Af8DBAH/AzoB/wMS
Af8DMQH/A24B/wNxAf8DXgH/A0IB/wEJAgEBCgQAAdwBdgFSAf8B4QGGAWsB/wHaAXUBUQH/AcwBZgFD
Af8ByQFkAUEB/wFDASsBIwH/AwQB/wFbATkBLgH/AQgBBwEGAf8BOAEkAR0B/wHRAWcBQgH/AdQBZwFB
Af8BtQFeAUAB/wF3AUgBOAH/AQkCAQEKBAABJAGSASQB/wEnAaABJwH/ASUBkAElAf8BJwGAAScB/wEo
AXwBKAH/ARcBKQEXAf8DBAH/AR4BNwEeAf8BBQEGAQUB/wETASIBEwH/ASUBgQElAf8BJAGDASQB/wEp
AW8BKQH/ASQBSAEkAf8BCQIBAQoEAAGyAbsBIQH/AcQBzgEkAf8BsAG5ASIB/wGXAZ4BJwH/AZMBmgEo
Af8BMQEzARkB/wMEAf8BQgFEASEB/wIHAQUB/wEpASoBFQH/AZ0BpAEkAf8BoAGoASIB/wGCAYcBKwH/
AVcBWgEnAf8BCQIBAQoEAAN7Af8DmwH/A5AB/wNyAf8DNAH/AwQB/wNCAf8DcwH/AzAB/wNDAf8DcgH/
A3EB/wNdAf8DRQH/CAAB2gFvAUoB/wHiAYoBcQH/Ad8BgQFmAf8ByAFvAVAB/wFDASsBIwH/AwQB/wFz
AUkBOgH/AdgBaQFCAf8BNQEiARwB/wF3AUsBPAH/AdcBaAFCAf8B1AFnAUEB/wGxAV4BQQH/AX0BTgE/
Af8IAAEjAY0BIwH/ASgBpAEoAf8BJwGdAScB/wEtAYABLQH/ARcBKQEXAf8DBAH/ASUBRQElAf8BIgGI
ASIB/wETASEBEwH/ASYBRwEmAf8BIgGHASIB/wEkAYMBJAH/ASoBbAEqAf8BKAFLASgB/wgAAawBtQEg
Af8ByAHSASQB/wHAAcoBIwH/AZgBngEuAf8BMQEzARkB/wMEAf8BVAFWASkB/wGmAa8BHwH/AScBKAEU
Af8BVgFZASoB/wGlAa0BIAH/AaABqAEiAf8BgQGEASwB/wFbAV0BLQH/CAABMAIBAUoDngH/A6IB/wNQ
Af8DCQH/A0MB/wNyAf8DbgH/A08B/wNiAf8DcQH/A3EB/wNfAf8BMAIBAUoIAAEwAgEBSgHiAYsBcgH/
AeMBjwF2Af8BhAFfAVEB/wIFAQQB/wF2AUoBPAH/AdYBaAFCAf8B0QFnAUIB/wGLAVoBSAH/AboBYQFD
Af8B1AFnAUEB/wHUAWcBQQH/AbkBXwFAAf8BMAIBAUoIAAEwAgEBSgEoAaQBKAH/ASkBpwEpAf8BMwFS
ATMB/wMEAf8BJgFHASYB/wEjAYUBIwH/ASUBgQElAf8BLgFWAS4B/wErAXEBKwH/ASQBgwEkAf8BJAGD
ASQB/wEpAXEBKQH/ATACAQFKCAABMAIBAUoByAHTASUB/wHMAdYBJQH/AWMBZQE6Af8DBAH/AVYBWAEq
Af8BowGrASAB/wGdAaQBJAH/AWgBawEzAf8BhQGLAS0B/wGgAagBIgH/AaABqAEiAf8BhAGKASsB/wEw
AgEBSgwAAWQCFwHKA6gB/wN2Af8DWgH/A4EB/wN2Af8DdQH/A3EB/wNxAf8DcQH/A3EB/wFgAiwB6BAA
AXMBFQEOAcoB5AGUAX0B/wG9AXoBYgH/AZgBZgFUAf8B1wF2AVQB/wHQAXABTgH/AdEBbQFKAf8B1AFn
AUEB/wHUAWcBQQH/AdQBZwFBAf8B1AFnAUEB/wGNASsBHQHoEAABVQEYAQYBygEqAasBKgH/ATcBewE3
Af8BNQFeATUB/wEnAY4BJwH/ASkBgwEpAf8BJwGEAScB/wEkAYMBJAH/ASQBgwEkAf8BJAGDASQB/wEk
AYMBJAH/AUoBMwEUAegQAAFtASEBBgHKAdEB3AEmAf8BkAGWATwB/wFxAXUBPAH/Aa0BtgElAf8BoQGo
ASgB/wGhAakBJgH/AaABqAEiAf8BoAGoASIB/wGgAagBIgH/AaABqAEiAf8BcwFCARUB6BQAAWYCFwHJ
A6IB/wObAf8DkgH/A4MB/wN5Af8DcgH/A20B/wNrAf8BYQIdAdsYAAFyARQBEQHJAeMBjwF3Af8B4gGL
AXEB/wHgAYQBaQH/Ad0BewFZAf8B2AFvAUsB/wHUAWoBRQH/AdABZQFAAf8B0wFiATsB/wGAAR0BEwHb
GAABVwEZAQYByQEpAacBKQH/ASgBpAEoAf8BJwGfAScB/wElAZYBJQH/ASQBiwEkAf8BJQGEASUB/wEl
AYEBJQH/ASMBgQEjAf8BUQEjAQoB2xgAAWwBIAEGAckBzAHXASUB/wHIAdIBJQH/AcIBzAEkAf8BtwHA
ASIB/wGqAbMBIgH/AaEBqgEjAf8BmwGjASMB/wGcAaQBIQH/AXABLQEKAdscAAEwAgEBSgOCAf8DhwH/
A4wB/wODAf8DewH/A2sB/wEwAgEBSiAAATACAQFKAd0BegFYAf8B3gF/AV4B/wHfAYEBZAH/Ad0BewFZ
Af8B2gFvAUoB/wHSAWIBPAH/ATACAQFKIAABMAIBAUoBJQGVASUB/wEmAZkBJgH/ASYBnAEmAf8BJQGW
ASUB/wEjAY0BIwH/ASMBgQEjAf8BMAIBAUogAAEwAgEBSgG2Ab8BIQH/AboBxAEiAf8BvgHIASMB/wG3
AcABIgH/AawBtQEgAf8BmwGjASIB/wEwAgEBSiwAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ04AAEL
AgEBDQELAgEBDTgAAQsCAQENAQsCAQENHAABQgFNAT4HAAE+AwABKAMAAUADAAFgAwABAQEAAQEGAAED
FgAD/4EAAfwBHwH8AR8B/AEfAfwBHwHwAQcB8AEHAfABBwHwAQcB4AEDAeABAwHgAQMB4AEDAcABAQHA
AQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAEAAYARAAGA
AQABgAEAAYABAAGAAQABgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQHAAQMBwAEDAcABAwHA
AQMB4AEHAeABBwHgAQcB4AEHAfABDwHwAQ8B8AEPAfABDwH+AX8B/gF/Af4BfwH+AX8B/AEfAfwBHwH8
AR8B/AEfAfABBwHwAQcB8AEHAfABBwHgAQMB4AEDAeABAwHgAQMBwAEBAcABAQHAAQEBwAEBAYABAQGA
AQEBgAEBAYABAQGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgBEAAYABAAGAAQABgAEAAaABAAGA
AQEBgAEBAYABAQGwAQEBgAEBAYABAQGAAQEBsAEBAcABAwHAAQMBwAEDAdABAwHgAQcB4AEHAeABBwH+
AQcB8AEPAfABDwHwAQ8B8AEPAf4BfwH+AX8B/gF/Af4BfwH8AR8B/AEfAfwBHwH8AR8B8AEHAfABBwHw
AQcB8AEHAeABAwHgAQMB4AEDAeABAwHAAQEBwAEBAcABAQHAAQEBgAEBAYABAQGAAQEBgAEBAYABAAGA
AQABgAEAAYABAAGAAQABgAEAAYABAAGAEQABgAEAAYABAAGAAQABgAEAAYABAQGAAQEBgAEBAYABAQGA
AQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBwHwAQ8B8AEPAfABDwHw
AQ8B/gF/Af4BfwH+AX8B/gF/AfwBHwH8AR8B/AEfAfwBHwHwAQcB8AEHAfABBwHwAQcB4AEDAeABAwHg
AQMB4AEDAcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGAAQABgAEAAYABAAGA
AQABgAEAAYARAAGAAQABgAEAAYABAAGAAQABgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQHA
AQMBwAEDAcABAwHAAQMB4AEHAeABBwHgAQcB4AEHAfABDwHwAQ8B8AEPAfABDwH+AX8B/gF/Af4BfwH+
AX8B/AEfAfwBHwH8AR8B/AEfAfABBwHwAQcB8AEHAfABBwHgAQMB4AEDAeABAwHgAQMBwAEBAcABAQHA
AbEBpgHvAf8BrQGiAecB/wGXAY0BzwH/AZkBjgHRAf8BggF6AcYB/wEwAgEBSggAATACAQFKAQUBfgHe
Af8BBQGBAe0B/wEFAYkB+gH/AQUBiQH6Af8BBQGJAfoB/wEFAYkB+gH/AQUBgwHwAf8BBQGFAfQB/wEF
AYEB5AH/AQUBXwGlAf8BBQFjAasB/wEFAUcBfgH/ATACAQFKCAABMAIBAUoBYAGXAZwB/wFiAaQBqgH/
AWkBrAGyAf8BaQGsAbIB/wFpAawBsgH/AWkBrAGyAf8BYwGmAawB/wFkAakBrwH/AWABnQGiAf8BTwFw
AXMB/wFRAXQBdwH/ATsBUwFVAf8BMAIBAUoIAAEwAgEBSgExAYIBpAH/AScBjwG8Af8BIgGbAc0B/wEi
AZsBzQH/ASIBmwHNAf8BIgGbAc0B/wElAZIBwAH/ASIBlgHGAf8BLQGHAa0B/wEwAWEBdAH/ATEBZAF5
Af8BJAFIAVcB/wEwAgEBSggAAbIBpwHqAf8BtQGrAe0B/wG0AagB8QH/AbUBqgHwAf8BtQGqAfAB/wG1
AaoB7wH/AbMBqAHrAf8BpgGdAdMB/wGCAXsBwAH/AWUBVgGuAf8DBQH/AZkBjwHQAf8BlQGKAdAB/wGB
AXcBvQH/AQIDAQQAAQUBggHvAf8BBQGIAfgB/wEFAYkB+gH/AQUBiQH6Af8BBQGJAfoB/wEFAYgB+gH/
AQUBhAHxAf8BBQFvAcIB/wEFAUQBeAH/AQUBGgEsAf8DBQH/AQUBYgGqAf8BBQFfAaQB/wEFAT4BbQH/
AQIDAQQAAWUBpAGqAf8BagGpAa8B/wFnAa0BtAH/AWkBrAGyAf8BaQGsAbIB/wFpAasBsQH/AWcBpQGq
Af8BXQKBAf8BOQFOAVAB/wEXAh4B/wMFAf8BUQF0AXcB/wFNAXABcwH/ATUBRwFJAf8BAgMBBAABKgGQ
AbsB/wEnAZcBxgH/AR4BnAHRAf8BIgGbAc0B/wEiAZsBzQH/ASMBmgHLAf8BKgGRAbwB/wE7AW8BgQH/
ASUBRAFQAf8BEAEaAR4B/wMFAf8BMQFkAXgB/wEuAWABdQH/ASMBPgFIAf8BAgMBBAABtQGqAfIB/wG/
AbUB8wH/AbcBrAHwAf8BtQGqAfAB/wGpAaAB2QH/AYkBgQHEAf8BagFbAbMB/wFkAVsBjQH/AwUB/wMF
Af8BYAFRAasB/wGtAaIB5QH/AaQBmgHXAf8BiAGAAcgB/wEUAgEBGQQAAQUBigH9Af8BFAGSAv8BBQGL
Af4B/wEFAYkB+gH/AQUBdQHOAf8BBQFNAYMB/wEFASIBOgH/AQUBBgEHAf8DBQH/AwUB/wEFARQBIQH/
AQUBgAHhAf8BBQFwAcQB/wEFAU4BhQH/ARQCAQEZBAABaQGuAbUB/wF3AbUBuwH/AWwBrQGzAf8BaQGs
AbIB/wFgAYYBigH/AUEBWQFbAf8BHQEnASgB/wMGAf8DBQH/AwUB/wESAhcB/wFgAZoBoAH/AVsBgQGD
Af8BQAFbAV0B/wEUAgEBGQQAAR8BngHSAf8BIAGpAeIB/wEjAZ0BzwH/ASIBmwHNAf8BOQF4AYwB/wEp
AU0BWwH/ARMBIgEoAf8BBQIGAf8DBQH/AwUB/wEMARQBFwH/AS4BhQGqAf8BNgFzAYYB/wEnAU8BXwH/
ARQCAQEZAQsCAQENAb0BswHzAf8BxgG9AfUB/wG6AbAB8AH/AbUBqgHwAf8BlQGKAcoB/wGAAXMBvAH/
AV0BTgGkAf8DBQH/AwUB/wMFAf8BhAF+AcEB/wGyAacB8AH/AakBngHiAf8BjgGCAc0B/wEUAgEBGQEL
AgEBDQERAZEC/wEhAZgC/wEJAY0C/wEFAYkB+gH/AQUBWgGcAf8BBQE7AWcB/wEFAQ0BFAH/AwUB/wMF
Af8DBQH/AQUBRwF9Af8BBQGGAfYB/wEFAXsB1wH/AQUBVgGUAf8BFAIBARkBCwIBAQ0BdAG0AboB/wGB
AboBwAH/AXEBrwG1Af8BaQGsAbIB/wFMAWkBawH/ATIBQwFFAf8BDAEOAQ8B/wMFAf8DBQH/AwUB/wE8
AVIBUwH/AWUBqwGxAf8BXgGSAZcB/wFGAWYBaAH/ARQCAQEZAQsCAQENASABpwHeAf8BKgGuAeQB/wEl
AaAB0wH/ASIBmwHNAf8BMQFbAWsB/wEhATsBRQH/AQkBDQEPAf8DBQH/AwUB/wMFAf8BJwFHAVMB/wEh
AZgBygH/ATABgQGfAf8BKwFYAWoB/wEUAgEBGQELAgEBDQHBAbgB9AH/AcoBwgH1Af8BuwGxAfAB/wG1
AaoB8AH/AbUBqgHvAf8BtQGqAe8B/wFyAWUBtwH/AwUB/wMFAf8BXAFOAZ0B/wGoAZ8B1wH/Aa8BpAHr
Af8BrQGiAeYB/wGRAYUBzgH/ARQCAQEZAQsCAQENARgBlAL/ASgBmwL/AQkBjQL/AQUBiQH6Af8BBQGI
AfoB/wEFAYgB+QH/AQUBLAFMAf8DBQH/AwUB/wEFAQgBCgH/AQUBdAHLAf8BBQGBAewB/wEFAYEB4gH/
AQUBWQGaAf8BFAIBARkBCwIBAQ0BeQG3Ab0B/wGBAb0BwgH/AXEBrwG0Af8BaQGsAbIB/wFpAasBsQH/
AWkBqwGxAf8BJQEyATQB/wMFAf8DBQH/AQcCCAH/AV8BgwGHAf8BYgGjAakB/wFfAZsBoQH/AUkBaQFs
Af8BFAIBARkBCwIBAQ0BIwGrAeMB/wEwAbAB5QH/ASYBnwHRAf8BIgGbAc0B/wEjAZoBywH/ASQBmQHJ
Af8BGQEsATQB/wMFAf8DBQH/AQYCCAH/AToBdgGJAf8BJwGPAboB/wEsAYYBrAH/ASwBWwFuAf8BFAIB
ARkEAAHAAbcB9AH/Ac8ByAH2Af8BwAG2AfMB/wG0AakB7AH/AbIBqAHqAf8BegFtAboB/wE+ASMBxAH/
AYMBfQHCAf8BWQFKAaIB/wFyAWUBtwH/AbUBqgHuAf8BtQGqAfAB/wGrAaEB4wH/AZEBhgHNAf8BCQIB
AQoEAAEXAZQC/wEyAaAC/wEVAZMC/wEFAYUB9AH/AQUBgwHwAf8BBQE0AVsB/wMFAf8BBQFGAXwB/wEF
AQgBCwH/AQUBLAFMAf8BBQGIAfgB/wEFAYkB+gH/AQUBfgHdAf8BBQFZAZkB/wEJAgEBCgQAAXgBtgG8
Af8BiAHBAcYB/wF4AbUBuwH/AWgBpwGsAf8BZgGkAakB/wEsATwBPgH/AwUB/wE7AVEBUwH/AQgCCQH/
ASUBMgE0Af8BaQGqAbAB/wFpAawBsgH/AV8BlgGbAf8BSQFoAWsB/wEJAgEBCgQAASIBqgHjAf8BOQGz
AeYB/wEiAakB4QH/ASkBlAHAAf8BKwGQAboB/wEdATQBPgH/AwUB/wEmAUYBUwH/AQYBCAEJAf8BGQEs
ATQB/wElAZgByAH/ASIBmwHNAf8BLwGBAaQB/wEtAVoBbAH/AQkCAQEKBAABvAGxAfMB/wHTAcwB9wH/
AcwBxAH2Af8BuwGyAeoB/wF6AW0BugH/AwUB/wGTAYkByQH/AbcBqwHyAf8BcQFjAbYB/wGVAYoBygH/
AbYBqwHxAf8BtQGqAfAB/wGrAaEB4gH/AZgBjwHMAf8IAAEOAZAC/wE4AaMC/wEsAZ0C/wEFAYoB/QH/
AQUBNAFbAf8DBQH/AQUBWAGXAf8BBQGLAv8BBQEqAUgB/wEFAVoBnAH/AQUBiwH+Af8BBQGJAfoB/wEF
AX0B2wH/AQUBXwGkAf8IAAFyAbMBuQH/AY0BwwHIAf8BgwG/AcQB/wFyAagBrQH/ASwBPAE+Af8DBQH/
AUoBZgFoAf8BawGvAbUB/wEkATABMQH/AUwBaQFrAf8BawGvAbUB/wFpAawBsgH/AV8BlAGYAf8BUAFu
AXEB/wgAASABpQHdAf8BPgG1AeYB/wEzAbEB5QH/ATIBlgHAAf8BHQE0AT4B/wMFAf8BMAFYAWgB/wEf
AZ8B1QH/ARgBKgExAf8BMQFbAWsB/wEgAZ4B0wH/ASIBmwHNAf8BMQGBAaAB/wEzAV8BcQH/CAABMAIB
AUoB0wHNAfcB/wHWAdAB9wH/AakBowHMAf8BZAFbAY0B/wGUAYoBygH/AbYBqwHxAf8BtQGqAe4B/wGk
AZsB0gH/Aa8BpQHkAf8BtQGqAfAB/wG1AaoB8AH/AawBogHkAf8BMAIBAUoIAAEwAgEBSgE6AaMC/wE+
AaUC/wEFAW4BwAH/AQUBBgEHAf8BBQFaAZsB/wEFAYoB/QH/AQUBiAH4Af8BBQFsAb0B/wEFAYEB5AH/
AQUBiQH6Af8BBQGJAfoB/wEFAX8B4AH/ATACAQFKCAABMAIBAUoBjgHEAcgB/wGRAcYBygH/AWEBfAF+
Af8DBgH/AUwBaAFrAf8BagGtAbQB/wFpAaoBsAH/AVsBfgGBAf8BYwGaAZ8B/wFpAawBsgH/AWkBrAGy
Af8BYAGZAZ4B/wEwAgEBSggAATACAQFKAT8BtQHnAf8BQwG2AecB/wFDAWoBegH/AQUCBgH/ATABWgFr
Af8BIQGdAdAB/wElAZgByAH/AToBbQGBAf8BMgGFAagB/wEiAZsBzQH/ASIBmwHNAf8BLwGDAacB/wEw
AgEBSgwAAWkBEwEYAcoB2gHVAfgB/wHCAbsB5gH/AbABqgHVAf8BwQG3AfIB/wG7AbIB7gH/AbkBrwHv
Af8BtQGqAfAB/wG1AaoB8AH/AbUBqgHwAf8BtQGqAfAB/wF9AUIBWAHoEAABWQEOARoBygFGAakC/wEK
AY4C/wEFAXoB1QH/ARUBkwL/AQgBjQL/AQYBjAL/AQUBiQH6Af8BBQGJAfoB/wEFAYkB+gH/AQUBiQH6
Af8BOwEyAVgB6BAAAWECEwHKAZcByQHNAf8BfQGlAakB/wFoAYcBigH/AXkBtAG6Af8BcgGtAbIB/wFw
Aa0BsgH/AWkBrAGyAf8BaQGsAbIB/wFpAawBsgH/AWkBrAGyAf8BYAI9AegQAAFZARMBGAHKAUkBuQHo
Af8BQwGTAbYB/wFEAXgBiAH/ASYBpwHdAf8BKwGdAcwB/wEoAZwBzQH/ASIBmwHNAf8BIgGbAc0B/wEi
AZsBzQH/ASIBmwHNAf8BTgEzAUIB6BQAAWkBFAEZAckB1gHQAfgB/wHTAcwB9wH/Ac4BxwH2Af8BxQG8
AfQB/wG8AbEB8gH/AbcBrQHwAf8BswGoAe4B/wGxAaYB7wH/AXQBJgEzAdsYAAFbAREBGQHJAT8BpgL/
ATkBowL/ATABnwL/AR4BlwL/AQ0BjwL/AQUBiwH+Af8BBQGGAfYB/wEFAYUB9AH/AU8BHQE1AdsYAAFg
AhQByQGSAcYBygH/AY0BxAHIAf8BhgHAAcUB/wF+AbkBvwH/AXIBsgG4Af8BbQGtAbMB/wFnAakBrwH/
AWQBqQGwAf8BYQEjAScB2xgAAVsBEQEXAckBQwG3AecB/wE+AbUB5gH/ATcBsgHlAf8BKAGsAeQB/wEi
AaMB2QH/ASQBnAHOAf8BJQGXAcYB/wEhAZYBxwH/AVcBHQEoAdscAAEwAgEBSgHDAboB9AH/AccBvwH1
Af8BywHDAfUB/wHFAbwB9AH/AbwBsQHzAf8BsQGmAe8B/wEwAgEBSiAAATACAQFKAR0BlgL/ASMBmQL/
ASoBnAL/AR4BlwL/AQ4BkAL/AQUBhQH0Af8BMAIBAUogAAEwAgEBSgF9AbkBvgH/AYEBuwHAAf8BggG+
AcMB/wF+AbkBvwH/AXIBswG5Af8BZAGpAa8B/wEwAgEBSiAAATACAQFKASYBrAHkAf8BLAGuAeQB/wEy
AbAB5QH/ASgBrAHkAf8BIAGlAd0B/wEiAZYBxgH/ATACAQFKLAABCwIBAQ0BCwIBAQ04AAELAgEBDQEL
AgEBDTgAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ00AAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQEC
AwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQEC
AwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEkAAEwAgEBSgE7AUcBggH/ASsBNgF0Af8BJgEw
AWsB/wElAS8BaAH/ASMBLQFiAf8BJQErAVEB/wEwAgEBSgEUAgEBGRwAATACAQFKAZIBUwGSAf8BgQFC
AYEB/wF9ATwBfQH/AXsBOgF7Af8BdQE5AXUB/wFlATkBZQH/ATACAQFKARQCAQEZHAABMAIBAUoBBQKQ
Af8BBQJ6Af8BBQJvAf8BBQJsAf8BBQJmAf8BBQJZAf8BMAIBAUoBFAIBARkcAAEwAgEBSgOlAf8DkQH/
A4cB/wOFAf8DgQH/A3oB/wEwAgEBSgEUAgEBGRgAAVkBIAFCAecBPAFNAaYB/wE7AUwBpwH/AToBSwGl
Af8BOQFJAaMB/wE3AUcBoAH/ATUBRAGZAf8BLwE8AYMB/wElAS8BawH/AVUBCQEOAdsBFAIBARkUAAGA
ASgBQgHnAbABWgGwAf8BsQFYAbEB/wGwAVYBsAH/Aa8BVAGvAf8BrAFSAawB/wGmAU8BpgH/AZMBRwGT
Af8BfQE7AX0B/wFhAQ4BEwHbARQCAQEZFAABQgJDAecBBQKtAf8BBQKtAf8BBQKrAf8BBQKoAf8BBQKk
Af8BBQKdAf8BBQKIAf8BBQJuAf8BTwIRAdsBFAIBARkUAAGIAksB5wO7Af8DuwH/A7gB/wO2Af8DtQH/
A68B/wOeAf8DhwH/AWYCGAHbARQCAQEZEAABWwEUASoB3AE9AVQB0wH/AT4BVwHhAf8BPwFZAekB/wE/
AVkB5wH/AT4BWAHmAf8BPgFYAeYB/wE7AVUB4QH/AToBUgHVAf8BOwFLAaYB/wEqATUBdwH/AVUBCQEO
AdsBFAIBARkMAAF4ARoBKgHcAckBbgHJAf8B0wFyAdMB/wHZAXQB2QH/AdgBdQHYAf8B1wFzAdcB/wHX
AXMB1wH/AdIBbwHSAf8BygFsAcoB/wGwAVgBsAH/AYIBQQGCAf8BYQEKARMB2wEUAgEBGQwAAU0CLwHc
AQUC0QH/AQUC3AH/AQUC5AH/AQUC4gH/AQUC4QH/AQUC4QH/AQUC2gH/AQUC0AH/AQUCrAH/AQUCewH/
AU8CEQHbARQCAQEZDAABfAIvAdwD0wH/A9oB/wPfAf8D3gH/A9wB/wPcAf8D2QH/A9IB/wO6Af8DkgH/
AWYCGAHbARQCAQEZCAABMAIBAUoBPwFWAdcB/wE/AVkB6AH/AUcBYQHwAf8BRwFhAfAB/wFHAWEB8AH/
AUcBYQHwAf8BPwFaAesB/wFBAVsB7wH/AT4BVwHeAf8BNwFGAZgB/wE4AUgBnwH/ASkBNAF1Af8BMAIB
AUoIAAEwAgEBSgHLAXABywH/AdgBdAHYAf8B4AF+AeAB/wHgAX4B4AH/AeABfgHgAf8B4AF+AeAB/wHb
AXYB2wH/Ad4BeAHeAf8B0QFxAdEB/wGlAVEBpQH/AasBUwGrAf8BgQFAAYEB/wEwAgEBSggAATACAQFK
AQUC1QH/AQUC4wH/AQUC8AH/AQUC8AH/AQUC8AH/AQUC8AH/AQUC5gH/AQUC6QH/AQUC2gH/AQUCngH/
AQUCpAH/AQUCeQH/ATACAQFKCAABMAIBAUoD1QH/A98B/wPmAf8D5gH/A+YB/wPmAf8D4AH/A+EB/wPZ
Af8DsAH/A7UB/wOQAf8BMAIBAUoIAAFEAV0B5QH/AUoBYwHrAf8BQwFeAfQB/wFHAWEB8AH/AUcBYQHw
Af8BRwFhAe8B/wFHAV8B5QH/AUQBVQGuAf8BKwE1AWwB/wESARUBJwH/AwUB/wE5AUgBnQH/ATUBRAGZ
Af8BKQExAWEB/wECAwEEAAHXAXkB1wH/AdwBfwHcAf8B4gF8AeIB/wHgAX4B4AH/AeABfgHgAf8B3wF+
Ad8B/wHYAXsB2AH/AbIBZwGyAf8BfQFBAX0B/wFAASMBQAH/AwUB/wGqAVMBqgH/AaYBTwGmAf8BdAE+
AXQB/wECAwEEAAEFAuUB/wEFAu4B/wEFAvAB/wEFAvAB/wEFAvAB/wEFAu8B/wEFAucB/wEFArkB/wEF
AnMB/wEFAioB/wMFAf8BBQKjAf8BBQKdAf8BBQJpAf8BAgMBBAAD3wH/A+QB/wPmAf8D5gH/A+YB/wPl
Af8D4AH/A8MB/wOLAf8DSAH/AwUB/wO0Af8DrwH/A4IB/wECAwEEAAFGAWEB9AH/AVsBcwH1Af8BTAFl
AfAB/wFHAWEB8AH/AUEBVAHAAf8BMAE7AXoB/wEWARsBNQH/AwYB/wMFAf8DBQH/AQ4BEAEeAf8BPQFW
AdwB/wE9AVABuAH/AS0BOQGAAf8BFAIBARkEAAHjAX4B4wH/AeYBiwHmAf8B4AGBAeAB/wHgAX4B4AH/
AbsBbAG7Af8BhgFHAYYB/wFMASgBTAH/ASABFgEgAf8DBQH/AwUB/wE4AR4BOAH/Ac8BcAHPAf8BuAFj
AbgB/wGLAUQBiwH/ARQCAQEZBAABBQLyAf8BCQP/AQUC9AH/AQUC8AH/AQUCxQH/AQUCgQH/AQUCOAH/
AQUCBgH/AwUB/wMFAf8BBQIgAf8BBQLYAf8BBQK8Af8BBQKBAf8BFAIBARkEAAPnAf8D8gH/A+cB/wPm
Af8DyQH/A5gB/wNaAf8DDAH/AwUB/wMFAf8DPAH/A9YB/wPDAf8DmQH/ARQCAQEZAQsCAQENAVcBbwH1
Af8BagGAAfYB/wFTAWsB7wH/AUcBYQHwAf8BOAFGAYwB/wEmAS4BXAH/AQoBCwETAf8DBQH/AwUB/wMF
Af8BLQE3AXAB/wFBAVwB8QH/ATkBUQHUAf8BMAE/AYoB/wEUAgEBGQELAgEBDQHmAYcB5gH/AekBlwHp
Af8B4QGDAeEB/wHgAX4B4AH/AZoBUQGaAf8BcAE7AXAB/wEuARkBLgH/AwUB/wMFAf8DBQH/AYEBQwGB
Af8B3wF5Ad8B/wHJAWsByQH/AZkBSgGZAf8BFAIBARkBCwIBAQ0BBQP/ARUD/wEFAvkB/wEFAvAB/wEF
ApYB/wEFAmMB/wEFAhQB/wMFAf8DBQH/AwUB/wEFAngB/wEFAuwB/wEFAs8B/wEFAo4B/wEUAgEBGQEL
AgEBDQPwAf8D+QH/A+sB/wPmAf8DqgH/A4EB/wMqAf8DBQH/AwUB/wMFAf8DkAH/A+IB/wPQAf8DpAH/
ARQCAQEZAQsCAQENAWABdwH2Af8BcwGCAfcB/wFUAWwB7gH/AUcBYQHwAf8BRwFhAe8B/wFIAWIB7gH/
ARwBIgFFAf8DBQH/AwUB/wIHAQoB/wFCAVUBuwH/AT8BWQHnAf8BPAFVAd4B/wExAUABkAH/ARQCAQEZ
AQsCAQENAecBjgHnAf8B6wGfAesB/wHgAYMB4AH/AeABfgHgAf8B3wF+Ad8B/wHeAX4B3gH/AVoBLwFa
Af8DBQH/AwUB/wElARUBJQH/AbkBawG5Af8B2AF1AdgB/wHQAXAB0AH/AZ4BSwGeAf8BFAIBARkBCwIB
Ag0D/wEcA/8BBQL5Af8BBQLwAf8BBQLvAf8BBQLvAf8BBQJJAf8DBQH/AwUB/wEFAgoB/wEFAsIB/wEF
AuIB/wEFAtkB/wEFApMB/wEUAgEBGQELAgEBDQP0Af8D/QH/A+sB/wPmAf8D5QH/A+UB/wNsAf8DBQH/
AwUB/wMVAf8DyAH/A94B/wPYAf8DqAH/ARQCAQEZBAABXgF1AfUB/wF+AYwB9wH/AV0BdAH0Af8BSAFh
AecB/wFGAV8B5AH/ASEBKQFSAf8DBQH/ASwBNgFvAf8CBwELAf8BHAEiAUUB/wFIAWIB7QH/AUcBYQHw
Af8BPAFUAdgB/wEzAUEBjQH/AQkCAQEKBAAB5wGNAecB/wHtAakB7QH/AeYBjAHmAf8B2gF9AdoB/wHX
AXoB1wH/AWYBNgFmAf8BKAEMASgB/wGBAUIBgQH/AScBFQEnAf8BWgEvAVoB/wHdAX0B3QH/AeABfgHg
Af8BzAFuAcwB/wGcAUwBnAH/AQkCAQEKBAABCwP/ASYD/wEKA/8BBQLqAf8BBQLmAf8BBQJYAf8DBQH/
AQUCdwH/AQUCCwH/AQUCSQH/AQUC7gH/AQUC8AH/AQUC1AH/AQUCkwH/AQkCAQEKBAAD8wH/BAAD8wH/
A+IB/wPgAf8DeQH/AwUB/wOOAf8DGAH/A2wB/wPkAf8D5gH/A9QB/wOoAf8BCQIBAQoEAAFUAW0B9QH/
AYEBkgH4Af8BdwGGAfcB/wFZAW8B4gH/ASEBKQFSAf8DBQH/ATcBRAGHAf8BSAFjAfQB/wEbASEBQQH/
ATgBRgGMAf8BSQFjAfMB/wFHAWEB8AH/ATwBVAHUAf8BOwFJAZMB/wgAAeUBhAHlAf8B7gGvAe4B/wHr
AaMB6wH/AdgBhAHYAf8BZgE2AWYB/wMFAf8BlgFQAZYB/wHjAYAB4wH/AVcBLgFXAf8BmgFRAZoB/wHi
AYAB4gH/AeABfgHgAf8ByQFuAckB/wGhAVUBoQH/CAABBQL+Af8BLAP/ASAD/wEFAvMB/wEFAlgB/wMF
Af8BBQKRAf8BBQL0Af8BBQJGAf8BBQKWAf8BBQL0Af8BBQLwAf8BBQLRAf8BBQKeAf8IAAPuAf8IAAPn
Af8DeQH/AwUB/wOmAf8D6AH/A2cB/wOqAf8D5wH/A+YB/wPTAf8DrwH/CAABMAIBAUoBggGTAfgB/wGH
AZgB+AH/AVEBXQGfAf8DBgH/ATgBRQGLAf8BSAFiAfIB/wFIAWIB7QH/AUQBVAGqAf8BRAFbAdgB/wFH
AWEB8AH/AUcBYQHwAf8BPQFVAdoB/wEwAgEBSggAATACAQFKAe4BsAHuAf8B7wG1Ae8B/wGnAW8BpwH/
ASABFgEgAf8BmQFRAZkB/wHhAX8B4QH/Ad0BfQHdAf8BsAFkAbAB/wHNAXUBzQH/AeABfgHgAf8B4AF+
AeAB/wHNAXABzQH/ATACAQFKCAABMAIBAUoBLQP/ATED/wEFArgB/wEFAgYB/wEFApUB/wEFAvIB/wEF
Au4B/wEFArUB/wEFAtoB/wEFAvAB/wEFAvAB/wEFAtcB/wEwAgEBSggAATACAQFKCAADwgH/AwwB/wOp
Af8D5wH/A+QB/wPBAf8D2QH/A+YB/wPmAf8D1QH/ATACAQFKDAABXgEOARoBygGPAZ8B+QH/AW8BfwHV
Af8BVAFjAbYB/wFgAXcB8QH/AVcBbgHqAf8BUwFqAewB/wFHAWEB8AH/AUcBYQHwAf8BRwFhAfAB/wFH
AWEB8AH/AVcBIgFWAegQAAFrAQ4BGAHKAfEBvAHxAf8B0QGTAdEB/wG2AXsBtgH/AeQBjgHkAf8B3gGF
Ad4B/wHeAYEB3gH/AeABfgHgAf8B4AF+AeAB/wHgAX4B4AH/AeABfgHgAf8BjQErAU8B6BAAAVcCGgHK
ATkD/wEFAvkB/wEFAswB/wEKA/8BBQL4Af8BBQL2Af8BBQLwAf8BBQLwAf8BBQLwAf8BBQLwAf8BOwJW
AegQAAFtAhoBygQAA+sB/wPPAf8D8wH/A+sB/wPqAf8D5gH/A+YB/wPmAf8D5gH/AY4CVgHoFAABYAEO
ARkByQGIAZkB+AH/AYEBkwH4Af8BewGJAfcB/wFnAX0B9gH/AVQBbQHzAf8BTQFmAe8B/wFFAV8B7QH/
AUABWwHwAf8BWwETATMB2xgAAWwBEQEXAckB7wG2Ae8B/wHuAa8B7gH/AewBpgHsAf8B6AGVAegB/wHk
AYQB5AH/AeABgQHgAf8B3QF7Ad0B/wHeAXcB3gH/AXsBGAExAdsYAAFXAhkByQEyA/8BLAP/ASQD/wET
A/8BBQL8Af8BBQL0Af8BBQLsAf8BBQLpAf8BTwIyAdsoAAP3Af8D7QH/A+cB/wPiAf8D4QH/AXsCMgHb
HAABMAIBAUoBZQF7AfYB/wFtAYEB9gH/AXQBhAH3Af8BZwF9AfYB/wFUAW0B9QH/AUEBWwHvAf8BMAIB
AUogAAEwAgEBSgHoAZMB6AH/AeoBmgHqAf8B6wGgAesB/wHoAZUB6AH/AeUBhAHlAf8B3gF4Ad4B/wEw
AgEBSiAAATACAQFKARED/wEYA/8BHgP/ARMD/wEFAv4B/wEFAukB/wEwAgEBSiAAATACAQFKA/cB/wP5
Af8D/QH/A/cB/wPuAf8D4QH/ATACAQFKLAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTgAAQsCAQEN
AQsCAQENOAABCwIBAQ0BCwIBAQ00AAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEEAgEBBAEU
AgEBGQEUAgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEEAgEBBAEU
AgEBGQEUAgEBGQEUAgEBGQECAwEkAAEwAgEBSgNlAf8DWgH/A1UB/wNUAf8DUgH/A00B/wEwAgEBSgEU
AgEBGRwAATACAQFKAZEBcAEeAf8BfgFdARYB/wFzAVQBEwH/AXABUgETAf8BagFNARIB/wFZAUMBFAH/
ATACAQFKARQCAQEZHAABMAIBAUoBOAFiATgB/wErAVMBKwH/ASYBTQEmAf8BJQFLASUB/wEkAUYBJAH/
ASMBOwEjAf8BMAIBAUoBFAIBARkcAAEwAgEBSgKeAU4B/wKWASkB/wKTARsB/wKSARgB/wKNARUB/wJ7
ARgB/wEwAgEBSgEUAgEBGRgAAWsCKwHnA3IB/wNyAf8DcAH/A28B/wNuAf8DagH/A2EB/wNVAf8BXAIR
AdsBFAIBARkUAAGIATcBDgHnAbQBggEeAf8BtAGBAR0B/wGyAYEBHQH/Aa8BgQEcAf8BrAGBARsB/wGk
AXsBGgH/AY4BbAEYAf8BcwFTARMB/wFdAQ4BBAHbARQCAQEZFAABVgEvARsB5wE9AXoBPQH/ATwBewE8
Af8BOwF6ATsB/wE6AXgBOgH/ATgBdgE4Af8BNgFwATYB/wEwAWIBMAH/ASYBTAEmAf8BVQEKAQgB2wEU
AgEBGRQAAYABQwEuAecCsgFkAf8CtAFiAf8CsgFfAf8CsQFbAf8CsQFXAf8CrQFQAf8CogE6Af8CkwEZ
Af8BZgEWAQcB2wEUAgEBGRAAAWgCHwHcA4EB/wOEAf8DiQH/A4gB/wOGAf8DhgH/A4MB/wOBAf8DcQH/
A1sB/wFcAhEB2wEUAgEBGQwAAXwBJAEJAdwB2QGdASQB/wHlAaUBJQH/Ae0BrAEmAf8B6wGqASYB/wHq
AagBJQH/AeoBqAElAf8B4wGkASMB/wHZAZwBIgH/AbMBgQEdAf8BgAFeARUB/wFdAQ4BBAHbARQCAQEZ
DAABWwEfAQ8B3AE+AZgBPgH/ATkBqAE5Af8BNgGzATYB/wE3AbABNwH/ATcBrgE3Af8BNwGuATcB/wE4
AaYBOAH/ATwBmQE8Af8BPAF6ATwB/wEqAVUBKgH/AVUBCgEIAdsBFAIBARkMAAF4ASoBHwHcAssBfwH/
AtQBgQH/AtoBgwH/AtgBggH/AtcBggH/AtcBggH/AtQBgQH/AswBewH/ArQBYAH/ApkBKAH/AWYBFgEH
AdsBFAIBARkIAAEwAgEBSgOBAf8DiQH/A5AB/wOQAf8DkAH/A5AB/wOKAf8DjAH/A4MB/wNrAf8DbgH/
A1kB/wEwAgEBSggAATACAQFKAdwBoAElAf8B7AGqASYB/wH2AbMBKwH/AfYBswErAf8B9gGzASsB/wH2
AbMBKwH/Ae8BrQEmAf8B8gGwAScB/wHiAaQBJQH/AaQBfAEcAf8BqwGAARwB/wF+AV0BFQH/ATACAQFK
CAABMAIBAUoBPQGdAT0B/wE2AbEBNgH/ATQBwAE0Af8BNAHAATQB/wE0AcABNAH/ATQBwAE0Af8BNQG2
ATUB/wEzAbsBMwH/AToBpAE6Af8BOAFwATgB/wE5AXUBOQH/ASkBVAEpAf8BMAIBAUoIAAEwAgEBSgLN
AYEB/wLYAYIB/wLfAY0B/wLfAY0B/wLfAY0B/wLfAY0B/wLbAYMB/wLdAYcB/wLSAYEB/wKtAVQB/wKw
AVcB/wKYASQB/wEwAgEBSggAA4kB/wOOAf8DkAH/A5AB/wOQAf8DjwH/A4sB/wN3Af8DVwH/AzQB/wMF
Af8DbQH/A2oB/wNTAf8BAgMBBAAB6wGsASkB/wHyAbIBLAH/AfgBtAEpAf8B9gGzASsB/wH2AbMBKwH/
AfUBsgErAf8B7AGsASoB/wG+AYoBIgH/AXUBVgEWAf8BKwEhAQsB/wMFAf8BqgGAARwB/wGkAXsBGgH/
AWoBUAEVAf8BAgMBBAABOQGxATkB/wE3AbsBNwH/ATABxAEwAf8BNAHAATQB/wE0AcABNAH/ATQBvwE0
Af8BOgGyAToB/wFDAYABQwH/ASoBTgEqAf8BEQEdAREB/wMFAf8BOQF0ATkB/wE2AXABNgH/AScBRgEn
Af8BAgMBBAAC2AGHAf8C3AGPAf8C4QGLAf8C3wGNAf8C3wGNAf8C3gGNAf8C2AGKAf8CtQF0Af8CjwEm
Af8CTgEFAf8DBQH/Aq4BVwH/Aq0BUAH/AogBHgH/AQIDAQQAA5EB/wOcAf8DkQH/A5AB/wN8Af8DXgH/
Az0B/wMLAf8DBQH/AwUB/wMtAf8DgQH/A3gB/wNeAf8BFAIBARkEAAH5AbYBKgL/Ab8BOAH/AfgBtwEt
Af8B9gGzASsB/wHKAZMBJAH/AYEBYgEZAf8BOQErAQ0B/wIGAQUB/wMFAf8DBQH/ASEBGQEJAf8B4AGj
ASQB/wHEAY4BHwH/AYQBZAEXAf8BFAIBARkEAAExAcYBMQH/ATcB0QE3Af8BNQHDATUB/wE0AcABNAH/
AUMBhwFDAf8BLwFYAS8B/wEWAScBFgH/AwUB/wMFAf8DBQH/AQ4BFwEOAf8BOwGhATsB/wE/AYEBPwH/
AS0BWwEtAf8BFAIBARkEAALiAY0B/wLlAaEB/wLfAZIB/wLfAY0B/wK/AXsB/wKYATUB/wJfAQUB/wIe
AQUB/wMFAf8DBQH/AkUBBQH/AtEBgQH/ArsBcQH/Ap4BMgH/ARQCAQEZAQsCAQENA5oB/wOmAf8DlQH/
A5AB/wNoAf8DUAH/AyEB/wMFAf8DBQH/AwUB/wNZAf8DjQH/A4EB/wNkAf8BFAIBARkBCwIBAQ0B/wG+
ATQC/wHFAUcB/wH6AboBMQH/AfYBswErAf8BmQF0AR0B/wFlAUoBFAH/ARQBEAEHAf8DBQH/AwUB/wMF
Af8BegFaARcB/wH0AbEBKAH/AdgBmwEhAf8BlQFwARgB/wEUAgEBGQELAgEBDQE0AdABNAH/AUEB0wFB
Af8BNwHGATcB/wE0AcABNAH/ATcBaAE3Af8BJQFDASUB/wEKAQ8BCgH/AwUB/wMFAf8DBQH/ASwBUQEs
Af8BMgG+ATIB/wE8AZcBPAH/ATIBZgEyAf8BFAIBARkBCwIBAQ0C5QGcAf8C6AGtAf8C4QGYAf8C3wGN
Af8CpAFOAf8ChQEYAf8COQEFAf8DBQH/AwUB/wMFAf8CkgErAf8C3gGIAf8CywF7Af8CpQFAAf8BFAIB
ARkBCwIBAQ0DnwH/A6oB/wOVAf8DkAH/A48B/wOPAf8DRgH/AwUB/wMFAf8DEwH/A3sB/wOIAf8DggH/
A2YB/wEUAgEBGQELAgEBDQH/AcEBPQL/AcgBTwH/AfkBuQEyAf8B9gGzASsB/wH1AbIBKwH/AfQBsgEr
Af8BSwE4ARAB/wMFAf8DBQH/AQoBCQEFAf8BxwGRASQB/wHrAaoBJgH/AeIBowEkAf8BmgF0ARkB/wEU
AgEBGQELAgEBDQE6AdIBOgH/AUYB1QFGAf8BOAHFATgB/wE0AcABNAH/ATQBvwE0Af8BNQG+ATUB/wEc
ATIBHAH/AwUB/wMFAf8BBwEIAQcB/wFDAYQBQwH/ATcBsAE3Af8BOgGjAToB/wEzAWoBMwH/ARQCAQEZ
AQsCAQENAuYBpAH/AusBtAH/AuEBmAH/At8BjQH/At4BjQH/At4BjQH/AnEBCwH/AwUB/wMFAf8CLgEF
Af8CvQF6Af8C2AGCAf8C0QGBAf8CqAFFAf8BFAIBARkEAAOeAf8DsQH/A54B/wONAf8DigH/A00B/wMF
Af8DWQH/AxUB/wNGAf8DjgH/A5AB/wOBAf8DZgH/AQkCAQEKBAAB/wHAATsC/wHMAVoC/wHBAToB/wHv
Aa8BKwH/AesBqwEpAf8BWgFCARIB/wMFAf8BeQFZARcB/wELAQkBBQH/AUsBOAEQAf8B8wGxASsB/wH2
AbMBKwH/AdwBnwEjAf8BmQF0ARoB/wEJAgEBCgQAATgB0gE4Af8BTgHWAU4B/wE4AdABOAH/ATkBtgE5
Af8BOgGwAToB/wEhATwBIQH/AwUB/wErAVABKwH/AQcBCQEHAf8BHAEyARwB/wE2Ab0BNgH/ATQBwAE0
Af8BPAGcATwB/wE0AWkBNAH/AQkCAQEKBAAC5gGiAf8C7QG9Af8C5QGiAf8C2wGLAf8C2AGIAf8CfwES
Af8CTgEFAf8CkgEpAf8CMgEFAf8CcQELAf8C3QGNAf8C3wGNAf8CzQF/Af8CpwFHAf8BCQIBAQoEAAOZ
Af8DtgH/A60B/wORAf8DTQH/AwUB/wNmAf8DkwH/A0QB/wNoAf8DkQH/A5AB/wOBAf8DagH/CAAB/wG8
ATIC/wHOAWEC/wHJAVMB/wHxAbQBNAH/AVoBQgESAf8DBQH/AZQBcQEcAf8B+gG2ASwB/wFHATUBDwH/
AZkBdAEdAf8B+QG1ASwB/wH2AbMBKwH/AdkBnQEjAf8BoQF7AR4B/wgAATMBzwEzAf8BUwHXAVMB/wFJ
AdUBSQH/AUEBtgFBAf8BIQE8ASEB/wMFAf8BNgFlATYB/wExAccBMQH/ARsBMAEbAf8BNwFoATcB/wEy
AcYBMgH/ATQBwAE0Af8BPQGZAT0B/wE6AW4BOgH/CAAC5AGZAf8C7gHCAf8C7AG4Af8C2gGYAf8CfwES
Af8DBQH/AqEBSgH/AuIBkAH/Am0BCQH/AqQBTgH/AuEBkAH/At8BjQH/AswBfwH/AqgBVQH/CAABMAIB
AUoDuAH/A7sB/wN2Af8DCwH/A2cB/wORAf8DjgH/A3YB/wODAf8DkAH/A5AB/wOBAf8BMAIBAUoIAAEw
AgEBSgH/Ac4BYgL/AdABZwH/AbUBiQEpAf8CBgEFAf8BmAF0AR0B/wH4AbQBKwH/AfMBsQErAf8BugGH
ASIB/wHfAaIBKAH/AfYBswErAf8B9gGzASsB/wHfAaEBJAH/ATACAQFKCAABMAIBAUoBVAHYAVQB/wFX
AdgBVwH/AUoBeAFKAf8DBQH/ATcBaAE3Af8BMwHEATMB/wE2Ab0BNgH/AUIBfQFCAf8BPgGgAT4B/wE0
AcABNAH/ATQBwAE0Af8BPAGfATwB/wEwAgEBSggAATACAQFKAu8BxAH/AvAByAH/Aq4BewH/Ah4BBQH/
AqQBTgH/AuEBjwH/At0BjQH/ArQBcQH/AtABggH/At8BjQH/At8BjQH/As8BgQH/ATACAQFKDAABZgIS
AcoDwAH/A5UB/wOBAf8DngH/A5UB/wOUAf8DkAH/A5AB/wOQAf8DkAH/AXACMwHoEAABbQEVAQgBygH/
AdMBcAH/Ae0BuAE+Af8BxwGYAS8B/wH+AcABOwH/AfcBuQEzAf8B9wG3ATEB/wH2AbMBKwH/AfYBswEr
Af8B9gGzASsB/wH2AbMBKwH/AZUBQQEPAegQAAFcARcBCAHKAV0B2gFdAf8BUAGuAVAB/wFNAYQBTQH/
ATwBzQE8Af8BOwHBATsB/wE5AcEBOQH/ATQBwAE0Af8BNAHAATQB/wE0AcABNAH/ATQBwAE0Af8BUwE9
ARcB6BAAAWsBGAETAcoC8QHPAf8C1gGlAf8CvAGFAf8C5AGkAf8C3gGZAf8C3wGWAf8C3wGNAf8C3wGN
Af8C3wGNAf8C3wGNAf8BjQFPATMB6BQAAWYCEQHJA7sB/wO2Af8DrgH/A6MB/wOXAf8DkQH/A40B/wOM
Af8BaQIdAdsYAAFsARQBCAHJAf8B0AFoAv8BzQFhAv8BywFXAv8BwwFEAf8B/QG7ATIB/wH3AbcBLgH/
AfIBsQEpAf8B8gGvAScB/wGAAScBCQHbGAABXQEUAQgByQFYAdkBWAH/AVMB2AFTAf8BTAHWAUwB/wE/
AdMBPwH/ATUBzAE1Af8BNgHCATYB/wE1AbsBNQH/ATIBuwEyAf8BWwEnAQ4B2xgAAWwBFwERAckC8AHI
Af8C7wHDAf8C7QG7Af8C6AGqAf8C4wGZAf8C3wGSAf8C3QGKAf8C3QGHAf8BewExAR0B2xwAATACAQFK
A6IB/wOmAf8DqgH/A6MB/wOZAf8DjAH/ATACAQFKIAABMAIBAUoB/wHDAUIC/wHGAUoC/wHJAVEC/wHC
AUQC/wG9ATIB/wHyAa8BJwH/ATACAQFKIAABMAIBAUoBPQHTAT0B/wFDAdQBQwH/AUcB1QFHAf8BPwHT
AT8B/wEzAc8BMwH/ATMBuwEzAf8BMAIBAUogAAEwAgEBSgLnAagB/wLqAbAB/wLrAbUB/wLoAaoB/wLk
AZkB/wLdAYcB/wEwAgEBSiwAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTgA
AQsCAQENAQsCAQENNAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIB
ARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIB
ARkBFAIBARkBAgMBJAABMAIBAUoCLQFVAf8CIwFIAf8CHwFDAf8CHgFBAf8CHQE+Af8CHQEzAf8BMAIB
AUoBFAIBARkcAAEwAgEBSgF9AQUBWAH/AWYBBQFJAf8BXAEFAUIB/wFaAQUBQAH/AVUBBQE9Af8BSwEF
ATYB/wEwAgEBSgEUAgEBGRwAATACAQFKASQBRgFTAf8BGwE7AUgB/wEXATYBQwH/ARcBNQFBAf8BFgEy
AT0B/wEXASsBMgH/ATACAQFKARQCAQEZHAABMAIBAUoDhQH/A3gB/wNwAf8DbgH/A2oB/wNhAf8BMAIB
AUoBFAIBARkYAAFTARUBKAHnAjABagH/Ai8BagH/Ai8BaQH/Ai4BaAH/Ai0BZQH/AisBYQH/AiYBVAH/
Ah4BQwH/AVEBCAEKAdsBFAIBARkUAAF3AQUBKAHnAY8BBQFpAf8BjwEFAWkB/wGNAQUBaAH/AYsBBQFm
Af8BiAEFAWQB/wGCAQUBYAH/AXYBBQFTAf8BXAEFAUEB/wFbAQQBCgHbARQCAQEZFAABTgEgASgB5wEl
AVUBaQH/ASMBVgFqAf8BIwFUAWkB/wEiAVMBZwH/ASEBUgFlAf8BIAFOAWEB/wEdAUQBVAH/ARcBNgFD
Af8BUQEJAQoB2wEUAgEBGRQAAXkCPgHnA5cB/wOXAf8DlQH/A5MB/wOSAf8DjQH/A4EB/wNwAf8BXwIT
AdsBFAIBARkQAAFYAQwBHwHcAi8BhAH/AioBkQH/AicBmwH/AigBmQH/AigBmAH/AigBmAH/AioBkAH/
Ai4BhAH/Ai8BagH/AiIBSgH/AVEBBwEKAdsBFAIBARkMAAFzAQQBGgHcAa0BBQF+Af8BtgEFAYEB/wG8
AQUBgwH/AbsBBQGDAf8BugEFAYIB/wG6AQUBggH/AbQBBQGBAf8BrAEFAX0B/wGOAQUBaAH/AWcBBQFJ
Af8BWwEEAQoB2wEUAgEBGQwAAVMBGAEfAdwBHwFrAYUB/wEYAXQBlAH/ARMBegGfAf8BFAF5AZ0B/wEV
AXgBmwH/ARUBeAGbAf8BGAFzAZMB/wEdAWsBhgH/ASMBVQFqAf8BGgE8AUkB/wFRAQkBCgHbARQCAQEZ
DAABcwIpAdwDrAH/A7IB/wO2Af8DtQH/A7QB/wO0Af8DsQH/A6sB/wOWAf8DeQH/AV8CEwHbARQCAQEZ
CAABMAIBAUoCLwGHAf8CJwGaAf8CJAGoAf8CJAGoAf8CJAGoAf8CJAGoAf8CJgGeAf8CJAGjAf8CLAGP
Af8CLAFhAf8CLQFlAf8CIQFIAf8BMAIBAUoIAAEwAgEBSgGwAQUBgAH/AbwBBQGDAf8BxgEFAYoB/wHG
AQUBigH/AcYBBQGKAf8BxgEFAYoB/wG+AQUBhQH/AcEBBQGHAf8BtAEFAYEB/wGDAQUBYAH/AYgBBQFk
Af8BZQEFAUgB/wEwAgEBSggAATACAQFKAR4BbgGJAf8BEwF5AZ4B/wEOAYEBrQH/AQ4BgQGtAf8BDgGB
Aa0B/wEOAYEBrQH/AREBfAGjAf8BDwF/AacB/wEaAXIBkQH/ASIBTwFhAf8BIgFRAWUB/wEZATsBSAH/
ATACAQFKCAABMAIBAUoDrgH/A7YB/wO9Af8DvQH/A70B/wO9Af8DtwH/A7kB/wOxAf8DjgH/A5IB/wN3
Af8BMAIBAUoIAAIqAZkB/wIoAaIB/wIhAasB/wIkAagB/wIkAagB/wIlAacB/wIqAZsB/wI1AW8B/wIi
AUMB/wIPARoB/wMFAf8CLQFkAf8CKwFhAf8CIAE9Af8BAgMBBAABvQEFAYQB/wHFAQUBiQH/AcYBBQGK
Af8BxgEFAYoB/wHGAQUBigH/AcYBBQGKAf8BvwEFAYUB/wGZAQUBcAH/AWABBQFEAf8BJAEFARoB/wMF
Af8BhwEFAWMB/wGCAQUBYAH/AVgBBQE/Af8BAgMBBAABFgF6AZ0B/wETAYABpwH/AQsBgQGxAf8BDgGB
Aa0B/wEOAYEBrQH/AQ8BgQGrAf8BFwF7AZ4B/wEpAVoBbgH/ARsBNwFDAf8BDAEWARoB/wMFAf8BIgFR
AWQB/wEgAU4BYQH/ARkBMgE8Af8BAgMBBAADtgH/A7sB/wO9Af8DvQH/A70B/wO8Af8DuAH/A54B/wNz
Af8DOAH/AwUB/wORAf8DjQH/A2wB/wECAwEEAAIhAa0B/wIkAbkB/wIlAaoB/wIkAagB/wI1AXkB/wIm
AUwB/wISASIB/wMFAf8DBQH/AwUB/wIMARQB/wIsAYwB/wIyAXQB/wIkAU8B/wEUAgEBGQQAAcgBBQGM
Af8B1wEFAZYB/wHJAQUBjAH/AcYBBQGKAf8BowEFAXcB/wFtAQUBTgH/AS8BBQEiAf8BBgEFAQYB/wMF
Af8DBQH/ARsBBQEUAf8BswEFAYEB/wGbAQUBcQH/AW4BBQFOAf8BFAIBARkEAAELAYEBswH/AQsBigG/
Af8BDwGBAa8B/wEOAYEBrQH/AScBYQF5Af8BHgE/AUwB/wEPARwBIgH/AwUB/wMFAf8DBQH/AQoBEQEU
Af8BGwFxAY4B/wElAV0BdAH/ARwBQAFPAf8BFAIBARkEAAO+Af8DxwH/A74B/wO9Af8DpAH/A34B/wNG
Af8DCgH/AwUB/wMFAf8DLgH/A68B/wOfAf8DfwH/ARQCAQEZAQsCAQENAiMBtwH/AiUBwgH/AicBrQH/
AiQBqAH/AiwBWgH/Ah4BOgH/AggBDQH/AwUB/wMFAf8DBQH/AiMBRgH/AiMBpgH/Ai4BgwH/AicBWQH/
ARQCAQEZAQsCAQENAdQBBQGUAf8B4QEFAZ0B/wHOAQUBjwH/AcYBBQGKAf8BgQEFAVsB/wFTAQUBOwH/
AREBBQENAf8DBQH/AwUB/wMFAf8BZAEFAUcB/wHDAQUBiAH/AasBBQF8Af8BewEFAVcB/wEUAgEBGQEL
AgEBDQELAYgBvQH/AQsBkAHIAf8BEAGCAbIB/wEOAYEBrQH/ASIBSQFZAf8BGAEwAToB/wEHAQsBDQH/
AwUB/wMFAf8DBQH/ARwBOQFFAf8BDQGBAasB/wEeAWoBhAH/AR0BSAFZAf8BFAIBARkBCwIBAQ0DxQH/
A84B/wPBAf8DvQH/A4kB/wNnAf8DIAH/AwUB/wMFAf8DBQH/A3cB/wO6Af8DqgH/A4QB/wEUAgEBGQEL
AgEBDQIkAbwB/wImAccB/wIoAawB/wIkAagB/wIlAacB/wImAaUB/wIXASwB/wMFAf8DBQH/AgYBCAH/
AjUBdwH/AigBmQH/AisBjQH/AigBXAH/ARQCAQEZAQsCAQENAdoBBQGYAf8B5wEFAaEB/wHOAQUBjwH/
AcYBBQGKAf8BxgEFAYoB/wHFAQUBigH/AT0BBQEsAf8DBQH/AwUB/wEJAQUBCAH/AaEBBQF1Af8BuwEF
AYMB/wGzAQUBgQH/AX8BBQFaAf8BFAIBARkBCwIBAQ0BCwGMAcIB/wEMAZQBzQH/AREBgQGxAf8BDgGB
Aa0B/wEPAYEBqwH/ARABgQGqAf8BEgEkASsB/wMFAf8DBQH/AQYBBwEIAf8BJwFfAXYB/wEUAXkBnQH/
ARkBcgGQAf8BHgFKAVwB/wEUAgEBGQELAgEBDQPJAf8D0QH/A8EB/wO9Af8DvAH/A7wB/wNVAf8DBQH/
AwUB/wMRAf8DowH/A7UB/wOwAf8DhwH/ARQCAQEZBAACJAG7Af8CJwHOAf8CJQG5Af8CKQGeAf8CKwGZ
Af8CGwE0Af8DBQH/AiMBRQH/AgYBCAH/AhcBLAH/AiYBpAH/AiQBqAH/Ai4BhwH/AikBWgH/AQkCAQEK
BAAB2QEFAZcB/wHuAQUBpgH/AdcBBQGWAf8BwgEFAYcB/wG+AQUBhQH/AUkBBQE0Af8DBQH/AWMBBQFG
Af8BCgEFAQgB/wE9AQUBLAH/AcUBBQGJAf8BxgEFAYoB/wGvAQUBfwH/AX8BBQFaAf8BCQIBAQoEAAEL
AYsBwQH/AQwBmQHUAf8BDAGJAb4B/wEVAX0BogH/ARcBegGdAf8BFQErATQB/wMFAf8BGwE5AUUB/wEG
AggB/wESASQBKwH/AREBgAGpAf8BDgGBAa0B/wEdAW0BiQH/AR8BSQFaAf8BCQIBAQoEAAPIAf8D1gH/
A8gB/wO6Af8DtwH/A2AB/wMFAf8DdgH/AxMB/wNVAf8DuwH/A70B/wOtAf8DhwH/AQkCAQEKBAACIwG1
Af8CKAHRAf8CJgHJAf8CMQGeAf8CGwE0Af8DBQH/AisBVwH/AiIBrgH/AhYBKQH/AiwBWgH/AiIBrQH/
AiQBqAH/Ai8BhAH/Ai4BXwH/CAAB0gEFAZIB/wHzAQUBqgH/AeoBBQGjAf8ByQEFAYwB/wFJAQUBNAH/
AwUB/wF9AQUBWQH/AcoBBQGNAf8BOgEFASoB/wGBAQUBWwH/AckBBQGMAf8BxgEFAYoB/wGtAQUBfgH/
AYIBBQFgAf8IAAELAYcBuwH/AQwBnAHZAf8BDAGWAdAB/wEdAX4BoQH/ARUBKwE0Af8DBQH/ASIBRwFX
Af8BCwGCAbQB/wESASIBKQH/ASIBSQFZAf8BDAGBAbMB/wEOAYEBrQH/AR4BbAGGAf8BJAFNAV4B/wgA
A8QB/wPZAf8D0wH/A74B/wNgAf8DBQH/A4YB/wO/Af8DUQH/A4kB/wO+Af8DvQH/A6wB/wONAf8IAAEw
AgEBSgIoAdMB/wIoAdYB/wI8AWcB/wMFAf8CLAFZAf8CIwGrAf8CJgGkAf8CNQFsAf8CLwGLAf8CJAGo
Af8CJAGoAf8CLQGKAf8BMAIBAUoIAAEwAgEBSgH0AQUBqgH/AfgBBQGtAf8BmAEFAW8B/wEGAQUBBgH/
AYABBQFbAf8ByAEFAYwB/wHFAQUBiQH/AZYBBQFuAf8BtAEFAYEB/wHGAQUBigH/AcYBBQGKAf8BsQEF
AYEB/wEwAgEBSggAATACAQFKAQwBnQHZAf8BDAGfAd0B/wExAVYBZAH/AwUB/wEiAUkBWQH/AQ0BgQGx
Af8BEQGAAakB/wEpAVgBawH/AR4BcAGMAf8BDgGBAa0B/wEOAYEBrQH/ARwBbwGMAf8BMAIBAUoIAAEw
AgEBSgPaAf8D3AH/A50B/wMKAf8DiAH/A74B/wO7Af8DnAH/A7EB/wO9Af8DvQH/A64B/wEwAgEBSgwA
AVkBBQEVAcoCKgHaAf8CPgGWAf8CPgF2Af8CKAG2Af8CKwGoAf8CKQGoAf8CJAGoAf8CJAGoAf8CJAGo
Af8CJAGoAf8BTgEQATYB6BAAAWsBAwESAcoB/gEFAbEB/wHOAQUBkAH/AakBBQF7Af8B1wEFAZYB/wHN
AQUBjwH/AcsBBQGOAf8BxgEFAYoB/wHGAQUBigH/AcYBBQGKAf8BxgEFAYoB/wGEAQUBMwHoEAABVwEO
ARUBygEMAaMB4gH/ASwBewGWAf8BMQFhAXUB/wEQAYgBuwH/ARUBgQGsAf8BEwGBAa0B/wEOAYEBrQH/
AQ4BgQGtAf8BDgGBAa0B/wEOAYEBrQH/AUoBKgE2AegQAAFqAhUBygPfAf8DwQH/A6kB/wPIAf8DwQH/
A8AB/wO9Af8DvQH/A70B/wO9Af8BfQJGAegUAAFXAQUBFAHJAigB1gH/AigB0gH/AicBzAH/AiUBvwH/
AiUBsgH/AiYBqQH/AiYBowH/AiMBowH/AVcBCgEiAdsYAAFsAQMBEQHJAfkBBQGtAf8B9AEFAaoB/wHt
AQUBpQH/Ad8BBQGbAf8B0QEFAZIB/wHJAQUBjAH/AcMBBQGIAf8BwQEFAYcB/wF1AQQBHQHbGAABVwEO
ARQByQEMAZ8B3QH/AQwBnAHZAf8BDAGYAdMB/wELAY8BxgH/AQ0BhQG4Af8BEAGBAa8B/wERAX8BpwH/
AQ4BfwGoAf8BUQEYASIB2xgAAWkCFAHJA9wB/wPZAf8D1AH/A8wB/wPDAf8DvgH/A7oB/wO5Af8BdQIo
AdscAAEwAgEBSgIkAb8B/wIlAcMB/wImAcgB/wIlAb8B/wIjAbUB/wIkAaMB/wEwAgEBSiAAATACAQFK
Ad0BBQGaAf8B4wEFAZ4B/wHoAQUBogH/Ad8BBQGbAf8B0gEFAZIB/wHBAQUBhwH/ATACAQFKIAABMAIB
AUoBCwGOAcUB/wELAZEBygH/AQwBlQHOAf8BCwGPAcYB/wELAYcBuwH/AQ8BfwGnAf8BMAIBAUogAAEw
AgEBSgPLAf8DzgH/A9EB/wPMAf8DxAH/A7kB/wEwAgEBSiwAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIB
AQ04AAELAgEBDQELAgEBDTgAAQsCAQENAQsCAQENNAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMB
LAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMB
LAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBJAABMAIBAUoDQgH/AzsB/wM5Af8DOAH/AzcB/wM1
Af8BMAIBAUoBFAIBARkcAAEwAgEBSgFxAUsBPgH/AWABOwEvAf8BWAE1ASoB/wFWATQBKQH/AVEBMgEn
Af8BQwEuASYB/wEwAgEBSgEUAgEBGRwAATACAQFKASgBRAEoAf8BHwE6AR8B/wEbATYBGwH/ARsBNAEb
Af8BGgExARoB/wEZASoBGQH/ATACAQFKARQCAQEZHAABMAIBAUoBUgFUAS0B/wFGAUgBIgH/AUABQwEe
Af8BPwFBAR0B/wE8AT4BHAH/ATIBMwEcAf8BMAIBAUoBFAIBARkYAAFdAiAB5wNMAf8DTAH/A0sB/wNK
Af8DSQH/A0YB/wNAAf8DOQH/AVcCCgHbARQCAQEZFAABdQEgARsB5wGHAVUBQwH/AYgBVQFCAf8BhgFU
AUEB/wGEAVIBQAH/AYIBUAE+Af8BgQFNATsB/wFwAUMBNQH/AVgBNQEpAf8BWwIJAdsBFAIBARkUAAFR
ASABFAHnASsBVQErAf8BKgFVASoB/wEqAVQBKgH/ASkBUwEpAf8BKAFSASgB/wEmAU4BJgH/ASIBRAEi
Af8BGwE2ARsB/wFRAQkBBwHbARQCAQEZFAABZQEoARQB5wFmAWoBLwH/AWcBagEuAf8BZgFpAS4B/wFk
AWgBLQH/AWIBZgEsAf8BXgFiASoB/wFSAVUBJQH/AUABQwEeAf8BVwEKAQgB2wEUAgEBGRAAAV4CFAHc
A14B/wNkAf8DaQH/A2gB/wNmAf8DZgH/A2MB/wNdAf8DTAH/AzwB/wFXAgoB2wEUAgEBGQwAAXIBGAET
AdwBsAFgAUMB/wHCAWABPQH/Ac0BYQE7Af8BygFhATwB/wHJAWABOwH/AckBYAE7Af8BwQFfATwB/wGx
AV4BQQH/AYcBVAFCAf8BYgE7AS4B/wFbAgkB2wEUAgEBGQwAAVcBGAEMAdwBLAFtASwB/wEoAXgBKAH/
ASYBfwEmAf8BJwF9AScB/wEnAXwBJwH/AScBfAEnAf8BKAF2ASgB/wEqAW0BKgH/ASoBVQEqAf8BHgE7
AR4B/wFRAQkBBwHbARQCAQEZDAABZgEfAQwB3AGBAYQBLgH/AYsBkgEpAf8BlAGcASUB/wGSAZkBJgH/
AZEBmAEnAf8BkQGYAScB/wGKAZABKAH/AYEBhAEsAf8BZgFqAS4B/wFIAUoBIQH/AVcBCgEHAdsBFAIB
ARkIAAEwAgEBSgNgAf8DaQH/A3IB/wNyAf8DcgH/A3IB/wNqAf8DbAH/A2MB/wNHAf8DSQH/AzsB/wEw
AgEBSggAATACAQFKAbUBYAFCAf8BywFhATwB/wHUAWgBQgH/AdQBaAFCAf8B1AFoAUIB/wHUAWgBQgH/
Ac8BYgE8Af8B0gFjAT0B/wG+AWABPwH/AYEBTgE9Af8BgQFQAT4B/wFgAToBLQH/ATACAQFKCAABMAIB
AUoBKwFwASsB/wEmAX4BJgH/ASUBgwElAf8BJQGDASUB/wElAYMBJQH/ASUBgwElAf8BJQGBASUB/wEk
AYEBJAH/ASkBdQEpAf8BKAFOASgB/wEoAVEBKAH/AR4BOwEeAf8BMAIBAUoIAAEwAgEBSgGCAYgBLQH/
AZMBmwEmAf8BoAGoASMB/wGgAagBIwH/AaABqAEjAf8BoAGoASMB/wGXAZ8BJAH/AZsBowEjAf8BiAGO
ASoB/wFeAWEBKwH/AWIBZQEsAf8BRgFJASAB/wEwAgEBSggAA2kB/wNvAf8DcgH/A3IB/wNyAf8DcAH/
A2sB/wNRAf8DOgH/AykB/wMFAf8DSQH/A0YB/wM4Af8BAgMBBAAByQFkAUAB/wHPAWgBRAH/AdcBZgE/
Af8B1AFoAUIB/wHUAWgBQgH/AdMBaAFCAf8BygFmAUIB/wGOAVwBSgH/AVkBOQEuAf8BIQEWARMB/wMF
Af8BgQFQAT8B/wGBAU0BOwH/AVABNAErAf8BAgMBBAABKAF+ASgB/wEnAYEBJwH/ASIBhQEiAf8BJQGD
ASUB/wElAYMBJQH/ASUBggElAf8BKQF/ASkB/wEvAVkBLwH/AR4BNgEeAf8BDQEVAQ0B/wMFAf8BKAFR
ASgB/wEmAU4BJgH/ARwBMQEcAf8BAgMBBAABkwGaASgB/wGbAaMBJgH/AaMBqwEfAf8BoAGoASMB/wGg
AagBIwH/AZ8BpwEjAf8BlAGbASkB/wFrAW8BNAH/AUEBQwEhAf8BGQEaAQ4B/wMFAf8BYQFkAS0B/wFe
AWIBKgH/ATsBPQEfAf8BAgMBBAADcwH/A4AB/wNzAf8DcgH/A1YB/wM9Af8DLgH/AwoB/wMFAf8DBQH/
AyQB/wNhAf8DUgH/Az4B/wEUAgEBGQQAAdgBaAFBAf8B2wF1AVEB/wHUAWsBRQH/AdQBaAFCAf8BnAFf
AUkB/wFlAUABNAH/ASwBHQEYAf8CBgEFAf8DBQH/AwUB/wEaAREBDwH/AbsBYAFAAf8BlQFbAUUB/wFp
AUABMgH/ARQCAQEZBAABIwGHASMB/wElAZABJQH/ASUBhQElAf8BJQGDASUB/wEvAWEBLwH/ASIBPgEi
Af8BEAEcARAB/wMFAf8DBQH/AwUB/wELAREBCwH/ASoBcwEqAf8BLQFdAS0B/wEgAUABIAH/ARQCAQEZ
BAABpAGtASAB/wGwAboBIgH/AaIBqgEjAf8BoAGoASMB/wF1AXkBMwH/AUoBTAElAf8BIQEiARIB/wMF
Af8DBQH/AwUB/wIUAQwB/wGGAYwBKwH/AXABdAExAf8BTAFPASQB/wEUAgEBGQELAgEBDQN9Af8DhwH/
A3cB/wNyAf8DRAH/AzYB/wMcAf8DBQH/AwUB/wMFAf8DOwH/A24B/wNcAf8DQgH/ARQCAQEZAQsCAQEN
AdoBcgFNAf8B3QF+AV0B/wHVAW8BSwH/AdQBaAFCAf8BeAFMAT0B/wFMATEBKAH/ARABDAEKAf8DBQH/
AwUB/wMFAf8BXAE7ATAB/wHUAWQBPQH/Aa8BXgFBAf8BdgFGATYB/wEUAgEBGQELAgEBDQEkAY4BJAH/
ASYBlwEmAf8BJwGHAScB/wElAYMBJQH/AScBSAEnAf8BGgEvARoB/wEIAQsBCAH/AwUB/wMFAf8DBQH/
AR8BOQEfAf8BJAGBASQB/wEqAWwBKgH/ASMBRwEjAf8BFAIBARkBCwIBAQ0BrgG3ASEB/wG5AcIBIwH/
AaUBrQElAf8BoAGoASMB/wFXAVoBKwH/ATgBOgEdAf8CDQEIAf8DBQH/AwUB/wMFAf8BRAFGASMB/wGe
AaYBIQH/AYEBgwEsAf8BVgFZAScB/wEUAgEBGQELAgEBDQOBAf8DjAH/A3cB/wNyAf8DcAH/A3AB/wMy
Af8DBQH/AwUB/wMRAf8DVQH/A2gB/wNiAf8DQwH/ARQCAQEZAQsCAQENAdwBeAFUAf8B3wGBAWMB/wHU
AW8BTAH/AdQBaAFCAf8B0wFoAUIB/wHSAWgBQwH/ATkBJQEeAf8DBQH/AwUB/wEJAgcB/wGZAV8BSQH/
AcoBYQE8Af8BvQFfAT4B/wF6AUgBOAH/ARQCAQEZAQsCAQENASUBkgElAf8BJwGbAScB/wEnAYYBJwH/
ASUBgwElAf8BJQGCASUB/wEmAYEBJgH/ARQBIwEUAf8DBQH/AwUB/wEGAQcBBgH/AS8BXwEvAf8BJwF9
AScB/wEpAXQBKQH/ASQBSgEkAf8BFAIBARkBCwIBAQ0BswG8ASIB/wG9AccBJAH/AaQBrAEmAf8BoAGo
ASMB/wGfAacBIwH/AZ4BpgEkAf8BKgErARYB/wMFAf8DBQH/AggBBgH/AXMBdwE0Af8BkgGZASYB/wGI
AY4BKgH/AVkBXAEoAf8BFAIBARkEAAOBAf8DlgH/A4EB/wNuAf8DagH/AzUB/wMFAf8DOwH/AxMB/wMy
Af8DbwH/A3IB/wNfAf8DQwH/AQkCAQEKBAAB3AF3AVMB/wHhAYYBbAH/AdoBdgFSAf8BzAFnAUQB/wHJ
AWUBQgH/AUQBLAEkAf8DBQH/AVwBOgEvAf8BCQEIAQcB/wE5ASUBHgH/AdEBaAFDAf8B1AFoAUIB/wG1
AV8BQQH/AXgBSQE5Af8BCQIBAQoEAAElAZIBJQH/ASgBoAEoAf8BJgGQASYB/wEoAYEBKAH/ASkBfQEp
Af8BGAEqARgB/wMFAf8BHwE4AR8B/wEGAQcBBgH/ARQBIwEUAf8BJgGBASYB/wElAYMBJQH/ASoBcAEq
Af8BJQFJASUB/wEJAgEBCgQAAbIBuwEiAf8BxAHOASUB/wGwAbkBIwH/AZcBngEoAf8BkwGaASkB/wEy
ATQBGgH/AwUB/wFDAUUBIgH/AggBBgH/ASoBKwEWAf8BnQGkASUB/wGgAagBIwH/AYIBhwEsAf8BWAFb
ASgB/wEJAgEBCgQAA3wB/wObAf8DkAH/A3MB/wM1Af8DBQH/A0MB/wN0Af8DMQH/A0QB/wNzAf8DcgH/
A14B/wNGAf8IAAHaAXABSwH/AeIBigFyAf8B3wGBAWcB/wHIAXABUQH/AUQBLAEkAf8DBQH/AXQBSgE7
Af8B2AFqAUMB/wE2ASMBHQH/AXgBTAE9Af8B1wFpAUMB/wHUAWgBQgH/AbEBXwFCAf8BfgFPAUAB/wgA
ASQBjQEkAf8BKQGkASkB/wEoAZ0BKAH/AS4BgQEuAf8BGAEqARgB/wMFAf8BJgFGASYB/wEjAYgBIwH/
ARQBIgEUAf8BJwFIAScB/wEjAYcBIwH/ASUBgwElAf8BKwFtASsB/wEpAUwBKQH/CAABrAG1ASEB/wHI
AdIBJQH/AcABygEkAf8BmAGeAS8B/wEyATQBGgH/AwUB/wFVAVcBKgH/AaYBrwEgAf8BKAEpARUB/wFX
AVoBKwH/AaUBrQEhAf8BoAGoASMB/wGBAYQBLQH/AVwBXgEuAf8IAAEwAgEBSgOeAf8DogH/A1EB/wMK
Af8DRAH/A3MB/wNvAf8DUAH/A2MB/wNyAf8DcgH/A2AB/wEwAgEBSggAATACAQFKAeIBiwFzAf8B4wGP
AXcB/wGEAWABUgH/AgYBBQH/AXcBSwE9Af8B1gFpAUMB/wHRAWgBQwH/AYsBWwFJAf8BugFiAUQB/wHU
AWgBQgH/AdQBaAFCAf8BuQFgAUEB/wEwAgEBSggAATACAQFKASkBpAEpAf8BKgGnASoB/wE0AVMBNAH/
AwUB/wEnAUgBJwH/ASQBhQEkAf8BJgGBASYB/wEvAVcBLwH/ASwBcgEsAf8BJQGDASUB/wElAYMBJQH/
ASoBcgEqAf8BMAIBAUoIAAEwAgEBSgHIAdMBJgH/AcwB1gEmAf8BZAFmATsB/wMFAf8BVwFZASsB/wGj
AasBIQH/AZ0BpAElAf8BaQFsATQB/wGFAYsBLgH/AaABqAEjAf8BoAGoASMB/wGEAYoBLAH/ATACAQFK
DAABYQIOAcoDqAH/A3cB/wNbAf8DgQH/A3cB/wN2Af8DcgH/A3IB/wNyAf8DcgH/AWACIwHoEAABawEO
AQkBygHkAZQBfgH/Ab0BewFjAf8BmAFnAVUB/wHXAXcBVQH/AdABcQFPAf8B0QFuAUsB/wHUAWgBQgH/
AdQBaAFCAf8B1AFoAUIB/wHUAWgBQgH/AYQBIwEYAegQAAFZAQ4BBQHKASsBqwErAf8BOAF8ATgB/wE2
AV8BNgH/ASgBjgEoAf8BKgGDASoB/wEoAYQBKAH/ASUBgwElAf8BJQGDASUB/wElAYMBJQH/ASUBgwEl
Af8BTgEqARAB6BAAAWgBFQEFAcoB0QHcAScB/wGQAZYBPQH/AXIBdgE9Af8BrQG2ASYB/wGhAagBKQH/
AaEBqQEnAf8BoAGoASMB/wGgAagBIwH/AaABqAEjAf8BoAGoASMB/wFxATYBEAHoFAABYwIOAckDogH/
A5sB/wOSAf8DgwH/A3oB/wNzAf8DbgH/A2wB/wFhAhYB2xgAAWsBDgELAckB4wGPAXgB/wHiAYsBcgH/
AeABhAFqAf8B3QF8AVoB/wHYAXABTAH/AdQBawFGAf8B0AFmAUEB/wHTAWMBPAH/AXkBFgEOAdsYAAFb
AREBBQHJASoBpwEqAf8BKQGkASkB/wEoAZ8BKAH/ASYBlgEmAf8BJQGLASUB/wEmAYQBJgH/ASYBgQEm
Af8BJAGBASQB/wFXARkBCQHbGAABZgEUAQUByQHMAdcBJgH/AcgB0gEmAf8BwgHMASUB/wG3AcABIwH/
AaoBswEjAf8BoQGqASQB/wGbAaMBJAH/AZwBpAEiAf8BawEiAQkB2xwAATACAQFKA4IB/wOHAf8DjAH/
A4MB/wN8Af8DbAH/ATACAQFKIAABMAIBAUoB3QF7AVkB/wHeAYABXwH/Ad8BgQFlAf8B3QF8AVoB/wHa
AXABSwH/AdIBYwE9Af8BMAIBAUogAAEwAgEBSgEmAZUBJgH/AScBmQEnAf8BJwGcAScB/wEmAZYBJgH/
ASQBjQEkAf8BJAGBASQB/wEwAgEBSiAAATACAQFKAbYBvwEiAf8BugHEASMB/wG+AcgBJAH/AbcBwAEj
Af8BrAG1ASEB/wGbAaMBIwH/ATACAQFKLAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTgAAQsCAQEN
AQsCAQENOAABCwIBAQ0BCwIBAQ0cAAFCAU0BPgcAAT4DAAEoAwABQAMAAWADAAEBAQABAQYAAQMWAAP/
gQAB/AEfAfwBHwH8AR8B/AEfAfABBwHwAQcB8AEHAfABBwHgAQMB4AEDAeABAwHgAQMBwAEBAcABAQHA
AQEBwAEBAYABAQGAAQEBgAEBAYABAQGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgBEAAYABAAGA
AQABgAEAAYABAAGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAcABAwHAAQMBwAEDAcABAwHg
AQcB4AEHAeABBwHgAQcB8AEPAfABDwHwAQ8B8AEPAf4BfwH+AX8B/gF/Af4Bfws=
AQcB4AEHAeABBwHgAQcB8AEPAfABDwHwAQ8B8AEPAf4BfwH+AX8B/gF/Af4BfwH8AR8B/AEfAfwBHwH8
AR8B8AEHAfABBwHwAQcB8AEHAeABAwHgAQMB4AEDAeABAwHAAQEBwAEBAcABAQHAAQEBgAEBAYABAQGA
AQEBgAEBAYABAAGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAEQABgAEAAYABAAGAAQABoAEAAYABAQGA
AQEBgAEBAbABAQGAAQEBgAEBAYABAQGwAQEBwAEDAcABAwHAAQMB0AEDAeABBwHgAQcB4AEHAf4BBwHw
AQ8B8AEPAfABDwHwAQ8B/gF/Af4BfwH+AX8B/gF/AfwBHwH8AR8B/AEfAfwBHwHwAQcB8AEHAfABBwHw
AQcB4AEDAeABAwHgAQMB4AEDAcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGA
AQABgAEAAYABAAGAAQABgAEAAYARAAGAAQABgAEAAYABAAGAAQABgAEBAYABAQGAAQEBgAEBAYABAQGA
AQEBgAEBAYABAQHAAQMBwAEDAcABAwHAAQMB4AEHAeABBwHgAQcB4AEHAfABDwHwAQ8B8AEPAfABDwH+
AX8B/gF/Af4BfwH+AX8B/AEfAfwBHwH8AR8B/AEfAfABBwHwAQcB8AEHAfABBwHgAQMB4AEDAeABAwHg
AQMBwAEBAcABAQHAAQEBwAEBAYABAQGAAQEBgAEBAYABAQGAAQABgAEAAYABAAGAAQABgAEAAYABAAGA
AQABgBEAAYABAAGAAQABgAEAAYABAAGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAcABAwHA
AQMBwAEDAcABAwHgAQcB4AEHAeABBwHgAQcB8AEPAfABDwHwAQ8B8AEPAf4BfwH+AX8B/gF/Af4BfwH8
AR8B/AEfAfwBHwH8AR8B8AEHAfABBwHwAQcB8AEHAeABAwHgAQMB4AEDAeABAwHAAQEBwAEBAcABAQHA
AQEBgAEBAYABAQGAAQEBgAEBAYABAAGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAEQABgAEAAYABAAGA
AQABgAEAAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHg
AQcB4AEHAeABBwHwAQ8B8AEPAfABDwHwAQ8B/gF/Af4BfwH+AX8B/gF/Cw==
</value>
</data>
<metadata name="groupBox2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">