1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-03-04 02:28:03 +00:00

generate action menu "quick" items in code, rather than tons of repeating menu items in the nib

This commit is contained in:
Mitchell Livingston 2008-01-10 06:27:48 +00:00
parent 5f3f5edf5d
commit 80064189fa
4 changed files with 2624 additions and 3722 deletions

View file

@ -91,6 +91,7 @@ typedef enum
IBOutlet NSMenuItem * fUploadLimitItem, * fUploadNoLimitItem,
* fDownloadLimitItem, * fDownloadNoLimitItem;
IBOutlet NSMenu * fRatioStopMenu;
IBOutlet NSMenuItem * fCheckRatioItem, * fNoCheckRatioItem;
IBOutlet NSMenu * fGroupsSetMenu, * fGroupsSetContextMenu, * fGroupFilterMenu;

View file

@ -109,6 +109,9 @@ typedef enum
STATUS_TRANSFER_SESSION_TAG = 3
} statusTag;
int speedLimitsActionMenu[] = { 5, 10, 20, 30, 40, 50, 75, 100, 150, 200, 250, 500, 750, -1 };
float ratioLimitsActionMenu[] = { 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, -1 };
#define GROWL_DOWNLOAD_COMPLETE @"Download Complete"
#define GROWL_SEEDING_COMPLETE @"Seeding Complete"
#define GROWL_AUTO_ADD @"Torrent Auto Added"
@ -2079,6 +2082,42 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
[menu appendItemsFromMenu: groupMenu atIndexes: [NSIndexSet indexSetWithIndexesInRange:
NSMakeRange(0, [groupMenu numberOfItems])] atBottom: YES];
}
else if (menu == fUploadMenu || menu == fDownloadMenu)
{
if ([menu numberOfItems] > 3)
return;
NSMenuItem * item;
int i;
for (i = 0; speedLimitsActionMenu[i] != -1; i++)
{
item = [[NSMenuItem alloc] initWithTitle: [NSString stringWithFormat: NSLocalizedString(@"%d KB/s",
"Action menu -> upload/download limit"), speedLimitsActionMenu[i]] action: @selector(setQuickLimitGlobal:)
keyEquivalent: @""];
[item setTarget: self];
[item setRepresentedObject: [NSNumber numberWithInt: speedLimitsActionMenu[i]]];
[menu addItem: item];
[item release];
}
}
else if (menu == fRatioStopMenu)
{
if ([menu numberOfItems] > 3)
return;
NSMenuItem * item;
int i;
for (i = 0; ratioLimitsActionMenu[i] != -1; i++)
{
item = [[NSMenuItem alloc] initWithTitle: [NSString stringWithFormat: NSLocalizedString(@"%.2f",
"Action menu -> ratio stop"), ratioLimitsActionMenu[i]] action: @selector(setQuickRatioGlobal:)
keyEquivalent: @""];
[item setTarget: self];
[item setRepresentedObject: [NSNumber numberWithFloat: ratioLimitsActionMenu[i]]];
[menu addItem: item];
[item release];
}
}
else;
}
@ -2213,7 +2252,8 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
- (void) setQuickLimitGlobal: (id) sender
{
[fDefaults setInteger: [[sender title] intValue] forKey: [sender menu] == fUploadMenu ? @"UploadLimit" : @"DownloadLimit"];
[fDefaults setInteger: [[sender representedObject] intValue] forKey: [sender menu] == fUploadMenu
? @"UploadLimit" : @"DownloadLimit"];
[fDefaults setBool: YES forKey: [sender menu] == fUploadMenu ? @"CheckUpload" : @"CheckDownload"];
[fPrefsController updateLimitFields];
@ -2228,7 +2268,7 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
- (void) setQuickRatioGlobal: (id) sender
{
[fDefaults setBool: YES forKey: @"RatioCheck"];
[fDefaults setFloat: [[sender title] floatValue] forKey: @"RatioLimit"];
[fDefaults setFloat: [[sender representedObject] floatValue] forKey: @"RatioLimit"];
[fPrefsController updateRatioStopField];
}
@ -3224,7 +3264,7 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
BOOL limit = menuItem == (upload ? fUploadLimitItem : fDownloadLimitItem);
if (limit)
[menuItem setTitle: [NSString stringWithFormat: NSLocalizedString(@"Limit (%d KB/s)",
"Action context menu -> upload/download limit"),
"Action menu -> upload/download limit"),
[fDefaults integerForKey: upload ? @"UploadLimit" : @"DownloadLimit"]]];
[menuItem setState: [fDefaults boolForKey: upload ? @"CheckUpload" : @"CheckDownload"] ? limit : !limit];
@ -3236,7 +3276,7 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
BOOL check = menuItem == fCheckRatioItem;
if (check)
[menuItem setTitle: [NSString stringWithFormat: NSLocalizedString(@"Stop at Ratio (%.2f)",
"Action context menu -> ratio stop"), [fDefaults floatForKey: @"RatioLimit"]]];
"Action menu -> ratio stop"), [fDefaults floatForKey: @"RatioLimit"]]];
[menuItem setState: [fDefaults boolForKey: @"RatioCheck"] ? check : !check];
return YES;

View file

