From 81a326714fb5c1e112e2215fd70b99f3d5b1dd1a Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Sun, 27 Apr 2008 14:31:49 +0000 Subject: [PATCH] disable the create button in the creator window when the tracker address is blank (ignoring anything before "://") --- macosx/Controller.m | 18 +- macosx/CreatorWindowController.h | 2 +- macosx/CreatorWindowController.m | 28 +- macosx/English.lproj/Creator.xib | 741 +++++++------------------------ 4 files changed, 203 insertions(+), 586 deletions(-) diff --git a/macosx/Controller.m b/macosx/Controller.m index cf31bb10e..3efc3d85a 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -954,7 +954,21 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi - (void) controlTextDidChange: (NSNotification *) notification { - [fURLSheetOpenButton setEnabled: ![[fURLSheetTextField stringValue] isEqualToString: @""]]; + if ([notification object] != fURLSheetTextField) + return; + + NSString * string = [fURLSheetTextField stringValue]; + BOOL enable = YES; + if ([string isEqualToString: @""]) + enable = NO; + else + { + NSRange prefixRange = [string rangeOfString: @"://"]; + if (prefixRange.location != NSNotFound && [string length] == NSMaxRange(prefixRange)) + enable = NO; + } + + [fURLSheetOpenButton setEnabled: enable]; } - (void) urlSheetDidEnd: (NSWindow *) sheet returnCode: (int) returnCode contextInfo: (void *) contextInfo @@ -3707,7 +3721,7 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi return; } } - + IOAllowPowerChange(fRootPort, (long) messageArgument); break; diff --git a/macosx/CreatorWindowController.h b/macosx/CreatorWindowController.h index a10bcf760..e617c9171 100644 --- a/macosx/CreatorWindowController.h +++ b/macosx/CreatorWindowController.h @@ -31,7 +31,7 @@ IBOutlet NSImageView * fIconView; IBOutlet NSTextField * fNameField, * fStatusField, * fPiecesField, * fTrackerField, * fLocationField; IBOutlet NSTextView * fCommentView; - IBOutlet NSButton * fPrivateCheck, * fOpenCheck; + IBOutlet NSButton *fCreateButton, * fPrivateCheck, * fOpenCheck; IBOutlet NSView * fProgressView; IBOutlet NSProgressIndicator * fProgressIndicator; diff --git a/macosx/CreatorWindowController.m b/macosx/CreatorWindowController.m index aa9d53274..cb3cb5edc 100644 --- a/macosx/CreatorWindowController.m +++ b/macosx/CreatorWindowController.m @@ -29,6 +29,7 @@ @interface CreatorWindowController (Private) + (NSString *) chooseFile; +- (void) updateEnableCreateButtonForTrackerField; - (void) locationSheetClosed: (NSSavePanel *) openPanel returnCode: (int) code contextInfo: (void *) info; - (void) checkProgress; - (void) failureSheetClosed: (NSAlert *) alert returnCode: (int) code contextInfo: (void *) info; @@ -149,6 +150,7 @@ NSString * tracker; if ((tracker = [fDefaults stringForKey: @"CreatorTracker"])) [fTrackerField setStringValue: tracker]; + [self updateEnableCreateButtonForTrackerField]; if ([fDefaults objectForKey: @"CreatorPrivate"]) [fPrivateCheck setState: [fDefaults boolForKey: @"CreatorPrivate"] ? NSOnState : NSOffState]; @@ -187,6 +189,14 @@ contextInfo: nil]; } +- (void) controlTextDidChange: (NSNotification *) notification +{ + if ([notification object] != fTrackerField) + return; + + [self updateEnableCreateButtonForTrackerField]; +} + - (void) create: (id) sender { NSString * trackerString = [fTrackerField stringValue]; @@ -209,8 +219,6 @@ if ([prefix caseInsensitiveCompare: @"http"] != NSOrderedSame && [prefix caseInsensitiveCompare: @"https"] != NSOrderedSame) [alert setMessageText: NSLocalizedString(@"The tracker address must begin with \"http://\" or \"https://\".", "Create torrent -> warning -> message")]; - else if ([trackerString length] == NSMaxRange(prefixRange)) //don't allow blank addresses - [alert setMessageText: NSLocalizedString(@"The tracker address cannot be blank.", "Create torrent -> warning -> message")]; else [alert setMessageText: NSLocalizedString(@"The tracker address is invalid.", "Create torrent -> warning -> message")]; @@ -292,6 +300,22 @@ return success ? [[panel filenames] objectAtIndex: 0] : nil; } +- (void) updateEnableCreateButtonForTrackerField +{ + NSString * string = [fTrackerField stringValue]; + BOOL enable = YES; + if ([string isEqualToString: @""]) + enable = NO; + else + { + NSRange prefixRange = [string rangeOfString: @"://"]; + if (prefixRange.location != NSNotFound && [string length] == NSMaxRange(prefixRange)) + enable = NO; + } + + [fCreateButton setEnabled: enable]; +} + - (void) locationSheetClosed: (NSSavePanel *) panel returnCode: (int) code contextInfo: (void *) info { if (code == NSOKButton) diff --git a/macosx/English.lproj/Creator.xib b/macosx/English.lproj/Creator.xib index 4d06dd147..3ddbaf059 100644 --- a/macosx/English.lproj/Creator.xib +++ b/macosx/English.lproj/Creator.xib @@ -1,9 +1,9 @@ - + 1050 9C7010 - 629 + 652 949.26 352.00 @@ -12,18 +12,18 @@ YES - com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin YES - CreatorWindowController + CreatorWindowController - FirstResponder + FirstResponder - NSApplication + NSApplication 15 @@ -49,23 +49,22 @@ YES YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type {{20, 239}, {64, 64}} - YES 130560 33554432 - NSImage + NSImage NSApplicationIcon 0 @@ -80,21 +79,20 @@ 266 {{89, 272}, {371, 22}} - YES 67239488 272631808 File Name - LucidaGrande + LucidaGrande 1.800000e+01 16 6 - System + System controlColor 3 @@ -103,7 +101,7 @@ 6 - + System controlTextColor 3 @@ -117,14 +115,13 @@ 266 {{89, 247}, {374, 17}} - YES 67239424 272629760 status info - + LucidaGrande 1.300000e+01 1044 @@ -169,9 +166,8 @@ WebURLsWithTitlesPboardType - {340, 65} + {340, 14} - @@ -203,19 +199,19 @@ YES NSBackgroundColor - NSColor + NSColor YES 6 - + System selectedTextBackgroundColor 6 - + System selectedTextColor @@ -226,7 +222,7 @@ YES YES - + NSColor NSUnderline @@ -241,14 +237,13 @@ 6 - {355, 1e+07} - {83, 65} + {697, 1e+07} + {83, 0} {{1, 1}, {340, 82}} - @@ -263,9 +258,8 @@ 256 {{341, 1}, {15, 82}} - - _doScroller: + _doScroller: 1.000000e+00 @@ -273,17 +267,15 @@ 256 {{-100, -100}, {87, 18}} - 1 - + _doScroller: 1.000000e+00 9.456522e-01 {{103, 120}, {357, 84}} - 18 @@ -295,7 +287,6 @@ 268 {{28, 187}, {70, 17}} - YES 67239424 @@ -312,7 +303,6 @@ 268 {{42, 214}, {56, 17}} - YES 67239424 @@ -329,7 +319,6 @@ 266 {{103, 212}, {357, 22}} - YES -1804468671 @@ -340,13 +329,13 @@ YES 6 - + System textBackgroundColor 6 - + System textColor @@ -357,7 +346,6 @@ 290 {{12, 85}, {456, 5}} - {0, 0} 67239424 @@ -380,14 +368,13 @@ 289 {{388, 53}, {77, 28}} - YES 67239424 134348800 Change... - + LucidaGrande 1.100000e+01 3100 @@ -395,11 +382,11 @@ -2038284033 1 - + LucidaGrande 1.100000e+01 16 - + @@ -412,7 +399,6 @@ 292 {{17, 60}, {81, 17}} - YES 67239424 @@ -429,7 +415,6 @@ 290 {{123, 45}, {265, 30}} - YES 67239424 @@ -448,23 +433,22 @@ YES YES - - - - - - + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type {{103, 60}, {16, 16}} - YES 130560 33554432 - + NSImage TransmissionDocument.icns 0 @@ -479,7 +463,6 @@ 292 {{103, 96}, {65, 18}} - YES 67239424 @@ -490,14 +473,14 @@ 1211912703 2 - + NSImage NSSwitch NSSwitch - - + + 200 25 @@ -507,10 +490,9 @@ 289 {{385, 12}, {81, 32}} - YES - 67239424 + 604110336 134217728 Create @@ -518,7 +500,7 @@ -2038284033 1 - + DQ 200 25 @@ -529,18 +511,17 @@ 289 {{303, 12}, {82, 32}} - YES 67239424 134217728 - Cancel + Cancel -2038284033 1 - + Gw 200 25 @@ -551,7 +532,6 @@ 290 {{169, 98}, {294, 17}} - YES 67239424 @@ -568,7 +548,6 @@ 292 {{102, 21}, {144, 18}} - YES -2080244224 @@ -579,8 +558,8 @@ 1211912703 2 - - + + 200 25 @@ -588,7 +567,6 @@ {480, 313} - {{0, 0}, {1680, 1028}} {430, 307} @@ -618,13 +596,13 @@ 67239424 134217728 - + Cancel -2038284033 1 - + @@ -795,6 +773,22 @@ 65 + + + delegate + + + + 86 + + + + fCreateButton + + + + 87 + @@ -1199,6 +1193,7 @@ 25.ImportedFromIB2 26.IBPluginDependency 26.ImportedFromIB2 + 5.IBEditorWindowLastContentRect 5.IBPluginDependency 5.IBWindowTemplateEditedContentRect 5.ImportedFromIB2 @@ -1229,42 +1224,43 @@ YES - - - + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - - {{432, 603}, {480, 313}} + {{0, 682}, {480, 313}} + com.apple.InterfaceBuilder.CocoaPlugin + {{0, 682}, {480, 313}} {{432, 603}, {480, 313}} @@ -1272,23 +1268,23 @@ {3.40282e+38, 3.40282e+38} {430, 285} - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin @@ -1312,547 +1308,130 @@ - 85 + 87 YES - - + CreatorWindowController + NSWindowController YES - + YES + cancelCreateProgress: + cancelCreateWindow: + create: + setLocation: YES + id + id + id + id YES - + YES + fCommentView + fCreateButton + fIconView + fLocationField + fNameField + fOpenCheck + fPiecesField + fPrivateCheck + fProgressIndicator + fProgressView + fStatusField + fTrackerField YES + NSTextView + NSButton + NSImageView + NSTextField + NSTextField + NSButton + NSTextField + NSButton + NSProgressIndicator + NSView + NSTextField + NSTextField - IBProjectSource - macosx/NSApplicationAdditions.h + IBProjectSource + macosx/CreatorWindowController.h - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - + CreatorWindowController + NSWindowController - IBUserSource - + IBUserSource + - NSObject - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - + FirstResponder - - macosx/UKKQueue/UKMainThreadProxy.h + IBUserSource + - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - + NSApplication - - macosx/UKKQueue/UKFileWatcher.h + IBProjectSource + macosx/NSApplicationAdditions.h - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - + NSMenu - - macosx/IPCController.h + IBProjectSource + macosx/NSMenuAdditions.h - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - + NSObject - - macosx/UKKQueue/UKKQueue.h + IBProjectSource + macosx/IPCController.h - - NSWindowController - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - + NSObject - - + IBProjectSource + macosx/UKKQueue/UKFileWatcher.h - CreatorWindowController - NSWindowController - - YES - - YES - cancelCreateProgress: - cancelCreateWindow: - create: - setLocation: - - - YES - id - - - - - - - YES - - YES - fCommentView - fIconView - fLocationField - fNameField - fOpenCheck - fPiecesField - fPrivateCheck - fProgressIndicator - fProgressView - fStatusField - fTrackerField - - - YES - NSTextView - NSImageView - NSTextField - - NSButton - - - NSProgressIndicator - NSView - - - - + NSObject - - macosx/CreatorWindowController.h + IBProjectSource + macosx/UKKQueue/UKKQueue.h - NSMenu - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - + NSObject - - macosx/NSMenuAdditions.h + IBProjectSource + macosx/UKKQueue/UKMainThreadProxy.h 0 - ../../../Transmission.xcodeproj + ../../Transmission.xcodeproj 3 - - YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA -AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBgQALAAwAMQA1ADYAPAA9 -AEIAYABhAGIAYwBnAGsAbABtAAsAegCOAJ4ApwCoAKkAqgCrAKwArQCxALIAwQDGAMcAyADLAM4A1ADd -AN4A6wDsAPQA9QD4AQIBAwEEAQkBCwEQAREBFAEYARsBIwEkAS0BLgEzAUUBSwFcAWABcgGGAYcBiACr -AYkBigGLAYwApwCoAY0AqQCqAY4ArAGPAZABkQGSAZsBowGnAaoBrgGyAbYBuAG6AckBzADfAPkB1QHa -AdsB4AHhAeQB7AC+Ae0B8QH0AfUB9gH5AfoB/wIAAgICBQIRAhICEwIWAiACIQIiAiUCLQIuAjUCNgI+ -Aj8CRgJHAk8CUAJbAlwCYQJiAmcCaAJ4AnkCegKAAoEChAKHApACkQKkAqUCqgGpAq0CrwKyArUCvgK/ -AsYCxwLPAtAC2ALZAuMC7ALtAvEC9QL2Av4C/wMKAwsDDwMQAw8DFAMXAx8DIAMpAyoDKwMzAzQDPAM9 -Az4DRgNHA08DUANYA1kDYgNjAAsDZANmA2cAawNoA2kDbAOAA4gDkwOcA54DoQOiA6UDpgOqA68DsAO1 -A7sDwwPEA8wDzgPVA9YD3QPeA98A0wPhA+QD5QPqA+sD8APxA/QD+QP6A/8EAAQFBAYECwQMBBEEEgQX -BBgEHQQeBCMEJAQpBCoELwQwBDUENgQ7BDwEbARwBHEEdAR1BHcEpwTYBQkFCgULBQwFDQUOAGYFDwUQ -BREFEgUTBRQFFQUWBRcFGAUZBRoFGwUcBR0FHgUfBSAFIQUiBSMFJAUlBSYFJwUoBSkFKgUrBSwFLQUu -BS8FMAUxBTIFMwU0BTUFNgU5BTwFfgXABcEFwgXDAT0FxAXFBcYFxwXIBckFygXLBcwCmwXNBc4FzwXQ -BdEF0gXTBdQF1QXWBdcF2AXZAPMF2gXbBdwF3QXeAF0F3wXgBeEA/wXiBeMF5AXlBeYF5wXoBekF6gXr -BewF7QXuBe8F8AXxBfIF8wX0BfUF9gX3BfgF+QX6Bf0GAAYDVSRudWxs3xASAA0ADgAPABAAEQASABMA -FAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwVk5T -Um9vdFYkY2xhc3NdTlNPYmplY3RzS2V5c18QD05TQ2xhc3Nlc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0 -eU9pZHNWYWx1ZXNdTlNDb25uZWN0aW9uc1tOU05hbWVzS2V5c1tOU0ZyYW1ld29ya11OU0NsYXNzZXNL -ZXlzWk5TT2lkc0tleXNdTlNOYW1lc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNdTlNG -b250TWFuYWdlcl8QEE5TVmlzaWJsZVdpbmRvd3NfEA9OU09iamVjdHNWYWx1ZXNfEBdOU0FjY2Vzc2li -aWxpdHlPaWRzS2V5c1lOU05leHRPaWRcTlNPaWRzVmFsdWVzgAKBAYCBAQOBATuBAX+Ay4EBCoAFgQE6 -gQE8gQELgQF9gACABoEBCYEBfhBXgQE90gAOADIAMwA0W05TQ2xhc3NOYW1lgASAA18QF0NyZWF0b3JX -aW5kb3dDb250cm9sbGVy0gA3ADgAOQA6WCRjbGFzc2VzWiRjbGFzc25hbWWiADoAO15OU0N1c3RvbU9i -amVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSAA4APgA/AEBaTlMub2JqZWN0c4AaoQBBgAff -EA8AQwAOAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBe -AF9cTlNXaW5kb3dWaWV3XxAWTlNXaW5kb3dDb250ZW50TWF4U2l6ZVxOU1NjcmVlblJlY3RfEBNOU0Zy -YW1lQXV0b3NhdmVOYW1lXU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NfEBZOU1dp -bmRvd0NvbnRlbnRNaW5TaXplXE5TV2luZG93UmVjdFlOU01heFNpemVfEA9OU1dpbmRvd0JhY2tpbmdf -EBFOU1dpbmRvd1N0eWxlTWFza1lOU01pblNpemVbTlNWaWV3Q2xhc3OAD4DKgA2AxoDJgAkScHgAAIAK -gA6ACIDIEAIQD4DHgAtfEBh7ezQzMiwgNjAzfSwgezQ4MCwgMzEzfX1fEA9Ub3JyZW50IENyZWF0b3JY -TlNXaW5kb3fSAA4AZABlAGZZTlMuc3RyaW5ngAxUVmlld9IANwA4AGgAaaMAaQBqADtfEA9OU011dGFi -bGVTdHJpbmdYTlNTdHJpbmdfEBp7My40MDI4MmUrMzgsIDMuNDAyODJlKzM4fVp7NDMwLCAyODV91wBu -AA4AbwBwAHEAYgByAHMAdAB1AHYAdwBzAHlfEA9OU05leHRSZXNwb25kZXJaTlNTdWJ2aWV3c1hOU3ZG -bGFnc1tOU0ZyYW1lU2l6ZVtOU1N1cGVydmlld4AQgMWAEREBAIDDgBCAxNIADgA+AHsAfIBXrxARAH0A -fgB/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjYASgCOANIA5gHmAfYCBgImAkICagJ6AooCogLGA -toC7gL/aAG4ADgCPAJAAkQCSAHAAkwBiAHIAUQCVAJYAlwCYAJkAmgCXAHMAUVdOU0ZyYW1lWk5TRWRp -dGFibGVWTlNDZWxsW05TRHJhZ1R5cGVzWU5TRW5hYmxlZIAPgCKAGwmAHIATEQEMCYAQgA/SAA4APgA/ -AKCAGqYAoQCiAKMApAClAKaAFIAVgBaAF4AYgBlfEBlBcHBsZSBQREYgcGFzdGVib2FyZCB0eXBlXxAZ -QXBwbGUgUE5HIHBhc3RlYm9hcmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZV8QMU5lWFQgRW5j -YXBzdWxhdGVkIFBvc3RTY3JpcHQgdjEuMiBwYXN0ZWJvYXJkIHR5cGVfEB5OZVhUIFRJRkYgdjQuMCBw -YXN0ZWJvYXJkIHR5cGVfEBpBcHBsZSBQSUNUIHBhc3RlYm9hcmQgdHlwZdIANwA4AK4Ar6MArwCwADtc -TlNNdXRhYmxlU2V0VU5TU2V0XxAVe3syMCwgMjM5fSwgezY0LCA2NH192ACzAA4AtAC1ALYAtwC4ALkA -ugC7ALwAvQC8AL4AvwDAW05TQ2VsbEZsYWdzV05TU3R5bGVaTlNDb250ZW50c1dOU0FsaWduV05TU2Nh -bGVcTlNDZWxsRmxhZ3MyWk5TQW5pbWF0ZXMSAAH+AIAhEACAHRABEgIAAAAI0wAOADIAwgDDAMQAxV5O -U1Jlc291cmNlTmFtZYAggB6AH1dOU0ltYWdlXxARTlNBcHBsaWNhdGlvbkljb27SADcAOADJAMqiAMoA -O18QEE5TQ3VzdG9tUmVzb3VyY2XSADcAOADMAM2jAM0AkQA7W05TSW1hZ2VDZWxs0gA3ADgAzwDQpQDQ -ANEA0gDTADtbTlNJbWFnZVZpZXdZTlNDb250cm9sVk5TVmlld1tOU1Jlc3BvbmRlctgAbgAOAI8AkQBw -AJMAYgByAFEA1gDXANgA2QCXAHMAUYAPgDOAJIAlEQEKCYAQgA9fEBZ7ezg5LCAyNzJ9LCB7MzcxLCAy -Mn192ACzAA4A3wC1AOAA4QC4AOIA4wDkAOUA5gDnAH4A6QDqXxARTlNCYWNrZ3JvdW5kQ29sb3JZTlNT -dXBwb3J0XU5TQ29udHJvbFZpZXdbTlNUZXh0Q29sb3ISBAH+QIAygCqAJoAngCMSEEAIAIAvWUZpbGUg -TmFtZdQADgDtAO4A7wDwAPEA8gDzVk5TU2l6ZVZOU05hbWVYTlNmRmxhZ3OAKSNAMgAAAAAAAIAoEBBc -THVjaWRhR3JhbmRl0gA3ADgA9gD3ogD3ADtWTlNGb2501QAOAPkA+gD7APwA/QD+AP8BAAEBV05TQ29s -b3JcTlNDb2xvclNwYWNlW05TQ29sb3JOYW1lXU5TQ2F0YWxvZ05hbWWALoAtEAaALIArVlN5c3RlbVxj -b250cm9sQ29sb3LTAA4A+gEFAP0BBwEIV05TV2hpdGWALhADSzAuNjY2NjY2NjkA0gA3ADgBCgD5ogD5 -ADvVAA4A+QD6APsA/AD9AQ0A/wEOAQGALoAxgDCAK18QEGNvbnRyb2xUZXh0Q29sb3LTAA4A+gEFAP0B -BwETgC5CMADSADcAOAEVARakARYBFwCRADtfEA9OU1RleHRGaWVsZENlbGxcTlNBY3Rpb25DZWxs0gA3 -ADgBGQEapQEaANEA0gDTADtbTlNUZXh0RmllbGTYAG4ADgCPAJEAcACTAGIAcgBRANYBHgEfANkAlwBz -AFGAD4AzgDWANgmAEIAPXxAWe3s4OSwgMjQ3fSwgezM3NCwgMTd9fdgAswAOAN8AtQDgAOEAuADiASUA -5ADlASgBKQB/ASsA6hIEAf4AgDKAKoA3gDiANBIQQAAAgC9bc3RhdHVzIGluZm/UAA4A7QDuAO8A8AEw -APIBMoApI0AqAAAAAAAAgCgRBBTcAG4BNAAOAI8BNQBvAHAAYgByATYBNwE4AFEBOgE7ATwBPQE+AT8A -cwBRAUIBQwFDW05TSFNjcm9sbGVyWE5Tc0ZsYWdzW05TVlNjcm9sbGVyXU5TTmV4dEtleVZpZXddTlND -b250ZW50Vmlld4APgHWAeIB3EBKAOhEBEoAQgA+AcYA7gDvSAA4APgB7AUeAV6MBQwFCATqAO4BxgHXc -AG4ADgCPAUwBTQBvAHABTgBiAU8AcgE3AIABUQFSAVMBVAFVAVYBVwBzAVkAgAFXWE5TQ3Vyc29yWU5T -Y3ZGbGFnc1lOU0RvY1ZpZXdZTlNCR0NvbG9ygDmAcIBsgG0QBIA8EQkAgD2AEIBbgDmAPdIADgA+AHsB -XoBXoQFXgD3dAG4ADgFhAWIBYwCSAHAAcQBMAGIBZAByAWUBQwFnAWgA/wFpAWoBawFsAW0AcwFvAUMA -K18QD05TVGV4dENvbnRhaW5lcllOU1RWRmxhZ3NcTlNTaGFyZWREYXRhWE5TTWluaXplWk5TRGVsZWdh -dGWAO4BrgFGAWoA+EQkSgFCAaYAQgGqAO4AA0gAOAD4APwF0gBqvEBEBdQF2AXcBeAF5AXoBewF8AX0B -fgF/AYABgQGCAYMBhAGFgD+AQIBBgEKAQ4BEgEWARoBHgEiASYBKgEuATIBNgE6AT18QGU5lWFQgUlRG -RCBwYXN0ZWJvYXJkIHR5cGVfEBJOU1N0cmluZ1Bib2FyZFR5cGVfEBpOZVhUIHJ1bGVyIHBhc3RlYm9h -cmQgdHlwZV8QGUFwcGxlIFVSTCBwYXN0ZWJvYXJkIHR5cGVfECNDb3JlUGFzdGVib2FyZEZsYXZvclR5 -cGUgMHg2RDZGNkY3Nl8QG1dlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZV8QI0NvcmVQYXN0ZWJvYXJk -Rmxhdm9yVHlwZSAweDc1NzI2QzIwXxAaQXBwbGUgSFRNTCBwYXN0ZWJvYXJkIHR5cGVfEBdOU0NvbG9y -IHBhc3RlYm9hcmQgdHlwZV8QGU5lWFQgZm9udCBwYXN0ZWJvYXJkIHR5cGVfECpOZVhUIFJpY2ggVGV4 -dCBGb3JtYXQgdjEuMCBwYXN0ZWJvYXJkIHR5cGVZezM0MCwgNjV91QGTAA4BlAGVAZYAvgGXAVcBmQGa -WU5TVENGbGFnc1pOU1RleHRWaWV3V05TV2lkdGhfEA9OU0xheW91dE1hbmFnZXKAWYA9I0B1QAAAAAAA -gFLVAA4BnAGdAZ4BZQGfAaABoQD/ACtfEBBOU1RleHRDb250YWluZXJzXU5TVGV4dFN0b3JhZ2VZTlNM -TUZsYWdzgFiAVoBTgADTAA4AagFlAaQBpQArgFWAVIAA0gAOAGQAZQGpgAxQ0gA3ADgBqwGdpAGdAawB -rQA7XxAZTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZ18QEk5TQXR0cmlidXRlZFN0cmluZ9IADgA+AHsB -sIBXoQFogFHSADcAOAGzAbSjAbQBtQA7Xk5TTXV0YWJsZUFycmF5V05TQXJyYXnSADcAOAG3AZaiAZYA -O9IANwA4AbkBYaIBYQA72AAOAbsBvAG9AN8BvgG/AcABwQHCACsBDQFZAcYAKwHIV05TRmxhZ3NfEBdO -U0RlZmF1bHRQYXJhZ3JhcGhTdHlsZV8QEE5TSW5zZXJ0aW9uQ29sb3JfEBROU1NlbGVjdGVkQXR0cmli -dXRlc18QEk5TTWFya2VkQXR0cmlidXRlc18QEE5TTGlua0F0dHJpYnV0ZXOAaBEr54AAgDGAW4BcgACA -ZNMADgD6AQUA/QEHAcuALkIxANMADgHNAD4BzgHPAdJXTlMua2V5c4BjogHQAdGAXYBeogHTAdSAX4Bh -1QAOAPkA+gD7APwA/QD+AP8B2AEBgC6ALYBggCtfEBtzZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3LV -AA4A+QD6APsA/AD9AQ0A/wHeAQGALoAxgGKAK18QEXNlbGVjdGVkVGV4dENvbG9y0gA3ADgB4gHjogHj -ADtcTlNEaWN0aW9uYXJ50wAOAc0APgHOAeYB6YBjogHnAdGAZYBeogHqAeuAZoBnW05TVW5kZXJsaW5l -0wAOAPoB7gD9AL4B8FVOU1JHQoAuRjAgMCAxANIANwA4AfIB86IB8wA7XxAUTlNUZXh0Vmlld1NoYXJl -ZERhdGFcezM1NSwgMWUrMDd9WHs4MywgNjV90gA3ADgB9wGUpQGUAfgA0gDTADtWTlNUZXh0XxATe3sx -LCAxfSwgezM0MCwgODJ9fdMADgH7AfwB/QH+AL5ZTlNIb3RTcG90XE5TQ3Vyc29yVHlwZYBvgG5XezQs -IC01fdIANwA4AgEBTKIBTAA70gA3ADgCAwIEpAIEANIA0wA7Wk5TQ2xpcFZpZXfZAG4CBgAOAI8AcABi -AgcAcgIIAIAAgAILAgwAdgBzAg4AgAIQWE5TVGFyZ2V0WE5TQWN0aW9uWk5TQ3VyVmFsdWWAOYA5gHSA -coAQgHOAOSM/8AAAAAAAAF8QFHt7MzQxLCAxfSwgezE1LCA4Mn19XF9kb1Njcm9sbGVyOtIANwA4AhQC -FaUCFQDRANIA0wA7Wk5TU2Nyb2xsZXLbAG4CBgAOAI8BNQBwAGICBwByAggCFwCAAIACCwIbAL4AdgBz -Ag4AgAIQAh9ZTlNQZXJjZW50gDmAOYB0gHaAEIBzgDkjP+5CyGAAAABfEBh7ey0xMDAsIC0xMDB9LCB7 -ODcsIDE4fX1fEBd7ezEwMywgMTIwfSwgezM1NywgODR9fdIANwA4AiMCJKQCJADSANMAO1xOU1Njcm9s -bFZpZXfYAG4ADgCPAJEAcACTAGIAcgBRANYCKAIpAJoAlwBzAFGAD4AzgHqAewmAEIAPXxAVe3syOCwg -MTg3fSwgezcwLCAxN3192ACzAA4A3wC1AOAA4QC4AOIBJQDkAOUCMQEpAIEBKwDqgDKAKoB8gDiAeYAv -WENvbW1lbnQ62ABuAA4AjwCRAHAAkwBiAHIAUQDWAjkCOgCaAJcAcwBRgA+AM4B+gH8JgBCAD18QFXt7 -NDIsIDIxNH0sIHs1NiwgMTd9fdgAswAOAN8AtQDgAOEAuADiASUA5ADlAkIBKQCCASsA6oAygCqAgIA4 -gH2AL1hUcmFja2VyOtgAbgAOAI8AkQBwAJMAYgByAFEA1gJKAksA2QCXAHMAUYAPgDOAgoCDCYAQgA9f -EBd7ezEwMywgMjEyfSwgezM1NywgMjJ9fdkAswAOAN8AtQDgAOEAuAJRAOICUgDkAlQCVQEpAIMCWACX -AlpfEBFOU0RyYXdzQmFja2dyb3VuZBP/////lHH+QYAygIWAhIA4gIESEEAEAAmAh1dodHRwOi8v1QAO -APkA+gD7APwA/QFZAP8CXwEBgC6AW4CGgCtfEBN0ZXh0QmFja2dyb3VuZENvbG9y1QAOAPkA+gD7APwA -/QENAP8CZQEBgC6AMYCIgCtZdGV4dENvbG9y3ABuAmkADgJqAI8CawBwAmwAYgJtAm4AcgBRAFwCcAJx -AnIAwAJ0AQcAcwJ2ALwAUVlOU0JveFR5cGVbTlNUaXRsZUNlbGxdTlNUcmFuc3BhcmVudFxOU0JvcmRl -clR5cGVZTlNPZmZzZXRzXxAPTlNUaXRsZVBvc2l0aW9ugA+Aj4CMgIoIEQEigBCAi4APXxAUe3sxMiwg -ODV9LCB7NDU2LCA1fX1WezAsIDB91wCzAA4A3wC1AOAAuADiASUA5AJUAn0BKQC8An+AMoCFgI2AOICO -U0JveNMADgD6AQUA/QEHAoOALk0wIDAuODAwMDAwMDEA0gA3ADgChQKGpAKGANIA0wA7VU5TQm942ABu -AA4AjwCRAHAAkwBiAHIAUQKJAooCiwKMAJcAcwBRgA+AmYCRgJIRASEJgBCAD18QFXt7Mzg4LCA1M30s -IHs3NywgMjh9fd0AswAOApICkwKUApUClgC1AOAA4QKXALgCmAElApkCmgKbAL4CnAKdAp4CnwCFAqEC -ogKjXxATTlNBbHRlcm5hdGVDb250ZW50c18QEk5TUGVyaW9kaWNJbnRlcnZhbF5OU0J1dHRvbkZsYWdz -Ml8QEE5TQWx0ZXJuYXRlSW1hZ2VfEA9OU0tleUVxdWl2YWxlbnRfEA9OU1BlcmlvZGljRGVsYXldTlNC -dXR0b25GbGFnc4CYgJYQGYCVgJeAk4CUgJAQyBIIAgAAE/////+GgkD/WUNoYW5nZS4uLtQADgDtAO4A -7wDwAqcA8gKpgCkjQCYAAAAAAACAKBEMHNQADgDtAO4A7wDwAqcA8gDzgCmAKNIADgBkAGUBqYAM0gA3 -ADgCsAKxpAKxARcAkQA7XE5TQnV0dG9uQ2VsbNIANwA4ArMCtKUCtADRANIA0wA7WE5TQnV0dG9u2ABu -AA4AjwCRAHAAkwBiAHIAUQDWArgCuQK6AJcAcwBRgA+AM4CbgJwRASQJgBCAD18QFHt7MTcsIDYwfSwg -ezgxLCAxN3192ACzAA4A3wC1AOAA4QC4AOIBJQDkAOUCwgEpAIYBKwDqgDKAKoCdgDiAmoAvXVRvcnJl -bnQgRmlsZTrYAG4ADgCPAJEAcACTAGIAcgBRANYCygLLAnQAlwBzAFGAD4AzgJ+AoAmAEIAPXxAWe3sx -MjMsIDQ1fSwgezI2NSwgMzB9fdgAswAOAN8AtQDgAOEAuADiASUA5ADlAtMCnwCHAtYA6oAygCqAoYCU -gJ4SEEICAIAvWUZpbGUKRmlsZdoAbgAOAI8AkACRAJIAcACTAGIAcgBRAJUC3ACXAt4C3wK6AJcAcwBR -gA+AIoCkCYClgKMJgBCAD9IADgA+AD8C5YAapgChAKIAowCkAKUApoAUgBWAFoAXgBiAGV8QFXt7MTAz -LCA2MH0sIHsxNiwgMTZ9fdgAswAOALQAtQC2ALcAuAC5ALoAuwC8Au8AvAC+AL8AwIAhgKYI0wAOADIA -wgDDAMQC9IAggB6Ap18QGVRyYW5zbWlzc2lvbkRvY3VtZW50LmljbnPYAG4ADgCPAJEAcACTAGIAcgBR -AokC+QL6AroAlwBzAFGAD4CZgKmAqgmAEIAPXxAVe3sxMDMsIDk2fSwgezY1LCAxOH193gCzAA4CkgMA -ApMClAKVApYAtQDgAOEClwC4ApgBJQKZApoDAwKbAFwDBAKaAwYBKQCJAqEAvAMJXU5TTm9ybWFsSW1h -Z2WAmICWgKyAroCWgKuAOICoEkg8Uf9XUHJpdmF0ZdMADgAyAMIAwwDEAw6AIIAegK1YTlNTd2l0Y2jS -AA4DEQMSAxNbTlNJbWFnZU5hbWWAsICv0gA3ADgDFQMWogMWADtfEBNOU0J1dHRvbkltYWdlU291cmNl -2ABuAA4AjwCRAHAAkwBiAHIAUQKJAxoDGwKMAJcAcwBRgA+AmYCygLMJgBCAD18QFXt7Mzg1LCAxMn0s -IHs4MSwgMzJ9fd0AswAOApICkwKUApUClgC1AOAA4QKXALgCmAElApkCmgKbAL4BKQMkAyUBKQCKAqED -KAKjgJiAloA4gLWAtIA4gLESCAAAAFZDcmVhdGVRDdgAbgAOAI8AkQBwAJMAYgByAFECiQMuAy8CjACX -AHMAUYAPgJmAt4C4CYAQgA9fEBV7ezMwMywgMTJ9LCB7ODIsIDMyfX3dALMADgKSApMClAKVApYAtQDg -AOEClwC4ApgBJQKZApoCmwC+ASkDOAM5ASkAiwKhAygCo4CYgJaAOIC6gLmAOIC2VkNhbmNlbFEb2ABu -AA4AjwCRAHAAkwBiAHIAUQDWA0EDQgJ0AJcAcwBRgA+AM4C8gL0JgBCAD18QFnt7MTY5LCA5OH0sIHsy -OTQsIDE3fX3YALMADgDfALUA4ADhALgA4gElAOQA5QNKASkAjANNAOqAMoAqgL6AOIC7EgRAAACAL1pw -aWVjZSBpbmZv2ABuAA4AjwCRAHAAkwBiAHIAUQKJA1MDVAK6AJcAcwBRgA+AmYDAgMEJgBCAD18QFnt7 -MTAyLCAyMX0sIHsxNDQsIDE4fX3dALMADgKSApMClAKVApYAtQDgAOEClwC4ApgDWgKZApoCmwBcAwQC -mgNfASkAjQKhALwDCRP/////hAH+AICYgJaAroCWgMKAOIC/XxART3BlbiB3aGVuIGNyZWF0ZWRaezQ4 -MCwgMzEzfdIANwA4A2UA0qMA0gDTADtfEBZ7ezAsIDB9LCB7MTY4MCwgMTAyOH19Wns0MzAsIDMwN31e -VG9ycmVudENyZWF0b3LSADcAOANqA2uiA2sAO18QEE5TV2luZG93VGVtcGxhdGXSAA4APgB7A26AV68Q -EQNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A3+AzIDVgNeA5oDogOuA7YDvgPGA84D1gPeA -+YD7gP2A/4EBAdQADgOBA4IDgwOEA4UAHwOHXU5TRGVzdGluYXRpb25YTlNTb3VyY2VXTlNMYWJlbIDU -gM2AAoDT2ABuAA4AjwOJAHADigByA4sDjAONA44CEAOPA5ADjAOSWk5TTWF4VmFsdWVZTlNwaUZsYWdz -XE5TRHJhd01hdHJpeIDOgNKA0REFChFADIDOgM/XAG4ADgBvAHAAcQAyA5QAKwOWA5cDmAOZA5oDm1tO -U0V4dGVuc2lvboAAgOSA2BP/////gAABAIDhgOKA49EADgOdgNDSADcAOAOfA6CiA6AAO1pOU1BTTWF0 -cml4XxAVe3sxOCwgMTh9LCB7MjM0LCAyMH190gA3ADgDowOkpAOkANIA0wA7XxATTlNQcm9ncmVzc0lu -ZGljYXRvcl8QEmZQcm9ncmVzc0luZGljYXRvctIANwA4A6cDqKMDqAOpADtfEBROU05pYk91dGxldENv -bm5lY3Rvcl5OU05pYkNvbm5lY3RvctQADgOBA4IDgwOEAIwAHwOugNSAu4ACgNZcZlBpZWNlc0ZpZWxk -1AAOA4EDggODA4QDjAAfA7SA1IDOgAKA5dIADgA+AHsDt4BXowOFA7kDuoDNgNmA3dcAbgAOAI8AkQBw -AJMAcgOMAokDvgO/A8AAlwOMgM6AmYDagNsRAQEJgM5fEBV7ezI1MiwgMTJ9LCB7ODIsIDMyfX3dALMA -DgKSApMClAKVApYAtQDgAOEClwC4ApgBJQKZApoCmwC+ASkDyAM5ASkDuQKhAygCo4CYgJaAOIDcgLmA -OIDZ0gAOAGQAZQGpgAzXAG4ADgCPAJEAcACTAHIDjADWA9ED0gCaAJcDjIDOgDOA3oDfCYDOXxAVe3sx -NywgNDd9LCB7MTQyLCAxN3192ACzAA4A3wC1AOAA4QC4AOIBJQDkAOUD2QEpA7oBKwDqgDKAKoDggDiA -3YAvbxAWAEMAcgBlAGEAdABpAG4AZwAgAHQAbwByAHIAZQBuAHQAIABmAGkAbABlICZZezM0OCwgODR9 -0gAOAGQAZQDSgAzSADcAOAPiA+OkA+MA0gDTADtcTlNDdXN0b21WaWV3XWZQcm9ncmVzc1ZpZXfUAA4D -gQOCA4MDhACJAB8D6YDUgKiAAoDnXWZQcml2YXRlQ2hlY2vUAA4DgQOCA4MD7AAfA7kD74DqgAKA2YDp -XxAVY2FuY2VsQ3JlYXRlUHJvZ3Jlc3M60gA3ADgD8gPzowPzA6kAO18QFU5TTmliQ29udHJvbENvbm5l -Y3RvctQADgOBA4IDgwOEAI0AHwP4gNSAv4ACgOxaZk9wZW5DaGVja9QADgOBA4IDgwPsAB8AhQP+gOqA -AoCQgO5cc2V0TG9jYXRpb2461AAOA4EDggODA4QAfwAfBASA1IA0gAKA8FxmU3RhdHVzRmllbGTUAA4D -gQOCA4MD7AAfAIoECoDqgAKAsYDyV2NyZWF0ZTrUAA4DgQOCA4MDhACHAB8EEIDUgJ6AAoD0XmZMb2Nh -dGlvbkZpZWxk1AAOA4EDggODA4QBVwAfBBaA1IA9gAKA9lxmQ29tbWVudFZpZXfUAA4DgQOCA4MDhACD -AB8EHIDUgIGAAoD4XWZUcmFja2VyRmllbGTUAA4DgQOCA4MDhABBAB8EIoDUgAeAAoD6VndpbmRvd9QA -DgOBA4IDgwOEAB8AQQQogNSAAoAHgPxYZGVsZWdhdGXUAA4DgQOCA4MD7AAfAIsELoDqgAKAtoD+XxAT -Y2FuY2VsQ3JlYXRlV2luZG93OtQADgOBA4IDgwOEAH4AHwQ0gNSAI4ACgQEAWmZOYW1lRmllbGTUAA4D -gQOCA4MDhAB9AB8EOoDUgBKAAoEBAllmSWNvblZpZXfSAA4APgQ9BD6BAQivEC0C3gCHBEEAfwCDA7oD -0gDYAIUCuQBRAVcAhgCKA4UCOgCJA4wBHwCAAxsAggCLAJgDLwRYAToBQgNCAvoAjALLAIgDvwIpAksA -gQNUAEEDuQCNAIQAfgB9AouApYCegQEEgDSAgYDdgN+AJYCQgJyAD4A9gJqAsYDNgH+AqIDOgDaAOYCz -gH2AtoAcgLiBAQaAdYBxgL2AqoC7gKCAooDbgHuAg4B5gMGAB4DZgL+AiYAjgBKAktQAbgAOAI8AcAAr -AHQEbwB2gACAxYEBBV8QEnt7MiwgMn0sIHsxMjUsIDF9fdIADgAyADMEc4AEgQEHXU5TQXBwbGljYXRp -b27SADcAOAR2AbWiAbUAO9IADgA+BD0EeYEBCK8QLQCIAFEAhABRAFEDjAO6AH4AUQCGAEEAgABRAFED -jACCAFEAHwB/AFEAigBRAFEAfQCLAB8AgACAAIwAiQBRAIcAUQO5AIEAgwBRAI0AHwOMAFEAUQBRAFEA -hYCigA+AiYAPgA+AzoDdgCOAD4CagAeAOYAPgA+AzoB9gA+AAoA0gA+AsYAPgA+AEoC2gAKAOYA5gLuA -qIAPgJ6AD4DZgHmAgYAPgL+AAoDOgA+AD4APgA+AkNIADgA+BD0EqYEBCK8QLgO6AIcD0gB/AIMC3gRB -ArkAhQDYAFEBVwCGAIoDhQI6AIkDjAEfAIAAiwCCAxsDLwNCBFgAHwE6AUIAjAL6AssAmACIA78CSwIp -AIEDVABBA7kAjQCEAH4AfQKLgN2AnoDfgDSAgYClgQEEgJyAkIAlgA+APYCagLGAzYB/gKiAzoA2gDmA -toB9gLOAuIC9gQEGgAKAdYBxgLuAqoCggByAooDbgIOAe4B5gMGAB4DZgL+AiYAjgBKAktIADgA+BD0E -2oEBCK8QLgTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE -9QT2BPcE+AT5BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIgQEMgQENgQEOgQEPgQEQgQERgQES -gQETgQEUgQEVgQEWgQEXgQEYgQEZgQEagQEbgQEcgQEdgQEegQEfgQEggQEhgQEigQEjgQEkgQElgQEm -gQEngQEogQEpgQEqgQErgQEsgQEtgQEugQEvgQEwgQExgQEygQEzgQE0gQE1gQE2gQE3gQE4gQE5bxAk -AFMAdABhAHQAaQBjACAAVABlAHgAdAAgACgAQwByAGUAYQB0AGkAbgBnACAAdABvAHIAcgBlAG4AdAAg -AGYAaQBsAGUgJgApXxAXU3RhdGljIFRleHQgKEZpbGUKRmlsZSlvECgAVABlAHgAdAAgAEYAaQBlAGwA -ZAAgAEMAZQBsAGwAIAAoAEMAcgBlAGEAdABpAG4AZwAgAHQAbwByAHIAZQBuAHQAIABmAGkAbABlICYA -KV8QGVN0YXRpYyBUZXh0IChzdGF0dXMgaW5mbylfEBRUZXh0IEZpZWxkIChodHRwOi8vKV8QJkltYWdl -IENlbGwgKFRyYW5zbWlzc2lvbkRvY3VtZW50LmljbnMpXxAfVGV4dCBGaWVsZCBDZWxsIChUb3JyZW50 -IEZpbGU6KV8QF1B1c2ggQnV0dG9uIChDaGFuZ2UuLi4pXxAbVGV4dCBGaWVsZCBDZWxsIChGaWxlIE5h -bWUpXENvbnRlbnQgVmlld1lUZXh0IFZpZXdfEBtTdGF0aWMgVGV4dCAoVG9ycmVudCBGaWxlOilfEBRQ -dXNoIEJ1dHRvbiAoQ3JlYXRlKV8QHUhvcml6b250YWwgUHJvZ3Jlc3MgSW5kaWNhdG9yXxAaVGV4dCBG -aWVsZCBDZWxsIChUcmFja2VyOilfEBNDaGVjayBCb3ggKFByaXZhdGUpXFByb2dyZXNzVmlld18QHVRl -eHQgRmllbGQgQ2VsbCAoc3RhdHVzIGluZm8pW1Njcm9sbCBWaWV3XxAWUHVzaCBCdXR0b24gKENhbmNl -bCktMV8QFlN0YXRpYyBUZXh0IChUcmFja2VyOilfEBRCdXR0b24gQ2VsbCAoQ3JlYXRlKV8QFkJ1dHRv -biBDZWxsIChDYW5jZWwpLTFfEBxUZXh0IEZpZWxkIENlbGwgKHBpZWNlIGluZm8pW0FwcGxpY2F0aW9u -XEZpbGUncyBPd25lcl8QE0hvcml6b250YWwgU2Nyb2xsZXJfEBFWZXJ0aWNhbCBTY3JvbGxlcl8QGFN0 -YXRpYyBUZXh0IChwaWVjZSBpbmZvKV8QFUJ1dHRvbiBDZWxsIChQcml2YXRlKV8QG1RleHQgRmllbGQg -Q2VsbCAoRmlsZQpGaWxlKV8QHkltYWdlIENlbGwgKE5TQXBwbGljYXRpb25JY29uKV8QJkltYWdlIFZp -ZXcgKFRyYW5zbWlzc2lvbkRvY3VtZW50LmljbnMpXxAUQnV0dG9uIENlbGwgKENhbmNlbClfEBlUZXh0 -IEZpZWxkIENlbGwgKGh0dHA6Ly8pXxAaVGV4dCBGaWVsZCBDZWxsIChDb21tZW50OilfEBZTdGF0aWMg -VGV4dCAoQ29tbWVudDopXxAfQnV0dG9uIENlbGwgKE9wZW4gd2hlbiBjcmVhdGVkKVZXaW5kb3dfEBRQ -dXNoIEJ1dHRvbiAoQ2FuY2VsKV8QHUNoZWNrIEJveCAoT3BlbiB3aGVuIGNyZWF0ZWQpXxAPSG9yaXpv -bnRhbCBMaW5lXxAXU3RhdGljIFRleHQgKEZpbGUgTmFtZSlfEB5JbWFnZSBWaWV3IChOU0FwcGxpY2F0 -aW9uSWNvbilfEBdCdXR0b24gQ2VsbCAoQ2hhbmdlLi4uKdIADgA+BD0FOIEBCKDSAA4APgQ9BTuBAQig -0gAOAD4EPQU+gQEIrxA/A9IDeQB/ANgAhQK5A38COgCJA30BHwN6A3sAgACLAy8AmANCA3gAHwFCAvoA -jALLA78DVABBAI0AhANwAH0DugCHBEEAgwKLA3cDfABRAVcDfgCGAIoDhQNxA4wDdgMbAIIEWAE6A3QA -iANzAikCSwCBA28DcgO5A3UAfgLegN+A9YA0gCWAkICcgQEBgH+AqID9gDaA94D5gDmAtoC4gByAvYDz -gAKAcYCqgLuAoIDbgMGAB4C/gImA1YASgN2AnoEBBICBgJKA8YD7gA+APYD/gJqAsYDNgNeAzoDvgLOA -fYEBBoB1gOuAooDogHuAg4B5gMyA5oDZgO2AI4Cl0gAOAD4EPQWAgQEIrxA/BYEFggWDBYQFhQWGBYcF -iAWJBYoFiwWMBY0FjgWPBZAFkQWSBZMFlAWVBZYFlwWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFowWkBaUF -pgWnBagFqQWqBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcFuAW5BboFuwW8Bb0FvgW/gQE+gQE/gQFA -gQFBgQFCgQFDgQFEgQFFgQFGgQFHgQFIgQFJgQFKgQFLgQFMgQFNgQFOgQFPgQFQgQFRgQFSgQFTgQFU -gQFVgQFWgQFXgQFYgQFZgQFagQFbgQFcgQFdgQFegQFfgQFggQFhgQFigQFjgQFkgQFlgQFmgQFngQFo -gQFpgQFqgQFrgQFsgQFtgQFugQFvgQFwgQFxgQFygQFzgQF0gQF1gQF2gQF3gQF4gQF5gQF6gQF7gQF8 -EFMQHRAKEEQQShBBEEcQFhA0EEUQIxAkEAsQTxBDEFAQHhBWEFQQTRAaEEsQUhBREAUQPxAgEAgQOxAU -EBEQSRAmECgQDBAfEBMQGBA5EDwQOBAiEE4QDhP//////////RBVEEAQFRA+EEYQSBANED0QIRA6ECcQ -CRBM0gAOAD4AewX8gFeg0gAOAD4EPQX/gQEIoNIADgA+BD0GAoEBCKDSADcAOAYEBgWiBgUAO15OU0lC -T2JqZWN0RGF0YQAIABkAIgAnADEAOgA/AEQAUgBUAGYDbANyA70DxAPLA9kD6wQHBBUEIQQtBDsERgRU -BHAEfgSRBKMEvQTHBNQE1gTZBNwE3wTiBOQE5wTpBOwE7wTyBPUE9wT5BPwE/wUBBQQFDQUZBRsFHQU3 -BUAFSQVUBVkFaAVxBYQFjQWYBZoFnQWfBd4F6wYEBhEGJwY1Bj8GTQZmBnMGfQaPBqMGrQa5BrsGvQa/ -BsEGwwbFBsoGzAbOBtAG0gbUBtYG2AbaBvUHBwcQBxkHIwclByoHMwc6B0wHVQdyB30HmgesB7cHwAfM -B9gH2gfcB94H4QfjB+UH5wfwB/IIFwgZCBsIHQgfCCEIIwglCCcIKQgrCC0ILwgxCDMINQg3CDkIYghq -CHUIfAiICJIIlAiWCJgImQibCJ0IoAihCKMIpQiuCLAIvQi/CMEIwwjFCMcIyQjlCQEJGQlNCW4JiwmU -CZsJqAmuCcYJ5wnzCfsKBgoOChYKIwouCjMKNQo3CjkKOwpACkEKTgpdCl8KYQpjCmsKfwqICo0KoAqp -CrAKvArFCtAK3ArmCu0K+QsaCxwLHgsgCyILJQsmCygLKgtDC2QLeAuCC5ALnAuhC6MLpQunC6kLqwuw -C7ILvAvNC9QL2wvkC+YL7wvxC/MMAAwJDA4MFQwqDDIMPwxLDFkMWwxdDF8MYQxjDGoMdwyEDIwMjgyQ -DJwMpQyqDL8MwQzDDMUMxwzaDOcM6QzsDPUM/g0QDR0NJg0xDT0NXg1gDWINZA1mDWcNaQ1rDYQNpQ2q -DawNrg2wDbINtA25DbsNxw3YDdoN4w3lDegOGQ4lDi4OOg5IDlYOWA5aDlwOXg5gDmIOZQ5nDmkOaw5t -Dm8OeA56DoEOgw6FDocOuA7BDssO1Q7fDuEO4w7lDucO6Q7rDu4O8A7yDvQO9g74DwEPAw8GDwgPPQ9P -D1kPZg9vD3oPfA9+D4APgg+ED4cPiQ+LD40Pjw+RD5MPnA+eD8MPxQ/HD8kPyw/ND88P0Q/TD9UP1w/Z -D9sP3Q/fD+EP4w/lEAEQFhAzEE8QdRCTELkQ1hDwEQwRORFDEVgRYhFtEXURhxGJEYsRlBGWEasRvhHM -EdYR2BHaEdwR3hHrEe0R7xHxEfoR/BH9EgYSDxIrEkASSRJLEk4SUBJZEmASbxJ3EoAShRKOEpMStBK8 -EtYS6RMAExUTKBMqEy0TLxMxEzMTNRM3EzkTRhNIE0sTWBNgE2ITZxNpE2sTcBNyE3QTiROLE40TjxOR -E68TxBPGE8gTyhPME+AT6RPuE/sUCBQKFA8UERQTFBgUGhQcFCgUNRQ7FD0URBRNFFIUaRR2FH8UiBST -FJoUsBS9FMcU1BTWFNgU4BTpFO4U9xUAFQsVMBU5FUIVTRVPFVEVUxVVFVcVWRVbFWQVexWIFZEVnBWn -FdQV3hXgFeIV5BXmFegV6hXsFfUWEBYqFjMWPBZJFmoWbBZuFnAWchZzFnUWdxaPFrAWsha0FrYWuBa6 -FrwWxRbmFugW6hbsFu4W7xbxFvMXCxcsFy4XMBcyFzQXNhc4F0EXYhdkF2YXaBdqF2sXbRdvF4kXrhfC -F8sXzRfPF9EX0xfVF9oX2xfdF+UX+hf8F/4YABgCGBgYLRgvGDEYMxg1GD8YcBh6GIYYlBihGKsYvRi/ -GMEYwxjFGMYYyRjLGM0YzxjmGO0ZChkMGQ4ZEBkSGRQZGBklGScZNRk+GUcZTRluGXAZchl0GXYZeRl6 -GXwZfhmWGcsZ4Rn2GgUaGBoqGjwaShpMGk4aUBpSGlQaVhpYGloaXBphGmoadBqFGocakBqSGpUaphqo -Gqoasxq1Gr4axxrUGt0a6BrxGxIbFBsWGxgbGhsdGx4bIBsiGzkbWhtcG14bYBtiG2QbZht0G5UblxuZ -G5sbnRueG6Abohu7G9wb3hvgG+Ib5BvmG+sb7Rv3HCAcIhwkHCYcJxwpHCscLBwuHDAcORw7HEgcShxM -HE4cUBxSHFQcbByNHI8ckRySHJ8coRyjHKUcwRziHOQc5hzoHOoc6xztHO8dBx1AHU4dUB1SHVQdVh1Y -HVodXB1eHWMdax14HXodfB1+HYcdkB2cHZ4doB2pHa4dxB3lHecd6R3rHe0d7h3wHfIeCh4/HkEeQx5F -HkceSR5LHk0eUh5ZHlsefB5+HoAegh6EHoUehx6JHqEe1h7YHtoe3B7eHuAe4h7kHuse7R8OHxAfEh8U -HxYfFx8ZHxsfNB9VH1cfWR9bH10fXx9kH2YfcR+SH5Qflh+YH5ofmx+dH58fuB/tH/Yf+B/6H/wf/iAA -IAIgBCAYICMgLCAzIEwgVyBmIG8gdCCHIJAgkiC3ILkguyC9IL8gwSDDIMUgxyDJIMsgzSDPINEg0yDV -INcg2iDrIPkhAiEKIQwhDiEQIRIhMyE+IUghVSFXIVkhWyFeIWEhYyFlIYIhjiGQIZIhlCGdIZ8hoSGj -IaghqiGzIbghwyHbIeQh7SIDIhgiISIoIj8iTiJfImEiYyJlImcidCKFIociiSKLIo0iliKYIp8ioSKj -IqUiwiLEIsYiyCLKIs0iziLQIugjHSMfIyEjIyMlIycjKSMrIzQjNiNTI1UjVyNZI1sjXCNeI3YjlyOZ -I5sjnSOfI6EjoyPSI9wj5SPnI/Aj+SQGJBQkJSQnJCkkKyQtJDskTCROJFAkUiRUJGwkdSR8JJQkpSSn -JKkkqyStJLgkySTLJM0kzyTRJN4k7yTxJPMk9ST3JQQlFSUXJRklGyUdJSUlNiU4JTolPCU+JU0lXiVg -JWIlZCVmJXMlhCWGJYgliiWMJZolqyWtJa8lsSWzJbolyyXNJc8l0SXTJdwl7SXvJfEl8yX1JgsmHCYe -JiAmIiYlJjAmQSZDJkUmRyZKJlQmXSZgJr0mvybBJsQmxibIJsomzCbOJtAm0ibUJtYm2CbaJtwm3ibg -JuIm5CbmJugm6ibsJu4m8CbzJvUm9yb5Jvsm/Sb/JwEnAycFJwcnCScLJw0nDycRJxMnFScXJxknKics -Jy4nMSdGJ08nUSdUJ2InaydwJ3knfCfZJ9sn3SffJ+En4yflJ+cn6SfrJ+0n7yfxJ/Mn9Sf3J/kn+yf9 -J/8oASgDKAUoBygJKAsoDSgPKBEoEygVKBcoGSgbKB0oHyghKCMoJSgnKCkoKygtKC8oMSgzKDwoPyie -KKAooiikKKYoqCiqKK0oryixKLMotSi3KLkouyi9KL8owSjDKMUoxyjJKMsozSjPKNEo1CjWKNgo2ijc -KN4o4CjiKOQo5ijoKOoo7CjuKPAo8ij0KPYo+Cj6KPwpBSkIKWcpailtKXApcyl2KXkpfCl/KYIphSmI -KYspjimRKZQplymaKZ0poCmjKaYpqSmsKa8psim1Kbgpuym+KcEpxCnHKcopzSnQKdMp1inZKdwp3yni -KeUp6CnrKe4p8So8KlYqqSrFKtwrBSsnK0ErXytsK3YrlCurK8sr6Cv+LAssKyw3LFAsaSyALJksuCzE -LNEs5yz7LRYtLi1MLW0tli2tLckt5i3/LiEuKC4/Ll8ucS6LLqwuxi7PLtIu0y7cLt8u4C7pLuwvbS9v -L3Evcy91L3cveS98L34vgC+CL4Qvhi+IL4ovjC+OL5Avki+UL5YvmC+aL5wvni+gL6IvpC+mL6gvqi+s -L64vsC+zL7Uvty+5L7svvS+/L8Evwy/FL8cvyS/LL80vzy/RL9Qv1i/YL9ov3C/eL+Av4i/kL+Yv6C/q -L+wv7i/3L/owezB+MIEwhDCHMIowjTCQMJMwljCZMJwwnzCiMKUwqDCrMK4wsTC0MLcwujC9MMAwwzDG -MMkwzDDPMNIw1TDYMNsw3jDhMOQw5zDqMO0w8DDzMPYw+TD8MP8xAjEFMQgxCzEOMRExFDEXMRoxHTEg -MSMxJjEpMSwxLzEyMTUxODE6MTwxPjFAMUIxRDFGMUgxSjFMMU4xUDFSMVQxVjFYMVoxXDFeMWAxYjFk -MWYxaDFqMWwxbjFwMXIxdDF2MXgxejF8MX4xgDGCMYQxhjGIMYoxjDGOMZAxmTGbMZ0xnzGhMaMxpTGn -MakxqzGtMa8xsTGzMbwxvjG/McgxyzHMMdUx2DHZMeIx5wAAAAAAAAICAAAAAAAABgYAAAAAAAAAAAAA -AAAAADH2A - -- 2.40.0