From a5c8447b8d7779c2834bea84e41c45584d1b6a79 Mon Sep 17 00:00:00 2001 From: matthewleon Date: Tue, 12 Feb 2008 10:30:32 +0000 Subject: [PATCH] Fixed mpcdec framework settings to get it to compile in debug configuration on case-sensitive FS. (Modified case from MPCDec to mpcdec, as I already did for release configuration). --- .../MPCDec/MPCDec.xcodeproj/project.pbxproj | 2 +- Spotlight/SpotlightPanel.xib | 1485 ++++++++--------- Spotlight/SpotlightPlaylistEntry.h | 1 + Spotlight/SpotlightPlaylistEntry.m | 9 +- Spotlight/SpotlightSearchController.m | 8 +- 5 files changed, 756 insertions(+), 749 deletions(-) diff --git a/Frameworks/MPCDec/MPCDec.xcodeproj/project.pbxproj b/Frameworks/MPCDec/MPCDec.xcodeproj/project.pbxproj index f13fc8da1..7c4a02f6b 100644 --- a/Frameworks/MPCDec/MPCDec.xcodeproj/project.pbxproj +++ b/Frameworks/MPCDec/MPCDec.xcodeproj/project.pbxproj @@ -283,7 +283,7 @@ HEADER_SEARCH_PATHS = Files/include/; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "@loader_path/../Frameworks"; - PRODUCT_NAME = MPCDec; + PRODUCT_NAME = mpcdec; WRAPPER_EXTENSION = framework; ZERO_LINK = YES; }; diff --git a/Spotlight/SpotlightPanel.xib b/Spotlight/SpotlightPanel.xib index b80bd1cfd..cc2997acf 100644 --- a/Spotlight/SpotlightPanel.xib +++ b/Spotlight/SpotlightPanel.xib @@ -2,10 +2,10 @@ 1050 - 9B18 + 9C31 629 - 949 - 343.00 + 949.26 + 352.00 YES @@ -51,7 +51,7 @@ 134217728 Add to Playlist - LucidaGrande + LucidaGrande 1.300000e+01 1044 @@ -108,13 +108,13 @@ 0 Artist - + 1.100000e+01 3100 6 - System + System headerColor 3 @@ -123,7 +123,7 @@ 6 - + headerTextColor 3 @@ -134,12 +134,12 @@ 337772096 2048 - Text Cell + Text Cell 6 - + controlBackgroundColor 3 @@ -148,7 +148,7 @@ 6 - + controlTextColor @@ -173,7 +173,7 @@ 337772096 2048 - + @@ -202,7 +202,7 @@ 337772096 2048 - + @@ -228,7 +228,7 @@ 337772096 67110912 - + @@ -254,7 +254,7 @@ 337772096 67110912 - + @@ -280,7 +280,7 @@ 337772096 2048 - + @@ -306,7 +306,7 @@ 337772096 67110912 - + @@ -322,7 +322,7 @@ 6 - + gridColor 3 @@ -413,7 +413,7 @@ 1 6 - + textBackgroundColor @@ -478,7 +478,7 @@ 6 - + controlColor @@ -541,13 +541,9 @@ YES - SpotlightSearchController + SpotlightSearchController - - YES - spotlightSearchPath - YES @@ -579,7 +575,7 @@ - value + value searchString 2 @@ -651,7 +647,7 @@ - + arrangedObjects.title NSConditionallySetsEditable @@ -671,7 +667,7 @@ - + arrangedObjects.year @@ -691,7 +687,7 @@ - + arrangedObjects.album @@ -711,7 +707,7 @@ - + arrangedObjects.genre @@ -731,7 +727,7 @@ - + arrangedObjects.artist @@ -751,7 +747,7 @@ - + arrangedObjects.length @@ -771,7 +767,7 @@ - + arrangedObjects.track @@ -791,7 +787,7 @@ - value + values.spotlightSearchPath NSValueTransformerName @@ -847,10 +843,10 @@ YES - - + + @@ -878,160 +874,6 @@ - - 24 - - - YES - - - - - - - - - 25 - - - - - 26 - - - - - 27 - - - - - 28 - - - YES - - - - - - - - - - - - 29 - - - YES - - - - - - 30 - - - YES - - - - - - 31 - - - YES - - - - - - 32 - - - YES - - - - - - 33 - - - YES - - - - - - 34 - - - YES - - - - - - 36 - - - YES - - - - - - 37 - - - - - 39 - - - - - 40 - - - - - 41 - - - - - 42 - - - - - 43 - - - - - 44 - - - - - 55 - - - YES - - - - - - 56 - - - 79 @@ -1065,6 +907,160 @@ + + 55 + + + YES + + + + + + 56 + + + + + 24 + + + YES + + + + + + + + + 28 + + + YES + + + + + + + + + + + + 36 + + + YES + + + + + + 37 + + + + + 34 + + + YES + + + + + + 39 + + + + + 33 + + + YES + + + + + + 40 + + + + + 32 + + + YES + + + + + + 41 + + + + + 31 + + + YES + + + + + + 42 + + + + + 30 + + + YES + + + + + + 43 + + + + + 29 + + + YES + + + + + + 44 + + + + + 27 + + + + + 26 + + + + + 25 + + + @@ -1137,10 +1133,10 @@ - {{70, 101}, {480, 318}} + {{70, 101}, {480, 318}} {196, 240} - + PlaylistController @@ -1214,13 +1210,51 @@ - 110 + 148 YES - PlaylistLoader + PlaylistView + NSTableView + + YES + + YES + scrollToCurrentEntry: + shufflePlaylist: + sortByPath: + toggleColumn: + + + YES + id + + + + + + + YES + + YES + playbackController + playlistController + + + YES + PlaybackController + PlaylistController + + + + IBProjectSource + Playlist/PlaylistView.h + + + + EntriesController NSObject YES @@ -1231,48 +1265,6 @@ YES - - playlistController - PlaylistController - - - IBProjectSource - Playlist/PlaylistLoader.h - - - - DNDArrayController - NSArrayController - - YES - - YES - - - YES - - - - tableView - NSTableView - - - - Playlist/DNDArrayController.h - - - - - - - YES - - YES - - - YES - - YES @@ -1283,138 +1275,8 @@ - - ThirdParty/NDHotKeys/NDHotKeyEvent.h - - - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - ThirdParty/UKKQueue/UKFileWatcher.h - - - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - ThirdParty/AppleRemote/AppleRemote.h - - - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - ThirdParty/GCWindowMenu/GCOneShotEffectTimer.h - - - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - ThirdParty/UKKQueue/UKKQueue.h - - - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - ThirdParty/UKKQueue/UKMainThreadProxy.h + + Playlist/EntriesController.h @@ -1434,46 +1296,29 @@ PlaylistLoader - + Spotlight/SpotlightWindowController.h - PlaylistView - NSTableView + PlaylistLoader + YES - + YES - scrollToCurrentEntry: - shufflePlaylist: - sortByPath: - toggleColumn: YES - id - - - - YES - - YES - playbackController - playlistController - - - YES - PlaybackController - PlaylistController - + playlistController + PlaylistController - - Playlist/PlaylistView.h + + Playlist/PlaylistLoader.h @@ -1502,22 +1347,22 @@ YES - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -1544,12 +1389,255 @@ - + Application/PlaybackController.h - + TrackingSlider + NSSlider + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + Utils/TrackingSlider.h + + + + DNDArrayController + NSArrayController + + YES + + YES + + + YES + + + + tableView + NSTableView + + + + Playlist/DNDArrayController.h + + + + PlaylistController + DNDArrayController + + YES + + YES + clear: + clearFilterPredicate: + showEntryInFinder: + takeRepeatFromObject: + takeShuffleFromObject: + + + YES + + + + + + + + + YES + + YES + entriesController + playlistLoader + + + YES + EntriesController + PlaylistLoader + + + + + Playlist/PlaylistController.h + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + ThirdParty/NDHotKeys/NDHotKeyEvent.h + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + ThirdParty/UKKQueue/UKKQueue.h + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + ThirdParty/AppleRemote/AppleRemote.h + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + ThirdParty/GCWindowMenu/GCOneShotEffectTimer.h + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + ThirdParty/UKKQueue/UKFileWatcher.h + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + + ThirdParty/UKKQueue/UKMainThreadProxy.h + + + + YES @@ -1586,8 +1674,8 @@ YES - - + + @@ -1606,102 +1694,10 @@ - + Spotlight/SpotlightSearchController.h - - TrackingSlider - NSSlider - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - Utils/TrackingSlider.h - - - - PlaylistController - DNDArrayController - - YES - - YES - clear: - clearFilterPredicate: - showEntryInFinder: - takeRepeatFromObject: - takeShuffleFromObject: - - - YES - - - - - - - - - YES - - YES - entriesController - playlistLoader - - - YES - EntriesController - PlaylistLoader - - - - - Playlist/PlaylistController.h - - - - EntriesController - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - Playlist/EntriesController.h - - 0 @@ -1709,251 +1705,250 @@ 3 YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA -AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBSQALAAwAMQA1ADYAPAA9 +AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBRgALAAwAMQA1ADYAPAA9 AEIAVgBXAFgAWQALAGcAbwB7AHwAlACVAJ0AngChAKIApgCsAMQAzADaAN4BBAEFAQYBBwEOARkBGgEd ASQBJQEoATIBRQFGAU0BTgFTAV0BXgFfAWMBZQFqAWsBbgFyAXsBfAGBAYIBhQGKAYsBjQGQAZkBmgGg AaEBqAGxAbIBuQG6Ab0BxAHNAc4B1QHWAd4B5wHoAe4B7wH2Af0B/gIEAgUCDAIVAhYCHAIdAiQCKAIt Ai4CMQIyAjUCNgI5AkUCRgJHAkoCUwJUARkCWAJZAlwCZQJmAngCfQJ+AokCigKLApQClQKZAqICowKk APcCpQKpAqoCrQKxAroCuwLEAsUCygLLAs0C1wLcAt0C3gLiAuMC7gLxAvQC9wALAvgC+gL7Av4DEgMa -Ax0DHgMfAyMDKAMpAywDMQMyAzcDOAM9Az4DQwNEA0kDXwNgA2EDbANtA28DcQNyA34DfwOAA4EDhwOI -A4oDjQOVA5YDlwOdA6QDpQOmA60DrgOvA7ADuAO5A7oDwAPIA8kDygPQA9gD2QPaA+AD6APpA+oD8AP4 -A/kD+gQABAgEDQQRBBIEFgN/BBcEGAQeBB8EIAREBEcESARKBG4EkwS4BLkEugS7BLwEvQS+BL8EwATB -BMIEwwTEBMUExgTHBMgEyQTKBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoE3wTkBRoFUAVR -BVICggVTBVQFVQVWBVcFWAVZBVoAVAVbBVwFXQVeBV8FYAVhBWIFYwVkBWUFZgVnBWgFaQVqBWsFbAVt -BW4FbwVwBXEFcgVzAIsFdAV1BXYFdwV4BXkAUwV6BXsFfAFaBX0FgAWDBYZVJG51bGzfEBIADQAOAA8A -EAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0A -LgAvADBWTlNSb290ViRjbGFzc11OU09iamVjdHNLZXlzXxAPTlNDbGFzc2VzVmFsdWVzXxAZTlNBY2Nl -c3NpYmlsaXR5T2lkc1ZhbHVlc11OU0Nvbm5lY3Rpb25zW05TTmFtZXNLZXlzW05TRnJhbWV3b3JrXU5T -Q2xhc3Nlc0tleXNaTlNPaWRzS2V5c11OU05hbWVzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5Q29ubmVj -dG9yc11OU0ZvbnRNYW5hZ2VyXxAQTlNWaXNpYmxlV2luZG93c18QD05TT2JqZWN0c1ZhbHVlc18QF05T -QWNjZXNzaWJpbGl0eU9pZHNLZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1ZXOAAoEBSIDmgQEQgQFHgJqA -64AFgQEPgQERgOyBAUWAAIAGgOqBAUYQcIEBEtIADgAyADMANFtOU0NsYXNzTmFtZYAEgANfEBlTcG90 -bGlnaHRXaW5kb3dDb250cm9sbGVy0gA3ADgAOQA6WCRjbGFzc2VzWiRjbGFzc25hbWWiADoAO15OU0N1 -c3RvbU9iamVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSAA4APgA/AEBaTlMub2JqZWN0c4CP -oQBBgAfaAEMADgBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAK1xOU1dpbmRvd1ZpZXdc -TlNTY3JlZW5SZWN0XU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NcTlNXaW5kb3dS -ZWN0XxAPTlNXaW5kb3dCYWNraW5nXxARTlNXaW5kb3dTdHlsZU1hc2tbTlNWaWV3Q2xhc3OAC4CZgJiA -CRIgAAAAgAqACBACEB+AAF8QGHt7MTk2LCAxOTJ9LCB7NDgwLCAzMTh9fV8QE09wZW4gZnJvbSBTcG90 -bGlnaHRXTlNQYW5lbNcAWgAOAFsAXABdAF4AXwBgAGEAYgBjAGQAYABmXxAPTlNOZXh0UmVzcG9uZGVy -Wk5TU3Vidmlld3NYTlN2RmxhZ3NbTlNGcmFtZVNpemVYTlNXaW5kb3dbTlNTdXBlcnZpZXeADICXgA0R -AQCAlYAMgJbSAA4APgBoAGmAXqUAagBrAGwAbQBugA6AGIBwgISAi9gAWgAOAHAAcQBcAHIAXgBfAEwA -dAB1AHYAdwB4AGAATFdOU0ZyYW1lVk5TQ2VsbFlOU0VuYWJsZWSAC4AXgA+AEBEBCQmADIALXxAXe3sz -MzUsIDI3Mn0sIHsxMzEsIDMyfX3cAH0ADgB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACKAI4A -jwBqAJEAkgCTW05TQ2VsbEZsYWdzXxATTlNBbHRlcm5hdGVDb250ZW50c18QEk5TUGVyaW9kaWNJbnRl -cnZhbF5OU0J1dHRvbkZsYWdzMl8QD05TS2V5RXF1aXZhbGVudFpOU0NvbnRlbnRzWU5TU3VwcG9ydF1O -U0NvbnRyb2xWaWV3XxAPTlNQZXJpb2RpY0RlbGF5XE5TQ2VsbEZsYWdzMl1OU0J1dHRvbkZsYWdzEgQB -/gCAFoAVEBkQgYAVgBGAEoAOEMgSCAAAABP/////hoJA/18QD0FkZCB0byBQbGF5bGlzdNQADgCWAJcA -mACZAJoAmwCcVk5TU2l6ZVZOU05hbWVYTlNmRmxhZ3OAFCNAKgAAAAAAAIATEQQUXEx1Y2lkYUdyYW5k -ZdIANwA4AJ8AoKIAoAA7Vk5TRm9udFDSADcAOACjAKSkAKQApQBxADtcTlNCdXR0b25DZWxsXE5TQWN0 -aW9uQ2VsbNIANwA4AKcAqKUAqACpAKoAqwA7WE5TQnV0dG9uWU5TQ29udHJvbFZOU1ZpZXdbTlNSZXNw -b25kZXLfEA8AWgCtAA4AcACuAK8AsABbALEAXABeAF8AsgCzALQATAC2ALcAuAC5ALoAuwC8AL0AvgBg -AEwAwQDCAMJbTlNIU2Nyb2xsZXJYTlNzRmxhZ3NcTlNDb3JuZXJWaWV3XxAQTlNIZWFkZXJDbGlwVmll -d1xOU1Njcm9sbEFtdHNbTlNWU2Nyb2xsZXJdTlNOZXh0S2V5Vmlld11OU0NvbnRlbnRWaWV3gAuAaoBv -gG4RAjCAJIAhgBlPEBAAAAAAAAAAAEGYAABBmAAAEQESgAyAC4BmgBqAGtIADgA+AGgAxoBepQDCAMEA -tgC7ALqAGoBmgGqAIYAk2wBaAA4AcADNAFsAXADOAF4AzwBfALMAawDRANIAUwDTANQA1QBgANcAawDV -WU5TY3ZGbGFnc1lOU0RvY1ZpZXdZTlNCR0NvbG9ygBiAZYBkgBsRCQCAHIAMgDiAGIAc0gAOAD4AaADc -gF6hANWAHN8QFwBaAN8ADgDgAOEA4gDjAOQArwDlAOYA5wBcAF0AcgDoAF4AMgDpAOoAXwDrAOwAwgDu -AO8A8ADxAPIA1wB4ALoA9gD3APgA+QD6AHgA/ABgAP4A/wEAAMIBAgEDXxAfTlNEcmFnZ2luZ1NvdXJj -ZU1hc2tGb3JOb25Mb2NhbFlOU1R2RmxhZ3NfEBNOU09yaWdpbmFsQ2xhc3NOYW1lXE5TSGVhZGVyVmll -d18QEU5TQmFja2dyb3VuZENvbG9yXxASTlNBbGxvd3NUeXBlU2VsZWN0XxAXTlNJbnRlcmNlbGxTcGFj -aW5nV2lkdGhfEBlOU0NvbHVtbkF1dG9yZXNpemluZ1N0eWxlXxAYTlNJbnRlcmNlbGxTcGFjaW5nSGVp -Z2h0Xk5TQXV0b3NhdmVOYW1lW05TR3JpZENvbG9yXxAcTlNEcmFnZ2luZ1NvdXJjZU1hc2tGb3JMb2Nh -bF5OU1RhYmxlQ29sdW1uc1tOU1Jvd0hlaWdodIAaEACAYxP/////28CAAIAegCCAOAmAJCNACAAAAAAA -ABABI0AAAAAAAAAAERESgB8JgGKADIAdgF8QD4AagCcjQDEAAAAAAABcUGxheWxpc3RWaWV3W05TVGFi -bGVWaWV3Wns0NDAsIDE5OH3XAFoADgBcAF0AXgBfAQUAuwEJAGMBCgBgALsA1YAhgCOAIoAMgCGAHNsA -WgAOAM0AWwBcAF0AzgBeAM8AXwCzAGsA0QERARIA1AETAPIAYADXAGsA8oAYgGUQBIBsgG2AIIAMgDiA -GIAgWXs0NDAsIDE3fdIANwA4ARsBHKQBHACqAKsAO18QEU5TVGFibGVIZWFkZXJWaWV31gBaAA4AcABc -AF4AXwBrAR8BIAEhAGAAa4AYgCaAJRP/////gAABAIAMgBhfEBR7ey0yNiwgMH0sIHsxNiwgMTd9fdIA -NwA4ASYBJ6QBJwCqAKsAO11fTlNDb3JuZXJWaWV30gAOAD4AaAEqgF6nASsBLAEtAS4BLwEwATGAKIA/ -gESASoBPgFSAWdoBMwAOATQBNQE2ATcBOAE5AToBBQB4ATwBPQE+AT8BQAFBAUIBQwDVXk5TSXNSZXNp -emVhYmxlXE5TSGVhZGVyQ2VsbFxOU0lkZW50aWZpZXJXTlNXaWR0aFpOU0RhdGFDZWxsXk5TUmVzaXpp -bmdNYXNrWk5TTWluV2lkdGhaTlNNYXhXaWR0aAmAPoAqgCkjQFGAAAAAAACANhADI0BCAAAAAAAAI0CP -QAAAAAAAgBxWYXJ0aXN01wB9AA4A4wCCAIMAhgFHAIgBSAFJAUoBSwDuAUxbTlNUZXh0Q29sb3KANYAt -gCuALIAyVkFydGlzdNQADgCWAJcAmACZAVAAmwFSgBQjQCYAAAAAAACAExEMHNUADgFUAVUBVgFXAVgB -WQFaAVsBXFdOU0NvbG9yXE5TQ29sb3JTcGFjZVtOU0NvbG9yTmFtZV1OU0NhdGFsb2dOYW1lgDGAMBAG -gC+ALlZTeXN0ZW1baGVhZGVyQ29sb3LTAA4BVQFgAVgBQQFiV05TV2hpdGWAMUIxANIANwA4AWQBVKIB -VAA71QAOAVQBVQFWAVcBWAFnAVoBaAFcgDGANIAzgC5fEA9oZWFkZXJUZXh0Q29sb3LTAA4BVQFgAVgB -QQFtgDFCMADSADcAOAFvAXClAXABcQClAHEAO18QEU5TVGFibGVIZWFkZXJDZWxsXxAPTlNUZXh0Rmll -bGRDZWxs2AB9AA4A4wCCAIMAhACGAUcBcwF0ANcBdgCPANUBeQF6EhQh/kCAPYA4gDeAEoAcEQgAgDtZ -VGV4dCBDZWxs1QAOAVQBVQFWAVcBWAF+AVoBfwFcgDGAOoA5gC5fEBZjb250cm9sQmFja2dyb3VuZENv -bG9y0wAOAVUBYAFYAUEBhIAxSzAuNjY2NjY2NjkA1QAOAVQBVQFWAVcBWAFnAVoBiAFcgDGANIA8gC5f -EBBjb250cm9sVGV4dENvbG9y0gA3ADgBjAFxpAFxAKUAcQA70gA3ADgBjgGPogGPADtdTlNUYWJsZUNv -bHVtbtoBMwAOATQBNQE2ATcBOAE5AToBBQB4ATwBkwGUAZUBlgFBAZcBQwDVCYA+gEGAQCNAUkAAAAAA -AIBDI0BDgAAAAAAAgBxVYWxidW3XAH0ADgDjAIIAgwCGAUcAiAFIAUkBnQFLAO4BTIA1gC2AQoAsgDJV -QWxidW3YAH0ADgDjAIIAgwCEAIYBRwFzAXQA1wF2AI8A1QF5AXqAPYA4gDeAEoAcgDvaATMADgE0ATUB -NgE3ATgBOQE6AQUAeAE8AasBrAGtAa4BQQGvAUMA1QmAPoBGgEUjQFLAAAAAAACASSNARIAAAAAAAIAc -VXRpdGxl1wB9AA4A4wCCAIMAhgFHAbMBSAG1AbYBSwDuAUwSBIH+AIA1gEiAR4AsgDJVVGl0bGXTAA4B -VQFgAVgBQQG8gDFLMC4zMzMzMzI5OQDYAH0ADgDjAIIAgwCEAIYBRwFzAXQA1wF2AI8A1QF5AXqAPYA4 -gDeAEoAcgDvaATMADgE0ATUBNgE3ATgBOQE6AQUAeAE8AccByAHJAcoBQQHLAUMA1QmAPoBMgEsjQFKn -sAAAAACATiNARE9gIAAAAIAcVmxlbmd0aNcAfQAOAOMAggCDAIYBRwCIAUgBSQHRAUsB0wFMgDWALYBN -gCwSBAAAAIAyVkxlbmd0aNgAfQAOAOMAggCDAIQAhgFHAXMBdADXAXYAjwDVAdwBeoA9gDiAN4ASgBwS -BAAIAIA72gEzAA4BNAE1ATYBNwE4ATkBOgEFAHgBPAHhAeIB4wHkAUEB5QFDANUJgD6AUYBQI0BGAAAA -AAAAgFMjQCQAAAAAAACAHFR5ZWFy1wB9AA4A4wCCAIMAhgFHAIgBSAFJAesBSwHTAUyANYAtgFKALIAy -VFllYXLYAH0ADgDjAIIAgwCEAIYBRwFzAXQA1wF2AI8A1QHcAXqAPYA4gDeAEoAcgDvaATMADgE0ATUB -NgE3ATgBOQE6AQUAeAE8AfkB+gHjAfsBQQHlAUMA1QmAPoBWgFWAWIAcVWdlbnJl1wB9AA4A4wCCAIMA -hgFHAIgBSAFJAgEBSwDuAUyANYAtgFeALIAyVUdlbnJl2AB9AA4A4wCCAIMAhACGAUcBcwF0ANcBdgCP -ANUBeQF6gD2AOIA3gBKAHIA72gEzAA4BNAE1ATYBNwE4ATkBOgEFAHgBPAIPAhACEQISAUECEwFDANUJ -gD6AW4BaI0BDAAAAAAAAgF0jQBAAAAAAAACAHFV0cmFja9cAfQAOAOMAggCDAIYBRwCIAUgBSQIZAUsB -0wFMgDWALYBcgCyAMlVUcmFja9gAfQAOAOMAggCDAIQAhgFHAXMBdADXAXYAjwDVAdwBeoA9gDiAN4AS -gByAO9IANwA4AiUCJqMCJgInADteTlNNdXRhYmxlQXJyYXlXTlNBcnJhedUADgFUAVUBVgFXAVgCKgFa -AisBXIAxgGGAYIAuWWdyaWRDb2xvctMADgFVAWABWAFBAjCAMUQwLjUAXxAUQ29nU3BvdGxpZ2h0UGxh -eWxpc3TSADcAOAIzAjSiAjQAO15OU0NsYXNzU3dhcHBlcl8QFXt7MCwgMTd9LCB7NDQwLCAxOTh9fdIA -NwA4AjcCOKQCOACqAKsAO1pOU0NsaXBWaWV32QBaAjoADgBwAFwAXgI7AF8CPABrAGsCPwJAASEAYAJC -AGsCRFhOU1RhcmdldFhOU0FjdGlvbllOU1BlcmNlbnSAGIAYgGmAZ4AMgGiAGCM/6jeEoAAAAF8QFHt7 -ODUsIDE3fSwgezE1LCA2OH19XF9kb1Njcm9sbGVyOtIANwA4AkgCSaUCSQCpAKoAqwA7Wk5TU2Nyb2xs -ZXLaAFoCOgAOAHAArgBcAF4COwBfAjwAawBrAj8CTgD3ASEAYAJCAGsCUoAYgBiAaYBrgAyAaIAYIz/q -BqAAAAAAXxAVe3swLCAyMDB9LCB7NDQwLCAxNX190gAOAD4AaAJWgF6hAPKAIF8QFnt7MjAsIDQ1fSwg -ezQ0MCwgMjE1fX3SADcAOAJaAlukAlsAqgCrADtcTlNTY3JvbGxWaWV32ABaAA4AcABxAFwAcgBeAF8A -TAJeAl8CYAJhAHgAYABMgAuAg4BxgHIRAQoJgAyAC18QFnt7MjAsIDI3OH0sIHszMTMsIDIyfX3dAH0A -DgJnAOMAggCDAIQAhgJoAmkCagJrAUcCbAJtAm4CbwCKAI8AbAJzAPcAeAJ1AnYBel8QEk5TQ2FuY2Vs -QnV0dG9uQ2VsbF8QEE5TVGV4dEJlemVsU3R5bGVfEBFOU0RyYXdzQmFja2dyb3VuZF8QEk5TU2VhcmNo -QnV0dG9uQ2VsbF8QEE5TTWF4aW11bVJlY2VudHMSFHH+QICCgHiAc4AVgBKAcBIQAAQACYB1EP+AO9UA -DgFUAVUBVgFXAVgBWQFaAnsBXIAxgDCAdIAuXxATdGV4dEJhY2tncm91bmRDb2xvctwCOgB9AA4AfwCA -AIEAggCEAIUAhgI7AIcCYAKAAIkCggDuAIoChABsAoYA7gKHAoiAchIAAf4AgBYQS4AVgHaAcBEBkIB3 -EghEQP9Wc2VhcmNoXxATX3NlYXJjaEZpZWxkU2VhcmNoOt0COgB9AA4AfwCAAIECjACCAIQAhQCGAjsA -hwJgAoAAiQKCAO4AigKQApEAbAKGAO4CkwKIXxAjTlNBY2Nlc3NpYmlsaXR5T3ZlcnJpZGRlbkF0dHJp -YnV0ZXOAcoAWgBWAeoB5gHCAgVVjbGVhctIADgA+AGgCl4BeoQKYgHvTAA4CmgA+ApsCnAKfV05TLmtl -eXOAgKICnQKegHyAfaICoAKhgH6Af11BWERlc2NyaXB0aW9uXxApTlNBY2Nlc3NpYmlsaXR5RW5jb2Rl -ZEF0dHJpYnV0ZXNWYWx1ZVR5cGVWY2FuY2Vs0gA3ADgCpgKnowKnAqgAO18QE05TTXV0YWJsZURpY3Rp -b25hcnlcTlNEaWN0aW9uYXJ5XxATX3NlYXJjaEZpZWxkQ2FuY2VsOtIANwA4AqsCrKUCrAFxAKUAcQA7 -XxARTlNTZWFyY2hGaWVsZENlbGzSADcAOAKuAq+mAq8CsACpAKoAqwA7XU5TU2VhcmNoRmllbGRbTlNU -ZXh0RmllbGTYAFoADgBwAHEAXAByAF4AXwBMArMCtAK1ArYAeABgAEyAC4CKgIWAhhEBIQmADIALXxAU -e3s4OCwgMjB9LCB7OTYsIDE3fX3YAH0ADgDjAIIAgwCEAIYBRwK8AXQCvgK/AI8AbQLCAXoSBAH+QIA9 -gIiAh4ASgIQSEEAEAIA7XFNlYXJjaCBQYXRoOtUADgFUAVUBVgFXAVgBfgFaAsgBXIAxgDqAiYAuXGNv -bnRyb2xDb2xvctIANwA4AswCsKUCsACpAKoAqwA72QBaAA4AcABxAs4AXAByAF4AXwBMAtAC0QLSAtMC -tgB4AGAATFtOU0RyYWdUeXBlc4ALgJSAkICRgIwJgAyAC9IADgA+AD8C2YCPogLaAtuAjYCOXxAZQXBw -bGUgVVJMIHBhc3RlYm9hcmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZdIANwA4At8C4KMC4ALh -ADtcTlNNdXRhYmxlU2V0VU5TU2V0XxAWe3sxODksIDE1fSwgezI3MSwgMjZ9fdgC5AB9AA4AgwCEAIYC -5QLmAFMC5wLoAI8AbgLrAuwAbltOU1BhdGhTdHlsZV8QFE5TUGF0aENvbXBvbmVudENlbGxzWk5TRGVs -ZWdhdGUSFCH+AYCTgBKAixGAAICSgIvSAA4APgBoAvCAXqDSADcAOALyAvOkAvMApQBxADtaTlNQYXRo -Q2VsbNIANwA4AvUC9qUC9gCpAKoAqwA7XU5TUGF0aENvbnRyb2xaezQ4MCwgMzE4fdIANwA4AvkAqqMA -qgCrADtfEBV7ezAsIDB9LCB7MTI4MCwgNzc4fX3SADcAOAL8Av2iAv0AO18QEE5TV2luZG93VGVtcGxh -dGXSAA4APgBoAwCAXq8QEQMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxGAm4CggKOApYCn -gKmAq4C0gLyAwIDDgMeAy4DPgNOA14Db1AAOAxMDFAMVAxYAHwMYAxldTlNEZXN0aW5hdGlvblhOU1Nv -dXJjZVdOU0xhYmVsgJ+AAoCcgJ7SAA4AMgAzAxyABICdXxAZU3BvdGxpZ2h0U2VhcmNoQ29udHJvbGxl -cl8QGXNwb3RsaWdodFdpbmRvd0NvbnRyb2xsZXLSADcAOAMgAyGjAyEDIgA7XxAUTlNOaWJPdXRsZXRD -b25uZWN0b3JeTlNOaWJDb25uZWN0b3LUAA4DEwMUAxUDJAMYAG4DJ4CigJyAi4ChXxARY2hhbmdlU2Vh -cmNoUGF0aDrSADcAOAMqAyujAysDIgA7XxAVTlNOaWJDb250cm9sQ29ubmVjdG9y1AAOAxMDFAMVAxYA -bgMYAzCAn4CLgJyApFtwYXRoQ29udHJvbNQADgMTAxQDFQMWAEEAHwM2gJ+AB4ACgKZWd2luZG931AAO -AxMDFAMVAxYAbABBAzyAn4BwgAeAqF8QFWluaXRpYWxGaXJzdFJlc3BvbmRlctQADgMTAxQDFQMkAxgA -agNCgKKAnIAOgKpeYWRkVG9QbGF5bGlzdDrUAA4DEwMUAxUDFgNGAxgDSICfgKyAnICz3ANKAA4DSwDh -A0wDTQNOA08DUAAyA1EDUgB4AO8AeANWAHgDWANZA1oAeANcAHgAeF8QGk5TRmlsdGVyUmVzdHJpY3Rz -SW5zZXJ0aW9uXxAUTlNQcmVzZXJ2ZXNTZWxlY3Rpb25aTlNFZGl0YWJsZV8QD19OU01hbmFnZWRQcm94 -eV8QEU5TT2JqZWN0Q2xhc3NOYW1lXk5TRGVjbGFyZWRLZXlzXxAiTlNDbGVhcnNGaWx0ZXJQcmVkaWNh -dGVPbkluc2VydGlvbl8QGE5TU2VsZWN0c0luc2VydGVkT2JqZWN0c18QFk5TQXZvaWRzRW1wdHlTZWxl -Y3Rpb24JgGMJgK4JgLGAsICvCYCtCQlfEBJQbGF5bGlzdENvbnRyb2xsZXJfEBFOU0FycmF5Q29udHJv -bGxlctIADgA+AGgDY4BeqAG2AawB4gE+AZQB+gHIAhCAR4BFgFCAKYBAgFWAS4BaXVBsYXlsaXN0RW50 -cnnRAA4DboCy0gA3ADgDcANNogNNADtfEBJwbGF5bGlzdENvbnRyb2xsZXLYAA4DEwNzA3QDFAMVA3UD -dgN3A0YDeQN6AS8DfAN9AFNZTlNLZXlQYXRoWU5TQmluZGluZ1lOU09wdGlvbnNfEBxOU05pYkJpbmRp -bmdDb25uZWN0b3JWZXJzaW9ugLuArIC3gLaAT4C1gLhfEBt2YWx1ZTogYXJyYW5nZWRPYmplY3RzLnll -YXJVdmFsdWVfEBRhcnJhbmdlZE9iamVjdHMueWVhctMADgKaAD4DggODA4WAuqEDhIC5oQKhgH9fEBtO -U0NvbmRpdGlvbmFsbHlTZXRzRWRpdGFibGXSADcAOAOJAqiiAqgAO9IANwA4A4sDjKMDjAMiADtfEBVO -U05pYkJpbmRpbmdDb25uZWN0b3LYAA4DEwNzA3QDFAMVA3UDdgN3A0YDkAN6AS4DkwOUAFOAu4CsgL6A -toBKgL2Av18QHXZhbHVlOiBhcnJhbmdlZE9iamVjdHMubGVuZ3RoXxAWYXJyYW5nZWRPYmplY3RzLmxl -bmd0aNMADgKaAD4DggOZA5uAuqEDhIC5oQKhgH/XAA4DEwNzA3QDFAMVA3YDdwMYA6ADegJgA6MAU4C7 -gJyAwoC2gHKAwV8QE3ZhbHVlOiBzZWFyY2hTdHJpbmdcc2VhcmNoU3RyaW5n1wAOAxMDcwN0AxQDFQN2 -A3cDGAOpA6oDRgOsAFOAu4CcgMaAxYCsgMRfEBtjb250ZW50QXJyYXk6IHF1ZXJ5LnJlc3VsdHNcY29u -dGVudEFycmF5XXF1ZXJ5LnJlc3VsdHPYAA4DEwNzA3QDFAMVA3UDdgN3A0YDswN6ASwDtgO3AFOAu4Cs -gMmAtoA/gMiAyl8QHHZhbHVlOiBhcnJhbmdlZE9iamVjdHMuYWxidW1fEBVhcnJhbmdlZE9iamVjdHMu -YWxidW3TAA4CmgA+A4IDvAO+gLqhA4SAuaECoYB/2AAOAxMDcwN0AxQDFQN1A3YDdwNGA8MDegExA8YD -xwBTgLuArIDNgLaAWYDMgM5fEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLnRyYWNrXxAVYXJyYW5nZWRP -YmplY3RzLnRyYWNr0wAOApoAPgOCA8wDzoC6oQOEgLmhAqGAf9gADgMTA3MDdAMUAxUDdQN2A3cDRgPT -A3oBMAPWA9cAU4C7gKyA0YC2gFSA0IDSXxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5nZW5yZV8QFWFy -cmFuZ2VkT2JqZWN0cy5nZW5yZdMADgKaAD4DggPcA96AuqEDhIC5oQKhgH/YAA4DEwNzA3QDFAMVA3UD -dgN3A0YD4wN6ASsD5gPnAFOAu4CsgNWAtoAogNSA1l8QHXZhbHVlOiBhcnJhbmdlZE9iamVjdHMuYXJ0 -aXN0XxAWYXJyYW5nZWRPYmplY3RzLmFydGlzdNMADgKaAD4DggPsA+6AuqEDhIC5oQKhgH/YAA4DEwNz -A3QDFAMVA3UDdgN3A0YD8wN6AS0D9gP3AFOAu4CsgNmAtoBEgNiA2l8QHHZhbHVlOiBhcnJhbmdlZE9i -amVjdHMudGl0bGVfEBVhcnJhbmdlZE9iamVjdHMudGl0bGXTAA4CmgA+A4ID/AP+gLqhA4SAuaECoYB/ -2AAOAxMDcwN0AxQDFQN1A3YDdwQCBAMEBABuBAYEBwBTgLuA3IDigOGAi4DggOPTAA4DTwQJBAoECwB4 -XxAQTlNTaGFyZWRJbnN0YW5jZYDfgN0J0gAOAD4AaAQPgF6hBBCA3l8QE3Nwb3RsaWdodFNlYXJjaFBh -dGjSADcAOAQTBBSjBBQEFQA7XxAYTlNVc2VyRGVmYXVsdHNDb250cm9sbGVyXE5TQ29udHJvbGxlcl8Q -IXZhbHVlOiB2YWx1ZXMuc3BvdGxpZ2h0U2VhcmNoUGF0aF8QGnZhbHVlcy5zcG90bGlnaHRTZWFyY2hQ -YXRo0wAOApoAPgOCBBoEHIC6oQQbgOShBB2A5V8QFk5TVmFsdWVUcmFuc2Zvcm1lck5hbWVfEBZTdHJp -bmdUb1VSTFRyYW5zZm9ybWVy0gAOAD4EIQQigOmvECEAagISASwB+wEwAxgAbAEuATEAbQQtAcoBQAEr -AZYA8gC2AS8CtQLSAG4A1QQCAMECYANGAGsBLQBMAeQBrgBBAHaADoBdgD+AWIBUgJyAcIBKgFmAhIDn -gE6ANoAogEOAIIBqgE+AhoCRgIuAHIDcgGaAcoCsgBiARIALgFOASYAHgBDSAA4AMgAzBEaABIDoXU5T -QXBwbGljYXRpb27SADcAOARJAieiAicAO9IADgA+BCEETIDprxAhAEwBMQDVATAA1QAfAEwA1QDVAEwA -HwEuASsA1QEsAGsAawDVAG0AbgBMAGsAHwBrAGwAHwBMANUAQQEvAS0AHwBqgAuAWYAcgFSAHIACgAuA -HIAcgAuAAoBKgCiAHIA/gBiAGIAcgISAi4ALgBiAAoAYgHCAAoALgByAB4BPgESAAoAO0gAOAD4EIQRw -gOmvECIAagISASwB+wMYATAAbAEuAG0BMQQtAcoBQAErAZYA8gC2AS8CtQLSAG4A1QQCAB8AwQJgA0YA -awEtAEwB5AGuAEEAdoAOgF2AP4BYgJyAVIBwgEqAhIBZgOeAToA2gCiAQ4AggGqAT4CGgJGAi4AcgNyA -AoBmgHKArIAYgESAC4BTgEmAB4AQ0gAOAD4EIQSVgOmvECIElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEE -ogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSyBLMEtAS1BLYEt4DtgO6A74DwgPGA8oDzgPSA -9YD2gPeA+ID5gPqA+4D8gP2A/oD/gQEAgQEBgQECgQEDgQEEgQEFgQEGgQEHgQEIgQEJgQEKgQELgQEM -gQENgQEOXxAdUHVzaCBCdXR0b24gKEFkZCB0byBQbGF5bGlzdClfEB1UZXh0IEZpZWxkIENlbGwgKFRl -eHQgQ2VsbCktM18QFFRhYmxlIENvbHVtbiAoYWxidW0pXxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0IENl -bGwpLTFfEBtTcG90bGlnaHQgU2VhcmNoIENvbnRyb2xsZXJfEBRUYWJsZSBDb2x1bW4gKGdlbnJlKVxT -ZWFyY2ggRmllbGRfEBVUYWJsZSBDb2x1bW4gKGxlbmd0aClfEBpTdGF0aWMgVGV4dCAoU2VhcmNoIFBh -dGg6KV8QFFRhYmxlIENvbHVtbiAodHJhY2spW0FwcGxpY2F0aW9uXxAdVGV4dCBGaWVsZCBDZWxsIChU -ZXh0IENlbGwpLTJfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktNF8QFVRhYmxlIENvbHVtbiAo -YXJ0aXN0KV8QG1RleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKV8QEVRhYmxlIEhlYWRlciBWaWV3XxAT -SG9yaXpvbnRhbCBTY3JvbGxlcl8QE1RhYmxlIENvbHVtbiAoeWVhcilfEB5UZXh0IEZpZWxkIENlbGwg -KFNlYXJjaCBQYXRoOilZUGF0aCBDZWxsXxAaUG9wIFVwIFBhdGggQ29udHJvbCBXaWRnZXRfEEBQbGF5 -bGlzdCBWaWV3IChBcnRpc3QsIEFsYnVtLCBUaXRsZSwgTGVuZ3RoLCBZZWFyLCBHZW5yZSwgVHJhY2sp -XxAfU2hhcmVkIFVzZXIgRGVmYXVsdHMgQ29udHJvbGxlclxGaWxlJ3MgT3duZXJfEBFWZXJ0aWNhbCBT -Y3JvbGxlcl8QEVNlYXJjaCBGaWVsZCBDZWxsXxATUGxheWxpc3QgQ29udHJvbGxlcltTY3JvbGwgVmll -d18QFFRhYmxlIENvbHVtbiAodGl0bGUpXENvbnRlbnQgVmlld18QHVRleHQgRmllbGQgQ2VsbCAoVGV4 -dCBDZWxsKS01XxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0IENlbGwpLTZfEBtQYW5lbCAoT3BlbiBmcm9t -IFNwb3RsaWdodClfEB1CdXR0b24gQ2VsbCAoQWRkIHRvIFBsYXlsaXN0KdIADgA+BCEE3IDpogNGANWA -rIAc0gAOAD4EIQThgOmiA1wA/oCtgB3SAA4APgQhBOaA6a8QMwISASwDEQMHAxgBLgMOAwkBygFAAw8D -BgEvArUC0gBuANUAHwNGAwgAawMCAS0DBQMKAEEDCwMMAGoB+wEwAGwBMQBtAwQELQMDASsBlgDyALYD -AQQCAMECYAMQAEwB5AGuAw0AdoBdgD+A24CrgJyASoDPgLyAToA2gNOAqYBPgIaAkYCLgByAAoCsgLSA -GICggESAp4DAgAeAw4DHgA6AWIBUgHCAWYCEgKWA54CjgCiAQ4AggGqAm4DcgGaAcoDXgAuAU4BJgMuA -ENIADgA+BCEFHIDprxAzBR0FHgUfBSAFIQUiBSMFJAUlBSYFJwUoBSkFKgUrBSwFLQUuBS8FMAUxBTIF -MwU0BTUCoQU3BTgFOQU6BTsFPAU9BT4FPwVABUEFQgVDBUQFRQVGBUcFSAVJBUoFSwVMBU0FTgVPgQET -gQEUgQEVgQEWgQEXgQEYgQEZgQEagQEbgQEcgQEdgQEegQEfgQEggQEhgQEigQEjgQEkgQElgQEmgQEn -gQEogQEpgQEqgQErgH+BASyBAS2BAS6BAS+BATCBATGBATKBATOBATSBATWBATaBATeBATiBATmBATqB -ATuBATyBAT2BAT6BAT+BAUCBAUGBAUKBAUOBAUQQLBAhEG4QERAgEGYQaRApECcQaBBKEFAQWRBYEBwQ -bxAQEF4QGBBbECQQPRA6EC0QZRAFECsQHhA3EB0QTxBIE//////////9EFoQIhAoEBoQTBBsEBsQOBBd -ECoQJRBr0gAOAD4AaAV/gF6g0gAOAD4EIQWCgOmg0gAOAD4EIQWFgOmg0gA3ADgFhwWIogWIADteTlNJ -Qk9iamVjdERhdGEACAAZACIAJwAxADoAPwBEAFIAVABmAvwDAgNNA1QDWwNpA3sDlwOlA7EDvQPLA9YD -5AQABA4EIQQzBE0EVwRkBGYEaQRrBG4EcQRzBHUEdwR6BH0EfwSCBIQEhgSIBIsEjQSQBJkEpQSnBKkE -xQTOBNcE4gTnBPYE/wUSBRsFJgUoBSsFLQVWBWMFcAV+BYgFlgWjBbUFyQXVBdcF2QXbBd0F4gXkBeYF -6AXqBewGBwYdBiUGQgZUBl8GaAZ0Bn0GiQaLBo0GjwaSBpQGlgaYBqEGowauBrAGsga0BrYGuAbZBuEG -6AbyBvQG9gb4BvoG/Qb+BwAHAgccB00HWQdvB4QHkwelB7AHugfIB9oH5wf1B/oH/Af+CAAIAggECAYI -CAgKCAwIEQgaCCwIPQhECEsIVAhWCF8IYQhkCHEIegh/CIYIhwiQCJkIpgizCLwIxwjQCNoI4QjtCSwJ -OAlBCU4JYQluCXoJiAmWCZgJmgmcCZ4JoQmjCaUJpwm6Cb0JvwnBCcMJxQnHCdAJ0gndCd8J4QnjCeUJ -5woUCh4KKAoyCjQKNgo4CjoKPQo/CkEKQwpFCkcKUApSClUKVwq2CtgK4gr4CwULGQsuC0gLZAt/C44L -mgu5C8gL1AvWC9gL2gvjC+UL5wvpC+oL7Av1C/cMAAwDDAUMBgwIDAoMDAwODBAMEgwUDB0MKgw2DEEM -XgxgDGIMZAxmDGgMagyXDJkMmwydDJ8MoQyjDKUMpwypDKsMtQy+DMcM2wz0DPYM+Az6DQMNBQ0HDR4N -Jw0wDT4NRw1JDVgNWg1cDV4NYA1iDWQNZg2PDZ4Nqw24DcANyw3aDeUN8A3xDfMN9Q33DgAOAg4EDg0O -Fg4YDh8OPA5IDkoOTA5ODlAOUg5ZDmoObA51DncOeg6PDpcOpA6wDr4OwA7CDsQOxg7IDs8O2w7oDvAO -8g71Dv4PAw8YDxoPHA8eDyAPMg8/D0EPRA9ND1gPbA9+D58PpA+mD6gPqg+sD64PsQ+zD70P0g/UD9YP -2A/aD/MQABACEA4QIxAlECcQKRArED4QRxBQEFkQXhBsEJUQlhCYEJoQnBClEKcQsBCyELgQ1RDXENkQ -2xDdEN8Q5REGEQgRChEMEQ4REBESETsRPBE+EUARQhFLEU0RVhFYEV4RexGAEYIRhBGGEYgRihGQEZ0R -nxGrEcwRzhHQEdIR1BHWEdgSARICEgQSBhIIEhESExIcEh4SJRJCEkQSRhJIEkoSTxJRElgSeRJ7En0S -fxKBEoMSiBKKErMStBK2ErgSuhLDEsUSzhLQEtUS8hL0EvYS+BL6EvwTARMiEyQTJhMoEyoTLBMuE1cT -WBNaE1wTXhNgE2ITaBOFE4cTiROLE40TjxOVE7YTuBO6E7wTvhPAE8IT6xPsE+4T8BPyE/sT/RQGFAgU -DhQrFC0ULxQxFDMUNRQ7FFwUXhRgFGIUZBRmFGgUcRR4FIcUjxSkFKYUqBSqFKwUthTDFMUUyhThFOoU -7xT+FRYVHxUoFTMVWBVhFWoVdBV2FXgVehV8FX4VgBWCFYsVohWvFbgVwxXOFfcV+RX7Ff0V/xYBFgMW -BRYOFiYWLxYxFjQWNhZPFlgWYRZuFo8WkRaTFpUWlxaaFpsWnRafFrgW7RcCFxUXKRc+F1EXVhdYF1oX -XBdeF2AXYhdnF2gXahdsF24XgxeFF4cXiReLF6EX0hfUF9kX2xfdF98X4RfjF+YX6BftF/QYChg/GGUY -ZxhpGGsYbRhvGHEYcxh5GIIYhBiHGIkYlhieGKAYpRinGKkYrhiwGLIYwBjsGPMY/BkDGRkZJhk8GUUZ -UBlkGW0ZehmIGZQZtRm3GbkZuxm9GcAZwRnDGcUZ3Bn9GgIaBBoGGggaChoMGhEaExogGjUaNxo5Gjsa -PRpKGlMaXhqDGo8akRqTGpUalxqZGpoanBqeGqcaqRquGrAashrOGuYa7xr2GwMbCRsiG0MbTxtmG3Eb -dht4G3obfBt/G4EbgxuMG44bjxuYG6EbrBu1G8AbzhvZG+Ib6RwBHAocDxwiHCscLRxSHFQcVhxYHFoc -XBxeHGAcYhxkHGYcaBxqHGwcbhxwHHIcdByFHJMcnBykHKYcqByqHKwctRy3HLkc1RzxHPodAR0YHScd -OB06HTwdPh1AHVQdXR1kHXwdjR2PHZEdkx2VHaEdsh20HbYduB26HcEd0h3UHdYd2B3aHfIeAx4FHgce -CR4LHhoeKx4tHi8eMR4zHmQegR6YHqMetR7JHtge/R8YHzEfMh80HzUfNx84HzofPB8+Hz8fQR9CH0Mf -WB9sH3Ufdx+IH4ofjB+OH5Afkh+UH5YfmB+mH6sfrR+2H7sf0B/xH/sgBSAPIC4gMCAyIDQgNiA4IDog -PCBaIGAgdyCEIIYgiSCLII4gkCCuILcgvCDFIMwg5CEFIQchCSELIQ0hDyERIRMhMyFMIVkhWyFeIWAh -YyFlIYIhhCGGIYghiiGMIY4hpCGxIc4h0CHSIdQh1iHYIdoh+CIFIhMiNCI2IjgiOiI8Ij4iQCJCImEi -eSKGIogiiyKNIpAikiKzIrUityK5IrsivSK/IsEi4CL4IwUjByMKIwwjDyMRIzIjNCM2IzgjOiM8Iz4j -QCNfI3cjhCOGI4kjiyOOI5AjsSOzI7UjtyO5I7sjvSO/I98j+CQFJAckCiQMJA8kESQyJDQkNiQ4JDok -PCQ+JEAkXyR3JIQkhiSJJIskjiSQJLEksyS1JLckuSS7JL0kvyTMJN8k4STjJOQk7STvJPIk9CUKJRMl -GiU1JUIlZiWDJZAlkiWVJZclmiWcJbUlziXXJdkmHiYgJiImJCYmJigmKiYsJi4mMCYyJjQmNiY4Jjom -PCY+JkAmQiZEJkYmSCZKJkwmTiZQJlImVCZWJlgmWiZcJl4mYCZpJmsmbSZ7JoQmiSaSJpQm2SbbJt0m -3ybhJuMm5SbnJukm6ybtJu8m8SbzJvUm9yb5Jvsm/Sb/JwEnAycFJwcnCScLJw0nDycRJxMnFScXJxkn -GyckJyYnbSdvJ3Encyd1J3cneSd7J30nfyeBJ4MnhSeHJ4kniyeNJ48nkSeTJ5UnlyeZJ5snnSefJ6En -oyelJ6cnqSerJ60nryexJ7onvCgDKAUoBygJKAsoDSgPKBEoEygVKBcoGSgbKB0oHyghKCMoJSgnKCko -LCgvKDIoNSg4KDsoPihBKEQoRyhKKE0oUChTKFYodiiWKK0ozSjrKQIpDyknKUQpWylnKYcppym/Kd0p -8SoHKh0qPipIKmUqqCrKKtcq6yr/KxUrISs4K0UrZSuFK6MrwyvMK84r0yvVK9cr4CviK+cr6SvrK/Qr -9ixfLGEsYyxlLGcsaSxrLG0sbyxxLHMsdSx3LHkseyx9LH8sgSyDLIUshyyJLIssjSyPLJEskyyVLJcs -mSybLJ0snyyhLKMspSynLKksqyytLK8ssSyzLLUstyy5LLssvSy/LMEswyzFLM4s0C05LTwtPy1CLUUt -SC1LLU4tUS1ULVctWi1dLWAtYy1mLWktbC1vLXItdS14LXstfi2BLYQthi2JLYwtjy2SLZUtmC2bLZ4t -oS2kLactqi2tLbAtsy22LbktvC2/LcItxS3ILcstzi3RLdMt1S3XLdkt2y3dLd8t4S3jLeUt5y3pLest -7S3vLfEt8y31Lfct+S37Lf0t/y4BLgMuBS4HLgkuCy4NLg8uES4aLhwuHi4gLiIuJC4mLiguKi4sLi4u -MC4yLjsuPS4+LkcuSS5KLlMuVS5WLl8uZAAAAAAAAAICAAAAAAAABYkAAAAAAAAAAAAAAAAAAC5zA +Ax0DHgMfAyMDKAMpAy4DLwM0AzUDOgM7Az4DQwNZA1oDWwNmA2cDaQNrA2wDcQNyA34DfwOAA4EDhwOI +A4oDjQOVA5YDlwOdA6QDpQOmA6cDrgOvA7ADuAO5A7oDwAPIA8kDygPQA9gD2QPaA+AD6APpA+oD8AP4 +A/wEAAQBBAIECAQJBAoEEgQTBBQEGgQ+BEEEQgREBGgEjQSyBLMEtAS1BLYEtwS4BLkEugS7BLwEvQS+ +BL8EwATBBMIEwwTEBMUExgTHBMgEyQTKBMsEzATNBM4EzwTQBNEE0gTTBNQE2QTeBRQFSgVLBUwFTQVO +BU8FUAVRBVIAiwVTBVQFVQVWBVcCggVYBVkFWgVbAFMFXAVdBV4FXwVgBWEFYgVjBWQFZQVmBWcFaAVp +AVoFagVrBWwFbQVuBW8FcAVxBXIAVAVzBXQFdQV2BXcFegV9BYBVJG51bGzfEBIADQAOAA8AEAARABIA +EwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADBW +TlNSb290ViRjbGFzc11OU09iamVjdHNLZXlzXxAPTlNDbGFzc2VzVmFsdWVzXxAZTlNBY2Nlc3NpYmls +aXR5T2lkc1ZhbHVlc11OU0Nvbm5lY3Rpb25zW05TTmFtZXNLZXlzW05TRnJhbWV3b3JrXU5TQ2xhc3Nl +c0tleXNaTlNPaWRzS2V5c11OU05hbWVzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5Q29ubmVjdG9yc11O +U0ZvbnRNYW5hZ2VyXxAQTlNWaXNpYmxlV2luZG93c18QD05TT2JqZWN0c1ZhbHVlc18QF05TQWNjZXNz +aWJpbGl0eU9pZHNLZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1ZXOAAoEBRYDjgQENgQFEgJqA6IAFgQEM +gQEOgOmBAUKAAIAGgOeBAUMQloEBD9IADgAyADMANFtOU0NsYXNzTmFtZYAEgANfEBlTcG90bGlnaHRX +aW5kb3dDb250cm9sbGVy0gA3ADgAOQA6WCRjbGFzc2VzWiRjbGFzc25hbWWiADoAO15OU0N1c3RvbU9i +amVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSAA4APgA/AEBaTlMub2JqZWN0c4CPoQBBgAfa +AEMADgBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAK1xOU1dpbmRvd1ZpZXdcTlNTY3Jl +ZW5SZWN0XU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NcTlNXaW5kb3dSZWN0XxAP +TlNXaW5kb3dCYWNraW5nXxARTlNXaW5kb3dTdHlsZU1hc2tbTlNWaWV3Q2xhc3OAC4CZgJiACRIgAAAA +gAqACBACEB+AAF8QGHt7MTk2LCAxOTJ9LCB7NDgwLCAzMTh9fV8QE09wZW4gZnJvbSBTcG90bGlnaHRX +TlNQYW5lbNcAWgAOAFsAXABdAF4AXwBgAGEAYgBjAGQAYABmXxAPTlNOZXh0UmVzcG9uZGVyWk5TU3Vi +dmlld3NYTlN2RmxhZ3NbTlNGcmFtZVNpemVYTlNXaW5kb3dbTlNTdXBlcnZpZXeADICXgA0RAQCAlYAM +gJbSAA4APgBoAGmAXqUAagBrAGwAbQBugA6AGIBwgISAi9gAWgAOAHAAcQBcAHIAXgBfAEwAdAB1AHYA +dwB4AGAATFdOU0ZyYW1lVk5TQ2VsbFlOU0VuYWJsZWSAC4AXgA+AEBEBCQmADIALXxAXe3szMzUsIDI3 +Mn0sIHsxMzEsIDMyfX3cAH0ADgB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACKAI4AjwBqAJEA +kgCTW05TQ2VsbEZsYWdzXxATTlNBbHRlcm5hdGVDb250ZW50c18QEk5TUGVyaW9kaWNJbnRlcnZhbF5O +U0J1dHRvbkZsYWdzMl8QD05TS2V5RXF1aXZhbGVudFpOU0NvbnRlbnRzWU5TU3VwcG9ydF1OU0NvbnRy +b2xWaWV3XxAPTlNQZXJpb2RpY0RlbGF5XE5TQ2VsbEZsYWdzMl1OU0J1dHRvbkZsYWdzEgQB/gCAFoAV +EBkQgYAVgBGAEoAOEMgSCAAAABP/////hoJA/18QD0FkZCB0byBQbGF5bGlzdNQADgCWAJcAmACZAJoA +mwCcVk5TU2l6ZVZOU05hbWVYTlNmRmxhZ3OAFCNAKgAAAAAAAIATEQQUXEx1Y2lkYUdyYW5kZdIANwA4 +AJ8AoKIAoAA7Vk5TRm9udFDSADcAOACjAKSkAKQApQBxADtcTlNCdXR0b25DZWxsXE5TQWN0aW9uQ2Vs +bNIANwA4AKcAqKUAqACpAKoAqwA7WE5TQnV0dG9uWU5TQ29udHJvbFZOU1ZpZXdbTlNSZXNwb25kZXLf +EA8AWgCtAA4AcACuAK8AsABbALEAXABeAF8AsgCzALQATAC2ALcAuAC5ALoAuwC8AL0AvgBgAEwAwQDC +AMJbTlNIU2Nyb2xsZXJYTlNzRmxhZ3NcTlNDb3JuZXJWaWV3XxAQTlNIZWFkZXJDbGlwVmlld1xOU1Nj +cm9sbEFtdHNbTlNWU2Nyb2xsZXJdTlNOZXh0S2V5Vmlld11OU0NvbnRlbnRWaWV3gAuAaoBvgG4RAjCA +JIAhgBlPEBAAAAAAAAAAAEGYAABBmAAAEQESgAyAC4BmgBqAGtIADgA+AGgAxoBepQDCAMEAtgC7ALqA +GoBmgGqAIYAk2wBaAA4AcADNAFsAXADOAF4AzwBfALMAawDRANIAUwDTANQA1QBgANcAawDVWU5TY3ZG +bGFnc1lOU0RvY1ZpZXdZTlNCR0NvbG9ygBiAZYBkgBsRCQCAHIAMgDiAGIAc0gAOAD4AaADcgF6hANWA +HN8QFwBaAN8ADgDgAOEA4gDjAOQArwDlAOYA5wBcAF0AcgDoAF4AMgDpAOoAXwDrAOwAwgDuAO8A8ADx +APIA1wB4ALoA9gD3APgA+QD6AHgA/ABgAP4A/wEAAMIBAgEDXxAfTlNEcmFnZ2luZ1NvdXJjZU1hc2tG +b3JOb25Mb2NhbFlOU1R2RmxhZ3NfEBNOU09yaWdpbmFsQ2xhc3NOYW1lXE5TSGVhZGVyVmlld18QEU5T +QmFja2dyb3VuZENvbG9yXxASTlNBbGxvd3NUeXBlU2VsZWN0XxAXTlNJbnRlcmNlbGxTcGFjaW5nV2lk +dGhfEBlOU0NvbHVtbkF1dG9yZXNpemluZ1N0eWxlXxAYTlNJbnRlcmNlbGxTcGFjaW5nSGVpZ2h0Xk5T +QXV0b3NhdmVOYW1lW05TR3JpZENvbG9yXxAcTlNEcmFnZ2luZ1NvdXJjZU1hc2tGb3JMb2NhbF5OU1Rh +YmxlQ29sdW1uc1tOU1Jvd0hlaWdodIAaEACAYxP/////28CAAIAegCCAOAmAJCNACAAAAAAAABABI0AA +AAAAAAAAERESgB8JgGKADIAdgF8QD4AagCcjQDEAAAAAAABcUGxheWxpc3RWaWV3W05TVGFibGVWaWV3 +Wns0NDAsIDE5OH3XAFoADgBcAF0AXgBfAQUAuwEJAGMBCgBgALsA1YAhgCOAIoAMgCGAHNsAWgAOAM0A +WwBcAF0AzgBeAM8AXwCzAGsA0QERARIA1AETAPIAYADXAGsA8oAYgGUQBIBsgG2AIIAMgDiAGIAgWXs0 +NDAsIDE3fdIANwA4ARsBHKQBHACqAKsAO18QEU5TVGFibGVIZWFkZXJWaWV31gBaAA4AcABcAF4AXwBr +AR8BIAEhAGAAa4AYgCaAJRP/////gAABAIAMgBhfEBR7ey0yNiwgMH0sIHsxNiwgMTd9fdIANwA4ASYB +J6QBJwCqAKsAO11fTlNDb3JuZXJWaWV30gAOAD4AaAEqgF6nASsBLAEtAS4BLwEwATGAKIA/gESASoBP +gFSAWdoBMwAOATQBNQE2ATcBOAE5AToBBQB4ATwBPQE+AT8BQAFBAUIBQwDVXk5TSXNSZXNpemVhYmxl +XE5TSGVhZGVyQ2VsbFxOU0lkZW50aWZpZXJXTlNXaWR0aFpOU0RhdGFDZWxsXk5TUmVzaXppbmdNYXNr +Wk5TTWluV2lkdGhaTlNNYXhXaWR0aAmAPoAqgCkjQFGAAAAAAACANhADI0BCAAAAAAAAI0CPQAAAAAAA +gBxWYXJ0aXN01wB9AA4A4wCCAIMAhgFHAIgBSAFJAUoBSwDuAUxbTlNUZXh0Q29sb3KANYAtgCuALIAy +VkFydGlzdNQADgCWAJcAmACZAVAAmwFSgBQjQCYAAAAAAACAExEMHNUADgFUAVUBVgFXAVgBWQFaAVsB +XFdOU0NvbG9yXE5TQ29sb3JTcGFjZVtOU0NvbG9yTmFtZV1OU0NhdGFsb2dOYW1lgDGAMBAGgC+ALlZT +eXN0ZW1baGVhZGVyQ29sb3LTAA4BVQFgAVgBQQFiV05TV2hpdGWAMUIxANIANwA4AWQBVKIBVAA71QAO +AVQBVQFWAVcBWAFnAVoBaAFcgDGANIAzgC5fEA9oZWFkZXJUZXh0Q29sb3LTAA4BVQFgAVgBQQFtgDFC +MADSADcAOAFvAXClAXABcQClAHEAO18QEU5TVGFibGVIZWFkZXJDZWxsXxAPTlNUZXh0RmllbGRDZWxs +2AB9AA4A4wCCAIMAhACGAUcBcwF0ANcBdgCPANUBeQF6EhQh/kCAPYA4gDeAEoAcEQgAgDtZVGV4dCBD +ZWxs1QAOAVQBVQFWAVcBWAF+AVoBfwFcgDGAOoA5gC5fEBZjb250cm9sQmFja2dyb3VuZENvbG9y0wAO +AVUBYAFYAUEBhIAxSzAuNjY2NjY2NjkA1QAOAVQBVQFWAVcBWAFnAVoBiAFcgDGANIA8gC5fEBBjb250 +cm9sVGV4dENvbG9y0gA3ADgBjAFxpAFxAKUAcQA70gA3ADgBjgGPogGPADtdTlNUYWJsZUNvbHVtbtoB +MwAOATQBNQE2ATcBOAE5AToBBQB4ATwBkwGUAZUBlgFBAZcBQwDVCYA+gEGAQCNAUkAAAAAAAIBDI0BD +gAAAAAAAgBxVYWxidW3XAH0ADgDjAIIAgwCGAUcAiAFIAUkBnQFLAO4BTIA1gC2AQoAsgDJVQWxidW3Y +AH0ADgDjAIIAgwCEAIYBRwFzAXQA1wF2AI8A1QF5AXqAPYA4gDeAEoAcgDvaATMADgE0ATUBNgE3ATgB +OQE6AQUAeAE8AasBrAGtAa4BQQGvAUMA1QmAPoBGgEUjQFLAAAAAAACASSNARIAAAAAAAIAcVXRpdGxl +1wB9AA4A4wCCAIMAhgFHAbMBSAG1AbYBSwDuAUwSBIH+AIA1gEiAR4AsgDJVVGl0bGXTAA4BVQFgAVgB +QQG8gDFLMC4zMzMzMzI5OQDYAH0ADgDjAIIAgwCEAIYBRwFzAXQA1wF2AI8A1QF5AXqAPYA4gDeAEoAc +gDvaATMADgE0ATUBNgE3ATgBOQE6AQUAeAE8AccByAHJAcoBQQHLAUMA1QmAPoBMgEsjQFKnsAAAAACA +TiNARE9gIAAAAIAcVmxlbmd0aNcAfQAOAOMAggCDAIYBRwCIAUgBSQHRAUsB0wFMgDWALYBNgCwSBAAA +AIAyVkxlbmd0aNgAfQAOAOMAggCDAIQAhgFHAXMBdADXAXYAjwDVAdwBeoA9gDiAN4ASgBwSBAAIAIA7 +2gEzAA4BNAE1ATYBNwE4ATkBOgEFAHgBPAHhAeIB4wHkAUEB5QFDANUJgD6AUYBQI0BGAAAAAAAAgFMj +QCQAAAAAAACAHFR5ZWFy1wB9AA4A4wCCAIMAhgFHAIgBSAFJAesBSwHTAUyANYAtgFKALIAyVFllYXLY +AH0ADgDjAIIAgwCEAIYBRwFzAXQA1wF2AI8A1QHcAXqAPYA4gDeAEoAcgDvaATMADgE0ATUBNgE3ATgB +OQE6AQUAeAE8AfkB+gHjAfsBQQHlAUMA1QmAPoBWgFWAWIAcVWdlbnJl1wB9AA4A4wCCAIMAhgFHAIgB +SAFJAgEBSwDuAUyANYAtgFeALIAyVUdlbnJl2AB9AA4A4wCCAIMAhACGAUcBcwF0ANcBdgCPANUBeQF6 +gD2AOIA3gBKAHIA72gEzAA4BNAE1ATYBNwE4ATkBOgEFAHgBPAIPAhACEQISAUECEwFDANUJgD6AW4Ba +I0BDAAAAAAAAgF0jQBAAAAAAAACAHFV0cmFja9cAfQAOAOMAggCDAIYBRwCIAUgBSQIZAUsB0wFMgDWA +LYBcgCyAMlVUcmFja9gAfQAOAOMAggCDAIQAhgFHAXMBdADXAXYAjwDVAdwBeoA9gDiAN4ASgByAO9IA +NwA4AiUCJqMCJgInADteTlNNdXRhYmxlQXJyYXlXTlNBcnJhedUADgFUAVUBVgFXAVgCKgFaAisBXIAx +gGGAYIAuWWdyaWRDb2xvctMADgFVAWABWAFBAjCAMUQwLjUAXxAUQ29nU3BvdGxpZ2h0UGxheWxpc3TS +ADcAOAIzAjSiAjQAO15OU0NsYXNzU3dhcHBlcl8QFXt7MCwgMTd9LCB7NDQwLCAxOTh9fdIANwA4AjcC +OKQCOACqAKsAO1pOU0NsaXBWaWV32QBaAjoADgBwAFwAXgI7AF8CPABrAGsCPwJAASEAYAJCAGsCRFhO +U1RhcmdldFhOU0FjdGlvbllOU1BlcmNlbnSAGIAYgGmAZ4AMgGiAGCM/6jeEoAAAAF8QFHt7ODUsIDE3 +fSwgezE1LCA2OH19XF9kb1Njcm9sbGVyOtIANwA4AkgCSaUCSQCpAKoAqwA7Wk5TU2Nyb2xsZXLaAFoC +OgAOAHAArgBcAF4COwBfAjwAawBrAj8CTgD3ASEAYAJCAGsCUoAYgBiAaYBrgAyAaIAYIz/qBqAAAAAA +XxAVe3swLCAyMDB9LCB7NDQwLCAxNX190gAOAD4AaAJWgF6hAPKAIF8QFnt7MjAsIDQ1fSwgezQ0MCwg +MjE1fX3SADcAOAJaAlukAlsAqgCrADtcTlNTY3JvbGxWaWV32ABaAA4AcABxAFwAcgBeAF8ATAJeAl8C +YAJhAHgAYABMgAuAg4BxgHIRAQoJgAyAC18QFnt7MjAsIDI3OH0sIHszMTMsIDIyfX3dAH0ADgJnAOMA +ggCDAIQAhgJoAmkCagJrAUcCbAJtAm4CbwCKAI8AbAJzAPcAeAJ1AnYBel8QEk5TQ2FuY2VsQnV0dG9u +Q2VsbF8QEE5TVGV4dEJlemVsU3R5bGVfEBFOU0RyYXdzQmFja2dyb3VuZF8QEk5TU2VhcmNoQnV0dG9u +Q2VsbF8QEE5TTWF4aW11bVJlY2VudHMSFHH+QICCgHiAc4AVgBKAcBIQAAQACYB1EP+AO9UADgFUAVUB +VgFXAVgBWQFaAnsBXIAxgDCAdIAuXxATdGV4dEJhY2tncm91bmRDb2xvctwCOgB9AA4AfwCAAIEAggCE +AIUAhgI7AIcCYAKAAIkCggDuAIoChABsAoYA7gKHAoiAchIAAf4AgBYQS4AVgHaAcBEBkIB3EghEQP9W +c2VhcmNoXxATX3NlYXJjaEZpZWxkU2VhcmNoOt0COgB9AA4AfwCAAIECjACCAIQAhQCGAjsAhwJgAoAA +iQKCAO4AigKQApEAbAKGAO4CkwKIXxAjTlNBY2Nlc3NpYmlsaXR5T3ZlcnJpZGRlbkF0dHJpYnV0ZXOA +coAWgBWAeoB5gHCAgVVjbGVhctIADgA+AGgCl4BeoQKYgHvTAA4CmgA+ApsCnAKfV05TLmtleXOAgKIC +nQKegHyAfaICoAKhgH6Af11BWERlc2NyaXB0aW9uXxApTlNBY2Nlc3NpYmlsaXR5RW5jb2RlZEF0dHJp +YnV0ZXNWYWx1ZVR5cGVWY2FuY2Vs0gA3ADgCpgKnowKnAqgAO18QE05TTXV0YWJsZURpY3Rpb25hcnlc +TlNEaWN0aW9uYXJ5XxATX3NlYXJjaEZpZWxkQ2FuY2VsOtIANwA4AqsCrKUCrAFxAKUAcQA7XxARTlNT +ZWFyY2hGaWVsZENlbGzSADcAOAKuAq+mAq8CsACpAKoAqwA7XU5TU2VhcmNoRmllbGRbTlNUZXh0Rmll +bGTYAFoADgBwAHEAXAByAF4AXwBMArMCtAK1ArYAeABgAEyAC4CKgIWAhhEBIQmADIALXxAUe3s4OCwg +MjB9LCB7OTYsIDE3fX3YAH0ADgDjAIIAgwCEAIYBRwK8AXQCvgK/AI8AbQLCAXoSBAH+QIA9gIiAh4AS +gIQSEEAEAIA7XFNlYXJjaCBQYXRoOtUADgFUAVUBVgFXAVgBfgFaAsgBXIAxgDqAiYAuXGNvbnRyb2xD +b2xvctIANwA4AswCsKUCsACpAKoAqwA72QBaAA4AcABxAs4AXAByAF4AXwBMAtAC0QLSAtMCtgB4AGAA +TFtOU0RyYWdUeXBlc4ALgJSAkICRgIwJgAyAC9IADgA+AD8C2YCPogLaAtuAjYCOXxAZQXBwbGUgVVJM +IHBhc3RlYm9hcmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZdIANwA4At8C4KMC4ALhADtcTlNN +dXRhYmxlU2V0VU5TU2V0XxAWe3sxODksIDE1fSwgezI3MSwgMjZ9fdgC5AB9AA4AgwCEAIYC5QLmAFMC +5wLoAI8AbgLrAuwAbltOU1BhdGhTdHlsZV8QFE5TUGF0aENvbXBvbmVudENlbGxzWk5TRGVsZWdhdGUS +FCH+AYCTgBKAixGAAICSgIvSAA4APgBoAvCAXqDSADcAOALyAvOkAvMApQBxADtaTlNQYXRoQ2VsbNIA +NwA4AvUC9qUC9gCpAKoAqwA7XU5TUGF0aENvbnRyb2xaezQ4MCwgMzE4fdIANwA4AvkAqqMAqgCrADtf +EBV7ezAsIDB9LCB7MTI4MCwgNzc4fX3SADcAOAL8Av2iAv0AO18QEE5TV2luZG93VGVtcGxhdGXSAA4A +PgBoAwCAXq8QEQMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxGAm4CggKKApICmgKmAsoC0 +gLyAwIDEgMeAy4DPgNOA14Df1AAOAxMDFAMVAxYAbgMYAxldTlNEZXN0aW5hdGlvblhOU1NvdXJjZVdO +U0xhYmVsgJ+Ai4CcgJ7SAA4AMgAzAxyABICdXxAZU3BvdGxpZ2h0U2VhcmNoQ29udHJvbGxlcltwYXRo +Q29udHJvbNIANwA4AyADIaMDIQMiADtfEBROU05pYk91dGxldENvbm5lY3Rvcl5OU05pYkNvbm5lY3Rv +ctQADgMTAxQDFQMWAGwAQQMngJ+AcIAHgKFfEBVpbml0aWFsRmlyc3RSZXNwb25kZXLUAA4DEwMUAxUD +FgBBAB8DLYCfgAeAAoCjVndpbmRvd9QADgMTAxQDFQMWAB8DGAMzgJ+AAoCcgKVfEBlzcG90bGlnaHRX +aW5kb3dDb250cm9sbGVy1AAOAxMDFAMVAzYDGABqAzmAqICcgA6Ap15hZGRUb1BsYXlsaXN0OtIANwA4 +AzwDPaMDPQMiADtfEBVOU05pYkNvbnRyb2xDb25uZWN0b3LUAA4DEwMUAxUDFgNAAxgDQoCfgKqAnICx +3ANEAA4DRQDhA0YDRwNIA0kDSgAyA0sDTAB4AO8AeANQAHgDUgNTA1QAeANWAHgAeF8QGk5TRmlsdGVy +UmVzdHJpY3RzSW5zZXJ0aW9uXxAUTlNQcmVzZXJ2ZXNTZWxlY3Rpb25aTlNFZGl0YWJsZV8QD19OU01h +bmFnZWRQcm94eV8QEU5TT2JqZWN0Q2xhc3NOYW1lXk5TRGVjbGFyZWRLZXlzXxAiTlNDbGVhcnNGaWx0 +ZXJQcmVkaWNhdGVPbkluc2VydGlvbl8QGE5TU2VsZWN0c0luc2VydGVkT2JqZWN0c18QFk5TQXZvaWRz +RW1wdHlTZWxlY3Rpb24JgGMJgKwJgK+AroCtCYCrCQlfEBJQbGF5bGlzdENvbnRyb2xsZXJfEBFOU0Fy +cmF5Q29udHJvbGxlctIADgA+AGgDXYBeqAG2AawB4gE+AZQB+gHIAhCAR4BFgFCAKYBAgFWAS4BaXVBs +YXlsaXN0RW50cnnRAA4DaICw0gA3ADgDagNHogNHADtfEBJwbGF5bGlzdENvbnRyb2xsZXLUAA4DEwMU +AxUDNgMYAG4DcICogJyAi4CzXxARY2hhbmdlU2VhcmNoUGF0aDrYAA4DEwNzA3QDFAMVA3UDdgN3A0AD +eQN6ASsDfAN9AFNZTlNLZXlQYXRoWU5TQmluZGluZ1lOU09wdGlvbnNfEBxOU05pYkJpbmRpbmdDb25u +ZWN0b3JWZXJzaW9ugLuAqoC3gLaAKIC1gLhfEB12YWx1ZTogYXJyYW5nZWRPYmplY3RzLmFydGlzdFV2 +YWx1ZV8QFmFycmFuZ2VkT2JqZWN0cy5hcnRpc3TTAA4CmgA+A4IDgwOFgLqhA4SAuaECoYB/XxAbTlND +b25kaXRpb25hbGx5U2V0c0VkaXRhYmxl0gA3ADgDiQKoogKoADvSADcAOAOLA4yjA4wDIgA7XxAVTlNO +aWJCaW5kaW5nQ29ubmVjdG9y2AAOAxMDcwN0AxQDFQN1A3YDdwNAA5ADegEwA5MDlABTgLuAqoC+gLaA +VIC9gL9fEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLmdlbnJlXxAVYXJyYW5nZWRPYmplY3RzLmdlbnJl +0wAOApoAPgOCA5kDm4C6oQOEgLmhAqGAf9cADgMTA3MDdAMUAxUDdgN3AxgDoAOhA0ADowBTgLuAnIDD +gMKAqoDBXxAbY29udGVudEFycmF5OiBxdWVyeS5yZXN1bHRzXGNvbnRlbnRBcnJheV1xdWVyeS5yZXN1 +bHRz1wAOAxMDcwN0AxQDFQN2A3cDGAOqA3oCYAOtAFOAu4CcgMaAtoBygMVfEBN2YWx1ZTogc2VhcmNo +U3RyaW5nXHNlYXJjaFN0cmluZ9gADgMTA3MDdAMUAxUDdQN2A3cDQAOzA3oBMQO2A7cAU4C7gKqAyYC2 +gFmAyIDKXxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy50cmFja18QFWFycmFuZ2VkT2JqZWN0cy50cmFj +a9MADgKaAD4DggO8A76AuqEDhIC5oQKhgH/YAA4DEwNzA3QDFAMVA3UDdgN3A0ADwwN6AS8DxgPHAFOA +u4CqgM2AtoBPgMyAzl8QG3ZhbHVlOiBhcnJhbmdlZE9iamVjdHMueWVhcl8QFGFycmFuZ2VkT2JqZWN0 +cy55ZWFy0wAOApoAPgOCA8wDzoC6oQOEgLmhAqGAf9gADgMTA3MDdAMUAxUDdQN2A3cDQAPTA3oBLAPW +A9cAU4C7gKqA0YC2gD+A0IDSXxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5hbGJ1bV8QFWFycmFuZ2Vk +T2JqZWN0cy5hbGJ1bdMADgKaAD4DggPcA96AuqEDhIC5oQKhgH/YAA4DEwNzA3QDFAMVA3UDdgN3A0AD +4wN6AS0D5gPnAFOAu4CqgNWAtoBEgNSA1l8QHHZhbHVlOiBhcnJhbmdlZE9iamVjdHMudGl0bGVfEBVh +cnJhbmdlZE9iamVjdHMudGl0bGXTAA4CmgA+A4ID7APugLqhA4SAuaECoYB/2AAOAxMDcwN0AxQDFQN1 +A3YDdwPyA/MDegBuA/YD9wBTgLuA2IDbgLaAi4DagNzSAA4D+QP6AHhfEBBOU1NoYXJlZEluc3RhbmNl +gNkJ0gA3ADgD/QP+owP+A/8AO18QGE5TVXNlckRlZmF1bHRzQ29udHJvbGxlclxOU0NvbnRyb2xsZXJf +ECF2YWx1ZTogdmFsdWVzLnNwb3RsaWdodFNlYXJjaFBhdGhfEBp2YWx1ZXMuc3BvdGxpZ2h0U2VhcmNo +UGF0aNMADgKaAD4DggQEBAaAuqEEBYDdoQQHgN5fEBZOU1ZhbHVlVHJhbnNmb3JtZXJOYW1lXxAWU3Ry +aW5nVG9VUkxUcmFuc2Zvcm1lctgADgMTA3MDdAMUAxUDdQN2A3cDQAQNA3oBLgQQBBEAU4C7gKqA4YC2 +gEqA4IDiXxAddmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5sZW5ndGhfEBZhcnJhbmdlZE9iamVjdHMubGVu +Z3Ro0wAOApoAPgOCBBYEGIC6oQOEgLmhAqGAf9IADgA+BBsEHIDmrxAhAG4BMADBAGsBLgEtAPIBMQB2 +AfsB5ABqA0AAQQC2AG0A1QK1AEwBKwMYAmAC0gPyAUABLAEvAZYEOQISAGwBygGugIuAVIBmgBiASoBE +gCCAWYAQgFiAU4AOgKqAB4BqgISAHICGgAuAKICcgHKAkYDYgDaAP4BPgEOA5IBdgHCAToBJ0gAOADIA +MwRAgASA5V1OU0FwcGxpY2F0aW9u0gA3ADgEQwInogInADvSAA4APgQbBEaA5q8QIQBMANUAawBMANUA +1QBrANUAagEwAS8ATAAfAB8AawBMAGsAbQBBANUAHwBsAG4AHwErANUA1QEsAB8BMQBMAS4BLYALgByA +GIALgByAHIAYgByADoBUgE+AC4ACgAKAGIALgBiAhIAHgByAAoBwgIuAAoAogByAHIA/gAKAWYALgEqA +RNIADgA+BBsEaoDmrxAiAG4BMAAfAMEAawEuAPIBLQExAHYB+wNAAGoB5ABBALYAbQDVArUATAErAxgC +YALSA/IBLwEsAhIBQAQ5AZYAbAHKAa6Ai4BUgAKAZoAYgEqAIIBEgFmAEIBYgKqADoBTgAeAaoCEgByA +hoALgCiAnIBygJGA2IBPgD+AXYA2gOSAQ4BwgE6ASdIADgA+BBsEj4DmrxAiBJAEkQSSBJMElASVBJYE +lwSYBJkEmgSbBJwEnQSeBJ8EoAShBKIEowSkBKUEpgSnBKgEqQSqBKsErAStBK4ErwSwBLGA6oDrgOyA +7YDugO+A8IDxgPKA84D0gPWA9oD3gPiA+YD6gPuA/ID9gP6A/4EBAIEBAYEBAoEBA4EBBIEBBYEBBoEB +B4EBCIEBCYEBCoEBC18QGlBvcCBVcCBQYXRoIENvbnRyb2wgV2lkZ2V0XxAUVGFibGUgQ29sdW1uIChn +ZW5yZSlcRmlsZSdzIE93bmVyXxARVmVydGljYWwgU2Nyb2xsZXJbU2Nyb2xsIFZpZXdfEBVUYWJsZSBD +b2x1bW4gKGxlbmd0aClfEBFUYWJsZSBIZWFkZXIgVmlld18QFFRhYmxlIENvbHVtbiAodGl0bGUpXxAU +VGFibGUgQ29sdW1uICh0cmFjaylfEB1CdXR0b24gQ2VsbCAoQWRkIHRvIFBsYXlsaXN0KV8QG1RleHQg +RmllbGQgQ2VsbCAoVGV4dCBDZWxsKV8QE1BsYXlsaXN0IENvbnRyb2xsZXJfEB1QdXNoIEJ1dHRvbiAo +QWRkIHRvIFBsYXlsaXN0KV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS02XxAbUGFuZWwgKE9w +ZW4gZnJvbSBTcG90bGlnaHQpXxATSG9yaXpvbnRhbCBTY3JvbGxlcl8QGlN0YXRpYyBUZXh0IChTZWFy +Y2ggUGF0aDopXxBAUGxheWxpc3QgVmlldyAoQXJ0aXN0LCBBbGJ1bSwgVGl0bGUsIExlbmd0aCwgWWVh +ciwgR2VucmUsIFRyYWNrKV8QHlRleHQgRmllbGQgQ2VsbCAoU2VhcmNoIFBhdGg6KVxDb250ZW50IFZp +ZXdfEBVUYWJsZSBDb2x1bW4gKGFydGlzdClfEBtTcG90bGlnaHQgU2VhcmNoIENvbnRyb2xsZXJfEBFT +ZWFyY2ggRmllbGQgQ2VsbFlQYXRoIENlbGxfEB9TaGFyZWQgVXNlciBEZWZhdWx0cyBDb250cm9sbGVy +XxATVGFibGUgQ29sdW1uICh5ZWFyKV8QFFRhYmxlIENvbHVtbiAoYWxidW0pXxAdVGV4dCBGaWVsZCBD +ZWxsIChUZXh0IENlbGwpLTNfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktNFtBcHBsaWNhdGlv +bl8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS01XFNlYXJjaCBGaWVsZF8QHVRleHQgRmllbGQg +Q2VsbCAoVGV4dCBDZWxsKS0xXxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0IENlbGwpLTLSAA4APgQbBNaA +5qIA1QNAgByAqtIADgA+BBsE24DmogD+A1aAHYCr0gAOAD4EGwTggOavEDMDBQMRAG4BMAAfAMEBLgMC +AS0A8gExAwkB+wNAAxAAQQMGAw0AbQMLArUATAMYAmADAwMMA/IBlgBsAcoBrgMBAw4AawMHAwoAdgHk +AGoAtgDVASsDDwLSAUABLAEvAhIEOQMEAwiApoDfgIuAVIACgGaASoCggESAIIBZgLyAWICqgNeAB4Cp +gMuAhIDEgIaAC4CcgHKAooDHgNiAQ4BwgE6ASYCbgM+AGICygMCAEIBTgA6AaoAcgCiA04CRgDaAP4BP +gF2A5ICkgLTSAA4APgQbBRaA5q8QMwUXBRgFGQUaBRsFHAUdBR4FHwUgBSEFIgUjBSQFJQKhBScFKAUp +BSoFKwUsBS0FLgUvBTAFMQUyBTMFNAU1BTYFNwU4BTkFOgU7BTwFPQU+BT8FQAVBBUIFQwVEBUUFRgVH +BUgFSYEBEIEBEYEBEoEBE4EBFIEBFYEBFoEBF4EBGIEBGYEBGoEBG4EBHIEBHYEBHoB/gQEfgQEggQEh +gQEigQEjgQEkgQElgQEmgQEngQEogQEpgQEqgQErgQEsgQEtgQEugQEvgQEwgQExgQEygQEzgQE0gQE1 +gQE2gQE3gQE4gQE5gQE6gQE7gQE8gQE9gQE+gQE/gQFAgQFBEEoQaRBYEB4QlRAbECAQPRAkEB0QZhAr +EBAQbhBeEE8QOhBQEBEQOBBIEGsQbBAoEDcQKRAlEFoQZRAYEFsQLRAqEAUQGhAcECIQXRBZECcQIRAs +E//////////9EEwQaNIADgA+AGgFeYBeoNIADgA+BBsFfIDmoNIADgA+BBsFf4DmoNIANwA4BYEFgqIF +ggA7Xk5TSUJPYmplY3REYXRhAAgAGQAiACcAMQA6AD8ARABSAFQAZgL2AvwDRwNOA1UDYwN1A5EDnwOr +A7cDxQPQA94D+gQIBBsELQRHBFEEXgRgBGMEZQRoBGsEbQRvBHEEdAR3BHkEfAR+BIAEggSFBIcEigST +BJ8EoQSjBL8EyATRBNwE4QTwBPkFDAUVBSAFIgUlBScFUAVdBWoFeAWCBZAFnQWvBcMFzwXRBdMF1QXX +BdwF3gXgBeIF5AXmBgEGFwYfBjwGTgZZBmIGbgZ3BoMGhQaHBokGjAaOBpAGkgabBp0GqAaqBqwGrgaw +BrIG0wbbBuIG7AbuBvAG8gb0BvcG+Ab6BvwHFgdHB1MHaQd+B40HnweqB7QHwgfUB+EH7wf0B/YH+Af6 +B/wH/ggACAIIBAgGCAsIFAgmCDcIPghFCE4IUAhZCFsIXghrCHQIeQiACIEIigiTCKAIrQi2CMEIygjU +CNsI5wkmCTIJOwlICVsJaAl0CYIJkAmSCZQJlgmYCZsJnQmfCaEJtAm3CbkJuwm9Cb8JwQnKCcwJ1wnZ +CdsJ3QnfCeEKDgoYCiIKLAouCjAKMgo0CjcKOQo7Cj0KPwpBCkoKTApPClEKsArSCtwK8gr/CxMLKAtC +C14LeQuIC5QLswvCC84L0AvSC9QL3QvfC+EL4wvkC+YL7wvxC/oL/Qv/DAAMAgwEDAYMCAwKDAwMDgwX +DCQMMAw7DFgMWgxcDF4MYAxiDGQMkQyTDJUMlwyZDJsMnQyfDKEMowylDK8MuAzBDNUM7gzwDPIM9Az9 +DP8NAQ0YDSENKg04DUENQw1SDVQNVg1YDVoNXA1eDWANiQ2YDaUNsg26DcUN1A3fDeoN6w3tDe8N8Q36 +DfwN/g4HDhAOEg4ZDjYOQg5EDkYOSA5KDkwOUw5kDmYObw5xDnQOiQ6RDp4Oqg64DroOvA6+DsAOwg7J +DtUO4g7qDuwO7w74Dv0PEg8UDxYPGA8aDywPOQ87Dz4PRw9SD2YPeA+ZD54PoA+iD6QPpg+oD6sPrQ+3 +D8wPzg/QD9IP1A/tD/oP/BAIEB0QHxAhECMQJRA4EEEQShBTEFgQZhCPEJAQkhCUEJYQnxChEKoQrBCy +EM8Q0RDTENUQ1xDZEN8RABECEQQRBhEIEQoRDBE1ETYROBE6ETwRRRFHEVARUhFYEXURehF8EX4RgBGC +EYQRihGXEZkRpRHGEcgRyhHMEc4R0BHSEfsR/BH+EgASAhILEg0SFhIYEh8SPBI+EkASQhJEEkkSSxJS +EnMSdRJ3EnkSexJ9EoIShBKtEq4SsBKyErQSvRK/EsgSyhLPEuwS7hLwEvIS9BL2EvsTHBMeEyATIhMk +EyYTKBNRE1ITVBNWE1gTWhNcE2ITfxOBE4MThROHE4kTjxOwE7ITtBO2E7gTuhO8E+UT5hPoE+oT7BP1 +E/cUABQCFAgUJRQnFCkUKxQtFC8UNRRWFFgUWhRcFF4UYBRiFGsUchSBFIkUnhSgFKIUpBSmFLAUvRS/ +FMQU2xTkFOkU+BUQFRkVIhUtFVIVWxVkFW4VcBVyFXQVdhV4FXoVfBWFFZwVqRWyFb0VyBXxFfMV9RX3 +FfkV+xX9Ff8WCBYgFikWKxYuFjAWSRZSFlsWaBaJFosWjRaPFpEWlBaVFpcWmRayFucW/BcPFyMXOBdL +F1AXUhdUF1YXWBdaF1wXYRdiF2QXZhdoF30XfxeBF4MXhRebF8wXzhfTF9UX1xfZF9sX3RfgF+IX5xfu +GAQYORhfGGEYYxhlGGcYaRhrGG0Ycxh8GH4YgRiDGJAYmBiaGJ8YoRijGKgYqhisGLoY5hjtGPYY/RkT +GSAZNhk/GUoZXhlnGXQZghmOGa8ZsRmzGbUZtxm6GbsZvRm/GdYZ9xn8Gf4aABoCGgQaBhoLGg0aGhov +GjEaMxo1GjcaRBpNGlgafRqJGosajRqPGpEakxqUGpYamBqhGqMaqBqqGqwayBrgGuka8Br9GwMbHBs9 +G0kbYBtrG3Abcht0G3YbeRt7G30bhhuIG4kbkhubG6Ybrxu6G8gb0xvcG+Mb+xwEHAkcHBwlHCccTBxO +HFAcUhxUHFYcWBxaHFwcXhxgHGIcZBxmHGgcahxsHG4cfxyNHJYcnhygHKIcpBymHK8csRyzHM8c2xzk +HOsdAh0RHSIdJB0mHSgdKh1CHVMdVR1XHVkdWx1iHXMddR13HXkdex2XHagdqh2sHa4dsB2/Hcgdzx3n +Hfgd+h38Hf4eAB4xHk4eZR5wHoIelh6lHsoe5R7+Hv8fAR8CHwQfBR8HHwkfCx8MHw4fDx8QHyUfOR9C +H0QfVR9XH1kfWx9dH18fYR9jH2Ufcx94H3ofgx+IH50frh+wH7IftB+2H8of6x/1H/8gCSAoICogLCAu +IDAgMiA0IDYgViBcIHUggiCEIIcgiSCMII4grCC1ILogwyDKIOIhAyEFIQchCSELIQ0hDyERITAhSCFV +IVchWiFcIV8hYSF+IYAhgiGEIYYhiCGKIaghtSHDIeAh4iHkIeYh6CHqIewiAiIPIjAiMiI0IjYiOCI6 +IjwiPiJdInUigiKEIociiSKMIo4iryKxIrMitSK3IrkiuyK9Itsi8iL/IwEjBCMGIwkjCyMsIy4jMCMy +IzQjNiM4IzojWSNxI34jgCODI4UjiCOKI6sjrSOvI7EjsyO1I7cjuSPYI/Aj/SP/JAIkBCQHJAkkKiQs +JC4kMCQyJDQkNiQ4JEEkVCRWJFckYCRnJIIkjySzJNAk3STfJOIk5CTnJOklAiUbJTwlPiVAJUIlRCVG +JUglSiVqJYMlkCWSJZUllyWaJZwlpSWnJewl7iXwJfIl9CX2Jfgl+iX8Jf4mACYCJgQmBiYIJgomDCYO +JhAmEiYUJhYmGCYaJhwmHiYgJiImJCYmJigmKiYsJi4mNyY5JjsmSSZSJlcmYCZiJqcmqSarJq0mryax +JrMmtSa3Jrkmuya9Jr8mwSbDJsUmxybJJssmzSbPJtEm0ybVJtcm2SbbJt0m3ybhJuMm5SbnJukm8ib0 +JzsnPSc/J0EnQydFJ0cnSSdLJ00nTydRJ1MnVSdXJ1knWyddJ18nYSdjJ2UnZydpJ2snbSdvJ3Encyd1 +J3cneSd7J30nfyeIJ4on0SfTJ9Un1yfZJ9sn3SffJ+En4yflJ+cn6SfrJ+0n7yfxJ/Mn9Sf3J/kn+yf9 +KAAoAygGKAkoDCgPKBIoFSgYKBsoHighKD4oVShiKHYogiiaKK4oxSjcKPwpGikwKVApcCmOKaQpwSoE +KiUqMipKKmgqfCqGKqgqvirVKvUrFSshK0ErTituK44rlyuZK54roCuiK6srrSuyK7Qrtiu/K8EsKiws +LC4sMCwyLDQsNiw4LDosPCw+LEAsQixELEYsSCxKLEwsTixQLFIsVCxWLFgsWixcLF4sYCxiLGQsZixo +LGosbCxuLHAscix0LHYseCx6LHwsfiyALIIshCyGLIgsiiyMLI4skCyZLJstBC0HLQotDS0QLRMtFi0Z +LRwtHy0iLSUtKC0rLS4tMS0zLTYtOS08LT8tQi1FLUgtSy1OLVEtVC1XLVotXS1gLWMtZi1pLWwtby1y +LXUteC17LX4tgS2ELYctii2NLZAtky2WLZktnC2eLaAtoi2kLaYtqC2qLawtri2wLbIttC22Lbgtui28 +Lb4twC3CLcQtxi3ILcotzC3OLdAt0i3ULdYt2C3aLdwt3i3gLeIt5C3mLegt6i3sLe4t8C35Lfst/S4G +LgguCS4SLhQuFS4eLiAuIS4qLi8AAAAAAAACAgAAAAAAAAWDAAAAAAAAAAAAAAAAAAAuPg diff --git a/Spotlight/SpotlightPlaylistEntry.h b/Spotlight/SpotlightPlaylistEntry.h index c830cca0d..345ec2182 100644 --- a/Spotlight/SpotlightPlaylistEntry.h +++ b/Spotlight/SpotlightPlaylistEntry.h @@ -16,6 +16,7 @@ } +(SpotlightPlaylistEntry *)playlistEntryWithMetadataItem:(NSMetadataItem *)metadataItem; ++ (NSArray *)allmdKeys; @property(copy) NSNumber *length; @end diff --git a/Spotlight/SpotlightPlaylistEntry.m b/Spotlight/SpotlightPlaylistEntry.m index faeab5a3b..2de33f366 100644 --- a/Spotlight/SpotlightPlaylistEntry.m +++ b/Spotlight/SpotlightPlaylistEntry.m @@ -20,7 +20,7 @@ static NSArray * extramdKeys; // allmdKeys is a combined array of both mdKeys and entryKeys static NSArray * allmdKeys; -// And the dictionary that matches them +// tags matches mdKeys and entryKeys for automated extraction static NSDictionary * tags; @implementation SpotlightPlaylistEntry @@ -51,6 +51,12 @@ static NSDictionary * tags; tags = [NSDictionary dictionaryWithObjects:entryKeys forKeys:mdKeys]; } +// Use this to access the array of all the keys we want. ++ (NSArray *)allmdKeys +{ + return allmdKeys; +} + + (SpotlightPlaylistEntry *)playlistEntryWithMetadataItem:(NSMetadataItem *)metadataItem { // use the matching tag sets to generate a playlist entry @@ -65,6 +71,7 @@ static NSDictionary * tags; [entry setURL: [NSURL fileURLWithPath: [songAttributes objectForKey:@"kMDItemPath"]]]; // Authors is an array, but we only care about the first item in it + [entry setArtist: [[songAttributes objectForKey:@"kMDItemAuthors"] objectAtIndex:0]]; return entry; } diff --git a/Spotlight/SpotlightSearchController.m b/Spotlight/SpotlightSearchController.m index 7fa61c3ef..7d23a657a 100644 --- a/Spotlight/SpotlightSearchController.m +++ b/Spotlight/SpotlightSearchController.m @@ -22,13 +22,14 @@ static NSPredicate * musicOnlyPredicate = nil; @"kMDItemContentTypeTree==\'public.audio\'"] retain]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + + // Set the home directory as the default search directory NSString * homeDir = @"~"; homeDir = [homeDir stringByExpandingTildeInPath]; homeDir = [[NSURL fileURLWithPath:homeDir isDirectory:YES] absoluteString]; NSDictionary *searchDefault = [NSDictionary dictionaryWithObject:homeDir forKey:@"spotlightSearchPath"]; - [defaults registerDefaults:searchDefault]; } @@ -46,11 +47,14 @@ static NSPredicate * musicOnlyPredicate = nil; { unsigned options = (NSCaseInsensitivePredicateOption| NSDiacriticInsensitivePredicateOption); + + // Set scope to contents of pathControl [self.query setSearchScopes:[NSArray arrayWithObjects:pathControl.URL, nil]]; + NSString *processedKey = [NSString stringWithFormat: @"*%@*", self.searchString]; NSPredicate *searchPredicate = [NSComparisonPredicate - predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"*"] + predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"kMDItemAuthors"] rightExpression:[NSExpression expressionForConstantValue:processedKey] modifier:NSDirectPredicateModifier type:NSLikePredicateOperatorType