@ -28,7 +28,7 @@
<object class="NSWindowTemplate" id="1005">
<int key="NSWindowStyleMask">13</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{186, 360}, {428, 551}}</string>
<string key="NSWindowRect">{{186, 418}, {414, 493}}</string>
<int key="NSWTFlags">536870912</int>
<string key="NSWindowTitle" id="474251583">Window</string>
<string key="NSWindowClass">NSWindow</string>
@ -55,15 +55,15 @@
<string id="54874566">NeXT TIFF v4.0 pasteboard type</string>
</object>
</object>
<string key="NSFrame">{{20, 477}, {64, 64}}</string>
<string key="NSFrame">{{20, 419}, {64, 64}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="376748491">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">33554432</int>
<object class="NSCustomResource" key="NSContents" id="258929026">
<string key="NSClassName" id="953518513">NSImage</string>
<object class="NSCustomResource" key="NSContents" id="140707770">
<string key="NSClassName" id="357462910">NSImage</string>
<string key="NSResourceName">NSApplicationIcon</string>
</object>
<int key="NSAlign">0</int>
@ -76,7 +76,7 @@
<object class="NSTextField" id="382094510">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{89, 485}, {322, 17}}</string>
<string key="NSFrame">{{89, 427}, {308, 17}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -92,7 +92,7 @@
<reference key="NSControlView" ref="382094510"/>
<object class="NSColor" key="NSBackgroundColor" id="729622418">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName" id="197819108">System</string>
<string key="NSCatalogName" id="253283070">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor" id="407905340">
<int key="NSColorSpace">3</int>
@ -101,7 +101,7 @@
</object>
<object class="NSColor" key="NSTextColor" id="932603584">
<int key="NSColorSpace">6</int>
<reference key="NSCatalogName" ref="197819108"/>
<reference key="NSCatalogName" ref="253283070"/>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor" id="165035146">
<int key="NSColorSpace">3</int>
@ -113,7 +113,7 @@
<object class="NSTextField" id="471778487">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{89, 510}, {319, 22}}</string>
<string key="NSFrame">{{89, 452}, {305, 22}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -134,7 +134,7 @@
<object class="NSButton" id="1065995789">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{336, 445}, {77, 28}}</string>
<string key="NSFrame">{{322, 387}, {77, 28}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -166,7 +166,7 @@
<object class="NSTextField" id="1059202456">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 452}, {88, 17}}</string>
<string key="NSFrame">{{17, 394}, {88, 17}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -195,14 +195,14 @@
<reference ref="54874566"/>
</object>
</object>
<string key="NSFrame">{{110, 452}, {16, 16}}</string>
<string key="NSFrame">{{110, 394}, {16, 16}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="324048767">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">33554432</int>
<reference key="NSContents" ref="258929026"/>
<reference key="NSContents" ref="140707770"/>
<int key="NSAlign">0</int>
<int key="NSScale">1</int>
<int key="NSStyle">0</int>
@ -213,7 +213,7 @@
<object class="NSTextField" id="698797028">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{131, 437}, {205, 30}}</string>
<string key="NSFrame">{{131, 379}, {191, 30}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -254,7 +254,7 @@
<object class="NSButton" id="636183414">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{334, 12}, {80, 32}}</string>
<string key="NSFrame">{{320, 12}, {80, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -280,7 +280,7 @@
<object class="NSButton" id="533609783">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{257, 12}, {82, 32}}</string>
<string key="NSFrame">{{243, 12}, {82, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -302,7 +302,7 @@
<object class="NSPopUpButton" id="711151157">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{289, 68}, {122, 26}}</string>
<string key="NSFrame">{{275, 68}, {122, 26}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -326,12 +326,12 @@
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<object class="NSCustomResource" key="NSOnImage" id="19467491">
<reference key="NSClassName" ref="953518513"/>
<object class="NSCustomResource" key="NSOnImage" id="251384761">
<reference key="NSClassName" ref="357462910"/>
<string key="NSResourceName">NSMenuCheckmark</string>
</object>
<object class="NSCustomResource" key="NSMixedImage" id="2529939">
<reference key="NSClassName" ref="953518513"/>
<object class="NSCustomResource" key="NSMixedImage" id="955819747">
<reference key="NSClassName" ref="357462910"/>
<string key="NSResourceName">NSMenuMixedState</string>
</object>
<string key="NSAction">_popUpItemAction:</string>
@ -350,8 +350,8 @@
<reference key="NSKeyEquiv" ref="751720803"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="19467491"/>
<reference key="NSMixedImage" ref="2529939"/>
<reference key="NSOnImage" ref="251384761"/>
<reference key="NSMixedImage" ref="955819747"/>
<string key="NSAction">_popUpItemAction:</string>
<int key="NSTag">-3</int>
<reference key="NSTarget" ref="693599709"/>
@ -368,7 +368,7 @@
<object class="NSTextField" id="224369214">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{239, 73}, {48, 17}}</string>
<string key="NSFrame">{{225, 73}, {48, 17}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -395,14 +395,14 @@
<object class="NSOutlineView" id="591175582">
<reference key="NSNextResponder" ref="488449190"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{371, 304}</string>
<string key="NSFrameSize">{357, 246}</string>
<reference key="NSSuperview" ref="488449190"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="451767651">
<reference key="NSNextResponder" ref="865426550"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{371, 17}</string>
<string key="NSFrameSize">{357, 17}</string>
<reference key="NSSuperview" ref="865426550"/>
<reference key="NSWindow"/>
<reference key="NSTableView" ref="591175582"/>
@ -410,7 +410,7 @@
<object class="_NSCornerView" key="NSCornerView" id="73227768">
<reference key="NSNextResponder" ref="399642967"/>
<int key="NSvFlags">256</int>
<string key="NSFrame">{{372, 0}, {16, 17}}</string>
<string key="NSFrame">{{358, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="399642967"/>
<reference key="NSWindow"/>
</object>
@ -418,7 +418,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="161502441">
<string key="NSIdentifier" id="146382106">Name</string>
<double key="NSWidth">3.145991e+02</double>
<double key="NSWidth">3.005991e+02</double>
<double key="NSMinWidth">3.859912e+01</double>
<double key="NSMaxWidth">1.000000e+03</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
@ -432,7 +432,7 @@
</object>
<object class="NSColor" key="NSTextColor" id="362182954">
<int key="NSColorSpace">6</int>
<reference key="NSCatalogName" ref="197819108"/>
<reference key="NSCatalogName" ref="253283070"/>
<string key="NSColorName">headerTextColor</string>
<reference key="NSColor" ref="165035146"/>
</object>
@ -440,12 +440,12 @@
<object class="NSTextFieldCell" key="NSDataCell" id="854727005">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents" id="271059554">Text Cell</string>
<string key="NSContents" id="298368852">Text Cell</string>
<reference key="NSSupport" ref="728563564"/>
<reference key="NSControlView" ref="591175582"/>
<object class="NSColor" key="NSBackgroundColor" id="925881442">
<int key="NSColorSpace">6</int>
<reference key="NSCatalogName" ref="197819108"/>
<reference key="NSCatalogName" ref="253283070"/>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="407905340"/>
</object>
@ -467,7 +467,7 @@
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor" id="211491450">
<int key="NSColorSpace">6</int>
<reference key="NSCatalogName" ref="197819108"/>
<reference key="NSCatalogName" ref="253283070"/>
<string key="NSColorName">headerColor</string>
<object class="NSColor" key="NSColor" id="411117033">
<int key="NSColorSpace">3</int>
@ -512,7 +512,7 @@
<object class="NSTextFieldCell" key="NSDataCell" id="422188465">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">134219776</int>
<reference key="NSContents" ref="271059554"/>
<reference key="NSContents" ref="298368852"/>
<reference key="NSSupport" ref="728563564"/>
<reference key="NSControlView" ref="591175582"/>
<reference key="NSBackgroundColor" ref="925881442"/>
@ -526,7 +526,7 @@
<reference key="NSBackgroundColor" ref="411117033"/>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<reference key="NSCatalogName" ref="197819108"/>
<reference key="NSCatalogName" ref="253283070"/>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
@ -541,7 +541,7 @@
<bool key="NSAllowsTypeSelect">YES</bool>
</object>
</object>
<string key="NSFrame">{{1, 17}, {371, 304}}</string>
<string key="NSFrame">{{1, 17}, {357, 246}}</string>
<reference key="NSSuperview" ref="399642967"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="591175582"/>
@ -552,7 +552,7 @@
<object class="NSScroller" id="467034168">
<reference key="NSNextResponder" ref="399642967"/>
<int key="NSvFlags">256</int>
<string key="NSFrame">{{372, 17}, {15, 304}}</string>
<string key="NSFrame">{{358, 17}, {15, 246}}</string>
<reference key="NSSuperview" ref="399642967"/>
<reference key="NSWindow"/>
<reference key="NSTarget" ref="399642967"/>
@ -577,7 +577,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="451767651"/>
</object>
<string key="NSFrame">{{1, 0}, {371, 17}}</string>
<string key="NSFrame">{{1, 0}, {357, 17}}</string>
<reference key="NSSuperview" ref="399642967"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="451767651"/>
@ -587,7 +587,7 @@
</object>
<reference ref="73227768"/>
</object>
<string key="NSFrame">{{20, 107}, {388, 322}}</string>
<string key="NSFrame">{{20, 107}, {374, 264}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="488449190"/>
@ -615,7 +615,7 @@
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<object class="NSCustomResource" key="NSNormalImage">
<reference key="NSClassName" ref="953518513"/>
<reference key="NSClassName" ref="357462910"/>
<string key="NSResourceName">NSSwitch</string>
</object>
<reference key="NSAlternateImage" ref="240636852"/>
@ -647,7 +647,7 @@
</object>
</object>
</object>
<string key="NSFrameSize">{428, 551}</string>
<string key="NSFrameSize">{414, 493}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
</object>
@ -1261,10 +1261,10 @@
<reference ref="1035227028"/>
<reference ref="1035227028"/>
<reference ref="1035227028"/>
<string>{{186, 360}, {428, 551}}</string>
<string>{{186, 418}, {414, 493}}</string>
<integer value="1" id="9"/>
<string>{196, 240}</string>
<string>{{186, 360}, {428, 551}}</string>
<string>{{186, 418}, {414, 493}}</string>
<integer value="0"/>
<reference ref="9"/>
<string>{429, 479}</string>
@ -1350,6 +1350,162 @@
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey" id="46513121">IBProjectSource</string>
<string key="minorKey">macosx/NSMenuAdditions.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className" id="746918514">NSObject</string>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/UKKQueue/UKKQueue.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="746918514"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/IPCController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="746918514"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/UKKQueue/UKMainThreadProxy.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="746918514"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/UKKQueue/UKFileWatcher.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="199511354"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/NSApplicationAdditions.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">FileOutlineView</string>
<string key="superclassName">NSOutlineView</string>
@ -1372,13 +1528,13 @@
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey" id="655084481">IBProjectSource</string>
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/FileOutlineView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">FileOutlineController</string>
<string key="superclassName" id="746918514">NSObject</string>
<reference key="superclassName" ref="746918514"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
@ -1390,10 +1546,10 @@
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string id="590163531">id</string>
<reference ref="590163531"/>
<reference ref="590163531"/>
<reference ref="590163531"/>
<string id="358101364">id</string>
<reference ref="358101364"/>
<reference ref="358101364"/>
<reference ref="358101364"/>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
@ -1401,7 +1557,7 @@
<string key="NS.object.0">FileOutlineView</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/FileOutlineController.h</string>
</object>
</object>
@ -1420,11 +1576,11 @@
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="590163531"/>
<reference ref="590163531"/>
<reference ref="590163531"/>
<reference ref="590163531"/>
<reference ref="590163531"/>
<reference ref="358101364"/>
<reference ref="358101364"/>
<reference ref="358101364"/>
<reference ref="358101364"/>
<reference ref="358101364"/>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
@ -1455,166 +1611,10 @@
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<reference key="majorKey" ref="46513121"/>
<string key="minorKey">macosx/AddWindowController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<string key="minorKey">macosx/NSMenuAdditions.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="746918514"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<string key="minorKey">macosx/IPCController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="746918514"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<string key="minorKey">macosx/UKKQueue/UKFileWatcher.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="746918514"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<string key="minorKey">macosx/UKKQueue/UKMainThreadProxy.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="746918514"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<string key="minorKey">macosx/UKKQueue/UKKQueue.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<reference key="className" ref="199511354"/>
<nil key="superclassName"/>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<reference key="majorKey" ref="655084481"/>
<string key="minorKey">macosx/NSApplicationAdditions.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
@ -1629,12 +1629,12 @@ AWEBYgFpAWoBdAF9AX4BggGKAYsBkwGUAZ0BngGoAakBrQGuAbEBugG7AcQBxQHIAckB0QHSAdoB2wHc
AeQB5QH9AhcCHAIgAiECJQImAicCKQIqAi8COQImAjoCPgJAAkQCRwJPAlACVwJYAnACeAKHAosCqwKs
Aq0CrgK2AsACwQLEAsoCywLOAtQC5gLnAu4C8QL2AvcC+gMCAwMDCAMJAwwDEwMUAxoDGwMgAyEDJAMt
AzEDOAM5Az8DQANIA00DTgNRA1QDVQNYA2IDYwNkA2cDcgNzA3cDeAN5A3wDhAOFA48DkAGtA5QDnAOd
A6UDpgALA6cDqQOqA6sDrgPEA8wDzQPRA9YD1wPcA90D4gPlA+YD5wPsA+0D8AP1A/YD+wP8BAEEAgQH
BAgEDQQOBBMEFAQZBBoEHwQgBCUEJgQrBCwEMQQ2BDcEPAQ9BEIEQwR0BHcEeAR6BKsE3QUPBRAFEQUS
A6UDpgALA6cDqQOqA6sDrgPEA8wDzQPRA9YD1wPaA98D4gPjA+QD6QPqA+8D8AP1A/YD+wP8BAEEAgQH
BAgEDQQOBBMEFAQZBBoEHwQgBCUEJgQrBCwEMQQyBDcEOAQ9BD4EQwR0BHcEeAR6BKsE3QUPBRAFEQUS
BRMFFAUVBRYFFwUYBRkFGgUbBRwFHQUeBR8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUw
BTEFMgUzBTQFNQU2BTcFOAU5BToFOwU8BT0FQQVFBYoFzwXQBdEF0gXTBdQF1QXWBdcF2ADxBdkBOQXa
BdsF3AXdBd4F3wXgBeEF4gXjBeQCpwXlBeYCfwXnAmUF6AXpBeoF6wXsBe0F7gXvBfAF8QBYAFkF8gCw
BfMF9AX1BfYF9wX4BfkF+gX7BfwF/QX+Bf8GAAI4ASQA+QYBBgIGAwYEBgUGBgYJBgwGD1UkbnVsbN8Q
BTEFMgUzBTQFNQU2BTcFOAU5BToFOwU8BT0FQQVFBYoCZQXPBdAF0QXSBdMCpwXUBdUF1gXXBdgF2QXa
ASQF2wXcBd0BOQXeBd8F4AXhBeIA8QXjBeQF5QXmBecF6ABYBekF6gI4BesF7AXtBe4F7wXwBfEF8gXz
BfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gJ/Bf8GAAYBALAA+QYCBgMAWQYEBgUGBgYJBgwGD1UkbnVsbN8Q
EgANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkA
KgArACwALQAuAC8AMFZOU1Jvb3RWJGNsYXNzXU5TT2JqZWN0c0tleXNfEA9OU0NsYXNzZXNWYWx1ZXNf
EBlOU0FjY2Vzc2liaWxpdHlPaWRzVmFsdWVzXU5TQ29ubmVjdGlvbnNbTlNOYW1lc0tleXNbTlNGcmFt
@ -1648,8 +1648,8 @@ gBihAEGAB90AQwAOAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgAr
XE5TV2luZG93Vmlld18QFk5TV2luZG93Q29udGVudE1heFNpemVcTlNTY3JlZW5SZWN0XU5TV2luZG93
VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NfEBZOU1dpbmRvd0NvbnRlbnRNaW5TaXplXE5TV2lu
ZG93UmVjdF8QD05TV2luZG93QmFja2luZ18QEU5TV2luZG93U3R5bGVNYXNrWU5TTWluU2l6ZVtOU1Zp
ZXdDbGFzc4ANgMGAC4C/gAkSIAAAAIAKgAyACBACEA2AwIAAXxAYe3sxODYsIDM2MH0sIHs0MjgsIDU1
MX19VldpbmRvd1hOU1dpbmRvd157MTAwMDAsIDEwMDAwfVp7MzUwLCAzMDB91wBiAA4AYwBkAGUAXgBm
ZXdDbGFzc4ANgMGAC4C/gAkSIAAAAIAKgAyACBACEA2AwIAAXxAYe3sxODYsIDQxOH0sIHs0MTQsIDQ5
M319VldpbmRvd1hOU1dpbmRvd157MTAwMDAsIDEwMDAwfVp7MzUwLCAzMDB91wBiAA4AYwBkAGUAXgBm
AGcAaABpAGoAawBnAG1fEA9OU05leHRSZXNwb25kZXJaTlNTdWJ2aWV3c1hOU3ZGbGFnc1tOU0ZyYW1l
U2l6ZVtOU1N1cGVydmlld4AOgL6ADxEBAIC8gA6AvdIADgA+AG8AcIBwrxAPAHEAcgBzAHQAdQB2AHcA
eAB5AHoAewB8AH0AfgB/gBCAIYAygDeAQoBGgEqAToBVgFuAYIB0gHiAsoC42gBiAA4AgQCCAIMAhABk
@ -1659,13 +1659,13 @@ E4AUgBWAFoAXXxAZQXBwbGUgUERGIHBhc3RlYm9hcmQgdHlwZV8QGUFwcGxlIFBORyBwYXN0ZWJvYXJk
IHR5cGVfEBVOU0ZpbGVuYW1lc1Bib2FyZFR5cGVfEDFOZVhUIEVuY2Fwc3VsYXRlZCBQb3N0U2NyaXB0
IHYxLjIgcGFzdGVib2FyZCB0eXBlXxAeTmVYVCBUSUZGIHY0LjAgcGFzdGVib2FyZCB0eXBlXxAaQXBw
bGUgUElDVCBwYXN0ZWJvYXJkIHR5cGXSADcAOACgAKGjAKEAogA7XE5TTXV0YWJsZVNldFVOU1NldF8Q
FXt7MjAsIDQ3N30sIHs2NCwgNjR9fdgApQAOAKYApwCoAKkAqgCrAKwArQCuAK8ArgCwALEAsltOU0Nl
FXt7MjAsIDQxOX0sIHs2NCwgNjR9fdgApQAOAKYApwCoAKkAqgCrAKwArQCuAK8ArgCwALEAsltOU0Nl
bGxGbGFnc1dOU1N0eWxlWk5TQ29udGVudHNXTlNBbGlnbldOU1NjYWxlXE5TQ2VsbEZsYWdzMlpOU0Fu
aW1hdGVzEgAB/gCAHxAAgBsQARICAAAACNMADgAyALQAtQC2ALdeTlNSZXNvdXJjZU5hbWWAHoAcgB1X
TlNJbWFnZV8QEU5TQXBwbGljYXRpb25JY29u0gA3ADgAuwC8ogC8ADtfEBBOU0N1c3RvbVJlc291cmNl
0gA3ADgAvgC/owC/AIMAO1tOU0ltYWdlQ2VsbNIANwA4AMEAwqUAwgDDAMQAxQA7W05TSW1hZ2VWaWV3
WU5TQ29udHJvbFZOU1ZpZXdbTlNSZXNwb25kZXLYAGIADgCBAIMAZACFAF4AZgBPAMgAyQDKAMsAiQBn
AE+ADYAxgCKAIxEBCgmADoANXxAWe3s4OSwgNDg1fSwgezMyMiwgMTd9fdgApQAOANEApwDSANMAqgDU
AE+ADYAxgCKAIxEBCgmADoANXxAWe3s4OSwgNDI3fSwgezMwOCwgMTd9fdgApQAOANEApwDSANMAqgDU
ANUA1gDXANgA2QByANsA3F8QEU5TQmFja2dyb3VuZENvbG9yWU5TU3VwcG9ydF1OU0NvbnRyb2xWaWV3
W05TVGV4dENvbG9yEgQB/gCAMIAogCSAJYAhEhBAAACALVtzdGF0dXMgaW5mb9QADgDfAOAA4QDiAOMA
5ADlVk5TU2l6ZVZOU05hbWVYTlNmRmxhZ3OAJyNAKgAAAAAAAIAmEQQUXEx1Y2lkYUdyYW5kZdIANwA4
@ -1675,34 +1675,34 @@ U0NvbG9yTmFtZV1OU0NhdGFsb2dOYW1lgCyAKxAGgCqAKVZTeXN0ZW1cY29udHJvbENvbG9y0wAOAOwA
APEBAADzgCyAL4AugClfEBBjb250cm9sVGV4dENvbG9y0wAOAOwA9wDvAPkBBYAsQjAA0gA3ADgBBwEI
pAEIAQkAgwA7XxAPTlNUZXh0RmllbGRDZWxsXE5TQWN0aW9uQ2VsbNIANwA4AQsBDKUBDADDAMQAxQA7
W05TVGV4dEZpZWxk2ABiAA4AgQCDAGQAhQBeAGYATwDIARABEQDLAIkAZwBPgA2AMYAzgDQJgA6ADV8Q
Fnt7ODksIDUxMH0sIHszMTksIDIyfX3YAKUADgDRAKcA0gDTAKoA1AEXANYA1wEaARsAcwEdANwSBAH+
Fnt7ODksIDQ1Mn0sIHszMDUsIDIyfX3YAKUADgDRAKcA0gDTAKoA1AEXANYA1wEaARsAcwEdANwSBAH+
QIAwgCiANYA2gDISEEAIAIAtWUZpbGUgTmFtZdQADgDfAOAA4QDiASIA5AEkgCcjQDIAAAAAAACAJhAQ
2ABiAA4AgQCDAGQAhQBeAGYATwEnASgBKQEqAIkAZwBPgA2AQYA4gDkRAQkJgA6ADV8QFnt7MzM2LCA0
NDV9LCB7NzcsIDI4fX3dAKUADgEwATEBMgEzATQApwDSANMBNQCqATYA1QE3ATgBOQCwAToBOwE8AT0A
2ABiAA4AgQCDAGQAhQBeAGYATwEnASgBKQEqAIkAZwBPgA2AQYA4gDkRAQkJgA6ADV8QFnt7MzIyLCAz
ODd9LCB7NzcsIDI4fX3dAKUADgEwATEBMgEzATQApwDSANMBNQCqATYA1QE3ATgBOQCwAToBOwE8AT0A
dAE/AUABQV8QE05TQWx0ZXJuYXRlQ29udGVudHNfEBJOU1BlcmlvZGljSW50ZXJ2YWxeTlNCdXR0b25G
bGFnczJfEBBOU0FsdGVybmF0ZUltYWdlXxAPTlNLZXlFcXVpdmFsZW50XxAPTlNQZXJpb2RpY0RlbGF5
XU5TQnV0dG9uRmxhZ3OAQIA9EBmAPIA+gDqAO4A3EMgSCAIAABP/////hoJA/1lDaGFuZ2UuLi7UAA4A
3wDgAOEA4gFFAOQBR4AnI0AmAAAAAAAAgCYRDBzUAA4A3wDgAOEA4gFFAOQBJIAngCZQ0gAOAU0BTgFL
WU5TLnN0cmluZ4A/0gA3ADgBUAFRowFRAVIAO18QD05TTXV0YWJsZVN0cmluZ1hOU1N0cmluZ9IANwA4
AVQBVaQBVQEJAIMAO1xOU0J1dHRvbkNlbGzSADcAOAFXAVilAVgAwwDEAMUAO1hOU0J1dHRvbtgAYgAO
AIEAgwBkAIUAXgBmAE8AyAFcAV0AjACJAGcAT4ANgDGAQ4BECYAOgA1fEBV7ezE3LCA0NTJ9LCB7ODgs
AIEAgwBkAIUAXgBmAE8AyAFcAV0AjACJAGcAT4ANgDGAQ4BECYAOgA1fEBV7ezE3LCAzOTR9LCB7ODgs
IDE3fX3YAKUADgDRAKcA0gDTAKoA1ADVANYA1wFlANkAdQDbANyAMIAogEWAJYBCgC1cRG93bmxvYWQg
dG862gBiAA4AgQCCAIMAhABkAIUAXgBmAE8AhwFtAIkBbwFwAIwAiQBnAE+ADYAggEgJgEmARwmADoAN
0gAOAD4APwF2gBimAJMAlACVAJYAlwCYgBKAE4AUgBWAFoAXXxAWe3sxMTAsIDQ1Mn0sIHsxNiwgMTZ9
0gAOAD4APwF2gBimAJMAlACVAJYAlwCYgBKAE4AUgBWAFoAXXxAWe3sxMTAsIDM5NH0sIHsxNiwgMTZ9
fdgApQAOAKYApwCoAKkAqgCrAKwArQCuAK8ArgCwALEAsoAfgBsI2ABiAA4AgQCDAGQAhQBeAGYATwDI
AYUBhgDLAIkAZwBPgA2AMYBLgEwJgA6ADV8QF3t7MTMxLCA0Mzd9LCB7MjA1LCAzMH192AClAA4A0QCn
AYUBhgDLAIkAZwBPgA2AMYBLgEwJgA6ADV8QF3t7MTMxLCAzNzl9LCB7MTkxLCAzMH192AClAA4A0QCn
ANIA0wCqANQA1QDWANcBjgE9AHcBkQDcgDCAKIBNgDuAShIQQgIAgC1ZRmlsZQpGaWxl2ABiAA4AgQCD
AGQAhQBeAGYATwEnAZcBmAGZAIkAZwBPgA2AQYBPgFARASQJgA6ADV8QFXt7MTgsIDE4fSwgezEzMiwg
MTh9fd0ApQAOATABMQEyATMBNACnANIA0wE1AKoBNgGfATcBOAE5AFgBogE4AaQA2QB4AT8ArgGnE///
//+EAf4AgECAPYBSgD2AUYAlgE4SSDxR/18QEFN0YXJ0IHdoZW4gYWRkZWTSAA4BqgGrAaxbTlNJbWFn
ZU5hbWWAVIBTWE5TU3dpdGNo0gA3ADgBrwGwogGwADtfEBNOU0J1dHRvbkltYWdlU291cmNl2ABiAA4A
gQCDAGQAhQBeAGYATwEnAbQBtQG2AIkAZwBPgA2AQYBWgFcRASEJgA6ADV8QFXt7MzM0LCAxMn0sIHs4
gQCDAGQAhQBeAGYATwEnAbQBtQG2AIkAZwBPgA2AQYBWgFcRASEJgA6ADV8QFXt7MzIwLCAxMn0sIHs4
MCwgMzJ9fd0ApQAOATABMQEyATMBNACnANIA0wE1AKoBNgDVATcBOAE5ALABvgG/AcABvgB5AT8BwwFB
gECAPYBZgFqAWIBZgFUSCAAAAFNBZGTUAA4A3wDgAOEA4gDjAOQBJIAngCZRDdgAYgAOAIEAgwBkAIUA
XgBmAE8BJwHMAc0BtgCJAGcAT4ANgEGAXIBdCYAOgA1fEBV7ezI1NywgMTJ9LCB7ODIsIDMyfX3dAKUA
XgBmAE8BJwHMAc0BtgCJAGcAT4ANgEGAXIBdCYAOgA1fEBV7ezI0MywgMTJ9LCB7ODIsIDMyfX3dAKUA
DgEwATEBMgEzATQApwDSANMBNQCqATYA1QE3ATgBOQCwANkB1gHXANkAegE/AcMBQYBAgD2AJYBfgF6A
JYBbVkNhbmNlbFEb2ABiAA4AgQCDAGQAhQBeAGYATwHeAd8B4AG2AIkAZwBPgA2Ac4BhgGIJgA6ADV8Q
Fnt7Mjg5LCA2OH0sIHsxMjIsIDI2fX3fEBMApQHmAecBMAExAA4BMgE0ANIB6ADTAekB6gHrATUAqgHs
Fnt7Mjc1LCA2OH0sIHsxMjIsIDI2fX3fEBMApQHmAecBMAExAA4BMgE0ANIB6ADTAekB6gHrATUAqgHs
ATYB7QHuAIkAWAE4AfEB8gCwATgA2QH1AHsAsACJAIkB+QH6AfsB/ACwXxAaTlNNZW51SXRlbVJlc3Bl
Y3RBbGlnbm1lbnRfEA9OU0Fycm93UG9zaXRpb25aTlNNZW51SXRlbV8QD05TUHJlZmVycmVkRWRnZV8Q
Ek5TVXNlc0l0ZW1Gcm9tTWVudV1OU0FsdGVyc1N0YXRlVk5TTWVudV8QD05TU2VsZWN0ZWRJbmRleBP/
@ -1718,7 +1718,7 @@ AjiAYoBqgG6APYBlgGeAZIBvE//////////9bABTAGgAbwB3ACAARwByAG8AdQBwAHMgJtIANwA4AjsC
PKMCPAI9ADteTlNNdXRhYmxlQXJyYXlXTlNBcnJhedIANwA4Aj8B7KIB7AA70gA3ADgCQQJCpgJCAkMB
VQEJAIMAO18QEU5TUG9wVXBCdXR0b25DZWxsXk5TTWVudUl0ZW1DZWxs0gA3ADgCRQJGpgJGAVgAwwDE
AMUAO11OU1BvcFVwQnV0dG9u2ABiAA4AgQCDAGQAhQBeAGYATwDIAkoCSwG2AIkAZwBPgA2AMYB1gHYJ
gA6ADV8QFXt7MjM5LCA3M30sIHs0OCwgMTd9fdgApQAOANEApwDSANMAqgDUANUA1gDXAlMA2QB8ANsA
gA6ADV8QFXt7MjI1LCA3M30sIHs0OCwgMTd9fdgApQAOANEApwDSANMAqgDUANUA1gDXAlMA2QB8ANsA
3IAwgCiAd4AlgHSALVZHcm91cDrfEA8AYgJZAA4AgQJaAlsCXABjAl0AZABeAGYCXgJfAmAATwJiAmMC
ZAJlAmYCZwJoAmkCagBnAE8CbQJuAm5bTlNIU2Nyb2xsZXJYTlNzRmxhZ3NcTlNDb3JuZXJWaWV3XxAQ
TlNIZWFkZXJDbGlwVmlld1xOU1Njcm9sbEFtdHNbTlNWU2Nyb2xsZXJdTlNOZXh0S2V5Vmlld11OU0Nv
@ -1732,14 +1732,14 @@ XE5TSGVhZGVyVmlld18QEk5TQWxsb3dzVHlwZVNlbGVjdF8QF05TSW50ZXJjZWxsU3BhY2luZ1dpZHRo
XxAZTlNDb2x1bW5BdXRvcmVzaXppbmdTdHlsZV8QGE5TSW50ZXJjZWxsU3BhY2luZ0hlaWdodFtOU0dy
aWRDb2xvcl8QHE5TRHJhZ2dpbmdTb3VyY2VNYXNrRm9yTG9jYWxeTlNUYWJsZUNvbHVtbnNbTlNSb3dI
ZWlnaHSAeoClEhpAgACAfoCAgJoJgIQjQAgAAAAAAAAjQAAAAAAAAACAfwmADoB9gKIQD4B6gIcjQEEA
AAAAAABfEA9GaWxlT3V0bGluZVZpZXddTlNPdXRsaW5lVmlld1p7MzcxLCAzMDR91wBiAA4AZABlAF4A
AAAAAABfEA9GaWxlT3V0bGluZVZpZXddTlNPdXRsaW5lVmlld1p7MzU3LCAyNDZ91wBiAA4AZABlAF4A
ZgKvAmcCsQBqArIAZwJnAoJbTlNUYWJsZVZpZXeAgYCDgIKADoCBgHzbAGIADgCBAnkAYwBkAnoAXgJ7
AGYCXwB9An0CuQJ/AroCgQKcAGcChAB9ApyAeICngK+AroCAgA6AkYB4gIBZezM3MSwgMTd90gA3ADgC
AGYCXwB9An0CuQJ/AroCgQKcAGcChAB9ApyAeICngK+AroCAgA6AkYB4gIBZezM1NywgMTd90gA3ADgC
wgLDpALDAMQAxQA7XxARTlNUYWJsZUhlYWRlclZpZXfWAGIADgCBAGQAXgBmAH0CxgLHAGoAZwB9gHiA
hoCFgA6AeF8QFHt7MzcyLCAwfSwgezE2LCAxN3190gA3ADgCzALNpALNAMQAxQA7XV9OU0Nvcm5lclZp
hoCFgA6AeF8QFHt7MzU4LCAwfSwgezE2LCAxN3190gA3ADgCzALNpALNAMQAxQA7XV9OU0Nvcm5lclZp
ZXfSAA4APgBvAtCAcKMC0QLSAtOAiICUgJ3aAtUADgLWAtcC2ALZAtoC2wLcAq8AiQLeAt8C4ALhAuIA
sALjAuQCgl5OU0lzUmVzaXplYWJsZVxOU0hlYWRlckNlbGxcTlNJZGVudGlmaWVyV05TV2lkdGhaTlNE
YXRhQ2VsbF5OU1Jlc2l6aW5nTWFza1pOU01pbldpZHRoWk5TTWF4V2lkdGgJgJOAioCJI0BzqZYAAAAA
YXRhQ2VsbF5OU1Jlc2l6aW5nTWFza1pOU01pbldpZHRoWk5TTWF4V2lkdGgJgJOAioCJI0ByyZYAAAAA
gI8jQENMsAAAAAAjQI9AAAAAAACAfFROYW1l1wClAA4A0QCnANIAqgDUAugC6QLqAuABPQCuAu0SBIH+
AICOgIuAiYA7gIzTAA4A7AD3AO8A+QLwgCxLMC4zMzMzMzI5OQDVAA4A6wDsAO0A7gDvAP8A8QL0APOA
LIAvgI2AKV8QD2hlYWRlclRleHRDb2xvctIANwA4AvgC+aUC+QEIAQkAgwA7XxARTlNUYWJsZUhlYWRl
@ -1754,83 +1754,83 @@ QIA9gFKAPYA9gJyAfBIJAAAA1AAOAN8A4ADhAOIDLwDkASSAJyNAKAAAAAAAAIAm2AAOAtYC1wLYAtkC
AKoA1ADVAukDFgM8AT0ArgLtgI6AmICggDuAjFRSYW5r2AClAA4A0QCnANIA0wCqANQC+wDWAoQC/gDZ
AoIDRgDcgDCAkYCQgCWAfBIIAAgAgC3VAA4A6wDsAO0A7gDvA0oA8QNLAPOALICkgKOAKVlncmlkQ29s
b3LTAA4A7AD3AO8A+QNQgCxEMC41ANIANwA4A1IDU6IDUwA7Xk5TQ2xhc3NTd2FwcGVyXxAVe3sxLCAx
N30sIHszNzEsIDMwNH190gA3ADgDVgNXpANXAMQAxQA7Wk5TQ2xpcFZpZXfZAGIB/gAOAIEAZABeAgcA
N30sIHszNTcsIDI0Nn190gA3ADgDVgNXpANXAMQAxQA7Wk5TQ2xpcFZpZXfZAGIB/gAOAIEAZABeAgcA
ZgNZAH0AfQNcA10AagBnA18AfQNhWU5TUGVyY2VudIB4gHiAq4CpgA6AqoB4Iz/scccgAAAAXxAWe3sz
NzIsIDE3fSwgezE1LCAzMDR9fVxfZG9TY3JvbGxlcjrSADcAOANlA2alA2YAwwDEAMUAO1pOU1Njcm9s
NTgsIDE3fSwgezE1LCAyNDZ9fVxfZG9TY3JvbGxlcjrSADcAOANlA2alA2YAwwDEAMUAO1pOU1Njcm9s
bGVy2gBiAf4ADgCBAloAZABeAgcAZgNZAH0AfQNcA2sDbANtAGcDXwB9A3GAeIB4gKuArREBARP/////
gAABAIAOgKqAeCM/7oL54AAAAF8QGXt7LTEwMCwgLTEwMH0sIHszMjgsIDE1fX3SAA4APgBvA3WAcKEC
nICAXxATe3sxLCAwfSwgezM3MSwgMTd9fV8QF3t7MjAsIDEwN30sIHszODgsIDMyMn190gA3ADgDegN7
nICAXxATe3sxLCAwfSwgezM1NywgMTd9fV8QF3t7MjAsIDEwN30sIHszNzQsIDI2NH190gA3ADgDegN7
pAN7AMQAxQA7XE5TU2Nyb2xsVmlld9gAYgAOAIEAgwBkAIUAXgBmAE8BJwN/A4ABmQCJAGcAT4ANgEGA
s4C0CYAOgA1fEBV7ezE4LCA0MH0sIHsxMjksIDE4fX3eAKUADgEwA4YBMQEyATMBNACnANIA0wE1AKoB
NgGfATcBOAOJATkAWAGiATgDjADZAH4BPwCuAaddTlNOb3JtYWxJbWFnZYBAgD2AtoBSgD2AtYAlgLJf
EBJUcmFzaCB0b3JyZW50IGZpbGXTAA4AMgC0ALUAtgOTgB6AHIC32ABiAA4AgQCDAGQAhQBeAGYATwEn
A5cDmAGZAIkAZwBPgA2AQYC5gLoJgA6ADV8QFXt7MTQsIDY0fSwgezE0NiwgMzJ9fdwApQAOATABMQEy
ATQApwDSANMBNQCqATYA1QE3ATgBOQOgATgDogDZAH8BPwHDAUGAQIA9EIGAPYC7gCWAuF8QEVZlcmlm
eSBMb2NhbCBEYXRhWns0MjgsIDU1MX3SADcAOAOoAMSjAMQAxQA7XxAWe3swLCAwfSwgezE2ODAsIDEw
eSBMb2NhbCBEYXRhWns0MTQsIDQ5M33SADcAOAOoAMSjAMQAxQA7XxAWe3swLCAwfSwgezE2ODAsIDEw
Mjh9fVp7MzUwLCAzMjJ90gA3ADgDrAOtogOtADtfEBBOU1dpbmRvd1RlbXBsYXRl0gAOAD4AbwOwgHCv
EBMDsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDw4DDgMaAyIDKgM6A0YDTgNWA14DZ
gNuA3YDfgOGA44DlgOaA6IDq1AAOA8UDxgPHA8gAdwAfA8tdTlNEZXN0aW5hdGlvblhOU1NvdXJjZVdO
U0xhYmVsgMWASoACgMReZkxvY2F0aW9uRmllbGTSADcAOAPOA8+jA88D0AA7XxAUTlNOaWJPdXRsZXRD
b25uZWN0b3JeTlNOaWJDb25uZWN0b3LUAA4DxQPGA8cDyABxAB8D1YDFgBCAAoDHWWZJY29uVmlld9QA
DgPFA8YDxwPIAHsAHwPbgMWAYIACgMlbZkdyb3VwUG9wVXDUAA4DxQPGA8cDyAPfAoID4YDFgMuAfIDN
0gAOADIAMwPkgASAzF8QFUZpbGVPdXRsaW5lQ29udHJvbGxlclpkYXRhU291cmNl1AAOA8UDxgPHA+gA
HwB0A+uA0IACgDeAz18QD3NldERlc3RpbmF0aW9uOtIANwA4A+4D76MD7wPQADtfEBVOU05pYkNvbnRy
b2xDb25uZWN0b3LUAA4DxQPGA8cDyAB2AB8D9IDFgEaAAoDSXxASZkxvY2F0aW9uSW1hZ2VWaWV31AAO
A8UDxgPHA8gAfgAfA/qAxYCygAKA1FxmRGVsZXRlQ2hlY2vUAA4DxQPGA8cD6AAfAHoEAIDQgAKAW4DW
WmNhbmNlbEFkZDrUAA4DxQPGA8cDyAByAB8EBoDFgCGAAoDYXGZTdGF0dXNGaWVsZNQADgPFA8YDxwPI
AHMAHwQMgMWAMoACgNpaZk5hbWVGaWVsZNQADgPFA8YDxwPoAB8AeQQSgNCAAoBVgNxUYWRkOtQADgPF
A8YDxwPIAHgAHwQYgMWAToACgN5bZlN0YXJ0Q2hlY2vUAA4DxQPGA8cD6AAfAi4EHoDQgAKAbYDgXxAR
c2hvd0dyb3Vwc1dpbmRvdzrUAA4DxQPGA8cD6AAfAH8EJIDQgAKAuIDiXxAQdmVyaWZ5TG9jYWxEYXRh
OtQADgPFA8YDxwPIA98CggQqgMWAy4B8gORYZGVsZWdhdGXUAA4DxQPGA8cDyAAfAEEEKoDFgAKAB4Dk
1AAOA8UDxgPHA8gAQQAfBDWAxYAHgAKA51Z3aW5kb3fUAA4DxQPGA8cDyAKCA98EO4DFgHyAy4DpWGZP
dXRsaW5l1AAOA8UDxgPHA8gD3wAfBEGAxYDLgAKA618QD2ZGaWxlQ29udHJvbGxlctIADgA+BEQERYDv
rxAuApwB+wIuAHYAygB4AbUCbQMQAfUBEQBzAH8CSwOAAHUAdwBPAc0BhgB+AEEAegOYAeAC0wKCAHkC
4gFvA98AewLRAV0EaAB0ASkAcQByAIoAfAB9AmIC0gGYAzaAgIBkgG2ARoAjgE6AV4CogJuAY4A0gDKA
uIB2gLSAQoBKgA2AXYBMgLKAB4BbgLqAYoCdgHyAVYCPgEmAy4BggIiARIDtgDeAOYAQgCGAGoB0gHiA
rICUgFCAodIADgAyADMEdoAEgO5dTlNBcHBsaWNhdGlvbtIANwA4BHkCPaICPQA70gAOAD4ERAR8gO+v
EC4AfQHgAfsATwByAE8AeQB9AtIB+wBzAE8ATwB8AH4ATwBPAEEAegB3AE8AHwBPAH8AewKCAH0ATwLR
AHYAHwBPAoIAdQAfAE8AdABPAE8AcQBPAE8AfQKCAHgC04B4gGKAZIANgCGADYBVgHiAlIBkgDKADYAN
gHSAsoANgA2AB4BbgEqADYACgA2AuIBggHyAeIANgIiARoACgA2AfIBCgAKADYA3gA2ADYAQgA2ADYB4
gHyAToCd0gAOAD4ERAStgO+vEC8CnAH7Ai4AdgDKAHgBtQJtAxAB9QERAHMAfwJLA4AAdQB3AE8BzQGG
AH4AQQB6A5gB4ALTAB8CggB5AuID3wFvAHsC0QFdBGgAdAEpAHEAcgB8AH0AigJiAtIBmAM2gICAZIBt
gEaAI4BOgFeAqICbgGOANIAygLiAdoC0gEKASoANgF2ATICygAeAW4C6gGKAnYACgHyAVYCPgMuASYBg
gIiARIDtgDeAOYAQgCGAdIB4gBqArICUgFCAodIADgA+BEQE34DvrxAvBOAE4QTiBOME5ATlBOYE5wTo
BOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0AFME9gT3BPgE+QT6BPsE/AT9BP4E/wUABQEFAgUDBQQFBQUG
EBMDsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDw4DDgMaAyYDNgM+A0YDTgNWA14DZ
gNuA3YDfgOGA44DlgOeA6YDr1AAOA8UDxgPHA8gAcgAfA8tdTlNEZXN0aW5hdGlvblhOU1NvdXJjZVdO
U0xhYmVsgMWAIYACgMRcZlN0YXR1c0ZpZWxk0gA3ADgDzgPPowPPA9AAO18QFE5TTmliT3V0bGV0Q29u
bmVjdG9yXk5TTmliQ29ubmVjdG9y1AAOA8UDxgPHA9IAHwB0A9WAyIACgDeAx18QD3NldERlc3RpbmF0
aW9uOtIANwA4A9gD2aMD2QPQADtfEBVOU05pYkNvbnRyb2xDb25uZWN0b3LUAA4DxQPGA8cDyAPcAB8D
3oDFgMqAAoDM0gAOADIAMwPhgASAy18QFUZpbGVPdXRsaW5lQ29udHJvbGxlcl8QD2ZGaWxlQ29udHJv
bGxlctQADgPFA8YDxwPIAHMAHwPogMWAMoACgM5aZk5hbWVGaWVsZNQADgPFA8YDxwPIAHcAHwPugMWA
SoACgNBeZkxvY2F0aW9uRmllbGTUAA4DxQPGA8cDyAB7AB8D9IDFgGCAAoDSW2ZHcm91cFBvcFVw1AAO
A8UDxgPHA8gAeAAfA/qAxYBOgAKA1FtmU3RhcnRDaGVja9QADgPFA8YDxwPIAHEAHwQAgMWAEIACgNZZ
Zkljb25WaWV31AAOA8UDxgPHA8gAfgAfBAaAxYCygAKA2FxmRGVsZXRlQ2hlY2vUAA4DxQPGA8cDyABB
AB8EDIDFgAeAAoDaVndpbmRvd9QADgPFA8YDxwPIA9wCggQSgMWAyoB8gNxaZGF0YVNvdXJjZdQADgPF
A8YDxwPIAHYAHwQYgMWARoACgN5fEBJmTG9jYXRpb25JbWFnZVZpZXfUAA4DxQPGA8cDyAKCA9wEHoDF
gHyAyoDgWGZPdXRsaW5l1AAOA8UDxgPHA9IAHwB5BCSAyIACgFWA4lRhZGQ61AAOA8UDxgPHA9IAHwIu
BCqAyIACgG2A5F8QEXNob3dHcm91cHNXaW5kb3c61AAOA8UDxgPHA8gD3AKCBDCAxYDKgHyA5lhkZWxl
Z2F0ZdQADgPFA8YDxwPSAB8AegQ2gMiAAoBbgOhaY2FuY2VsQWRkOtQADgPFA8YDxwPSAB8AfwQ8gMiA
AoC4gOpfEBB2ZXJpZnlMb2NhbERhdGE61AAOA8UDxgPHA8gAHwBBBDCAxYACgAeA5tIADgA+BEQERYDv
rxAuAxABmAJiAtMAygLRAW8AdwB/AoIDgAHNAV0C4gB9AfUCnAHgA9wAigEpAHsAeQIuAH4AegByAm0D
mAH7AHUAQQBxAREAdAB4AbUATwBzAksBhgRvAzYAfAB2AtKAm4BQgKyAnYAjgIiASYBKgLiAfIC0gF2A
RICPgHiAY4CAgGKAyoAagDmAYIBVgG2AsoBbgCGAqIC6gGSAQoAHgBCANIA3gE6AV4ANgDKAdoBMgO2A
oYB0gEaAlNIADgAyADMEdoAEgO5dTlNBcHBsaWNhdGlvbtIANwA4BHkCPaICPQA70gAOAD4ERAR8gO+v
EC4C0gB4AH0CggByAoIAdgBPAE8AfQB+AHoAdQLRAE8B+wB9AHsAHwBxAHQATwBPAfsATwBPAE8AfQB/
AeAATwAfAE8AcwBPAE8AeQBBAE8AfAB3AB8C0wBPAE8CgoCUgE6AeIB8gCGAfIBGgA2ADYB4gLKAW4BC
gIiADYBkgHiAYIACgBCAN4ANgA2AZIANgA2ADYB4gLiAYoANgAKADYAygA2ADYBVgAeADYB0gEqAAoCd
gA2ADYB80gAOAD4ERAStgO+vEC8C0gGYAmIC0wDKAzYBbwB3AxAAfwKCA4ABzQFdAuIAfQH1ApwB4APc
AH4AewOYAHkAigEpAHoAcgJtAi4B+wB1AEEAcQB0AHgBtQERAE8AcwJLAYYEbwAfAHwAdgLRgJSAUICs
gJ2AI4ChgEmASoCbgLiAfIC0gF2ARICPgHiAY4CAgGKAyoCygGCAuoBVgBqAOYBbgCGAqIBtgGSAQoAH
gBCAN4BOgFeANIANgDKAdoBMgO2AAoB0gEaAiNIADgA+BEQE34DvrxAvBOAE4QTiBOME5ATlBOYE5wTo
BOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gT3BPgE+QT6BPsE/AT9BP4E/wBTBQEFAgUDBQQFBQUG
BQcFCAUJBQoFCwUMBQ0FDoDzgPSA9YD2gPeA+ID5gPqA+4D8gP2A/oD/gQEAgQEBgQECgQEDgQEEgQEF
gQEGgQEHgAmBAQiBAQmBAQqBAQuBAQyBAQ2BAQ6BAQ+BARCBARGBARKBAROBARSBARWBARaBAReBARiB
ARmBARqBARuBARyBAR2BAR6BAR+BASBfEBFUYWJsZSBIZWFkZXIgVmlld18QEU1lbnUgKE90aGVyVmll
d3MpbxAYAE0AZQBuAHUAIABJAHQAZQBtACAAKABTAGgAbwB3ACAARwByAG8AdQBwAHMgJgApXxAeSW1h
Z2UgVmlldyAoTlNBcHBsaWNhdGlvbkljb24pXxAdVGV4dCBGaWVsZCBDZWxsIChzdGF0dXMgaW5mbylf
EBxDaGVjayBCb3ggKFN0YXJ0IHdoZW4gYWRkZWQpXxARQnV0dG9uIENlbGwgKEFkZClfEBFWZXJ0aWNh
bCBTY3JvbGxlcltCdXR0b24gQ2VsbFlTZXBhcmF0b3JfEBtUZXh0IEZpZWxkIENlbGwgKEZpbGUgTmFt
ZSlfEBdTdGF0aWMgVGV4dCAoRmlsZSBOYW1lKV8QH1B1c2ggQnV0dG9uIChWZXJpZnkgTG9jYWwgRGF0
YSlfEBhUZXh0IEZpZWxkIENlbGwgKEdyb3VwOilfECBCdXR0b24gQ2VsbCAoVHJhc2ggdG9ycmVudCBm
aWxlKV8QGlN0YXRpYyBUZXh0IChEb3dubG9hZCB0bzopXxAXU3RhdGljIFRleHQgKEZpbGUKRmlsZSlc
Q29udGVudCBWaWV3XxAUQnV0dG9uIENlbGwgKENhbmNlbClfEBtUZXh0IEZpZWxkIENlbGwgKEZpbGUK
RmlsZSlfEB5DaGVjayBCb3ggKFRyYXNoIHRvcnJlbnQgZmlsZSlfEBRQdXNoIEJ1dHRvbiAoQ2FuY2Vs
KV8QH0J1dHRvbiBDZWxsIChWZXJpZnkgTG9jYWwgRGF0YSlfEBJQb3AgVXAgQnV0dG9uIENlbGxfEBdU
YWJsZSBDb2x1bW4gKFByaW9yaXR5KVxGaWxlJ3MgT3duZXJfECJGaWxlIE91dGxpbmUgVmlldyAoTmFt
ZSwgREwsIFJhbmspXxARUHVzaCBCdXR0b24gKEFkZClfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2Vs
bCktMV8QF0ZpbGUgT3V0bGluZSBDb250cm9sbGVyXxAeSW1hZ2UgQ2VsbCAoTlNBcHBsaWNhdGlvbklj
b24pXFBvcHVwIEJ1dHRvbl8QE1RhYmxlIENvbHVtbiAoTmFtZSlfEB5UZXh0IEZpZWxkIENlbGwgKERv
d25sb2FkIHRvOilbQXBwbGljYXRpb25fEBdQdXNoIEJ1dHRvbiAoQ2hhbmdlLi4uKV8QF0J1dHRvbiBD
ZWxsIChDaGFuZ2UuLi4pXxAgSW1hZ2UgVmlldyAoTlNBcHBsaWNhdGlvbkljb24pLTFfEBlTdGF0aWMg
VGV4dCAoc3RhdHVzIGluZm8pXxAUU3RhdGljIFRleHQgKEdyb3VwOilbU2Nyb2xsIFZpZXdfECBJbWFn
ZSBDZWxsIChOU0FwcGxpY2F0aW9uSWNvbiktMV8QE0hvcml6b250YWwgU2Nyb2xsZXJfEBRUYWJsZSBD
b2x1bW4gKENoZWNrKV8QHkJ1dHRvbiBDZWxsIChTdGFydCB3aGVuIGFkZGVkKV8QG1RleHQgRmllbGQg
Q2VsbCAoVGV4dCBDZWxsKdIADgA+BEQFP4DvoQKCgHzSAA4APgREBUOA76ECpYB90gAOAD4ERAVHgO+v
EEICnAIuAHYDvQPAAHgBtQJtA7MB9QERAHMDsQB/AksAdQO7Ac0AegLTAuID3wO1A7gBXQB0AIoAcgPC
AZgDNgH7A78DwQDKAxADtAOAA7kAdwBPAYYAfgBBA5gDsgO2AeADtwPDAB8CggB5A7oBbwB7AtECYgRo
ASkAcQB8AH0DvALSA76AgIBtgEaA34DlgE6AV4CogMiAY4A0gDKAw4C4gHaAQoDbgF2AW4CdgI+Ay4DO
gNWARIA3gBqAIYDogFCAoYBkgOOA5oAjgJuAyoC0gNeASoANgEyAsoAHgLqAxoDRgGKA04DqgAKAfIBV
gNmASYBggIiArIDtgDmAEIB0gHiA3YCUgOHSAA4APgREBYyA768QQgWNBY4FjwWQBZEFkgWTBZQFlQWW
gQEGgQEHgQEIgQEJgQEKgQELgQEMgQENgQEOgQEPgQEQgQERgQESgAmBAROBARSBARWBARaBAReBARiB
ARmBARqBARuBARyBAR2BAR6BAR+BASBfEBRUYWJsZSBDb2x1bW4gKENoZWNrKV8QHkJ1dHRvbiBDZWxs
IChTdGFydCB3aGVuIGFkZGVkKV8QE0hvcml6b250YWwgU2Nyb2xsZXJfEBdUYWJsZSBDb2x1bW4gKFBy
aW9yaXR5KV8QHVRleHQgRmllbGQgQ2VsbCAoc3RhdHVzIGluZm8pXxAbVGV4dCBGaWVsZCBDZWxsIChU
ZXh0IENlbGwpXxAgSW1hZ2UgQ2VsbCAoTlNBcHBsaWNhdGlvbkljb24pLTFfEBdTdGF0aWMgVGV4dCAo
RmlsZQpGaWxlKVtCdXR0b24gQ2VsbF8QH1B1c2ggQnV0dG9uIChWZXJpZnkgTG9jYWwgRGF0YSlfECJG
aWxlIE91dGxpbmUgVmlldyAoTmFtZSwgREwsIFJhbmspXxAgQnV0dG9uIENlbGwgKFRyYXNoIHRvcnJl
bnQgZmlsZSlfEBRCdXR0b24gQ2VsbCAoQ2FuY2VsKV8QHlRleHQgRmllbGQgQ2VsbCAoRG93bmxvYWQg
dG86KV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS0xW1Njcm9sbCBWaWV3WVNlcGFyYXRvcl8Q
EVRhYmxlIEhlYWRlciBWaWV3XxASUG9wIFVwIEJ1dHRvbiBDZWxsXxAXRmlsZSBPdXRsaW5lIENvbnRy
b2xsZXJfEB5DaGVjayBCb3ggKFRyYXNoIHRvcnJlbnQgZmlsZSlcUG9wdXAgQnV0dG9uXxAfQnV0dG9u
IENlbGwgKFZlcmlmeSBMb2NhbCBEYXRhKV8QEVB1c2ggQnV0dG9uIChBZGQpXxAeSW1hZ2UgQ2VsbCAo
TlNBcHBsaWNhdGlvbkljb24pXxAXQnV0dG9uIENlbGwgKENoYW5nZS4uLilfEBRQdXNoIEJ1dHRvbiAo
Q2FuY2VsKV8QGVN0YXRpYyBUZXh0IChzdGF0dXMgaW5mbylfEBFWZXJ0aWNhbCBTY3JvbGxlcm8QGABN
AGUAbgB1ACAASQB0AGUAbQAgACgAUwBoAG8AdwAgAEcAcgBvAHUAcABzICYAKV8QEU1lbnUgKE90aGVy
Vmlld3MpXxAaU3RhdGljIFRleHQgKERvd25sb2FkIHRvOilfEB5JbWFnZSBWaWV3IChOU0FwcGxpY2F0
aW9uSWNvbilfEBdQdXNoIEJ1dHRvbiAoQ2hhbmdlLi4uKV8QHENoZWNrIEJveCAoU3RhcnQgd2hlbiBh
ZGRlZClfEBFCdXR0b24gQ2VsbCAoQWRkKV8QG1RleHQgRmllbGQgQ2VsbCAoRmlsZSBOYW1lKVxDb250
ZW50IFZpZXdfEBdTdGF0aWMgVGV4dCAoRmlsZSBOYW1lKV8QGFRleHQgRmllbGQgQ2VsbCAoR3JvdXA6
KV8QG1RleHQgRmllbGQgQ2VsbCAoRmlsZQpGaWxlKVtBcHBsaWNhdGlvblxGaWxlJ3MgT3duZXJfEBRT
dGF0aWMgVGV4dCAoR3JvdXA6KV8QIEltYWdlIFZpZXcgKE5TQXBwbGljYXRpb25JY29uKS0xXxATVGFi
bGUgQ29sdW1uIChOYW1lKdIADgA+BEQFP4DvoQKCgHzSAA4APgREBUOA76ECpYB90gAOAD4ERAVHgO+v
EEIBmADKAW8AfwOAAc0BXQO7A8IDwQKcAeAD3AIuASkAfgB5A5gDtQB6A7YDtwO+AHUBEQB4AHQBtQLS
AxAC0QBPAHMDuQRvAzYDwwB2A7gDsQLTAmIAdwKCA7oC4gOzAH0DtAO8AfUDvQCKAHsDwAByAm0DvwH7
AEEAcQJLA7IBhgAfAHyAUIAjgEmAuIC0gF2ARIDbgOmA54CAgGKAyoBtgDmAsoBVgLqAz4BbgNGA04Dh
gEKANIBOgDeAV4CUgJuAiIANgDKA14DtgKGA64BGgNWAw4CdgKyASoB8gNmAj4DJgHiAzYDdgGOA34Aa
gGCA5YAhgKiA44BkgAeAEIB2gMaATIACgHTSAA4APgREBYyA768QQgWNBY4FjwWQBZEFkgWTBZQFlQWW
BZcFmAWZBZoFmwWcBZ0FngWfBaAFoQWiBaMFpAWlBaYFpwWoBakFqgWrBawFrQWuBa8FsAWxBbIFswW0
BbUFtgW3BbgFuQW6BbsFvAW9Bb4FvwXABcEFwgXDBcQFxQXGBccFyAXJBcoFywXMBc0FzoEBJYEBJoEB
J4EBKIEBKYEBKoEBK4EBLIEBLYEBLoEBL4EBMIEBMYEBMoEBM4EBNIEBNYEBNoEBN4EBOIEBOYEBOoEB
O4EBPIEBPYEBPoEBP4EBQIEBQYEBQoEBQ4EBRIEBRYEBRoEBR4EBSIEBSYEBSoEBS4EBTIEBTYEBToEB
T4EBUIEBUYEBUoEBU4EBVIEBVYEBVoEBV4EBWIEBWYEBWoEBW4EBXIEBXYEBXoEBX4EBYIEBYYEBYoEB
Y4EBZIEBZYEBZhArED4QCxBAED0QERAUEC0QJxA/EAUQQRApEAoQHxAWEBUQLxAyEDUQHhAgEAkQCBA2
EDQQIxA3EB0QBxAzEDgQOxAYEAwQOhBCEBsQHBAiEDwQORBEEC4QExAXEA4QIRAxECwQKBAqEBoQMBBD
Y4EBZIEBZYEBZhAHEA4QQRA7EBYQOBBDECAQKxAiEDUQPhA6EBMQQhAVECcQGhAfEAoQERAJEBQQMBAz
EDEQBRA8EDQQPRALEBsQGBAvECwQDBAuEB0QMhA5ECoQFxAcED8QNhAIECEQNxAtEEAQIxApEB4QRBAo
0gAOAD4AbwYIgHCg0gAOAD4ERAYLgO+g0gAOAD4ERAYOgO+g0gA3ADgGEAYRogYRADteTlNJQk9iamVj
dERhdGEACAAZACIAJwAxADoAPwBEAFIAVABmA0ADRgORA5gDnwOtA78D2wPpA/UEAQQPBBoEKAREBFIE
ZQR3BJEEmwSoBKoErQSvBLIEtQS3BLkEuwS+BMEEwwTGBMgEygTMBM8E0QTUBN0E6QTrBO0FAwUMBRUF
@ -1864,19 +1864,19 @@ wh7EHskeyx7gHuIe5B7mHuge8h7/HwEfBh8PHxQfIx87H0QfTR9YH30fhx+JH4sfjR+PH5Efkx+VH54f
tx/EH80f2B/jIAwgDiAQIBIgFCAXICAgIiAkICYgLyBLIFQgViBZIFsgcSCLIJQgnSCqIMsgzSDPINEg
0yDUINYg2CDwISkhNyE5ITshPSE/IUEhQyFFIUchXCFpIWshbSFvIZAhkiGUIZYhmCGZIZshnSG1IeYh
6CHqIewh7iHwIfIh9CIIIhMiHCIjIjwiRyJQIlUiaCJxInMinCKeIqAioiKkIqYiqCKqIqwiriKwIrIi
tCK2IrgiuiK8Ir4iwCLCItMi4SLqIvIi9CL2Ivgi+iMJIxIjGSMwIz8jUCNSI1QjViNYI2IjcyN1I3cj
eSN7I4cjmCOaI5wjniOgI6kjqyOtI8Uj0CPhI+Mj5SPnI+kj+yQEJAskIyQ0JDYkOCQ6JDwkUSRiJGQk
ZiRoJGokdySIJIokjCSOJJAkmySsJK4ksCSyJLQkwSTSJNQk1iTYJNok5ST2JPgk+iT8JP4lAyUUJRYl
GCUaJRwlKCU5JTslPSU/JUElVSVmJWglaiVsJW4lgSWSJZQlliWYJZoloyW0JbYluCW6JbwlzSXPJdEl
0yXVJdwl7SXvJfEl8yX1Jf4mDyYRJhMmFSYXJikmMiY0JpMmlSaXJpkmmyadJp8moSajJqUmpyapJqsm
tCK2IrgiuiK8Ir4iwCLCItMi4SLqIvIi9CL2Ivgi+iMHIxAjFyMuIz0jTiNQI1IjVCNWI2gjcSN4I5Aj
oSOjI6UjpyOpI7IjtCO2I84j4CPxI/Mj9SP3I/kkBCQVJBckGSQbJB0kLCQ9JD8kQSRDJEUkUSRiJGQk
ZiRoJGokdiSHJIkkiySNJI8kmSSqJKwkriSwJLIkvyTQJNIk1CTWJNgk3yTwJPIk9CT2JPglAyUUJRYl
GCUaJRwlMSVCJUQlRiVIJUolUyVkJWYlaCVqJWwlcSWCJYQlhiWIJYolniWvJbElsyW1JbclwCXRJdMl
1SXXJdkl5CX1Jfcl+SX7Jf0mECYhJiMmJSYnJikmMiY0JpMmlSaXJpkmmyadJp8moSajJqUmpyapJqsm
rSavJrEmsya1JrcmuSa7Jr0mvybBJsMmxSbHJskmyybNJs8m0SbTJtUm1ybZJtsm3SbfJuEm4yblJucm
6SbrJu0m7yb4Jvom/CcKJxMnGCchJyMngieEJ4YniCeKJ4wnjieQJ5InlCeWJ5gnmiecJ54noCeiJ6Qn
pieoJ6onrCeuJ7Ansie0J7YnuCe6J7wnvifAJ8InxCfGJ8gnyifMJ84n0CfSJ9Qn1ifYJ9on3CfeJ+cn
6ShKKEwoTihQKFIoVChWKFgoWihcKF4oYChiKGQoZihoKGoobChuKHAocih0KHYoeCh6KHwofiiAKIIo
hCiGKIgoiiiMKI4okCiSKJQoliiYKJoonCieKKAooiikKKYoqCixKLMpFCkWKRgpGikcKR4pICkiKSQp
JikoKSopLCkuKTEpNCk3KTopPSlAKUMpRilIKUspTilRKVQpVylaKV0pYCljKWYpaSlsKW8pcil1KXgp
eyl+KYEphCmHKYopjSmQKZMppym7Ke4qDyovKk4qYip2KoIqjCqqKsQq5isBKyQrQStbK2grfyudK74r
1Sv3LAwsJiwzLFgsbCyMLKYsxyzULOotCy0XLTEtSy1uLYotoS2tLdAt5i39Lh4uPC5FLkcuSi5MLlUu
JikoKSopLCkuKTEpNCk3KTopPSlAKUMpRilJKUwpTylSKVUpWClbKV4pYSlkKWcpaSlsKW8pcil1KXgp
eyl+KYEphCmHKYopjSmQKZMpqinLKeEp+yobKjkqXCp2KoIqpCrJKuwrAyskK0QrUCtaK24rgyudK74r
yyvtLAEsIiw8LFMsbyyDLLYsyiznLQgtIi1BLVUtcy2ALZottS3TLd8t7C4DLiYuPC5FLkcuSi5MLlUu
Vy5aLlwuZS5nLu4u8C7yLvQu9i74Lvou/C7+LwAvAi8ELwYvCC8KLwwvDi8QLxIvFC8WLxgvGi8cLx4v
IC8iLyQvJi8oLyovLC8uLzAvMi80LzYvOC86LzwvPi9AL0IvRC9GL0gvSi9ML04vUC9SL1QvVi9YL1ov
XC9eL2AvYi9kL2YvaC9qL2wvbi9wL3Ivey99MAQwBzAKMA0wEDATMBYwGTAcMB8wIjAlMCgwKzAuMDEw

File diff suppressed because it is too large Load diff